#! /bin/sh
# Generated from tests/testsuite.at by GNU Autoconf 2.69.
#
# Copyright (C) 2009-2012 Free Software Foundation, Inc.
#
# This test suite is free software; the Free Software Foundation gives
# unlimited permission to copy, distribute and modify it.
#
# Copyright (c) 2009, 2010, 2011, 2012, 2013, 2014, 2015 Nicira, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
## -------------------- ##
## M4sh Initialization. ##
## -------------------- ##

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


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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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


} # as_fn_mkdir_p

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

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


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

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

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

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

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

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


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

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

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

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

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

as_test_x='test -x'
as_executable_p=as_fn_executable_p

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

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





SHELL=${CONFIG_SHELL-/bin/sh}

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


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

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

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

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

# Whether to enable colored test results.
at_color=auto
# List of the tested programs.
at_tested='ovs-vswitchd
ovs-vsctl'
# As many question marks as there are digits in the last test group number.
# Used to normalize the test group numbers so that `ls' lists them in
# numerical order.
at_format='????'
# Description of all the test groups.
at_help_all="1;completion.at:21;appctl-bashcomp - basic verification;;
2;completion.at:88;appctl-bashcomp - complex completion check 1;;
3;completion.at:142;appctl-bashcomp - complex completion check 2;;
4;completion.at:176;appctl-bashcomp - complex completion check 3;;
5;completion.at:265;appctl-bashcomp - complex completion check 4;;
6;completion.at:291;appctl-bashcomp - negative test;;
7;completion.at:345;vsctl-bashcomp - basic verification;;
8;completion.at:427;vsctl-bashcomp - argument completion;;
9;completion.at:754;vsctl-bashcomp - negative test;;
10;bfd.at:52;bfd - basic config on different bridges;;
11;bfd.at:94;bfd - Verify tunnel down detection;;
12;bfd.at:175;bfd - concatenated path down;;
13;bfd.at:202;bfd - Edit the Min Tx/Rx values;;
14;bfd.at:233;bfd - check_tnl_key;;
15;bfd.at:268;bfd - bfd decay;;
16;bfd.at:415;bfd - bfd forwarding_if_rx - bfd on one side;;
17;bfd.at:460;bfd - bfd forwarding_if_rx - bfd on both sides;;
18;bfd.at:526;bfd - bfd forwarding_if_rx - with bfd decay;;
19;bfd.at:614;bfd - bfd forwarding_if_rx - demand_rx_bfd;;
20;bfd.at:685;bfd - flap_count;;
21;bfd.at:805;bfd - check that BFD works together with RSTP;;
22;bfd.at:842;bfd - liveness propagation - OF1.3;;
23;bfd.at:913;bfd - liveness propagation - OF1.4;;
24;bfd.at:984;bfd - liveness propagation - OF1.5;;
25;bfd.at:1054;bfd - Edit the Detect Mult values;;
26;cfm.at:49;cfm - check update ovsdb 1;;
27;cfm.at:81;cfm - check update ovsdb 2;;
28;cfm.at:115;cfm - demand mode;;
29;cfm.at:157;cfm - demand_rx_ccm;;
30;cfm.at:219;cfm - flap_count;;
31;cfm.at:252;cfm - fault_override;;
32;cfm.at:290;cfm - check that CFM works together with RSTP;;
33;cfm.at:327;cfm - liveness propagation - OF1.3;;
34;cfm.at:389;cfm - liveness propagation - OF1.4;;
35;cfm.at:451;cfm - liveness propagation - OF1.5;;
36;lacp.at:13;lacp - config;;
37;lacp.at:53;lacp - multi port config;;
38;lacp.at:140;lacp - negotiation;;
39;lacp.at:731;lacp - liveness propagation - OF1.3;;
40;lacp.at:827;lacp - liveness propagation - OF1.4;;
41;lacp.at:923;lacp - liveness propagation - OF1.5;;
42;library.at:3;flow extractor;;
43;library.at:9;TCP/IP checksumming;;
44;library.at:14;hash functions;;
45;library.at:18;hash map;hmap;
46;library.at:24;hash index;hindex;
47;library.at:30;cuckoo hash;cmap;
48;library.at:36;counting cuckoo hash;cmap;
49;library.at:42;atomic operations;;
50;library.at:46;test linked lists;;
51;library.at:51;packet library;;
52;library.at:55;SHA-1;;
53;library.at:60;test skiplist;skiplist;
54;library.at:71;type properties;;
55;library.at:75;strtok_r bug fix;;
56;library.at:80;byte order conversion;byte order;
57;library.at:85;random number generator;;
58;library.at:137;ctz() function;ctz;
59;library.at:137;clz() function;clz;
60;library.at:137;round_up_pow2() function;round_up_pow2;
61;library.at:137;round_down_pow2() function;round_down_pow2;
62;library.at:137;count_1bits() function;count_1bits;
63;library.at:137;log_2_floor() function;log_2_floor;
64;library.at:137;bitwise_copy() function;bitwise_copy;
65;library.at:137;bitwise_zero() function;bitwise_zero;
66;library.at:137;bitwise_one() function;bitwise_one;
67;library.at:137;bitwise_is_all_zeros() function;bitwise_is_all_zeros;
68;library.at:137;bitwise_rscan() function;bitwise_rscan;
69;library.at:137;ovs_scan() function;ovs_scan;
70;library.at:156;unix socket, short pathname - C;;
71;library.at:166;unix socket, long pathname - C;;
72;library.at:186;unix socket, short pathname - Python2;python unixsocket;
73;library.at:187;unix socket, short pathname - Python3;python unixsocket;
74;library.at:208;unix socket, long pathname - Python2;python unixsocket;
75;library.at:209;unix socket, long pathname - Python3;python unixsocket;
76;library.at:211;ovs_assert;;
77;library.at:234;snprintf;;
78;library.at:238;bitmap functions;;
79;library.at:243;use of public headers;;
80;library.at:247;ofpbuf module;;
81;library.at:251;rcu;;
82;heap.at:8;heap library -- insert delete same order;;
83;heap.at:9;heap library -- insert delete reverse order;;
84;heap.at:10;heap library -- insert delete every order;;
85;heap.at:11;heap library -- insert delete same order with dups;;
86;heap.at:12;heap library -- raw insert;;
87;heap.at:13;heap library -- raw delete;;
88;bundle.at:10;hrw bundle link selection;bundle_action;
89;bundle.at:81;active_backup bundle link selection;bundle_action;
90;bundle.at:153;hrw bundle single link selection;bundle_action;
91;bundle.at:162;hrw bundle no link selection;bundle_action;
92;bundle.at:170;bundle action missing argument;bundle_action;
93;bundle.at:177;bundle action bad fields;bundle_action;
94;bundle.at:184;bundle action bad algorithm;bundle_action;
95;bundle.at:191;bundle action bad slave type;bundle_action;
96;bundle.at:198;bundle action bad slave delimiter;bundle_action;
97;bundle.at:211;bundle action with many ports;bundle_action;
98;bundle.at:221;bundle action with ports up and down;bundle_action;
99;bundle.at:259;bundle_load action with ports down;bundle_action;
100;classifier.at:2;flow classifier - empty;;
101;classifier.at:2;flow classifier - destroy null;;
102;classifier.at:2;flow classifier - single rule;;
103;classifier.at:2;flow classifier - rule replacement;;
104;classifier.at:2;flow classifier - many rules in one list;;
105;classifier.at:2;flow classifier - versioned many rules in one list;;
106;classifier.at:2;flow classifier - many rules in one table;;
107;classifier.at:2;flow classifier - versioned many rules in one table;;
108;classifier.at:2;flow classifier - many rules in two tables;;
109;classifier.at:2;flow classifier - versioned many rules in two tables;;
110;classifier.at:2;flow classifier - many rules in five tables;;
111;classifier.at:2;flow classifier - versioned many rules in five tables;;
112;classifier.at:21;miniflow - miniflow;;
113;classifier.at:21;miniflow - minimask_has_extra;;
114;classifier.at:21;miniflow - minimask_combine;;
115;classifier.at:31;flow classifier - lookup segmentation;;
116;classifier.at:69;flow classifier - prefix lookup;;
117;classifier.at:134;single conjunctive match;;
118;classifier.at:171;multiple conjunctive match;;
119;classifier.at:247;conjunctive match priority fallback;;
120;classifier.at:293;conjunctive match and other actions;;
121;check-structs.at:11;check struct tail padding;check-structs;
122;check-structs.at:21;check struct internal alignment;check-structs;
123;check-structs.at:32;check struct declared size;check-structs;
124;check-structs.at:44;check wrong struct's declared size;check-structs;
125;daemon.at:3;daemon;;
126;daemon.at:30;daemon --monitor;;
127;daemon.at:79;daemon --detach;;
128;daemon.at:102;daemon --detach --monitor;;
129;daemon.at:148;daemon --detach startup errors;;
130;daemon.at:157;daemon --detach --monitor startup errors;;
131;daemon.at:167;daemon --service;windows-service;
132;daemon-py.at:25;daemon - Python2;python daemon;
133;daemon-py.at:26;daemon - Python3;python daemon;
134;daemon-py.at:69;daemon --monitor - Python2;;
135;daemon-py.at:70;daemon --monitor - Python3;;
136;daemon-py.at:113;daemon --monitor restart exit code - Python2;;
137;daemon-py.at:114;daemon --monitor restart exit code - Python3;;
138;daemon-py.at:135;daemon --detach - Python2;;
139;daemon-py.at:136;daemon --detach - Python3;;
140;daemon-py.at:186;daemon --detach --monitor - Python2;;
141;daemon-py.at:187;daemon --detach --monitor - Python3;;
142;daemon-py.at:199;daemon --detach startup errors - Python2;;
143;daemon-py.at:200;daemon --detach startup errors - Python3;;
144;daemon-py.at:212;daemon --detach --monitor startup errors - Python2;;
145;daemon-py.at:213;daemon --detach --monitor startup errors - Python3;;
146;daemon-py.at:238;daemon --detach closes standard fds - Python2;;
147;daemon-py.at:239;daemon --detach closes standard fds - Python3;;
148;daemon-py.at:265;daemon --detach --monitor closes standard fds - Python2;;
149;daemon-py.at:266;daemon --detach --monitor closes standard fds - Python3;;
150;ofp-actions.at:3;OpenFlow 1.0 action translation;ofp-actions of1.0;
151;ofp-actions.at:325;OpenFlow 1.0 \"instruction\" translations;ofp-actions of1.0 instruction;
152;ofp-actions.at:355;OpenFlow 1.1 action translation;ofp-actions of1.1;
153;ofp-actions.at:498;OpenFlow 1.1 instruction translation;of1.1 instruction ofp-actions;
154;ofp-actions.at:709;OpenFlow 1.2 action translation;ofp-actions of1.2;
155;ofp-actions.at:735;OpenFlow 1.3 action translation;ofp-actions of1.3;
156;ofp-actions.at:763;OpenFlow 1.5 action translation;ofp-actions of1.5;
157;ofp-actions.at:787;ofp-actions - inconsistent MPLS actions;;
158;ofp-actions.at:799;reg_load <-> set_field translation corner case;ofp-actions;
159;ofp-actions.at:814;enqueue action for OF1.1+;ofp-actions;
160;ofp-actions.at:831;mod_nw_ttl action for OF1.0;ofp-actions;
161;ofp-actions.at:848;mod_nw_ecn action translation;ofp-actions;
162;ofp-print.at:3;empty;ofp-print;
163;ofp-print.at:9;too short;ofp-print;
164;ofp-print.at:17;wrong OpenFlow version;ofp-print;
165;ofp-print.at:27;truncated message;ofp-print;
166;ofp-print.at:35;message only uses part of buffer;ofp-print;
167;ofp-print.at:44;OFPT_HELLO - ordinary;ofp-print;
168;ofp-print.at:52;OFPT_HELLO with extra data;ofp-print;
169;ofp-print.at:64;OFPT_HELLO with version bitmap;ofp-print;
170;ofp-print.at:73;OFPT_HELLO with version bitmap and extra data;ofp-print;
171;ofp-print.at:87;OFPT_HELLO with higher than supported version;ofp-print;
172;ofp-print.at:106;OFPT_HELLO with contradictory version bitmaps;ofp-print;
173;ofp-print.at:148;OFPT_ECHO_REQUEST, empty payload;ofp-print;
174;ofp-print.at:155;OFPT_ECHO_REQUEST, 5-byte payload;ofp-print;
175;ofp-print.at:163;OFPT_ECHO_REPLY, empty payload;ofp-print;
176;ofp-print.at:170;OFPT_ECHO_REPLY, 5-byte payload;ofp-print;
177;ofp-print.at:178;OFPT_FEATURES_REQUEST;ofp-print;
178;ofp-print.at:185;OFPT_FEATURES_REPLY - OF1.0;ofp-print;
179;ofp-print.at:235;OFPT_FEATURES_REPLY cut off mid-port - OF1.0;ofp-print;
180;ofp-print.at:274;OFPT_FEATURES_REPLY - OF1.1;ofp-print;
181;ofp-print.at:305;OFPT_FEATURES_REPLY cut off mid-port - OF1.1;ofp-print;
182;ofp-print.at:334;OFPT_FEATURES_REPLY - OF1.2;ofp-print;
183;ofp-print.at:365;OFPT_FEATURES_REPLY cut off mid-port - OF1.2;ofp-print;
184;ofp-print.at:394;OFPT_FEATURES_REPLY - OF1.3;ofp-print;
185;ofp-print.at:406;OFPT_FEATURES_REPLY - OF1.4;ofp-print;
186;ofp-print.at:418;OFPT_FEATURES_REPLY - OF1.5;ofp-print;
187;ofp-print.at:430;OFPT_FEATURES_REPLY - with auxiliary_id - OF1.3;ofp-print;
188;ofp-print.at:442;OFPT_GET_CONFIG_REQUEST;ofp-print;
189;ofp-print.at:449;OFPT_GET_CONFIG_REPLY, most common form;ofp-print;
190;ofp-print.at:457;OFPT_GET_CONFIG_REPLY, frags and miss_send_len;ofp-print;
191;ofp-print.at:464;OFPT_PACKET_IN - OF1.0;ofp-print;
192;ofp-print.at:478;OFPT_PACKET_IN - OF1.0, with hex output of packet data;ofp-print;
193;ofp-print.at:496;OFPT_PACKET_IN - OF1.1;ofp-print;
194;ofp-print.at:511;OFPT_PACKET_IN - OF1.2;ofp-print;
195;ofp-print.at:525;OFPT_PACKET_IN - OF1.2, with hex output of packet data;ofp-print;
196;ofp-print.at:542;OFPT_PACKET_IN - OF1.3;ofp-print;
197;ofp-print.at:557;OFPT_PACKET_IN - OF1.4;ofp-print;
198;ofp-print.at:572;OFPT_PACKET_IN - OF1.5;ofp-print;
199;ofp-print.at:587;OFPT_PACKET_IN - OF1.3, with hex output of packet data;ofp-print;
200;ofp-print.at:605;OFPT_FLOW_REMOVED - OF1.0;ofp-print;
201;ofp-print.at:619;OFPT_FLOW_REMOVED - OF1.2;ofp-print;
202;ofp-print.at:630;OFPT_FLOW_REMOVED - OF1.3;ofp-print;
203;ofp-print.at:641;OFPT_PORT_STATUS - OF1.0;ofp-print;
204;ofp-print.at:659;OFPT_PORT_STATUS - OF1.1;ofp-print;
205;ofp-print.at:678;OFPT_PORT_STATUS - OF1.4;ofp-print;
206;ofp-print.at:698;OFPT_PORT_STATUS - OF1.6;ofp-print;
207;ofp-print.at:724;OFPT_PACKET_OUT - OF1.0;ofp-print;
208;ofp-print.at:738;OFPT_PACKET_OUT - OF1.0, with packet;ofp-print;
209;ofp-print.at:753;OFPT_PACKET_OUT - OF1.0, with hex output of packet data;ofp-print;
210;ofp-print.at:772;OFPT_PACKET_OUT - OF1.1;ofp-print;
211;ofp-print.at:783;OFPT_PACKET_OUT - OF1.1, with packet;ofp-print;
212;ofp-print.at:799;OFPT_PACKET_OUT - OF1.5;ofp-print packet-out;
213;ofp-print.at:850;OFPT_PACKET_OUT - OF1.5, with packet;ofp-print packet-out;
214;ofp-print.at:868;OFPT_FLOW_MOD - OF1.0 - low verbosity;ofp-print;
215;ofp-print.at:886;OFPT_FLOW_MOD - OF1.1 - low verbosity;ofp-print;
216;ofp-print.at:906;OFPT_FLOW_MOD - OF1.2 - low verbosity;ofp-print;
217;ofp-print.at:926;OFPT_FLOW_MOD - OF1.0 - high verbosity;ofp-print;
218;ofp-print.at:944;OFPT_FLOW_MOD - OF1.2 - low verbosity;ofp-print;
219;ofp-print.at:963;OFPT_FLOW_MOD - OF1.3 - flags - low verbosity;ofp-print;
220;ofp-print.at:981;OFPT_FLOW_MOD - OF1.2 - set-field ip_src;ofp-print;
221;ofp-print.at:996;OFPT_FLOW_MOD - OF1.2 - set-field ip_dst;ofp-print;
222;ofp-print.at:1011;OFPT_FLOW_MOD - OF1.2 - set-field sctp_src;ofp-print;
223;ofp-print.at:1026;OFPT_FLOW_MOD - OF1.2 - set-field sctp_dst;ofp-print;
224;ofp-print.at:1041;OFPT_FLOW_MOD - OF1.2 - experimenter OXM;ofp-print;
225;ofp-print.at:1055;OFPT_FLOW_MOD - OF1.2 - set-field nd_target, nd_sll;ofp-print;
226;ofp-print.at:1073;OFPT_FLOW_MOD - OF1.3 - meter;ofp-print;
227;ofp-print.at:1084;OFPT_FLOW reply - OF1.2 - set-field ip_src;ofp-print;
228;ofp-print.at:1101;OFPT_FLOW reply - OF1.2 - set-field ip_dst;ofp-print;
229;ofp-print.at:1118;OFPT_FLOW reply - OF1.2 - set-field sctp_src;ofp-print;
230;ofp-print.at:1135;OFPT_FLOW reply - OF1.2 - set-field sctp_dst;ofp-print;
231;ofp-print.at:1152;OFPT_PORT_MOD - OF1.0;ofp-print;
232;ofp-print.at:1165;OFPT_PORT_MOD - OF1.1;ofp-print;
233;ofp-print.at:1179;OFPT_PORT_MOD - OF1.2;ofp-print;
234;ofp-print.at:1193;OFPT_PORT_MOD - OF1.3;ofp-print;
235;ofp-print.at:1207;OFPT_PORT_MOD - OF1.4;ofp-print;
236;ofp-print.at:1221;OFPT_PORT_MOD - OF1.6;ofp-print;
237;ofp-print.at:1236;OFPT_TABLE_MOD - OF1.1;ofp-print;
238;ofp-print.at:1245;OFPT_TABLE_MOD - OF1.2;ofp-print;
239;ofp-print.at:1254;OFPT_TABLE_MOD - OF1.3;ofp-print;
240;ofp-print.at:1263;OFPT_TABLE_MOD - OF1.4;ofp-print;
241;ofp-print.at:1272;OFPST_DESC request;ofp-print ofpt_stats_request;
242;ofp-print.at:1279;OFPST_DESC reply;ofp-print ofpt_stats_reply;
243;ofp-print.at:1359;OFPST_FLOW request - OF1.0;ofp-print ofpt_stats_request;
244;ofp-print.at:1371;OFPST_FLOW request - OF1.2;ofp-print ofpt_stats_request;
245;ofp-print.at:1383;OFPST_FLOW request - OF1.3;ofp-print ofpt_stats_request;
246;ofp-print.at:1395;OFPST_FLOW reply - OF1.0;ofp-print ofpt_stats_reply;
247;ofp-print.at:1439;OFPST_FLOW reply - OF1.2;ofp-print ofpt_stats_reply;
248;ofp-print.at:1474;OFPST_AGGREGATE request - OF1.0;ofp-print ofpt_stats_request;
249;ofp-print.at:1486;OFPST_AGGREGATE request - OF1.2;ofp-print ofpt_stats_request;
250;ofp-print.at:1498;OFPST_AGGREGATE request - OF1.3;ofp-print ofpt_stats_request;
251;ofp-print.at:1510;OFPST_AGGREGATE reply - OF1.0;ofp-print ofpt_stats_reply;
252;ofp-print.at:1521;OFPST_AGGREGATE reply - OF1.2;ofp-print ofpt_stats_reply;
253;ofp-print.at:1532;OFPST_AGGREGATE reply - OF1.3;ofp-print ofpt_stats_reply;
254;ofp-print.at:1543;OFPST_TABLE request - OF1.0;ofp-print ofpt_stats_request;
255;ofp-print.at:1550;OFPST_TABLE request - OF1.1;ofp-print ofpt_stats_request;
256;ofp-print.at:1557;OFPST_TABLE request - OF1.2;ofp-print ofpt_stats_request;
257;ofp-print.at:1564;OFPST_TABLE request - OF1.3;ofp-print ofpt_stats_request;
258;ofp-print.at:1571;OFPST_TABLE reply - OF1.0;ofp-print ofpt_stats_reply;
259;ofp-print.at:1600;OFPST_TABLE reply - OF1.2;ofp-print ofpt_stats_reply;
260;ofp-print.at:1691;OFPST_TABLE reply - OF1.3;ofp-print ofpt_stats_reply;
261;ofp-print.at:1708;OFPST_PORT request - 1.0;ofp-print ofpt_stats_request;
262;ofp-print.at:1718;OFPST_PORT request - 1.1;ofp-print ofpt_stats_request;
263;ofp-print.at:1728;OFPST_PORT request - 1.2;ofp-print ofpt_stats_request;
264;ofp-print.at:1738;OFPST_PORT request - 1.3;ofp-print ofpt_stats_request;
265;ofp-print.at:1748;OFPST_PORT reply - OF1.0;ofp-print ofpt_stats_reply;
266;ofp-print.at:1791;OFPST_PORT reply - OF1.2;ofp-print ofpt_stats_reply;
267;ofp-print.at:1826;OFPST_PORT reply - OF1.3;ofp-print ofpt_stats_reply;
268;ofp-print.at:1865;OFPST_PORT reply - OF1.4;ofp-print ofpt_stats_reply;
269;ofp-print.at:1885;OFPST_QUEUE request - OF1.0;ofp-print ofpt_stats_request;
270;ofp-print.at:1895;OFPST_QUEUE request - OF1.1;ofp-print ofpt_stats_request;
271;ofp-print.at:1905;OFPST_QUEUE request - OF1.2;ofp-print ofpt_stats_request;
272;ofp-print.at:1915;OFPST_QUEUE request - OF1.3;ofp-print ofpt_stats_request;
273;ofp-print.at:1925;OFPST_QUEUE reply - OF1.0;ofp-print ofpt_stats_reply;
274;ofp-print.at:1952;OFPST_QUEUE reply - OF1.1;ofp-print ofpt_stats_reply;
275;ofp-print.at:1979;OFPST_QUEUE reply - OF1.2;ofp-print ofpt_stats_reply;
276;ofp-print.at:2006;OFPST_QUEUE reply - OF1.3;ofp-print ofpt_stats_reply;
277;ofp-print.at:2039;OFPST_QUEUE reply - OF1.4;ofp-print ofpt_stats_reply;
278;ofp-print.at:2073;OFPST_GROUP request;ofp-print ofpt_stats_request;
279;ofp-print.at:2082;OFPST_GROUP reply - OF1.1;ofp-print ofpt_stats_reply;
280;ofp-print.at:2102;OFPST_GROUP reply - OF1.3;ofp-print ofpt_stats_reply;
281;ofp-print.at:2124;OFPST_GROUP_DESC request - OF1.1;ofp-print ofpt_stats_request;
282;ofp-print.at:2132;OFPST_GROUP_DESC request - OF1.5;ofp-print ofpt_stats_request;
283;ofp-print.at:2141;OFPST_GROUP_DESC reply - OF1.1;ofp-print ofpt_stats_request;
284;ofp-print.at:2158;OFPST_GROUP_DESC reply - OF1.5;ofp-print ofpt_stats_reply;
285;ofp-print.at:2183;OFPST_GROUP_FEATURES request;ofp-print ofpt_stats_request;
286;ofp-print.at:2191;OFPST_GROUP_FEATURES reply;ofp-print ofpt_stats_reply;
287;ofp-print.at:2218;OFPST_PORT_DESC request - OF1.0;ofp-print ofpt_stats_request;
288;ofp-print.at:2225;OFPST_PORT_DESC request - OF1.5;ofp-print ofpt_stats_request;
289;ofp-print.at:2234;OFPST_PORT_DESC reply - OF1.0;ofp-print ofpt_stats_reply;
290;ofp-print.at:2253;OFPST_PORT_DESC reply - OF1.4;ofp-print ofpt_stats_reply;
291;ofp-print.at:2274;OFPT_METER_MOD request - OF1.3;ofp-print;
292;ofp-print.at:2285;OFPT_METER_MOD request - bad band - OF1.3;ofp-print;
293;ofp-print.at:2297;OFPT_METER_MOD request - bad command - OF1.3;ofp-print;
294;ofp-print.at:2307;OFPT_METER_MOD request - bad flags - OF1.3;ofp-print;
295;ofp-print.at:2319;OFPST_METER request - OF1.3;ofp-print ofpt_stats_request;
296;ofp-print.at:2326;OFPST_METER_CONFIG request - OF1.3;ofp-print ofpt_stats_request;
297;ofp-print.at:2333;OFPST_METER_FEATURES request - OF1.3;ofp-print ofpt_stats_request;
298;ofp-print.at:2340;OFPST_METER_FEATURES reply - OF1.3;ofp-print ofpt_stats_reply;
299;ofp-print.at:2353;OFPST_METER_CONFIG reply - OF1.3;ofp-print ofpt_stats_reply;
300;ofp-print.at:2373;OFPST_METER reply - OF1.3;ofp-print ofpt_stats_reply;
301;ofp-print.at:2397;OFPST_TABLE_FEATURES request - OF1.3;ofp-print ofpt_stats_request;
302;ofp-print.at:2616;OFPT_BARRIER_REQUEST - OF1.0;ofp-print;
303;ofp-print.at:2623;OFPT_BARRIER_REQUEST - OF1.1;ofp-print;
304;ofp-print.at:2630;OFPT_BARRIER_REQUEST - OF1.2;ofp-print;
305;ofp-print.at:2637;OFPT_BARRIER_REQUEST - OF1.3;ofp-print;
306;ofp-print.at:2644;OFPT_BARRIER_REPLY - OF1.0;ofp-print;
307;ofp-print.at:2651;OFPT_BARRIER_REPLY - OF1.1;ofp-print;
308;ofp-print.at:2658;OFPT_BARRIER_REPLY - OF1.2;ofp-print;
309;ofp-print.at:2665;OFPT_BARRIER_REPLY - OF1.3;ofp-print;
310;ofp-print.at:2672;OFPT_QUEUE_GET_CONFIG_REQUEST - OF1.0;ofp-print;
311;ofp-print.at:2679;OFPT_QUEUE_GET_CONFIG_REQUEST - OF1.2;ofp-print;
312;ofp-print.at:2687;OFPST_QUEUE_DESC request - OF1.4;ofp-print ofpt_queue_get_config_request;
313;ofp-print.at:2696;OFPT_QUEUE_GET_CONFIG_REPLY - OF1.0;ofp-print;
314;ofp-print.at:2711;OFPT_QUEUE_GET_CONFIG_REPLY - OF1.1;ofp-print;
315;ofp-print.at:2726;OFPT_QUEUE_GET_CONFIG_REPLY - OF1.2;ofp-print;
316;ofp-print.at:2741;OFPT_QUEUE_GET_CONFIG_REPLY - OF1.3;ofp-print;
317;ofp-print.at:2757;OFPST_QUEUE_DESC reply - OF1.4;ofp-print ofpt_queue_get_config_reply;
318;ofp-print.at:2776;OFPT_SET_ASYNC - OF1.3;ofp-print;
319;ofp-print.at:2805;OFPT_ROLE_REQUEST - OF1.2;ofp-print;
320;ofp-print.at:2815;OFPT_ROLE_REQUEST - nochange - OF1.2;ofp-print;
321;ofp-print.at:2825;NXT_ROLE_REQUEST;ofp-print;
322;ofp-print.at:2835;OFPT_ROLE_REPLY - OF1.2;ofp-print;
323;ofp-print.at:2845;NXT_ROLE_REPLY;ofp-print;
324;ofp-print.at:2855;OFP_ROLE_STATUS - master, experimenter - OF1.4;ofp-print;
325;ofp-print.at:2865;OFP_ROLE_STATUS - master, config - OF1.4;ofp-print;
326;ofp-print.at:2875;OFP_ROLE_STATUS - master, config,generation - OF1.4;ofp-print;
327;ofp-print.at:2885;OFP_REQUESTFORWARD - OF1.4;ofp-print;
328;ofp-print.at:2897;OFP_REQUESTFORWARD - OF1.4;ofp-print;
329;ofp-print.at:2909;OFP_REQUESTFORWARD - OF1.4;ofp-print;
330;ofp-print.at:2920;OFP_REQUESTFORWARD - OF1.4;ofp-print;
331;ofp-print.at:2931;NXT_SET_PACKET_IN;ofp-print;
332;ofp-print.at:2941;NXT_PACKET_IN;ofp-print;
333;ofp-print.at:2962;NXT_PACKET_IN, with hex output of packet data;ofp-print;
334;ofp-print.at:2987;NX_PACKET_IN2;ofp-print;
335;ofp-print.at:3010;NXT_SET_ASYNC_CONFIG;ofp-print;
336;ofp-print.at:3038;OFPT_SET_ASYNC_CONFIG;ofp-print;
337;ofp-print.at:3065;OFPT_SET_ASYNC_CONFIG - invalid mask - OF1.4;ofp-print;
338;ofp-print.at:3084;OFPT_SET_ASYNC_CONFIG - unsupported configuration - OF1.4;ofp-print;
339;ofp-print.at:3103;NXT_SET_CONTROLLER_ID;ofp-print;
340;ofp-print.at:3113;NXT_FLOW_MONITOR_CANCEL;ofp-print;
341;ofp-print.at:3123;NXT_FLOW_MONITOR_PAUSED;ofp-print;
342;ofp-print.at:3132;NXT_FLOW_MONITOR_RESUMED;ofp-print;
343;ofp-print.at:3141;NXT_SET_FLOW_FORMAT;ofp-print;
344;ofp-print.at:3152;NXT_FLOW_MOD, low verbosity;ofp-print;
345;ofp-print.at:3168;NXT_FLOW_MOD, high verbosity;ofp-print;
346;ofp-print.at:3182;OFPT_GROUP_MOD - OF1.1;ofp-print;
347;ofp-print.at:3198;OFPT_GROUP_MOD add - OF1.5;ofp-print;
348;ofp-print.at:3219;OFPT_GROUP_MOD insert bucket - OF1.5;ofp-print;
349;ofp-print.at:3237;NXT_FLOW_REMOVED;ofp-print;
350;ofp-print.at:3253;NXT_FLOW_MOD_TABLE_ID;ofp-print;
351;ofp-print.at:3263;NXT_RESUME;ofp-print;
352;ofp-print.at:3275;NXST_FLOW request;ofp-print ofpt_stats_request;
353;ofp-print.at:3285;NXST_FLOW reply;ofp-print ofpt_stats_reply;
354;ofp-print.at:3439;NXST_AGGREGATE request;ofp-print ofpt_stats_request;
355;ofp-print.at:3449;NXST_AGGREGATE reply;ofp-print ofpt_stats_reply;
356;ofp-print.at:3460;NXST_FLOW_MONITOR request;ofp-print ofpt_stats_reply;
357;ofp-print.at:3473;NXST_FLOW_MONITOR reply;ofp-print ofpt_stats_reply;
358;ofp-print.at:3488;OFPT_BUNDLE_CONTROL - atomic OPEN_REQUEST;ofp-print bundle;
359;ofp-print.at:3499;OFPT_BUNDLE_CONTROL - ordered OPEN_REQUEST;ofp-print bundle;
360;ofp-print.at:3510;OFPT_BUNDLE_CONTROL - atomic ordered OPEN_REQUEST;ofp-print bundle;
361;ofp-print.at:3521;OFPT_BUNDLE_CONTROL - OPEN_REPLY;ofp-print bundle;
362;ofp-print.at:3532;OFPT_BUNDLE_CONTROL - CLOSE_REQUEST;ofp-print bundle;
363;ofp-print.at:3543;OFPT_BUNDLE_CONTROL - CLOSE_REPLY;ofp-print bundle;
364;ofp-print.at:3554;OFPT_BUNDLE_CONTROL - COMMIT_REQUEST;ofp-print bundle;
365;ofp-print.at:3565;OFPT_BUNDLE_CONTROL - COMMIT_REPLY;ofp-print bundle;
366;ofp-print.at:3576;OFPT_BUNDLE_CONTROL - DISCARD_REQUEST;ofp-print bundle;
367;ofp-print.at:3587;OFPT_BUNDLE_CONTROL - DISCARD_REPLY;ofp-print bundle;
368;ofp-print.at:3598;OFPT_BUNDLE_ADD_MESSAGE - verify xid;ofp-print bundle;
369;ofp-print.at:3610;OFPT_BUNDLE_ADD_MESSAGE - reject OFPT_HELLO;ofp-print bundle;
370;ofp-print.at:3624;OFPT_BUNDLE_ADD_MESSAGE - FLOW_MOD;ofp-print bundle;
371;ofp-print.at:3644;OFPT_BUNDLE_ADD_MESSAGE - PORT_MOD;ofp-print bundle;
372;ofp-print.at:3661;OFPT_BUNDLE_ADD_MESSAGE - GROUP_MOD;ofp-print bundle;
373;ofp-print.at:3685;OFPT_BUNDLE_ADD_MESSAGE - PACKET_OUT;ofp-print bundle packet-out;
374;ofp-print.at:3704;NXST_IPFIX_BRIDGE - request;ofp-print ofpt_stats_request;
375;ofp-print.at:3714;NXST_IPFIX_BRIDGE - reply;ofp-print ofpt_stats_reply;
376;ofp-print.at:3737;NXST_IPFIX_FLOW - request;ofp-print ofpt_stats_request;
377;ofp-print.at:3747;NXST_IPFIX_FLOW - reply;ofp-print ofpt_stats_reply;
378;ofp-print.at:3783;NXT_CT_FLUSH_ZONE;ofp-print;
379;ofp-util.at:3;encoding hellos;;
380;ofp-util.at:54;parsing key-value pairs;;
381;ofp-errors.at:3;OFPT_ERROR with type OFPET_HELLO_FAILED - OF1.0;ofp-print ofp-errors;
382;ofp-errors.at:11;OFPT_ERROR with type OFPET_HELLO_FAILED - OF1.1;ofp-print ofp-errors;
383;ofp-errors.at:19;OFPT_ERROR with type OFPET_BAD_REQUEST - OF1.0;ofp-print ofp-errors;
384;ofp-errors.at:29;OFPT_ERROR prints type of truncated inner messages;ofp-print ofp-errors;
385;ofp-errors.at:46;OFPT_ERROR with code OFPBMC_BAD_PREREQ - OF1.0;ofp-print ofp-errors;
386;ofp-errors.at:54;OFPT_ERROR with code OFPBMC_BAD_PREREQ - OF1.1;ofp-print ofp-errors;
387;ofp-errors.at:64;OFPT_ERROR with type OFPFMFC_OVERLAP - OF1.0;ofp-print ofp-errors;
388;ofp-errors.at:73;OFPT_ERROR with type OFPBIC_UNSUP_INST - OF1.1;ofp-print ofp-errors;
389;ofp-errors.at:83;OFPT_ERROR with type OFPBIC_DUP_INST - OF1.4;ofp-print ofp-errors;
390;ofp-errors.at:97;encoding OFPBIC_* experimenter errors;ofp-print ofp-errors;
391;ofp-errors.at:119;encoding errors extension that became official;ofp-print ofp-errors;
392;ofp-errors.at:138;decoding OFPBIC_* experimenter errors;ofp-print ofp-errors;
393;ofp-errors.at:154;decoding experimenter errors;ofp-print ofp-errors;
394;ofp-errors.at:186;encoding experimenter errors;ofp-print ofp-errors;
395;ovs-ofctl.at:3;ovs-ofctl parse-flows choice of protocol;;
396;ovs-ofctl.at:181;ovs-ofctl parse-flows (OpenFlow 1.0);;
397;ovs-ofctl.at:248;ovs-ofctl parse-flows (OpenFlow 1.1);;
398;ovs-ofctl.at:287;ovs-ofctl parse-flows (OpenFlow 1.2);;
399;ovs-ofctl.at:338;ovs-ofctl parse-flow with invalid mask;;
400;ovs-ofctl.at:377;ovs-ofctl action inconsistency (OpenFlow 1.1);;
401;ovs-ofctl.at:386;ovs-ofctl parse-flows (skb_priority);;
402;ovs-ofctl.at:398;ovs-ofctl parse-flows (NXM);;
403;ovs-ofctl.at:497;ovs-ofctl -F nxm parse-flows;;
404;ovs-ofctl.at:576;ovs-ofctl -F nxm -mmm parse-flows;;
405;ovs-ofctl.at:657;ovs-ofctl parse-nx-match;nx-match;
406;ovs-ofctl.at:1259;ovs-ofctl parse-ofp10-match;of1.0;
407;ovs-ofctl.at:1476;ovs-ofctl parse-ofp11-match;of1.1;
408;ovs-ofctl.at:1802;ovs-ofctl parse-nx-match loose;nx-match;
409;ovs-ofctl.at:1823;ovs-ofctl parse-oxm (OpenFlow 1.2);oxm;
410;ovs-ofctl.at:2317;ovs-ofctl parse-oxm (OpenFlow 1.3);oxm;
411;ovs-ofctl.at:2340;ovs-ofctl parse-oxm (OpenFlow 1.5);oxm;
412;ovs-ofctl.at:2405;ovs-ofctl parse-oxm loose;oxm;
413;ovs-ofctl.at:2426;experimenter OXM encoding;;
414;ovs-ofctl.at:2473;check TCP flags expression in OXM and NXM;;
415;ovs-ofctl.at:2505;ovs-ofctl check-vlan;vlan;
416;ovs-ofctl.at:2602;ovs-ofctl -F option and NXM features;;
417;ovs-ofctl.at:2617;ovs-ofctl -F option with flow_mods;;
418;ovs-ofctl.at:2629;ovs-ofctl dump-flows honors -F option;;
419;ovs-ofctl.at:2641;ovs-ofctl dump-flows rejects bad -F option;;
420;ovs-ofctl.at:2650;ovs-ofctl add-flow reports non-normalized flows;;
421;ovs-ofctl.at:2664;ovs-ofctl dump-flows with sorting;sort;
422;ovs-ofctl.at:2767;ovs-ofctl dump-flows --names;port names;
423;ovs-ofctl.at:2804;ovs-ofctl diff-flows;;
424;ovs-ofctl.at:2828;ovs-ofctl diff-flows - tunnel metadata;;
425;ovs-ofctl.at:2864;ovs-ofctl diff-flows - suppress false differences;;
426;ovs-ofctl.at:2881;ovs-ofctl -F and -O interaction;;
427;ovs-ofctl.at:2902;ovs-ofctl ofp-parse;;
428;ovs-ofctl.at:2920;tcp flags - filtering;;
429;ovs-ofctl.at:2989;ovs-ofctl rule with importance;;
430;ovs-ofctl.at:3016;ovs-ofctl replace-flows with importance;;
431;ovs-ofctl.at:3035;ovs-ofctl replace-flows with --bundle;;
432;ovs-ofctl.at:3163;ovs-ofctl ct-flush-zone;;
433;odp.at:3;OVS datapath key parsing and formatting - valid forms;;
434;odp.at:103;OVS datapath wildcarded key parsing and formatting - valid forms;;
435;odp.at:181;OVS datapath wildcarded key filtering.;;
436;odp.at:246;OVS datapath actions parsing and formatting - valid forms;;
437;odp.at:367;OVS datapath actions parsing and formatting - invalid forms;;
438;mpls-xlate.at:3;MPLS xlate action;;
439;mpls-xlate.at:138;MPLS xlate action - patch-port;;
440;mpls-xlate.at:182;MPLS xlate action - group bucket;;
441;multipath.at:10;modulo_n multipath link selection;;
442;multipath.at:78;hash_threshold multipath link selection;;
443;multipath.at:146;hrw multipath link selection;;
444;multipath.at:214;iter_hash multipath link selection;;
445;multipath.at:282;multipath action missing argument;;
446;multipath.at:288;multipath action bad fields;;
447;multipath.at:294;multipath action bad algorithm;;
448;multipath.at:300;multipath action bad n_links;;
449;multipath.at:306;multipath action destination too narrow;;
450;learn.at:3;learning action - parsing and formatting;;
451;learn.at:28;learning action - parsing and formatting - illegal in_port_oxm;;
452;learn.at:37;learning action - parsing and formatting - OXM;;
453;learn.at:50;learning action - examples;;
454;learn.at:68;learning action - satisfied prerequisites;;
455;learn.at:83;learning action - invalid prerequisites;;
456;learn.at:98;learning action - too-long immediate value;;
457;learn.at:112;learning action - standard VLAN+MAC learning;;
458;learn.at:178;learning action - learn refreshes hard_age;;
459;learn.at:244;learning action - TCPv4 port learning;;
460;learn.at:269;learning action - TCPv6 port learning;;
461;learn.at:300;learning action - self-modifying flow;;
462;learn.at:342;learning action - self-modifying flow with idle_timeout;;
463;learn.at:400;learning action - self-modifying flow with hard_timeout;;
464;learn.at:496;learning action - fin_timeout feature;;
465;learn.at:510;learning action - delete_learned feature;;
466;learn.at:628;learning action - limit;;
467;learn.at:667;learning action - limit result_dst;;
468;learn.at:700;learning action - different limits;;
469;vconn.at:20;unix vconn - refuse connection;;
470;vconn.at:20;unix vconn - accept then close;;
471;vconn.at:20;unix vconn - read hello;;
472;vconn.at:20;unix vconn - send plain hello;;
473;vconn.at:20;unix vconn - send long hello;;
474;vconn.at:20;unix vconn - send echo hello;;
475;vconn.at:20;unix vconn - send short hello;;
476;vconn.at:20;unix vconn - send invalid version hello;;
477;vconn.at:21;tcp vconn - refuse connection;;
478;vconn.at:21;tcp vconn - accept then close;;
479;vconn.at:21;tcp vconn - read hello;;
480;vconn.at:21;tcp vconn - send plain hello;;
481;vconn.at:21;tcp vconn - send long hello;;
482;vconn.at:21;tcp vconn - send echo hello;;
483;vconn.at:21;tcp vconn - send short hello;;
484;vconn.at:21;tcp vconn - send invalid version hello;;
485;vconn.at:22;ssl vconn - refuse connection;;
486;vconn.at:22;ssl vconn - accept then close;;
487;vconn.at:22;ssl vconn - read hello;;
488;vconn.at:22;ssl vconn - send plain hello;;
489;vconn.at:22;ssl vconn - send long hello;;
490;vconn.at:22;ssl vconn - send echo hello;;
491;vconn.at:22;ssl vconn - send short hello;;
492;vconn.at:22;ssl vconn - send invalid version hello;;
493;file_name.at:13;components of \"/usr/lib\" are \"/usr\", \"lib\";dir_name base_name;
494;file_name.at:14;components of \"/usr/\" are \"/\", \"usr\";dir_name base_name;
495;file_name.at:15;components of \"usr\" are \".\", \"usr\";dir_name base_name;
496;file_name.at:16;components of \"/\" are \"/\", \"/\";dir_name base_name;
497;file_name.at:17;components of \".\" are \".\", \".\";dir_name base_name;
498;file_name.at:18;components of \"..\" are \".\", \"..\";dir_name base_name;
499;file_name.at:19;components of \"//\" are \"//\", \"//\";dir_name base_name;
500;file_name.at:20;components of \"//foo\" are \"//\", \"foo\";dir_name base_name;
501;file_name.at:21;components of \"\" are \".\", \".\";dir_name base_name;
502;file_name.at:24;components of \"dir/file\" are \"dir\", \"file\";dir_name base_name;
503;file_name.at:25;components of \"dir/file/\" are \"dir\", \"file\";dir_name base_name;
504;file_name.at:26;components of \"dir/file//\" are \"dir\", \"file\";dir_name base_name;
505;file_name.at:27;components of \"///foo\" are \"/\", \"foo\";dir_name base_name;
506;file_name.at:37;follow_symlinks - relative symlinks;;
507;file_name.at:54;follow_symlinks - absolute symlinks;;
508;file_name.at:71;follow_symlinks - symlinks to directories;;
509;file_name.at:84;follow_symlinks - nonexistent targets;;
510;file_name.at:92;follow_symlinks - regular files;;
511;file_name.at:97;follow_symlinks - device targets;;
512;file_name.at:106;follow_symlinks - nonexistent files;;
513;file_name.at:114;follow_symlinks - symlink loop;;
514;aes128.at:10;wikipedia test vector 1;aes128;
515;aes128.at:16;wikipedia test vector 2;aes128;
516;aes128.at:22;NIST KAT ECBKeySbox128e vector 0;aes128;
517;aes128.at:28;NIST KAT ECBKeySbox128e vector 1;aes128;
518;aes128.at:34;NIST KAT ECBKeySbox128e vector 2;aes128;
519;aes128.at:40;NIST KAT ECBKeySbox128e vector 3;aes128;
520;aes128.at:46;NIST KAT ECBKeySbox128e vector 4;aes128;
521;aes128.at:52;NIST KAT ECBKeySbox128e vector 5;aes128;
522;aes128.at:58;NIST KAT ECBKeySbox128e vector 6;aes128;
523;aes128.at:64;NIST KAT ECBKeySbox128e vector 7;aes128;
524;aes128.at:70;NIST KAT ECBKeySbox128e vector 8;aes128;
525;aes128.at:76;NIST KAT ECBKeySbox128e vector 9;aes128;
526;aes128.at:82;NIST KAT ECBKeySbox128e vector 10;aes128;
527;aes128.at:88;NIST KAT ECBKeySbox128e vector 11;aes128;
528;aes128.at:94;NIST KAT ECBKeySbox128e vector 12;aes128;
529;aes128.at:100;NIST KAT ECBKeySbox128e vector 13;aes128;
530;aes128.at:106;NIST KAT ECBKeySbox128e vector 14;aes128;
531;aes128.at:112;NIST KAT ECBKeySbox128e vector 15;aes128;
532;aes128.at:118;NIST KAT ECBKeySbox128e vector 16;aes128;
533;aes128.at:124;NIST KAT ECBKeySbox128e vector 17;aes128;
534;aes128.at:130;NIST KAT ECBKeySbox128e vector 18;aes128;
535;aes128.at:136;NIST KAT ECBKeySbox128e vector 19;aes128;
536;aes128.at:142;NIST KAT ECBKeySbox128e vector 20;aes128;
537;unixctl-py.at:20;unixctl ovs-vswitchd exit - Python2;python unixctl;
538;unixctl-py.at:21;unixctl ovs-vswitchd exit - Python3;python unixctl;
539;unixctl-py.at:38;unixctl ovs-vswitchd list-commands - Python2;;
540;unixctl-py.at:39;unixctl ovs-vswitchd list-commands - Python3;;
541;unixctl-py.at:84;unixctl ovs-vswitchd arguments - Python2;;
542;unixctl-py.at:85;unixctl ovs-vswitchd arguments - Python3;;
543;unixctl-py.at:109;unixctl bad target - Python2;;
544;unixctl-py.at:110;unixctl bad target - Python3;;
545;unixctl-py.at:183;unixctl server - Python2;;
546;unixctl-py.at:184;unixctl server - Python3;;
547;unixctl-py.at:192;unixctl server errors - Python2;;
548;unixctl-py.at:193;unixctl server errors - Python3;;
549;uuid.at:15;UUID generation, parsing, serialization;uuid;
550;json.at:83;empty array - C;json positive;
551;json.at:83;empty array - Python2;json positive python;
552;json.at:83;empty array - Python3;json positive python;
553;json.at:84;single-element array - C;json positive;
554;json.at:84;single-element array - Python2;json positive python;
555;json.at:84;single-element array - Python3;json positive python;
556;json.at:85;2-element array - C;json positive;
557;json.at:85;2-element array - Python2;json positive python;
558;json.at:85;2-element array - Python3;json positive python;
559;json.at:86;many-element array - C;json positive;
560;json.at:86;many-element array - Python2;json positive python;
561;json.at:86;many-element array - Python3;json positive python;
562;json.at:89;missing comma - C;json negative;
563;json.at:89;missing comma - Python2;json negative python;
564;json.at:89;missing comma - Python3;json negative python;
565;json.at:91;trailing comma not allowed - C;json negative;
566;json.at:91;trailing comma not allowed - Python2;json negative python;
567;json.at:91;trailing comma not allowed - Python3;json negative python;
568;json.at:93;doubled comma not allowed - C;json negative;
569;json.at:93;doubled comma not allowed - Python2;json negative python;
570;json.at:93;doubled comma not allowed - Python3;json negative python;
571;json.at:98;empty string - C;json positive;
572;json.at:98;empty string - Python2;json positive python;
573;json.at:98;empty string - Python3;json positive python;
574;json.at:99;1-character strings - C;json positive;
575;json.at:99;1-character strings - Python2;json positive python;
576;json.at:99;1-character strings - Python3;json positive python;
577;json.at:102;escape sequences - C;json positive;
578;json.at:102;escape sequences - Python2;json positive python;
579;json.at:102;escape sequences - Python3;json positive python;
580;json.at:105;Unicode escape sequences - C;json positive;
581;json.at:105;Unicode escape sequences - Python2;json positive python;
582;json.at:105;Unicode escape sequences - Python3;json positive python;
583;json.at:108;surrogate pairs - C;json positive;
584;json.at:111;surrogate pairs - Python;json positive python;
585;json.at:114;a string by itself is not valid JSON - C;json negative;
586;json.at:114;a string by itself is not valid JSON - Python2;json negative python;
587;json.at:114;a string by itself is not valid JSON - Python3;json negative python;
588;json.at:116;end of line in quoted string - C;json negative;
589;json.at:116;end of line in quoted string - Python2;json negative python;
590;json.at:116;end of line in quoted string - Python3;json negative python;
591;json.at:120;formfeed in quoted string - C;json negative;
592;json.at:120;formfeed in quoted string - Python2;json negative python;
593;json.at:120;formfeed in quoted string - Python3;json negative python;
594;json.at:123;bad escape in quoted string - C;json negative;
595;json.at:123;bad escape in quoted string - Python2;json negative python;
596;json.at:123;bad escape in quoted string - Python3;json negative python;
597;json.at:126;\\u must be followed by 4 hex digits (1) - C;json negative;
598;json.at:126;\\u must be followed by 4 hex digits (1) - Python2;json negative python;
599;json.at:126;\\u must be followed by 4 hex digits (1) - Python3;json negative python;
600;json.at:129;\\u must be followed by 4 hex digits (2) - C;json negative;
601;json.at:129;\\u must be followed by 4 hex digits (2) - Python2;json negative python;
602;json.at:129;\\u must be followed by 4 hex digits (2) - Python3;json negative python;
603;json.at:132;isolated leading surrogate not allowed - C;json negative;
604;json.at:132;isolated leading surrogate not allowed - Python2;json negative python;
605;json.at:132;isolated leading surrogate not allowed - Python3;json negative python;
606;json.at:135;surrogatess must paired properly - C;json negative;
607;json.at:135;surrogatess must paired properly - Python2;json negative python;
608;json.at:135;surrogatess must paired properly - Python3;json negative python;
609;json.at:138;null bytes not allowed - C;json negative;
610;json.at:138;null bytes not allowed - Python2;json negative python;
611;json.at:138;null bytes not allowed - Python3;json negative python;
612;json.at:142;properly quoted backslash at end of string - C;json positive;
613;json.at:142;properly quoted backslash at end of string - Python2;json positive python;
614;json.at:142;properly quoted backslash at end of string - Python3;json positive python;
615;json.at:145;stray backslash at end of string - C;json negative;
616;json.at:145;stray backslash at end of string - Python2;json negative python;
617;json.at:145;stray backslash at end of string - Python3;json negative python;
618;json.at:149;end of input in quoted string - C;json negative;
619;json.at:156;end of input in quoted string - Python;json negative python;
620;json.at:167;empty object - C;json positive;
621;json.at:167;empty object - Python2;json positive python;
622;json.at:167;empty object - Python3;json positive python;
623;json.at:168;simple object - C;json positive;
624;json.at:168;simple object - Python2;json positive python;
625;json.at:168;simple object - Python3;json positive python;
626;json.at:171;bad value - C;json negative;
627;json.at:171;bad value - Python2;json negative python;
628;json.at:171;bad value - Python3;json negative python;
629;json.at:173;missing colon - C;json negative;
630;json.at:173;missing colon - Python2;json negative python;
631;json.at:173;missing colon - Python3;json negative python;
632;json.at:175;missing comma - C;json negative;
633;json.at:175;missing comma - Python2;json negative python;
634;json.at:175;missing comma - Python3;json negative python;
635;json.at:177;trailing comma not allowed - C;json negative;
636;json.at:177;trailing comma not allowed - Python2;json negative python;
637;json.at:177;trailing comma not allowed - Python3;json negative python;
638;json.at:180;doubled comma not allowed - C;json negative;
639;json.at:180;doubled comma not allowed - Python2;json negative python;
640;json.at:180;doubled comma not allowed - Python3;json negative python;
641;json.at:183;names must be strings - C;json negative;
642;json.at:183;names must be strings - Python2;json negative python;
643;json.at:183;names must be strings - Python3;json negative python;
644;json.at:189;null - C;json positive;
645;json.at:189;null - Python2;json positive python;
646;json.at:189;null - Python3;json positive python;
647;json.at:190;false - C;json positive;
648;json.at:190;false - Python2;json positive python;
649;json.at:190;false - Python3;json positive python;
650;json.at:191;true - C;json positive;
651;json.at:191;true - Python2;json positive python;
652;json.at:191;true - Python3;json positive python;
653;json.at:192;a literal by itself is not valid JSON - C;json negative;
654;json.at:192;a literal by itself is not valid JSON - Python2;json negative python;
655;json.at:192;a literal by itself is not valid JSON - Python3;json negative python;
656;json.at:194;nullify is invalid - C;json negative;
657;json.at:194;nullify is invalid - Python2;json negative python;
658;json.at:194;nullify is invalid - Python3;json negative python;
659;json.at:196;nubs is invalid - C;json negative;
660;json.at:196;nubs is invalid - Python2;json negative python;
661;json.at:196;nubs is invalid - Python3;json negative python;
662;json.at:198;xxx is invalid - C;json negative;
663;json.at:198;xxx is invalid - Python2;json negative python;
664;json.at:198;xxx is invalid - Python3;json negative python;
665;json.at:203;integers expressed as reals - C;json positive;
666;json.at:203;integers expressed as reals - Python2;json positive python;
667;json.at:203;integers expressed as reals - Python3;json positive python;
668;json.at:213;large integers - C;json positive;
669;json.at:213;large integers - Python2;json positive python;
670;json.at:213;large integers - Python3;json positive python;
671;json.at:217;large integers expressed as reals - C;json positive;
672;json.at:217;large integers expressed as reals - Python2;json positive python;
673;json.at:217;large integers expressed as reals - Python3;json positive python;
674;json.at:225;C - large integers that overflow to reals;json positive;
675;json.at:229;large integers that overflow to reals - Python2;json positive python;
676;json.at:229;large integers that overflow to reals - Python3;json positive python;
677;json.at:234;negative zero - C;json positive;
678;json.at:234;negative zero - Python2;json positive python;
679;json.at:234;negative zero - Python3;json positive python;
680;json.at:239;reals - C;json positive;
681;json.at:239;reals - Python2;json positive python;
682;json.at:239;reals - Python3;json positive python;
683;json.at:243;scientific notation - C;json positive;
684;json.at:243;scientific notation - Python2;json positive python;
685;json.at:243;scientific notation - Python3;json positive python;
686;json.at:250;C - +/- DBL_MAX;json positive;
687;json.at:254;+/- DBL_MAX - Python2;json positive python;
688;json.at:254;+/- DBL_MAX - Python3;json positive python;
689;json.at:259;negative reals - C;json positive;
690;json.at:259;negative reals - Python2;json positive python;
691;json.at:259;negative reals - Python3;json positive python;
692;json.at:263;negative scientific notation - C;json positive;
693;json.at:263;negative scientific notation - Python2;json positive python;
694;json.at:263;negative scientific notation - Python3;json positive python;
695;json.at:267;1e-9999 underflows to 0 - C;json positive;
696;json.at:267;1e-9999 underflows to 0 - Python2;json positive python;
697;json.at:267;1e-9999 underflows to 0 - Python3;json positive python;
698;json.at:271;a number by itself is not valid JSON - C;json negative;
699;json.at:271;a number by itself is not valid JSON - Python2;json negative python;
700;json.at:271;a number by itself is not valid JSON - Python3;json negative python;
701;json.at:273;leading zeros not allowed - C;json negative;
702;json.at:273;leading zeros not allowed - Python2;json negative python;
703;json.at:273;leading zeros not allowed - Python3;json negative python;
704;json.at:277;1e9999 is too big - C;json negative;
705;json.at:277;1e9999 is too big - Python2;json negative python;
706;json.at:277;1e9999 is too big - Python3;json negative python;
707;json.at:281;exponent bigger than INT_MAX - C;json negative;
708;json.at:281;exponent bigger than INT_MAX - Python2;json negative python;
709;json.at:281;exponent bigger than INT_MAX - Python3;json negative python;
710;json.at:285;decimal point must be followed by digit - C;json negative;
711;json.at:285;decimal point must be followed by digit - Python2;json negative python;
712;json.at:285;decimal point must be followed by digit - Python3;json negative python;
713;json.at:289;exponent must contain at least one digit (1) - C;json negative;
714;json.at:289;exponent must contain at least one digit (1) - Python2;json negative python;
715;json.at:289;exponent must contain at least one digit (1) - Python3;json negative python;
716;json.at:293;exponent must contain at least one digit (2) - C;json negative;
717;json.at:293;exponent must contain at least one digit (2) - Python2;json negative python;
718;json.at:293;exponent must contain at least one digit (2) - Python3;json negative python;
719;json.at:297;exponent must contain at least one digit (3) - C;json negative;
720;json.at:297;exponent must contain at least one digit (3) - Python2;json negative python;
721;json.at:297;exponent must contain at least one digit (3) - Python3;json negative python;
722;json.at:304;RFC 4267 object example - C;json positive;
723;json.at:304;RFC 4267 object example - Python2;json positive python;
724;json.at:304;RFC 4267 object example - Python3;json positive python;
725;json.at:320;RFC 4267 array example - C;json positive;
726;json.at:320;RFC 4267 array example - Python2;json positive python;
727;json.at:320;RFC 4267 array example - Python3;json positive python;
728;json.at:347;trailing garbage - C;json negative;
729;json.at:347;trailing garbage - Python2;json negative python;
730;json.at:347;trailing garbage - Python3;json negative python;
731;json.at:349;formfeeds are not valid white space - C;json negative;
732;json.at:349;formfeeds are not valid white space - Python2;json negative python;
733;json.at:349;formfeeds are not valid white space - Python3;json negative python;
734;json.at:351;';' is not a valid token - C;json negative;
735;json.at:351;';' is not a valid token - Python2;json negative python;
736;json.at:351;';' is not a valid token - Python3;json negative python;
737;json.at:353;arrays nesting too deep - C;json negative;
738;json.at:353;arrays nesting too deep - Python2;json negative python;
739;json.at:353;arrays nesting too deep - Python3;json negative python;
740;json.at:357;objects nesting too deep - C;json negative;
741;json.at:357;objects nesting too deep - Python2;json negative python;
742;json.at:357;objects nesting too deep - Python3;json negative python;
743;json.at:362;input may not be empty;json negative;
744;json.at:370;multiple adjacent objects - C;json positive;
745;json.at:370;multiple adjacent objects - Python2;json positive python;
746;json.at:370;multiple adjacent objects - Python3;json positive python;
747;json.at:375;multiple space-separated objects - C;json positive;
748;json.at:375;multiple space-separated objects - Python2;json positive python;
749;json.at:375;multiple space-separated objects - Python3;json positive python;
750;json.at:380;multiple objects on separate lines - C;json positive;
751;json.at:380;multiple objects on separate lines - Python2;json positive python;
752;json.at:380;multiple objects on separate lines - Python3;json positive python;
753;json.at:387;multiple objects and arrays - C;json positive;
754;json.at:387;multiple objects and arrays - Python2;json positive python;
755;json.at:387;multiple objects and arrays - Python3;json positive python;
756;json.at:393;garbage between multiple objects - C;json negative;
757;json.at:393;garbage between multiple objects - Python2;json negative python;
758;json.at:393;garbage between multiple objects - Python3;json negative python;
759;json.at:397;garbage after multiple objects - C;json negative;
760;json.at:397;garbage after multiple objects - Python2;json negative python;
761;json.at:397;garbage after multiple objects - Python3;json negative python;
762;jsonrpc.at:3;JSON-RPC request and successful reply;;
763;jsonrpc.at:12;JSON-RPC request and error reply;;
764;jsonrpc.at:21;JSON-RPC notification;;
765;jsonrpc-py.at:15;JSON-RPC request and successful reply - Python2;python jsonrpc;
766;jsonrpc-py.at:16;JSON-RPC request and successful reply - Python3;python jsonrpc;
767;jsonrpc-py.at:30;JSON-RPC request and error reply - Python2;python jsonrpc;
768;jsonrpc-py.at:31;JSON-RPC request and error reply - Python3;python jsonrpc;
769;jsonrpc-py.at:45;JSON-RPC notification - Python2;python jsonrpc;
770;jsonrpc-py.at:46;JSON-RPC notification - Python3;python jsonrpc;
771;tunnel.at:3;tunnel - input;;
772;tunnel.at:65;tunnel - ECN decapsulation;;
773;tunnel.at:112;tunnel - output;;
774;tunnel.at:145;tunnel - unencrypted tunnel and not setting skb_mark;;
775;tunnel.at:163;tunnel - unencrypted tunnel and setting skb_mark to 1;;
776;tunnel.at:181;tunnel - unencrypted tunnel and setting skb_mark to 2;;
777;tunnel.at:199;tunnel - ToS and TTL inheritance;;
778;tunnel.at:238;tunnel - set_tunnel;;
779;tunnel.at:273;tunnel - key;;
780;tunnel.at:323;tunnel - key match;;
781;tunnel.at:373;tunnel - Geneve;;
782;tunnel.at:385;tunnel - VXLAN;;
783;tunnel.at:397;tunnel - LISP;;
784;tunnel.at:409;tunnel - different VXLAN UDP port;;
785;tunnel.at:438;ofproto-dpif - set_field - tun_src/tun_dst/tun_id;;
786;tunnel.at:469;tunnel - Geneve metadata;;
787;tunnel.at:617;tunnel - Geneve option present;;
788;tunnel.at:656;tunnel - concomitant IPv6 and IPv4 tunnels;;
789;tunnel.at:683;tunnel - Mix Geneve/GRE options;;
790;tunnel-push-pop.at:3;tunnel_push_pop - action;;
791;tunnel-push-pop.at:253;tunnel_push_pop - packet_out;;
792;tunnel-push-pop.at:291;tunnel_push_pop - underlay bridge match;;
793;tunnel-push-pop-ipv6.at:3;tunnel_push_pop_ipv6 - action;;
794;ovs-router.at:3;appctl - route/add with gateway;ovs_router;
795;ovs-router.at:15;appctl - route/lookup;ovs_router;
796;ovs-router.at:51;appctl - route/lookup6;ovs_router;
797;lockfile.at:15;lock and unlock;lockfile;
798;lockfile.at:17;lock and unlock twice;lockfile;
799;lockfile.at:19;lock blocks same process;lockfile;
800;lockfile.at:23;lock blocks same process twice;lockfile;
801;lockfile.at:28;lock blocks other process;lockfile;
802;lockfile.at:33;lock twice blocks other process;lockfile;
803;lockfile.at:39;lock and unlock allows other process;lockfile;
804;lockfile.at:41;lock multiple;lockfile;
805;lockfile.at:45;lock symlink;lockfile;
806;lockfile.at:52;lock symlink to dir;lockfile;
807;reconnect.at:32;nothing happens if not enabled - C;reconnect;
808;reconnect.at:32;nothing happens if not enabled - Python2;reconnect;
809;reconnect.at:32;nothing happens if not enabled - Python3;reconnect;
810;reconnect.at:43;quick connect, idle disconnect - C;reconnect;
811;reconnect.at:43;quick connect, idle disconnect - Python2;reconnect;
812;reconnect.at:43;quick connect, idle disconnect - Python3;reconnect;
813;reconnect.at:99;slow connect, idle disconnect - C;reconnect;
814;reconnect.at:99;slow connect, idle disconnect - Python2;reconnect;
815;reconnect.at:99;slow connect, idle disconnect - Python3;reconnect;
816;reconnect.at:169;connect backs off - C;reconnect;
817;reconnect.at:169;connect backs off - Python2;reconnect;
818;reconnect.at:169;connect backs off - Python3;reconnect;
819;reconnect.at:368;connections with no data preserve backoff - C;reconnect;
820;reconnect.at:368;connections with no data preserve backoff - Python2;reconnect;
821;reconnect.at:368;connections with no data preserve backoff - Python3;reconnect;
822;reconnect.at:532;brief connection preserves backoff - C;reconnect;
823;reconnect.at:532;brief connection preserves backoff - Python2;reconnect;
824;reconnect.at:532;brief connection preserves backoff - Python3;reconnect;
825;reconnect.at:663;brief connection with data preserves backoff - C;reconnect;
826;reconnect.at:663;brief connection with data preserves backoff - Python2;reconnect;
827;reconnect.at:663;brief connection with data preserves backoff - Python3;reconnect;
828;reconnect.at:824;long connection resets backoff - C;reconnect;
829;reconnect.at:824;long connection resets backoff - Python2;reconnect;
830;reconnect.at:824;long connection resets backoff - Python3;reconnect;
831;reconnect.at:985;connection attempt fails quickly - C;reconnect;
832;reconnect.at:985;connection attempt fails quickly - Python2;reconnect;
833;reconnect.at:985;connection attempt fails quickly - Python3;reconnect;
834;reconnect.at:1040;backoff-free tries work - C;reconnect;
835;reconnect.at:1040;backoff-free tries work - Python2;reconnect;
836;reconnect.at:1040;backoff-free tries work - Python3;reconnect;
837;reconnect.at:1094;max-tries of 1 honored - C;reconnect;
838;reconnect.at:1094;max-tries of 1 honored - Python2;reconnect;
839;reconnect.at:1094;max-tries of 1 honored - Python3;reconnect;
840;reconnect.at:1154;max-tries of 0 honored - C;reconnect;
841;reconnect.at:1154;max-tries of 0 honored - Python2;reconnect;
842;reconnect.at:1154;max-tries of 0 honored - Python3;reconnect;
843;reconnect.at:1170;passive mode - C;reconnect;
844;reconnect.at:1170;passive mode - Python2;reconnect;
845;reconnect.at:1170;passive mode - Python3;reconnect;
846;ovs-vswitchd.at:7;ovs-vswitchd detaches correctly with empty db;;
847;ovs-vswitchd.at:36;ovs-vswitchd -- stats-update-interval;;
848;ovs-vswitchd.at:69;ovs-vswitchd -- start additional ovs-vswitchd process;;
849;ovs-vswitchd.at:94;ovs-vswitchd -- switch over to another ovs-vswitchd process;;
850;ovs-vswitchd.at:134;ovs-vswitchd -- invalid database path;;
851;ovs-vswitchd.at:159;ovs-vswitchd -- set service controller;;
852;ovs-vswitchd.at:176;ovs-vswitchd -- Compatible with OVSDB server - w/o monitor_cond;;
853;ovs-vswitchd.at:197;ovs-vswitchd - do not create sockets with unsafe names;;
854;ovs-vswitchd.at:230;ovs-vswitchd - set datapath IDs;;
855;ofproto.at:3;ofproto - echo request;;
856;ofproto.at:9;ofproto - handling messages with bad version;monitor;
857;ofproto.at:33;ofproto - feature request, config request;;
858;ofproto.at:50;ofproto - set OpenFlow port number;;
859;ofproto.at:83;ofproto - port stats - (OpenFlow 1.0);;
860;ofproto.at:94;ofproto - port stats - (OpenFlow 1.2);;
861;ofproto.at:105;ofproto - port stats - (OpenFlow 1.4);;
862;ofproto.at:122;ofproto - port-desc stats (OpenFlow 1.0);;
863;ofproto.at:137;ofproto - port-desc stats (OpenFlow 1.2);;
864;ofproto.at:150;ofproto - port-desc stats (OpenFlow 1.5);;
865;ofproto.at:184;ofproto - port-desc stats (OpenFlow 1.6);;
866;ofproto.at:260;ofproto - queue stats - (OpenFlow 1.0);;
867;ofproto.at:261;ofproto - queue stats - (OpenFlow 1.1);;
868;ofproto.at:262;ofproto - queue stats - (OpenFlow 1.2);;
869;ofproto.at:263;ofproto - queue stats - (OpenFlow 1.3);;
870;ofproto.at:264;ofproto - queue stats - (OpenFlow 1.4);;
871;ofproto.at:268;ofproto - queue configuration - (OpenFlow 1.0);;
872;ofproto.at:290;ofproto - queue configuration - (OpenFlow 1.1);;
873;ofproto.at:305;ofproto - queue configuration - (OpenFlow 1.2);;
874;ofproto.at:327;ofproto - queue configuration - (OpenFlow 1.4);;
875;ofproto.at:360;ofproto - no group support (OpenFlow 1.0);;
876;ofproto.at:379;ofproto - del group (OpenFlow 1.1);;
877;ofproto.at:420;ofproto - add indirect group;;
878;ofproto.at:433;ofproto - group mod with mod and add_or_mod command;;
879;ofproto.at:462;ofproto - del group (OpenFlow 1.5);;
880;ofproto.at:502;ofproto - del group deletes flows;;
881;ofproto.at:543;ofproto - insert group buckets;;
882;ofproto.at:665;ofproto - remove group buckets;;
883;ofproto.at:719;ofproto - bundle del group (OpenFlow 1.3);;
884;ofproto.at:757;ofproto - bundle add indirect group;;
885;ofproto.at:772;ofproto - bundle group mod with mod and add_or_mod command;;
886;ofproto.at:798;ofproto - bundle del group (OpenFlow 1.5);;
887;ofproto.at:833;ofproto - bundle del group deletes flows;;
888;ofproto.at:874;ofproto - bundle insert group buckets;;
889;ofproto.at:971;ofproto - bundle remove group buckets;;
890;ofproto.at:1028;ofproto - flow mod checks group availability;;
891;ofproto.at:1045;ofproto - bundle flow mod checks group availability;;
892;ofproto.at:1065;ofproto - group description;;
893;ofproto.at:1078;ofproto - group description;;
894;ofproto.at:1091;ofproto - group features;;
895;ofproto.at:1117;ofproto - group stats (OpenFlow 1.1);;
896;ofproto.at:1141;ofproto - group stats (OpenFlow 1.3);;
897;ofproto.at:1165;ofproto - group stats (OpenFlow 1.5);;
898;ofproto.at:1189;ofproto - group add then bridge delete (OpenFlow 1.3);;
899;ofproto.at:1204;ofproto - mod-port (OpenFlow 1.0);;
900;ofproto.at:1238;ofproto - mod-port (OpenFlow 1.2);;
901;ofproto.at:1269;ofproto - mod-port (OpenFlow 1.4);;
902;ofproto.at:1301;ofproto - mod-port (OpenFlow 1.6);;
903;ofproto.at:1333;ofproto - basic flow_mod commands (NXM);;
904;ofproto.at:1355;ofproto - basic flow_mod commands (OpenFlow 1.0);;
905;ofproto.at:1380;ofproto - add-flow and flags;;
906;ofproto.at:1412;ofproto - basic flow_mod commands (OpenFlow 1.1);;
907;ofproto.at:1435;ofproto - flow_mod negative test (OpenFlow 1.1);;
908;ofproto.at:1449;ofproto - set-field flow_mod commands (NXM);;
909;ofproto.at:1462;ofproto - basic flow_mod commands (OpenFlow 1.2);;
910;ofproto.at:1481;ofproto - set-field flow_mod commands (OF1.2);;
911;ofproto.at:1494;ofproto - dump flows with cookie;;
912;ofproto.at:1518;ofproto - mod flow with cookie change (OpenFlow 1.0);;
913;ofproto.at:1534;ofproto - mod flow with cookie change (NXM);;
914;ofproto.at:1550;ofproto - no mod flow with cookie change (OpenFlow 1.1);;
915;ofproto.at:1566;ofproto - no mod flow with cookie change (OpenFlow 1.2);;
916;ofproto.at:1582;ofproto - mod flows based on cookie mask (OpenFlow 1.0);;
917;ofproto.at:1604;ofproto - mod flows based on cookie mask (OpenFlow 1.1);;
918;ofproto.at:1626;ofproto - mod flows based on cookie mask (OpenFlow 1.2);;
919;ofproto.at:1649;ofproto - mod flows based on cookie mask with cookie change;;
920;ofproto.at:1671;ofproto - mod flow with cookie miss (mask==0) - NXM;;
921;ofproto.at:1681;ofproto - mod flow with cookie miss (mask==0) - OF1.1;;
922;ofproto.at:1691;ofproto - mod flow with cookie miss (mask==0) - OF1.2;;
923;ofproto.at:1700;ofproto - mod flow with cookie miss (mask!=0) - NXM;;
924;ofproto.at:1709;ofproto - mod flow with cookie miss (mask!=0) - OF1.1;;
925;ofproto.at:1718;ofproto - mod flow with cookie miss (mask!=0) - OF1.2;;
926;ofproto.at:1727;ofproto - del flows with cookies;;
927;ofproto.at:1746;ofproto - del flows based on cookie;;
928;ofproto.at:1767;ofproto - del flows based on cookie mask;;
929;ofproto.at:1786;ofproto - del flows based on table id (NXM);;
930;ofproto.at:1818;ofproto - del flows based on table id (OpenFlow 1.1);;
931;ofproto.at:1851;ofproto - del flows based on table id (OpenFlow 1.2);;
932;ofproto.at:1883;ofproto - flow_mod with out_port matching (OpenFlow 1.0);;
933;ofproto.at:1919;ofproto - flow_mod with out_port matching (OpenFlow 1.1);;
934;ofproto.at:1955;ofproto - flow_mod with out_group matching (OpenFlow 1.1);;
935;ofproto.at:1997;ofproto - bundle flow_mod with out group matching (OpenFlow 1.4);;
936;ofproto.at:2047;ofproto - bundle packet-out (OpenFlow 1.4);;
937;ofproto.at:2089;ofproto - bundle packet-out, failing bundle commit (OpenFlow 1.4);;
938;ofproto.at:2130;ofproto - bundle packet-out makes bundle commit to fail(OpenFlow 1.4);;
939;ofproto.at:2172;ofproto - flow table configuration (OpenFlow 1.0);;
940;ofproto.at:2231;ofproto - hidden rules not in table stats;;
941;ofproto.at:2282;ofproto - flow table configuration (OpenFlow 1.2);;
942;ofproto.at:2386;ofproto - table features (OpenFlow 1.3);;
943;ofproto.at:2632;ofproto - table description (OpenFlow 1.4);;
944;ofproto.at:2662;ofproto - hard limits on flow table size (OpenFlow 1.0);;
945;ofproto.at:2708;ofproto - hard limits on flow table size (OpenFlow 1.2);;
946;ofproto.at:2748;ofproto - eviction upon table overflow (OpenFlow 1.0);;
947;ofproto.at:2807;ofproto - eviction upon table overflow (OpenFlow 1.2);;
948;ofproto.at:2867;ofproto - eviction using importance upon table overflow (OpenFlow 1.4);;
949;ofproto.at:2933;ofproto - eviction upon table overflow, with fairness (OpenFlow 1.0);;
950;ofproto.at:3015;ofproto - eviction upon table overflow, with fairness (OpenFlow 1.2);;
951;ofproto.at:3097;ofproto - eviction upon table overflow, with modified hard timeout;;
952;ofproto.at:3141;ofproto - eviction upon table overflow, with modified idle timeout;;
953;ofproto.at:3185;ofproto - asynchronous message control (OpenFlow 1.0);;
954;ofproto.at:3287;ofproto - asynchronous message control (OpenFlow 1.2);;
955;ofproto.at:3390;ofproto - asynchronous message control (OpenFlow 1.3);;
956;ofproto.at:3505;ofproto - asynchronous message control (OpenFlow 1.4);;
957;ofproto.at:3714;ofproto - asynchronous message control (OpenFlow 1.5);;
958;ofproto.at:3788;ofproto - controller role (OpenFlow 1.2);;
959;ofproto.at:3853;ofproto - controller role (OpenFlow 1.4);;
960;ofproto.at:3918;ofproto - requestforward (OpenFlow 1.4);;
961;ofproto.at:4010;ofproto - packet-out from controller (OpenFlow 1.0);;
962;ofproto.at:4046;ofproto - packet-out from controller (OpenFlow 1.2);;
963;ofproto.at:4079;ofproto - packet-out from controller (OpenFlow 1.1);;
964;ofproto.at:4109;ofproto - packet-out from controller (OpenFlow 1.5);;
965;ofproto.at:4139;ofproto - packet-out with metadata and userdata (NXT_PACKET_IN2);;
966;ofproto.at:4167;ofproto - packet-out with set_field metadata (OpenFlow 1.5);;
967;ofproto.at:4194;ofproto - packet-out with set_field metadata with packet_type PT_ETH (OpenFlow 1.5);;
968;ofproto.at:4221;ofproto - packet-out with set_field metadata with packet_type PT_IPV4 on PTAP bridge (OpenFlow 1.5);;
969;ofproto.at:4249;ofproto - packet-out with metadata (NXM);;
970;ofproto.at:4277;ofproto - packet-out with metadata (OpenFlow 1.2);;
971;ofproto.at:4305;ofproto - packet-out with metadata and dual set_field (OpenFlow 1.3);;
972;ofproto.at:4332;ofproto - packet-out with tunnel metadata (OpenFlow 1.2);;
973;ofproto.at:4383;ofproto - flow monitoring;monitor;
974;ofproto.at:4520;ofproto - flow monitoring with !own;monitor;
975;ofproto.at:4561;ofproto - flow monitoring with out_port;monitor;
976;ofproto.at:4613;ofproto - flow monitoring pause and resume;monitor;
977;ofproto.at:4718;ofproto - event filtering (OpenFlow 1.3);monitor;
978;ofproto.at:4758;ofproto - ofport_request;;
979;ofproto.at:4814;ofproto - bundle open (OpenFlow 1.4);monitor;
980;ofproto.at:4838;ofproto - bundle double open (OpenFlow 1.4);monitor;
981;ofproto.at:4870;ofproto - bundle close without open (OpenFlow 1.4);monitor;
982;ofproto.at:4894;ofproto - bundle double close (OpenFlow 1.4);monitor;
983;ofproto.at:4933;ofproto - bundle close, different flags (OpenFlow 1.4);monitor;
984;ofproto.at:4965;ofproto - bundle commit without open (OpenFlow 1.4);monitor;
985;ofproto.at:4990;ofproto - bundle commit, different flags (OpenFlow 1.4);monitor;
986;ofproto.at:5022;ofproto - bundle discard without open (OpenFlow 1.4);monitor;
987;ofproto.at:5048;ofproto - bundle with multiple flow mods (OpenFlow 1.4);;
988;ofproto.at:5251;ofproto - failing bundle commit (OpenFlow 1.4);;
989;ofproto.at:5298;ofproto - bundle timeout (OpenFlow 1.4);monitor;
990;ofproto.at:5361;ofproto - bundle open (OpenFlow 1.3);monitor;
991;ofproto.at:5388;ofproto - bundle double open (OpenFlow 1.3);monitor;
992;ofproto.at:5423;ofproto - bundle close without open (OpenFlow 1.3);monitor;
993;ofproto.at:5447;ofproto - bundle double close (OpenFlow 1.3);monitor;
994;ofproto.at:5486;ofproto - bundle close, different flags (OpenFlow 1.3);monitor;
995;ofproto.at:5518;ofproto - bundle commit without open (OpenFlow 1.3);monitor;
996;ofproto.at:5543;ofproto - bundle commit, different flags (OpenFlow 1.3);monitor;
997;ofproto.at:5575;ofproto - bundle discard without open (OpenFlow 1.3);monitor;
998;ofproto.at:5601;ofproto - bundle with multiple flow mods (OpenFlow 1.3);;
999;ofproto.at:5797;ofproto - failing bundle add message (OpenFlow 1.3);;
1000;ofproto.at:5844;ofproto - failing bundle commit (OpenFlow 1.3);;
1001;ofproto.at:5870;ofproto - monitor flows with tun_md;;
1002;ofproto.at:5915;ofproto - flow mod with tunnel metadata;ofp-actions;
1003;ofproto.at:6047;ofproto - flush flows, groups, and meters for controller change;flow flows group meter;
1004;dpif-netdev.at:50;dpif-netdev - netdev-dummy/receive;;
1005;dpif-netdev.at:107;dpif-netdev - dummy interface;;
1006;dpif-netdev.at:108;dpif-netdev - dummy-pmd interface;;
1007;dpif-netdev.at:147;dpif-netdev - miss upcall key matches flow_install - dummy;;
1008;dpif-netdev.at:148;dpif-netdev - miss upcall key matches flow_install - dummy-pmd;;
1009;dpif-netdev.at:190;dpif-netdev - miss upcall key matches flow_dump - dummy;;
1010;dpif-netdev.at:191;dpif-netdev - miss upcall key matches flow_dump - dummy-pmd;;
1011;dpif-netdev.at:193;dpif-netdev - meters;;
1012;pmd.at:67;PMD - creating a thread/add-port;;
1013;pmd.at:89;PMD - multiqueue support;;
1014;pmd.at:121;PMD - pmd-cpu-mask/distribution of rx queues;;
1015;pmd.at:178;PMD - stats;;
1016;pmd.at:245;PMD - reconfigure n_rxq;;
1017;pmd.at:308;PMD - same flow multiple threads;;
1018;pmd.at:351;PMD - change numa node;;
1019;pmd.at:429;PMD - non pmd device;;
1020;pmd.at:479;PMD - add remove ports;;
1021;pmd.at:523;PMD - rxq affinity;;
1022;pmd.at:576;PMD - rxq affinity - NUMA;;
1023;pmd.at:632;PMD - monitor threads;;
1024;pmd.at:669;PMD - dpctl;;
1025;dpctl.at:3;dpctl - add-dp del-dp;;
1026;dpctl.at:19;dpctl - add-if set-if del-if;;
1027;ofproto-dpif.at:3;ofproto-dpif - revalidator/wait;;
1028;ofproto-dpif.at:9;ofproto-dpif - active-backup bonding;;
1029;ofproto-dpif.at:56;ofproto-dpif - balance-slb bonding;;
1030;ofproto-dpif.at:99;ofproto-dpif - balance-tcp bonding;;
1031;ofproto-dpif.at:152;ofproto-dpif - balance-tcp bonding, different recirc flow ;;
1032;ofproto-dpif.at:210;ofproto-dpif - resubmit;;
1033;ofproto-dpif.at:229;ofproto-dpif - goto table;;
1034;ofproto-dpif.at:243;ofproto-dpif - write actions;;
1035;ofproto-dpif.at:260;ofproto-dpif - modify IPv6 Neighbor Solitication (ND);;
1036;ofproto-dpif.at:279;ofproto-dpif - clear actions;;
1037;ofproto-dpif.at:295;ofproto-dpif - group chaining;;
1038;ofproto-dpif.at:308;ofproto-dpif - all group in action list;;
1039;ofproto-dpif.at:323;ofproto-dpif - indirect group in action list;;
1040;ofproto-dpif.at:335;ofproto-dpif - group actions have no effect afterwards;;
1041;ofproto-dpif.at:347;ofproto-dpif - all group in action set;;
1042;ofproto-dpif.at:362;ofproto-dpif - indirect group in action set;;
1043;ofproto-dpif.at:374;ofproto-dpif - patch port with action set;;
1044;ofproto-dpif.at:399;ofproto-dpif - select group;;
1045;ofproto-dpif.at:419;ofproto-dpif - select group with watch port;;
1046;ofproto-dpif.at:431;ofproto-dpif - select group with weight;;
1047;ofproto-dpif.at:443;ofproto-dpif - select group with hash selection method;;
1048;ofproto-dpif.at:490;ofproto-dpif - select group with dp_hash selection method;;
1049;ofproto-dpif.at:528;ofproto-dpif - fast failover group;;
1050;ofproto-dpif.at:540;ofproto-dpif - group stats single bucket;;
1051;ofproto-dpif.at:561;ofproto-dpif - group stats all buckets;;
1052;ofproto-dpif.at:582;ofproto-dpif - registers;;
1053;ofproto-dpif.at:619;ofproto-dpif - extended registers;;
1054;ofproto-dpif.at:640;ofproto-dpif - extended-extended registers;;
1055;ofproto-dpif.at:659;ofproto-dpif - load and move order;;
1056;ofproto-dpif.at:673;ofproto-dpif - copy-field into extended registers;;
1057;ofproto-dpif.at:693;ofproto-dpif - masked set-field into metadata;;
1058;ofproto-dpif.at:715;ofproto-dpif - actset_output;;
1059;ofproto-dpif.at:760;ofproto-dpif - push-pop;;
1060;ofproto-dpif.at:779;ofproto-dpif - output;;
1061;ofproto-dpif.at:800;ofproto-dpif - dec_ttl;;
1062;ofproto-dpif.at:845;ofproto-dpif - dec_ttl without arguments at offset 32 in ofpacts;;
1063;ofproto-dpif.at:862;ofproto-dpif - dec_ttl with arguments at offset 32 in ofpacts;;
1064;ofproto-dpif.at:879;ofproto-dpif - note at offset 24 in ofpacts;;
1065;ofproto-dpif.at:893;ofproto-dpif - note action deep inside ofpacts;;
1066;ofproto-dpif.at:899;ofproto-dpif - output, OFPP_NONE ingress port;;
1067;ofproto-dpif.at:917;ofproto-dpif - DSCP;;
1068;ofproto-dpif.at:944;ofproto-dpif - output/flood flags;;
1069;ofproto-dpif.at:1002;ofproto-dpif - Default Table Miss - OF1.0 (OFPTC_TABLE_MISS_CONTROLLER);;
1070;ofproto-dpif.at:1036;ofproto-dpif - Default Table Miss - OF1.3 (OFPTC_TABLE_MISS_DROP);;
1071;ofproto-dpif.at:1064;ofproto-dpif - Table Miss - goto table and OFPTC_TABLE_MISS_CONTROLLER;;
1072;ofproto-dpif.at:1100;ofproto-dpif - Table Miss - resubmit and OFPTC_TABLE_MISS_CONTROLLER;;
1073;ofproto-dpif.at:1128;ofproto-dpif - Table Miss - OFPTC_TABLE_MISS_CONTINUE;;
1074;ofproto-dpif.at:1187;ofproto-dpif - Table Miss - goto table and OFPTC_TABLE_MISS_CONTINUE;;
1075;ofproto-dpif.at:1251;ofproto-dpif - Table Miss - resubmit and OFPTC_TABLE_MISS_CONTINUE;;
1076;ofproto-dpif.at:1297;ofproto-dpif - Table Miss - OFPTC_TABLE_MISS_DROP;;
1077;ofproto-dpif.at:1325;ofproto-dpif - Table Miss - goto table and OFPTC_TABLE_MISS_DROP;;
1078;ofproto-dpif.at:1356;ofproto-dpif - Table Miss - resubmit and OFPTC_TABLE_MISS_DROP;;
1079;ofproto-dpif.at:1387;ofproto-dpif - controller;;
1080;ofproto-dpif.at:1658;ofproto-dpif - controller with slow-path action;;
1081;ofproto-dpif.at:1688;ofproto-dpif - controller action without megaflows;;
1082;ofproto-dpif.at:1759;ofproto-dpif - MPLS handling;;
1083;ofproto-dpif.at:2809;ofproto-dpif - MPLS handling with goto_table;;
1084;ofproto-dpif.at:2857;ofproto-dpif - MPLS handling with write_actions;;
1085;ofproto-dpif.at:2905;ofproto-dpif - table-miss flow (OpenFlow 1.0);;
1086;ofproto-dpif.at:2945;ofproto-dpif - table-miss flow (OpenFlow 1.3);;
1087;ofproto-dpif.at:2986;ofproto-dpif - table-miss flow with async config (OpenFlow 1.3);;
1088;ofproto-dpif.at:3060;ofproto-dpif - table-miss flow (OpenFlow 1.4);;
1089;ofproto-dpif.at:3102;ofproto-dpif - packet-in reasons (Openflow 1.3);;
1090;ofproto-dpif.at:3174;ofproto-dpif - packet-in reasons (Openflow 1.4);;
1091;ofproto-dpif.at:3246;ofproto-dpif - ARP modification slow-path;;
1092;ofproto-dpif.at:3275;ofproto-dpif - VLAN handling;;
1093;ofproto-dpif.at:3427;ofproto-dpif - VLAN depth limit;;
1094;ofproto-dpif.at:3456;ofproto-dpif - Multi-VLAN actions;;
1095;ofproto-dpif.at:3513;ofproto-dpif - MPLS handling;;
1096;ofproto-dpif.at:3618;ofproto-dpif - VLAN+MPLS handling;;
1097;ofproto-dpif.at:4009;ofproto-dpif - fragment handling - trace;;
1098;ofproto-dpif.at:4058;ofproto-dpif - fragment handling - upcall;;
1099;ofproto-dpif.at:4133;ofproto-dpif - fragment handling - actions;;
1100;ofproto-dpif.at:4238;ofproto-dpif - exit;;
1101;ofproto-dpif.at:4263;ofproto-dpif - mirroring, select_all;mirror mirrors mirroring;
1102;ofproto-dpif.at:4294;ofproto-dpif - mirroring, select_src;mirror mirrors mirroring;
1103;ofproto-dpif.at:4323;ofproto-dpif - mirroring, OFPP_NONE ingress port;mirror mirrors mirroring;
1104;ofproto-dpif.at:4345;ofproto-dpif - mirroring, select_dst;mirror mirrors mirroring;
1105;ofproto-dpif.at:4376;ofproto-dpif - mirroring, select_vlan;mirror mirrors mirroring;
1106;ofproto-dpif.at:4412;ofproto-dpif - mirroring, output_port;mirror mirrors mirroring;
1107;ofproto-dpif.at:4442;ofproto-dpif - mirroring, output_vlan;mirror mirrors mirroring;
1108;ofproto-dpif.at:4479;ofproto-dpif - multiple VLAN output mirrors;mirror mirrors mirroring;
1109;ofproto-dpif.at:4508;ofproto-dpif - mirroring with recirculation;mirror mirrors mirroring;
1110;ofproto-dpif.at:4534;ofproto-dpif - mirroring, select_all with snaplen;mirror mirrors mirroring;
1111;ofproto-dpif.at:4564;ofproto-dpif - mirroring, select_all with snaplen and reset snaplen;mirror mirrors mirroring;
1112;ofproto-dpif.at:4604;ofproto-dpif - mirroring, select_src with snaplen;mirror mirrors mirroring;
1113;ofproto-dpif.at:4633;ofproto-dpif - mirroring, OFPP_NONE ingress port with snaplen;mirror mirrors mirroring;
1114;ofproto-dpif.at:4654;ofproto-dpif - mirroring, select_dst with snaplen;mirror mirrors mirroring;
1115;ofproto-dpif.at:4684;ofproto-dpif - mirroring, select_vlan with snaplen;mirror mirrors mirroring;
1116;ofproto-dpif.at:4719;ofproto-dpif - mirroring, output_port with snaplen;mirror mirrors mirroring;
1117;ofproto-dpif.at:4749;ofproto-dpif - mirroring, output_vlan with snaplen;mirror mirrors mirroring;
1118;ofproto-dpif.at:4777;ofproto-dpif - multiple VLAN output mirrors with snaplen;mirror mirrors mirroring;
1119;ofproto-dpif.at:4800;ofproto-dpif - resubmit with recirculation;;
1120;ofproto-dpif.at:4827;ofproto-dpif - resubmit with tun_id;;
1121;ofproto-dpif.at:4854;ofproto-dpif - recirculation after resubmit;;
1122;ofproto-dpif.at:4876;ofproto-dpif - debug_slow action;;
1123;ofproto-dpif.at:5003;ofproto-dpif - continuation - pause at end of pipeline;continuations pause resume;
1124;ofproto-dpif.at:5006;ofproto-dpif - continuation - actions;continuations pause resume;
1125;ofproto-dpif.at:5014;ofproto-dpif - continuation - resubmit;continuations pause resume;
1126;ofproto-dpif.at:5022;ofproto-dpif - continuation - action set;continuations pause resume;
1127;ofproto-dpif.at:5028;ofproto-dpif - continuation - data stack;continuations pause resume;
1128;ofproto-dpif.at:5046;ofproto-dpif - continuation - mirroring;continuations pause resume;
1129;ofproto-dpif.at:5057;ofproto-dpif - continuation - patch ports;continuations pause resume;
1130;ofproto-dpif.at:5071;ofproto-dpif - continuation after clone;continuations clone pause resume;
1131;ofproto-dpif.at:5114;ofproto-dpif - ofproto/trace command 1;;
1132;ofproto-dpif.at:5258;ofproto-dpif - ofproto/trace command 2;;
1133;ofproto-dpif.at:5367;ofproto-dpif - ofproto/trace from dpctl output;;
1134;ofproto-dpif.at:5414;ofproto-dpif - ofproto/trace-packet-out;;
1135;ofproto-dpif.at:5444;ofproto-dpif - MAC learning;;
1136;ofproto-dpif.at:5533;ofproto-dpif - MAC table overflow;;
1137;ofproto-dpif.at:5593;ofproto-dpif - MAC table overflow fairness;;
1138;ofproto-dpif.at:6066;ofproto-dpif - basic truncate action;;
1139;ofproto-dpif.at:6142;ofproto-dpif - truncate and output to patch port;;
1140;ofproto-dpif.at:6163;ofproto-dpif - truncate and output to gre tunnel;;
1141;ofproto-dpif.at:6190;ofproto-dpif - sFlow packet sampling - IPv4 collector;;
1142;ofproto-dpif.at:6194;ofproto-dpif - sFlow packet sampling - IPv6 collector;;
1143;ofproto-dpif.at:6200;ofproto-dpif - sFlow packet sampling - LACP structures;;
1144;ofproto-dpif.at:6257;ofproto-dpif - sFlow packet sampling - tunnel set;;
1145;ofproto-dpif.at:6326;ofproto-dpif - sFlow packet sampling - tunnel push;;
1146;ofproto-dpif.at:6428;ofproto-dpif - sFlow packet sampling - MPLS;;
1147;ofproto-dpif.at:6564;ofproto-dpif - NetFlow flow expiration - IPv4 collector;;
1148;ofproto-dpif.at:6568;ofproto-dpif - NetFlow flow expiration - IPv6 collector;;
1149;ofproto-dpif.at:6648;ofproto-dpif - NetFlow active expiration - IPv4 collector;;
1150;ofproto-dpif.at:6652;ofproto-dpif - NetFlow active expiration - IPv6 collector;;
1151;ofproto-dpif.at:6660;ofproto-dpif - Bridge IPFIX sanity check;;
1152;ofproto-dpif.at:6709;ofproto-dpif - Bridge IPFIX statistics check;;
1153;ofproto-dpif.at:6753;ofproto-dpif - Flow IPFIX sanity check;;
1154;ofproto-dpif.at:6803;ofproto-dpif - Flow IPFIX sanity check - tunnel set;;
1155;ofproto-dpif.at:6875;ofproto-dpif - clone action;;
1156;ofproto-dpif.at:6945;ofproto-dpif - Flow IPFIX statistics check;;
1157;ofproto-dpif.at:6995;ofproto-dpif - flow stats;;
1158;ofproto-dpif.at:7016;ofproto-dpif - flow stats reset_counts;;
1159;ofproto-dpif.at:7190;ofproto-dpif - flow stats, set-n-threads;;
1160;ofproto-dpif.at:7213;ofproto-dpif - idle_age and hard_age increase over time;;
1161;ofproto-dpif.at:7303;ofproto-dpif - fin_timeout;;
1162;ofproto-dpif.at:7337;ofproto-dpif - ovs-appctl dpif/dump-dps;;
1163;ofproto-dpif.at:7349;ofproto-dpif - ovs-appctl dpif/show;;
1164;ofproto-dpif.at:7368;ofproto-dpif - ovs-appctl dpif/dump-flows;;
1165;ofproto-dpif.at:7426;ofproto-dpif - ovs-appctl dpif/get-flow;;
1166;ofproto-dpif.at:7427;ofproto-dpif - ovs-appctl dpif/get-flow - pmd;;
1167;ofproto-dpif.at:7429;ofproto-dpif - MPLS actions that result in a userspace action;;
1168;ofproto-dpif.at:7465;ofproto-dpif - MPLS actions that result in a drop;;
1169;ofproto-dpif.at:7503;ofproto-dpif - patch ports;;
1170;ofproto-dpif.at:7578;ofproto-dpif - patch ports - stack;;
1171;ofproto-dpif.at:7627;ofproto-dpif - port duration;;
1172;ofproto-dpif.at:7647;ofproto-dpif megaflow - port classification;;
1173;ofproto-dpif.at:7665;ofproto-dpif megaflow - L2 classification;;
1174;ofproto-dpif.at:7683;ofproto-dpif megaflow - L3 classification;;
1175;ofproto-dpif.at:7702;ofproto-dpif megaflow - IPv6 classification;;
1176;ofproto-dpif.at:7721;ofproto-dpif megaflow - L4 classification;;
1177;ofproto-dpif.at:7756;ofproto-dpif megaflow - normal;;
1178;ofproto-dpif.at:7757;ofproto-dpif megaflow - normal - pmd;;
1179;ofproto-dpif.at:7759;ofproto-dpif megaflow - mpls;;
1180;ofproto-dpif.at:7805;ofproto-dpif megaflow - netflow - IPv4 collector;;
1181;ofproto-dpif.at:7809;ofproto-dpif megaflow - netflow - IPv6 collector;;
1182;ofproto-dpif.at:7837;ofproto-dpif megaflow - normal, active-backup bonding - dummy;;
1183;ofproto-dpif.at:7838;ofproto-dpif megaflow - normal, active-backup bonding - dummy-pmd;;
1184;ofproto-dpif.at:7840;ofproto-dpif megaflow - normal, balance-slb bonding;;
1185;ofproto-dpif.at:7861;ofproto-dpif megaflow - normal, balance-tcp bonding;;
1186;ofproto-dpif.at:7899;ofproto-dpif megaflow - resubmit port action;;
1187;ofproto-dpif.at:7918;ofproto-dpif megaflow - resubmit table action;;
1188;ofproto-dpif.at:7938;ofproto-dpif megaflow - goto_table action;;
1189;ofproto-dpif.at:7957;ofproto-dpif megaflow - mirroring, select_all;mirror mirrors mirroring;
1190;ofproto-dpif.at:7981;ofproto-dpif megaflow - mirroring, select_vlan;;
1191;ofproto-dpif.at:8004;ofproto-dpif megaflow - move action;;
1192;ofproto-dpif.at:8024;ofproto-dpif megaflow - push action;;
1193;ofproto-dpif.at:8042;ofproto-dpif megaflow - learning;;
1194;ofproto-dpif.at:8069;ofproto-dpif megaflow - tunnels;;
1195;ofproto-dpif.at:8102;ofproto-dpif megaflow - dec_ttl;;
1196;ofproto-dpif.at:8121;ofproto-dpif megaflow - set dl_dst;;
1197;ofproto-dpif.at:8177;ofproto-dpif megaflow - disabled;;
1198;ofproto-dpif.at:8178;ofproto-dpif megaflow - disabled - pmd;;
1199;ofproto-dpif.at:8180;ofproto-dpif - datapath port number change;;
1200;ofproto-dpif.at:8202;ofproto - bundle with variable bfd/cfm config;;
1201;ofproto-dpif.at:8280;ofproto-dpif - ofproto-dpif-monitor 1;;
1202;ofproto-dpif.at:8327;ofproto-dpif - ofproto-dpif-monitor 2;;
1203;ofproto-dpif.at:8342;ofproto-dpif - forward resubmit;;
1204;ofproto-dpif.at:8359;ofproto-dpif - backward resubmit;;
1205;ofproto-dpif.at:8379;ofproto-dpif - infinite resubmit;;
1206;ofproto-dpif.at:8393;ofproto-dpif - exponential resubmit chain;;
1207;ofproto-dpif.at:8411;ofproto-dpif - too many output actions;;
1208;ofproto-dpif.at:8429;ofproto-dpif - stack too deep;;
1209;ofproto-dpif.at:8449;ofproto-dpif packet-out controller;;
1210;ofproto-dpif.at:8494;ofproto-dpif packet-out controller (patch port);;
1211;ofproto-dpif.at:8549;ofproto-dpif packet-out pipeline match field (OpenFlow 1.5);;
1212;ofproto-dpif.at:8599;ofproto-dpif packet-out goto_table;;
1213;ofproto-dpif.at:8653;ofproto-dpif packet-out table-miss (continue);;
1214;ofproto-dpif.at:8704;ofproto-dpif - ICMPv6;;
1215;ofproto-dpif.at:8724;ofproto-dpif - ICMPv6 type match;;
1216;ofproto-dpif.at:8754;ofproto-dpif - Neighbor Discovery set-field with checksum update;;
1217;ofproto-dpif.at:8776;ofproto-dpif - vlan matching;;
1218;ofproto-dpif.at:8794;ofproto-dpif - in place modification;;
1219;ofproto-dpif.at:8839;ofproto-dpif - in place modification (vlan);;
1220;ofproto-dpif.at:8920;ofproto-dpif - trace (unchanged);;
1221;ofproto-dpif.at:8932;ofproto-dpif - conntrack - controller;;
1222;ofproto-dpif.at:9058;ofproto-dpif - conntrack - force commit;;
1223;ofproto-dpif.at:9140;ofproto-dpif - conntrack - ipv6;;
1224;ofproto-dpif.at:9190;ofproto-dpif - conntrack - output action;;
1225;ofproto-dpif.at:9249;ofproto-dpif - conntrack - expiration;;
1226;ofproto-dpif.at:9303;ofproto-dpif - conntrack - untrackable traffic;;
1227;ofproto-dpif.at:9335;ofproto-dpif - conntrack - zones;;
1228;ofproto-dpif.at:9400;ofproto-dpif - conntrack - recirc,commit;;
1229;ofproto-dpif.at:9450;ofproto-dpif - conntrack - ICMP related;;
1230;ofproto-dpif.at:9500;ofproto-dpif - conntrack - ct_mark;;
1231;ofproto-dpif.at:9561;ofproto-dpif - conntrack - ct_label;;
1232;ofproto-dpif.at:9609;ofproto-dpif - conntrack - ct_label datapath flow;;
1233;ofproto-dpif.at:9657;ofproto-dpif - conntrack - no output;;
1234;ofproto-dpif.at:9681;ofproto-dpif - conntrack - tcp port reuse;;
1235;ofproto-dpif.at:9745;ofproto-dpif - conntrack - tcp pick up;;
1236;ofproto-dpif.at:9833;ofproto-dpif - conntrack - ct_clear;;
1237;ofproto-dpif.at:9890;ofproto-dpif - conntrack - ofproto/trace;;
1238;ofproto-dpif.at:9948;ofproto - set mtu;;
1239;ofproto-dpif.at:9998;ofproto - fragment prerequisites;;
1240;bridge.at:7;bridge - ports that disappear get added back;;
1241;bridge.at:44;bridge - multiple bridges share a controller;;
1242;netdev-type.at:4;bridge - set MAC address of internal port;;
1243;ovsdb-log.at:3;create empty, reread;ovsdb log;
1244;ovsdb-log.at:18;write one, reread;ovsdb log;
1245;ovsdb-log.at:35;check that create fails if file exists;ovsdb log;
1246;ovsdb-log.at:60;write one, reread;ovsdb log;
1247;ovsdb-log.at:81;write one, replace, commit;ovsdb log;
1248;ovsdb-log.at:118;write one, replace, abort;ovsdb log;
1249;ovsdb-log.at:155;write one, reread - alternative magic;ovsdb log;
1250;ovsdb-log.at:182;write one, reread, append;ovsdb log;
1251;ovsdb-log.at:212;write, reread one, overwrite;ovsdb log;
1252;ovsdb-log.at:238;write, add corrupted data, read;ovsdb log;
1253;ovsdb-log.at:260;write, add corrupted data, read, overwrite;ovsdb log;
1254;ovsdb-log.at:292;write, corrupt some data, read, overwrite;ovsdb log;
1255;ovsdb-log.at:325;write, truncate file, read, overwrite;ovsdb log;
1256;ovsdb-log.at:358;write bad JSON, read, overwrite;ovsdb log;
1257;ovsdb-types.at:3;integer - C;ovsdb positive;
1258;ovsdb-types.at:3;integer - Python2;ovsdb positive python;
1259;ovsdb-types.at:3;integer - Python3;ovsdb positive python;
1260;ovsdb-types.at:5;real - C;ovsdb positive;
1261;ovsdb-types.at:5;real - Python2;ovsdb positive python;
1262;ovsdb-types.at:5;real - Python3;ovsdb positive python;
1263;ovsdb-types.at:7;boolean - C;ovsdb positive;
1264;ovsdb-types.at:7;boolean - Python2;ovsdb positive python;
1265;ovsdb-types.at:7;boolean - Python3;ovsdb positive python;
1266;ovsdb-types.at:9;string - C;ovsdb positive;
1267;ovsdb-types.at:9;string - Python2;ovsdb positive python;
1268;ovsdb-types.at:9;string - Python3;ovsdb positive python;
1269;ovsdb-types.at:11;uuid - C;ovsdb positive;
1270;ovsdb-types.at:11;uuid - Python2;ovsdb positive python;
1271;ovsdb-types.at:11;uuid - Python3;ovsdb positive python;
1272;ovsdb-types.at:13;void is not a valid atomic-type - C;ovsdb negative;
1273;ovsdb-types.at:13;void is not a valid atomic-type - Python2;ovsdb negative;
1274;ovsdb-types.at:18;integer enum - C;ovsdb positive;
1275;ovsdb-types.at:18;integer enum - Python2;ovsdb positive python;
1276;ovsdb-types.at:18;integer enum - Python3;ovsdb positive python;
1277;ovsdb-types.at:21;integer >= 5 - C;ovsdb positive;
1278;ovsdb-types.at:21;integer >= 5 - Python2;ovsdb positive python;
1279;ovsdb-types.at:21;integer >= 5 - Python3;ovsdb positive python;
1280;ovsdb-types.at:24;integer <= 7 - C;ovsdb positive;
1281;ovsdb-types.at:24;integer <= 7 - Python2;ovsdb positive python;
1282;ovsdb-types.at:24;integer <= 7 - Python3;ovsdb positive python;
1283;ovsdb-types.at:27;integer between -5 and 10 - C;ovsdb positive;
1284;ovsdb-types.at:27;integer between -5 and 10 - Python2;ovsdb positive python;
1285;ovsdb-types.at:27;integer between -5 and 10 - Python3;ovsdb positive python;
1286;ovsdb-types.at:30;integer max may not be less than min - C;ovsdb negative;
1287;ovsdb-types.at:30;integer max may not be less than min - Python2;ovsdb negative;
1288;ovsdb-types.at:34;real enum - C;ovsdb positive;
1289;ovsdb-types.at:34;real enum - Python2;ovsdb positive python;
1290;ovsdb-types.at:34;real enum - Python3;ovsdb positive python;
1291;ovsdb-types.at:37;real >= -1.5 - C;ovsdb positive;
1292;ovsdb-types.at:37;real >= -1.5 - Python2;ovsdb positive python;
1293;ovsdb-types.at:37;real >= -1.5 - Python3;ovsdb positive python;
1294;ovsdb-types.at:40;real <= 1e5 - C;ovsdb positive;
1295;ovsdb-types.at:40;real <= 1e5 - Python2;ovsdb positive python;
1296;ovsdb-types.at:40;real <= 1e5 - Python3;ovsdb positive python;
1297;ovsdb-types.at:43;real between -2.5 and 3.75 - C;ovsdb positive;
1298;ovsdb-types.at:43;real between -2.5 and 3.75 - Python2;ovsdb positive python;
1299;ovsdb-types.at:43;real between -2.5 and 3.75 - Python3;ovsdb positive python;
1300;ovsdb-types.at:46;real max may not be less than min - C;ovsdb negative;
1301;ovsdb-types.at:46;real max may not be less than min - Python2;ovsdb negative;
1302;ovsdb-types.at:50;boolean - C;ovsdb positive;
1303;ovsdb-types.at:50;boolean - Python2;ovsdb positive python;
1304;ovsdb-types.at:50;boolean - Python3;ovsdb positive python;
1305;ovsdb-types.at:52;boolean enum - C;ovsdb positive;
1306;ovsdb-types.at:52;boolean enum - Python2;ovsdb positive python;
1307;ovsdb-types.at:52;boolean enum - Python3;ovsdb positive python;
1308;ovsdb-types.at:56;string enum - C;ovsdb positive;
1309;ovsdb-types.at:56;string enum - Python2;ovsdb positive python;
1310;ovsdb-types.at:56;string enum - Python3;ovsdb positive python;
1311;ovsdb-types.at:59;string minLength - C;ovsdb positive;
1312;ovsdb-types.at:59;string minLength - Python2;ovsdb positive python;
1313;ovsdb-types.at:59;string minLength - Python3;ovsdb positive python;
1314;ovsdb-types.at:62;string maxLength - C;ovsdb positive;
1315;ovsdb-types.at:62;string maxLength - Python2;ovsdb positive python;
1316;ovsdb-types.at:62;string maxLength - Python3;ovsdb positive python;
1317;ovsdb-types.at:65;string minLength and maxLength - C;ovsdb positive;
1318;ovsdb-types.at:65;string minLength and maxLength - Python2;ovsdb positive python;
1319;ovsdb-types.at:65;string minLength and maxLength - Python3;ovsdb positive python;
1320;ovsdb-types.at:68;maxLength must not be less than minLength - C;ovsdb negative;
1321;ovsdb-types.at:68;maxLength must not be less than minLength - Python2;ovsdb negative;
1322;ovsdb-types.at:71;maxLength must not be negative - C;ovsdb negative;
1323;ovsdb-types.at:71;maxLength must not be negative - Python2;ovsdb negative;
1324;ovsdb-types.at:75;uuid enum - C;ovsdb positive;
1325;ovsdb-types.at:75;uuid enum - Python2;ovsdb positive python;
1326;ovsdb-types.at:75;uuid enum - Python3;ovsdb positive python;
1327;ovsdb-types.at:78;uuid refTable - C;ovsdb positive;
1328;ovsdb-types.at:78;uuid refTable - Python2;ovsdb positive python;
1329;ovsdb-types.at:78;uuid refTable - Python3;ovsdb positive python;
1330;ovsdb-types.at:81;uuid refTable must be valid id - C;ovsdb negative;
1331;ovsdb-types.at:81;uuid refTable must be valid id - Python2;ovsdb negative;
1332;ovsdb-types.at:85;void is not a valid base-type - C;ovsdb negative;
1333;ovsdb-types.at:85;void is not a valid base-type - Python2;ovsdb negative;
1334;ovsdb-types.at:87;\"type\" member must be present - C;ovsdb negative;
1335;ovsdb-types.at:87;\"type\" member must be present - Python2;ovsdb negative;
1336;ovsdb-types.at:92;simple integer - C;ovsdb positive;
1337;ovsdb-types.at:92;simple integer - Python2;ovsdb positive python;
1338;ovsdb-types.at:92;simple integer - Python3;ovsdb positive python;
1339;ovsdb-types.at:94;simple real - C;ovsdb positive;
1340;ovsdb-types.at:94;simple real - Python2;ovsdb positive python;
1341;ovsdb-types.at:94;simple real - Python3;ovsdb positive python;
1342;ovsdb-types.at:96;simple boolean - C;ovsdb positive;
1343;ovsdb-types.at:96;simple boolean - Python2;ovsdb positive python;
1344;ovsdb-types.at:96;simple boolean - Python3;ovsdb positive python;
1345;ovsdb-types.at:98;simple string - C;ovsdb positive;
1346;ovsdb-types.at:98;simple string - Python2;ovsdb positive python;
1347;ovsdb-types.at:98;simple string - Python3;ovsdb positive python;
1348;ovsdb-types.at:100;simple uuid - C;ovsdb positive;
1349;ovsdb-types.at:100;simple uuid - Python2;ovsdb positive python;
1350;ovsdb-types.at:100;simple uuid - Python3;ovsdb positive python;
1351;ovsdb-types.at:102;integer in object - C;ovsdb positive;
1352;ovsdb-types.at:102;integer in object - Python2;ovsdb positive python;
1353;ovsdb-types.at:102;integer in object - Python3;ovsdb positive python;
1354;ovsdb-types.at:104;real in object with explicit min and max - C;ovsdb positive;
1355;ovsdb-types.at:104;real in object with explicit min and max - Python2;ovsdb positive python;
1356;ovsdb-types.at:104;real in object with explicit min and max - Python3;ovsdb positive python;
1357;ovsdb-types.at:107;key type is required - C;ovsdb negative;
1358;ovsdb-types.at:107;key type is required - Python2;ovsdb negative;
1359;ovsdb-types.at:109;void is not a valid type - C;ovsdb negative;
1360;ovsdb-types.at:109;void is not a valid type - Python2;ovsdb negative;
1361;ovsdb-types.at:114;optional boolean - C;ovsdb positive set;
1362;ovsdb-types.at:114;optional boolean - Python2;ovsdb positive python set;
1363;ovsdb-types.at:114;optional boolean - Python3;ovsdb positive python set;
1364;ovsdb-types.at:118;set of 1 to 3 uuids - C;ovsdb positive;
1365;ovsdb-types.at:118;set of 1 to 3 uuids - Python2;ovsdb positive python;
1366;ovsdb-types.at:118;set of 1 to 3 uuids - Python3;ovsdb positive python;
1367;ovsdb-types.at:121;set of 0 to 3 strings - C;ovsdb positive;
1368;ovsdb-types.at:121;set of 0 to 3 strings - Python2;ovsdb positive python;
1369;ovsdb-types.at:121;set of 0 to 3 strings - Python3;ovsdb positive python;
1370;ovsdb-types.at:124;set of 0 or more integers - C;ovsdb positive;
1371;ovsdb-types.at:124;set of 0 or more integers - Python2;ovsdb positive python;
1372;ovsdb-types.at:124;set of 0 or more integers - Python3;ovsdb positive python;
1373;ovsdb-types.at:127;set of 1 or more reals - C;ovsdb positive;
1374;ovsdb-types.at:127;set of 1 or more reals - Python2;ovsdb positive python;
1375;ovsdb-types.at:127;set of 1 or more reals - Python3;ovsdb positive python;
1376;ovsdb-types.at:131;set max cannot be less than min - C;ovsdb negative;
1377;ovsdb-types.at:131;set max cannot be less than min - Python2;ovsdb negative;
1378;ovsdb-types.at:134;set max cannot be negative - C;ovsdb negative;
1379;ovsdb-types.at:134;set max cannot be negative - Python2;ovsdb negative;
1380;ovsdb-types.at:137;set min cannot be negative - C;ovsdb negative;
1381;ovsdb-types.at:137;set min cannot be negative - Python2;ovsdb negative;
1382;ovsdb-types.at:140;set min cannot be greater than one - C;ovsdb negative;
1383;ovsdb-types.at:140;set min cannot be greater than one - Python2;ovsdb negative;
1384;ovsdb-types.at:146;map of 1 integer to boolean - C;ovsdb positive;
1385;ovsdb-types.at:146;map of 1 integer to boolean - Python2;ovsdb positive python;
1386;ovsdb-types.at:146;map of 1 integer to boolean - Python3;ovsdb positive python;
1387;ovsdb-types.at:149;map of 1 boolean to integer, explicit min and max - C;ovsdb positive;
1388;ovsdb-types.at:149;map of 1 boolean to integer, explicit min and max - Python2;ovsdb positive python;
1389;ovsdb-types.at:149;map of 1 boolean to integer, explicit min and max - Python3;ovsdb positive python;
1390;ovsdb-types.at:152;map of 1 to 5 uuid to real - C;ovsdb positive;
1391;ovsdb-types.at:152;map of 1 to 5 uuid to real - Python2;ovsdb positive python;
1392;ovsdb-types.at:152;map of 1 to 5 uuid to real - Python3;ovsdb positive python;
1393;ovsdb-types.at:155;map of 0 to 10 string to uuid - C;ovsdb positive;
1394;ovsdb-types.at:155;map of 0 to 10 string to uuid - Python2;ovsdb positive python;
1395;ovsdb-types.at:155;map of 0 to 10 string to uuid - Python3;ovsdb positive python;
1396;ovsdb-types.at:158;map of 1 to 20 real to string - C;ovsdb positive;
1397;ovsdb-types.at:158;map of 1 to 20 real to string - Python2;ovsdb positive python;
1398;ovsdb-types.at:158;map of 1 to 20 real to string - Python3;ovsdb positive python;
1399;ovsdb-types.at:161;map of 0 or more string to real - C;ovsdb positive;
1400;ovsdb-types.at:161;map of 0 or more string to real - Python2;ovsdb positive python;
1401;ovsdb-types.at:161;map of 0 or more string to real - Python3;ovsdb positive python;
1402;ovsdb-types.at:165;map key type is required - C;ovsdb negative;
1403;ovsdb-types.at:165;map key type is required - Python2;ovsdb negative;
1404;ovsdb-data.at:3;default atoms - C;ovsdb positive;
1405;ovsdb-data.at:3;default atoms - Python2;ovsdb positive python;
1406;ovsdb-data.at:3;default atoms - Python3;ovsdb positive python;
1407;ovsdb-data.at:11;default data - C;ovsdb positive;
1408;ovsdb-data.at:11;default data - Python2;ovsdb positive python;
1409;ovsdb-data.at:11;default data - Python3;ovsdb positive python;
1410;ovsdb-data.at:76;integer atom from JSON - C;ovsdb positive;
1411;ovsdb-data.at:76;integer atom from JSON - Python2;ovsdb positive python;
1412;ovsdb-data.at:76;integer atom from JSON - Python3;ovsdb positive python;
1413;ovsdb-data.at:89;integer atom from string;ovsdb positive;
1414;ovsdb-data.at:116;real atom from JSON - C;ovsdb positive;
1415;ovsdb-data.at:116;real atom from JSON - Python2;ovsdb positive python;
1416;ovsdb-data.at:116;real atom from JSON - Python3;ovsdb positive python;
1417;ovsdb-data.at:133;real atom from string;ovsdb positive;
1418;ovsdb-data.at:150;boolean atom from JSON - C;ovsdb positive;
1419;ovsdb-data.at:150;boolean atom from JSON - Python2;ovsdb positive python;
1420;ovsdb-data.at:150;boolean atom from JSON - Python3;ovsdb positive python;
1421;ovsdb-data.at:155;boolean atom from string;ovsdb positive;
1422;ovsdb-data.at:160;string atom from JSON - C;ovsdb positive;
1423;ovsdb-data.at:160;string atom from JSON - Python2;ovsdb positive python;
1424;ovsdb-data.at:160;string atom from JSON - Python3;ovsdb positive python;
1425;ovsdb-data.at:166;string atom from string;ovsdb positive;
1426;ovsdb-data.at:181;uuid atom from JSON - C;ovsdb positive;
1427;ovsdb-data.at:181;uuid atom from JSON - Python2;ovsdb positive python;
1428;ovsdb-data.at:181;uuid atom from JSON - Python3;ovsdb positive python;
1429;ovsdb-data.at:185;uuid atom from string;ovsdb positive;
1430;ovsdb-data.at:189;integer atom sorting - C;ovsdb positive;
1431;ovsdb-data.at:189;integer atom sorting - Python2;ovsdb positive python;
1432;ovsdb-data.at:189;integer atom sorting - Python3;ovsdb positive python;
1433;ovsdb-data.at:193;real atom sorting - C;ovsdb positive;
1434;ovsdb-data.at:193;real atom sorting - Python2;ovsdb positive python;
1435;ovsdb-data.at:193;real atom sorting - Python3;ovsdb positive python;
1436;ovsdb-data.at:197;boolean atom sorting - C;ovsdb positive;
1437;ovsdb-data.at:197;boolean atom sorting - Python2;ovsdb positive python;
1438;ovsdb-data.at:197;boolean atom sorting - Python3;ovsdb positive python;
1439;ovsdb-data.at:201;string atom sorting - C;ovsdb positive;
1440;ovsdb-data.at:201;string atom sorting - Python2;ovsdb positive python;
1441;ovsdb-data.at:201;string atom sorting - Python3;ovsdb positive python;
1442;ovsdb-data.at:205;uuid atom sorting - C;ovsdb positive;
1443;ovsdb-data.at:205;uuid atom sorting - Python2;ovsdb positive python;
1444;ovsdb-data.at:205;uuid atom sorting - Python3;ovsdb positive python;
1445;ovsdb-data.at:242;real not acceptable integer JSON atom - C;ovsdb positive;
1446;ovsdb-data.at:242;real not acceptable integer JSON atom - Python2;ovsdb positive python;
1447;ovsdb-data.at:242;real not acceptable integer JSON atom - Python3;ovsdb positive python;
1448;ovsdb-data.at:248;no invalid UTF-8 sequences in strings;ovsdb positive;
1449;ovsdb-data.at:263;no invalid UTF-8 sequences in strings - Python;ovsdb positive python;
1450;ovsdb-data.at:271;real not acceptable integer string atom;ovsdb negative;
1451;ovsdb-data.at:275;inverted range is not acceptable integer string atom positive and negative;ovsdb negative;
1452;ovsdb-data.at:279;inverted range is not acceptable integer string atom negative;ovsdb negative;
1453;ovsdb-data.at:283;inverted range is not acceptable integer string atom positive;ovsdb negative;
1454;ovsdb-data.at:287;too big range is not acceptable integer string atom positive and negative;ovsdb negative;
1455;ovsdb-data.at:291;too big range is not acceptable integer string atom negative;ovsdb negative;
1456;ovsdb-data.at:295;too big range is not acceptable integer string atom positive;ovsdb negative;
1457;ovsdb-data.at:299;string \"true\" not acceptable boolean JSON atom - C;ovsdb positive;
1458;ovsdb-data.at:299;string \"true\" not acceptable boolean JSON atom - Python2;ovsdb positive python;
1459;ovsdb-data.at:299;string \"true\" not acceptable boolean JSON atom - Python3;ovsdb positive python;
1460;ovsdb-data.at:303;string \"true\" not acceptable boolean string atom;ovsdb negative;
1461;ovsdb-data.at:307;integer not acceptable string JSON atom - C;ovsdb positive;
1462;ovsdb-data.at:307;integer not acceptable string JSON atom - Python2;ovsdb positive python;
1463;ovsdb-data.at:307;integer not acceptable string JSON atom - Python3;ovsdb positive python;
1464;ovsdb-data.at:311;uuid atom must be expressed as JSON array - C;ovsdb positive;
1465;ovsdb-data.at:311;uuid atom must be expressed as JSON array - Python2;ovsdb positive python;
1466;ovsdb-data.at:311;uuid atom must be expressed as JSON array - Python3;ovsdb positive python;
1467;ovsdb-data.at:315;named-uuid requires symbol table - C;ovsdb positive;
1468;ovsdb-data.at:315;named-uuid requires symbol table - Python2;ovsdb positive python;
1469;ovsdb-data.at:315;named-uuid requires symbol table - Python3;ovsdb positive python;
1470;ovsdb-data.at:319;empty string atom must be quoted;ovsdb negative;
1471;ovsdb-data.at:323;quotes must be balanced;ovsdb negative;
1472;ovsdb-data.at:327;quoted string must not contain unescaped quote;ovsdb negative;
1473;ovsdb-data.at:331;quoted string must not end with backslash;ovsdb negative;
1474;ovsdb-data.at:335;uuids must be valid;ovsdb negative;
1475;ovsdb-data.at:341;integer atom enum - C;ovsdb positive;
1476;ovsdb-data.at:341;integer atom enum - Python2;ovsdb positive python;
1477;ovsdb-data.at:341;integer atom enum - Python3;ovsdb positive python;
1478;ovsdb-data.at:364;integer atom enum from string;ovsdb positive;
1479;ovsdb-data.at:377;integer not in enum set from string;ovsdb negative;
1480;ovsdb-data.at:381;integer range not in enum set from string;ovsdb negative;
1481;ovsdb-data.at:385;real atom enum - C;ovsdb positive;
1482;ovsdb-data.at:385;real atom enum - Python2;ovsdb positive python;
1483;ovsdb-data.at:385;real atom enum - Python3;ovsdb positive python;
1484;ovsdb-data.at:402;boolean atom enum - C;ovsdb positive;
1485;ovsdb-data.at:402;boolean atom enum - Python2;ovsdb positive python;
1486;ovsdb-data.at:402;boolean atom enum - Python3;ovsdb positive python;
1487;ovsdb-data.at:409;string atom enum - C;ovsdb positive;
1488;ovsdb-data.at:409;string atom enum - Python2;ovsdb positive python;
1489;ovsdb-data.at:409;string atom enum - Python3;ovsdb positive python;
1490;ovsdb-data.at:424;uuid atom enum - C;ovsdb positive;
1491;ovsdb-data.at:424;uuid atom enum - Python2;ovsdb positive python;
1492;ovsdb-data.at:424;uuid atom enum - Python3;ovsdb positive python;
1493;ovsdb-data.at:435;integers >= 5 - C;ovsdb positive;
1494;ovsdb-data.at:435;integers >= 5 - Python2;ovsdb positive python;
1495;ovsdb-data.at:435;integers >= 5 - Python3;ovsdb positive python;
1496;ovsdb-data.at:448;integers <= -1 - C;ovsdb positive;
1497;ovsdb-data.at:448;integers <= -1 - Python2;ovsdb positive python;
1498;ovsdb-data.at:448;integers <= -1 - Python3;ovsdb positive python;
1499;ovsdb-data.at:459;integers in range -10 to 10 - C;ovsdb positive;
1500;ovsdb-data.at:459;integers in range -10 to 10 - Python2;ovsdb positive python;
1501;ovsdb-data.at:459;integers in range -10 to 10 - Python3;ovsdb positive python;
1502;ovsdb-data.at:480;reals >= 5 - C;ovsdb positive;
1503;ovsdb-data.at:480;reals >= 5 - Python2;ovsdb positive python;
1504;ovsdb-data.at:480;reals >= 5 - Python3;ovsdb positive python;
1505;ovsdb-data.at:493;reals <= -1 - C;ovsdb positive;
1506;ovsdb-data.at:493;reals <= -1 - Python2;ovsdb positive python;
1507;ovsdb-data.at:493;reals <= -1 - Python3;ovsdb positive python;
1508;ovsdb-data.at:504;reals in range -10 to 10 - C;ovsdb positive;
1509;ovsdb-data.at:504;reals in range -10 to 10 - Python2;ovsdb positive python;
1510;ovsdb-data.at:504;reals in range -10 to 10 - Python3;ovsdb positive python;
1511;ovsdb-data.at:525;strings at least 2 characters long - C;ovsdb positive;
1512;ovsdb-data.at:525;strings at least 2 characters long - Python2;ovsdb positive python;
1513;ovsdb-data.at:525;strings at least 2 characters long - Python3;ovsdb positive python;
1514;ovsdb-data.at:543;strings no more than 2 characters long - C;ovsdb positive;
1515;ovsdb-data.at:543;strings no more than 2 characters long - Python2;ovsdb positive python;
1516;ovsdb-data.at:543;strings no more than 2 characters long - Python3;ovsdb positive python;
1517;ovsdb-data.at:558;integer JSON datum - C;ovsdb positive;
1518;ovsdb-data.at:558;integer JSON datum - Python2;ovsdb positive python;
1519;ovsdb-data.at:558;integer JSON datum - Python3;ovsdb positive python;
1520;ovsdb-data.at:564;integer string datum;ovsdb positive;
1521;ovsdb-data.at:571;real JSON datum - C;ovsdb positive;
1522;ovsdb-data.at:571;real JSON datum - Python2;ovsdb positive python;
1523;ovsdb-data.at:571;real JSON datum - Python3;ovsdb positive python;
1524;ovsdb-data.at:577;real string datum;ovsdb positive;
1525;ovsdb-data.at:583;boolean JSON datum - C;ovsdb positive;
1526;ovsdb-data.at:583;boolean JSON datum - Python2;ovsdb positive python;
1527;ovsdb-data.at:583;boolean JSON datum - Python3;ovsdb positive python;
1528;ovsdb-data.at:588;boolean string datum;ovsdb positive;
1529;ovsdb-data.at:593;string JSON datum - C;ovsdb positive;
1530;ovsdb-data.at:593;string JSON datum - Python2;ovsdb positive python;
1531;ovsdb-data.at:593;string JSON datum - Python3;ovsdb positive python;
1532;ovsdb-data.at:599;string string datum;ovsdb positive;
1533;ovsdb-data.at:608;JSON optional boolean - C;ovsdb positive set;
1534;ovsdb-data.at:608;JSON optional boolean - Python2;ovsdb positive python set;
1535;ovsdb-data.at:608;JSON optional boolean - Python3;ovsdb positive python set;
1536;ovsdb-data.at:618;string optional boolean;ovsdb positive set;
1537;ovsdb-data.at:628;JSON set of 0 or more integers - C;ovsdb positive;
1538;ovsdb-data.at:628;JSON set of 0 or more integers - Python2;ovsdb positive python;
1539;ovsdb-data.at:628;JSON set of 0 or more integers - Python3;ovsdb positive python;
1540;ovsdb-data.at:645;string set of 0 or more integers;ovsdb positive;
1541;ovsdb-data.at:664;JSON set of 1 to 3 uuids - C;ovsdb positive;
1542;ovsdb-data.at:664;JSON set of 1 to 3 uuids - Python2;ovsdb positive python;
1543;ovsdb-data.at:664;JSON set of 1 to 3 uuids - Python3;ovsdb positive python;
1544;ovsdb-data.at:675;string set of 1 to 3 uuids;ovsdb positive;
1545;ovsdb-data.at:684;JSON set of 0 to 3 strings - C;ovsdb positive;
1546;ovsdb-data.at:684;JSON set of 0 to 3 strings - Python2;ovsdb positive python;
1547;ovsdb-data.at:684;JSON set of 0 to 3 strings - Python3;ovsdb positive python;
1548;ovsdb-data.at:697;string set of 0 to 3 strings;ovsdb positive;
1549;ovsdb-data.at:708;duplicate boolean not allowed in JSON set - C;ovsdb negative;
1550;ovsdb-data.at:708;duplicate boolean not allowed in JSON set - Python2;ovsdb negative;
1551;ovsdb-data.at:712;duplicate boolean not allowed in string set;ovsdb negative;
1552;ovsdb-data.at:716;duplicate integer not allowed in JSON set - C;ovsdb negative;
1553;ovsdb-data.at:716;duplicate integer not allowed in JSON set - Python2;ovsdb negative;
1554;ovsdb-data.at:720;duplicate integer not allowed in string set;ovsdb negative;
1555;ovsdb-data.at:724;duplicate real not allowed in JSON set - C;ovsdb negative;
1556;ovsdb-data.at:724;duplicate real not allowed in JSON set - Python2;ovsdb negative;
1557;ovsdb-data.at:728;duplicate real not allowed in string set;ovsdb negative;
1558;ovsdb-data.at:732;duplicate string not allowed in JSON set - C;ovsdb negative;
1559;ovsdb-data.at:732;duplicate string not allowed in JSON set - Python2;ovsdb negative;
1560;ovsdb-data.at:736;duplicate string not allowed in string set;ovsdb negative;
1561;ovsdb-data.at:740;duplicate uuid not allowed in JSON set - C;ovsdb negative;
1562;ovsdb-data.at:740;duplicate uuid not allowed in JSON set - Python2;ovsdb negative;
1563;ovsdb-data.at:747;duplicate uuid not allowed in string set;ovsdb negative;
1564;ovsdb-data.at:756;JSON map of 1 integer to boolean - C;ovsdb positive;
1565;ovsdb-data.at:756;JSON map of 1 integer to boolean - Python2;ovsdb positive python;
1566;ovsdb-data.at:756;JSON map of 1 integer to boolean - Python3;ovsdb positive python;
1567;ovsdb-data.at:761;string map of 1 integer to boolean;ovsdb positive;
1568;ovsdb-data.at:766;JSON map of at least 1 integer to boolean - C;ovsdb positive;
1569;ovsdb-data.at:766;JSON map of at least 1 integer to boolean - Python2;ovsdb positive python;
1570;ovsdb-data.at:766;JSON map of at least 1 integer to boolean - Python3;ovsdb positive python;
1571;ovsdb-data.at:775;string map of at least 1 integer to boolean;ovsdb positive;
1572;ovsdb-data.at:784;JSON map of 1 boolean to integer - C;ovsdb positive;
1573;ovsdb-data.at:784;JSON map of 1 boolean to integer - Python2;ovsdb positive python;
1574;ovsdb-data.at:784;JSON map of 1 boolean to integer - Python3;ovsdb positive python;
1575;ovsdb-data.at:789;string map of 1 boolean to integer;ovsdb positive;
1576;ovsdb-data.at:794;JSON map of 1 uuid to real - C;ovsdb positive;
1577;ovsdb-data.at:794;JSON map of 1 uuid to real - Python2;ovsdb positive python;
1578;ovsdb-data.at:794;JSON map of 1 uuid to real - Python3;ovsdb positive python;
1579;ovsdb-data.at:803;string map of 1 uuid to real;ovsdb positive;
1580;ovsdb-data.at:812;JSON map of 10 string to string - C;ovsdb positive;
1581;ovsdb-data.at:812;JSON map of 10 string to string - Python2;ovsdb positive python;
1582;ovsdb-data.at:812;JSON map of 10 string to string - Python3;ovsdb positive python;
1583;ovsdb-data.at:826;string map of 10 string to string;ovsdb positive;
1584;ovsdb-data.at:840;duplicate integer key not allowed in JSON map - C;ovsdb negative;
1585;ovsdb-data.at:840;duplicate integer key not allowed in JSON map - Python2;ovsdb negative;
1586;ovsdb-data.at:845;duplicate integer key not allowed in string map;ovsdb negative;
1587;ovsdb-data.at:850;generate and apply diff -- integer;ovsdb positive;
1588;ovsdb-data.at:856;generate and apply diff -- boolean;ovsdb positive;
1589;ovsdb-data.at:862;generate and apply diff -- string;ovsdb positive;
1590;ovsdb-data.at:869;generate and apply diff -- set;ovsdb positive;
1591;ovsdb-data.at:890;generate and apply diff -- set -- size error;ovsdb negative;
1592;ovsdb-data.at:896;generate and apply diff -- map;ovsdb positive;
1593;ovsdb-data.at:920;generate and apply diff with map -- size error;ovsdb negative;
1594;ovsdb-column.at:3;ordinary column - C;ovsdb positive;
1595;ovsdb-column.at:3;ordinary column - Python2;ovsdb positive python;
1596;ovsdb-column.at:3;ordinary column - Python3;ovsdb positive python;
1597;ovsdb-column.at:7;immutable column - C;ovsdb positive;
1598;ovsdb-column.at:7;immutable column - Python2;ovsdb positive python;
1599;ovsdb-column.at:7;immutable column - Python3;ovsdb positive python;
1600;ovsdb-column.at:11;ephemeral column - C;ovsdb positive;
1601;ovsdb-column.at:11;ephemeral column - Python2;ovsdb positive python;
1602;ovsdb-column.at:11;ephemeral column - Python3;ovsdb positive python;
1603;ovsdb-table.at:3;non-root table with one column - C;ovsdb positive;
1604;ovsdb-table.at:3;non-root table with one column - Python2;ovsdb positive python;
1605;ovsdb-table.at:3;non-root table with one column - Python3;ovsdb positive python;
1606;ovsdb-table.at:7;immutable table with one column - C;ovsdb positive;
1607;ovsdb-table.at:7;immutable table with one column - Python2;ovsdb positive python;
1608;ovsdb-table.at:7;immutable table with one column - Python3;ovsdb positive python;
1609;ovsdb-table.at:13;root table with one column - C;ovsdb positive;
1610;ovsdb-table.at:13;root table with one column - Python2;ovsdb positive python;
1611;ovsdb-table.at:13;root table with one column - Python3;ovsdb positive python;
1612;ovsdb-table.at:19;non-root table with default_is_root=true - C;ovsdb positive;
1613;ovsdb-table.at:19;non-root table with default_is_root=true - Python2;ovsdb positive python;
1614;ovsdb-table.at:19;non-root table with default_is_root=true - Python3;ovsdb positive python;
1615;ovsdb-table.at:23;root table with default_is_root=true - C;ovsdb positive;
1616;ovsdb-table.at:23;root table with default_is_root=true - Python2;ovsdb positive python;
1617;ovsdb-table.at:23;root table with default_is_root=true - Python3;ovsdb positive python;
1618;ovsdb-table.at:29;table with maxRows of 2 - C;ovsdb positive;
1619;ovsdb-table.at:29;table with maxRows of 2 - Python2;ovsdb positive python;
1620;ovsdb-table.at:29;table with maxRows of 2 - Python3;ovsdb positive python;
1621;ovsdb-table.at:34;table with index - C;ovsdb positive;
1622;ovsdb-table.at:34;table with index - Python2;ovsdb positive python;
1623;ovsdb-table.at:34;table with index - Python3;ovsdb positive python;
1624;ovsdb-table.at:40;table with syntax error in index - C;ovsdb negative;
1625;ovsdb-table.at:40;table with syntax error in index - Python2;ovsdb negative;
1626;ovsdb-table.at:46;table with empty index - C;ovsdb negative;
1627;ovsdb-table.at:46;table with empty index - Python2;ovsdb negative;
1628;ovsdb-table.at:52;table with index of ephemeral column - C;ovsdb negative;
1629;ovsdb-table.at:52;table with index of ephemeral column - Python2;ovsdb negative;
1630;ovsdb-table.at:59;column names may not begin with _ - C;ovsdb negative table;
1631;ovsdb-table.at:59;column names may not begin with _ - Python2;ovsdb negative table;
1632;ovsdb-table.at:65;table must have at least one column (1) - C;ovsdb negative;
1633;ovsdb-table.at:65;table must have at least one column (1) - Python2;ovsdb negative;
1634;ovsdb-table.at:69;table must have at least one column (2) - C;ovsdb negative;
1635;ovsdb-table.at:69;table must have at least one column (2) - Python2;ovsdb negative;
1636;ovsdb-table.at:73;table maxRows must be positive - C;ovsdb negative;
1637;ovsdb-table.at:73;table maxRows must be positive - Python2;ovsdb negative;
1638;ovsdb-row.at:3;row with one string column;ovsdb positive;
1639;ovsdb-row.at:19;row with one integer column;ovsdb positive;
1640;ovsdb-row.at:35;row with one real column;ovsdb positive;
1641;ovsdb-row.at:51;row with one boolean column;ovsdb positive;
1642;ovsdb-row.at:64;row with one uuid column;ovsdb positive;
1643;ovsdb-row.at:77;row with set of 1 to 2 elements;ovsdb positive;
1644;ovsdb-row.at:84;row with map of 1 to 2 elements;ovsdb positive;
1645;ovsdb-row.at:91;row with several columns;ovsdb positive;
1646;ovsdb-row.at:113;row hashing (scalars);ovsdb positive;
1647;ovsdb-row.at:182;row hashing (sets);ovsdb positive;
1648;ovsdb-row.at:235;row hashing (maps);ovsdb positive;
1649;ovsdb-schema.at:3;schema with valid refTables - C;ovsdb positive;
1650;ovsdb-schema.at:3;schema with valid refTables - Python2;ovsdb positive python;
1651;ovsdb-schema.at:3;schema with valid refTables - Python3;ovsdb positive python;
1652;ovsdb-schema.at:30;schema with ephemeral strong references - C;ovsdb positive;
1653;ovsdb-schema.at:30;schema with ephemeral strong references - Python2;ovsdb positive python;
1654;ovsdb-schema.at:30;schema with ephemeral strong references - Python3;ovsdb positive python;
1655;ovsdb-schema.at:60;schema with immutable weak references - C;ovsdb positive;
1656;ovsdb-schema.at:60;schema with immutable weak references - Python2;ovsdb positive python;
1657;ovsdb-schema.at:60;schema with immutable weak references - Python3;ovsdb positive python;
1658;ovsdb-schema.at:78;schema without version number - C;ovsdb positive;
1659;ovsdb-schema.at:78;schema without version number - Python2;ovsdb positive python;
1660;ovsdb-schema.at:78;schema without version number - Python3;ovsdb positive python;
1661;ovsdb-schema.at:88;schema with invalid refTables - C;ovsdb negative;
1662;ovsdb-schema.at:88;schema with invalid refTables - Python2;ovsdb negative;
1663;ovsdb-schema.at:111;schema with invalid version number - C;ovsdb negative;
1664;ovsdb-schema.at:111;schema with invalid version number - Python2;ovsdb negative;
1665;ovsdb-condition.at:3;null condition;ovsdb positive;
1666;ovsdb-condition.at:9;conditions on scalars;ovsdb positive condition;
1667;ovsdb-condition.at:75;disallowed conditions on scalars;ovsdb negative condition;
1668;ovsdb-condition.at:112;conditions on sets;ovsdb positive condition;
1669;ovsdb-condition.at:173;condition sorting;ovsdb positive;
1670;ovsdb-condition.at:187;boolean condition;ovsdb positive;
1671;ovsdb-condition.at:193;boolean condition;ovsdb positive;
1672;ovsdb-condition.at:199;evaluating null condition;ovsdb positive;
1673;ovsdb-condition.at:208;evaluating conditions on integers;ovsdb positive condition;
1674;ovsdb-condition.at:233;evaluating conditions on reals;ovsdb positive condition;
1675;ovsdb-condition.at:258;evaluating conditions on booleans;ovsdb positive condition;
1676;ovsdb-condition.at:282;evaluating conditions on strings;ovsdb positive condition;
1677;ovsdb-condition.at:307;evaluating conditions on UUIDs;ovsdb positive condition;
1678;ovsdb-condition.at:333;evaluating conditions on sets;ovsdb positive condition;
1679;ovsdb-condition.at:415;evaluating conditions on maps (1);ovsdb positive condition;
1680;ovsdb-condition.at:500;evaluating conditions on maps (2);ovsdb positive condition;
1681;ovsdb-condition.at:592;evaluating conditions on optional integers;ovsdb positive condition;
1682;ovsdb-condition.at:619;evaluating conditions on optional strings;ovsdb positive condition;
1683;ovsdb-condition.at:646;evaluating conditions on optional reals;ovsdb positive condition;
1684;ovsdb-condition.at:673;evaluating false boolean condition;ovsdb positive;
1685;ovsdb-condition.at:682;evaluating true boolean condition;ovsdb positive;
1686;ovsdb-condition.at:691;compare condition;ovsdb positive;
1687;ovsdb-mutation.at:3;null mutation;ovsdb positive;
1688;ovsdb-mutation.at:9;mutations on scalars;ovsdb positive mutation;
1689;ovsdb-mutation.at:37;disallowed mutations on scalars;ovsdb negative mutation;
1690;ovsdb-mutation.at:102;disallowed mutations on immutable columns;ovsdb negative mutation;
1691;ovsdb-mutation.at:114;mutations on sets;ovsdb positive mutation;
1692;ovsdb-mutation.at:166;executing null mutation;ovsdb positive;
1693;ovsdb-mutation.at:179;executing mutations on integers;ovsdb positive mutation;
1694;ovsdb-mutation.at:216;integer overflow detection;ovsdb positive mutation;
1695;ovsdb-mutation.at:297;executing mutations on integers with constraints;ovsdb positive mutation;
1696;ovsdb-mutation.at:336;executing mutations on reals;ovsdb positive mutation;
1697;ovsdb-mutation.at:367;real overflow detection;ovsdb positive mutation;
1698;ovsdb-mutation.at:410;executing mutations on reals with constraints;ovsdb positive mutation;
1699;ovsdb-mutation.at:443;executing mutations on integer sets;ovsdb positive mutation;
1700;ovsdb-mutation.at:517;executing mutations on integer sets with constraints;ovsdb positive mutation;
1701;ovsdb-mutation.at:556;executing mutations on real sets;ovsdb positive mutation;
1702;ovsdb-mutation.at:629;executing mutations on boolean sets;ovsdb positive mutation;
1703;ovsdb-mutation.at:679;executing mutations on string sets;ovsdb positive mutation;
1704;ovsdb-mutation.at:729;executing mutations on uuid sets;ovsdb positive mutation;
1705;ovsdb-mutation.at:779;executing mutations on integer maps;ovsdb positive mutation;
1706;ovsdb-query.at:3;queries on scalars;ovsdb positive query;
1707;ovsdb-query.at:95;queries on sets;ovsdb positive query;
1708;ovsdb-query.at:176;queries on maps (1);ovsdb positive query;
1709;ovsdb-query.at:260;queries on maps (2);ovsdb positive query;
1710;ovsdb-query.at:351;UUID-distinct queries on scalars;ovsdb positive query;
1711;ovsdb-query.at:444;Boolean-distinct queries on scalars;ovsdb positive query;
1712;ovsdb-query.at:537;parse colunn set containing bad name;ovsdb negative;
1713;ovsdb-transaction.at:3;empty table, empty transaction;ovsdb positive;
1714;ovsdb-transaction.at:17;nonempty table, empty transaction;ovsdb positive;
1715;ovsdb-transaction.at:41;insert, commit;ovsdb positive transaction;
1716;ovsdb-transaction.at:70;insert, abort;ovsdb positive transaction;
1717;ovsdb-transaction.at:98;modify, commit;ovsdb positive transaction;
1718;ovsdb-transaction.at:127;modify, abort;ovsdb positive transaction;
1719;ovsdb-transaction.at:156;delete, commit;ovsdb positive transaction;
1720;ovsdb-transaction.at:181;delete, abort;ovsdb positive transaction;
1721;ovsdb-transaction.at:207;modify, delete, commit;ovsdb positive transaction;
1722;ovsdb-transaction.at:234;modify, delete, abort;ovsdb positive transaction;
1723;ovsdb-transaction.at:262;insert, delete, commit;ovsdb positive transaction;
1724;ovsdb-transaction.at:291;insert, delete, abort;ovsdb positive transaction;
1725;ovsdb-transaction.at:322;insert, modify, delete, commit;ovsdb positive transaction;
1726;ovsdb-transaction.at:353;insert, modify, delete, abort;ovsdb positive transaction;
1727;ovsdb-transaction.at:385;deletes are aborted cleanly;ovsdb positive transaction;
1728;ovsdb-execution.at:147;block insert on read only DB;ovsdb execute execution positive;
1729;ovsdb-execution.at:156;allow select on read only DB;ovsdb execute execution positive;
1730;ovsdb-execution.at:185;uuid-name must be <id>;ovsdb execute execution positive;
1731;ovsdb-execution.at:195;named-uuid must be <id>;ovsdb execute execution positive;
1732;ovsdb-execution.at:204;duplicate uuid-name not allowed;ovsdb execute execution positive;
1733;ovsdb-execution.at:1140;insert default row, query table;ovsdb execute execution positive;
1734;ovsdb-execution.at:1140;insert row, query table;ovsdb execute execution positive;
1735;ovsdb-execution.at:1140;insert rows, query by value;ovsdb execute execution positive;
1736;ovsdb-execution.at:1140;insert rows, query by named-uuid;ovsdb execute execution positive;
1737;ovsdb-execution.at:1140;insert rows, update rows by value;ovsdb execute execution positive;
1738;ovsdb-execution.at:1140;insert rows, mutate rows;ovsdb execute execution positive;
1739;ovsdb-execution.at:1140;insert rows, delete by named-uuid;ovsdb execute execution positive;
1740;ovsdb-execution.at:1140;insert rows, delete rows by value;ovsdb execute execution positive;
1741;ovsdb-execution.at:1140;insert rows, delete by (non-matching) value;ovsdb execute execution positive;
1742;ovsdb-execution.at:1140;insert rows, delete all;ovsdb execute execution positive;
1743;ovsdb-execution.at:1140;insert row, query table, commit;ovsdb execute execution positive;
1744;ovsdb-execution.at:1140;insert row, query table, commit durably;ovsdb execute execution positive;
1745;ovsdb-execution.at:1140;equality wait with correct rows;ovsdb execute execution positive;
1746;ovsdb-execution.at:1140;equality wait with extra row;ovsdb execute execution positive;
1747;ovsdb-execution.at:1140;equality wait with missing row;ovsdb execute execution positive;
1748;ovsdb-execution.at:1140;inequality wait with correct rows;ovsdb execute execution positive;
1749;ovsdb-execution.at:1140;inequality wait with extra row;ovsdb execute execution positive;
1750;ovsdb-execution.at:1140;inequality wait with missing row;ovsdb execute execution positive;
1751;ovsdb-execution.at:1140;insert and update constraints;ovsdb execute execution positive;
1752;ovsdb-execution.at:1140;index uniqueness checking;ovsdb execute execution positive;
1753;ovsdb-execution.at:1140;referential integrity -- simple;ovsdb execute execution positive;
1754;ovsdb-execution.at:1140;referential integrity -- mutual references;ovsdb execute execution positive;
1755;ovsdb-execution.at:1140;weak references;ovsdb execute execution positive;
1756;ovsdb-execution.at:1140;immutable columns;ovsdb execute execution positive;
1757;ovsdb-execution.at:1140;garbage collection;ovsdb execute execution positive;
1758;ovsdb-trigger.at:15;trigger fires immediately;ovsdb execute execution trigger positive;
1759;ovsdb-trigger.at:38;trigger times out;ovsdb execute execution trigger positive;
1760;ovsdb-trigger.at:61;trigger fires after delay;ovsdb execute execution trigger positive;
1761;ovsdb-trigger.at:92;delayed trigger modifies database;ovsdb execute execution trigger positive;
1762;ovsdb-trigger.at:132;one delayed trigger wakes up another;ovsdb execute execution trigger positive;
1763;ovsdb-tool.at:29;insert default row, query table;ovsdb file positive;
1764;ovsdb-tool.at:29;insert row, query table;ovsdb file positive;
1765;ovsdb-tool.at:29;insert rows, query by value;ovsdb file positive;
1766;ovsdb-tool.at:29;insert rows, query by named-uuid;ovsdb file positive;
1767;ovsdb-tool.at:29;insert rows, update rows by value;ovsdb file positive;
1768;ovsdb-tool.at:29;insert rows, mutate rows;ovsdb file positive;
1769;ovsdb-tool.at:29;insert rows, delete by named-uuid;ovsdb file positive;
1770;ovsdb-tool.at:29;insert rows, delete rows by value;ovsdb file positive;
1771;ovsdb-tool.at:29;insert rows, delete by (non-matching) value;ovsdb file positive;
1772;ovsdb-tool.at:29;insert rows, delete all;ovsdb file positive;
1773;ovsdb-tool.at:29;insert row, query table, commit;ovsdb file positive;
1774;ovsdb-tool.at:29;insert row, query table, commit durably;ovsdb file positive;
1775;ovsdb-tool.at:29;equality wait with correct rows;ovsdb file positive;
1776;ovsdb-tool.at:29;equality wait with extra row;ovsdb file positive;
1777;ovsdb-tool.at:29;equality wait with missing row;ovsdb file positive;
1778;ovsdb-tool.at:29;inequality wait with correct rows;ovsdb file positive;
1779;ovsdb-tool.at:29;inequality wait with extra row;ovsdb file positive;
1780;ovsdb-tool.at:29;inequality wait with missing row;ovsdb file positive;
1781;ovsdb-tool.at:29;insert and update constraints;ovsdb file positive;
1782;ovsdb-tool.at:29;index uniqueness checking;ovsdb file positive;
1783;ovsdb-tool.at:29;referential integrity -- simple;ovsdb file positive;
1784;ovsdb-tool.at:29;referential integrity -- mutual references;ovsdb file positive;
1785;ovsdb-tool.at:29;weak references;ovsdb file positive;
1786;ovsdb-tool.at:29;immutable columns;ovsdb file positive;
1787;ovsdb-tool.at:29;garbage collection;ovsdb file positive;
1788;ovsdb-tool.at:31;transaction comments;ovsdb file positive;
1789;ovsdb-tool.at:49;ovsdb-tool compact;ovsdb file positive;
1790;ovsdb-tool.at:172;ovsdb-tool convert -- removing a column;ovsdb file positive;
1791;ovsdb-tool.at:239;ovsdb-tool convert -- adding a column;ovsdb file positive;
1792;ovsdb-tool.at:305;ovsdb-tool unsupported cluster operations;ovsdb file negative compact query transact convert;
1793;ovsdb-tool.at:321;ovsdb-tool schema-version, schema-cksum, schema-name;ovsdb file positive schema-version schema-cksum;
1794;ovsdb-tool.at:332;ovsdb-tool database inspection commands - standalone;ovsdb file positive db-version db-cksum db-name db-cid db-sid db-local-address;
1795;ovsdb-tool.at:351;ovsdb-tool database inspection commands - clustered;ovsdb file negative db-version db-cksum db-name db-cid db-sid db-local-address cluster;
1796;ovsdb-tool.at:369;ovsdb-tool database inspection commands - joining a cluster;ovsdb file positive db-version db-cksum db-name db-cid db-sid db-local-address cluster join joining;
1797;ovsdb-tool.at:400;ovsdb-tool needs-conversion (no conversion needed);ovsdb file positive;
1798;ovsdb-tool.at:409;ovsdb-tool needs-conversion (conversion needed);ovsdb file positive;
1799;ovsdb-tool.at:420;ovsdb-tool create-cluster with initial data;ovsdb file positive;
1800;ovsdb-server.at:41;insert default row, query table;ovsdb server positive unix;
1801;ovsdb-server.at:41;insert row, query table;ovsdb server positive unix;
1802;ovsdb-server.at:41;insert rows, query by value;ovsdb server positive unix;
1803;ovsdb-server.at:41;insert rows, query by named-uuid;ovsdb server positive unix;
1804;ovsdb-server.at:41;insert rows, update rows by value;ovsdb server positive unix;
1805;ovsdb-server.at:41;insert rows, mutate rows;ovsdb server positive unix;
1806;ovsdb-server.at:41;insert rows, delete by named-uuid;ovsdb server positive unix;
1807;ovsdb-server.at:41;insert rows, delete rows by value;ovsdb server positive unix;
1808;ovsdb-server.at:41;insert rows, delete by (non-matching) value;ovsdb server positive unix;
1809;ovsdb-server.at:41;insert rows, delete all;ovsdb server positive unix;
1810;ovsdb-server.at:41;insert row, query table, commit;ovsdb server positive unix;
1811;ovsdb-server.at:41;insert row, query table, commit durably;ovsdb server positive unix;
1812;ovsdb-server.at:41;equality wait with correct rows;ovsdb server positive unix;
1813;ovsdb-server.at:41;equality wait with extra row;ovsdb server positive unix;
1814;ovsdb-server.at:41;equality wait with missing row;ovsdb server positive unix;
1815;ovsdb-server.at:41;inequality wait with correct rows;ovsdb server positive unix;
1816;ovsdb-server.at:41;inequality wait with extra row;ovsdb server positive unix;
1817;ovsdb-server.at:41;inequality wait with missing row;ovsdb server positive unix;
1818;ovsdb-server.at:41;insert and update constraints;ovsdb server positive unix;
1819;ovsdb-server.at:41;index uniqueness checking;ovsdb server positive unix;
1820;ovsdb-server.at:41;referential integrity -- simple;ovsdb server positive unix;
1821;ovsdb-server.at:41;referential integrity -- mutual references;ovsdb server positive unix;
1822;ovsdb-server.at:41;weak references;ovsdb server positive unix;
1823;ovsdb-server.at:41;immutable columns;ovsdb server positive unix;
1824;ovsdb-server.at:41;garbage collection;ovsdb server positive unix;
1825;ovsdb-server.at:45;truncating corrupted database log;ovsdb server positive unix;
1826;ovsdb-server.at:92;truncating database log with bad transaction;ovsdb server positive unix;
1827;ovsdb-server.at:153;database multiplexing implementation;ovsdb server positive;
1828;ovsdb-server.at:170;ovsdb-server/add-db and remove-db;ovsdb server positive;
1829;ovsdb-server.at:285;ovsdb-server/add-db with --monitor;ovsdb server positive;
1830;ovsdb-server.at:316;ovsdb-server/add-db and remove-db with --monitor;ovsdb server positive;
1831;ovsdb-server.at:345;--remote=db: implementation;ovsdb server positive;
1832;ovsdb-server.at:409;ovsdb-server/add-remote and remove-remote;ovsdb server positive;
1833;ovsdb-server.at:462;ovsdb-server/add-remote with --monitor;ovsdb server positive;
1834;ovsdb-server.at:493;ovsdb-server/add-remote and remove-remote with --monitor;ovsdb server positive;
1835;ovsdb-server.at:528;SSL db: implementation;ovsdb server positive ssl \$5;
1836;ovsdb-server.at:819;compacting online - standalone;ovsdb server compact;
1837;ovsdb-server.at:824;compacting online - cluster;ovsdb server compact;
1838;ovsdb-server.at:1105;schema conversion online - standalone;ovsdb server convert needs-conversion standalone;
1839;ovsdb-server.at:1110;schema conversion online - clustered;ovsdb server convert needs-conversion cluster;
1840;ovsdb-server.at:1115;ovsdb-server combines updates on backlogged connections;;
1841;ovsdb-server.at:1248;insert default row, query table;ovsdb server positive ssl;
1842;ovsdb-server.at:1248;insert row, query table;ovsdb server positive ssl;
1843;ovsdb-server.at:1248;insert rows, query by value;ovsdb server positive ssl;
1844;ovsdb-server.at:1248;insert rows, query by named-uuid;ovsdb server positive ssl;
1845;ovsdb-server.at:1248;insert rows, update rows by value;ovsdb server positive ssl;
1846;ovsdb-server.at:1248;insert rows, mutate rows;ovsdb server positive ssl;
1847;ovsdb-server.at:1248;insert rows, delete by named-uuid;ovsdb server positive ssl;
1848;ovsdb-server.at:1248;insert rows, delete rows by value;ovsdb server positive ssl;
1849;ovsdb-server.at:1248;insert rows, delete by (non-matching) value;ovsdb server positive ssl;
1850;ovsdb-server.at:1248;insert rows, delete all;ovsdb server positive ssl;
1851;ovsdb-server.at:1248;insert row, query table, commit;ovsdb server positive ssl;
1852;ovsdb-server.at:1248;insert row, query table, commit durably;ovsdb server positive ssl;
1853;ovsdb-server.at:1248;equality wait with correct rows;ovsdb server positive ssl;
1854;ovsdb-server.at:1248;equality wait with extra row;ovsdb server positive ssl;
1855;ovsdb-server.at:1248;equality wait with missing row;ovsdb server positive ssl;
1856;ovsdb-server.at:1248;inequality wait with correct rows;ovsdb server positive ssl;
1857;ovsdb-server.at:1248;inequality wait with extra row;ovsdb server positive ssl;
1858;ovsdb-server.at:1248;inequality wait with missing row;ovsdb server positive ssl;
1859;ovsdb-server.at:1248;insert and update constraints;ovsdb server positive ssl;
1860;ovsdb-server.at:1248;index uniqueness checking;ovsdb server positive ssl;
1861;ovsdb-server.at:1248;referential integrity -- simple;ovsdb server positive ssl;
1862;ovsdb-server.at:1248;referential integrity -- mutual references;ovsdb server positive ssl;
1863;ovsdb-server.at:1248;weak references;ovsdb server positive ssl;
1864;ovsdb-server.at:1248;immutable columns;ovsdb server positive ssl;
1865;ovsdb-server.at:1248;garbage collection;ovsdb server positive ssl;
1866;ovsdb-server.at:1286;insert default row, query table;ovsdb server positive ssl6;
1867;ovsdb-server.at:1322;insert default row, query table;ovsdb server positive tcp;
1868;ovsdb-server.at:1322;insert row, query table;ovsdb server positive tcp;
1869;ovsdb-server.at:1322;insert rows, query by value;ovsdb server positive tcp;
1870;ovsdb-server.at:1322;insert rows, query by named-uuid;ovsdb server positive tcp;
1871;ovsdb-server.at:1322;insert rows, update rows by value;ovsdb server positive tcp;
1872;ovsdb-server.at:1322;insert rows, mutate rows;ovsdb server positive tcp;
1873;ovsdb-server.at:1322;insert rows, delete by named-uuid;ovsdb server positive tcp;
1874;ovsdb-server.at:1322;insert rows, delete rows by value;ovsdb server positive tcp;
1875;ovsdb-server.at:1322;insert rows, delete by (non-matching) value;ovsdb server positive tcp;
1876;ovsdb-server.at:1322;insert rows, delete all;ovsdb server positive tcp;
1877;ovsdb-server.at:1322;insert row, query table, commit;ovsdb server positive tcp;
1878;ovsdb-server.at:1322;insert row, query table, commit durably;ovsdb server positive tcp;
1879;ovsdb-server.at:1322;equality wait with correct rows;ovsdb server positive tcp;
1880;ovsdb-server.at:1322;equality wait with extra row;ovsdb server positive tcp;
1881;ovsdb-server.at:1322;equality wait with missing row;ovsdb server positive tcp;
1882;ovsdb-server.at:1322;inequality wait with correct rows;ovsdb server positive tcp;
1883;ovsdb-server.at:1322;inequality wait with extra row;ovsdb server positive tcp;
1884;ovsdb-server.at:1322;inequality wait with missing row;ovsdb server positive tcp;
1885;ovsdb-server.at:1322;insert and update constraints;ovsdb server positive tcp;
1886;ovsdb-server.at:1322;index uniqueness checking;ovsdb server positive tcp;
1887;ovsdb-server.at:1322;referential integrity -- simple;ovsdb server positive tcp;
1888;ovsdb-server.at:1322;referential integrity -- mutual references;ovsdb server positive tcp;
1889;ovsdb-server.at:1322;weak references;ovsdb server positive tcp;
1890;ovsdb-server.at:1322;immutable columns;ovsdb server positive tcp;
1891;ovsdb-server.at:1322;garbage collection;ovsdb server positive tcp;
1892;ovsdb-server.at:1359;insert default row, query table;ovsdb server positive tcp6;
1893;ovsdb-server.at:1395;insert default row, query table;ovsdb server positive transient;
1894;ovsdb-server.at:1395;insert row, query table;ovsdb server positive transient;
1895;ovsdb-server.at:1395;insert rows, query by value;ovsdb server positive transient;
1896;ovsdb-server.at:1395;insert rows, query by named-uuid;ovsdb server positive transient;
1897;ovsdb-server.at:1395;insert rows, update rows by value;ovsdb server positive transient;
1898;ovsdb-server.at:1395;insert rows, mutate rows;ovsdb server positive transient;
1899;ovsdb-server.at:1395;insert rows, delete by named-uuid;ovsdb server positive transient;
1900;ovsdb-server.at:1395;insert rows, delete rows by value;ovsdb server positive transient;
1901;ovsdb-server.at:1395;insert rows, delete by (non-matching) value;ovsdb server positive transient;
1902;ovsdb-server.at:1395;insert rows, delete all;ovsdb server positive transient;
1903;ovsdb-server.at:1395;insert row, query table, commit;ovsdb server positive transient;
1904;ovsdb-server.at:1395;insert row, query table, commit durably;ovsdb server positive transient;
1905;ovsdb-server.at:1395;equality wait with correct rows;ovsdb server positive transient;
1906;ovsdb-server.at:1395;equality wait with extra row;ovsdb server positive transient;
1907;ovsdb-server.at:1395;equality wait with missing row;ovsdb server positive transient;
1908;ovsdb-server.at:1395;inequality wait with correct rows;ovsdb server positive transient;
1909;ovsdb-server.at:1395;inequality wait with extra row;ovsdb server positive transient;
1910;ovsdb-server.at:1395;inequality wait with missing row;ovsdb server positive transient;
1911;ovsdb-server.at:1395;insert and update constraints;ovsdb server positive transient;
1912;ovsdb-server.at:1395;index uniqueness checking;ovsdb server positive transient;
1913;ovsdb-server.at:1395;referential integrity -- simple;ovsdb server positive transient;
1914;ovsdb-server.at:1395;referential integrity -- mutual references;ovsdb server positive transient;
1915;ovsdb-server.at:1395;weak references;ovsdb server positive transient;
1916;ovsdb-server.at:1395;immutable columns;ovsdb server positive transient;
1917;ovsdb-server.at:1395;garbage collection;ovsdb server positive transient;
1918;ovsdb-server.at:1435;insert default row, query table;ovsdb server tcp replication;
1919;ovsdb-server.at:1435;insert row, query table;ovsdb server tcp replication;
1920;ovsdb-server.at:1435;insert rows, query by value;ovsdb server tcp replication;
1921;ovsdb-server.at:1435;insert rows, query by named-uuid;ovsdb server tcp replication;
1922;ovsdb-server.at:1435;insert rows, update rows by value;ovsdb server tcp replication;
1923;ovsdb-server.at:1435;insert rows, mutate rows;ovsdb server tcp replication;
1924;ovsdb-server.at:1435;insert rows, delete by named-uuid;ovsdb server tcp replication;
1925;ovsdb-server.at:1435;insert rows, delete rows by value;ovsdb server tcp replication;
1926;ovsdb-server.at:1435;insert rows, delete by (non-matching) value;ovsdb server tcp replication;
1927;ovsdb-server.at:1435;insert rows, delete all;ovsdb server tcp replication;
1928;ovsdb-server.at:1435;insert row, query table, commit;ovsdb server tcp replication;
1929;ovsdb-server.at:1435;insert row, query table, commit durably;ovsdb server tcp replication;
1930;ovsdb-server.at:1435;equality wait with correct rows;ovsdb server tcp replication;
1931;ovsdb-server.at:1435;equality wait with extra row;ovsdb server tcp replication;
1932;ovsdb-server.at:1435;equality wait with missing row;ovsdb server tcp replication;
1933;ovsdb-server.at:1435;inequality wait with correct rows;ovsdb server tcp replication;
1934;ovsdb-server.at:1435;inequality wait with extra row;ovsdb server tcp replication;
1935;ovsdb-server.at:1435;inequality wait with missing row;ovsdb server tcp replication;
1936;ovsdb-server.at:1435;insert and update constraints;ovsdb server tcp replication;
1937;ovsdb-server.at:1435;index uniqueness checking;ovsdb server tcp replication;
1938;ovsdb-server.at:1435;referential integrity -- simple;ovsdb server tcp replication;
1939;ovsdb-server.at:1435;referential integrity -- mutual references;ovsdb server tcp replication;
1940;ovsdb-server.at:1435;weak references;ovsdb server tcp replication;
1941;ovsdb-server.at:1435;immutable columns;ovsdb server tcp replication;
1942;ovsdb-server.at:1435;garbage collection;ovsdb server tcp replication;
1943;ovsdb-server.at:1489;insert monitored table, insert excluded table;ovsdb server tcp replication table-exclusion;
1944;ovsdb-server.at:1489;insert monitored table, update excluded table;ovsdb server tcp replication table-exclusion;
1945;ovsdb-server.at:1489;update monitored table, insert excluded table;ovsdb server tcp replication table-exclusion;
1946;ovsdb-server.at:1489;update monitored table, update excluded table;ovsdb server tcp replication table-exclusion;
1947;ovsdb-server.at:1489;delete monitored table, insert excluded table;ovsdb server tcp replication table-exclusion;
1948;ovsdb-server.at:1489;delete monitored table, update excluded table;ovsdb server tcp replication table-exclusion;
1949;ovsdb-server.at:1494;ovsdb-server/get-active-ovsdb-server;ovsdb server replication get-active;
1950;ovsdb-server.at:1507;ovsdb-server/set-active-ovsdb-server;ovsdb server replication set-active;
1951;ovsdb-server.at:1521;ovsdb-server/get-sync-exclude-tables;ovsdb server replication get-exclude-tables;
1952;ovsdb-server.at:1534;ovsdb-server/set-sync-exclude-tables;ovsdb server replication set-exclude-tables;
1953;ovsdb-server.at:1584;ovsdb-server/connect-active-server;ovsdb server replication connect-active-server;
1954;ovsdb-server.at:1623;ovsdb-server/disconnect-active-server;ovsdb server replication disconnect-active-server;
1955;ovsdb-server.at:1709;ovsdb-server/active-backup-role-switching;ovsdb server replication active-backup-switching;
1956;ovsdb-server.at:1793;ovsdb-server prevent self replicating;ovsdb server replication;
1957;ovsdb-server.at:1824;ovsdb-server/read-only db:ptcp connection;ovsdb server read-only;
1958;ovsdb-client.at:3;ovsdb-client get-schema-version and get-schema-cksum;ovsdb client positive;
1959;ovsdb-client.at:15;ovsdb-client backup and restore;ovsdb client positive;
1960;ovsdb-client.at:122;ovsdb-client query;ovsdb client positive;
1961;ovsdb-monitor.at:111;monitor insert into empty table;ovsdb server monitor positive;
1962;ovsdb-monitor.at:123;monitor insert into populated table;ovsdb server monitor positive;
1963;ovsdb-monitor.at:141;monitor delete;ovsdb server monitor positive;
1964;ovsdb-monitor.at:159;monitor row update;ovsdb server monitor positive;
1965;ovsdb-monitor.at:179;monitor no-op row updates;ovsdb server monitor positive;
1966;ovsdb-monitor.at:202;monitor insert-and-update transaction;ovsdb server monitor positive;
1967;ovsdb-monitor.at:225;monitor insert-update-and-delete transaction;ovsdb server monitor positive;
1968;ovsdb-monitor.at:254;monitor weak reference change;ovsdb server monitor positive;
1969;ovsdb-monitor.at:289;monitor insert-update-and-delete transaction;ovsdb server monitor positive;
1970;ovsdb-monitor.at:340;monitor all operations;ovsdb server monitor positive;
1971;ovsdb-monitor.at:360;monitor initial only;ovsdb server monitor positive;
1972;ovsdb-monitor.at:367;monitor insert only;ovsdb server monitor positive;
1973;ovsdb-monitor.at:374;monitor delete only;ovsdb server monitor positive;
1974;ovsdb-monitor.at:382;monitor modify only;ovsdb server monitor positive;
1975;ovsdb-monitor.at:392;monitor-cond empty condition;ovsdb server monitor monitor-cond positive;
1976;ovsdb-monitor.at:423;monitor-cond multiple conditions;ovsdb server monitor monitor-cond positive;
1977;ovsdb-monitor.at:451;monitor-cond delete from populated table;ovsdb server monitor monitor-cond positive;
1978;ovsdb-monitor.at:476;monitor-cond insert due to modify;ovsdb server monitor monitor-cond positive;
1979;ovsdb-monitor.at:500;monitor-cond delete due to modify;ovsdb server monitor monitor-cond positive;
1980;ovsdb-monitor.at:524;monitor-cond condition non-monitored columns;ovsdb server monitor monitor-cond positive;
1981;ovsdb-monitor.at:553;monitor-cond-change;ovsdb server monitor monitor-cond positive [[[\"name\",\"==\",\"one\"],[\"name\",\"==\",\"two\"]]], [[[\"name\",\"==\",\"one\"]]], [[false]], [[true]];
1982;ovsdb-idl.at:163;simple passive idl, initially empty, select empty - Python ptcp;ovsdb server idl positive python with tcp socket;
1983;ovsdb-idl.at:171;simple idl, initially empty, no ops - C;ovsdb server idl positive;
1984;ovsdb-idl.at:171;simple idl, initially empty, no ops - Python2;ovsdb server idl positive python;
1985;ovsdb-idl.at:171;simple idl, initially empty, no ops - Python3;ovsdb server idl positive python;
1986;ovsdb-idl.at:171;simple idl, initially empty, no ops - Python2 - register_columns;ovsdb server idl positive python register_columns;
1987;ovsdb-idl.at:171;simple idl, initially empty, no ops - Python3 - register_columns;ovsdb server idl positive python register_columns;
1988;ovsdb-idl.at:171;simple idl, initially empty, no ops - Python2 - tcp;ovsdb server idl positive python with tcp socket;
1989;ovsdb-idl.at:171;simple idl, initially empty, no ops - Python3 - tcp;ovsdb server idl positive python with tcp socket;
1990;ovsdb-idl.at:171;simple idl, initially empty, no ops - Python2 - tcp6;ovsdb server idl positive python with tcp6 socket;
1991;ovsdb-idl.at:171;simple idl, initially empty, no ops - Python3 - tcp6;ovsdb server idl positive python with tcp6 socket;
1992;ovsdb-idl.at:178;simple idl, initially empty, various ops - C;ovsdb server idl positive;
1993;ovsdb-idl.at:178;simple idl, initially empty, various ops - Python2;ovsdb server idl positive python;
1994;ovsdb-idl.at:178;simple idl, initially empty, various ops - Python3;ovsdb server idl positive python;
1995;ovsdb-idl.at:178;simple idl, initially empty, various ops - Python2 - register_columns;ovsdb server idl positive python register_columns;
1996;ovsdb-idl.at:178;simple idl, initially empty, various ops - Python3 - register_columns;ovsdb server idl positive python register_columns;
1997;ovsdb-idl.at:178;simple idl, initially empty, various ops - Python2 - tcp;ovsdb server idl positive python with tcp socket;
1998;ovsdb-idl.at:178;simple idl, initially empty, various ops - Python3 - tcp;ovsdb server idl positive python with tcp socket;
1999;ovsdb-idl.at:178;simple idl, initially empty, various ops - Python2 - tcp6;ovsdb server idl positive python with tcp6 socket;
2000;ovsdb-idl.at:178;simple idl, initially empty, various ops - Python3 - tcp6;ovsdb server idl positive python with tcp6 socket;
2001;ovsdb-idl.at:256;simple idl, initially populated - C;ovsdb server idl positive;
2002;ovsdb-idl.at:256;simple idl, initially populated - Python2;ovsdb server idl positive python;
2003;ovsdb-idl.at:256;simple idl, initially populated - Python3;ovsdb server idl positive python;
2004;ovsdb-idl.at:256;simple idl, initially populated - Python2 - register_columns;ovsdb server idl positive python register_columns;
2005;ovsdb-idl.at:256;simple idl, initially populated - Python3 - register_columns;ovsdb server idl positive python register_columns;
2006;ovsdb-idl.at:256;simple idl, initially populated - Python2 - tcp;ovsdb server idl positive python with tcp socket;
2007;ovsdb-idl.at:256;simple idl, initially populated - Python3 - tcp;ovsdb server idl positive python with tcp socket;
2008;ovsdb-idl.at:256;simple idl, initially populated - Python2 - tcp6;ovsdb server idl positive python with tcp6 socket;
2009;ovsdb-idl.at:256;simple idl, initially populated - Python3 - tcp6;ovsdb server idl positive python with tcp6 socket;
2010;ovsdb-idl.at:287;simple idl, writing via IDL - C;ovsdb server idl positive;
2011;ovsdb-idl.at:287;simple idl, writing via IDL - Python2;ovsdb server idl positive python;
2012;ovsdb-idl.at:287;simple idl, writing via IDL - Python3;ovsdb server idl positive python;
2013;ovsdb-idl.at:287;simple idl, writing via IDL - Python2 - register_columns;ovsdb server idl positive python register_columns;
2014;ovsdb-idl.at:287;simple idl, writing via IDL - Python3 - register_columns;ovsdb server idl positive python register_columns;
2015;ovsdb-idl.at:287;simple idl, writing via IDL - Python2 - tcp;ovsdb server idl positive python with tcp socket;
2016;ovsdb-idl.at:287;simple idl, writing via IDL - Python3 - tcp;ovsdb server idl positive python with tcp socket;
2017;ovsdb-idl.at:287;simple idl, writing via IDL - Python2 - tcp6;ovsdb server idl positive python with tcp6 socket;
2018;ovsdb-idl.at:287;simple idl, writing via IDL - Python3 - tcp6;ovsdb server idl positive python with tcp6 socket;
2019;ovsdb-idl.at:318;simple idl, writing via IDL with unicode - C;ovsdb server idl positive;
2020;ovsdb-idl.at:318;simple idl, writing via IDL with unicode - Python2;ovsdb server idl positive python;
2021;ovsdb-idl.at:318;simple idl, writing via IDL with unicode - Python3;ovsdb server idl positive python;
2022;ovsdb-idl.at:318;simple idl, writing via IDL with unicode - Python2 - register_columns;ovsdb server idl positive python register_columns;
2023;ovsdb-idl.at:318;simple idl, writing via IDL with unicode - Python3 - register_columns;ovsdb server idl positive python register_columns;
2024;ovsdb-idl.at:318;simple idl, writing via IDL with unicode - Python2 - tcp;ovsdb server idl positive python with tcp socket;
2025;ovsdb-idl.at:318;simple idl, writing via IDL with unicode - Python3 - tcp;ovsdb server idl positive python with tcp socket;
2026;ovsdb-idl.at:318;simple idl, writing via IDL with unicode - Python2 - tcp6;ovsdb server idl positive python with tcp6 socket;
2027;ovsdb-idl.at:318;simple idl, writing via IDL with unicode - Python3 - tcp6;ovsdb server idl positive python with tcp6 socket;
2028;ovsdb-idl.at:352;simple idl, writing large data via IDL with unicode - Python2;ovsdb server idl positive python;
2029;ovsdb-idl.at:352;simple idl, writing large data via IDL with unicode - Python3;ovsdb server idl positive python;
2030;ovsdb-idl.at:364;simple idl, handling verification failure - C;ovsdb server idl positive;
2031;ovsdb-idl.at:364;simple idl, handling verification failure - Python2;ovsdb server idl positive python;
2032;ovsdb-idl.at:364;simple idl, handling verification failure - Python3;ovsdb server idl positive python;
2033;ovsdb-idl.at:364;simple idl, handling verification failure - Python2 - register_columns;ovsdb server idl positive python register_columns;
2034;ovsdb-idl.at:364;simple idl, handling verification failure - Python3 - register_columns;ovsdb server idl positive python register_columns;
2035;ovsdb-idl.at:364;simple idl, handling verification failure - Python2 - tcp;ovsdb server idl positive python with tcp socket;
2036;ovsdb-idl.at:364;simple idl, handling verification failure - Python3 - tcp;ovsdb server idl positive python with tcp socket;
2037;ovsdb-idl.at:364;simple idl, handling verification failure - Python2 - tcp6;ovsdb server idl positive python with tcp6 socket;
2038;ovsdb-idl.at:364;simple idl, handling verification failure - Python3 - tcp6;ovsdb server idl positive python with tcp6 socket;
2039;ovsdb-idl.at:395;simple idl, increment operation - C;ovsdb server idl positive;
2040;ovsdb-idl.at:395;simple idl, increment operation - Python2;ovsdb server idl positive python;
2041;ovsdb-idl.at:395;simple idl, increment operation - Python3;ovsdb server idl positive python;
2042;ovsdb-idl.at:395;simple idl, increment operation - Python2 - register_columns;ovsdb server idl positive python register_columns;
2043;ovsdb-idl.at:395;simple idl, increment operation - Python3 - register_columns;ovsdb server idl positive python register_columns;
2044;ovsdb-idl.at:395;simple idl, increment operation - Python2 - tcp;ovsdb server idl positive python with tcp socket;
2045;ovsdb-idl.at:395;simple idl, increment operation - Python3 - tcp;ovsdb server idl positive python with tcp socket;
2046;ovsdb-idl.at:395;simple idl, increment operation - Python2 - tcp6;ovsdb server idl positive python with tcp6 socket;
2047;ovsdb-idl.at:395;simple idl, increment operation - Python3 - tcp6;ovsdb server idl positive python with tcp6 socket;
2048;ovsdb-idl.at:407;simple idl, aborting - C;ovsdb server idl positive;
2049;ovsdb-idl.at:407;simple idl, aborting - Python2;ovsdb server idl positive python;
2050;ovsdb-idl.at:407;simple idl, aborting - Python3;ovsdb server idl positive python;
2051;ovsdb-idl.at:407;simple idl, aborting - Python2 - register_columns;ovsdb server idl positive python register_columns;
2052;ovsdb-idl.at:407;simple idl, aborting - Python3 - register_columns;ovsdb server idl positive python register_columns;
2053;ovsdb-idl.at:407;simple idl, aborting - Python2 - tcp;ovsdb server idl positive python with tcp socket;
2054;ovsdb-idl.at:407;simple idl, aborting - Python3 - tcp;ovsdb server idl positive python with tcp socket;
2055;ovsdb-idl.at:407;simple idl, aborting - Python2 - tcp6;ovsdb server idl positive python with tcp6 socket;
2056;ovsdb-idl.at:407;simple idl, aborting - Python3 - tcp6;ovsdb server idl positive python with tcp6 socket;
2057;ovsdb-idl.at:421;simple idl, destroy without commit or abort - C;ovsdb server idl positive;
2058;ovsdb-idl.at:421;simple idl, destroy without commit or abort - Python2;ovsdb server idl positive python;
2059;ovsdb-idl.at:421;simple idl, destroy without commit or abort - Python3;ovsdb server idl positive python;
2060;ovsdb-idl.at:421;simple idl, destroy without commit or abort - Python2 - register_columns;ovsdb server idl positive python register_columns;
2061;ovsdb-idl.at:421;simple idl, destroy without commit or abort - Python3 - register_columns;ovsdb server idl positive python register_columns;
2062;ovsdb-idl.at:421;simple idl, destroy without commit or abort - Python2 - tcp;ovsdb server idl positive python with tcp socket;
2063;ovsdb-idl.at:421;simple idl, destroy without commit or abort - Python3 - tcp;ovsdb server idl positive python with tcp socket;
2064;ovsdb-idl.at:421;simple idl, destroy without commit or abort - Python2 - tcp6;ovsdb server idl positive python with tcp6 socket;
2065;ovsdb-idl.at:421;simple idl, destroy without commit or abort - Python3 - tcp6;ovsdb server idl positive python with tcp6 socket;
2066;ovsdb-idl.at:435;simple idl, conditional, false condition - C;ovsdb server idl positive;
2067;ovsdb-idl.at:435;simple idl, conditional, false condition - Python2;ovsdb server idl positive python;
2068;ovsdb-idl.at:435;simple idl, conditional, false condition - Python3;ovsdb server idl positive python;
2069;ovsdb-idl.at:435;simple idl, conditional, false condition - Python2 - register_columns;ovsdb server idl positive python register_columns;
2070;ovsdb-idl.at:435;simple idl, conditional, false condition - Python3 - register_columns;ovsdb server idl positive python register_columns;
2071;ovsdb-idl.at:435;simple idl, conditional, false condition - Python2 - tcp;ovsdb server idl positive python with tcp socket;
2072;ovsdb-idl.at:435;simple idl, conditional, false condition - Python3 - tcp;ovsdb server idl positive python with tcp socket;
2073;ovsdb-idl.at:435;simple idl, conditional, false condition - Python2 - tcp6;ovsdb server idl positive python with tcp6 socket;
2074;ovsdb-idl.at:435;simple idl, conditional, false condition - Python3 - tcp6;ovsdb server idl positive python with tcp6 socket;
2075;ovsdb-idl.at:451;simple idl, conditional, true condition - C;ovsdb server idl positive;
2076;ovsdb-idl.at:451;simple idl, conditional, true condition - Python2;ovsdb server idl positive python;
2077;ovsdb-idl.at:451;simple idl, conditional, true condition - Python3;ovsdb server idl positive python;
2078;ovsdb-idl.at:451;simple idl, conditional, true condition - Python2 - register_columns;ovsdb server idl positive python register_columns;
2079;ovsdb-idl.at:451;simple idl, conditional, true condition - Python3 - register_columns;ovsdb server idl positive python register_columns;
2080;ovsdb-idl.at:451;simple idl, conditional, true condition - Python2 - tcp;ovsdb server idl positive python with tcp socket;
2081;ovsdb-idl.at:451;simple idl, conditional, true condition - Python3 - tcp;ovsdb server idl positive python with tcp socket;
2082;ovsdb-idl.at:451;simple idl, conditional, true condition - Python2 - tcp6;ovsdb server idl positive python with tcp6 socket;
2083;ovsdb-idl.at:451;simple idl, conditional, true condition - Python3 - tcp6;ovsdb server idl positive python with tcp6 socket;
2084;ovsdb-idl.at:467;simple idl, conditional, multiple clauses in condition - C;ovsdb server idl positive;
2085;ovsdb-idl.at:467;simple idl, conditional, multiple clauses in condition - Python2;ovsdb server idl positive python;
2086;ovsdb-idl.at:467;simple idl, conditional, multiple clauses in condition - Python3;ovsdb server idl positive python;
2087;ovsdb-idl.at:467;simple idl, conditional, multiple clauses in condition - Python2 - register_columns;ovsdb server idl positive python register_columns;
2088;ovsdb-idl.at:467;simple idl, conditional, multiple clauses in condition - Python3 - register_columns;ovsdb server idl positive python register_columns;
2089;ovsdb-idl.at:467;simple idl, conditional, multiple clauses in condition - Python2 - tcp;ovsdb server idl positive python with tcp socket;
2090;ovsdb-idl.at:467;simple idl, conditional, multiple clauses in condition - Python3 - tcp;ovsdb server idl positive python with tcp socket;
2091;ovsdb-idl.at:467;simple idl, conditional, multiple clauses in condition - Python2 - tcp6;ovsdb server idl positive python with tcp6 socket;
2092;ovsdb-idl.at:467;simple idl, conditional, multiple clauses in condition - Python3 - tcp6;ovsdb server idl positive python with tcp6 socket;
2093;ovsdb-idl.at:489;simple idl, conditional, modify as insert due to condition - C;ovsdb server idl positive;
2094;ovsdb-idl.at:489;simple idl, conditional, modify as insert due to condition - Python2;ovsdb server idl positive python;
2095;ovsdb-idl.at:489;simple idl, conditional, modify as insert due to condition - Python3;ovsdb server idl positive python;
2096;ovsdb-idl.at:489;simple idl, conditional, modify as insert due to condition - Python2 - register_columns;ovsdb server idl positive python register_columns;
2097;ovsdb-idl.at:489;simple idl, conditional, modify as insert due to condition - Python3 - register_columns;ovsdb server idl positive python register_columns;
2098;ovsdb-idl.at:489;simple idl, conditional, modify as insert due to condition - Python2 - tcp;ovsdb server idl positive python with tcp socket;
2099;ovsdb-idl.at:489;simple idl, conditional, modify as insert due to condition - Python3 - tcp;ovsdb server idl positive python with tcp socket;
2100;ovsdb-idl.at:489;simple idl, conditional, modify as insert due to condition - Python2 - tcp6;ovsdb server idl positive python with tcp6 socket;
2101;ovsdb-idl.at:489;simple idl, conditional, modify as insert due to condition - Python3 - tcp6;ovsdb server idl positive python with tcp6 socket;
2102;ovsdb-idl.at:505;simple idl, conditional, modify as delete due to condition - C;ovsdb server idl positive;
2103;ovsdb-idl.at:505;simple idl, conditional, modify as delete due to condition - Python2;ovsdb server idl positive python;
2104;ovsdb-idl.at:505;simple idl, conditional, modify as delete due to condition - Python3;ovsdb server idl positive python;
2105;ovsdb-idl.at:505;simple idl, conditional, modify as delete due to condition - Python2 - register_columns;ovsdb server idl positive python register_columns;
2106;ovsdb-idl.at:505;simple idl, conditional, modify as delete due to condition - Python3 - register_columns;ovsdb server idl positive python register_columns;
2107;ovsdb-idl.at:505;simple idl, conditional, modify as delete due to condition - Python2 - tcp;ovsdb server idl positive python with tcp socket;
2108;ovsdb-idl.at:505;simple idl, conditional, modify as delete due to condition - Python3 - tcp;ovsdb server idl positive python with tcp socket;
2109;ovsdb-idl.at:505;simple idl, conditional, modify as delete due to condition - Python2 - tcp6;ovsdb server idl positive python with tcp6 socket;
2110;ovsdb-idl.at:505;simple idl, conditional, modify as delete due to condition - Python3 - tcp6;ovsdb server idl positive python with tcp6 socket;
2111;ovsdb-idl.at:532;simple idl, conditional, multiple tables - C;ovsdb server idl positive;
2112;ovsdb-idl.at:532;simple idl, conditional, multiple tables - Python2;ovsdb server idl positive python;
2113;ovsdb-idl.at:532;simple idl, conditional, multiple tables - Python3;ovsdb server idl positive python;
2114;ovsdb-idl.at:532;simple idl, conditional, multiple tables - Python2 - register_columns;ovsdb server idl positive python register_columns;
2115;ovsdb-idl.at:532;simple idl, conditional, multiple tables - Python3 - register_columns;ovsdb server idl positive python register_columns;
2116;ovsdb-idl.at:532;simple idl, conditional, multiple tables - Python2 - tcp;ovsdb server idl positive python with tcp socket;
2117;ovsdb-idl.at:532;simple idl, conditional, multiple tables - Python3 - tcp;ovsdb server idl positive python with tcp socket;
2118;ovsdb-idl.at:532;simple idl, conditional, multiple tables - Python2 - tcp6;ovsdb server idl positive python with tcp6 socket;
2119;ovsdb-idl.at:532;simple idl, conditional, multiple tables - Python3 - tcp6;ovsdb server idl positive python with tcp6 socket;
2120;ovsdb-idl.at:571;self-linking idl, consistent ops - C;ovsdb server idl positive;
2121;ovsdb-idl.at:571;self-linking idl, consistent ops - Python2;ovsdb server idl positive python;
2122;ovsdb-idl.at:571;self-linking idl, consistent ops - Python3;ovsdb server idl positive python;
2123;ovsdb-idl.at:571;self-linking idl, consistent ops - Python2 - register_columns;ovsdb server idl positive python register_columns;
2124;ovsdb-idl.at:571;self-linking idl, consistent ops - Python3 - register_columns;ovsdb server idl positive python register_columns;
2125;ovsdb-idl.at:571;self-linking idl, consistent ops - Python2 - tcp;ovsdb server idl positive python with tcp socket;
2126;ovsdb-idl.at:571;self-linking idl, consistent ops - Python3 - tcp;ovsdb server idl positive python with tcp socket;
2127;ovsdb-idl.at:571;self-linking idl, consistent ops - Python2 - tcp6;ovsdb server idl positive python with tcp6 socket;
2128;ovsdb-idl.at:571;self-linking idl, consistent ops - Python3 - tcp6;ovsdb server idl positive python with tcp6 socket;
2129;ovsdb-idl.at:615;self-linking idl, inconsistent ops - C;ovsdb server idl positive;
2130;ovsdb-idl.at:615;self-linking idl, inconsistent ops - Python2;ovsdb server idl positive python;
2131;ovsdb-idl.at:615;self-linking idl, inconsistent ops - Python3;ovsdb server idl positive python;
2132;ovsdb-idl.at:615;self-linking idl, inconsistent ops - Python2 - register_columns;ovsdb server idl positive python register_columns;
2133;ovsdb-idl.at:615;self-linking idl, inconsistent ops - Python3 - register_columns;ovsdb server idl positive python register_columns;
2134;ovsdb-idl.at:615;self-linking idl, inconsistent ops - Python2 - tcp;ovsdb server idl positive python with tcp socket;
2135;ovsdb-idl.at:615;self-linking idl, inconsistent ops - Python3 - tcp;ovsdb server idl positive python with tcp socket;
2136;ovsdb-idl.at:615;self-linking idl, inconsistent ops - Python2 - tcp6;ovsdb server idl positive python with tcp6 socket;
2137;ovsdb-idl.at:615;self-linking idl, inconsistent ops - Python3 - tcp6;ovsdb server idl positive python with tcp6 socket;
2138;ovsdb-idl.at:663;self-linking idl, sets - C;ovsdb server idl positive;
2139;ovsdb-idl.at:663;self-linking idl, sets - Python2;ovsdb server idl positive python;
2140;ovsdb-idl.at:663;self-linking idl, sets - Python3;ovsdb server idl positive python;
2141;ovsdb-idl.at:663;self-linking idl, sets - Python2 - register_columns;ovsdb server idl positive python register_columns;
2142;ovsdb-idl.at:663;self-linking idl, sets - Python3 - register_columns;ovsdb server idl positive python register_columns;
2143;ovsdb-idl.at:663;self-linking idl, sets - Python2 - tcp;ovsdb server idl positive python with tcp socket;
2144;ovsdb-idl.at:663;self-linking idl, sets - Python3 - tcp;ovsdb server idl positive python with tcp socket;
2145;ovsdb-idl.at:663;self-linking idl, sets - Python2 - tcp6;ovsdb server idl positive python with tcp6 socket;
2146;ovsdb-idl.at:663;self-linking idl, sets - Python3 - tcp6;ovsdb server idl positive python with tcp6 socket;
2147;ovsdb-idl.at:713;external-linking idl, consistent ops - C;ovsdb server idl positive;
2148;ovsdb-idl.at:713;external-linking idl, consistent ops - Python2;ovsdb server idl positive python;
2149;ovsdb-idl.at:713;external-linking idl, consistent ops - Python3;ovsdb server idl positive python;
2150;ovsdb-idl.at:713;external-linking idl, consistent ops - Python2 - register_columns;ovsdb server idl positive python register_columns;
2151;ovsdb-idl.at:713;external-linking idl, consistent ops - Python3 - register_columns;ovsdb server idl positive python register_columns;
2152;ovsdb-idl.at:713;external-linking idl, consistent ops - Python2 - tcp;ovsdb server idl positive python with tcp socket;
2153;ovsdb-idl.at:713;external-linking idl, consistent ops - Python3 - tcp;ovsdb server idl positive python with tcp socket;
2154;ovsdb-idl.at:713;external-linking idl, consistent ops - Python2 - tcp6;ovsdb server idl positive python with tcp6 socket;
2155;ovsdb-idl.at:713;external-linking idl, consistent ops - Python3 - tcp6;ovsdb server idl positive python with tcp6 socket;
2156;ovsdb-idl.at:731;external-linking idl, insert ops - Python2;ovsdb server idl positive python;
2157;ovsdb-idl.at:731;external-linking idl, insert ops - Python3;ovsdb server idl positive python;
2158;ovsdb-idl.at:741;getattr idl, insert ops - Python2;ovsdb server idl positive python;
2159;ovsdb-idl.at:741;getattr idl, insert ops - Python3;ovsdb server idl positive python;
2160;ovsdb-idl.at:750;row-from-json idl, whats this - Python2;ovsdb server idl positive python;
2161;ovsdb-idl.at:750;row-from-json idl, whats this - Python3;ovsdb server idl positive python;
2162;ovsdb-idl.at:767;idl handling of missing tables and columns - C;ovsdb server idl positive;
2163;ovsdb-idl.at:856;simple idl, initially populated - Python fetch;ovsdb server idl positive python increment fetch;
2164;ovsdb-idl.at:902;simple idl disable monitor-cond - Python;ovsdb server idl python monitor;
2165;ovsdb-idl.at:995;track, simple idl, initially populated - C;ovsdb server idl tracking positive;
2166;ovsdb-idl.at:1027;track, simple idl, initially empty, various ops - C;ovsdb server idl tracking positive;
2167;ovsdb-idl.at:1121;map, simple2 idl-partial-update-map-column, initially populated - C;ovsdb server idl partial update map column positive;
2168;ovsdb-idl.at:1139;partial-map idl - Python2;ovsdb server idl positive python;
2169;ovsdb-idl.at:1139;partial-map idl - Python3;ovsdb server idl positive python;
2170;ovsdb-idl.at:1170;set, simple3 idl-partial-update-set-column, initially populated - C;ovsdb server idl partial update set column positive;
2171;ovsdb-idl.at:1190;partial-set idl - Python2;ovsdb server idl positive python;
2172;ovsdb-idl.at:1190;partial-set idl - Python3;ovsdb server idl positive python;
2173;ovsdb-idl.at:1262;simple idl verify notify - Python;ovsdb server idl python notify;
2174;ovsdb-idl.at:1262;simple idl verify notify - SSL;ovsdb server idl python notify - ssl socket;
2175;ovsdb-idl.at:1385;Compound_index, single column test  - C;ovsdb server idl compound_index_single_column compound_index positive 001: s=list000 i=1 b=true r=101.000000 i=10 r=110.000000 i=2 b=false r=102.000000 s=list001 r=120.000000 r=122.000000 i=4 r=130.000000 s=list005 i=5 s=list020 i=19 r=219.000000 i=20 r=220.000000 003:;
2176;ovsdb-idl.at:1522;Compound_index, double column test  - C;ovsdb server idl compound_index_double_column compound_index positive 001: s=list000 i=1 b=true r=101.000000 i=10 r=110.000000 i=2 b=false r=102.000000 s=list001 r=120.000000 r=122.000000 i=4 r=130.000000 s=list005 i=5 s=list020 i=19 r=219.000000 i=20 r=220.000000 002: 003: 004:;
2177;ovsdb-idl.at:1646;set, simple3 idl-compound-index-with-ref, initially populated - C;ovsdb server idl compound_index compound_index_with_ref positive;
2178;ovsdb-lock.at:21;ovsdb lock -- lock;ovsdb lock positive;
2179;ovsdb-lock.at:37;ovsdb lock -- unlock;ovsdb lock positive;
2180;ovsdb-lock.at:57;ovsdb lock -- steal;ovsdb lock positive;
2181;ovsdb-rbac.at:3;ovsdb-server/rbac 2;ovsdb server rbac;
2182;ovsdb-cluster.at:45;insert default row, query table - cluster of 1;ovsdb server positive unix cluster cluster1;
2183;ovsdb-cluster.at:45;insert row, query table - cluster of 1;ovsdb server positive unix cluster cluster1;
2184;ovsdb-cluster.at:45;insert rows, query by value - cluster of 1;ovsdb server positive unix cluster cluster1;
2185;ovsdb-cluster.at:45;insert rows, query by named-uuid - cluster of 1;ovsdb server positive unix cluster cluster1;
2186;ovsdb-cluster.at:45;insert rows, update rows by value - cluster of 1;ovsdb server positive unix cluster cluster1;
2187;ovsdb-cluster.at:45;insert rows, mutate rows - cluster of 1;ovsdb server positive unix cluster cluster1;
2188;ovsdb-cluster.at:45;insert rows, delete by named-uuid - cluster of 1;ovsdb server positive unix cluster cluster1;
2189;ovsdb-cluster.at:45;insert rows, delete rows by value - cluster of 1;ovsdb server positive unix cluster cluster1;
2190;ovsdb-cluster.at:45;insert rows, delete by (non-matching) value - cluster of 1;ovsdb server positive unix cluster cluster1;
2191;ovsdb-cluster.at:45;insert rows, delete all - cluster of 1;ovsdb server positive unix cluster cluster1;
2192;ovsdb-cluster.at:45;insert row, query table, commit - cluster of 1;ovsdb server positive unix cluster cluster1;
2193;ovsdb-cluster.at:45;insert row, query table, commit durably - cluster of 1;ovsdb server positive unix cluster cluster1;
2194;ovsdb-cluster.at:45;equality wait with correct rows - cluster of 1;ovsdb server positive unix cluster cluster1;
2195;ovsdb-cluster.at:45;equality wait with extra row - cluster of 1;ovsdb server positive unix cluster cluster1;
2196;ovsdb-cluster.at:45;equality wait with missing row - cluster of 1;ovsdb server positive unix cluster cluster1;
2197;ovsdb-cluster.at:45;inequality wait with correct rows - cluster of 1;ovsdb server positive unix cluster cluster1;
2198;ovsdb-cluster.at:45;inequality wait with extra row - cluster of 1;ovsdb server positive unix cluster cluster1;
2199;ovsdb-cluster.at:45;inequality wait with missing row - cluster of 1;ovsdb server positive unix cluster cluster1;
2200;ovsdb-cluster.at:45;insert and update constraints - cluster of 1;ovsdb server positive unix cluster cluster1;
2201;ovsdb-cluster.at:45;index uniqueness checking - cluster of 1;ovsdb server positive unix cluster cluster1;
2202;ovsdb-cluster.at:45;referential integrity -- simple - cluster of 1;ovsdb server positive unix cluster cluster1;
2203;ovsdb-cluster.at:45;referential integrity -- mutual references - cluster of 1;ovsdb server positive unix cluster cluster1;
2204;ovsdb-cluster.at:45;weak references - cluster of 1;ovsdb server positive unix cluster cluster1;
2205;ovsdb-cluster.at:45;immutable columns - cluster of 1;ovsdb server positive unix cluster cluster1;
2206;ovsdb-cluster.at:45;garbage collection - cluster of 1;ovsdb server positive unix cluster cluster1;
2207;ovsdb-cluster.at:54;insert default row, query table - cluster of 3;ovsdb server positive unix cluster cluster3;
2208;ovsdb-cluster.at:54;insert row, query table - cluster of 3;ovsdb server positive unix cluster cluster3;
2209;ovsdb-cluster.at:54;insert rows, query by value - cluster of 3;ovsdb server positive unix cluster cluster3;
2210;ovsdb-cluster.at:54;insert rows, query by named-uuid - cluster of 3;ovsdb server positive unix cluster cluster3;
2211;ovsdb-cluster.at:54;insert rows, update rows by value - cluster of 3;ovsdb server positive unix cluster cluster3;
2212;ovsdb-cluster.at:54;insert rows, mutate rows - cluster of 3;ovsdb server positive unix cluster cluster3;
2213;ovsdb-cluster.at:54;insert rows, delete by named-uuid - cluster of 3;ovsdb server positive unix cluster cluster3;
2214;ovsdb-cluster.at:54;insert rows, delete rows by value - cluster of 3;ovsdb server positive unix cluster cluster3;
2215;ovsdb-cluster.at:54;insert rows, delete by (non-matching) value - cluster of 3;ovsdb server positive unix cluster cluster3;
2216;ovsdb-cluster.at:54;insert rows, delete all - cluster of 3;ovsdb server positive unix cluster cluster3;
2217;ovsdb-cluster.at:54;insert row, query table, commit - cluster of 3;ovsdb server positive unix cluster cluster3;
2218;ovsdb-cluster.at:54;insert row, query table, commit durably - cluster of 3;ovsdb server positive unix cluster cluster3;
2219;ovsdb-cluster.at:54;equality wait with correct rows - cluster of 3;ovsdb server positive unix cluster cluster3;
2220;ovsdb-cluster.at:54;equality wait with extra row - cluster of 3;ovsdb server positive unix cluster cluster3;
2221;ovsdb-cluster.at:54;equality wait with missing row - cluster of 3;ovsdb server positive unix cluster cluster3;
2222;ovsdb-cluster.at:54;inequality wait with correct rows - cluster of 3;ovsdb server positive unix cluster cluster3;
2223;ovsdb-cluster.at:54;inequality wait with extra row - cluster of 3;ovsdb server positive unix cluster cluster3;
2224;ovsdb-cluster.at:54;inequality wait with missing row - cluster of 3;ovsdb server positive unix cluster cluster3;
2225;ovsdb-cluster.at:54;insert and update constraints - cluster of 3;ovsdb server positive unix cluster cluster3;
2226;ovsdb-cluster.at:54;index uniqueness checking - cluster of 3;ovsdb server positive unix cluster cluster3;
2227;ovsdb-cluster.at:54;referential integrity -- simple - cluster of 3;ovsdb server positive unix cluster cluster3;
2228;ovsdb-cluster.at:54;referential integrity -- mutual references - cluster of 3;ovsdb server positive unix cluster cluster3;
2229;ovsdb-cluster.at:54;weak references - cluster of 3;ovsdb server positive unix cluster cluster3;
2230;ovsdb-cluster.at:54;immutable columns - cluster of 3;ovsdb server positive unix cluster cluster3;
2231;ovsdb-cluster.at:54;garbage collection - cluster of 3;ovsdb server positive unix cluster cluster3;
2232;ovsdb-cluster.at:63;insert default row, query table - cluster of 5;ovsdb server positive unix cluster cluster5;
2233;ovsdb-cluster.at:63;insert row, query table - cluster of 5;ovsdb server positive unix cluster cluster5;
2234;ovsdb-cluster.at:63;insert rows, query by value - cluster of 5;ovsdb server positive unix cluster cluster5;
2235;ovsdb-cluster.at:63;insert rows, query by named-uuid - cluster of 5;ovsdb server positive unix cluster cluster5;
2236;ovsdb-cluster.at:63;insert rows, update rows by value - cluster of 5;ovsdb server positive unix cluster cluster5;
2237;ovsdb-cluster.at:63;insert rows, mutate rows - cluster of 5;ovsdb server positive unix cluster cluster5;
2238;ovsdb-cluster.at:63;insert rows, delete by named-uuid - cluster of 5;ovsdb server positive unix cluster cluster5;
2239;ovsdb-cluster.at:63;insert rows, delete rows by value - cluster of 5;ovsdb server positive unix cluster cluster5;
2240;ovsdb-cluster.at:63;insert rows, delete by (non-matching) value - cluster of 5;ovsdb server positive unix cluster cluster5;
2241;ovsdb-cluster.at:63;insert rows, delete all - cluster of 5;ovsdb server positive unix cluster cluster5;
2242;ovsdb-cluster.at:63;insert row, query table, commit - cluster of 5;ovsdb server positive unix cluster cluster5;
2243;ovsdb-cluster.at:63;insert row, query table, commit durably - cluster of 5;ovsdb server positive unix cluster cluster5;
2244;ovsdb-cluster.at:63;equality wait with correct rows - cluster of 5;ovsdb server positive unix cluster cluster5;
2245;ovsdb-cluster.at:63;equality wait with extra row - cluster of 5;ovsdb server positive unix cluster cluster5;
2246;ovsdb-cluster.at:63;equality wait with missing row - cluster of 5;ovsdb server positive unix cluster cluster5;
2247;ovsdb-cluster.at:63;inequality wait with correct rows - cluster of 5;ovsdb server positive unix cluster cluster5;
2248;ovsdb-cluster.at:63;inequality wait with extra row - cluster of 5;ovsdb server positive unix cluster cluster5;
2249;ovsdb-cluster.at:63;inequality wait with missing row - cluster of 5;ovsdb server positive unix cluster cluster5;
2250;ovsdb-cluster.at:63;insert and update constraints - cluster of 5;ovsdb server positive unix cluster cluster5;
2251;ovsdb-cluster.at:63;index uniqueness checking - cluster of 5;ovsdb server positive unix cluster cluster5;
2252;ovsdb-cluster.at:63;referential integrity -- simple - cluster of 5;ovsdb server positive unix cluster cluster5;
2253;ovsdb-cluster.at:63;referential integrity -- mutual references - cluster of 5;ovsdb server positive unix cluster cluster5;
2254;ovsdb-cluster.at:63;weak references - cluster of 5;ovsdb server positive unix cluster cluster5;
2255;ovsdb-cluster.at:63;immutable columns - cluster of 5;ovsdb server positive unix cluster cluster5;
2256;ovsdb-cluster.at:63;garbage collection - cluster of 5;ovsdb server positive unix cluster cluster5;
2257;ovsdb-cluster.at:217;OVSDB 3-server torture test - kill/restart leader;ovsdb server positive unix cluster cluster3;
2258;ovsdb-cluster.at:221;OVSDB 3-server torture test - kill/restart follower 1;ovsdb server positive unix cluster cluster3;
2259;ovsdb-cluster.at:225;OVSDB 3-server torture test - kill/restart follower 2;ovsdb server positive unix cluster cluster3;
2260;ovsdb-cluster.at:229;OVSDB 5-server torture test - kill/restart leader;ovsdb server positive unix cluster cluster5;
2261;ovsdb-cluster.at:233;OVSDB 5-server torture test - kill/restart follower 1;ovsdb server positive unix cluster cluster5;
2262;ovsdb-cluster.at:237;OVSDB 5-server torture test - kill/restart follower 2;ovsdb server positive unix cluster cluster5;
2263;ovsdb-cluster.at:241;OVSDB 5-server torture test - kill/restart follower 3;ovsdb server positive unix cluster cluster5;
2264;ovsdb-cluster.at:245;OVSDB 5-server torture test - kill/restart follower 4;ovsdb server positive unix cluster cluster5;
2265;ovsdb-cluster.at:250;OVSDB 3-server torture test - remove/re-add leader;ovsdb server positive unix cluster cluster3;
2266;ovsdb-cluster.at:254;OVSDB 3-server torture test - remove/re-add follower 1;ovsdb server positive unix cluster cluster3;
2267;ovsdb-cluster.at:258;OVSDB 3-server torture test - remove/re-add follower 2;ovsdb server positive unix cluster cluster3;
2268;ovsdb-cluster.at:262;OVSDB 5-server torture test - remove/re-add leader;ovsdb server positive unix cluster cluster5;
2269;ovsdb-cluster.at:266;OVSDB 5-server torture test - remove/re-add follower 1;ovsdb server positive unix cluster cluster5;
2270;ovsdb-cluster.at:270;OVSDB 5-server torture test - remove/re-add follower 2;ovsdb server positive unix cluster cluster5;
2271;ovsdb-cluster.at:274;OVSDB 5-server torture test - remove/re-add follower 3;ovsdb server positive unix cluster cluster5;
2272;ovsdb-cluster.at:278;OVSDB 5-server torture test - remove/re-add follower 4;ovsdb server positive unix cluster cluster5;
2273;ovs-vsctl.at:146;ovs-vsctl connection retry;;
2274;ovs-vsctl.at:190;add-br a;ovs-vsctl;
2275;ovs-vsctl.at:200;add-br a, add-br a;ovs-vsctl;
2276;ovs-vsctl.at:213;add-br a, add-br b;ovs-vsctl;
2277;ovs-vsctl.at:230;add-br a, add-br b, del-br a;ovs-vsctl;
2278;ovs-vsctl.at:241;add-br a, del-br a, add-br a;ovs-vsctl;
2279;ovs-vsctl.at:261;add-br a, add-port a a1, add-port a a2;ovs-vsctl;
2280;ovs-vsctl.at:275;add-br a, add-port a a1, add-port a a1;ovs-vsctl;
2281;ovs-vsctl.at:290;add-br a b, add-port a a1, add-port b b1, del-br a;ovs-vsctl;
2282;ovs-vsctl.at:312;add-br a, add-bond a bond0 a1 a2 a3;ovs-vsctl;
2283;ovs-vsctl.at:336;add-br a b, add-port a a1, add-port b b1, del-port a a1;ovs-vsctl;
2284;ovs-vsctl.at:367;add-br a, add-bond a bond0 a1 a2 a3, del-port bond0;ovs-vsctl;
2285;ovs-vsctl.at:384;external IDs;ovs-vsctl;
2286;ovs-vsctl.at:440;controllers;controller ovs-vsctl;
2287;ovs-vsctl.at:587;simple fake bridge (VLAN 9);ovs-vsctl fake-bridge;
2288;ovs-vsctl.at:587;list bridges -- real and fake (VLAN 9);ovs-vsctl fake-bridge;
2289;ovs-vsctl.at:587;simple fake bridge + del-br fake bridge (VLAN 9);ovs-vsctl fake-bridge;
2290;ovs-vsctl.at:587;simple fake bridge + del-br real bridge (VLAN 9);ovs-vsctl fake-bridge;
2291;ovs-vsctl.at:587;simple fake bridge + external IDs (VLAN 9);ovs-vsctl fake-bridge;
2292;ovs-vsctl.at:587;simple fake bridge + del-port from parent (VLAN 9);ovs-vsctl fake-bridge del-port;
2293;ovs-vsctl.at:588;simple fake bridge (VLAN 0);ovs-vsctl fake-bridge;
2294;ovs-vsctl.at:588;list bridges -- real and fake (VLAN 0);ovs-vsctl fake-bridge;
2295;ovs-vsctl.at:588;simple fake bridge + del-br fake bridge (VLAN 0);ovs-vsctl fake-bridge;
2296;ovs-vsctl.at:588;simple fake bridge + del-br real bridge (VLAN 0);ovs-vsctl fake-bridge;
2297;ovs-vsctl.at:588;simple fake bridge + external IDs (VLAN 0);ovs-vsctl fake-bridge;
2298;ovs-vsctl.at:588;simple fake bridge + del-port from parent (VLAN 0);ovs-vsctl fake-bridge del-port;
2299;ovs-vsctl.at:600;fake bridge on bond;ovs-vsctl fake-bridge;
2300;ovs-vsctl.at:612;fake bridge on bond + del-br fake bridge;ovs-vsctl fake-bridge;
2301;ovs-vsctl.at:624;fake bridge on bond + del-br real bridge;ovs-vsctl fake-bridge;
2302;ovs-vsctl.at:636;managers;manager ovs-vsctl;
2303;ovs-vsctl.at:662;database commands -- positive checks;ovs-vsctl;
2304;ovs-vsctl.at:775;database commands -- negative checks;ovs-vsctl;
2305;ovs-vsctl.at:903;database commands -- conditions;ovs-vsctl;
2306;ovs-vsctl.at:1037;database commands -- wait-until immediately true;ovs-vsctl;
2307;ovs-vsctl.at:1056;database commands -- wait-until must wait;ovs-vsctl;
2308;ovs-vsctl.at:1090;--id option on create, get commands;ovs-vsctl;
2309;ovs-vsctl.at:1139;unreferenced record warnings;ovs-vsctl;
2310;ovs-vsctl.at:1173;created row UUID is wrong in same execution;ovs-vsctl;
2311;ovs-vsctl.at:1210;--all option on destroy command;ovs-vsctl;
2312;ovs-vsctl.at:1259;add-port -- reserved names 1;;
2313;ovs-vsctl.at:1291;add-port -- reserved names 2;;
2314;ovs-vsctl.at:1329;naming in db commands;ovs-vsctl;
2315;ovs-vsctl.at:1348;bootstrap ca cert;ovs-vsctl ssl;
2316;ovs-vsctl.at:1375;peer ca cert;ovs-vsctl ssl;
2317;ovs-xapi-sync.at:3;ovs-xapi-sync;;
2318;interface-reconfigure.at:696;non-VLAN, non-bond;interface-reconfigure;
2319;interface-reconfigure.at:773;VLAN, non-bond;interface-reconfigure;
2320;interface-reconfigure.at:848;Bond, non-VLAN;interface-reconfigure;
2321;interface-reconfigure.at:938;VLAN on bond;interface-reconfigure;
2322;interface-reconfigure.at:1039;Re-create port with different types;interface-reconfigure;
2323;stp.at:3;STP example from IEEE 802.1D-1998;stp;
2324;stp.at:27;STP example from IEEE 802.1D-2004 figures 17.4 and 17.5;stp;
2325;stp.at:70;STP example from IEEE 802.1D-2004 figure 17.6;stp;
2326;stp.at:96;STP example from IEEE 802.1D-2004 figure 17.7;stp;
2327;stp.at:125;STP.io.1.1: Link Failure;stp;
2328;stp.at:164;STP.io.1.2: Repeated Network;stp;
2329;stp.at:188;STP.io.1.4: Network Initialization;stp;
2330;stp.at:214;STP.io.1.5: Topology Change;stp;
2331;stp.at:267;STP.op.1.1 and STP.op.1.2;stp;
2332;stp.at:281;STP.op.1.4: All Ports Initialized to Designated Ports;stp;
2333;stp.at:302;STP.op.3.1: Root Bridge Selection: Root ID Values;stp;
2334;stp.at:322;STP.op.3.3: Root Bridge Selection: Bridge ID Values;stp;
2335;stp.at:345;STP.op.3.3: Root Bridge Selection: Bridge ID Values;stp;
2336;stp.at:390;STP - dummy interface;;
2337;stp.at:467;STP - flush the fdb and mdb when topology changed;;
2338;stp.at:594;STP - check link-state when stp is running;;
2339;rstp.at:3;RSTP Single bridge;rstp;
2340;rstp.at:13;RSTP Link failure;rstp;
2341;rstp.at:32;RSTP Double link Failure;rstp;
2342;rstp.at:74;RSTP example from IEEE 802.1D-2004 figures 17.4 and 17.5;rstp;
2343;rstp.at:111;RSTP example from IEEE 802.1D-2004 figure 17.6;rstp;
2344;rstp.at:131;RSTP example from IEEE 802.1D-2004 figure 17.7;rstp;
2345;rstp.at:156;RSTP - dummy interface;;
2346;vlog.at:105;vlog - Python2;;
2347;vlog.at:106;vlog - Python3;;
2348;vlog.at:115;vlog - vlog/reopen - C;;
2349;vlog.at:178;vlog - vlog/reopen - Python2;;
2350;vlog.at:179;vlog - vlog/reopen - Python3;;
2351;vlog.at:181;vlog - vlog/reopen without log file - C;;
2352;vlog.at:205;vlog - vlog/reopen without log file - Python2;;
2353;vlog.at:206;vlog - vlog/reopen without log file - Python3;;
2354;vlog.at:210;vlog - vlog/reopen can't reopen log file - C;;
2355;vlog.at:275;vlog - vlog/reopen can't reopen log file - Python2;;
2356;vlog.at:276;vlog - vlog/reopen can't reopen log file - Python3;;
2357;vlog.at:278;vlog - vlog/close - C;;
2358;vlog.at:354;vlog - vlog/close - Python2;;
2359;vlog.at:355;vlog - vlog/close - Python3;;
2360;vlog.at:357;vlog - vlog/set and vlog/list - C;;
2361;vlog.at:455;vlog - vlog/set and vlog/list - Python2;;
2362;vlog.at:456;vlog - vlog/set and vlog/list - Python3;;
2363;vlog.at:458;vlog - RFC5424 facility;;
2364;vlog.at:514;vlog - RFC5424 facility - Python2;;
2365;vlog.at:515;vlog - RFC5424 facility - Python3;;
2366;vtep-ctl.at:135;add-ps a;vtep-ctl;
2367;vtep-ctl.at:143;add-ps a, add-ps a;vtep-ctl;
2368;vtep-ctl.at:153;add-ps a, add-ps b;vtep-ctl;
2369;vtep-ctl.at:162;add-ps a, add-ps b, del-ps a;vtep-ctl;
2370;vtep-ctl.at:171;add-ps a, del-ps a, add-ps a;vtep-ctl;
2371;vtep-ctl.at:185;add-ps a, add-port a a1, add-port a a2;vtep-ctl;
2372;vtep-ctl.at:198;add-ps a, add-port a a1, add-port a a1;vtep-ctl;
2373;vtep-ctl.at:210;add-ps a b, add-port a a1, add-port b b1, del-ps a;vtep-ctl;
2374;vtep-ctl.at:231;add-ps a b, add-port a a1, add-port b b1, del-port a a1;vtep-ctl;
2375;vtep-ctl.at:248;add-ps a b, add-port a p1, add-port b p1, del-port a p1;vtep-ctl;
2376;vtep-ctl.at:271;add-ls a;vtep-ctl;
2377;vtep-ctl.at:279;add-ls a, add-ls a;vtep-ctl;
2378;vtep-ctl.at:289;add-ls a, add-ls b;vtep-ctl;
2379;vtep-ctl.at:298;add-ls a, add-ls b, del-ls a;vtep-ctl;
2380;vtep-ctl.at:307;add-ls a, del-ls a, add-ls a;vtep-ctl;
2381;vtep-ctl.at:321;add-ls a, get-replication-mode a;vtep-ctl;
2382;vtep-ctl.at:332;add-ls a, set-replication-mode a source_node;vtep-ctl;
2383;vtep-ctl.at:343;add-ls a, set-replication-mode a service_node;vtep-ctl;
2384;vtep-ctl.at:357;bind-ls ps1 pp1 300 ls1;vtep-ctl;
2385;vtep-ctl.at:375;bind-ls ps1 pp1 300 ls1, bind-ls ps1 pp1 400 ls2;vtep-ctl;
2386;vtep-ctl.at:397;bind-ls ps1 pp1 300, bind-ls ps2 pp2 300 ls2;vtep-ctl;
2387;vtep-ctl.at:428;add-ucast-local ls1;vtep-ctl;
2388;vtep-ctl.at:455;add-ucast-local ls1, overwrite;vtep-ctl;
2389;vtep-ctl.at:475;add-ucast-local ls1, del-ucast-local ls1;vtep-ctl;
2390;vtep-ctl.at:506;add-ucast-remote ls1;vtep-ctl;
2391;vtep-ctl.at:533;add-ucast-remote ls1, overwrite;vtep-ctl;
2392;vtep-ctl.at:553;add-ucast-remote ls1, del-ucast-remote ls1;vtep-ctl;
2393;vtep-ctl.at:584;add-ucast-local ls1, add-ucast-remote ls1;vtep-ctl;
2394;vtep-ctl.at:615;add-mcast-local ls1;vtep-ctl;
2395;vtep-ctl.at:644;add-mcast-local ls1, del-mcast-local ls1;vtep-ctl;
2396;vtep-ctl.at:681;add-mcast-remote ls1;vtep-ctl;
2397;vtep-ctl.at:710;add-mcast-remote ls1, del-mcast-remote ls1;vtep-ctl;
2398;vtep-ctl.at:747;add-mcast-local ls1, add-mcast-remote ls1;vtep-ctl;
2399;vtep-ctl.at:782;add local and remote macs, clear-local-macs;vtep-ctl;
2400;vtep-ctl.at:839;add local and remote macs, clear-remote-macs;vtep-ctl;
2401;vtep-ctl.at:899;managers;manager vtep-ctl;
2402;vtep-ctl.at:922;show command;vtep-ctl show;
2403;auto-attach.at:3;auto-attach - packets;auto-attach;
2404;ovn.at:36;ovn -- lexer;;
2405;ovn.at:140;ovn -- registers;;
2406;ovn.at:163;ovn -- conntrack fields;;
2407;ovn.at:180;ovn -- compsition;;
2408;ovn.at:184;ovn -- expression parser;;
2409;ovn.at:361;ovn -- expression annotation;;
2410;ovn.at:398;ovn -- 1-term expression conversion;;
2411;ovn.at:404;ovn -- 2-term expression conversion;;
2412;ovn.at:410;ovn -- 3-term expression conversion;;
2413;ovn.at:416;ovn -- 3-term numeric expression simplification;;
2414;ovn.at:422;ovn -- 4-term string expression simplification;;
2415;ovn.at:428;ovn -- 3-term mixed expression simplification;;
2416;ovn.at:434;ovn -- simplification special cases;;
2417;ovn.at:456;ovn -- is_chassis_resident simplification;;
2418;ovn.at:470;ovn -- 4-term numeric expression normalization;;
2419;ovn.at:476;ovn -- 4-term string expression normalization;;
2420;ovn.at:482;ovn -- 4-term mixed expression normalization;;
2421;ovn.at:488;ovn -- 5-term numeric expression normalization;;
2422;ovn.at:494;ovn -- 5-term string expression normalization;;
2423;ovn.at:500;ovn -- 5-term mixed expression normalization;;
2424;ovn.at:506;ovn -- 4-term numeric expressions to flows;expression;
2425;ovn.at:513;ovn -- 4-term string expressions to flows;expression;
2426;ovn.at:520;ovn -- 4-term mixed expressions to flows;expression;
2427;ovn.at:527;ovn -- 3-term numeric expressions to flows;expression;
2428;ovn.at:534;ovn -- converting expressions to flows -- string fields;expression;
2429;ovn.at:571;ovn -- converting expressions to flows -- address sets;expression;
2430;ovn.at:660;ovn -- action parsing;;
2431;ovn.at:1161;ovn -- 3 HVs, 1 LS, 3 lports/HV;ovnarp;
2432;ovn.at:1439;ovn -- trace 1 LS, 3 LSPs;;
2433;ovn.at:1662;ovn -- 2 HVs, 4 lports/HV, localnet ports;;
2434;ovn.at:1855;ovn -- vtep: 3 HVs, 1 VIFs/HV, 1 GW, 1 LS;vtep;
2435;ovn.at:2058;ovn -- 3 HVs, 1 VIFs/HV, 1 software GW, 1 LS;;
2436;ovn.at:2207;ovn -- 3 HVs, 3 LS, 3 lports/LS, 1 LR;;
2437;ovn.at:2620;ovn -- portsecurity : 3 HVs, 1 LS, 3 lports/HV;;
2438;ovn.at:2997;ovn -- 2 HVs, 2 LS, 1 lport/LS, 2 peer LRs;;
2439;ovn.at:3143;ovn -- 1 HV, 1 LS, 2 lport/LS, 1 LR;router-admin-state;
2440;ovn.at:3272;ovn -- 1 HV, 2 LSs, 1 lport/LS, 1 LR;router-admin-state;
2441;ovn.at:3388;ovn -- 2 HVs, 3 LS, 1 lport/LS, 2 peer LRs, static routes;;
2442;ovn.at:3541;ovn -- send gratuitous arp on localnet;;
2443;ovn.at:3595;ovn -- 2 HVs, 3 LRs connected via LS, static routes;;
2444;ovn.at:3772;ovn -- dhcpv4 : 1 HV, 2 LS, 2 LSPs/LS;;
2445;ovn.at:4110;ovn -- dhcpv6 : 1 HV, 2 LS, 5 LSPs;;
2446;ovn.at:4373;ovn -- 2 HVs, 2 LRs connected via LS, gateway router;;
2447;ovn.at:4549;ovn -- icmp_reply: 1 HVs, 2 LSs, 1 lport/LS, 1 LR;router-icmp-reply;
2448;ovn.at:4698;ovn -- port state up and down;;
2449;ovn.at:4723;ovn -- datapath rules added/removed;cleanup;
2450;ovn.at:4787;ovn -- nd_na ;;
2451;ovn.at:4859;ovn -- address sets modification/removal smoke test;;
2452;ovn.at:4886;ovn -- ipam;;
2453;ovn.at:5169;ovn -- ipam connectivity;;
2454;ovn.at:5297;ovn -- ovs-vswitchd restart;vswitchd;
2455;ovn.at:5392;ovn -- send arp for nexthop;;
2456;ovn.at:5502;ovn -- send gratuitous arp for nat ips in localnet;;
2457;ovn.at:5550;ovn -- send gratuitous arp with nat-addresses router in localnet;;
2458;ovn.at:5610;ovn -- delete mac bindings;;
2459;ovn.at:5641;ovn -- conntrack zone allocation;;
2460;ovn.at:5695;ovn -- tag allocation;;
2461;ovn.at:5810;ovn -- lsp deletion and broadcast-flow deletion on localnet;;
2462;ovn.at:5880;ovn -- ACL logging;ovn;
2463;ovn.at:5986;ovn -- DSCP marking and meter check;ovn;
2464;ovn.at:6096;ovn -- read-only sb db:ptcp access;;
2465;ovn.at:6132;ovn -- read-only sb db:pssl access;;
2466;ovn.at:6189;ovn -- nb connection/ssl commands;;
2467;ovn.at:6241;ovn -- sb connection/ssl commands;;
2468;ovn.at:6293;ovn -- nested containers;;
2469;ovn.at:6487;ovn -- 3 HVs, 3 LRs connected via LS, source IP based routes;;
2470;ovn.at:6706;ovn -- dns lookup : 1 HV, 2 LS, 2 LSPs/LS;;
2471;ovn.at:7135;ovn -- 4 HV, 1 LS, 1 LR, packet test with HA distributed router gateway port;;
2472;ovn.at:7318;ovn -- 4 HV, 3 LS, 2 LR, packet test with HA distributed router gateway port;;
2473;ovn.at:7519;ovn -- 1 LR with distributed router gateway port;;
2474;ovn.at:7866;ovn -- send gratuitous arp for NAT rules on distributed router;;
2475;ovn.at:7995;ovn -- IPv6 ND Router Solicitation responder;ovn-nd_ra;
2476;ovn.at:8244;ovn -- /32 router IP address;;
2477;ovn.at:8344;ovn -- 2 HVs, 1 lport/HV, localport ports;;
2478;ovn.at:8466;ovn -- 1 LR with HA distributed router gateway port;;
2479;ovn.at:8733;ovn -- send gratuitous ARP for NAT rules on HA distributed router;;
2480;ovn.at:8889;ovn -- ensure one gw controller restart in HA doesn't bounce the master;;
2481;ovn.at:8974;ovn -- IPv6 Neighbor Solicitation for unknown MAC;ovn-nd_ns for unknown mac;
2482;ovn.at:9080;ovn -- options:requested-chassis for logical port;;
2483;ovn.at:9157;ovn -- options:requested-chassis with hostname;;
2484;ovn.at:9194;ovn -- IPv6 periodic RA;;
2485;ovn-northd.at:2;ovn -- check Gateway_Chassis propagation from NBDB to SBDB;;
2486;ovn-northd.at:59;ovn -- check Gateway_Chassis propagation from NBDB to SBDB backwards compatibility;;
2487;ovn-northd.at:87;ovn -- check up state of VIF LSP;;
2488;ovn-northd.at:101;ovn -- check up state of router LSP linked to a distributed LR;;
2489;ovn-northd.at:117;ovn -- check up state of router LSP linked to a gateway LR;;
2490;ovn-northd.at:137;ovn -- check up state of router LSP linked to an LRP with set Gateway Chassis;;
2491;ovn-northd.at:156;ovn -- check IPv6 RA config propagation to SBDB;;
2492;ovn-nbctl.at:25;ovn-nbctl - basic switch commands;ovn;
2493;ovn-nbctl.at:83;ovn-nbctl - basic logical switch port commands;ovn;
2494;ovn-nbctl.at:135;ovn-nbctl - lport addresses;ovn;
2495;ovn-nbctl.at:158;ovn-nbctl - port security;ovn;
2496;ovn-nbctl.at:181;ovn-nbctl - ACLs;ovn;
2497;ovn-nbctl.at:233;ovn-nbctl - NATs;ovn;
2498;ovn-nbctl.at:385;ovn-nbctl - LBs;ovn;
2499;ovn-nbctl.at:610;ovn-nbctl - LBs IPv6;ovn;
2500;ovn-nbctl.at:873;ovn-nbctl - basic logical router commands;ovn;
2501;ovn-nbctl.at:931;ovn-nbctl - basic logical router port commands;ovn;
2502;ovn-nbctl.at:1006;ovn-nbctl - logical router port gateway chassis;ovn;
2503;ovn-nbctl.at:1061;ovn-nbctl - logical router port enable and disable;ovn;
2504;ovn-nbctl.at:1086;ovn-nbctl - routes;ovn;
2505;ovn-nbctl.at:1204;ovn-nbctl - lsp types;ovn;
2506;ovn-sbctl.at:37;ovn-sbctl - chassis commands;ovn;
2507;ovn-sbctl.at:71;ovn-sbctl;ovn;
2508;ovn-controller.at:3;ovn-controller - ovn-bridge-mappings;ovn;
2509;ovn-controller.at:125;ovn-controller - Chassis external_ids;ovn;
2510;ovn-controller.at:188;ovn-controller - change Encap properties;ovn;
2511;ovn-controller-vtep.at:106;ovn-controller-vtep - chassis;ovn;
2512;ovn-controller-vtep.at:174;ovn-controller-vtep - binding 1;ovn;
2513;ovn-controller-vtep.at:239;ovn-controller-vtep - binding 2;ovn;
2514;ovn-controller-vtep.at:278;ovn-controller-vtep - vtep-lswitch;ovn;
2515;ovn-controller-vtep.at:330;ovn-controller-vtep - vtep-macs 1;ovn;
2516;ovn-controller-vtep.at:402;ovn-controller-vtep - vtep-macs 2;ovn;
2517;mcast-snooping.at:3;mcast - check multicasts to trunk ports are not duplicated;;
2518;mcast-snooping.at:108;mcast - delete the port mdb when vlan configuration changed;;
2519;mcast-snooping.at:165;mcast - delete the port mdb when port destroyed;;
2520;packet-type-aware.at:3;ptap - legal flow entries in ptap bridge;;
2521;packet-type-aware.at:34;ptap - triangle bridge setup with L2 and L3 GRE tunnels;;
2522;packet-type-aware.at:515;ptap - check decap() prerequisits;;
2523;packet-type-aware.at:544;ptap - check encap/decap VLAN tagged Ethernet frame;;
2524;packet-type-aware.at:619;ptap - L3 over patch port;;
2525;packet-type-aware.at:920;ptap - recirculate after packet_type change;;
2526;nsh.at:7;nsh - matching;;
2527;nsh.at:53;nsh - md1 encap over a veth link;;
2528;nsh.at:187;nsh - md2 encap over a veth link;;
2529;nsh.at:282;nsh - double encap over veth link using groups;;
2530;nsh.at:459;nsh - triangle PTAP bridge setup with NSH over vxlan-gpe;;
"
# List of the all the test groups.
at_groups_all=`$as_echo "$at_help_all" | sed 's/;.*//'`

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  $ $0 AUTOTEST_PATH=bin

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

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

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

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

Report bugs to <bugs@openvswitch.org>.
_ATEOF
  exit $at_write_fail
fi

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

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

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

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

Copyright (c) 2009, 2010, 2011, 2012, 2013, 2014, 2015 Nicira, Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at:

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
_ATEOF
  exit $at_write_fail
fi

# Should we print banners?  Yes if more than one test is run.
case $at_groups in #(
  *$as_nl* )
      at_print_banners=: ;; #(
  * ) at_print_banners=false ;;
esac
# Text for banner N, set to a single space once printed.
# Banner 1. completion.at:1
# Category starts at test group 1.
at_banner_text_1="appctl bashcomp unit tests"
# Banner 2. completion.at:335
# Category starts at test group 7.
at_banner_text_2="vsctl bashcomp unit tests"
# Banner 3. bfd.at:1
# Category starts at test group 10.
at_banner_text_3="bfd"
# Banner 4. cfm.at:1
# Category starts at test group 26.
at_banner_text_4="cfm"
# Banner 5. lacp.at:1
# Category starts at test group 36.
at_banner_text_5="lacp"
# Banner 6. library.at:1
# Category starts at test group 42.
at_banner_text_6="library unit tests"
# Banner 7. heap.at:1
# Category starts at test group 82.
at_banner_text_7="heap library"
# Banner 8. bundle.at:1
# Category starts at test group 88.
at_banner_text_8="bundle link selection"
# Banner 9. classifier.at:1
# Category starts at test group 100.
at_banner_text_9="flow classifier unit tests"
# Banner 10. classifier.at:20
# Category starts at test group 112.
at_banner_text_10="miniflow unit tests"
# Banner 11. classifier.at:30
# Category starts at test group 115.
at_banner_text_11="flow classifier lookup segmentation"
# Banner 12. classifier.at:68
# Category starts at test group 116.
at_banner_text_12="flow classifier prefix lookup"
# Banner 13. classifier.at:132
# Category starts at test group 117.
at_banner_text_13="conjunctive match"
# Banner 14. check-structs.at:1
# Category starts at test group 121.
at_banner_text_14="struct alignment checker unit tests"
# Banner 15. daemon.at:1
# Category starts at test group 125.
at_banner_text_15="daemon unit tests - C"
# Banner 16. daemon-py.at:1
# Category starts at test group 132.
at_banner_text_16="daemon unit tests - Python"
# Banner 17. ofp-actions.at:1
# Category starts at test group 150.
at_banner_text_17="OpenFlow actions"
# Banner 18. ofp-print.at:1
# Category starts at test group 162.
at_banner_text_18="ofp-print"
# Banner 19. ofp-util.at:1
# Category starts at test group 379.
at_banner_text_19="OpenFlow utilities"
# Banner 20. ofp-errors.at:1
# Category starts at test group 381.
at_banner_text_20="ofp-errors tests"
# Banner 21. ovs-ofctl.at:1
# Category starts at test group 395.
at_banner_text_21="ovs-ofctl"
# Banner 22. odp.at:1
# Category starts at test group 433.
at_banner_text_22="datapath parsing and formatting"
# Banner 23. mpls-xlate.at:1
# Category starts at test group 438.
at_banner_text_23="mpls-xlate"
# Banner 24. multipath.at:1
# Category starts at test group 441.
at_banner_text_24="multipath link selection"
# Banner 25. learn.at:1
# Category starts at test group 450.
at_banner_text_25="learning action"
# Banner 26. vconn.at:20
# Category starts at test group 469.
at_banner_text_26="vconn library -- unix class"
# Banner 27. vconn.at:21
# Category starts at test group 477.
at_banner_text_27="vconn library -- tcp class"
# Banner 28. vconn.at:22
# Category starts at test group 485.
at_banner_text_28="vconn library -- ssl class"
# Banner 29. file_name.at:1
# Category starts at test group 493.
at_banner_text_29="test dir_name and base_name functions"
# Banner 30. file_name.at:29
# Category starts at test group 506.
at_banner_text_30="test follow_symlinks function"
# Banner 31. aes128.at:1
# Category starts at test group 514.
at_banner_text_31="AES-128 unit tests"
# Banner 32. unixctl-py.at:1
# Category starts at test group 537.
at_banner_text_32="unixctl"
# Banner 33. uuid.at:1
# Category starts at test group 549.
at_banner_text_33="UUID unit tests"
# Banner 34. json.at:81
# Category starts at test group 550.
at_banner_text_34="JSON -- arrays"
# Banner 35. json.at:96
# Category starts at test group 571.
at_banner_text_35="JSON -- strings"
# Banner 36. json.at:165
# Category starts at test group 620.
at_banner_text_36="JSON -- objects"
# Banner 37. json.at:187
# Category starts at test group 644.
at_banner_text_37="JSON -- literal names"
# Banner 38. json.at:201
# Category starts at test group 665.
at_banner_text_38="JSON -- numbers"
# Banner 39. json.at:302
# Category starts at test group 722.
at_banner_text_39="JSON -- RFC 4627 examples"
# Banner 40. json.at:345
# Category starts at test group 728.
at_banner_text_40="JSON -- pathological cases"
# Banner 41. json.at:368
# Category starts at test group 744.
at_banner_text_41="JSON -- multiple inputs"
# Banner 42. jsonrpc.at:1
# Category starts at test group 762.
at_banner_text_42="JSON-RPC - C"
# Banner 43. jsonrpc-py.at:1
# Category starts at test group 765.
at_banner_text_43="JSON-RPC - Python"
# Banner 44. tunnel.at:1
# Category starts at test group 771.
at_banner_text_44="tunnel"
# Banner 45. tunnel-push-pop.at:1
# Category starts at test group 790.
at_banner_text_45="tunnel_push_pop"
# Banner 46. tunnel-push-pop-ipv6.at:1
# Category starts at test group 793.
at_banner_text_46="tunnel_push_pop_ipv6"
# Banner 47. ovs-router.at:1
# Category starts at test group 794.
at_banner_text_47="ovs-router"
# Banner 48. lockfile.at:1
# Category starts at test group 797.
at_banner_text_48="lockfile unit tests"
# Banner 49. reconnect.at:1
# Category starts at test group 807.
at_banner_text_49="reconnect library"
# Banner 50. ovs-vswitchd.at:1
# Category starts at test group 846.
at_banner_text_50="ovs-vswitchd"
# Banner 51. ofproto.at:1
# Category starts at test group 855.
at_banner_text_51="ofproto"
# Banner 52. dpif-netdev.at:1
# Category starts at test group 1004.
at_banner_text_52="dpif-netdev"
# Banner 53. pmd.at:1
# Category starts at test group 1012.
at_banner_text_53="PMD"
# Banner 54. dpctl.at:1
# Category starts at test group 1025.
at_banner_text_54="dpctl"
# Banner 55. ofproto-dpif.at:1
# Category starts at test group 1027.
at_banner_text_55="ofproto-dpif"
# Banner 56. ofproto-dpif.at:7645
# Category starts at test group 1172.
at_banner_text_56="ofproto-dpif -- megaflows"
# Banner 57. ofproto-dpif.at:8338
# Category starts at test group 1203.
at_banner_text_57="ofproto-dpif - flow translation resource limits"
# Banner 58. bridge.at:1
# Category starts at test group 1240.
at_banner_text_58="bridge"
# Banner 59. netdev-type.at:1
# Category starts at test group 1242.
at_banner_text_59="netdev-type"
# Banner 60. ovsdb-log.at:1
# Category starts at test group 1243.
at_banner_text_60="OVSDB -- logging"
# Banner 61. ovsdb-types.at:1
# Category starts at test group 1257.
at_banner_text_61="OVSDB -- atomic types"
# Banner 62. ovsdb-types.at:16
# Category starts at test group 1274.
at_banner_text_62="OVSDB -- base types"
# Banner 63. ovsdb-types.at:90
# Category starts at test group 1336.
at_banner_text_63="OVSDB -- simple types"
# Banner 64. ovsdb-types.at:112
# Category starts at test group 1361.
at_banner_text_64="OVSDB -- set types"
# Banner 65. ovsdb-types.at:144
# Category starts at test group 1384.
at_banner_text_65="OVSDB -- map types"
# Banner 66. ovsdb-data.at:1
# Category starts at test group 1404.
at_banner_text_66="OVSDB -- default values"
# Banner 67. ovsdb-data.at:74
# Category starts at test group 1410.
at_banner_text_67="OVSDB -- atoms without constraints"
# Banner 68. ovsdb-data.at:339
# Category starts at test group 1475.
at_banner_text_68="OVSDB -- atoms with enum constraints"
# Banner 69. ovsdb-data.at:433
# Category starts at test group 1493.
at_banner_text_69="OVSDB -- atoms with other constraints"
# Banner 70. ovsdb-data.at:556
# Category starts at test group 1517.
at_banner_text_70="OVSDB -- simple data"
# Banner 71. ovsdb-data.at:606
# Category starts at test group 1533.
at_banner_text_71="OVSDB -- set data"
# Banner 72. ovsdb-data.at:754
# Category starts at test group 1564.
at_banner_text_72="OVSDB -- map data"
# Banner 73. ovsdb-column.at:1
# Category starts at test group 1594.
at_banner_text_73="OVSDB -- columns"
# Banner 74. ovsdb-table.at:1
# Category starts at test group 1603.
at_banner_text_74="OVSDB -- tables"
# Banner 75. ovsdb-row.at:1
# Category starts at test group 1638.
at_banner_text_75="OVSDB -- rows"
# Banner 76. ovsdb-schema.at:1
# Category starts at test group 1649.
at_banner_text_76="OVSDB -- schemas"
# Banner 77. ovsdb-condition.at:1
# Category starts at test group 1665.
at_banner_text_77="OVSDB -- conditions"
# Banner 78. ovsdb-mutation.at:1
# Category starts at test group 1687.
at_banner_text_78="OVSDB -- mutations"
# Banner 79. ovsdb-query.at:1
# Category starts at test group 1706.
at_banner_text_79="OVSDB -- queries"
# Banner 80. ovsdb-transaction.at:1
# Category starts at test group 1713.
at_banner_text_80="OVSDB -- transactions"
# Banner 81. ovsdb-execution.at:1
# Category starts at test group 1728.
at_banner_text_81="OVSDB -- execution"
# Banner 82. ovsdb-trigger.at:1
# Category starts at test group 1758.
at_banner_text_82="OVSDB -- triggers"
# Banner 83. ovsdb-tool.at:1
# Category starts at test group 1763.
at_banner_text_83="OVSDB -- ovsdb-tool"
# Banner 84. ovsdb-replication.at:1
# Category starts at test group 1800.
at_banner_text_84="OVSDB -- replication"
# Banner 85. ovsdb-server.at:1
# Category starts at test group 1800.
at_banner_text_85="OVSDB -- ovsdb-server transactions (Unix sockets)"
# Banner 86. ovsdb-server.at:43
# Category starts at test group 1825.
at_banner_text_86="ovsdb-server miscellaneous features"
# Banner 87. ovsdb-server.at:1213
# Category starts at test group 1841.
at_banner_text_87="OVSDB -- ovsdb-server transactions (SSL IPv4 sockets)"
# Banner 88. ovsdb-server.at:1250
# Category starts at test group 1866.
at_banner_text_88="OVSDB -- ovsdb-server transactions (SSL IPv6 sockets)"
# Banner 89. ovsdb-server.at:1288
# Category starts at test group 1867.
at_banner_text_89="OVSDB -- ovsdb-server transactions (TCP IPv4 sockets)"
# Banner 90. ovsdb-server.at:1324
# Category starts at test group 1892.
at_banner_text_90="OVSDB -- ovsdb-server transactions (TCP IPv6 sockets)"
# Banner 91. ovsdb-server.at:1361
# Category starts at test group 1893.
at_banner_text_91="OVSDB -- transactions on transient ovsdb-server"
# Banner 92. ovsdb-server.at:1397
# Category starts at test group 1918.
at_banner_text_92="OVSDB -- ovsdb-server replication"
# Banner 93. ovsdb-server.at:1437
# Category starts at test group 1943.
at_banner_text_93="OVSDB -- ovsdb-server replication table-exclusion"
# Banner 94. ovsdb-server.at:1491
# Category starts at test group 1949.
at_banner_text_94="OVSDB -- ovsdb-server replication runtime management commands"
# Banner 95. ovsdb-client.at:1
# Category starts at test group 1958.
at_banner_text_95="OVSDB -- ovsdb-client commands"
# Banner 96. ovsdb-monitor.at:1
# Category starts at test group 1961.
at_banner_text_96="OVSDB -- ovsdb-server monitors"
# Banner 97. ovsdb-monitor.at:318
# Category starts at test group 1970.
at_banner_text_97="ovsdb -- ovsdb-monitor monitor only some operations"
# Banner 98. ovsdb-monitor.at:390
# Category starts at test group 1975.
at_banner_text_98="ovsdb -- ovsdb-monitor-cond conditional monitor only some operations"
# Banner 99. ovsdb-idl.at:1
# Category starts at test group 1982.
at_banner_text_99="OVSDB -- interface description language (IDL)"
# Banner 100. ovsdb-lock.at:1
# Category starts at test group 2178.
at_banner_text_100="OVSDB -- lock"
# Banner 101. ovsdb-rbac.at:1
# Category starts at test group 2181.
at_banner_text_101="OVSDB -- ovsdb-server rbac"
# Banner 102. ovsdb-cluster.at:39
# Category starts at test group 2182.
at_banner_text_102="OVSDB - clustered transactions (1 server)"
# Banner 103. ovsdb-cluster.at:48
# Category starts at test group 2207.
at_banner_text_103="OVSDB - clustered transactions (3 servers)"
# Banner 104. ovsdb-cluster.at:57
# Category starts at test group 2232.
at_banner_text_104="OVSDB - clustered transactions (5 servers)"
# Banner 105. ovsdb-cluster.at:65
# Category starts at test group 2257.
at_banner_text_105="OVSDB - cluster tests"
# Banner 106. ovs-vsctl.at:144
# Category starts at test group 2273.
at_banner_text_106="ovs-vsctl unit tests"
# Banner 107. ovs-vsctl.at:188
# Category starts at test group 2274.
at_banner_text_107="ovs-vsctl unit tests -- real bridges"
# Banner 108. ovs-vsctl.at:587
# Category starts at test group 2287.
at_banner_text_108="ovs-vsctl unit tests -- fake bridges (VLAN 9)"
# Banner 109. ovs-vsctl.at:588
# Category starts at test group 2293.
at_banner_text_109="ovs-vsctl unit tests -- fake bridges (VLAN 0)"
# Banner 110. ovs-vsctl.at:634
# Category starts at test group 2302.
at_banner_text_110="ovs-vsctl unit tests -- manager commands"
# Banner 111. ovs-vsctl.at:660
# Category starts at test group 2303.
at_banner_text_111="ovs-vsctl unit tests -- database commands"
# Banner 112. ovs-vsctl.at:1257
# Category starts at test group 2312.
at_banner_text_112="ovs-vsctl add-port -- reserved port names"
# Banner 113. ovs-xapi-sync.at:1
# Category starts at test group 2317.
at_banner_text_113="ovs-xapi-sync"
# Banner 114. interface-reconfigure.at:694
# Category starts at test group 2318.
at_banner_text_114="interface-reconfigure"
# Banner 115. stp.at:1
# Category starts at test group 2323.
at_banner_text_115="Spanning Tree Protocol unit tests"
# Banner 116. rstp.at:1
# Category starts at test group 2339.
at_banner_text_116="Rapid Spanning Tree Protocol unit tests"
# Banner 117. vlog.at:1
# Category starts at test group 2346.
at_banner_text_117="vlog"
# Banner 118. vtep-ctl.at:133
# Category starts at test group 2366.
at_banner_text_118="vtep-ctl unit tests -- physical switch tests"
# Banner 119. vtep-ctl.at:269
# Category starts at test group 2376.
at_banner_text_119="vtep-ctl unit tests -- logical switch tests"
# Banner 120. vtep-ctl.at:355
# Category starts at test group 2384.
at_banner_text_120="vtep-ctl unit tests -- logical binding tests"
# Banner 121. vtep-ctl.at:426
# Category starts at test group 2387.
at_banner_text_121="vtep-ctl unit tests -- MAC binding tests"
# Banner 122. vtep-ctl.at:897
# Category starts at test group 2401.
at_banner_text_122="vtep-ctl unit tests -- manager commands"
# Banner 123. auto-attach.at:1
# Category starts at test group 2403.
at_banner_text_123="auto-attach unit tests"
# Banner 124. ovn.at:34
# Category starts at test group 2404.
at_banner_text_124="OVN components"
# Banner 125. ovn.at:1158
# Category starts at test group 2431.
at_banner_text_125="OVN end-to-end tests"
# Banner 126. ovn-northd.at:1
# Category starts at test group 2485.
at_banner_text_126="OVN northd"
# Banner 127. ovn-nbctl.at:1
# Category starts at test group 2492.
at_banner_text_127="ovn-nbctl"
# Banner 128. ovn-sbctl.at:1
# Category starts at test group 2506.
at_banner_text_128="ovn-sbctl"
# Banner 129. ovn-controller.at:1
# Category starts at test group 2508.
at_banner_text_129="ovn-controller"
# Banner 130. ovn-controller-vtep.at:1
# Category starts at test group 2511.
at_banner_text_130="ovn_controller_vtep"
# Banner 131. mcast-snooping.at:1
# Category starts at test group 2517.
at_banner_text_131="mcast snooping"
# Banner 132. packet-type-aware.at:1
# Category starts at test group 2520.
at_banner_text_132="packet-type-aware pipeline"
# Banner 133. nsh.at:1
# Category starts at test group 2526.
at_banner_text_133="network service header (NSH)"

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

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

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

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

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

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

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

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

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

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


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

PATH=$at_new_path
export PATH

# Setting up the FDs.



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

# Banners and logs.
$as_echo "## ----------------------------- ##
## openvswitch 2.9.2 test suite. ##
## ----------------------------- ##"
{
  $as_echo "## ----------------------------- ##
## openvswitch 2.9.2 test suite. ##
## ----------------------------- ##"
  echo

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

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

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

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

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

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

_ASUNAME

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

}
  echo

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


# Set ovs_base to the base directory in which the test is running and
# initialize the OVS_*DIR environment variables to point to this
# directory.
ovs_init() {
    ovs_base=`pwd`
    trap '. "$ovs_base/cleanup"' 0
    : > cleanup
    ovs_setenv
}

# With no parameter or an empty parameter, sets the OVS_*DIR
# environment variables to point to $ovs_base, the base directory in
# which the test is running.
#
# With a parameter, sets them to $ovs_base/$1.
ovs_setenv() {
    sandbox=$1
    ovs_dir=$ovs_base${1:+/$1}
    OVS_RUNDIR=$ovs_dir; export OVS_RUNDIR
    OVS_LOGDIR=$ovs_dir; export OVS_LOGDIR
    OVS_DBDIR=$ovs_dir; export OVS_DBDIR
    OVS_SYSCONFDIR=$ovs_dir; export OVS_SYSCONFDIR
    OVS_PKGDATADIR=$ovs_dir; export OVS_PKGDATADIR
}

ovs_wait () {
    # First try the condition without waiting.
    ovs_wait_cond && return 0

    # Try a quick sleep, so that the test completes very quickly
    # in the normal case.  POSIX doesn't require fractional times to
    # work, so this might not work.
    sleep 0.1
    ovs_wait_cond && return 0

    # Then wait up to 10 seconds.
    for d in 0 1 2 3 4 5 6 7 8 9; do
        sleep 1
        ovs_wait_cond && return 0
    done
    return 1
}

# Prints the integers from $1 to $2, increasing by $3 (default 1) on stdout.
seq () {
    if test $# = 1; then
        set 1 $1
    fi
    while test $1 -le $2; do
        echo $1
        set `expr $1 + ${3-1}` $2 $3
    done
}

if test "$IS_WIN32" = "yes"; then
    pwd () {
        command pwd -W "$@"
    }

    diff () {
        command diff --strip-trailing-cr "$@"
    }

    # tskill is more effective than taskkill but it isn't always installed.
    if (tskill //?) >/dev/null 2>&1; then :; else
        tskill () { taskkill //F //PID $1 >/dev/null; }
    fi

    kill () {
        signal=
        retval=0
        for arg; do
            case $arg in
            -*) signal=$arg ;;
            [1-9][0-9]*)
                # tasklist always returns 0.
                # If pid does exist, there will be a line with the pid.
                if tasklist //fi "PID eq $arg" | grep $arg >/dev/null; then
                    if test "X$signal" != "X-0"; then
                        tskill $arg
                    fi
                else
                    retval=1
                fi
                ;;
            esac
        done
        return $retval
    }
fi

# Try to add a default timeout for the following control utilities:
#     - ovs-vsctl
#     - ovs-ofctl
#     - ovs-appctl
#     - ovn-sbctl
#     - ovn-nbctl
#     - vtep-ctl
# Set default timeout for 30 seconds.
# This should be sufficient on all platforms.
OVS_TIMEOUT=30
alias ovs-vsctl='OVS_VSCTL_TIMEOUT' >/dev/null 2>&1
if [ $? -eq 0 ]; then
    OVS_VSCTL_TIMEOUT () {
        command ovs-vsctl --timeout=$OVS_TIMEOUT "$@"
    }
    alias ovs-ofctl='OVS_OFCTL_TIMEOUT'
    alias ovs-appctl='OVS_APPCTL_TIMEOUT'
    alias ovn-sbctl='OVS_SBCTL_TIMEOUT'
    alias ovn-nbctl='OVN_NBCTL_TIMEOUT'
    alias vtep-ctl='VTEP_CTL_TIMEOUT'
    alias ovsdb-client='OVSDB_CLIENT_TIMEOUT'
    OVS_OFCTL_TIMEOUT () {
        command ovs-ofctl --timeout=$OVS_TIMEOUT "$@"
    }
    OVS_APPCTL_TIMEOUT () {
        command ovs-appctl --timeout=$OVS_TIMEOUT "$@"
    }
    OVS_SBCTL_TIMEOUT () {
        command ovn-sbctl --timeout=$OVS_TIMEOUT "$@"
    }
    OVN_NBCTL_TIMEOUT () {
        command ovn-nbctl --timeout=$OVS_TIMEOUT "$@"
    }
    VTEP_CTL_TIMEOUT () {
        command vtep-ctl --timeout=$OVS_TIMEOUT "$@"
    }
    OVSDB_CLIENT_TIMEOUT () {
        command ovsdb-client --timeout=$OVS_TIMEOUT "$@"
    }
fi

# parent_pid PID
#
# Prints the PID of the parent of process PID.
parent_pid () {
    # Using "ps" is portable to any POSIX system, but busybox "ps" (used in
    # e.g. Alpine Linux) is noncompliant, so we use a Linux-specific approach
    # when it's available.  We check the format of the status file to avoid
    # the NetBSD file with the same name but different contents.
    if egrep '^PPid:[[:space:]]*[0-9]*$' /proc/$1/status > /dev/null 2>&1; then
        sed -n 's/^PPid:	\([0-9]*\)/\1/p' /proc/$1/status
    else
        ps -o ppid= -p $1
    fi
}

# kill_ovs_vswitchd [PID]
#
# Signal the ovs-vswitchd daemon to exit gracefully and wait for it to
# terminate or kill it if that takes too long.
#
# It is used to cleanup all sorts of tests and results. It can't assume
# any state, including the availability of PID file which can be provided.
kill_ovs_vswitchd () {
    # Use provided PID or save the current PID if available.
    TMPPID=$1
    if test -z "$TMPPID"; then
        TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid 2>/dev/null)
    fi

    # Tell the daemon to terminate gracefully
    ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup 2>/dev/null

    # Nothing else to be done if there is no PID
    test -z "$TMPPID" && return

    for i in 1 2 3 4 5 6 7 8 9; do
        # Check if the daemon is alive.
        kill -0 $TMPPID 2>/dev/null || return

        # Fallback to whole number since POSIX doesn't require
        # fractional times to work.
        sleep 0.1 || sleep 1
    done

    # Make sure it is terminated.
    kill $TMPPID
}

# Normalize the output of 'wc' to match POSIX.
# POSIX says 'wc' should print "%d %d %d", but GNU prints "%7d %7d %7d".
# POSIX says 'wc -l' should print "%d %s", but BSD prints "%8d".
#
# This fixes all of those (it will screw up filenames that contain
# multiple sequential spaces, but that doesn't really matter).
wc () {
   command wc "$@" | tr -s ' ' ' ' | sed 's/^ *//'
}

uuidfilt () {
    $PYTHON "$top_srcdir"/tests/uuidfilt.py "$@"
}

# run_as PROGRAM_NAME COMMAND [ARG...]
#
# Runs a command with argv[0] set to PROGRAM_NAME, if possible, in a
# subshell.  Most utilities print argc[0] as part of their messages,
# so this makes it easier to figure out which particular utility
# prints a message if a bunch of identical processes are running.
#
# Not all shells support "exec -a NAME", so test for it.
if (exec -a myname true); then
    run_as () {
	(exec -a "$@")
    }
else
    run_as () {
        shift
	(exec "$@")
    }
fi

on_exit () {
    (echo "$1"; cat cleanup) > cleanup.tmp
    mv cleanup.tmp cleanup
}



# Strips out uninteresting parts of ovs-ofctl output, as well as parts
# that vary from one run to another.
ofctl_strip () {
    sed '
s/ (xid=0x[0-9a-fA-F]*)//
s/ duration=[0-9.]*s,//
s/ cookie=0x0,//
s/ table=0,//
s/ n_packets=0,//
s/ n_bytes=0,//
s/ idle_age=[0-9]*,//
s/ hard_age=[0-9]*,//
s/dp_hash=0x[0-9a-f]*\//dp_hash=0x0\//
s/recirc_id=0x[0-9a-f]*,/recirc_id=0x0,/
s/[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]T[0-9][0-9]:[0-9][0-9]:[0-9][0-9]Z|//
s/dir\/[0-9]*\/br0.mgmt/dir\/XXXX\/br0.mgmt/
'
}

# Filter (multiline) vconn debug messages from ovs-vswitchd.log.
# Use with vconn_sub() and ofctl_strip()
print_vconn_debug () { awk -F\| < ovs-vswitchd.log '
BEGIN { prt=0 }
/\|vconn\|DBG\|/ { sub(/[ \t]*$/, ""); print $3 "|" $4 "|" $5; prt=1; next }
$4 != "" { prt=0; next }
prt==1 { sub(/[ \t]*$/, ""); print $0 }
'
}

vconn_sub() {
    sed '
s/tcp:127.0.0.1:[0-9][0-9]*:/unix:/
s/unix#[0-9]*:/unix:/
'
}


# PARSE_LISTENING_PORT LOGFILE VARIABLE
#
# Parses the TCP or SSL port on which a server is listening from
# LOGFILE, given that the server was told to listen on a kernel-chosen
# port, and assigns the port number to shell VARIABLE.  You should
# specify the listening remote as ptcp:0:127.0.0.1 or
# pssl:0:127.0.0.1, or the equivalent with [::1] instead of 127.0.0.1.
#
# Here's an example of how to use this with ovsdb-server:
#
#    ovsdb-server --log-file --remote=ptcp:0:127.0.0.1 ...
#    PARSE_LISTENING_PORT([ovsdb-server.log], [TCP_PORT])
#    # Now $TCP_PORT holds the listening port.


start_daemon () {
    "$@" -vconsole:off --detach --no-chdir --pidfile --log-file
    pidfile="$OVS_RUNDIR"/$1.pid
    on_exit "test -e \"$pidfile\" && kill \`cat \"$pidfile\"\`"
}

# sim_add SANDBOX
#
# Starts a new simulated Open vSwitch instance named SANDBOX.  Files related to
# the instance, such as logs, databases, sockets, and pidfiles, are created in
# a subdirectory of the main test directory also named SANDBOX.  Afterward, the
# "as" command (see below) can be used to run Open vSwitch utilities in the
# context of the new sandbox.
#
# The new sandbox starts out without any bridges.  Use ovs-vsctl in the context
# of the new sandbox to create a bridge, e.g.:
#
#     sim_add hv0           # Create sandbox hv0.
#     as hv0                # Set hv0 as default sandbox.
#     ovs-vsctl add-br br0  # Add bridge br0 inside hv0.
#
# or:
#
#     sim_add hv0
#     as hv0 ovs-vsctl add-br br0
sims=
sim_add () {
   echo "adding simulator '$1'"

   sims="$sims $1"

   # Create sandbox.
   local d="$ovs_base"/$1
   mkdir "$d" || return 1
   ovs_setenv $1

   # Create database and start ovsdb-server.
   : > "$d"/.conf.db.~lock~
   as $1 ovsdb-tool create "$d"/conf.db "$abs_top_srcdir"/vswitchd/vswitch.ovsschema || return 1
   as $1 start_daemon ovsdb-server --remote=punix:"$d"/db.sock || return 1

   # Initialize database.
   as $1 ovs-vsctl --no-wait -- init || return 1

   # Start ovs-vswitchd
   as $1 start_daemon ovs-vswitchd --enable-dummy=system -vvconn -vofproto_dpif -vunixctl
}

# "as $1" sets the OVS_*DIR environment variables to point to $ovs_base/$1.
#
# "as $1 COMMAND..." sets those variables in a subshell and invokes COMMAND
# there.
as() {
    if test "X$2" != X; then
        (ovs_setenv $1; shift; "$@")
    else
        ovs_setenv $1
    fi
}

# OVN_CLEANUP_VSWITCH(sim)
#
# Gracefully terminate vswitch daemons in the
# specified sandbox.


# OVN_CLEANUP_SBOX(sbox)
#
# Gracefully terminate OVN daemons in the specified
# sandbox instance. The sandbox name "vtep" is treated
# as a special case, and is assumed to have ovn-controller-vtep
# and ovs-vtep daemons running instead of ovn-controller.


# OVN_CLEANUP(sim [, sim ...])
#
# Gracefully terminate all OVN daemons, including those in the
# specified sandbox instances.


# ovn_init_db DATABASE
#
# Creates and initializes the given DATABASE (one of "ovn-sb" or "ovn-nb"),
# starts its ovsdb-server instance, and sets the appropriate environment
# variable (OVN_SB_DB or OVN_NB_DB) so that ovn-sbctl or ovn-nbctl uses the
# database by default.
#
# Usually invoked from ovn_start.
ovn_init_db () {
    echo "creating $1 database"
    local d=$ovs_base/$1
    mkdir "$d" || return 1
    : > "$d"/.$1.db.~lock~
    as $1 ovsdb-tool create "$d"/$1.db "$abs_top_srcdir"/ovn/$1.ovsschema
    as $1 start_daemon ovsdb-server --remote=punix:"$d"/$1.sock "$d"/$1.db
    local var=`echo $1_db | tr a-z- A-Z_`
    eval "$var=unix:\$ovs_base/\$1/\$1.sock"; export $var
}

# ovn_start
#
# Creates and initializes ovn-sb and ovn-nb databases and starts their
# ovsdb-server instance, sets appropriate environment variables so that
# ovn-sbctl and ovn-nbctl use them by default, and starts ovn-northd running
# against them.
ovn_start () {
    ovn_init_db ovn-sb; ovn-sbctl init
    ovn_init_db ovn-nb; ovn-nbctl init

    echo "starting ovn-northd"
    mkdir "$ovs_base"/northd
    as northd start_daemon ovn-northd \
               --ovnnb-db=unix:"$ovs_base"/ovn-nb/ovn-nb.sock \
               --ovnsb-db=unix:"$ovs_base"/ovn-sb/ovn-sb.sock

    echo "starting backup ovn-northd"
    mkdir "$ovs_base"/northd-backup
    as northd-backup start_daemon ovn-northd \
               --ovnnb-db=unix:"$ovs_base"/ovn-nb/ovn-nb.sock \
               --ovnsb-db=unix:"$ovs_base"/ovn-sb/ovn-sb.sock
}

# Interconnection networks.
#
# When multiple sandboxed Open vSwitch instances exist, one will inevitably
# want to connect them together.  These commands allow for that.  Conceptually,
# an interconnection network is a switch for which these functions make it easy
# to plug into other switches in other sandboxed Open vSwitch instances.
# Interconnection networks are implemented as bridges in a switch named "main",
# so to use interconnection networks please avoid working with that switch
# directly.

# net_add NETWORK
#
# Creates a new interconnection network named NETWORK.
net_add () {
    test -d "$ovs_base"/main || sim_add main || return 1
    as main ovs-vsctl add-br "$1"
}

# net_attach NETWORK BRIDGE
#
# Adds a new port to BRIDGE in the default sandbox (as set with as()) and plugs
# it into the NETWORK interconnection network.  NETWORK must already have been
# created by a previous invocation of net_add.  The default sandbox must not be
# "main".
net_attach () {
    local net=$1 bridge=$2

    local port=${sandbox}_$bridge
    as main ovs-vsctl \
        -- add-port $net $port \
        -- set Interface $port options:pstream="punix:$ovs_base/main/$port.sock" options:rxq_pcap="$ovs_base/main/$port-rx.pcap" options:tx_pcap="$ovs_base/main/$port-tx.pcap" \
        || return 1

    ovs-vsctl \
        -- set Interface $bridge options:tx_pcap="$ovs_base/$sandbox/$bridge-tx.pcap" options:rxq_pcap="$ovs_base/$sandbox/$bridge-rx.pcap" \
        -- add-port $bridge ${bridge}_$net \
        -- set Interface ${bridge}_$net options:stream="unix:$ovs_base/main/$port.sock" options:rxq_pcap="$ovs_base/$sandbox/${bridge}_$net-rx.pcap" options:tx_pcap="$ovs_base/$sandbox/${bridge}_$net-tx.pcap" \
        || return 1
}

# ovn_attach NETWORK BRIDGE IP [MASKLEN]
#
# First, this command attaches BRIDGE to interconnection network NETWORK, just
# like "net_attach NETWORK BRIDGE".  Second, it configures (simulated) IP
# address IP (with network mask length MASKLEN, which defaults to 24) on
# BRIDGE.  Finally, it configures the Open vSwitch database to work with OVN
# and starts ovn-controller.
ovn_attach() {
    local net=$1 bridge=$2 ip=$3 masklen=${4-24}
    net_attach $net $bridge || return 1

    mac=`ovs-vsctl get Interface $bridge mac_in_use | sed s/\"//g`
    arp_table="$arp_table $sandbox,$bridge,$ip,$mac"
    ovs-appctl netdev-dummy/ip4addr $bridge $ip/$masklen >/dev/null || return 1
    ovs-appctl ovs/route/add $ip/$masklen $bridge >/dev/null || return 1
    ovs-vsctl \
        -- set Open_vSwitch . external-ids:system-id=$sandbox \
        -- set Open_vSwitch . external-ids:ovn-remote=unix:$ovs_base/ovn-sb/ovn-sb.sock \
        -- set Open_vSwitch . external-ids:ovn-encap-type=geneve,vxlan \
        -- set Open_vSwitch . external-ids:ovn-encap-ip=$ip \
        -- add-br br-int \
        -- set bridge br-int fail-mode=secure other-config:disable-in-band=true \
        || return 1
    start_daemon ovn-controller || return 1
}

# OVN_POPULATE_ARP
#
# This pre-populates the ARP tables of all of the OVN instances that have been
# started with ovn_attach().  That means that packets sent from one hypervisor
# to another never get dropped or delayed by ARP resolution, which makes
# testing easier.
ovn_populate_arp__() {
    for e1 in $arp_table; do
        set `echo $e1 | sed 's/,/ /g'`; sb1=$1 br1=$2 ip=$3 mac=$4
        for e2 in $arp_table; do
            set `echo $e2 | sed 's/,/ /g'`; sb2=$1 br2=$2
            if test $sb1,$br1 != $sb2,$br2; then
                as $sb2 ovs-appctl tnl/neigh/set $br2 $ip $mac || return 1
            fi
        done
    done
}


# Strips 'xid=0x1234' from ovs-ofctl output.
strip_xids () {
    sed 's/ (xid=0x[0-9a-fA-F]*)//'
}

# Changes all 'used:...' to say 'used:0.0', to make output easier to compare.
strip_used () {
    sed 's/used:[0-9]\.[0-9]*/used:0.0/'
}

# Strips 'ufid:...' from output, to make it easier to compare.
# (ufids are random.)
strip_ufid () {
    sed 's/ufid:[-0-9a-f]* //'
}

check_logs () {
    local logs
    for log in *.log; do
        case ${log} in # (
            '*.log'|testsuite.log) ;; # (
            *) logs="${logs} ${log}" ;;
        esac
    done

    # We most notably ignore 'Broken pipe' warnings.  These often and
    # intermittently appear in ovsdb-server.log, because *ctl commands
    # (e.g. ovs-vsctl, ovn-nbctl) exit right after committing a change to the
    # database.  However, in reaction, some daemon may immediately update the
    # database, and this later update may cause database sending update back to
    # *ctl command if *ctl has not exited yet.  If *ctl command exits before
    # the database calls send, the send fails with 'Broken pipe'.  Also removes
    # all "connection reset" warning logs for similar reasons (either EPIPE or
    # ECONNRESET can be returned on a send depending on whether the peer had
    # unconsumed data when it closed the socket).
    sed -n "$1
/reset by peer/d
/Broken pipe/d
/timeval.*Unreasonably long [0-9]*ms poll interval/d
/timeval.*faults: [0-9]* minor, [0-9]* major/d
/timeval.*disk: [0-9]* reads, [0-9]* writes/d
/timeval.*context switches: [0-9]* voluntary, [0-9]* involuntary/d
/ovs_rcu.*blocked [0-9]* ms waiting for .* to quiesce/d
/|WARN|/p
/|ERR|/p
/|EMER|/p" ${logs}
}

# add_of_br BRNUM [ARG...]
add_of_br () {
    local brnum=$1; shift
    local br=br$brnum
    local dpid=fedcba987654321$brnum
    local mac=aa:55:aa:55:00:0$brnum
    ovs-vsctl --timeout=20 \
        -- add-br $br \
	-- set bridge $br datapath-type=dummy \
			  fail-mode=secure \
			  other-config:datapath-id=$dpid \
			  other-config:hwaddr=$mac \
			  protocols="[OpenFlow10,OpenFlow11,OpenFlow12,\
                                       OpenFlow13,OpenFlow14,OpenFlow15,\
                                       OpenFlow16]" \
        -- "$@"
}

# add_of_ports__ PORT_TYPE [--pcap] BRIDGE PNUM...
#
# Creates PORT_TYPE interfaces in BRIDGE named pPNUM, OpenFlow port number
# PNUM, and datapath port number PNUM (the latter is a consequence of
# the dummy implementation, which tries to assign datapath port
# numbers based on port names).
#
# If --pcap is supplied then packets received from the interface will
# be written to $port-rx.pcap and those sent to it to $port-tx.pcap.
add_of_ports__ () {
    local args
    local pcap=false
    local ptype=$1
    shift
    if test "$1" = --pcap; then
        pcap=:
    shift
    fi
    local br=$1; shift
    for pnum; do
        as_fn_append args " -- add-port $br p$pnum -- set Interface p$pnum type=$ptype ofport_request=$pnum"
    if $pcap; then
        as_fn_append args " -- set Interface p$pnum options:rxq_pcap=p$pnum-rx.pcap options:tx_pcap=p$pnum-tx.pcap"
    fi
    done
    echo ovs-vsctl $args
    ovs-vsctl $args
}

# add_of_ports [--pcap] BRIDGE PNUM...
#
add_of_ports () {
    add_of_ports__ dummy $@
}

# add_pmd_of_ports [--pcap] BRIDGE PNUM...
#
add_pmd_of_ports () {
    add_of_ports__ dummy-pmd $@
}


# Sorts groups of lines that start with a space, without moving them
# past the nearest line that does not start with a space.

multiline_sort () {
    $PYTHON -c '
import sys

buffer = []
while True:
    line = sys.stdin.readline()
    if not line:
        break
    if line.startswith(" "):
        buffer.append(line)
    else:
        sys.stdout.write("".join(sorted(buffer)))
        sys.stdout.write(line)
        buffer = []
sys.stdout.write("".join(sorted(buffer)))
'
}



# Strips out uninteresting parts of flow output, as well as parts
# that vary from one run to another (e.g., timing and bond actions).
strip_timers () {
    sed '
    s/duration:[0-9]*\.[0-9]*/duration:0.0/
    s/used:[0-9]*\.[0-9]*/used:0.0/
'
}

strip_xout () {
    sed '
    s/ufid:[-0-9a-f]* //
    s/used:[0-9]*\.[0-9]*/used:0.0/
    s/actions:.*/actions: <del>/
    s/packets:[0-9]*/packets:0/
    s/bytes:[0-9]*/bytes:0/
' | sort
}

strip_xout_keep_actions () {
    sed '
    s/ufid:[-0-9a-f]* //
    s/used:[0-9]*\.[0-9]*/used:0.0/
    s/packets:[0-9]*/packets:0/
    s/bytes:[0-9]*/bytes:0/
' | sort
}

filter_flow_install () {
    grep 'flow_add' | sed 's/.*flow_add: //' | sort | uniq
}

filter_flow_dump () {
    grep 'flow_dump ' | sed '
	s/.*flow_dump //
	s/used:[0-9]*\.[0-9]*/used:0.0/
    ' | sort | uniq
}

strip_metadata () {
    sed 's/metadata=0x[0-9a-f]*/metadata=0x0/'
}



# Given the output of `ovs-appctl dpif-netdev/pmd-rxq-show`, prints a list
# of every rxq (one per line) in the form:
# port_name rxq_id numa_id core_id
parse_pmd_rxq_show () {
    awk '/pmd thread/ {numa=$4; core=substr($6, 1, length($6) - 1)} /\tport:/ {print  $2, $4, numa, core}' | sort
}

# Given the output of `ovs-appctl dpif-netdev/pmd-rxq-show`,
# and with queues for each core on one line, prints the rxqs
# of the core on one line
# 'port:' port_name 'queue_id:' rxq_id rxq_id rxq_id rxq_id
parse_pmd_rxq_show_group () {
   awk '/port:/ {print  $1, $2, $3, $4, $12, $20, $28}'
}

# Given the output of `ovs-appctl dpctl/dump-flows`, prints a list of flows
# (one per line), with the pmd_id at the beginning of the line
#
flow_dump_prepend_pmd () {
    awk '/flow-dump from non-dpdk/ {pmd_id=-1; next} /flow-dump from pmd/ {pmd_id=$7; next} {print pmd_id, $0}' | sort
}




ordinal_schema () {
    cat <<'EOF'
    {"name": "ordinals",
     "tables": {
       "ordinals": {
         "columns": {
           "number": {"type": "integer"},
           "name": {"type": "string"}},
         "indexes": [["number"]]}},
     "version": "5.1.3",
     "cksum": "12345678 9"}
EOF
}

constraint_schema () {
    cat << 'EOF'
    {"name": "constraints",
     "tables": {
       "a": {
         "columns": {
           "a": {"type": "integer"},
           "a2a": {"type": {"key": {"type": "uuid", "refTable": "a"},
                            "min": 0, "max": "unlimited"}},
           "a2b": {"type": {"key": {"type": "uuid", "refTable": "b"},
                            "min": 0, "max": "unlimited"}}}},
       "b": {
         "columns": {
           "b": {"type": "integer"},
           "b2a": {"type": {"key": {"type": "uuid", "refTable": "a"},
                            "min": 0, "max": "unlimited"}},
           "b2b": {"type": {"key": {"type": "uuid", "refTable": "b"},
                            "min": 0, "max": "unlimited"}},
           "x": {"type": {"key": "integer", "min": 1, "max": 2}}}},
       "constrained": {
         "columns": {
           "positive": {"type": {"key": {"type": "integer",
                                         "minInteger": 1}}}},
         "maxRows": 1}}}
EOF
}

weak_schema () {
    cat <<'EOF'
    {"name": "weak",
     "tables": {
       "a": {
         "columns": {
           "a": {"type": "integer"},
           "a2a": {"type": {"key": {"type": "uuid",
                                    "refTable": "a",
                                    "refType": "weak"},
                            "min": 0, "max": "unlimited"}},
           "a2a1": {"type": {"key": {"type": "uuid",
                                     "refTable": "a",
                                     "refType": "weak"}}},
           "a2b": {"type": {"key": {"type": "uuid",
                                    "refTable": "b",
                                    "refType": "weak"}}}}},
       "b": {
         "columns": {
           "b": {"type": "integer"},
           "b2a": {"type": {"key": {"type": "uuid",
                                    "refTable": "a",
                                    "refType": "weak"},
                            "min": 0, "max": "unlimited"}}}}}}
EOF
}

gc_schema () {
    cat <<'EOF'
    {"name": "gc",
     "tables": {
       "root": {
         "columns": {
           "a": {"type": {"key": {"type": "uuid",
                                  "refTable": "a"},
                            "min": 0, "max": "unlimited"}}},
         "isRoot": true},
       "a": {
         "columns": {
           "a": {"type": "integer"},
           "a2a": {"type": {"key": {"type": "uuid",
                                    "refTable": "a"},
                            "min": 0, "max": "unlimited"}},
           "a2b": {"type": {"key": {"type": "uuid",
                                    "refTable": "b"},
                            "min": 0, "max": "unlimited"}},
           "wa2a": {"type": {"key": {"type": "uuid",
                                     "refTable": "a",
                                     "refType": "weak"},
                             "min": 0, "max": "unlimited"}},
           "wa2b": {"type": {"key": {"type": "uuid",
                                    "refTable": "b",
                                    "refType": "weak"},
                             "min": 0, "max": "unlimited"}}}},
       "b": {
         "columns": {
           "b": {"type": "integer"},
           "b2a": {"type": {"key": {"type": "uuid",
                                    "refTable": "a"},
                            "min": 0, "max": "unlimited"}},
           "wb2a": {"type": {"key": {"type": "uuid",
                                     "refTable": "a",
                                     "refType": "weak"},
                             "min": 0, "max": "unlimited"}}},
         "isRoot": false}}}
EOF
}

immutable_schema () {
    cat <<'EOF'
{"name": "immutable",
 "tables": {
    "a": {
        "columns": {"i": {"type": "integer", "mutable": false}}}}}
EOF
}



replication_schema () {
    cat <<'EOF'
    {"name": "mydb",
     "tables": {
       "a": {
         "columns": {
           "number": {"type": "integer"},
           "name": {"type": "string"}},
         "indexes": [["number"]]},
       "b": {
         "columns": {
           "number": {"type": "integer"},
           "name": {"type": "string"}},
         "indexes": [["number"]]}}
    }
EOF
}


# ovsdb_check_online_compaction MODEL
#
# where MODEL is "standalone" or "cluster"
ovsdb_check_online_compaction() {
    local model=$1

    ordinal_schema > schema
                mkdir dir
    if test "$IS_WIN32" = "no"; then
	ln -s dir/db db
	ln -s dir/.db.~lock~ .db.~lock~
	$as_echo "ovsdb-server.at:662" >"$at_check_line_file"
(test ! -h db || test ! -h .db.~lock~) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:662"
    fi
    { set +x
$as_echo "$at_srcdir/ovsdb-server.at:664: if test \$model = standalone; then
                  ovsdb-tool create db schema
              else
                  ovsdb-tool create-cluster db schema unix:s1.raft
              fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:664"
( $at_check_trace; if test $model = standalone; then
                  ovsdb-tool create db schema
              else
                  ovsdb-tool create-cluster db schema unix:s1.raft
              fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:664"
$at_failed && at_fn_log_failure
$at_traceon; }

        { set +x
$as_echo "$at_srcdir/ovsdb-server.at:670: ovsdb-server -vvlog:off -vconsole:off --detach --no-chdir --pidfile --remote=punix:socket --log-file db"
at_fn_check_prepare_trace "ovsdb-server.at:670"
( $at_check_trace; ovsdb-server -vvlog:off -vconsole:off --detach --no-chdir --pidfile --remote=punix:socket --log-file db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:670"
$at_failed && at_fn_log_failure
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ovsdb-server.at:671: ovsdb-client wait unix:socket ordinals connected"
at_fn_check_prepare_trace "ovsdb-server.at:671"
( $at_check_trace; ovsdb-client wait unix:socket ordinals connected
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:671"
$at_failed && at_fn_log_failure
$at_traceon; }


        { set +x
$as_echo "$at_srcdir/ovsdb-server.at:674: for pair in 'zero 0' 'one 1' 'two 2' 'three 3' 'four 4' 'five 5'; do
	  set -- \$pair
	  ovsdb-client transact unix:socket '
	    [\"ordinals\",
	     {\"op\": \"insert\",
	      \"table\": \"ordinals\",
	      \"row\": {\"name\": \"'\$1'\", \"number\": '\$2'}},
	     {\"op\": \"comment\",
	      \"comment\": \"add row for '\"\$pair\"'\"}]'
	  ovsdb-client transact unix:socket '
	    [\"ordinals\",
	     {\"op\": \"delete\",
	      \"table\": \"ordinals\",
	      \"where\": [[\"number\", \"==\", '\$2']]},
	     {\"op\": \"comment\",
	      \"comment\": \"delete row for '\"\$2\"'\"}]'
	  ovsdb-client transact unix:socket '
	    [\"ordinals\",
	     {\"op\": \"insert\",
	      \"table\": \"ordinals\",
	      \"row\": {\"name\": \"'\$1'\", \"number\": '\$2'}},
	     {\"op\": \"comment\",
	      \"comment\": \"add back row for '\"\$pair\"'\"}]'
	done"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:674"
( $at_check_trace; for pair in 'zero 0' 'one 1' 'two 2' 'three 3' 'four 4' 'five 5'; do
	  set -- $pair
	  ovsdb-client transact unix:socket '
	    ["ordinals",
	     {"op": "insert",
	      "table": "ordinals",
	      "row": {"name": "'$1'", "number": '$2'}},
	     {"op": "comment",
	      "comment": "add row for '"$pair"'"}]'
	  ovsdb-client transact unix:socket '
	    ["ordinals",
	     {"op": "delete",
	      "table": "ordinals",
	      "where": [["number", "==", '$2']]},
	     {"op": "comment",
	      "comment": "delete row for '"$2"'"}]'
	  ovsdb-client transact unix:socket '
	    ["ordinals",
	     {"op": "insert",
	      "table": "ordinals",
	      "row": {"name": "'$1'", "number": '$2'}},
	     {"op": "comment",
	      "comment": "add back row for '"$pair"'"}]'
	done
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:674"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

    if test $model = standalone; then
		{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:702: uuidfilt db | grep -v ^OVSDB | sed 's/\"_date\":[0-9]*/\"_date\":0/' | ovstest test-json --multiple -"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-server.at:702"
( $at_check_trace; uuidfilt db | grep -v ^OVSDB | sed 's/"_date":[0-9]*/"_date":0/' | ovstest test-json --multiple -
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"cksum\":\"12345678 9\",\"name\":\"ordinals\",\"tables\":{\"ordinals\":{\"columns\":{\"name\":{\"type\":\"string\"},\"number\":{\"type\":\"integer\"}},\"indexes\":[[\"number\"]]}},\"version\":\"5.1.3\"}
{\"_comment\":\"add row for zero 0\",\"_date\":0,\"ordinals\":{\"<0>\":{\"name\":\"zero\"}}}
{\"_comment\":\"delete row for 0\",\"_date\":0,\"ordinals\":{\"<0>\":null}}
{\"_comment\":\"add back row for zero 0\",\"_date\":0,\"ordinals\":{\"<1>\":{\"name\":\"zero\"}}}
{\"_comment\":\"add row for one 1\",\"_date\":0,\"ordinals\":{\"<2>\":{\"name\":\"one\",\"number\":1}}}
{\"_comment\":\"delete row for 1\",\"_date\":0,\"ordinals\":{\"<2>\":null}}
{\"_comment\":\"add back row for one 1\",\"_date\":0,\"ordinals\":{\"<3>\":{\"name\":\"one\",\"number\":1}}}
{\"_comment\":\"add row for two 2\",\"_date\":0,\"ordinals\":{\"<4>\":{\"name\":\"two\",\"number\":2}}}
{\"_comment\":\"delete row for 2\",\"_date\":0,\"ordinals\":{\"<4>\":null}}
{\"_comment\":\"add back row for two 2\",\"_date\":0,\"ordinals\":{\"<5>\":{\"name\":\"two\",\"number\":2}}}
{\"_comment\":\"add row for three 3\",\"_date\":0,\"ordinals\":{\"<6>\":{\"name\":\"three\",\"number\":3}}}
{\"_comment\":\"delete row for 3\",\"_date\":0,\"ordinals\":{\"<6>\":null}}
{\"_comment\":\"add back row for three 3\",\"_date\":0,\"ordinals\":{\"<7>\":{\"name\":\"three\",\"number\":3}}}
{\"_comment\":\"add row for four 4\",\"_date\":0,\"ordinals\":{\"<8>\":{\"name\":\"four\",\"number\":4}}}
{\"_comment\":\"delete row for 4\",\"_date\":0,\"ordinals\":{\"<8>\":null}}
{\"_comment\":\"add back row for four 4\",\"_date\":0,\"ordinals\":{\"<9>\":{\"name\":\"four\",\"number\":4}}}
{\"_comment\":\"add row for five 5\",\"_date\":0,\"ordinals\":{\"<10>\":{\"name\":\"five\",\"number\":5}}}
{\"_comment\":\"delete row for 5\",\"_date\":0,\"ordinals\":{\"<10>\":null}}
{\"_comment\":\"add back row for five 5\",\"_date\":0,\"ordinals\":{\"<11>\":{\"name\":\"five\",\"number\":5}}}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:702"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

    else
        	{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:725: test \`wc -l < db\` -gt 50"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:725"
( $at_check_trace; test `wc -l < db` -gt 50
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:725"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

    fi
        { set +x
$as_echo "$at_srcdir/ovsdb-server.at:728: ovsdb-client dump unix:socket ordinals"
at_fn_check_prepare_trace "ovsdb-server.at:728"
( $at_check_trace; ovsdb-client dump unix:socket ordinals
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:728"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ovsdb-server.at:729: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-server.at:729"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ordinals table
_uuid                                name  number
------------------------------------ ----- ------
<0> five  5
<1> four  4
<2> one   1
<3> three 3
<4> two   2
<5> zero  0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:729"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

    cp db db.pre-compaction
        { set +x
$as_echo "$at_srcdir/ovsdb-server.at:742: ovs-appctl -t ovsdb-server ovsdb-server/compact"
at_fn_check_prepare_trace "ovsdb-server.at:742"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/compact
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:742"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

        { set +x
$as_echo "$at_srcdir/ovsdb-server.at:745: ovs-appctl -t ovsdb-server ovsdb-server/compact _Server"
at_fn_check_prepare_trace "ovsdb-server.at:745"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/compact _Server
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "cannot compact built-in databases
ovs-appctl: ovsdb-server: server returned an error
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ovsdb-server.at:745"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

            if test "$IS_WIN32" = "no"; then
	{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:752: test -h db"
at_fn_check_prepare_trace "ovsdb-server.at:752"
( $at_check_trace; test -h db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:752"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

	{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:753: test -h .db.~lock~"
at_fn_check_prepare_trace "ovsdb-server.at:753"
( $at_check_trace; test -h .db.~lock~
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:753"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

	{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:754: test -f dir/db"
at_fn_check_prepare_trace "ovsdb-server.at:754"
( $at_check_trace; test -f dir/db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:754"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

	{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:755: test -f dir/.db.~lock~"
at_fn_check_prepare_trace "ovsdb-server.at:755"
( $at_check_trace; test -f dir/.db.~lock~
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:755"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

    fi

    # We can't fully re-check the contents of the database log, because the
    # order of the records is not predictable, but there should only be 4 lines
    # in it now in the standalone case

    compacted_lines=`wc -l < db`
    echo compacted_lines=$compacted_lines
    if test $model = standalone; then
        { set +x
$as_echo "$at_srcdir/ovsdb-server.at:765: test \$compacted_lines -eq 4"
at_fn_check_prepare_dynamic "test $compacted_lines -eq 4" "ovsdb-server.at:765"
( $at_check_trace; test $compacted_lines -eq 4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:765"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"db"
$at_traceon; }

    fi

        { set +x
$as_echo "$at_srcdir/ovsdb-server.at:769: ovsdb-client dump unix:socket ordinals"
at_fn_check_prepare_trace "ovsdb-server.at:769"
( $at_check_trace; ovsdb-client dump unix:socket ordinals
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:769"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"db"
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ovsdb-server.at:770: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-server.at:770"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ordinals table
_uuid                                name  number
------------------------------------ ----- ------
<0> five  5
<1> four  4
<2> one   1
<3> three 3
<4> two   2
<5> zero  0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:770"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"db"
$at_traceon; }

        { set +x
$as_echo "$at_srcdir/ovsdb-server.at:782: ovsdb-client transact unix:socket '
	 [\"ordinals\",
	  {\"op\": \"delete\",
	   \"table\": \"ordinals\",
	   \"where\": [[\"number\", \"<\", 3]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:782"
( $at_check_trace; ovsdb-client transact unix:socket '
	 ["ordinals",
	  {"op": "delete",
	   "table": "ordinals",
	   "where": [["number", "<", 3]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"count\":3}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:782"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"db"
$at_traceon; }


            updated_lines=`wc -l < db`
    echo compacted_lines=$compacted_lines updated_lines=$updated_lines
    if test $model = standalone; then
        { set +x
$as_echo "$at_srcdir/ovsdb-server.at:796: test \$updated_lines -eq 6"
at_fn_check_prepare_dynamic "test $updated_lines -eq 6" "ovsdb-server.at:796"
( $at_check_trace; test $updated_lines -eq 6
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:796"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"db"
$at_traceon; }

    else
        { set +x
$as_echo "$at_srcdir/ovsdb-server.at:798: test \$updated_lines -gt \$compacted_lines"
at_fn_check_prepare_dynamic "test $updated_lines -gt $compacted_lines" "ovsdb-server.at:798"
( $at_check_trace; test $updated_lines -gt $compacted_lines
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:798"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"db"
$at_traceon; }

    fi

                { set +x
$as_echo "$at_srcdir/ovsdb-server.at:804: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovsdb-server.at:804"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:804"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"db"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:804: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:804"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:804"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"db"
$at_traceon; }

   $as_echo "ovsdb-server.at:804: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:804: wait failed" >&5

    $as_echo "ovsdb-server.at:804" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:804"
fi

    { set +x
$as_echo "$at_srcdir/ovsdb-server.at:805: ovsdb-server -vvlog:off -vconsole:off --detach --no-chdir --pidfile --remote=punix:socket --log-file db"
at_fn_check_prepare_trace "ovsdb-server.at:805"
( $at_check_trace; ovsdb-server -vvlog:off -vconsole:off --detach --no-chdir --pidfile --remote=punix:socket --log-file db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:805"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"db"
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ovsdb-server.at:806: ovsdb-client dump unix:socket ordinals"
at_fn_check_prepare_trace "ovsdb-server.at:806"
( $at_check_trace; ovsdb-client dump unix:socket ordinals
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:806"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"db"
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ovsdb-server.at:807: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-server.at:807"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ordinals table
_uuid                                name  number
------------------------------------ ----- ------
<0> five  5
<1> four  4
<2> three 3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:807"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"db"
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ovsdb-server.at:815: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:815"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:815"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"db"
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:815: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:815"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:815"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"db"
$at_traceon; }

   $as_echo "ovsdb-server.at:815: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:815: wait failed" >&5

    $as_echo "ovsdb-server.at:815" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:815"
fi

}


# ovsdb_check_online_conversion MODEL
#
# where MODEL is "standalone" or "cluster"
ovsdb_check_online_conversion() {
    local model=$1
    on_exit 'kill `cat *.pid`'
    ordinal_schema > schema
    cat >new-schema <<'_ATEOF'
{"name": "ordinals",
     "tables": {
       "ordinals": {
	 "columns": {
	   "number": {"type": "integer"}}}}}
_ATEOF

                mkdir dir
    if test "$IS_WIN32" = "no"; then
	ln -s dir/db db
	ln -s dir/.db.~lock~ .db.~lock~
	$as_echo "ovsdb-server.at:851" >"$at_check_line_file"
(test ! -h db || test ! -h .db.~lock~) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:851"
    fi
    { set +x
$as_echo "$at_srcdir/ovsdb-server.at:853: if test \$model = standalone; then
                  ovsdb-tool create db schema
              else
                  ovsdb-tool create-cluster db schema unix:s1.raft
              fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:853"
( $at_check_trace; if test $model = standalone; then
                  ovsdb-tool create db schema
              else
                  ovsdb-tool create-cluster db schema unix:s1.raft
              fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:853"
$at_failed && at_fn_log_failure
$at_traceon; }


        { set +x
$as_echo "$at_srcdir/ovsdb-server.at:860: ovsdb-server -vfile -vvlog:off -vconsole:off --detach --no-chdir --pidfile --log-file --remote=punix:db.sock db"
at_fn_check_prepare_trace "ovsdb-server.at:860"
( $at_check_trace; ovsdb-server -vfile -vvlog:off -vconsole:off --detach --no-chdir --pidfile --log-file --remote=punix:db.sock db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:860"
$at_failed && at_fn_log_failure
$at_traceon; }



        { set +x
$as_echo "$at_srcdir/ovsdb-server.at:864: for pair in 'zero 0' 'one 1' 'two 2' 'three 3' 'four 4' 'five 5'; do
	  set -- \$pair
	  ovsdb-client transact '
	    [\"ordinals\",
	     {\"op\": \"insert\",
	      \"table\": \"ordinals\",
	      \"row\": {\"name\": \"'\$1'\", \"number\": '\$2'}},
	     {\"op\": \"comment\",
	      \"comment\": \"add row for '\"\$pair\"'\"}]'
	done | uuidfilt"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:864"
( $at_check_trace; for pair in 'zero 0' 'one 1' 'two 2' 'three 3' 'four 4' 'five 5'; do
	  set -- $pair
	  ovsdb-client transact '
	    ["ordinals",
	     {"op": "insert",
	      "table": "ordinals",
	      "row": {"name": "'$1'", "number": '$2'}},
	     {"op": "comment",
	      "comment": "add row for '"$pair"'"}]'
	done | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{}]
[{\"uuid\":[\"uuid\",\"<1>\"]},{}]
[{\"uuid\":[\"uuid\",\"<2>\"]},{}]
[{\"uuid\":[\"uuid\",\"<3>\"]},{}]
[{\"uuid\":[\"uuid\",\"<4>\"]},{}]
[{\"uuid\":[\"uuid\",\"<5>\"]},{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:864"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


        { set +x
$as_echo "$at_srcdir/ovsdb-server.at:884: ovsdb-client needs-conversion schema"
at_fn_check_prepare_trace "ovsdb-server.at:884"
( $at_check_trace; ovsdb-client needs-conversion schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "no
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:884"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ovsdb-server.at:886: ovsdb-client needs-conversion new-schema"
at_fn_check_prepare_trace "ovsdb-server.at:886"
( $at_check_trace; ovsdb-client needs-conversion new-schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "yes
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:886"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


            { set +x
$as_echo "$at_srcdir/ovsdb-server.at:891: ovsdb-client -vfile -vvlog:off --detach --pidfile=monitor-ordinals-aware.pid --log-file=monitor-ordinals-aware.log --db-change-aware --no-headings monitor ordinals ordinals number name > monitor-ordinals-aware.stdout 2> monitor-ordinals-aware.stderr"
at_fn_check_prepare_trace "ovsdb-server.at:891"
( $at_check_trace; ovsdb-client -vfile -vvlog:off --detach --pidfile=monitor-ordinals-aware.pid --log-file=monitor-ordinals-aware.log --db-change-aware --no-headings monitor ordinals ordinals number name > monitor-ordinals-aware.stdout 2> monitor-ordinals-aware.stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:891"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }





    { set +x
$as_echo "$at_srcdir/ovsdb-server.at:896: ovsdb-client -vfile -vvlog:off --detach --pidfile=monitor-ordinals-unaware.pid --log-file=monitor-ordinals-unaware.log --no-db-change-aware --no-headings monitor ordinals ordinals number name > monitor-ordinals-unaware.stdout 2> monitor-ordinals-unaware.stderr"
at_fn_check_prepare_trace "ovsdb-server.at:896"
( $at_check_trace; ovsdb-client -vfile -vvlog:off --detach --pidfile=monitor-ordinals-unaware.pid --log-file=monitor-ordinals-unaware.log --no-db-change-aware --no-headings monitor ordinals ordinals number name > monitor-ordinals-unaware.stdout 2> monitor-ordinals-unaware.stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:896"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr"
$at_traceon; }





            { set +x
$as_echo "$at_srcdir/ovsdb-server.at:903: ovsdb-client -vfile -vvlog:off --detach --pidfile=monitor-server-aware.pid --log-file=monitor-server-aware.log --db-change-aware --no-headings monitor _Server Database name > monitor-server-aware.stdout 2> monitor-server-aware.stderr"
at_fn_check_prepare_trace "ovsdb-server.at:903"
( $at_check_trace; ovsdb-client -vfile -vvlog:off --detach --pidfile=monitor-server-aware.pid --log-file=monitor-server-aware.log --db-change-aware --no-headings monitor _Server Database name > monitor-server-aware.stdout 2> monitor-server-aware.stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:903"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr"
$at_traceon; }





    { set +x
$as_echo "$at_srcdir/ovsdb-server.at:908: ovsdb-client -vfile -vvlog:off --detach --pidfile=monitor-server-unaware.pid --log-file=monitor-server-unaware.log --no-db-change-aware --no-headings monitor _Server Database name > monitor-server-unaware.stdout 2> monitor-server-unaware.stderr"
at_fn_check_prepare_trace "ovsdb-server.at:908"
( $at_check_trace; ovsdb-client -vfile -vvlog:off --detach --pidfile=monitor-server-unaware.pid --log-file=monitor-server-unaware.log --no-db-change-aware --no-headings monitor _Server Database name > monitor-server-unaware.stdout 2> monitor-server-unaware.stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:908"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr"
$at_traceon; }





            ordinals_txn='["ordinals",
		    {"op": "wait",
		     "table": "ordinals",
		     "where": [["name", "==", "seven"]],
		     "columns": ["name", "number"],
		     "rows": [],
		     "until": "!="}]'
    { set +x
$as_echo "$at_srcdir/ovsdb-server.at:922: ovsdb-client -vfile -vvlog:off --detach --pidfile=trigger-ordinals-aware.pid --log-file=trigger-ordinals-aware.log --db-change-aware transact \"\$ordinals_txn\"  > trigger-ordinals-aware.stdout 2> trigger-ordinals-aware.stderr"
at_fn_check_prepare_dynamic "ovsdb-client -vfile -vvlog:off --detach --pidfile=trigger-ordinals-aware.pid --log-file=trigger-ordinals-aware.log --db-change-aware transact \"$ordinals_txn\"  > trigger-ordinals-aware.stdout 2> trigger-ordinals-aware.stderr" "ovsdb-server.at:922"
( $at_check_trace; ovsdb-client -vfile -vvlog:off --detach --pidfile=trigger-ordinals-aware.pid --log-file=trigger-ordinals-aware.log --db-change-aware transact "$ordinals_txn"  > trigger-ordinals-aware.stdout 2> trigger-ordinals-aware.stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:922"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr" \
"monitor-server-unaware.stdout" \
"monitor-server-unaware.log" \
"monitor-server-unaware.stderr"
$at_traceon; }





    { set +x
$as_echo "$at_srcdir/ovsdb-server.at:927: ovsdb-client -vfile -vvlog:off --detach --pidfile=trigger-ordinals-unaware.pid --log-file=trigger-ordinals-unaware.log --no-db-change-aware transact  \"\$ordinals_txn\" > trigger-ordinals-unaware.stdout 2> trigger-ordinals-unaware.stderr"
at_fn_check_prepare_dynamic "ovsdb-client -vfile -vvlog:off --detach --pidfile=trigger-ordinals-unaware.pid --log-file=trigger-ordinals-unaware.log --no-db-change-aware transact  \"$ordinals_txn\" > trigger-ordinals-unaware.stdout 2> trigger-ordinals-unaware.stderr" "ovsdb-server.at:927"
( $at_check_trace; ovsdb-client -vfile -vvlog:off --detach --pidfile=trigger-ordinals-unaware.pid --log-file=trigger-ordinals-unaware.log --no-db-change-aware transact  "$ordinals_txn" > trigger-ordinals-unaware.stdout 2> trigger-ordinals-unaware.stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:927"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr" \
"monitor-server-unaware.stdout" \
"monitor-server-unaware.log" \
"monitor-server-unaware.stderr" \
"trigger-ordinals-aware.stdout" \
"trigger-ordinals-aware.log" \
"trigger-ordinals-aware.stderr"
$at_traceon; }





            server_txn='["_Server",
		  {"op": "wait",
		   "table": "Database",
		   "where": [["name", "==", "xyzzy"]],
		   "columns": ["name"],
		   "rows": [],
		   "until": "!="}]'
    { set +x
$as_echo "$at_srcdir/ovsdb-server.at:941: ovsdb-client -vfile -vvlog:off --detach --pidfile=trigger-server-aware.pid --log-file=trigger-server-aware.log --db-change-aware transact \"\$server_txn\"  > trigger-server-aware.stdout 2> trigger-server-aware.stderr"
at_fn_check_prepare_dynamic "ovsdb-client -vfile -vvlog:off --detach --pidfile=trigger-server-aware.pid --log-file=trigger-server-aware.log --db-change-aware transact \"$server_txn\"  > trigger-server-aware.stdout 2> trigger-server-aware.stderr" "ovsdb-server.at:941"
( $at_check_trace; ovsdb-client -vfile -vvlog:off --detach --pidfile=trigger-server-aware.pid --log-file=trigger-server-aware.log --db-change-aware transact "$server_txn"  > trigger-server-aware.stdout 2> trigger-server-aware.stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:941"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr" \
"monitor-server-unaware.stdout" \
"monitor-server-unaware.log" \
"monitor-server-unaware.stderr" \
"trigger-ordinals-aware.stdout" \
"trigger-ordinals-aware.log" \
"trigger-ordinals-aware.stderr" \
"trigger-ordinals-unaware.stdout" \
"trigger-ordinals-unaware.log" \
"trigger-ordinals-unaware.stderr"
$at_traceon; }





    { set +x
$as_echo "$at_srcdir/ovsdb-server.at:946: ovsdb-client -vfile -vvlog:off --detach --pidfile=trigger-server-unaware.pid --log-file=trigger-server-unaware.log --no-db-change-aware transact  \"\$server_txn\" > trigger-server-unaware.stdout 2> trigger-server-unaware.stderr"
at_fn_check_prepare_dynamic "ovsdb-client -vfile -vvlog:off --detach --pidfile=trigger-server-unaware.pid --log-file=trigger-server-unaware.log --no-db-change-aware transact  \"$server_txn\" > trigger-server-unaware.stdout 2> trigger-server-unaware.stderr" "ovsdb-server.at:946"
( $at_check_trace; ovsdb-client -vfile -vvlog:off --detach --pidfile=trigger-server-unaware.pid --log-file=trigger-server-unaware.log --no-db-change-aware transact  "$server_txn" > trigger-server-unaware.stdout 2> trigger-server-unaware.stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:946"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr" \
"monitor-server-unaware.stdout" \
"monitor-server-unaware.log" \
"monitor-server-unaware.stderr" \
"trigger-ordinals-aware.stdout" \
"trigger-ordinals-aware.log" \
"trigger-ordinals-aware.stderr" \
"trigger-ordinals-unaware.stdout" \
"trigger-ordinals-unaware.log" \
"trigger-ordinals-unaware.stderr" \
"trigger-server-aware.stdout" \
"trigger-server-aware.log" \
"trigger-server-aware.stderr"
$at_traceon; }





        { set +x
$as_echo "$at_srcdir/ovsdb-server.at:952: ovsdb-client dump unix:db.sock ordinals"
at_fn_check_prepare_trace "ovsdb-server.at:952"
( $at_check_trace; ovsdb-client dump unix:db.sock ordinals
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:952"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr" \
"monitor-server-unaware.stdout" \
"monitor-server-unaware.log" \
"monitor-server-unaware.stderr" \
"trigger-ordinals-aware.stdout" \
"trigger-ordinals-aware.log" \
"trigger-ordinals-aware.stderr" \
"trigger-ordinals-unaware.stdout" \
"trigger-ordinals-unaware.log" \
"trigger-ordinals-unaware.stderr" \
"trigger-server-aware.stdout" \
"trigger-server-aware.log" \
"trigger-server-aware.stderr" \
"trigger-server-unaware.stdout" \
"trigger-server-unaware.log" \
"trigger-server-unaware.stderr"
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ovsdb-server.at:953: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-server.at:953"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ordinals table
_uuid                                name  number
------------------------------------ ----- ------
<0> five  5
<1> four  4
<2> one   1
<3> three 3
<4> two   2
<5> zero  0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:953"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr" \
"monitor-server-unaware.stdout" \
"monitor-server-unaware.log" \
"monitor-server-unaware.stderr" \
"trigger-ordinals-aware.stdout" \
"trigger-ordinals-aware.log" \
"trigger-ordinals-aware.stderr" \
"trigger-ordinals-unaware.stdout" \
"trigger-ordinals-unaware.log" \
"trigger-ordinals-unaware.stderr" \
"trigger-server-aware.stdout" \
"trigger-server-aware.log" \
"trigger-server-aware.stderr" \
"trigger-server-unaware.stdout" \
"trigger-server-unaware.log" \
"trigger-server-unaware.stderr"
$at_traceon; }


        { set +x
$as_echo "$at_srcdir/ovsdb-server.at:966: ovsdb-client convert new-schema"
at_fn_check_prepare_trace "ovsdb-server.at:966"
( $at_check_trace; ovsdb-client convert new-schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:966"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr" \
"monitor-server-unaware.stdout" \
"monitor-server-unaware.log" \
"monitor-server-unaware.stderr" \
"trigger-ordinals-aware.stdout" \
"trigger-ordinals-aware.log" \
"trigger-ordinals-aware.stderr" \
"trigger-ordinals-unaware.stdout" \
"trigger-ordinals-unaware.log" \
"trigger-ordinals-unaware.stderr" \
"trigger-server-aware.stdout" \
"trigger-server-aware.log" \
"trigger-server-aware.stderr" \
"trigger-server-unaware.stdout" \
"trigger-server-unaware.log" \
"trigger-server-unaware.stderr"
$at_traceon; }


        { set +x
$as_echo "$at_srcdir/ovsdb-server.at:969: ovsdb-client needs-conversion schema"
at_fn_check_prepare_trace "ovsdb-server.at:969"
( $at_check_trace; ovsdb-client needs-conversion schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "yes
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:969"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr" \
"monitor-server-unaware.stdout" \
"monitor-server-unaware.log" \
"monitor-server-unaware.stderr" \
"trigger-ordinals-aware.stdout" \
"trigger-ordinals-aware.log" \
"trigger-ordinals-aware.stderr" \
"trigger-ordinals-unaware.stdout" \
"trigger-ordinals-unaware.log" \
"trigger-ordinals-unaware.stderr" \
"trigger-server-aware.stdout" \
"trigger-server-aware.log" \
"trigger-server-aware.stderr" \
"trigger-server-unaware.stdout" \
"trigger-server-unaware.log" \
"trigger-server-unaware.stderr"
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ovsdb-server.at:971: ovsdb-client needs-conversion new-schema"
at_fn_check_prepare_trace "ovsdb-server.at:971"
( $at_check_trace; ovsdb-client needs-conversion new-schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "no
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:971"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr" \
"monitor-server-unaware.stdout" \
"monitor-server-unaware.log" \
"monitor-server-unaware.stderr" \
"trigger-ordinals-aware.stdout" \
"trigger-ordinals-aware.log" \
"trigger-ordinals-aware.stderr" \
"trigger-ordinals-unaware.stdout" \
"trigger-ordinals-unaware.log" \
"trigger-ordinals-unaware.stderr" \
"trigger-server-aware.stdout" \
"trigger-server-aware.log" \
"trigger-server-aware.stderr" \
"trigger-server-unaware.stdout" \
"trigger-server-unaware.log" \
"trigger-server-unaware.stderr"
$at_traceon; }


            for x in aware unaware; do
	echo $x
	$as_echo "ovsdb-server.at:978: waiting while test -e monitor-ordinals-\$x.pid..." >&5
ovs_wait_cond () {
    if test -e monitor-ordinals-$x.pid; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:978: wait failed" >&5

    $as_echo "ovsdb-server.at:978" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:978"
fi

	{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:979: sort -k 3 monitor-ordinals-\$x.stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-server.at:979"
( $at_check_trace; sort -k 3 monitor-ordinals-$x.stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<0> initial 0 zero
<1> initial 1 one
<2> initial 2 two
<3> initial 3 three
<4> initial 4 four
<5> initial 5 five
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:979"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr" \
"monitor-server-unaware.stdout" \
"monitor-server-unaware.log" \
"monitor-server-unaware.stderr" \
"trigger-ordinals-aware.stdout" \
"trigger-ordinals-aware.log" \
"trigger-ordinals-aware.stderr" \
"trigger-ordinals-unaware.stdout" \
"trigger-ordinals-unaware.log" \
"trigger-ordinals-unaware.stderr" \
"trigger-server-aware.stdout" \
"trigger-server-aware.log" \
"trigger-server-aware.stderr" \
"trigger-server-unaware.stdout" \
"trigger-server-unaware.log" \
"trigger-server-unaware.stderr"
$at_traceon; }

    done
    { set +x
$as_echo "$at_srcdir/ovsdb-server.at:988: sed 's/.*: //' monitor-ordinals-unaware.stderr"
at_fn_check_prepare_trace "ovsdb-server.at:988"
( $at_check_trace; sed 's/.*: //' monitor-ordinals-unaware.stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "receive failed (End of file)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:988"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr" \
"monitor-server-unaware.stdout" \
"monitor-server-unaware.log" \
"monitor-server-unaware.stderr" \
"trigger-ordinals-aware.stdout" \
"trigger-ordinals-aware.log" \
"trigger-ordinals-aware.stderr" \
"trigger-ordinals-unaware.stdout" \
"trigger-ordinals-unaware.log" \
"trigger-ordinals-unaware.stderr" \
"trigger-server-aware.stdout" \
"trigger-server-aware.log" \
"trigger-server-aware.stderr" \
"trigger-server-unaware.stdout" \
"trigger-server-unaware.log" \
"trigger-server-unaware.stderr"
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ovsdb-server.at:990: sed 's/.*: //' monitor-ordinals-aware.stderr"
at_fn_check_prepare_trace "ovsdb-server.at:990"
( $at_check_trace; sed 's/.*: //' monitor-ordinals-aware.stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ordinals database was removed
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:990"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr" \
"monitor-server-unaware.stdout" \
"monitor-server-unaware.log" \
"monitor-server-unaware.stderr" \
"trigger-ordinals-aware.stdout" \
"trigger-ordinals-aware.log" \
"trigger-ordinals-aware.stderr" \
"trigger-ordinals-unaware.stdout" \
"trigger-ordinals-unaware.log" \
"trigger-ordinals-unaware.stderr" \
"trigger-server-aware.stdout" \
"trigger-server-aware.log" \
"trigger-server-aware.stderr" \
"trigger-server-unaware.stdout" \
"trigger-server-unaware.log" \
"trigger-server-unaware.stderr"
$at_traceon; }


            for x in aware unaware; do
	{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:996: sort -k 3 monitor-server-\$x.stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-server.at:996"
( $at_check_trace; sort -k 3 monitor-server-$x.stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<0> initial _Server
<1> initial ordinals
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:996"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr" \
"monitor-server-unaware.stdout" \
"monitor-server-unaware.log" \
"monitor-server-unaware.stderr" \
"trigger-ordinals-aware.stdout" \
"trigger-ordinals-aware.log" \
"trigger-ordinals-aware.stderr" \
"trigger-ordinals-unaware.stdout" \
"trigger-ordinals-unaware.log" \
"trigger-ordinals-unaware.stderr" \
"trigger-server-aware.stdout" \
"trigger-server-aware.log" \
"trigger-server-aware.stderr" \
"trigger-server-unaware.stdout" \
"trigger-server-unaware.log" \
"trigger-server-unaware.stderr"
$at_traceon; }

    done
    $as_echo "ovsdb-server.at:1001: waiting while test -e monitor-server-unaware.pid..." >&5
ovs_wait_cond () {
    if test -e monitor-server-unaware.pid; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1001: wait failed" >&5

    $as_echo "ovsdb-server.at:1001" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1001"
fi

    { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1002: sed 's/.*: //' monitor-ordinals-unaware.stderr"
at_fn_check_prepare_trace "ovsdb-server.at:1002"
( $at_check_trace; sed 's/.*: //' monitor-ordinals-unaware.stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "receive failed (End of file)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1002"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr" \
"monitor-server-unaware.stdout" \
"monitor-server-unaware.log" \
"monitor-server-unaware.stderr" \
"trigger-ordinals-aware.stdout" \
"trigger-ordinals-aware.log" \
"trigger-ordinals-aware.stderr" \
"trigger-ordinals-unaware.stdout" \
"trigger-ordinals-unaware.log" \
"trigger-ordinals-unaware.stderr" \
"trigger-server-aware.stdout" \
"trigger-server-aware.log" \
"trigger-server-aware.stderr" \
"trigger-server-unaware.stdout" \
"trigger-server-unaware.log" \
"trigger-server-unaware.stderr"
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1004: test -e monitor-server-aware.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1004"
( $at_check_trace; test -e monitor-server-aware.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1004"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr" \
"monitor-server-unaware.stdout" \
"monitor-server-unaware.log" \
"monitor-server-unaware.stderr" \
"trigger-ordinals-aware.stdout" \
"trigger-ordinals-aware.log" \
"trigger-ordinals-aware.stderr" \
"trigger-ordinals-unaware.stdout" \
"trigger-ordinals-unaware.log" \
"trigger-ordinals-unaware.stderr" \
"trigger-server-aware.stdout" \
"trigger-server-aware.log" \
"trigger-server-aware.stderr" \
"trigger-server-unaware.stdout" \
"trigger-server-unaware.log" \
"trigger-server-unaware.stderr"
$at_traceon; }


            for x in unaware aware; do
	$as_echo "ovsdb-server.at:1009: waiting while test -e trigger-ordinals-\$x.pid..." >&5
ovs_wait_cond () {
    if test -e trigger-ordinals-$x.pid; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1009: wait failed" >&5

    $as_echo "ovsdb-server.at:1009" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1009"
fi

	{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1010: cat trigger-ordinals-\$x.stdout"
at_fn_check_prepare_dynamic "cat trigger-ordinals-$x.stdout" "ovsdb-server.at:1010"
( $at_check_trace; cat trigger-ordinals-$x.stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1010"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr" \
"monitor-server-unaware.stdout" \
"monitor-server-unaware.log" \
"monitor-server-unaware.stderr" \
"trigger-ordinals-aware.stdout" \
"trigger-ordinals-aware.log" \
"trigger-ordinals-aware.stderr" \
"trigger-ordinals-unaware.stdout" \
"trigger-ordinals-unaware.log" \
"trigger-ordinals-unaware.stderr" \
"trigger-server-aware.stdout" \
"trigger-server-aware.log" \
"trigger-server-aware.stderr" \
"trigger-server-unaware.stdout" \
"trigger-server-unaware.log" \
"trigger-server-unaware.stderr"
$at_traceon; }

    done
    { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1012: cat trigger-ordinals-unaware.stderr"
at_fn_check_prepare_trace "ovsdb-server.at:1012"
( $at_check_trace; cat trigger-ordinals-unaware.stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ovsdb-client: transaction failed (End of file)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1012"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr" \
"monitor-server-unaware.stdout" \
"monitor-server-unaware.log" \
"monitor-server-unaware.stderr" \
"trigger-ordinals-aware.stdout" \
"trigger-ordinals-aware.log" \
"trigger-ordinals-aware.stderr" \
"trigger-ordinals-unaware.stdout" \
"trigger-ordinals-unaware.log" \
"trigger-ordinals-unaware.stderr" \
"trigger-server-aware.stdout" \
"trigger-server-aware.log" \
"trigger-server-aware.stderr" \
"trigger-server-unaware.stdout" \
"trigger-server-unaware.log" \
"trigger-server-unaware.stderr"
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1014: cat trigger-ordinals-aware.stderr"
at_fn_check_prepare_trace "ovsdb-server.at:1014"
( $at_check_trace; cat trigger-ordinals-aware.stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ovsdb-client: transaction returned error: \"canceled\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1014"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr" \
"monitor-server-unaware.stdout" \
"monitor-server-unaware.log" \
"monitor-server-unaware.stderr" \
"trigger-ordinals-aware.stdout" \
"trigger-ordinals-aware.log" \
"trigger-ordinals-aware.stderr" \
"trigger-ordinals-unaware.stdout" \
"trigger-ordinals-unaware.log" \
"trigger-ordinals-unaware.stderr" \
"trigger-server-aware.stdout" \
"trigger-server-aware.log" \
"trigger-server-aware.stderr" \
"trigger-server-unaware.stdout" \
"trigger-server-unaware.log" \
"trigger-server-unaware.stderr"
$at_traceon; }


            for x in aware unaware; do
	{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1020: cat trigger-server-\$x.stdout"
at_fn_check_prepare_dynamic "cat trigger-server-$x.stdout" "ovsdb-server.at:1020"
( $at_check_trace; cat trigger-server-$x.stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1020"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr" \
"monitor-server-unaware.stdout" \
"monitor-server-unaware.log" \
"monitor-server-unaware.stderr" \
"trigger-ordinals-aware.stdout" \
"trigger-ordinals-aware.log" \
"trigger-ordinals-aware.stderr" \
"trigger-ordinals-unaware.stdout" \
"trigger-ordinals-unaware.log" \
"trigger-ordinals-unaware.stderr" \
"trigger-server-aware.stdout" \
"trigger-server-aware.log" \
"trigger-server-aware.stderr" \
"trigger-server-unaware.stdout" \
"trigger-server-unaware.log" \
"trigger-server-unaware.stderr"
$at_traceon; }

    done
    $as_echo "ovsdb-server.at:1022: waiting while test -e trigger-server-unaware.pid..." >&5
ovs_wait_cond () {
    if test -e trigger-server-unaware.pid; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1022: wait failed" >&5

    $as_echo "ovsdb-server.at:1022" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1022"
fi

    { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1023: sed 's/.*: //' trigger-ordinals-unaware.stderr"
at_fn_check_prepare_trace "ovsdb-server.at:1023"
( $at_check_trace; sed 's/.*: //' trigger-ordinals-unaware.stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "transaction failed (End of file)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1023"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr" \
"monitor-server-unaware.stdout" \
"monitor-server-unaware.log" \
"monitor-server-unaware.stderr" \
"trigger-ordinals-aware.stdout" \
"trigger-ordinals-aware.log" \
"trigger-ordinals-aware.stderr" \
"trigger-ordinals-unaware.stdout" \
"trigger-ordinals-unaware.log" \
"trigger-ordinals-unaware.stderr" \
"trigger-server-aware.stdout" \
"trigger-server-aware.log" \
"trigger-server-aware.stderr" \
"trigger-server-unaware.stdout" \
"trigger-server-unaware.log" \
"trigger-server-unaware.stderr"
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1025: test -e trigger-server-aware.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1025"
( $at_check_trace; test -e trigger-server-aware.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1025"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr" \
"monitor-server-unaware.stdout" \
"monitor-server-unaware.log" \
"monitor-server-unaware.stderr" \
"trigger-ordinals-aware.stdout" \
"trigger-ordinals-aware.log" \
"trigger-ordinals-aware.stderr" \
"trigger-ordinals-unaware.stdout" \
"trigger-ordinals-unaware.log" \
"trigger-ordinals-unaware.stderr" \
"trigger-server-aware.stdout" \
"trigger-server-aware.log" \
"trigger-server-aware.stderr" \
"trigger-server-unaware.stdout" \
"trigger-server-unaware.log" \
"trigger-server-unaware.stderr"
$at_traceon; }



    if test $model = standalone; then
				{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1032: test \`wc -l < db\` -eq 4"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1032"
( $at_check_trace; test `wc -l < db` -eq 4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1032"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr" \
"monitor-server-unaware.stdout" \
"monitor-server-unaware.log" \
"monitor-server-unaware.stderr" \
"trigger-ordinals-aware.stdout" \
"trigger-ordinals-aware.log" \
"trigger-ordinals-aware.stderr" \
"trigger-ordinals-unaware.stdout" \
"trigger-ordinals-unaware.log" \
"trigger-ordinals-unaware.stderr" \
"trigger-server-aware.stdout" \
"trigger-server-aware.log" \
"trigger-server-aware.stderr" \
"trigger-server-unaware.stdout" \
"trigger-server-unaware.log" \
"trigger-server-unaware.stderr" \
"db"
$at_traceon; }

    fi
        { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1035: ovsdb-client dump unix:db.sock ordinals | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-server.at:1035"
( $at_check_trace; ovsdb-client dump unix:db.sock ordinals | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ordinals table
_uuid                                number
------------------------------------ ------
<0> 0
<1> 1
<2> 2
<3> 3
<4> 4
<5> 5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1035"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr" \
"monitor-server-unaware.stdout" \
"monitor-server-unaware.log" \
"monitor-server-unaware.stderr" \
"trigger-ordinals-aware.stdout" \
"trigger-ordinals-aware.log" \
"trigger-ordinals-aware.stderr" \
"trigger-ordinals-unaware.stdout" \
"trigger-ordinals-unaware.log" \
"trigger-ordinals-unaware.stderr" \
"trigger-server-aware.stdout" \
"trigger-server-aware.log" \
"trigger-server-aware.stderr" \
"trigger-server-unaware.stdout" \
"trigger-server-unaware.log" \
"trigger-server-unaware.stderr" \
"db"
$at_traceon; }

                { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1049: ovsdb-client transact '
	 [\"ordinals\",
	  {\"op\": \"insert\",
	   \"table\": \"ordinals\",
	   \"row\": {\"number\": 6}},
	  {\"op\": \"comment\",
	   \"comment\": \"add row for 6\"}]' | uuidfilt"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1049"
( $at_check_trace; ovsdb-client transact '
	 ["ordinals",
	  {"op": "insert",
	   "table": "ordinals",
	   "row": {"number": 6}},
	  {"op": "comment",
	   "comment": "add row for 6"}]' | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1049"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr" \
"monitor-server-unaware.stdout" \
"monitor-server-unaware.log" \
"monitor-server-unaware.stderr" \
"trigger-ordinals-aware.stdout" \
"trigger-ordinals-aware.log" \
"trigger-ordinals-aware.stderr" \
"trigger-ordinals-unaware.stdout" \
"trigger-ordinals-unaware.log" \
"trigger-ordinals-unaware.stderr" \
"trigger-server-aware.stdout" \
"trigger-server-aware.log" \
"trigger-server-aware.stderr" \
"trigger-server-unaware.stdout" \
"trigger-server-unaware.log" \
"trigger-server-unaware.stderr" \
"db"
$at_traceon; }

    if test $model = standalone; then
        { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1060: test \`wc -l < db\` -eq 6"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1060"
( $at_check_trace; test `wc -l < db` -eq 6
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1060"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr" \
"monitor-server-unaware.stdout" \
"monitor-server-unaware.log" \
"monitor-server-unaware.stderr" \
"trigger-ordinals-aware.stdout" \
"trigger-ordinals-aware.log" \
"trigger-ordinals-aware.stderr" \
"trigger-ordinals-unaware.stdout" \
"trigger-ordinals-unaware.log" \
"trigger-ordinals-unaware.stderr" \
"trigger-server-aware.stdout" \
"trigger-server-aware.log" \
"trigger-server-aware.stderr" \
"trigger-server-unaware.stdout" \
"trigger-server-unaware.log" \
"trigger-server-unaware.stderr" \
"db"
$at_traceon; }

    fi
    { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1062: ovsdb-client dump unix:db.sock ordinals | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-server.at:1062"
( $at_check_trace; ovsdb-client dump unix:db.sock ordinals | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ordinals table
_uuid                                number
------------------------------------ ------
<0> 0
<1> 1
<2> 2
<3> 3
<4> 4
<5> 5
<6> 6
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1062"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr" \
"monitor-server-unaware.stdout" \
"monitor-server-unaware.log" \
"monitor-server-unaware.stderr" \
"trigger-ordinals-aware.stdout" \
"trigger-ordinals-aware.log" \
"trigger-ordinals-aware.stderr" \
"trigger-ordinals-unaware.stdout" \
"trigger-ordinals-unaware.log" \
"trigger-ordinals-unaware.stderr" \
"trigger-server-aware.stdout" \
"trigger-server-aware.log" \
"trigger-server-aware.stderr" \
"trigger-server-unaware.stdout" \
"trigger-server-unaware.log" \
"trigger-server-unaware.stderr" \
"db"
$at_traceon; }

            { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1076: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovsdb-server.at:1076"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1076"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr" \
"monitor-server-unaware.stdout" \
"monitor-server-unaware.log" \
"monitor-server-unaware.stderr" \
"trigger-ordinals-aware.stdout" \
"trigger-ordinals-aware.log" \
"trigger-ordinals-aware.stderr" \
"trigger-ordinals-unaware.stdout" \
"trigger-ordinals-unaware.log" \
"trigger-ordinals-unaware.stderr" \
"trigger-server-aware.stdout" \
"trigger-server-aware.log" \
"trigger-server-aware.stderr" \
"trigger-server-unaware.stdout" \
"trigger-server-unaware.log" \
"trigger-server-unaware.stderr" \
"db"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1076: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1076"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1076"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr" \
"monitor-server-unaware.stdout" \
"monitor-server-unaware.log" \
"monitor-server-unaware.stderr" \
"trigger-ordinals-aware.stdout" \
"trigger-ordinals-aware.log" \
"trigger-ordinals-aware.stderr" \
"trigger-ordinals-unaware.stdout" \
"trigger-ordinals-unaware.log" \
"trigger-ordinals-unaware.stderr" \
"trigger-server-aware.stdout" \
"trigger-server-aware.log" \
"trigger-server-aware.stderr" \
"trigger-server-unaware.stdout" \
"trigger-server-unaware.log" \
"trigger-server-unaware.stderr" \
"db"
$at_traceon; }

   $as_echo "ovsdb-server.at:1076: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1076: wait failed" >&5

    $as_echo "ovsdb-server.at:1076" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1076"
fi

    { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1077: ovsdb-server -vfile -vvlog:off -vconsole:off --detach --no-chdir --pidfile --log-file --remote=punix:db.sock db"
at_fn_check_prepare_trace "ovsdb-server.at:1077"
( $at_check_trace; ovsdb-server -vfile -vvlog:off -vconsole:off --detach --no-chdir --pidfile --log-file --remote=punix:db.sock db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1077"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr" \
"monitor-server-unaware.stdout" \
"monitor-server-unaware.log" \
"monitor-server-unaware.stderr" \
"trigger-ordinals-aware.stdout" \
"trigger-ordinals-aware.log" \
"trigger-ordinals-aware.stderr" \
"trigger-ordinals-unaware.stdout" \
"trigger-ordinals-unaware.log" \
"trigger-ordinals-unaware.stderr" \
"trigger-server-aware.stdout" \
"trigger-server-aware.log" \
"trigger-server-aware.stderr" \
"trigger-server-unaware.stdout" \
"trigger-server-unaware.log" \
"trigger-server-unaware.stderr" \
"db"
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1079: ovsdb-client dump unix:db.sock ordinals | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-server.at:1079"
( $at_check_trace; ovsdb-client dump unix:db.sock ordinals | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ordinals table
_uuid                                number
------------------------------------ ------
<0> 0
<1> 1
<2> 2
<3> 3
<4> 4
<5> 5
<6> 6
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1079"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr" \
"monitor-server-unaware.stdout" \
"monitor-server-unaware.log" \
"monitor-server-unaware.stderr" \
"trigger-ordinals-aware.stdout" \
"trigger-ordinals-aware.log" \
"trigger-ordinals-aware.stderr" \
"trigger-ordinals-unaware.stdout" \
"trigger-ordinals-unaware.log" \
"trigger-ordinals-unaware.stderr" \
"trigger-server-aware.stdout" \
"trigger-server-aware.log" \
"trigger-server-aware.stderr" \
"trigger-server-unaware.stdout" \
"trigger-server-unaware.log" \
"trigger-server-unaware.stderr" \
"db"
$at_traceon; }


            if test "$IS_WIN32" = "no"; then
	{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1095: test -h db"
at_fn_check_prepare_trace "ovsdb-server.at:1095"
( $at_check_trace; test -h db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1095"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr" \
"monitor-server-unaware.stdout" \
"monitor-server-unaware.log" \
"monitor-server-unaware.stderr" \
"trigger-ordinals-aware.stdout" \
"trigger-ordinals-aware.log" \
"trigger-ordinals-aware.stderr" \
"trigger-ordinals-unaware.stdout" \
"trigger-ordinals-unaware.log" \
"trigger-ordinals-unaware.stderr" \
"trigger-server-aware.stdout" \
"trigger-server-aware.log" \
"trigger-server-aware.stderr" \
"trigger-server-unaware.stdout" \
"trigger-server-unaware.log" \
"trigger-server-unaware.stderr" \
"db"
$at_traceon; }

	{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1096: test -h .db.~lock~"
at_fn_check_prepare_trace "ovsdb-server.at:1096"
( $at_check_trace; test -h .db.~lock~
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1096"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr" \
"monitor-server-unaware.stdout" \
"monitor-server-unaware.log" \
"monitor-server-unaware.stderr" \
"trigger-ordinals-aware.stdout" \
"trigger-ordinals-aware.log" \
"trigger-ordinals-aware.stderr" \
"trigger-ordinals-unaware.stdout" \
"trigger-ordinals-unaware.log" \
"trigger-ordinals-unaware.stderr" \
"trigger-server-aware.stdout" \
"trigger-server-aware.log" \
"trigger-server-aware.stderr" \
"trigger-server-unaware.stdout" \
"trigger-server-unaware.log" \
"trigger-server-unaware.stderr" \
"db"
$at_traceon; }

	{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1097: test -f dir/db"
at_fn_check_prepare_trace "ovsdb-server.at:1097"
( $at_check_trace; test -f dir/db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1097"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr" \
"monitor-server-unaware.stdout" \
"monitor-server-unaware.log" \
"monitor-server-unaware.stderr" \
"trigger-ordinals-aware.stdout" \
"trigger-ordinals-aware.log" \
"trigger-ordinals-aware.stderr" \
"trigger-ordinals-unaware.stdout" \
"trigger-ordinals-unaware.log" \
"trigger-ordinals-unaware.stderr" \
"trigger-server-aware.stdout" \
"trigger-server-aware.log" \
"trigger-server-aware.stderr" \
"trigger-server-unaware.stdout" \
"trigger-server-unaware.log" \
"trigger-server-unaware.stderr" \
"db"
$at_traceon; }

	{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1098: test -f dir/.db.~lock~"
at_fn_check_prepare_trace "ovsdb-server.at:1098"
( $at_check_trace; test -f dir/.db.~lock~
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1098"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr" \
"monitor-server-unaware.stdout" \
"monitor-server-unaware.log" \
"monitor-server-unaware.stderr" \
"trigger-ordinals-aware.stdout" \
"trigger-ordinals-aware.log" \
"trigger-ordinals-aware.stderr" \
"trigger-ordinals-unaware.stdout" \
"trigger-ordinals-unaware.log" \
"trigger-ordinals-unaware.stderr" \
"trigger-server-aware.stdout" \
"trigger-server-aware.log" \
"trigger-server-aware.stderr" \
"trigger-server-unaware.stdout" \
"trigger-server-unaware.log" \
"trigger-server-unaware.stderr" \
"db"
$at_traceon; }

    fi

    { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1101: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovsdb-server.at:1101"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1101"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr" \
"monitor-server-unaware.stdout" \
"monitor-server-unaware.log" \
"monitor-server-unaware.stderr" \
"trigger-ordinals-aware.stdout" \
"trigger-ordinals-aware.log" \
"trigger-ordinals-aware.stderr" \
"trigger-ordinals-unaware.stdout" \
"trigger-ordinals-unaware.log" \
"trigger-ordinals-unaware.stderr" \
"trigger-server-aware.stdout" \
"trigger-server-aware.log" \
"trigger-server-aware.stderr" \
"trigger-server-unaware.stdout" \
"trigger-server-unaware.log" \
"trigger-server-unaware.stderr" \
"db"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1101: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1101"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1101"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"monitor-ordinals-aware.stdout" \
"monitor-ordinals-aware.log" \
"monitor-ordinals-aware.stderr" \
"monitor-ordinals-unaware.stdout" \
"monitor-ordinals-unaware.log" \
"monitor-ordinals-unaware.stderr" \
"monitor-server-aware.stdout" \
"monitor-server-aware.log" \
"monitor-server-aware.stderr" \
"monitor-server-unaware.stdout" \
"monitor-server-unaware.log" \
"monitor-server-unaware.stderr" \
"trigger-ordinals-aware.stdout" \
"trigger-ordinals-aware.log" \
"trigger-ordinals-aware.stderr" \
"trigger-ordinals-unaware.stdout" \
"trigger-ordinals-unaware.log" \
"trigger-ordinals-unaware.stderr" \
"trigger-server-aware.stdout" \
"trigger-server-aware.log" \
"trigger-server-aware.stderr" \
"trigger-server-unaware.stdout" \
"trigger-server-unaware.log" \
"trigger-server-unaware.stderr" \
"db"
$at_traceon; }

   $as_echo "ovsdb-server.at:1101: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1101: wait failed" >&5

    $as_echo "ovsdb-server.at:1101" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1101"
fi

}


# ovsdb_check_monitor SCHEMA_FUNC DB TABLE OUTPUT COLUMNS
#                     PRE-MONITOR-TXN... -- TRANSACTION...
ovsdb_check_monitor () {
    local schema_func=$1 db=$2 table=$3 output=$4 columns=$5
    shift; shift; shift; shift; shift
    $schema_func > schema
    { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:10: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-monitor.at:10"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:10"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

    while test "$1" != "--"; do
	{ set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:12: ovsdb-tool transact db \"\$1\""
at_fn_check_prepare_dynamic "ovsdb-tool transact db \"$1\"" "ovsdb-monitor.at:12"
( $at_check_trace; ovsdb-tool transact db "$1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:12"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

	shift
    done
    shift
    { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:16: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket --log-file db > ovsdb-server.stdout 2> ovsdb-server.stderr"
at_fn_check_prepare_trace "ovsdb-monitor.at:16"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket --log-file db > ovsdb-server.stdout 2> ovsdb-server.stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:16"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

    on_exit 'kill `cat ovsdb-server.pid`'
    if test "$IS_WIN32" = "yes"; then
      { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:20: ovsdb-client -vjsonrpc --pidfile --log-file -d json monitor --format=csv unix:socket \$db \$table \$columns > output 2> ovsdb-client.stderr &"
at_fn_check_prepare_dynamic "ovsdb-client -vjsonrpc --pidfile --log-file -d json monitor --format=csv unix:socket $db $table $columns > output 2> ovsdb-client.stderr &" "ovsdb-monitor.at:20"
( $at_check_trace; ovsdb-client -vjsonrpc --pidfile --log-file -d json monitor --format=csv unix:socket $db $table $columns > output 2> ovsdb-client.stderr &
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:20"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

      sleep 1
    else
      { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:24: ovsdb-client -vjsonrpc --detach --pidfile --log-file -d json monitor --format=csv unix:socket \$db \$table \$columns > output 2> ovsdb-client.stderr"
at_fn_check_prepare_dynamic "ovsdb-client -vjsonrpc --detach --pidfile --log-file -d json monitor --format=csv unix:socket $db $table $columns > output 2> ovsdb-client.stderr" "ovsdb-monitor.at:24"
( $at_check_trace; ovsdb-client -vjsonrpc --detach --pidfile --log-file -d json monitor --format=csv unix:socket $db $table $columns > output 2> ovsdb-client.stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:24"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

    fi
    on_exit 'kill `cat ovsdb-client.pid`'
    for txn in ${1+"$@"} '["'$db'"]'; do
      { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:29: ovsdb-client transact unix:socket \"\$txn\""
at_fn_check_prepare_dynamic "ovsdb-client transact unix:socket \"$txn\"" "ovsdb-monitor.at:29"
( $at_check_trace; ovsdb-client transact unix:socket "$txn"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:29"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

    done
    { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:31: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-monitor.at:31"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:31"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:31: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-monitor.at:31"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:31"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   $as_echo "ovsdb-monitor.at:31: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-monitor.at:31: wait failed" >&5

    $as_echo "ovsdb-monitor.at:31" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-monitor.at:31"
fi

    $as_echo "ovsdb-monitor.at:32: waiting until test ! -e ovsdb-client.pid..." >&5
ovs_wait_cond () {
    test ! -e ovsdb-client.pid
}
if ovs_wait; then :
else
    $as_echo "ovsdb-monitor.at:32: wait failed" >&5

    $as_echo "ovsdb-monitor.at:32" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-monitor.at:32"
fi

    { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:33: \$PYTHON \$srcdir/ovsdb-monitor-sort.py < output | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-monitor.at:33"
( $at_check_trace; $PYTHON $srcdir/ovsdb-monitor-sort.py < output | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "$output" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:33"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

}


# ovsdb_start_idltest [REMOTE] [SCHEMA]
#
# Creates a database using SCHEMA (default: idltest.ovsschema) and
# starts a database server listening on punix:socket and REMOTE (if
# specified).
ovsdb_start_idltest () {
    ovsdb-tool create db ${2:-$abs_srcdir/idltest.ovsschema} || return $?
    ovsdb-server -vconsole:warn --log-file --detach --no-chdir --pidfile --remote=punix:socket ${1:+--remote=$1} db || return $?
    on_exit 'kill `cat ovsdb-server.pid`'
}


# ovsdb_check_cluster N_SERVERS SCHEMA_FUNC OUTPUT TRANSACTION...
ovsdb_check_cluster () {
    local n=$1 schema_func=$2 output=$3
    shift; shift; shift

    $schema_func > schema
    schema=`ovsdb-tool schema-name schema`
    { set +x
$as_echo "$at_srcdir/ovsdb-cluster.at:9: ovsdb-tool '-vPATTERN:console:%c|%p|%m' create-cluster s1.db schema unix:s1.raft"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-cluster.at:9"
( $at_check_trace; ovsdb-tool '-vPATTERN:console:%c|%p|%m' create-cluster s1.db schema unix:s1.raft
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-cluster.at:9"
$at_failed && at_fn_log_failure
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ovsdb-cluster.at:10: grep -v 'from ephemeral to persistent' stderr"
at_fn_check_prepare_trace "ovsdb-cluster.at:10"
( $at_check_trace; grep -v 'from ephemeral to persistent' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-cluster.at:10"
$at_failed && at_fn_log_failure
$at_traceon; }

    cid=`ovsdb-tool db-cid s1.db`
    for i in `seq 2 $n`; do
        { set +x
$as_echo "$at_srcdir/ovsdb-cluster.at:13: ovsdb-tool join-cluster s\$i.db \$schema unix:s\$i.raft unix:s1.raft"
at_fn_check_prepare_dynamic "ovsdb-tool join-cluster s$i.db $schema unix:s$i.raft unix:s1.raft" "ovsdb-cluster.at:13"
( $at_check_trace; ovsdb-tool join-cluster s$i.db $schema unix:s$i.raft unix:s1.raft
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-cluster.at:13"
$at_failed && at_fn_log_failure
$at_traceon; }

    done

    on_exit 'kill `cat *.pid`'
    for i in `seq $n`; do
	{ set +x
$as_echo "$at_srcdir/ovsdb-cluster.at:18: ovsdb-server -vraft -vconsole:off -vsyslog:off --detach --no-chdir --log-file=s\$i.log --pidfile=s\$i.pid --unixctl=s\$i --remote=punix:s\$i.ovsdb s\$i.db"
at_fn_check_prepare_dynamic "ovsdb-server -vraft -vconsole:off -vsyslog:off --detach --no-chdir --log-file=s$i.log --pidfile=s$i.pid --unixctl=s$i --remote=punix:s$i.ovsdb s$i.db" "ovsdb-cluster.at:18"
( $at_check_trace; ovsdb-server -vraft -vconsole:off -vsyslog:off --detach --no-chdir --log-file=s$i.log --pidfile=s$i.pid --unixctl=s$i --remote=punix:s$i.ovsdb s$i.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-cluster.at:18"
$at_failed && at_fn_log_failure
$at_traceon; }

    done
    for i in `seq $n`; do
	{ set +x
$as_echo "$at_srcdir/ovsdb-cluster.at:21: ovsdb-client --timeout=30 wait unix:s\$i.ovsdb \$schema connected"
at_fn_check_prepare_dynamic "ovsdb-client --timeout=30 wait unix:s$i.ovsdb $schema connected" "ovsdb-cluster.at:21"
( $at_check_trace; ovsdb-client --timeout=30 wait unix:s$i.ovsdb $schema connected
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-cluster.at:21"
$at_failed && at_fn_log_failure
$at_traceon; }

    done

    for txn
    do
      { set +x
$as_echo "$at_srcdir/ovsdb-cluster.at:26: ovsdb-client --timeout=30 -vjsonrpc -vconsole:off -vsyslog:off -vvlog:off --log-file transact unix:s1.ovsdb,unix:s2.ovsdb,unix:s3.ovsdb \"\$txn\""
at_fn_check_prepare_dynamic "ovsdb-client --timeout=30 -vjsonrpc -vconsole:off -vsyslog:off -vvlog:off --log-file transact unix:s1.ovsdb,unix:s2.ovsdb,unix:s3.ovsdb \"$txn\"" "ovsdb-cluster.at:26"
( $at_check_trace; ovsdb-client --timeout=30 -vjsonrpc -vconsole:off -vsyslog:off -vvlog:off --log-file transact unix:s1.ovsdb,unix:s2.ovsdb,unix:s3.ovsdb "$txn"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-cluster.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
    done
    { set +x
$as_echo "$at_srcdir/ovsdb-cluster.at:29: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-cluster.at:29"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "$output" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-cluster.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

    for i in `seq $n`; do
	{ set +x
$as_echo "$at_srcdir/ovsdb-cluster.at:31: test -e s\$i.pid"
at_fn_check_prepare_dynamic "test -e s$i.pid" "ovsdb-cluster.at:31"
( $at_check_trace; test -e s$i.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-cluster.at:31"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat s$i.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-cluster.at:31: ovs-appctl --timeout=10 --target=\`pwd\`/s\$i exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-cluster.at:31"
( $at_check_trace; ovs-appctl --timeout=10 --target=`pwd`/s$i exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-cluster.at:31"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-cluster.at:31: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-cluster.at:31: wait failed" >&5

    $as_echo "ovsdb-cluster.at:31" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-cluster.at:31"
fi

    done

    { set +x
$as_echo "$at_srcdir/ovsdb-cluster.at:34: ovsdb-tool check-cluster s*.db"
at_fn_check_prepare_trace "ovsdb-cluster.at:34"
( $at_check_trace; ovsdb-tool check-cluster s*.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-cluster.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }

}


ovsdb_torture_test () {
    local n=$1			# Number of cluster members
    local victim=$2		# Cluster member to kill or remove
    local variant=$3            # 'kill' and restart or 'remove' and add
    cp $top_srcdir/ovn/ovn-sb.ovsschema schema
    schema=`ovsdb-tool schema-name schema`
    { set +x
$as_echo "$at_srcdir/ovsdb-cluster.at:75: ovsdb-tool '-vPATTERN:console:%c|%p|%m' create-cluster s1.db schema unix:s1.raft"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-cluster.at:75"
( $at_check_trace; ovsdb-tool '-vPATTERN:console:%c|%p|%m' create-cluster s1.db schema unix:s1.raft
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovsdb|WARN|schema: changed 2 columns in 'OVN_Southbound' database from ephemeral to persistent, including 'status' column in 'Connection' table, because clusters do not support ephemeral columns
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-cluster.at:75"
$at_failed && at_fn_log_failure
$at_traceon; }


    join_cluster() {
        local i=$1
	others=
	for j in `seq 1 $n`; do
	    if test $i != $j; then
	        others="$others unix:s$j.raft"
            fi
	done
	{ set +x
$as_echo "$at_srcdir/ovsdb-cluster.at:87: ovsdb-tool join-cluster s\$i.db \$schema unix:s\$i.raft \$others"
at_fn_check_prepare_dynamic "ovsdb-tool join-cluster s$i.db $schema unix:s$i.raft $others" "ovsdb-cluster.at:87"
( $at_check_trace; ovsdb-tool join-cluster s$i.db $schema unix:s$i.raft $others
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-cluster.at:87"
$at_failed && at_fn_log_failure
$at_traceon; }

    }

    start_server() {
        local i=$1
	printf "\ns$i: starting\n"
	{ set +x
$as_echo "$at_srcdir/ovsdb-cluster.at:93: ovsdb-server -vjsonrpc -vconsole:off -vsyslog:off --detach --no-chdir --log-file=s\$i.log --pidfile=s\$i.pid --unixctl=s\$i --remote=punix:s\$i.ovsdb s\$i.db"
at_fn_check_prepare_dynamic "ovsdb-server -vjsonrpc -vconsole:off -vsyslog:off --detach --no-chdir --log-file=s$i.log --pidfile=s$i.pid --unixctl=s$i --remote=punix:s$i.ovsdb s$i.db" "ovsdb-cluster.at:93"
( $at_check_trace; ovsdb-server -vjsonrpc -vconsole:off -vsyslog:off --detach --no-chdir --log-file=s$i.log --pidfile=s$i.pid --unixctl=s$i --remote=punix:s$i.ovsdb s$i.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-cluster.at:93"
$at_failed && at_fn_log_failure
$at_traceon; }

    }
    stop_server() {
        local i=$1
	printf "\ns$i: stopping\n"
        { set +x
$as_echo "$at_srcdir/ovsdb-cluster.at:98: test -e s\$i.pid"
at_fn_check_prepare_dynamic "test -e s$i.pid" "ovsdb-cluster.at:98"
( $at_check_trace; test -e s$i.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-cluster.at:98"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat s$i.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-cluster.at:98: ovs-appctl --timeout=10 --target=\`pwd\`/s\$i exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-cluster.at:98"
( $at_check_trace; ovs-appctl --timeout=10 --target=`pwd`/s$i exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-cluster.at:98"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-cluster.at:98: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-cluster.at:98: wait failed" >&5

    $as_echo "ovsdb-cluster.at:98" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-cluster.at:98"
fi

    }
    connect_server() {
        local i=$1
	printf "\ns$i: waiting to connect to storage\n"
	{ set +x
$as_echo "$at_srcdir/ovsdb-cluster.at:103: ovsdb-client --timeout=30 -vfile -vsyslog:off -vvlog:off --log-file=connect\$i.log wait unix:s\$i.ovsdb \$schema connected"
at_fn_check_prepare_dynamic "ovsdb-client --timeout=30 -vfile -vsyslog:off -vvlog:off --log-file=connect$i.log wait unix:s$i.ovsdb $schema connected" "ovsdb-cluster.at:103"
( $at_check_trace; ovsdb-client --timeout=30 -vfile -vsyslog:off -vvlog:off --log-file=connect$i.log wait unix:s$i.ovsdb $schema connected
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-cluster.at:103"
$at_failed && at_fn_log_failure
$at_traceon; }

    }
    remove_server() {
        local i=$1
	printf "\ns$i: removing from cluster\n"
	{ set +x
$as_echo "$at_srcdir/ovsdb-cluster.at:108: ovs-appctl --timeout=30 -t \"\`pwd\`\"/s\$i cluster/leave OVN_Southbound"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-cluster.at:108"
( $at_check_trace; ovs-appctl --timeout=30 -t "`pwd`"/s$i cluster/leave OVN_Southbound
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-cluster.at:108"
$at_failed && at_fn_log_failure
$at_traceon; }

	printf "\ns$i: waiting for removal to complete\n"
	{ set +x
$as_echo "$at_srcdir/ovsdb-cluster.at:110: ovsdb-client --timeout=30 -vfile -vsyslog:off -vvlog:off --log-file=remove\$i.log wait unix:s\$i.ovsdb \$schema removed"
at_fn_check_prepare_dynamic "ovsdb-client --timeout=30 -vfile -vsyslog:off -vvlog:off --log-file=remove$i.log wait unix:s$i.ovsdb $schema removed" "ovsdb-cluster.at:110"
( $at_check_trace; ovsdb-client --timeout=30 -vfile -vsyslog:off -vvlog:off --log-file=remove$i.log wait unix:s$i.ovsdb $schema removed
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-cluster.at:110"
$at_failed && at_fn_log_failure
$at_traceon; }

	stop_server $victim
    }
    add_server() {
        local i=$1
	rm s$i.db
        join_cluster $i
	start_server $i
	connect_server $i
    }

    cid=`ovsdb-tool db-cid s1.db`
    for i in `seq 2 $n`; do join_cluster $i; done

    on_exit 'kill `cat *.pid`'
    for i in `seq $n`; do start_server $i; done
    for i in `seq $n`; do connect_server $i; done

    OVN_SB_DB=unix:s1.ovsdb
    for i in `seq 2 $n`; do
        OVN_SB_DB=$OVN_SB_DB,unix:s$i.ovsdb
    done
    export OVN_SB_DB

    n1=10 n2=5
    echo "starting $n1*$n2 ovn-sbctl processes..."
    for i in $(seq 0 $(expr $n1 - 1) ); do
	(for j in $(seq $n2); do
             : > $i-$j.running
	     run_as "ovn-sbctl($i-$j)" ovn-sbctl "-vPATTERN:console:ovn-sbctl($i-$j)|%D{%H:%M:%S}|%05N|%c|%p|%m" --log-file=$i-$j.log -vfile -vsyslog:off -vtimeval:off --timeout=120 --no-leader-only add SB_Global . external_ids $i-$j=$i-$j
	     status=$?
	     if test $status != 0; then
	         echo "$i-$j exited with status $status" > $i-$j:$status
             fi
             rm $i-$j.running
	 done
	 : > $i.done)&
    done
    echo "...done"
    sleep 2

    echo "waiting for ovn-sbctl processes to exit..."
    i=0
    phase=0
    while :; do
        printf "t=%2d s:" $i
	done=0
        for j in $(seq 0 $(expr $n1 - 1)); do
	    if test -f $j.done; then
	        printf " $j"
		done=$(expr $done + 1)
            fi
	done
	printf '\n'
	if test $done = $n1; then
	    break
        fi

        case $phase in # (
	0)
            if test $done -ge $(expr $n1 / 4); then
	        if test $variant = kill; then
		    stop_server $victim
		else
		    remove_server $victim
		fi
		phase=1
		next=$(expr $i + 2)
            fi
	    ;; # (
        1)
	    if test $i -ge $next; then
	        if test $variant = kill; then
		    start_server $victim
		    connect_server $victim
		else
		    add_server $victim
		fi
		phase=2
	    fi
	    ;;
	esac

        sleep 1
	i=$(expr $i + 1)
    done
    echo "...done"
    { set +x
$as_echo "$at_srcdir/ovsdb-cluster.at:197: if test \$phase != 2; then exit 77; fi"
at_fn_check_prepare_dynamic "if test $phase != 2; then exit 77; fi" "ovsdb-cluster.at:197"
( $at_check_trace; if test $phase != 2; then exit 77; fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-cluster.at:197"
$at_failed && at_fn_log_failure
$at_traceon; }


    for i in `seq 0 9`; do
	for j in `seq 5`; do
	    echo "$i-$j=$i-$j"
	done
    done > expout
    { set +x
$as_echo "$at_srcdir/ovsdb-cluster.at:204: ovn-sbctl --timeout=30 --log-file=finalize.log -vtimeval:off -vfile -vsyslog:off --bare get SB_Global . external-ids | sed 's/, /\\n/g; s/[{}\"\"]//g;'"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-cluster.at:204"
( $at_check_trace; ovn-sbctl --timeout=30 --log-file=finalize.log -vtimeval:off -vfile -vsyslog:off --bare get SB_Global . external-ids | sed 's/, /\n/g; s/[{}""]//g;'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-cluster.at:204"
$at_failed && at_fn_log_failure
$at_traceon; }


    for i in `seq $n`; do
	if test $i != $victim || test $phase != 1; then
	    stop_server $i
	fi
    done

    # We ignore stdout because non-fatal warnings get printed there.
    { set +x
$as_echo "$at_srcdir/ovsdb-cluster.at:213: ovsdb-tool check-cluster s*.db"
at_fn_check_prepare_trace "ovsdb-cluster.at:213"
( $at_check_trace; ovsdb-tool check-cluster s*.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-cluster.at:213"
$at_failed && at_fn_log_failure
$at_traceon; }

}



# Creates a directory tree for use with "interface-reconfigure --root-dir".
ifr_setup () {
    for script in \
            interface-reconfigure \
            InterfaceReconfigure.py \
            InterfaceReconfigureBridge.py \
            InterfaceReconfigureVswitch.py
        do
            cp $top_srcdir/xenserver/opt_xensource_libexec_$script $script
        done

        mkdir -p etc
        cat > etc/xensource-inventory <<EOF
PRODUCT_BRAND='XenServer'
PRODUCT_NAME='xenenterprise'
PRODUCT_VERSION='5.5.0'
BUILD_NUMBER='24648p'
KERNEL_VERSION='2.6.18-128.1.6.el5.xs5.5.0.505.1024xen'
XEN_VERSION='3.3.1'
INSTALLATION_DATE='2010-02-10 16:45:28.748345'
PRIMARY_DISK='/dev/disk/by-id/scsi-360022190add7fc001241a14e0ee3e85c'
BACKUP_PARTITION='/dev/disk/by-id/scsi-360022190add7fc001241a14e0ee3e85c-part2'
INSTALLATION_UUID='852ee692-71b4-439e-abfb-0eba72dc85f0'
CONTROL_DOMAIN_UUID='44e6b66e-3074-4a3c-bbcd-756d845a3b56'
DEFAULT_SR_PHYSDEVS='/dev/sda3'
DOM0_MEM='752'
MANAGEMENT_INTERFACE='xenbr2'
EOF

        mkdir -p etc/xensource
        echo vswitch > etc/xensource/network.conf

        for utility in \
            sbin/ethtool \
            sbin/ifdown \
            sbin/ifup \
            sbin/ip \
            sbin/update-issue \
            sbin/vconfig \
            usr/sbin/brctl \
            usr/sbin/ovs-vlan-bug-workaround
        do
            mkdir -p `dirname $utility`
            cat > $utility <<'EOF'
#! /bin/sh
echo ${0} ${*} >&2
EOF
            chmod +x $utility
        done

        mkdir -p usr/bin
        cat > usr/bin/ovs-vsctl <<'EOF'
#! /bin/sh
echo ${0} ${*} >&2

while test ${#} -ge 4; do
    if test X"${1}" = Xget && \
       test X"${2}" = Xinterface && \
       test X"${4}" = Xofport; then
          if test X"${3}" = Xeth2; then
	      echo 5
	  else
	      echo -1
	  fi
    fi

    shift
done
EOF
        chmod +x usr/bin/ovs-vsctl

        cat > usr/bin/ovs-ofctl <<'EOF'
#! /bin/sh
echo ${0} ${*} >&2

# Check that the flow is properly formed.
ovs-ofctl parse-flow "${3}" >/dev/null
EOF
        chmod +x usr/bin/ovs-ofctl

        mkdir -p etc/sysconfig/network-scripts
        configure_netdev () {
            mkdir -p sys/class/net/${1}
            echo ${2} > sys/class/net/${1}/address
            echo ${3} > sys/class/net/${1}/tx_queue_len
            if test ${1} = eth1; then
                # No VLAN acceleration.
                echo 0x829 > sys/class/net/${1}/features
            else
                # Supports VLAN acceleration.
                echo 0x10b89 > sys/class/net/${1}/features
            fi
            mkdir sys/class/net/${1}/device
            ln -s ../../../bus/pci/drivers/e1000 sys/class/net/${1}/device/driver

            : >> etc/sysconfig/network-scripts/ifcfg-${1}
        }

        configure_netdev lo   00:00:00:00:00:00 0
        configure_netdev eth0 00:22:19:22:4b:af 1000
        configure_netdev eth1 00:22:19:22:4b:b1 1000
        configure_netdev eth2 00:15:17:a0:29:80 1000
        configure_netdev eth3 00:15:17:a0:29:81 1000
        configure_netdev eth4 00:1b:21:29:ce:51 1000

        mkdir -p var/xapi
        cat > var/xapi/network.dbcache <<'EOF'
<?xml version="1.0" ?>
<xenserver-network-configuration>
	<pif ref="OpaqueRef:e0955887-571f-17fc-a971-61c1ec7d81b6">
		<VLAN_slave_of/>
                <tunnel_access_PIF_of/>
		<management>
			False
		</management>
		<bond_slave_of>
			OpaqueRef:86d81bcf-0d25-90b2-cb11-af2007bd586e
		</bond_slave_of>
		<uuid>
			bd62a141-091f-3909-e334-0334f67ff3be
		</uuid>
		<IP>

		</IP>
		<VLAN_master_of>
			OpaqueRef:NULL
		</VLAN_master_of>
		<VLAN>
			-1
		</VLAN>
		<netmask>

		</netmask>
		<other_config/>
		<MAC>
			00:22:19:22:4b:af
		</MAC>
		<ip_configuration_mode>
			None
		</ip_configuration_mode>
		<DNS>

		</DNS>
		<device>
			eth0
		</device>
		<bond_master_of/>
		<currently_attached>
			False
		</currently_attached>
		<gateway>

		</gateway>
		<network>
			OpaqueRef:83e4a934-aeb5-e6f0-a743-d1c7ef7364c5
		</network>
	</pif>
	<pif ref="OpaqueRef:eea8da94-a5e6-18fc-34a7-5e9b5a235806">
		<VLAN_slave_of/>
                <tunnel_access_PIF_of/>
		<management>
			False
		</management>
		<bond_slave_of>
			OpaqueRef:NULL
		</bond_slave_of>
		<uuid>
			df8d35c2-cc3a-a623-7065-d987a29feb75
		</uuid>
		<IP>

		</IP>
		<VLAN_master_of>
			OpaqueRef:NULL
		</VLAN_master_of>
		<VLAN>
			-1
		</VLAN>
		<netmask>

		</netmask>
		<other_config/>
		<MAC>
			00:1b:21:29:ce:51
		</MAC>
		<ip_configuration_mode>
			None
		</ip_configuration_mode>
		<DNS>

		</DNS>
		<device>
			eth4
		</device>
		<bond_master_of/>
		<currently_attached>
			False
		</currently_attached>
		<gateway>

		</gateway>
		<network>
			OpaqueRef:bf51b4d3-7bdc-ea55-ba21-539b150b0531
		</network>
	</pif>
	<pif ref="OpaqueRef:2956e6c8-487e-981c-85ff-c84796418768">
		<VLAN_slave_of/>
                <tunnel_access_PIF_of/>
		<management>
			False
		</management>
		<bond_slave_of>
			OpaqueRef:86d81bcf-0d25-90b2-cb11-af2007bd586e
		</bond_slave_of>
		<uuid>
			2f87fc95-5ab4-571a-2487-3f4ac1985663
		</uuid>
		<IP>

		</IP>
		<VLAN_master_of>
			OpaqueRef:NULL
		</VLAN_master_of>
		<VLAN>
			-1
		</VLAN>
		<netmask>

		</netmask>
		<other_config/>
		<MAC>
			00:22:19:22:4b:b1
		</MAC>
		<ip_configuration_mode>
			None
		</ip_configuration_mode>
		<DNS>

		</DNS>
		<device>
			eth1
		</device>
		<bond_master_of/>
		<currently_attached>
			False
		</currently_attached>
		<gateway>

		</gateway>
		<network>
			OpaqueRef:92b41bf6-aa21-45d3-1c86-c87a5fa98f7d
		</network>
	</pif>
	<pif ref="OpaqueRef:d2d1e51e-4da9-3163-8f57-bb683429335e">
		<VLAN_slave_of/>
                <tunnel_access_PIF_of/>
		<management>
			False
		</management>
		<bond_slave_of>
			OpaqueRef:NULL
		</bond_slave_of>
		<uuid>
			d2dfdab3-daf4-afea-f055-a25a0d24d714
		</uuid>
		<IP>

		</IP>
		<VLAN_master_of>
			OpaqueRef:4c0eb823-4d96-da1d-e75f-411b85badb0c
		</VLAN_master_of>
		<VLAN>
			4
		</VLAN>
		<netmask>

		</netmask>
		<other_config/>
		<MAC>
			fe:ff:ff:ff:ff:ff
		</MAC>
		<ip_configuration_mode>
			None
		</ip_configuration_mode>
		<DNS>

		</DNS>
		<device>
			bond0
		</device>
		<bond_master_of/>
		<currently_attached>
			True
		</currently_attached>
		<gateway>

		</gateway>
		<network>
			OpaqueRef:a63afad0-fb4c-b4a4-3696-cbb3d88afc47
		</network>
	</pif>
	<pif ref="OpaqueRef:2bc0fab5-523a-4125-609d-212391f5f6fc">
		<VLAN_slave_of>
			<master>
				OpaqueRef:e623e1d6-cd02-be8d-820d-49d65c710297
			</master>
		</VLAN_slave_of>
                <tunnel_access_PIF_of/>
		<management>
			False
		</management>
		<bond_slave_of>
			OpaqueRef:NULL
		</bond_slave_of>
		<uuid>
			f4ba396e-a993-a592-5fbc-a1d566afb59e
		</uuid>
		<IP>
			10.0.0.188
		</IP>
		<VLAN_master_of>
			OpaqueRef:NULL
		</VLAN_master_of>
		<VLAN>
			-1
		</VLAN>
		<netmask>
			255.0.0.0
		</netmask>
		<other_config/>
		<MAC>
			00:15:17:a0:29:81
		</MAC>
		<ip_configuration_mode>
			Static
		</ip_configuration_mode>
		<DNS>

		</DNS>
		<device>
			eth3
		</device>
		<bond_master_of/>
		<currently_attached>
			True
		</currently_attached>
		<gateway>

		</gateway>
		<network>
			OpaqueRef:d9189da2-d00b-61ba-8a6d-ac42cc868e32
		</network>
	</pif>
	<pif ref="OpaqueRef:205d1186-2cd1-d5e6-45e4-ea1698ea6e15">
		<VLAN_slave_of/>
                <tunnel_access_PIF_of/>
		<management>
			True
		</management>
		<bond_slave_of>
			OpaqueRef:NULL
		</bond_slave_of>
		<uuid>
			646ca9a1-36ad-e2f9-3ecc-1e5622c201c2
		</uuid>
		<IP>
			172.18.3.188
		</IP>
		<VLAN_master_of>
			OpaqueRef:NULL
		</VLAN_master_of>
		<VLAN>
			-1
		</VLAN>
		<netmask>
			255.255.0.0
		</netmask>
		<other_config/>
		<MAC>
			00:15:17:a0:29:80
		</MAC>
		<ip_configuration_mode>
			DHCP
		</ip_configuration_mode>
		<DNS>

		</DNS>
		<device>
			eth2
		</device>
		<bond_master_of/>
		<currently_attached>
			True
		</currently_attached>
		<gateway>

		</gateway>
		<network>
			OpaqueRef:6e7c6e81-6b5e-b91f-e1f9-9e028567bdfe
		</network>
	</pif>
	<pif ref="OpaqueRef:8e3e37e6-ebb9-087e-0201-f6a56bf554c3">
		<VLAN_slave_of/>
                <tunnel_access_PIF_of/>
		<management>
			False
		</management>
		<bond_slave_of>
			OpaqueRef:NULL
		</bond_slave_of>
		<uuid>
			3941edd2-865b-8dd8-61f0-199f5e1fa652
		</uuid>
		<IP>

		</IP>
		<VLAN_master_of>
			OpaqueRef:e623e1d6-cd02-be8d-820d-49d65c710297
		</VLAN_master_of>
		<VLAN>
			123
		</VLAN>
		<netmask>

		</netmask>
		<other_config/>
		<MAC>
			fe:ff:ff:ff:ff:ff
		</MAC>
		<ip_configuration_mode>
			None
		</ip_configuration_mode>
		<DNS>

		</DNS>
		<device>
			eth3
		</device>
		<bond_master_of/>
		<currently_attached>
			True
		</currently_attached>
		<gateway>

		</gateway>
		<network>
			OpaqueRef:240fb5f8-addc-6ea3-f921-2a42b42acd17
		</network>
	</pif>
	<pif ref="OpaqueRef:69c904bb-8da9-3424-485b-8b47c2d3ef11">
		<VLAN_slave_of>
			<master>
				OpaqueRef:4c0eb823-4d96-da1d-e75f-411b85badb0c
			</master>
		</VLAN_slave_of>
                <tunnel_access_PIF_of/>
		<management>
			False
		</management>
		<bond_slave_of>
			OpaqueRef:NULL
		</bond_slave_of>
		<uuid>
			6c0327a9-afa3-fc19-6798-a1bfe20095ed
		</uuid>
		<IP>

		</IP>
		<VLAN_master_of>
			OpaqueRef:NULL
		</VLAN_master_of>
		<VLAN>
			-1
		</VLAN>
		<netmask>

		</netmask>
		<other_config/>
		<MAC>
			00:22:19:22:4b:af
		</MAC>
		<ip_configuration_mode>
			None
		</ip_configuration_mode>
		<DNS>

		</DNS>
		<device>
			bond0
		</device>
		<bond_master_of>
			<slave>
				OpaqueRef:86d81bcf-0d25-90b2-cb11-af2007bd586e
			</slave>
		</bond_master_of>
		<currently_attached>
			True
		</currently_attached>
		<gateway>

		</gateway>
		<network>
			OpaqueRef:ec1e5037-60ea-97e5-54b8-39bdb43c071a
		</network>
	</pif>
	<bond ref="OpaqueRef:86d81bcf-0d25-90b2-cb11-af2007bd586e">
		<master>
			OpaqueRef:69c904bb-8da9-3424-485b-8b47c2d3ef11
		</master>
		<uuid>
			dad825f1-6d81-386e-849c-5589281e53e1
		</uuid>
		<slaves>
			<slave>
				OpaqueRef:e0955887-571f-17fc-a971-61c1ec7d81b6
			</slave>
			<slave>
				OpaqueRef:2956e6c8-487e-981c-85ff-c84796418768
			</slave>
		</slaves>
	</bond>
	<vlan ref="OpaqueRef:4c0eb823-4d96-da1d-e75f-411b85badb0c">
		<tagged_PIF>
			OpaqueRef:69c904bb-8da9-3424-485b-8b47c2d3ef11
		</tagged_PIF>
		<uuid>
			841814da-d0d2-9da4-0b2e-b6143480bbfb
		</uuid>
		<untagged_PIF>
			OpaqueRef:d2d1e51e-4da9-3163-8f57-bb683429335e
		</untagged_PIF>
	</vlan>
	<vlan ref="OpaqueRef:e623e1d6-cd02-be8d-820d-49d65c710297">
		<tagged_PIF>
			OpaqueRef:2bc0fab5-523a-4125-609d-212391f5f6fc
		</tagged_PIF>
		<uuid>
			399279a2-5ccd-5368-9af3-8622a1f1ac82
		</uuid>
		<untagged_PIF>
			OpaqueRef:8e3e37e6-ebb9-087e-0201-f6a56bf554c3
		</untagged_PIF>
	</vlan>
	<network ref="OpaqueRef:a63afad0-fb4c-b4a4-3696-cbb3d88afc47">
		<PIFs>
			<PIF>
				OpaqueRef:d2d1e51e-4da9-3163-8f57-bb683429335e
			</PIF>
		</PIFs>
		<bridge>
			xapi2
		</bridge>
		<other_config/>
		<uuid>
			99be2da4-6c33-6f8e-49ea-3bc592fe3c85
		</uuid>
	</network>
	<network ref="OpaqueRef:d9189da2-d00b-61ba-8a6d-ac42cc868e32">
		<PIFs>
			<PIF>
				OpaqueRef:2bc0fab5-523a-4125-609d-212391f5f6fc
			</PIF>
		</PIFs>
		<bridge>
			xenbr3
		</bridge>
		<other_config/>
		<uuid>
			2902ae1b-8013-897a-b697-0b200ea3aaa5
		</uuid>
	</network>
	<network ref="OpaqueRef:ec1e5037-60ea-97e5-54b8-39bdb43c071a">
		<PIFs>
			<PIF>
				OpaqueRef:69c904bb-8da9-3424-485b-8b47c2d3ef11
			</PIF>
		</PIFs>
		<bridge>
			xapi1
		</bridge>
		<other_config/>
		<uuid>
			45cbbb43-113d-a712-3231-c6463f253cef
		</uuid>
	</network>
	<network ref="OpaqueRef:92b41bf6-aa21-45d3-1c86-c87a5fa98f7d">
		<PIFs>
			<PIF>
				OpaqueRef:2956e6c8-487e-981c-85ff-c84796418768
			</PIF>
		</PIFs>
		<bridge>
			xenbr1
		</bridge>
		<other_config/>
		<uuid>
			99f8771a-645a-26a3-e06c-30a401f1d009
		</uuid>
	</network>
	<network ref="OpaqueRef:6e7c6e81-6b5e-b91f-e1f9-9e028567bdfe">
		<PIFs>
			<PIF>
				OpaqueRef:205d1186-2cd1-d5e6-45e4-ea1698ea6e15
			</PIF>
		</PIFs>
		<bridge>
			xenbr2
		</bridge>
		<other_config/>
		<uuid>
			d08c8749-0c8f-9e8d-ce25-fd364661ee99
		</uuid>
	</network>
	<network ref="OpaqueRef:83e4a934-aeb5-e6f0-a743-d1c7ef7364c5">
		<PIFs>
			<PIF>
				OpaqueRef:e0955887-571f-17fc-a971-61c1ec7d81b6
			</PIF>
		</PIFs>
		<bridge>
			xenbr0
		</bridge>
		<other_config>
			<vswitch-disable-in-band>
				true
			</vswitch-disable-in-band>
		</other_config>
		<uuid>
			c9eecb03-560d-61de-b6a8-56dfc766f67e
		</uuid>
	</network>
	<network ref="OpaqueRef:bf51b4d3-7bdc-ea55-ba21-539b150b0531">
		<PIFs>
			<PIF>
				OpaqueRef:eea8da94-a5e6-18fc-34a7-5e9b5a235806
			</PIF>
		</PIFs>
		<bridge>
			xenbr4
		</bridge>
		<other_config/>
		<uuid>
			d2c14c89-29cc-51d4-7664-633eff02b2ad
		</uuid>
	</network>
	<network ref="OpaqueRef:0b7354a4-8f4b-aa08-2f16-a22c117e4211">
		<PIFs/>
		<bridge>
			xapi0
		</bridge>
		<other_config/>
		<uuid>
			dc0f0632-c2aa-1b78-2fea-0d3a23c51740
		</uuid>
	</network>
	<network ref="OpaqueRef:240fb5f8-addc-6ea3-f921-2a42b42acd17">
		<PIFs>
			<PIF>
				OpaqueRef:8e3e37e6-ebb9-087e-0201-f6a56bf554c3
			</PIF>
		</PIFs>
		<bridge>
			xapi3
		</bridge>
		<other_config/>
		<uuid>
			db7bdc03-074d-42ae-fc73-9b06de1d57f6
		</uuid>
	</network>
        <pool ref="OpaqueRef:a765d06c-fc82-cc67-8f6c-fd8db45f6a84">
                <other_config>
                        <vswitch-controller-fail-mode>
                                secure
                        </vswitch-controller-fail-mode>
                </other_config>
        </pool>
</xenserver-network-configuration>
EOF
}

ifr_run () {
    $PYTHON ./interface-reconfigure --root-prefix="`pwd`" --no-syslog "$@"
}

ifr_filter () {
    sed -n -e "s,`pwd`,,g" -e 's/ -- /\
    /g' -e '/^Running command:/!p' stderr
}

vlog_filt () {
    sed 's/.*\(opened log file\).*/\1/
s/.*|//' "$@"
}
ovn_check_packets__ () {
     echo
     echo "checking packets in $1 against $2:"
     rcv_pcap=$1
     rcv_text=`echo "$rcv_pcap.packets" | sed 's/\.pcap//'`
     exp_text=$2
     exp_n=`wc -l < "$exp_text"`
     ovs_wait_cond () {
         $PYTHON "$top_srcdir/utilities/ovs-pcap.in" $rcv_pcap > $rcv_text
         rcv_n=`wc -l < "$rcv_text"`
         test $rcv_n -ge $exp_n
     }
     ovs_wait || echo "expected $exp_n packets, only received $rcv_n"

     sort $exp_text > expout
   }


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

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

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

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

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

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

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

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

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

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

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

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

  at_group_normalized=$at_group

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


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

  echo 0 > "$at_status_file"

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

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

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

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

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

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


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


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

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

rm -f "$at_stop_file"
at_first=:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

   To: <bugs@openvswitch.org>
   Subject: [openvswitch 2.9.2] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly}

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

exit 0

## ------------- ##
## Actual tests. ##
## ------------- ##
#AT_START_1
at_fn_group_banner 1 'completion.at:21' \
  "appctl-bashcomp - basic verification" "           " 1
at_xfail=no
(
  $as_echo "1. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "completion.at:22" >"$at_check_line_file"
(test -z ${BASH_VERSION+x}) \
  && at_fn_check_skip 77 "$at_srcdir/completion.at:22"
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/completion.at:23: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "completion.at:23"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:23"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/completion.at:23: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "completion.at:23"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:23"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/completion.at:23: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "completion.at:23"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:23"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/completion.at:23: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "completion.at:23"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:23"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/completion.at:23: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "completion.at:23"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:23"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/completion.at:23: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "completion.at:23"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:23"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/completion.at:23: add_of_br 0  "
at_fn_check_prepare_trace "completion.at:23"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:23"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# complete ovs-appctl [TAB]
# complete ovs-dpctl  [TAB]
# complete ovs-ofctl  [TAB]
# complete ovsdb-tool [TAB]

INPUT="$(bash ovs-appctl-bashcomp.bash debug ovs-appctl TAB 2>&1)"
MATCH="$(ovs-appctl --option | sort | sed -n '/^--.*/p' | cut -d '=' -f1)
$(ovs-appctl list-commands | tail -n +2 | cut -c3- | cut -d ' ' -f1 | sort)"
{ set +x
$as_echo "$at_srcdir/completion.at:29:
echo \"\${INPUT}\" | sed -e '1,/Available/d' | tail -n+2
"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "completion.at:29"
( $at_check_trace;
echo "${INPUT}" | sed -e '1,/Available/d' | tail -n+2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:29"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

INPUT="$(bash ovs-appctl-bashcomp.bash debug ovs-dpctl TAB 2>&1)"
MATCH="$(ovs-dpctl --option | sort | sed -n '/^--.*/p' | cut -d '=' -f1)
$(ovs-dpctl list-commands | tail -n +2 | cut -c3- | cut -d ' ' -f1 | sort)"
{ set +x
$as_echo "$at_srcdir/completion.at:29:
echo \"\${INPUT}\" | sed -e '1,/Available/d' | tail -n+2
"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "completion.at:29"
( $at_check_trace;
echo "${INPUT}" | sed -e '1,/Available/d' | tail -n+2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:29"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

INPUT="$(bash ovs-appctl-bashcomp.bash debug ovs-ofctl TAB 2>&1)"
MATCH="$(ovs-ofctl --option | sort | sed -n '/^--.*/p' | cut -d '=' -f1)
$(ovs-ofctl list-commands | tail -n +2 | cut -c3- | cut -d ' ' -f1 | sort)"
{ set +x
$as_echo "$at_srcdir/completion.at:29:
echo \"\${INPUT}\" | sed -e '1,/Available/d' | tail -n+2
"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "completion.at:29"
( $at_check_trace;
echo "${INPUT}" | sed -e '1,/Available/d' | tail -n+2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:29"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

INPUT="$(bash ovs-appctl-bashcomp.bash debug ovsdb-tool TAB 2>&1)"
MATCH="$(ovsdb-tool --option | sort | sed -n '/^--.*/p' | cut -d '=' -f1)
$(ovsdb-tool list-commands | tail -n +2 | cut -c3- | cut -d ' ' -f1 | sort)"
{ set +x
$as_echo "$at_srcdir/completion.at:29:
echo \"\${INPUT}\" | sed -e '1,/Available/d' | tail -n+2
"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "completion.at:29"
( $at_check_trace;
echo "${INPUT}" | sed -e '1,/Available/d' | tail -n+2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:29"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# complete ovs-appctl --tar[TAB]
INPUT="$(bash ovs-appctl-bashcomp.bash debug ovs-appctl --tar 2>&1)"
{ set +x
$as_echo "$at_srcdir/completion.at:47:
echo \"\${INPUT}\" | sed -e '1,/Available/d' | tail -n+2
"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "completion.at:47"
( $at_check_trace;
echo "${INPUT}" | sed -e '1,/Available/d' | tail -n+2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "--target
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:47"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# complete ovs-appctl --target [TAB]
INPUT="$(bash ovs-appctl-bashcomp.bash debug ovs-appctl --target TAB 2>&1)"
{ set +x
$as_echo "$at_srcdir/completion.at:55:
echo \"\${INPUT}\" | sed -e '1,/Available/d' | tail -n+2
"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "completion.at:55"
( $at_check_trace;
echo "${INPUT}" | sed -e '1,/Available/d' | tail -n+2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ovs-ofctl
ovs-vswitchd
ovsdb-server
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:55"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# complete ovs-appctl --target ovs-vswitchd [TAB]
# complete ovs-appctl --target ovsdb-server [TAB]
# complete ovs-appctl --target ovs-ofctl    [TAB]
{ set +x
$as_echo "$at_srcdir/completion.at:66: ovs-ofctl monitor br0 --detach --no-chdir --pidfile"
at_fn_check_prepare_trace "completion.at:66"
( $at_check_trace; ovs-ofctl monitor br0 --detach --no-chdir --pidfile
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:66"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


INPUT="$(bash ovs-appctl-bashcomp.bash debug ovs-appctl --target ovs-vswitchd TAB 2>&1)"
MATCH="$(ovs-appctl --option | sort | sed -n '/^--.*/p' | cut -d '=' -f1)
$(ovs-appctl --target ovs-vswitchd list-commands | tail -n +2 | cut -c3- | cut -d ' ' -f1 | sort)"
{ set +x
$as_echo "$at_srcdir/completion.at:67:
echo \"\${INPUT}\" | sed -e '1,/Available/d' | tail -n+2
"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "completion.at:67"
( $at_check_trace;
echo "${INPUT}" | sed -e '1,/Available/d' | tail -n+2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:67"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

INPUT="$(bash ovs-appctl-bashcomp.bash debug ovs-appctl --target ovsdb-server TAB 2>&1)"
MATCH="$(ovs-appctl --option | sort | sed -n '/^--.*/p' | cut -d '=' -f1)
$(ovs-appctl --target ovsdb-server list-commands | tail -n +2 | cut -c3- | cut -d ' ' -f1 | sort)"
{ set +x
$as_echo "$at_srcdir/completion.at:67:
echo \"\${INPUT}\" | sed -e '1,/Available/d' | tail -n+2
"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "completion.at:67"
( $at_check_trace;
echo "${INPUT}" | sed -e '1,/Available/d' | tail -n+2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:67"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

INPUT="$(bash ovs-appctl-bashcomp.bash debug ovs-appctl --target ovs-ofctl TAB 2>&1)"
MATCH="$(ovs-appctl --option | sort | sed -n '/^--.*/p' | cut -d '=' -f1)
$(ovs-appctl --target ovs-ofctl list-commands | tail -n +2 | cut -c3- | cut -d ' ' -f1 | sort)"
{ set +x
$as_echo "$at_srcdir/completion.at:67:
echo \"\${INPUT}\" | sed -e '1,/Available/d' | tail -n+2
"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "completion.at:67"
( $at_check_trace;
echo "${INPUT}" | sed -e '1,/Available/d' | tail -n+2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:67"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/completion.at:80: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "completion.at:80"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:80"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/completion.at:80: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "completion.at:80"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:80"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "completion.at:80: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "completion.at:80: wait failed" >&5

    $as_echo "completion.at:80" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/completion.at:80"
fi

{ set +x
$as_echo "$at_srcdir/completion.at:81: check_logs "
at_fn_check_prepare_trace "completion.at:81"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:81"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/completion.at:81: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "completion.at:81"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:81"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/completion.at:81: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "completion.at:81"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:81"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "completion.at:81: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "completion.at:81: wait failed" >&5

    $as_echo "completion.at:81" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/completion.at:81"
fi

   { set +x
$as_echo "$at_srcdir/completion.at:81: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "completion.at:81"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:81"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/completion.at:81: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "completion.at:81"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:81"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "completion.at:81: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "completion.at:81: wait failed" >&5

    $as_echo "completion.at:81" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/completion.at:81"
fi

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

ovs_init

$as_echo "completion.at:89" >"$at_check_line_file"
(test -z ${BASH_VERSION+x}) \
  && at_fn_check_skip 77 "$at_srcdir/completion.at:89"
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/completion.at:90: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "completion.at:90"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:90"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/completion.at:90: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "completion.at:90"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:90"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/completion.at:90: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "completion.at:90"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:90"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/completion.at:90: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "completion.at:90"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:90"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/completion.at:90: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "completion.at:90"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:90"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/completion.at:90: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "completion.at:90"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:90"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/completion.at:90: add_of_br 0 add-port br0 p0 -- set Interface p0 type=dummy "
at_fn_check_prepare_trace "completion.at:90"
( $at_check_trace; add_of_br 0 add-port br0 p0 -- set Interface p0 type=dummy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:90"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# check the top level completion.
INPUT="$(bash ovs-appctl-bashcomp.bash debug ovs-appctl bfd/set-forwarding TAB 2>&1)"
MATCH="$(
echo "available completions for keyword \"normal\": " \
     | sed -e 's/ *$//g'


echo "available completions for keyword \"false\": " \
     | sed -e 's/ *$//g'


echo "available completions for keyword \"true\": " \
     | sed -e 's/ *$//g'


echo "available completions for keyword \"interface\": p0" \
     | sed -e 's/ *$//g'
)"
{ set +x
$as_echo "$at_srcdir/completion.at:98:
echo \"\${INPUT}\" | grep -- \"available completions for keyword\" \\
     | sed -e 's/^ *//g;s/ *\$//g'
"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "completion.at:98"
( $at_check_trace;
echo "${INPUT}" | grep -- "available completions for keyword" \
     | sed -e 's/^ *//g;s/ *$//g'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:98"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# check the available completions.
{ set +x
$as_echo "$at_srcdir/completion.at:103:
echo \"\${INPUT}\" | sed -e '1,/Available/d' | tail -n+2
"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "completion.at:103"
( $at_check_trace;
echo "${INPUT}" | sed -e '1,/Available/d' | tail -n+2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "p0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:103"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# set argument to 'true', there should be no more completions.
INPUT="$(bash ovs-appctl-bashcomp.bash debug ovs-appctl bfd/set-forwarding true TAB 2>&1)"
{ set +x
$as_echo "$at_srcdir/completion.at:111: echo \"\$INPUT\" | sed -e '/./,\$!d'"
at_fn_check_prepare_notrace 'a shell pipeline' "completion.at:111"
( $at_check_trace; echo "$INPUT" | sed -e '/./,$!d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:111"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# set argument to 'p1', there should still be the completion for booleans.
INPUT="$(bash ovs-appctl-bashcomp.bash debug ovs-appctl bfd/set-forwarding p1 TAB 2>&1)"
MATCH="$(
echo "available completions for keyword \"normal\": " \
     | sed -e 's/ *$//g'


echo "available completions for keyword \"false\": " \
     | sed -e 's/ *$//g'


echo "available completions for keyword \"true\": " \
     | sed -e 's/ *$//g'
)"
{ set +x
$as_echo "$at_srcdir/completion.at:121:
echo \"\${INPUT}\" | grep -- \"available completions for keyword\" \\
     | sed -e 's/^ *//g;s/ *\$//g'
"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "completion.at:121"
( $at_check_trace;
echo "${INPUT}" | grep -- "available completions for keyword" \
     | sed -e 's/^ *//g;s/ *$//g'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:121"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# check the available completions.
{ set +x
$as_echo "$at_srcdir/completion.at:126:
echo \"\${INPUT}\" | sed -e '1,/Available/d' | tail -n+2
"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "completion.at:126"
( $at_check_trace;
echo "${INPUT}" | sed -e '1,/Available/d' | tail -n+2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:126"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# set argument to 'p1 false', there should still no more completions.
INPUT="$(bash ovs-appctl-bashcomp.bash debug ovs-appctl bfd/set-forwarding p1 false TAB 2>&1)"
{ set +x
$as_echo "$at_srcdir/completion.at:131: echo \"\$INPUT\" | sed -e '/./,\$!d'"
at_fn_check_prepare_notrace 'a shell pipeline' "completion.at:131"
( $at_check_trace; echo "$INPUT" | sed -e '/./,$!d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:131"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/completion.at:135: check_logs "
at_fn_check_prepare_trace "completion.at:135"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:135"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/completion.at:135: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "completion.at:135"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:135"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/completion.at:135: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "completion.at:135"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:135"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "completion.at:135: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "completion.at:135: wait failed" >&5

    $as_echo "completion.at:135" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/completion.at:135"
fi

   { set +x
$as_echo "$at_srcdir/completion.at:135: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "completion.at:135"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:135"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/completion.at:135: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "completion.at:135"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:135"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "completion.at:135: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "completion.at:135: wait failed" >&5

    $as_echo "completion.at:135" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/completion.at:135"
fi

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

ovs_init

$as_echo "completion.at:143" >"$at_check_line_file"
(test -z ${BASH_VERSION+x}) \
  && at_fn_check_skip 77 "$at_srcdir/completion.at:143"
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/completion.at:144: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "completion.at:144"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:144"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/completion.at:144: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "completion.at:144"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:144"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/completion.at:144: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "completion.at:144"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:144"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/completion.at:144: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "completion.at:144"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:144"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/completion.at:144: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "completion.at:144"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:144"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/completion.at:144: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "completion.at:144"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:144"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/completion.at:144: add_of_br 0 add-port br0 p0 -- set Interface p0 type=dummy \\
                   -- add-port br0 p1 -- set Interface p1 type=dummy "
at_fn_check_prepare_notrace 'an embedded newline' "completion.at:144"
( $at_check_trace; add_of_br 0 add-port br0 p0 -- set Interface p0 type=dummy \
                   -- add-port br0 p1 -- set Interface p1 type=dummy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:144"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# check the top level completion.
INPUT="$(bash ovs-appctl-bashcomp.bash debug ovs-appctl lacp/show TAB 2>&1)"
MATCH="$(
echo "available completions for keyword \"port\": br0 p0 p1" \
     | sed -e 's/ *$//g'
)"
{ set +x
$as_echo "$at_srcdir/completion.at:150:
echo \"\${INPUT}\" | grep -- \"available completions for keyword\" \\
     | sed -e 's/^ *//g;s/ *\$//g'
"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "completion.at:150"
( $at_check_trace;
echo "${INPUT}" | grep -- "available completions for keyword" \
     | sed -e 's/^ *//g;s/ *$//g'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:150"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# check the available completions.
{ set +x
$as_echo "$at_srcdir/completion.at:155:
echo \"\${INPUT}\" | sed -e '1,/Available/d' | tail -n+2
"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "completion.at:155"
( $at_check_trace;
echo "${INPUT}" | sed -e '1,/Available/d' | tail -n+2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0
p0
p1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:155"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# set argument to 'p1', there should be no more completions.
INPUT="$(bash ovs-appctl-bashcomp.bash debug ovs-appctl lacp/show p1 TAB 2>&1)"
{ set +x
$as_echo "$at_srcdir/completion.at:165: echo \"\$INPUT\" | sed -e '/./,\$!d'"
at_fn_check_prepare_notrace 'a shell pipeline' "completion.at:165"
( $at_check_trace; echo "$INPUT" | sed -e '/./,$!d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:165"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/completion.at:169: check_logs "
at_fn_check_prepare_trace "completion.at:169"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:169"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/completion.at:169: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "completion.at:169"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:169"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/completion.at:169: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "completion.at:169"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:169"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "completion.at:169: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "completion.at:169: wait failed" >&5

    $as_echo "completion.at:169" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/completion.at:169"
fi

   { set +x
$as_echo "$at_srcdir/completion.at:169: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "completion.at:169"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:169"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/completion.at:169: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "completion.at:169"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:169"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "completion.at:169: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "completion.at:169: wait failed" >&5

    $as_echo "completion.at:169" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/completion.at:169"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_3
#AT_START_4
at_fn_group_banner 4 'completion.at:176' \
  "appctl-bashcomp - complex completion check 3" "   " 1
at_xfail=no
(
  $as_echo "4. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "completion.at:177" >"$at_check_line_file"
(test -z ${BASH_VERSION+x}) \
  && at_fn_check_skip 77 "$at_srcdir/completion.at:177"
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/completion.at:178: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "completion.at:178"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/completion.at:178: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "completion.at:178"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/completion.at:178: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "completion.at:178"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/completion.at:178: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "completion.at:178"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:178"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/completion.at:178: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "completion.at:178"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:178"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/completion.at:178: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "completion.at:178"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:178"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/completion.at:178: add_of_br 0 add-port br0 p0 -- set Interface p0 type=dummy \\
                   -- add-port br0 p1 -- set Interface p1 type=dummy "
at_fn_check_prepare_notrace 'an embedded newline' "completion.at:178"
( $at_check_trace; add_of_br 0 add-port br0 p0 -- set Interface p0 type=dummy \
                   -- add-port br0 p1 -- set Interface p1 type=dummy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:178"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# check the top level completion.
INPUT="$(bash ovs-appctl-bashcomp.bash debug ovs-appctl ofproto/trace TAB 2>&1)"
MATCH="$(
echo "available completions for keyword \"bridge\": br0" \
     | sed -e 's/ *$//g'


echo "available completions for keyword \"odp_flow\": " \
     | sed -e 's/ *$//g'


echo "available completions for keyword \"dp_name\": ovs-dummy" \
     | sed -e 's/ *$//g'
)"
{ set +x
$as_echo "$at_srcdir/completion.at:186:
echo \"\${INPUT}\" | grep -- \"available completions for keyword\" \\
     | sed -e 's/^ *//g;s/ *\$//g'
"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "completion.at:186"
( $at_check_trace;
echo "${INPUT}" | grep -- "available completions for keyword" \
     | sed -e 's/^ *//g;s/ *$//g'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:186"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# check the available completions.
{ set +x
$as_echo "$at_srcdir/completion.at:191:
echo \"\${INPUT}\" | sed -e '1,/Available/d' | tail -n+2
"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "completion.at:191"
( $at_check_trace;
echo "${INPUT}" | sed -e '1,/Available/d' | tail -n+2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0
ovs-dummy
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# set argument to 'ovs-dummy', should go to the dp-name path.
INPUT="$(bash ovs-appctl-bashcomp.bash debug ovs-appctl ofproto/trace ovs-dummy TAB 2>&1)"
MATCH="$(
echo "available completions for keyword \"odp_flow\": " \
     | sed -e 's/ *$//g'
)"
{ set +x
$as_echo "$at_srcdir/completion.at:201:
echo \"\${INPUT}\" | grep -- \"available completions for keyword\" \\
     | sed -e 's/^ *//g;s/ *\$//g'
"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "completion.at:201"
( $at_check_trace;
echo "${INPUT}" | grep -- "available completions for keyword" \
     | sed -e 's/^ *//g;s/ *$//g'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:201"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# check the available completions.
{ set +x
$as_echo "$at_srcdir/completion.at:206:
echo \"\${INPUT}\" | sed -e '1,/Available/d' | tail -n+2
"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "completion.at:206"
( $at_check_trace;
echo "${INPUT}" | sed -e '1,/Available/d' | tail -n+2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:206"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# set odp_flow to some random string, should go to the next level.
INPUT="$(bash ovs-appctl-bashcomp.bash debug ovs-appctl ofproto/trace ovs-dummy "in_port(123),mac(),ip,tcp" TAB 2>&1)"
MATCH="$(
echo "available completions for keyword \"-generate\": -generate" \
     | sed -e 's/ *$//g'


echo "available completions for keyword \"packet\": " \
     | sed -e 's/ *$//g'


echo "available completions for keyword \"OPTIONS...\": " \
     | sed -e 's/ *$//g'
)"
{ set +x
$as_echo "$at_srcdir/completion.at:214:
echo \"\${INPUT}\" | grep -- \"available completions for keyword\" \\
     | sed -e 's/^ *//g;s/ *\$//g'
"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "completion.at:214"
( $at_check_trace;
echo "${INPUT}" | grep -- "available completions for keyword" \
     | sed -e 's/^ *//g;s/ *$//g'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:214"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# check the available completions.
{ set +x
$as_echo "$at_srcdir/completion.at:219:
echo \"\${INPUT}\" | sed -e '1,/Available/d' | tail -n+2
"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "completion.at:219"
( $at_check_trace;
echo "${INPUT}" | sed -e '1,/Available/d' | tail -n+2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "-generate
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:219"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# set packet to some random string, there should be no more completions.
INPUT="$(bash ovs-appctl-bashcomp.bash debug ovs-appctl ofproto/trace ovs-dummy "in_port(123),mac(),ip,tcp" "ABSJDFLSDJFOIWEQR" TAB 2>&1)"
{ set +x
$as_echo "$at_srcdir/completion.at:227: echo \"\$INPUT\" | sed -e '/./,\$!d'"
at_fn_check_prepare_notrace 'a shell pipeline' "completion.at:227"
( $at_check_trace; echo "$INPUT" | sed -e '/./,$!d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:227"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# set argument to 'br0', should go to the bridge path.
INPUT="$(bash ovs-appctl-bashcomp.bash debug ovs-appctl ofproto/trace br0 TAB 2>&1)"
MATCH="$(
echo "available completions for keyword \"br_flow\": " \
     | sed -e 's/ *$//g'
)"
{ set +x
$as_echo "$at_srcdir/completion.at:235:
echo \"\${INPUT}\" | grep -- \"available completions for keyword\" \\
     | sed -e 's/^ *//g;s/ *\$//g'
"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "completion.at:235"
( $at_check_trace;
echo "${INPUT}" | grep -- "available completions for keyword" \
     | sed -e 's/^ *//g;s/ *$//g'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:235"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# check the available completions.
{ set +x
$as_echo "$at_srcdir/completion.at:240:
echo \"\${INPUT}\" | sed -e '1,/Available/d' | tail -n+2
"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "completion.at:240"
( $at_check_trace;
echo "${INPUT}" | sed -e '1,/Available/d' | tail -n+2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:240"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# set argument to some random string, should go to the odp_flow path.
INPUT="$(bash ovs-appctl-bashcomp.bash debug ovs-appctl ofproto/trace "in_port(123),mac(),ip,tcp" TAB 2>&1)"
MATCH="$(
echo "available completions for keyword \"-generate\": -generate" \
     | sed -e 's/ *$//g'


echo "available completions for keyword \"packet\": " \
     | sed -e 's/ *$//g'


echo "available completions for keyword \"OPTIONS...\": " \
     | sed -e 's/ *$//g'
)"
{ set +x
$as_echo "$at_srcdir/completion.at:248:
echo \"\${INPUT}\" | grep -- \"available completions for keyword\" \\
     | sed -e 's/^ *//g;s/ *\$//g'
"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "completion.at:248"
( $at_check_trace;
echo "${INPUT}" | grep -- "available completions for keyword" \
     | sed -e 's/^ *//g;s/ *$//g'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:248"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# check the available completions.
{ set +x
$as_echo "$at_srcdir/completion.at:253:
echo \"\${INPUT}\" | sed -e '1,/Available/d' | tail -n+2
"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "completion.at:253"
( $at_check_trace;
echo "${INPUT}" | sed -e '1,/Available/d' | tail -n+2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "-generate
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:253"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/completion.at:258: check_logs "
at_fn_check_prepare_trace "completion.at:258"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:258"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/completion.at:258: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "completion.at:258"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:258"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/completion.at:258: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "completion.at:258"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:258"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "completion.at:258: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "completion.at:258: wait failed" >&5

    $as_echo "completion.at:258" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/completion.at:258"
fi

   { set +x
$as_echo "$at_srcdir/completion.at:258: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "completion.at:258"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:258"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/completion.at:258: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "completion.at:258"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:258"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "completion.at:258: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "completion.at:258: wait failed" >&5

    $as_echo "completion.at:258" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/completion.at:258"
fi

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

ovs_init

$as_echo "completion.at:266" >"$at_check_line_file"
(test -z ${BASH_VERSION+x}) \
  && at_fn_check_skip 77 "$at_srcdir/completion.at:266"
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/completion.at:267: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "completion.at:267"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:267"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/completion.at:267: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "completion.at:267"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:267"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/completion.at:267: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "completion.at:267"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:267"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/completion.at:267: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "completion.at:267"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:267"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/completion.at:267: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "completion.at:267"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:267"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/completion.at:267: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "completion.at:267"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:267"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/completion.at:267: add_of_br 0  "
at_fn_check_prepare_trace "completion.at:267"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:267"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# check the top level completion.
INPUT="$(bash ovs-appctl-bashcomp.bash debug ovs-appctl vlog/set TAB 2>&1)"
MATCH="$(
echo "available completions for keyword \"PATTERN:destination:pattern\": " \
     | sed -e 's/ *$//g'


echo "available completions for keyword \"spec\": " \
     | sed -e 's/ *$//g'
)"
{ set +x
$as_echo "$at_srcdir/completion.at:273:
echo \"\${INPUT}\" | grep -- \"available completions for keyword\" \\
     | sed -e 's/^ *//g;s/ *\$//g'
"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "completion.at:273"
( $at_check_trace;
echo "${INPUT}" | grep -- "available completions for keyword" \
     | sed -e 's/^ *//g;s/ *$//g'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:273"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# check the available completions.
{ set +x
$as_echo "$at_srcdir/completion.at:278:
echo \"\${INPUT}\" | sed -e '1,/Available/d' | tail -n+2
"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "completion.at:278"
( $at_check_trace;
echo "${INPUT}" | sed -e '1,/Available/d' | tail -n+2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:278"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# set argument to random 'abcd', there should be no more completions.
INPUT="$(bash ovs-appctl-bashcomp.bash debug ovs-appctl vlog/set abcd TAB 2>&1)"
{ set +x
$as_echo "$at_srcdir/completion.at:283: echo \"\$INPUT\" | sed -e '/./,\$!d'"
at_fn_check_prepare_notrace 'a shell pipeline' "completion.at:283"
( $at_check_trace; echo "$INPUT" | sed -e '/./,$!d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:283"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/completion.at:287: check_logs "
at_fn_check_prepare_trace "completion.at:287"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:287"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/completion.at:287: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "completion.at:287"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:287"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/completion.at:287: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "completion.at:287"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:287"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "completion.at:287: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "completion.at:287: wait failed" >&5

    $as_echo "completion.at:287" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/completion.at:287"
fi

   { set +x
$as_echo "$at_srcdir/completion.at:287: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "completion.at:287"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:287"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/completion.at:287: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "completion.at:287"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:287"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "completion.at:287: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "completion.at:287: wait failed" >&5

    $as_echo "completion.at:287" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/completion.at:287"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_5
#AT_START_6
at_fn_group_banner 6 'completion.at:291' \
  "appctl-bashcomp - negative test" "                " 1
at_xfail=no
(
  $as_echo "6. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "completion.at:292" >"$at_check_line_file"
(test -z ${BASH_VERSION+x}) \
  && at_fn_check_skip 77 "$at_srcdir/completion.at:292"
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/completion.at:293: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "completion.at:293"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:293"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/completion.at:293: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "completion.at:293"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:293"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/completion.at:293: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "completion.at:293"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:293"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/completion.at:293: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "completion.at:293"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:293"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/completion.at:293: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "completion.at:293"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:293"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/completion.at:293: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "completion.at:293"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:293"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/completion.at:293: add_of_br 0 add-port br0 p0 -- set Interface p0 type=dummy "
at_fn_check_prepare_trace "completion.at:293"
( $at_check_trace; add_of_br 0 add-port br0 p0 -- set Interface p0 type=dummy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:293"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# negative test - incorrect subcommand
INPUT="$(bash ovs-appctl-bashcomp.bash debug ovs-appctl ERROR 2>&1)"
{ set +x
$as_echo "$at_srcdir/completion.at:297: echo \"\$INPUT\" | sed -e 's/ \\t*\$//' | sed -e '/./,\$!d'"
at_fn_check_prepare_notrace 'a shell pipeline' "completion.at:297"
( $at_check_trace; echo "$INPUT" | sed -e 's/ \t*$//' | sed -e '/./,$!d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:297"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

INPUT="$(bash ovs-appctl-bashcomp.bash debug ovs-appctl ERROR TAB 2>&1)"
{ set +x
$as_echo "$at_srcdir/completion.at:299: echo \"\$INPUT\" | sed -e 's/ \\t*\$//' | sed -e '/./!d'"
at_fn_check_prepare_notrace 'a shell pipeline' "completion.at:299"
( $at_check_trace; echo "$INPUT" | sed -e 's/ \t*$//' | sed -e '/./!d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:299"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# negative test - no ovs-vswitchd
# negative test - no ovsdb-server
# negative test - no ovs-ofctl
# should not see any error.
{ set +x
$as_echo "$at_srcdir/completion.at:308: check_logs "
at_fn_check_prepare_trace "completion.at:308"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:308"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/completion.at:308: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "completion.at:308"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:308"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/completion.at:308: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "completion.at:308"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:308"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "completion.at:308: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "completion.at:308: wait failed" >&5

    $as_echo "completion.at:308" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/completion.at:308"
fi

   { set +x
$as_echo "$at_srcdir/completion.at:308: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "completion.at:308"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:308"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/completion.at:308: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "completion.at:308"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:308"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "completion.at:308: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "completion.at:308: wait failed" >&5

    $as_echo "completion.at:308" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/completion.at:308"
fi


INPUT="$(bash ovs-appctl-bashcomp.bash debug ovs-appctl --target ovs-vswitchd TAB 2>&1)"
MATCH="$(ovs-appctl --option | sort | sed -n '/^--.*/p' | cut -d '=' -f1)"
{ set +x
$as_echo "$at_srcdir/completion.at:309:
echo \"\${INPUT}\" | sed -e '1,/Available/d' | tail -n+2
"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "completion.at:309"
( $at_check_trace;
echo "${INPUT}" | sed -e '1,/Available/d' | tail -n+2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:309"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

INPUT="$(bash ovs-appctl-bashcomp.bash debug ovs-appctl --target ovs-vswitchd ERROR SUBCMD TAB 2>&1)"
{ set +x
$as_echo "$at_srcdir/completion.at:309: echo \"\$INPUT\" | sed -e 's/ \\t*\$//' | sed -e '/./!d'"
at_fn_check_prepare_notrace 'a shell pipeline' "completion.at:309"
( $at_check_trace; echo "$INPUT" | sed -e 's/ \t*$//' | sed -e '/./!d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:309"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

INPUT="$(bash ovs-appctl-bashcomp.bash debug ovs-appctl --target ovsdb-server TAB 2>&1)"
MATCH="$(ovs-appctl --option | sort | sed -n '/^--.*/p' | cut -d '=' -f1)"
{ set +x
$as_echo "$at_srcdir/completion.at:309:
echo \"\${INPUT}\" | sed -e '1,/Available/d' | tail -n+2
"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "completion.at:309"
( $at_check_trace;
echo "${INPUT}" | sed -e '1,/Available/d' | tail -n+2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:309"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

INPUT="$(bash ovs-appctl-bashcomp.bash debug ovs-appctl --target ovsdb-server ERROR SUBCMD TAB 2>&1)"
{ set +x
$as_echo "$at_srcdir/completion.at:309: echo \"\$INPUT\" | sed -e 's/ \\t*\$//' | sed -e '/./!d'"
at_fn_check_prepare_notrace 'a shell pipeline' "completion.at:309"
( $at_check_trace; echo "$INPUT" | sed -e 's/ \t*$//' | sed -e '/./!d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:309"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

INPUT="$(bash ovs-appctl-bashcomp.bash debug ovs-appctl --target ovs-ofctl TAB 2>&1)"
MATCH="$(ovs-appctl --option | sort | sed -n '/^--.*/p' | cut -d '=' -f1)"
{ set +x
$as_echo "$at_srcdir/completion.at:309:
echo \"\${INPUT}\" | sed -e '1,/Available/d' | tail -n+2
"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "completion.at:309"
( $at_check_trace;
echo "${INPUT}" | sed -e '1,/Available/d' | tail -n+2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:309"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

INPUT="$(bash ovs-appctl-bashcomp.bash debug ovs-appctl --target ovs-ofctl ERROR SUBCMD TAB 2>&1)"
{ set +x
$as_echo "$at_srcdir/completion.at:309: echo \"\$INPUT\" | sed -e 's/ \\t*\$//' | sed -e '/./!d'"
at_fn_check_prepare_notrace 'a shell pipeline' "completion.at:309"
( $at_check_trace; echo "$INPUT" | sed -e 's/ \t*$//' | sed -e '/./!d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:309"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# negative test - do not match on nested option
INPUT="$(bash ovs-appctl-bashcomp.bash debug ovsdb-tool create TAB 2>&1)"
{ set +x
$as_echo "$at_srcdir/completion.at:329:
echo \"\${INPUT}\" | sed -e '1,/Available/d' | tail -n+2
"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "completion.at:329"
( $at_check_trace;
echo "${INPUT}" | sed -e '1,/Available/d' | tail -n+2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:329"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_6
#AT_START_7
at_fn_group_banner 7 'completion.at:345' \
  "vsctl-bashcomp - basic verification" "            " 2
at_xfail=no
(
  $as_echo "7. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "completion.at:346" >"$at_check_line_file"
(test -z ${BASH_VERSION+x}) \
  && at_fn_check_skip 77 "$at_srcdir/completion.at:346"
$as_echo "completion.at:347" >"$at_check_line_file"
(eval 'test ${BASH_VERSINFO[0]} -lt 4') \
  && at_fn_check_skip 77 "$at_srcdir/completion.at:347"
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/completion.at:348: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "completion.at:348"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:348"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/completion.at:348: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "completion.at:348"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:348"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/completion.at:348: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "completion.at:348"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:348"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/completion.at:348: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "completion.at:348"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:348"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/completion.at:348: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "completion.at:348"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:348"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/completion.at:348: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "completion.at:348"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:348"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/completion.at:348: add_of_br 0  "
at_fn_check_prepare_trace "completion.at:348"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:348"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# complete ovs-vsctl --db=* [TAB]
TMP="$(ovs-vsctl --commands | cut -d',' -f1-2 | tr -d ',[]' | tr -s ' ' '\n')
$(ovs-vsctl --options | grep -- '--' | sed -e 's/=.*$/=/g')"
MATCH="$(
echo "${TMP}" | tr ' ' '\n' | sed -e '/^$/d' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:354: ovs-vsctl-bashcomp.bash test \"--db=unix:\$OVS_RUNDIR/db.sock \""
at_fn_check_prepare_dynamic "ovs-vsctl-bashcomp.bash test \"--db=unix:$OVS_RUNDIR/db.sock \"" "completion.at:354"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "--db=unix:$OVS_RUNDIR/db.sock "
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:354"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# complete ovs-vsctl [TAB]
{ set +x
$as_echo "$at_srcdir/completion.at:359: ovs-vsctl-bashcomp.bash test \"\""
at_fn_check_prepare_trace "completion.at:359"
( $at_check_trace; ovs-vsctl-bashcomp.bash test ""
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:359"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# complete on global options.
{ set +x
$as_echo "$at_srcdir/completion.at:365: ovs-vsctl-bashcomp.bash test \"--dry-run \""
at_fn_check_prepare_trace "completion.at:365"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "--dry-run "
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:365"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/completion.at:369: ovs-vsctl-bashcomp.bash test \"--dry-run --pretty \""
at_fn_check_prepare_trace "completion.at:369"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "--dry-run --pretty "
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:369"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# complete on local options.
TMP="$(ovs-vsctl --commands | grep -- '--may-exist' | cut -d',' -f1-2 | tr -d ',[]' | tr -s ' ' '\n' | grep -v -- '--may-exist')"
MATCH="$(
echo "${TMP}" | tr ' ' '\n' | sed -e '/^$/d' | sed -e 's/$/ /g' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:377: ovs-vsctl-bashcomp.bash test \"--may-exist \""
at_fn_check_prepare_trace "completion.at:377"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "--may-exist "
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:377"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


#
# test !, +, ?, *.
#
# test !.  no following arguments are expanded.
TMP="$(ovsdb-client --no-heading list-tables)"
MATCH="$(
echo "${TMP}" | tr ' ' '\n' | sed -e '/^$/d' | sed -e 's/$/ /g' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:388: ovs-vsctl-bashcomp.bash test \"set \""
at_fn_check_prepare_trace "completion.at:388"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "set "
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:388"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# test ?.  will show completions for both current and following arguments.
ovs-vsctl br-set-external-id br0 bridge-id br0
MATCH="$(
echo "bridge-id --" | tr ' ' '\n' | sed -e '/^$/d' | sed -e 's/$/ /g' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:395: ovs-vsctl-bashcomp.bash test \"br-get-external-id br0 \""
at_fn_check_prepare_trace "completion.at:395"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "br-get-external-id br0 "
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:395"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# test *.  argument with this prefix could be completed for zero or more times.
TMP="$(ovs-vsctl --no-heading --columns=_uuid,name list Bridge | tr -d '\"')"
MATCH="$(
echo "${TMP} --" | tr ' ' '\n' | sed -e '/^$/d' | sed -e 's/$/ /g' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:402: ovs-vsctl-bashcomp.bash test \"destroy Bridge \""
at_fn_check_prepare_trace "completion.at:402"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "destroy Bridge "
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:402"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/completion.at:406: ovs-vsctl-bashcomp.bash test \"destroy Bridge br0 \""
at_fn_check_prepare_trace "completion.at:406"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "destroy Bridge br0 "
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:406"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# test +.  the first time, an argument is required, after that, it becomes '*'.
TMP="$(ovsdb-client --no-heading list-columns Open_vSwitch Bridge | awk '/key.*value/ { print $1":"; next } { print $1; next }')"
MATCH="$(
echo "${TMP}" | tr ' ' '\n' | sed -e '/^$/d' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:413: ovs-vsctl-bashcomp.bash test \"set Bridge br0 \""
at_fn_check_prepare_trace "completion.at:413"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "set Bridge br0 "
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:413"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

MATCH="$(
echo "${TMP} --" | tr ' ' '\n' | sed -e '/^$/d' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:418: ovs-vsctl-bashcomp.bash test \"set Bridge br0 other_config:random_key=123 \""
at_fn_check_prepare_trace "completion.at:418"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "set Bridge br0 other_config:random_key=123 "
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:418"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/completion.at:423: check_logs "
at_fn_check_prepare_trace "completion.at:423"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:423"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/completion.at:423: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "completion.at:423"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:423"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/completion.at:423: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "completion.at:423"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:423"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "completion.at:423: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "completion.at:423: wait failed" >&5

    $as_echo "completion.at:423" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/completion.at:423"
fi

   { set +x
$as_echo "$at_srcdir/completion.at:423: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "completion.at:423"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:423"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/completion.at:423: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "completion.at:423"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:423"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "completion.at:423: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "completion.at:423: wait failed" >&5

    $as_echo "completion.at:423" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/completion.at:423"
fi

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

ovs_init

$as_echo "completion.at:428" >"$at_check_line_file"
(test -z ${BASH_VERSION+x}) \
  && at_fn_check_skip 77 "$at_srcdir/completion.at:428"
$as_echo "completion.at:429" >"$at_check_line_file"
(eval 'test ${BASH_VERSINFO[0]} -lt 4') \
  && at_fn_check_skip 77 "$at_srcdir/completion.at:429"
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/completion.at:430: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "completion.at:430"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:430"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/completion.at:430: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "completion.at:430"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:430"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/completion.at:430: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "completion.at:430"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:430"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/completion.at:430: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "completion.at:430"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:430"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/completion.at:430: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "completion.at:430"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:430"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/completion.at:430: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "completion.at:430"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:430"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/completion.at:430: add_of_br 0 add-br br1 -- \\
       set bridge br1 datapath-type=dummy -- \\
    add-br foo -- \\
       set bridge foo datapath-type=dummy -- \\
    add-br --weird-br_name -- \\
       set bridge --weird-br_name datapath-type=dummy -- \\
    add-port br0 br0p0 -- set Interface br0p0 type=dummy -- \\
    add-port br0 br0p1 -- set Interface br0p1 type=dummy -- \\
    add-port br1 br1p0 -- set Interface br1p0 type=dummy -- \\
    add-port br1 br1p1 -- set Interface br1p1 type=dummy -- \\
    add-port foo bar -- set Interface bar type=dummy  "
at_fn_check_prepare_notrace 'an embedded newline' "completion.at:430"
( $at_check_trace; add_of_br 0 add-br br1 -- \
       set bridge br1 datapath-type=dummy -- \
    add-br foo -- \
       set bridge foo datapath-type=dummy -- \
    add-br --weird-br_name -- \
       set bridge --weird-br_name datapath-type=dummy -- \
    add-port br0 br0p0 -- set Interface br0p0 type=dummy -- \
    add-port br0 br0p1 -- set Interface br0p1 type=dummy -- \
    add-port br1 br1p0 -- set Interface br1p0 type=dummy -- \
    add-port br1 br1p1 -- set Interface br1p1 type=dummy -- \
    add-port foo bar -- set Interface bar type=dummy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:430"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


#
# test completion functions defined in '_OVS_VSCTL_ARG_COMPLETION_FUNCS'.
# therein, the different argument prefixes are also tested at the same time.
#
# A space is appended to each output if completion is configured without
# 'nospace' option.
#


#
# test: _ovs_vsctl_complete_table
#
TMP="$(ovsdb-client --no-heading list-tables)"
MATCH="$(
echo "${TMP}" | tr ' ' '\n' | sed -e '/^$/d' | sed -e 's/$/ /g' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:456: ovs-vsctl-bashcomp.bash test \"set \""
at_fn_check_prepare_trace "completion.at:456"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "set "
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:456"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

MATCH="$(
echo "Open_vSwitch" | tr ' ' '\n' | sed -e '/^$/d' | sed -e 's/$/ /g' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:461: ovs-vsctl-bashcomp.bash test \"set Open\""
at_fn_check_prepare_trace "completion.at:461"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "set Open"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:461"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



#
# test: _ovs_vsctl_complete_record
#
TMP="$(ovs-vsctl --no-heading --columns=_uuid list Open_vSwitch | tr -d '\"')"
MATCH="$(
echo "${TMP}" | tr ' ' '\n' | sed -e '/^$/d' | sed -e 's/$/ /g' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:472: ovs-vsctl-bashcomp.bash test \"set Open_vSwitch \""
at_fn_check_prepare_trace "completion.at:472"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "set Open_vSwitch "
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:472"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

TMP="$(ovs-vsctl --no-heading --columns=_uuid,name list Bridge | tr -d '\"')"
MATCH="$(
echo "${TMP}" | tr ' ' '\n' | sed -e '/^$/d' | sed -e 's/$/ /g' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:478: ovs-vsctl-bashcomp.bash test \"set Bridge \""
at_fn_check_prepare_trace "completion.at:478"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "set Bridge "
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:478"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



#
# test: _ovs_vsctl_complete_bridge
#
TMP="$(ovs-vsctl list-br)"
MATCH="$(
echo "${TMP}" | tr ' ' '\n' | sed -e '/^$/d' | sed -e 's/$/ /g' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:489: ovs-vsctl-bashcomp.bash test \"br-to-vlan \""
at_fn_check_prepare_trace "completion.at:489"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "br-to-vlan "
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:489"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# this also helps check the '_ovs_vsctl_check_startswith_string'.
MATCH="$(
echo "--weird-br_name" | tr ' ' '\n' | sed -e '/^$/d' | sed -e 's/$/ /g' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:495: ovs-vsctl-bashcomp.bash test \"br-to-vlan --\""
at_fn_check_prepare_trace "completion.at:495"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "br-to-vlan --"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:495"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



#
# test: _ovs_vsctl_complete_port
#
TMP="$(ovs-vsctl --no-heading --columns=name list Port | tr -d '\"')"
MATCH="$(
echo "${TMP}" | tr ' ' '\n' | sed -e '/^$/d' | sed -e 's/$/ /g' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:506: ovs-vsctl-bashcomp.bash test \"port-to-br \""
at_fn_check_prepare_trace "completion.at:506"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "port-to-br "
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:506"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# complete on ports in particular bridge.
TMP="$(ovs-vsctl list-ports br0)"
MATCH="$(
echo "${TMP}" | tr ' ' '\n' | sed -e '/^$/d' | sed -e 's/$/ /g' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:513: ovs-vsctl-bashcomp.bash test \"del-port br0 \""
at_fn_check_prepare_trace "completion.at:513"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "del-port br0 "
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:513"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



#
# test: _ovs_vsctl_complete_iface
#
for br in `ovs-vsctl list-br`; do
    TMP="${TMP} $(ovs-vsctl list-ifaces $br)"
done
MATCH="$(
echo "${TMP}" | tr ' ' '\n' | sed -e '/^$/d' | sed -e 's/$/ /g' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:526: ovs-vsctl-bashcomp.bash test \"iface-to-br \""
at_fn_check_prepare_trace "completion.at:526"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "iface-to-br "
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:526"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



#
# test: _ovs_vsctl_complete_bridge_fail_mode
#
MATCH="$(
echo "standalone secure" | tr ' ' '\n' | sed -e '/^$/d' | sed -e 's/$/ /g' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:536: ovs-vsctl-bashcomp.bash test \"set-fail-mode br0 \""
at_fn_check_prepare_trace "completion.at:536"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "set-fail-mode br0 "
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:536"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



#
# test: _ovs_vsctl_complete_key
#
{ set +x
$as_echo "$at_srcdir/completion.at:545: ovs-vsctl-bashcomp.bash test \"br-set-external-id br0 \""
at_fn_check_prepare_trace "completion.at:545"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "br-set-external-id br0 "
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:545"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# since there is no key added yet, we will only get our own input.
MATCH="$(
echo "test_key" | tr ' ' '\n' | sed -e '/^$/d' | sed -e 's/$/ /g' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:551: ovs-vsctl-bashcomp.bash test \"br-set-external-id br0 test_key\""
at_fn_check_prepare_trace "completion.at:551"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "br-set-external-id br0 test_key"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:551"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# now add a key, as we should see it.
ovs-vsctl br-set-external-id br0 bridge-id br0
MATCH="$(
echo "bridge-id" | tr ' ' '\n' | sed -e '/^$/d' | sed -e 's/$/ /g' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:558: ovs-vsctl-bashcomp.bash test \"br-set-external-id br0 \""
at_fn_check_prepare_trace "completion.at:558"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "br-set-external-id br0 "
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:558"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

MATCH="$(
echo "bridge-id --" | tr ' ' '\n' | sed -e '/^$/d' | sed -e 's/$/ /g' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:563: ovs-vsctl-bashcomp.bash test \"br-get-external-id br0 \""
at_fn_check_prepare_trace "completion.at:563"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "br-get-external-id br0 "
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:563"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



#
# test: _ovs_vsctl_complete_value
#
# should just return the user input.
MATCH="$(
echo "test_value --" | tr ' ' '\n' | sed -e '/^$/d' | sed -e 's/$/ /g' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:574: ovs-vsctl-bashcomp.bash test \"br-set-external-id br0 bridge-id test_value\""
at_fn_check_prepare_trace "completion.at:574"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "br-set-external-id br0 bridge-id test_value"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:574"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



#
# test: _ovs_vsctl_complete_column
#
TMP="$(ovsdb-client --no-heading list-columns Open_vSwitch Open_vSwitch | tr -d ':' | cut -d' ' -f1)"
UUID="$(ovs-vsctl --no-heading --columns=_uuid list Open_vSwitch | tr -d ' ')"
MATCH="$(
echo "${TMP}" | tr ' ' '\n' | sed -e '/^$/d' | sed -e 's/$/ /g' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:586: ovs-vsctl-bashcomp.bash test \"clear Open_vSwitch \$UUID \""
at_fn_check_prepare_dynamic "ovs-vsctl-bashcomp.bash test \"clear Open_vSwitch $UUID \"" "completion.at:586"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "clear Open_vSwitch $UUID "
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:586"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

TMP="$(ovsdb-client --no-heading list-columns Open_vSwitch Bridge | tr -d ':' | cut -d' ' -f1)"
MATCH="$(
echo "${TMP}" | tr ' ' '\n' | sed -e '/^$/d' | sed -e 's/$/ /g' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:592: ovs-vsctl-bashcomp.bash test \"clear Bridge br0 \""
at_fn_check_prepare_trace "completion.at:592"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "clear Bridge br0 "
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:592"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# the 'clear' command requires one or more (+) COLUMN.
# so, with one specified COLUMN 'other_config', it should still complete on
# COLUMNs, plus '--'.
MATCH="$(
echo "${TMP} --" | tr ' ' '\n' | sed -e '/^$/d' | sed -e 's/$/ /g' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:600: ovs-vsctl-bashcomp.bash test \"clear Bridge br0 other_config \""
at_fn_check_prepare_trace "completion.at:600"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "clear Bridge br0 other_config "
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:600"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



#
# test: _ovs_vsctl_complete_key_value
#
# with no key available, should always get user input.
MATCH="$(
echo "random_key" | tr ' ' '\n' | sed -e '/^$/d' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:611: ovs-vsctl-bashcomp.bash test \"add Bridge br0 other_config random_key\""
at_fn_check_prepare_trace "completion.at:611"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "add Bridge br0 other_config random_key"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:611"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

MATCH="$(
echo "abc" | tr ' ' '\n' | sed -e '/^$/d' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:616: ovs-vsctl-bashcomp.bash test \"add Bridge br0 other_config random_key=abc\""
at_fn_check_prepare_trace "completion.at:616"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "add Bridge br0 other_config random_key=abc"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:616"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# now add two random keys.
ovs-vsctl set Bridge br0 other_config:random_key1=abc other_config:random_val1=xyz
MATCH="$(
echo "random_key1= random_val1=" | tr ' ' '\n' | sed -e '/^$/d' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:623: ovs-vsctl-bashcomp.bash test \"add Bridge br0 other_config ran\""
at_fn_check_prepare_trace "completion.at:623"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "add Bridge br0 other_config ran"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:623"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



#
# test: _ovs_vsctl_complete_column_optkey_value
#
# at first, we should complete on column.
TMP="$(ovsdb-client --no-heading list-columns Open_vSwitch Bridge | awk '/key.*value/ { print $1":"; next } { print $1; next }')"
MATCH="$(
echo "${TMP}" | tr ' ' '\n' | sed -e '/^$/d' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:635: ovs-vsctl-bashcomp.bash test \"set Bridge br0 \""
at_fn_check_prepare_trace "completion.at:635"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "set Bridge br0 "
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:635"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

MATCH="$(
echo "other_config:" | tr ' ' '\n' | sed -e '/^$/d' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:640: ovs-vsctl-bashcomp.bash test \"set Bridge br0 other\""
at_fn_check_prepare_trace "completion.at:640"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "set Bridge br0 other"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:640"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# then, with the ':' we should complete on key.
TMP="$(ovs-vsctl --no-heading --columns=other_config list Bridge br0 | tr -d '{\"}' | tr -s ', ' '\n' | cut -d'=' -f1)"
MATCH="$(
echo "${TMP}" | tr ' ' '\n' | sed -e '/^$/d' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:647: ovs-vsctl-bashcomp.bash test \"set Bridge br0 other_config:\""
at_fn_check_prepare_trace "completion.at:647"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "set Bridge br0 other_config:"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:647"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# finally, if user fill in some value, we should just complete on user input.
MATCH="$(
echo "random_val1" | tr ' ' '\n' | sed -e '/^$/d' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:653: ovs-vsctl-bashcomp.bash test \"set Bridge br0 other_config:random_val1=12345\""
at_fn_check_prepare_trace "completion.at:653"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "set Bridge br0 other_config:random_val1=12345"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:653"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



#
# test: _ovs_vsctl_complete_filename
#
touch private_key certificate
MATCH="$(
echo "private_key" | tr ' ' '\n' | sed -e '/^$/d' | sed -e 's/$/ /g' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:664: ovs-vsctl-bashcomp.bash test \"set-ssl priva\""
at_fn_check_prepare_trace "completion.at:664"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "set-ssl priva"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:664"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

MATCH="$(
echo "certificate" | tr ' ' '\n' | sed -e '/^$/d' | sed -e 's/$/ /g' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:669: ovs-vsctl-bashcomp.bash test \"set-ssl private_key cer\""
at_fn_check_prepare_trace "completion.at:669"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "set-ssl private_key cer"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:669"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



#
# test: _ovs_vsctl_complete_target
#
MATCH="$(
echo "pssl: ptcp: punix: ssl: tcp: unix:" | tr ' ' '\n' | sed -e '/^$/d' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:679: ovs-vsctl-bashcomp.bash test \"set-manager \""
at_fn_check_prepare_trace "completion.at:679"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "set-manager "
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:679"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# filename completion on unix, punix.
MATCH="$(
echo "testsuite.log" | tr ' ' '\n' | sed -e '/^$/d' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:685: ovs-vsctl-bashcomp.bash test \"set-manager unix:test\""
at_fn_check_prepare_trace "completion.at:685"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "set-manager unix:test"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:685"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# no completion on other type, just return available types.
# in real environment, bash will not complete on anything.
MATCH="$(
echo "pssl: ptcp: punix: tcp: unix:" | tr ' ' '\n' | sed -e '/^$/d' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:692: ovs-vsctl-bashcomp.bash test \"set-manager ssl:something\""
at_fn_check_prepare_trace "completion.at:692"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "set-manager ssl:something"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:692"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



#
# test: _ovs_vsctl_complete_new
#
# test 'add-br'
{ set +x
$as_echo "$at_srcdir/completion.at:702: ovs-vsctl-bashcomp.bash test \"add-br \""
at_fn_check_prepare_trace "completion.at:702"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "add-br "
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "--- BEGIN MESSAGE
Enter a new bridge:
> ovs-vsctl add-br --- END MESSAGE
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:702"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# user input does not change the output.
{ set +x
$as_echo "$at_srcdir/completion.at:709: ovs-vsctl-bashcomp.bash test \"add-br new-br\""
at_fn_check_prepare_trace "completion.at:709"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "add-br new-br"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "--- BEGIN MESSAGE
Enter a new bridge:
> ovs-vsctl add-br new-br--- END MESSAGE
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:709"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# after specifying the new bridge name, we should complete on parent bridge.
TMP="$(ovs-vsctl list-br)"
MATCH="$(
echo "${TMP}" | tr ' ' '\n' | sed -e '/^$/d' | sed -e 's/$/ /g' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:718: ovs-vsctl-bashcomp.bash test \"add-br new-br \""
at_fn_check_prepare_trace "completion.at:718"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "add-br new-br "
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:718"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# test 'add-port'
# after specifying the new port name, we should complete on the column part
# of '*COLUMN?:KEY=VALUE'.
TMP="$(ovsdb-client --no-heading list-columns Open_vSwitch Port | awk '/key.*value/ { print $1":"; next } { print $1; next }')"
MATCH="$(
echo "${TMP} --" | tr ' ' '\n' | sed -e '/^$/d' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:727: ovs-vsctl-bashcomp.bash test \"add-port br0 new-port \""
at_fn_check_prepare_trace "completion.at:727"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "add-port br0 new-port "
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:727"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



#
# test: _ovs_vsctl_complete_dashdash
#
# after '--', there should be no global options available for completion.
TMP="$(ovs-vsctl --commands | cut -d',' -f1-2 | tr -d ',[]' | tr -s ' ' '\n')"
MATCH="$(
echo "${TMP}" | tr ' ' '\n' | sed -e '/^$/d' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:739: ovs-vsctl-bashcomp.bash test \"init -- \""
at_fn_check_prepare_trace "completion.at:739"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "init -- "
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:739"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

TMP="$(ovs-vsctl --no-heading --columns=name,_uuid list Port | tr -d '\"')"
MATCH="$(
echo "${TMP} newp1 newp2" | tr ' ' '\n' | sed -e '/^$/d' | sed -e 's/$/ /g' | sort -u
)"
{ set +x
$as_echo "$at_srcdir/completion.at:745: ovs-vsctl-bashcomp.bash test \"add-port br0 newp1 -- add-port br1 newp2 -- set Port \""
at_fn_check_prepare_trace "completion.at:745"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "add-port br0 newp1 -- add-port br1 newp2 -- set Port "
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${MATCH}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:745"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/completion.at:750: check_logs "
at_fn_check_prepare_trace "completion.at:750"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:750"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/completion.at:750: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "completion.at:750"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:750"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/completion.at:750: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "completion.at:750"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:750"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "completion.at:750: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "completion.at:750: wait failed" >&5

    $as_echo "completion.at:750" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/completion.at:750"
fi

   { set +x
$as_echo "$at_srcdir/completion.at:750: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "completion.at:750"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:750"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/completion.at:750: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "completion.at:750"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:750"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "completion.at:750: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "completion.at:750: wait failed" >&5

    $as_echo "completion.at:750" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/completion.at:750"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_8
#AT_START_9
at_fn_group_banner 9 'completion.at:754' \
  "vsctl-bashcomp - negative test" "                 " 2
at_xfail=no
(
  $as_echo "9. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "completion.at:755" >"$at_check_line_file"
(test -z ${BASH_VERSION+x}) \
  && at_fn_check_skip 77 "$at_srcdir/completion.at:755"
$as_echo "completion.at:756" >"$at_check_line_file"
(eval 'test ${BASH_VERSINFO[0]} -lt 4') \
  && at_fn_check_skip 77 "$at_srcdir/completion.at:756"
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/completion.at:757: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "completion.at:757"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:757"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/completion.at:757: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "completion.at:757"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:757"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/completion.at:757: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "completion.at:757"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:757"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/completion.at:757: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "completion.at:757"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:757"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/completion.at:757: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "completion.at:757"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:757"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/completion.at:757: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "completion.at:757"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:757"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/completion.at:757: add_of_br 0  "
at_fn_check_prepare_trace "completion.at:757"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:757"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# complete non-matching command.
{ set +x
$as_echo "$at_srcdir/completion.at:760: ovs-vsctl-bashcomp.bash test \"invalid\""
at_fn_check_prepare_trace "completion.at:760"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "invalid"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:760"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# complete after invalid command.
{ set +x
$as_echo "$at_srcdir/completion.at:766: ovs-vsctl-bashcomp.bash test \"invalid argu\""
at_fn_check_prepare_trace "completion.at:766"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "invalid argu"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:766"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# complete non-matching end argument.
{ set +x
$as_echo "$at_srcdir/completion.at:772: ovs-vsctl-bashcomp.bash test \"set INVALID_\""
at_fn_check_prepare_trace "completion.at:772"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "set INVALID_"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:772"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# complete after invalid intermediate argument.
{ set +x
$as_echo "$at_srcdir/completion.at:778: ovs-vsctl-bashcomp.bash test \"set INVALID_TBL \""
at_fn_check_prepare_trace "completion.at:778"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "set INVALID_TBL "
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "--- BEGIN MESSAGE
Cannot complete 'INVALID_TBL' at index 3:
> ovs-vsctl set INVALID_TBL --- END MESSAGE" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/completion.at:778"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# complete ovs-vsctl --db=wrongdb [TAB]
# should return 1 and show nothing.
{ set +x
$as_echo "$at_srcdir/completion.at:786: ovs-vsctl-bashcomp.bash test \"--db=wrongdb\""
at_fn_check_prepare_trace "completion.at:786"
( $at_check_trace; ovs-vsctl-bashcomp.bash test "--db=wrongdb"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/completion.at:786"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/completion.at:789: check_logs "
at_fn_check_prepare_trace "completion.at:789"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:789"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/completion.at:789: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "completion.at:789"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:789"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/completion.at:789: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "completion.at:789"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:789"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "completion.at:789: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "completion.at:789: wait failed" >&5

    $as_echo "completion.at:789" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/completion.at:789"
fi

   { set +x
$as_echo "$at_srcdir/completion.at:789: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "completion.at:789"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:789"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/completion.at:789: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "completion.at:789"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/completion.at:789"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "completion.at:789: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "completion.at:789: wait failed" >&5

    $as_echo "completion.at:789" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/completion.at:789"
fi

# delete ovsdb-server and try again.
{ set +x
$as_echo "$at_srcdir/completion.at:791: ovs-vsctl-bashcomp.bash test \"\""
at_fn_check_prepare_trace "completion.at:791"
( $at_check_trace; ovs-vsctl-bashcomp.bash test ""
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/completion.at:791"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_9
#AT_START_10
at_fn_group_banner 10 'bfd.at:52' \
  "bfd - basic config on different bridges" "        " 3
at_xfail=no
(
  $as_echo "10. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

#Create 2 bridges connected by patch ports and enable BFD
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/bfd.at:54: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "bfd.at:54"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:54"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bfd.at:54: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "bfd.at:54"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:54"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/bfd.at:54: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:54"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:54"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/bfd.at:54: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "bfd.at:54"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:54"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bfd.at:54: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "bfd.at:54"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:54"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/bfd.at:54: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:54"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:54"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/bfd.at:54: add_of_br 0 add-br br1 -- \\
       set bridge br1 datapath-type=dummy \\
       other-config:hwaddr=aa:55:aa:56:00:00 -- \\
    add-port br1 p1 -- set Interface p1 type=patch \\
       options:peer=p0 -- \\
    add-port br0 p0 -- set Interface p0 type=patch \\
       options:peer=p1 -- \\
    set Interface p0 bfd:enable=true -- \\
    set Interface p1 bfd:enable=true  "
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:54"
( $at_check_trace; add_of_br 0 add-br br1 -- \
       set bridge br1 datapath-type=dummy \
       other-config:hwaddr=aa:55:aa:56:00:00 -- \
    add-port br1 p1 -- set Interface p1 type=patch \
       options:peer=p0 -- \
    add-port br0 p0 -- set Interface p0 type=patch \
       options:peer=p1 -- \
    set Interface p0 bfd:enable=true -- \
    set Interface p1 bfd:enable=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:54"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/stop
ovs-appctl time/warp 4100 100

#Verify that BFD has been enabled on both interfaces.

{ set +x
$as_echo "$at_srcdir/bfd.at:68: ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:68"
( $at_check_trace; ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:68"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:69: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:69"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:69"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:71:  ovs-vsctl set interface p0 bfd:enable=false"
at_fn_check_prepare_trace "bfd.at:71"
( $at_check_trace;  ovs-vsctl set interface p0 bfd:enable=false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:71"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 4100 100

{ set +x
$as_echo "$at_srcdir/bfd.at:73: ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:73"
( $at_check_trace; ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: false
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: down
	Local Diagnostic: Control Detection Time Expired

	Remote Flags: none
	Remote Session State: down
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:73"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:75:  ovs-vsctl set interface p0 bfd:enable=true"
at_fn_check_prepare_trace "bfd.at:75"
( $at_check_trace;  ovs-vsctl set interface p0 bfd:enable=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:75"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 4100 100

{ set +x
$as_echo "$at_srcdir/bfd.at:77: ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:77"
( $at_check_trace; ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: Control Detection Time Expired

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:77"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:78: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:78"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: Control Detection Time Expired
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:78"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



ovs-vsctl del-br br0
{ set +x
$as_echo "$at_srcdir/bfd.at:81: ovs-appctl bfd/show p0"
at_fn_check_prepare_trace "bfd.at:81"
( $at_check_trace; ovs-appctl bfd/show p0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "no such bfd object
ovs-appctl: ovs-vswitchd: server returned an error
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 2 $at_status "$at_srcdir/bfd.at:81"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-vsctl del-br br1
#Check that the entries are gone.
{ set +x
$as_echo "$at_srcdir/bfd.at:86: ovs-appctl bfd/show p1"
at_fn_check_prepare_trace "bfd.at:86"
( $at_check_trace; ovs-appctl bfd/show p1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "no such bfd object
ovs-appctl: ovs-vswitchd: server returned an error
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 2 $at_status "$at_srcdir/bfd.at:86"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/bfd.at:90: check_logs "
at_fn_check_prepare_trace "bfd.at:90"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:90"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/bfd.at:90: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "bfd.at:90"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:90"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/bfd.at:90: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "bfd.at:90"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:90"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bfd.at:90: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bfd.at:90: wait failed" >&5

    $as_echo "bfd.at:90" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bfd.at:90"
fi

   { set +x
$as_echo "$at_srcdir/bfd.at:90: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "bfd.at:90"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:90"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/bfd.at:90: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "bfd.at:90"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:90"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bfd.at:90: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bfd.at:90: wait failed" >&5

    $as_echo "bfd.at:90" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bfd.at:90"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_10
#AT_START_11
at_fn_group_banner 11 'bfd.at:94' \
  "bfd - Verify tunnel down detection" "             " 3
at_xfail=no
(
  $as_echo "11. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

#Create 3 bridges - br-bfd0, br-bfd1 and br-sw which is midway between the two. br-sw is
#connected to br-bfd0 and br-bfd1 through patch ports p0-sw and p1-sw. Enable BFD on
#interfaces in br-bfd0 and br-bfd1. When br-sw is dropping all packets, BFD should detect
# that the tunnel is down, and come back up when br-sw is working fine.

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/bfd.at:100: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "bfd.at:100"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:100"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bfd.at:100: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "bfd.at:100"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:100"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/bfd.at:100: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:100"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:100"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/bfd.at:100: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "bfd.at:100"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:100"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bfd.at:100: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "bfd.at:100"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:100"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/bfd.at:100: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:100"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:100"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/bfd.at:100: add_of_br 0 add-br br-bfd0 -- \\
       set bridge br-bfd0 datapath-type=dummy \\
       other-config:hwaddr=aa:55:aa:56:00:00 -- \\
    add-br br-bfd1 -- \\
       set bridge br-bfd1 datapath-type=dummy \\
       other-config:hwaddr=aa:55:aa:57:00:00 -- \\
    add-br br-sw -- \\
       set bridge br-sw datapath-type=dummy \\
       other-config:hwaddr=aa:55:aa:58:00:00 -- \\
    add-port br-sw p1-sw -- set Interface p1-sw type=patch \\
       options:peer=p1 ofport_request=2 -- \\
    add-port br-sw p0-sw -- set Interface p0-sw type=patch \\
       options:peer=p0 ofport_request=1 -- \\
    add-port br-bfd1 p1 -- set Interface p1 type=patch \\
       options:peer=p1-sw bfd:enable=true -- \\
    add-port br-bfd0 p0 -- set Interface p0 type=patch \\
       options:peer=p0-sw bfd:enable=true -- "
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:100"
( $at_check_trace; add_of_br 0 add-br br-bfd0 -- \
       set bridge br-bfd0 datapath-type=dummy \
       other-config:hwaddr=aa:55:aa:56:00:00 -- \
    add-br br-bfd1 -- \
       set bridge br-bfd1 datapath-type=dummy \
       other-config:hwaddr=aa:55:aa:57:00:00 -- \
    add-br br-sw -- \
       set bridge br-sw datapath-type=dummy \
       other-config:hwaddr=aa:55:aa:58:00:00 -- \
    add-port br-sw p1-sw -- set Interface p1-sw type=patch \
       options:peer=p1 ofport_request=2 -- \
    add-port br-sw p0-sw -- set Interface p0-sw type=patch \
       options:peer=p0 ofport_request=1 -- \
    add-port br-bfd1 p1 -- set Interface p1 type=patch \
       options:peer=p1-sw bfd:enable=true -- \
    add-port br-bfd0 p0 -- set Interface p0 type=patch \
       options:peer=p0-sw bfd:enable=true --
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:100"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



ovs-appctl time/stop

#Create 2 bridges connected by patch ports and enable BFD

{ set +x
$as_echo "$at_srcdir/bfd.at:123: ovs-ofctl add-flow br-sw 'priority=0,actions=NORMAL'"
at_fn_check_prepare_trace "bfd.at:123"
( $at_check_trace; ovs-ofctl add-flow br-sw 'priority=0,actions=NORMAL'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:123"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

#Verify that BFD is enabled.
ovs-appctl time/warp 4100 100

{ set +x
$as_echo "$at_srcdir/bfd.at:126: ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:126"
( $at_check_trace; ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:126"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:127: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:127"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:127"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



#Drop all packets in the br-sw bridge so that the tunnel is down.
{ set +x
$as_echo "$at_srcdir/bfd.at:130:  ovs-ofctl add-flow br-sw 'priority=5,actions=drop' "
at_fn_check_prepare_trace "bfd.at:130"
( $at_check_trace;  ovs-ofctl add-flow br-sw 'priority=5,actions=drop'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:130"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 4100 100

{ set +x
$as_echo "$at_srcdir/bfd.at:132: ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:132"
( $at_check_trace; ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: false
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: down
	Local Diagnostic: Control Detection Time Expired

	Remote Flags: none
	Remote Session State: down
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:132"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:133: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:133"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: false
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: down
	Local Diagnostic: Control Detection Time Expired

	Remote Flags: none
	Remote Session State: down
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:133"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



#Delete the added flow
{ set +x
$as_echo "$at_srcdir/bfd.at:136: ovs-ofctl del-flows br-sw"
at_fn_check_prepare_trace "bfd.at:136"
( $at_check_trace; ovs-ofctl del-flows br-sw
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:136"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bfd.at:137: ovs-ofctl add-flow br-sw 'priority=0,actions=NORMAL'"
at_fn_check_prepare_trace "bfd.at:137"
( $at_check_trace; ovs-ofctl add-flow br-sw 'priority=0,actions=NORMAL'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:137"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

#Verify that BFD is back up again.
ovs-appctl time/warp 4100 100


{ set +x
$as_echo "$at_srcdir/bfd.at:141: ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:141"
( $at_check_trace; ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: Control Detection Time Expired

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: Control Detection Time Expired
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:141"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:142: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:142"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: Control Detection Time Expired

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: Control Detection Time Expired
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:142"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



#Now, Verify one-side tunnel down detection
#When br-sw is dropping packets from one end, BFD should detect
# that the tunnel is down, and come back up when br-sw is working fine.

#Bring down the br-bfd1 - br-sw link. So BFD packets will be sent from p0,
# but not received by p1. p0 will receive all BFD packets from p1.

{ set +x
$as_echo "$at_srcdir/bfd.at:151:  ovs-ofctl add-flow br-sw 'in_port=1,priority=5,actions=drop'"
at_fn_check_prepare_trace "bfd.at:151"
( $at_check_trace;  ovs-ofctl add-flow br-sw 'in_port=1,priority=5,actions=drop'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:151"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 4100 100
# Make sure p1 BFD state is down since it received no BFD packets.

{ set +x
$as_echo "$at_srcdir/bfd.at:154: ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:154"
( $at_check_trace; ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: false
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: down
	Local Diagnostic: Control Detection Time Expired

	Remote Flags: none
	Remote Session State: down
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:154"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 4100 100

# p0 will be in init state once it receives "down" BFD message from p1.

{ set +x
$as_echo "$at_srcdir/bfd.at:158: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:158"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: false
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: init
	Local Diagnostic: Neighbor Signaled Session Down

	Remote Flags: none
	Remote Session State: down
	Remote Diagnostic: Control Detection Time Expired
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:158"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:160: ovs-ofctl del-flows br-sw"
at_fn_check_prepare_trace "bfd.at:160"
( $at_check_trace; ovs-ofctl del-flows br-sw
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:160"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bfd.at:161: ovs-ofctl add-flow br-sw 'priority=0,actions=NORMAL'"
at_fn_check_prepare_trace "bfd.at:161"
( $at_check_trace; ovs-ofctl add-flow br-sw 'priority=0,actions=NORMAL'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:161"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

#Ensure that BFD is back up again.

ovs-appctl time/warp 1100 100
#Bring down the br-bfd0 - br-sw link
{ set +x
$as_echo "$at_srcdir/bfd.at:166:  ovs-ofctl add-flow br-sw 'in_port=2,priority=5,actions=drop'"
at_fn_check_prepare_trace "bfd.at:166"
( $at_check_trace;  ovs-ofctl add-flow br-sw 'in_port=2,priority=5,actions=drop'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:166"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 4100 100

{ set +x
$as_echo "$at_srcdir/bfd.at:168: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:168"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: false
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: down
	Local Diagnostic: Control Detection Time Expired

	Remote Flags: none
	Remote Session State: down
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:168"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 4100 100

{ set +x
$as_echo "$at_srcdir/bfd.at:170: ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:170"
( $at_check_trace; ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: false
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: init
	Local Diagnostic: Neighbor Signaled Session Down

	Remote Flags: none
	Remote Session State: down
	Remote Diagnostic: Control Detection Time Expired
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:170"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/bfd.at:171: check_logs "
at_fn_check_prepare_trace "bfd.at:171"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:171"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/bfd.at:171: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "bfd.at:171"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:171"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/bfd.at:171: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "bfd.at:171"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:171"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bfd.at:171: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bfd.at:171: wait failed" >&5

    $as_echo "bfd.at:171" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bfd.at:171"
fi

   { set +x
$as_echo "$at_srcdir/bfd.at:171: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "bfd.at:171"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:171"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/bfd.at:171: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "bfd.at:171"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:171"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bfd.at:171: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bfd.at:171: wait failed" >&5

    $as_echo "bfd.at:171" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bfd.at:171"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_11
#AT_START_12
at_fn_group_banner 12 'bfd.at:175' \
  "bfd - concatenated path down" "                   " 3
at_xfail=no
(
  $as_echo "12. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

#Create 2 bridges connected by patch ports and enable BFD
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/bfd.at:177: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "bfd.at:177"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:177"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bfd.at:177: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "bfd.at:177"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:177"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/bfd.at:177: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:177"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:177"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/bfd.at:177: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "bfd.at:177"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:177"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bfd.at:177: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "bfd.at:177"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:177"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/bfd.at:177: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:177"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:177"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/bfd.at:177: add_of_br 0  "
at_fn_check_prepare_trace "bfd.at:177"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:177"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/stop
{ set +x
$as_echo "$at_srcdir/bfd.at:179:  ovs-vsctl -- add-br br1 -- \\
           set bridge br1 datapath-type=dummy \\
           other-config:hwaddr=aa:55:aa:56:00:00 "
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:179"
( $at_check_trace;  ovs-vsctl -- add-br br1 -- \
           set bridge br1 datapath-type=dummy \
           other-config:hwaddr=aa:55:aa:56:00:00
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:179"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bfd.at:182:  ovs-vsctl -- add-port br1 p1 -- set Interface p1 type=patch \\
           options:peer=p0 "
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:182"
( $at_check_trace;  ovs-vsctl -- add-port br1 p1 -- set Interface p1 type=patch \
           options:peer=p0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:182"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bfd.at:184:  ovs-vsctl -- add-port br0 p0 -- set Interface p0 type=patch \\
           options:peer=p1 "
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:184"
( $at_check_trace;  ovs-vsctl -- add-port br0 p0 -- set Interface p0 type=patch \
           options:peer=p1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:184"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bfd.at:186:  ovs-vsctl -- set interface p0 bfd:enable=true "
at_fn_check_prepare_trace "bfd.at:186"
( $at_check_trace;  ovs-vsctl -- set interface p0 bfd:enable=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:186"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bfd.at:187:  ovs-vsctl -- set interface p1 bfd:enable=true "
at_fn_check_prepare_trace "bfd.at:187"
( $at_check_trace;  ovs-vsctl -- set interface p1 bfd:enable=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:187"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 4100 100

#Verify that BFD has been enabled on both interfaces.

{ set +x
$as_echo "$at_srcdir/bfd.at:191: ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:191"
( $at_check_trace; ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:192: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:192"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:192"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



#Set cpath_down to true on one interface, make sure the remote interface updates its values.
{ set +x
$as_echo "$at_srcdir/bfd.at:195: ovs-vsctl set interface p0 bfd:cpath_down=true"
at_fn_check_prepare_trace "bfd.at:195"
( $at_check_trace; ovs-vsctl set interface p0 bfd:cpath_down=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:195"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 4100 100

{ set +x
$as_echo "$at_srcdir/bfd.at:197: ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:197"
( $at_check_trace; ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: false
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: Concatenated Path Down
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:197"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/bfd.at:198: check_logs "
at_fn_check_prepare_trace "bfd.at:198"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:198"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/bfd.at:198: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "bfd.at:198"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:198"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/bfd.at:198: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "bfd.at:198"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:198"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bfd.at:198: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bfd.at:198: wait failed" >&5

    $as_echo "bfd.at:198" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bfd.at:198"
fi

   { set +x
$as_echo "$at_srcdir/bfd.at:198: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "bfd.at:198"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:198"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/bfd.at:198: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "bfd.at:198"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:198"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bfd.at:198: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bfd.at:198: wait failed" >&5

    $as_echo "bfd.at:198" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bfd.at:198"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_12
#AT_START_13
at_fn_group_banner 13 'bfd.at:202' \
  "bfd - Edit the Min Tx/Rx values" "                " 3
at_xfail=no
(
  $as_echo "13. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

#Create 2 bridges connected by patch ports and enable BFD
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/bfd.at:204: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "bfd.at:204"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:204"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bfd.at:204: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "bfd.at:204"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:204"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/bfd.at:204: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:204"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:204"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/bfd.at:204: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "bfd.at:204"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:204"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bfd.at:204: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "bfd.at:204"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:204"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/bfd.at:204: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:204"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:204"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/bfd.at:204: add_of_br 0  "
at_fn_check_prepare_trace "bfd.at:204"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:204"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/stop
{ set +x
$as_echo "$at_srcdir/bfd.at:206:  ovs-vsctl -- add-br br1 -- \\
           set bridge br1 datapath-type=dummy "
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:206"
( $at_check_trace;  ovs-vsctl -- add-br br1 -- \
           set bridge br1 datapath-type=dummy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:206"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bfd.at:208:  ovs-vsctl -- add-port br1 p1 -- set Interface p1 type=patch \\
           options:peer=p0 "
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:208"
( $at_check_trace;  ovs-vsctl -- add-port br1 p1 -- set Interface p1 type=patch \
           options:peer=p0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:208"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bfd.at:210:  ovs-vsctl -- add-port br0 p0 -- set Interface p0 type=patch \\
           options:peer=p1 "
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:210"
( $at_check_trace;  ovs-vsctl -- add-port br0 p0 -- set Interface p0 type=patch \
           options:peer=p1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:210"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bfd.at:212:  ovs-vsctl -- set interface p0 bfd:enable=true "
at_fn_check_prepare_trace "bfd.at:212"
( $at_check_trace;  ovs-vsctl -- set interface p0 bfd:enable=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:212"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bfd.at:213:  ovs-vsctl -- set interface p1 bfd:enable=true "
at_fn_check_prepare_trace "bfd.at:213"
( $at_check_trace;  ovs-vsctl -- set interface p1 bfd:enable=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:213"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 3100 100
#Verify that BFD has been enabled on both interfaces.

{ set +x
$as_echo "$at_srcdir/bfd.at:216: ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:216"
( $at_check_trace; ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:216"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:217: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:217"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:217"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


#Edit the min Tx value.
{ set +x
$as_echo "$at_srcdir/bfd.at:219: ovs-vsctl set interface p0 bfd:min_tx=200"
at_fn_check_prepare_trace "bfd.at:219"
( $at_check_trace; ovs-vsctl set interface p0 bfd:min_tx=200
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:219"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 2100 100

{ set +x
$as_echo "$at_srcdir/bfd.at:221: ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:221"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	TX Interval: Approx 1000ms
	Local Minimum TX Interval: 200ms
	Remote Minimum TX Interval: 100ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:221"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:222: ovs-appctl bfd/show p1 | sed -n '/TX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:222"
( $at_check_trace; ovs-appctl bfd/show p1 | sed -n '/TX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	TX Interval: Approx 1000ms
	Local Minimum TX Interval: 100ms
	Remote Minimum TX Interval: 200ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:222"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



#Edit the min Rx value.
{ set +x
$as_echo "$at_srcdir/bfd.at:225: ovs-vsctl set interface p1 bfd:min_rx=300"
at_fn_check_prepare_trace "bfd.at:225"
( $at_check_trace; ovs-vsctl set interface p1 bfd:min_rx=300
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:225"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 2100 100

{ set +x
$as_echo "$at_srcdir/bfd.at:227: ovs-appctl bfd/show p1 | sed -n '/RX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:227"
( $at_check_trace; ovs-appctl bfd/show p1 | sed -n '/RX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	RX Interval: Approx 300ms
	Local Minimum RX Interval: 300ms
	Remote Minimum RX Interval: 1000ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:227"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:228: ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:228"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	RX Interval: Approx 1000ms
	Local Minimum RX Interval: 1000ms
	Remote Minimum RX Interval: 300ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:228"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:230: check_logs "
at_fn_check_prepare_trace "bfd.at:230"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:230"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/bfd.at:230: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "bfd.at:230"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:230"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/bfd.at:230: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "bfd.at:230"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:230"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bfd.at:230: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bfd.at:230: wait failed" >&5

    $as_echo "bfd.at:230" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bfd.at:230"
fi

   { set +x
$as_echo "$at_srcdir/bfd.at:230: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "bfd.at:230"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:230"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/bfd.at:230: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "bfd.at:230"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:230"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bfd.at:230: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bfd.at:230: wait failed" >&5

    $as_echo "bfd.at:230" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bfd.at:230"
fi

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

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/bfd.at:234: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "bfd.at:234"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:234"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bfd.at:234: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "bfd.at:234"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:234"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/bfd.at:234: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:234"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:234"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/bfd.at:234: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "bfd.at:234"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:234"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bfd.at:234: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "bfd.at:234"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:234"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/bfd.at:234: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:234"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:234"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/bfd.at:234: add_of_br 0 add-port br0 p1 -- set Interface p1 type=gre \\
                    options:remote_ip=2.2.2.2 options:key=1 ofport_request=1 -- \\
                    set interface p1 bfd:enable=true -- \\
                    set bridge br0 fail-mode=standalone "
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:234"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=gre \
                    options:remote_ip=2.2.2.2 options:key=1 ofport_request=1 -- \
                    set interface p1 bfd:enable=true -- \
                    set bridge br0 fail-mode=standalone
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:234"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# by default check_tnl_key is false. so we should process a bfd packet with tun_id=1.
{ set +x
$as_echo "$at_srcdir/bfd.at:240: ovs-appctl ofproto/trace ovs-dummy 'tunnel(tun_id=0x1,src=2.2.2.2,dst=2.2.2.1,tos=0x0,ttl=64,tp_src=0,tp_dst=0,flags(key)),in_port(1),skb_mark(0/0),eth(src=00:11:22:33:44:55,dst=00:23:20:00:00:01),eth_type(0x0800),ipv4(src=169.254.1.0/0.0.0.0,dst=169.254.1.1/0.0.0.0,proto=17/0xff,tos=0/0,ttl=255/0,frag=no),udp(src=49152/0,dst=3784/0xffff)' -generate"
at_fn_check_prepare_trace "bfd.at:240"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'tunnel(tun_id=0x1,src=2.2.2.2,dst=2.2.2.1,tos=0x0,ttl=64,tp_src=0,tp_dst=0,flags(key)),in_port(1),skb_mark(0/0),eth(src=00:11:22:33:44:55,dst=00:23:20:00:00:01),eth_type(0x0800),ipv4(src=169.254.1.0/0.0.0.0,dst=169.254.1.1/0.0.0.0,proto=17/0xff,tos=0/0,ttl=255/0,frag=no),udp(src=49152/0,dst=3784/0xffff)' -generate
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:240"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# check that the packet should be handled as BFD packet.
{ set +x
$as_echo "$at_srcdir/bfd.at:242: tail -2 stdout"
at_fn_check_prepare_trace "bfd.at:242"
( $at_check_trace; tail -2 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "This flow is handled by the userspace slow path because it:
	- Consists of BFD packets.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:242"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# turn on the check_tnl_key.
{ set +x
$as_echo "$at_srcdir/bfd.at:248: ovs-vsctl set interface p1 bfd:check_tnl_key=true"
at_fn_check_prepare_trace "bfd.at:248"
( $at_check_trace; ovs-vsctl set interface p1 bfd:check_tnl_key=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:248"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bfd.at:249: ovs-appctl ofproto/trace ovs-dummy 'tunnel(tun_id=0x1,src=2.2.2.2,dst=2.2.2.1,tos=0x0,ttl=64,tp_src=0,tp_dst=0,flags(key)),in_port(1),skb_mark(0/0),eth(src=00:11:22:33:44:55,dst=00:23:20:00:00:01),eth_type(0x0800),ipv4(src=169.254.1.0/0.0.0.0,dst=169.254.1.1/0.0.0.0,proto=17/0xff,tos=0/0,ttl=255/0,frag=no),udp(src=49152/0,dst=3784/0xffff)' -generate"
at_fn_check_prepare_trace "bfd.at:249"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'tunnel(tun_id=0x1,src=2.2.2.2,dst=2.2.2.1,tos=0x0,ttl=64,tp_src=0,tp_dst=0,flags(key)),in_port(1),skb_mark(0/0),eth(src=00:11:22:33:44:55,dst=00:23:20:00:00:01),eth_type(0x0800),ipv4(src=169.254.1.0/0.0.0.0,dst=169.254.1.1/0.0.0.0,proto=17/0xff,tos=0/0,ttl=255/0,frag=no),udp(src=49152/0,dst=3784/0xffff)' -generate
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:249"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# check that the packet should be handled as normal packet.
{ set +x
$as_echo "$at_srcdir/bfd.at:251: tail -1 stdout"
at_fn_check_prepare_trace "bfd.at:251"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 100
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:251"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# set the tunnel key to 0.
{ set +x
$as_echo "$at_srcdir/bfd.at:256: ovs-vsctl set interface p1 options:key=0"
at_fn_check_prepare_trace "bfd.at:256"
( $at_check_trace; ovs-vsctl set interface p1 options:key=0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:256"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bfd.at:257: ovs-appctl ofproto/trace ovs-dummy 'tunnel(tun_id=0x0,src=2.2.2.2,dst=2.2.2.1,tos=0x0,ttl=64,tp_src=0,tp_dst=0,flags(key)),in_port(1),skb_mark(0/0),eth(src=00:11:22:33:44:55,dst=00:23:20:00:00:01),eth_type(0x0800),ipv4(src=169.254.1.0/0.0.0.0,dst=169.254.1.1/0.0.0.0,proto=17/0xff,tos=0/0,ttl=255/0,frag=no),udp(src=49152/0,dst=3784/0xffff)' -generate"
at_fn_check_prepare_trace "bfd.at:257"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'tunnel(tun_id=0x0,src=2.2.2.2,dst=2.2.2.1,tos=0x0,ttl=64,tp_src=0,tp_dst=0,flags(key)),in_port(1),skb_mark(0/0),eth(src=00:11:22:33:44:55,dst=00:23:20:00:00:01),eth_type(0x0800),ipv4(src=169.254.1.0/0.0.0.0,dst=169.254.1.1/0.0.0.0,proto=17/0xff,tos=0/0,ttl=255/0,frag=no),udp(src=49152/0,dst=3784/0xffff)' -generate
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:257"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# check that the packet should be handled as BFD packet.
{ set +x
$as_echo "$at_srcdir/bfd.at:259: tail -2 stdout"
at_fn_check_prepare_trace "bfd.at:259"
( $at_check_trace; tail -2 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "This flow is handled by the userspace slow path because it:
	- Consists of BFD packets.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:259"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/bfd.at:264: check_logs "
at_fn_check_prepare_trace "bfd.at:264"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:264"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/bfd.at:264: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "bfd.at:264"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:264"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/bfd.at:264: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "bfd.at:264"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:264"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bfd.at:264: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bfd.at:264: wait failed" >&5

    $as_echo "bfd.at:264" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bfd.at:264"
fi

   { set +x
$as_echo "$at_srcdir/bfd.at:264: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "bfd.at:264"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:264"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/bfd.at:264: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "bfd.at:264"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:264"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bfd.at:264: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bfd.at:264: wait failed" >&5

    $as_echo "bfd.at:264" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bfd.at:264"
fi

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

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/bfd.at:269: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "bfd.at:269"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:269"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bfd.at:269: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "bfd.at:269"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:269"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/bfd.at:269: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:269"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:269"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/bfd.at:269: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "bfd.at:269"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:269"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bfd.at:269: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "bfd.at:269"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:269"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/bfd.at:269: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:269"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:269"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/bfd.at:269: add_of_br 0 add-br br1 -- set bridge br1 datapath-type=dummy -- \\
                    add-port br1 p1 -- set Interface p1 type=patch \\
                    options:peer=p0 ofport_request=2 -- \\
                    add-port br0 p0 -- set Interface p0 type=patch \\
                    options:peer=p1 ofport_request=1 -- \\
                    set Interface p0 bfd:enable=true bfd:min_tx=300 bfd:min_rx=300 -- \\
                    set Interface p1 bfd:enable=true bfd:min_tx=500 bfd:min_rx=500 "
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:269"
( $at_check_trace; add_of_br 0 add-br br1 -- set bridge br1 datapath-type=dummy -- \
                    add-port br1 p1 -- set Interface p1 type=patch \
                    options:peer=p0 ofport_request=2 -- \
                    add-port br0 p0 -- set Interface p0 type=patch \
                    options:peer=p1 ofport_request=1 -- \
                    set Interface p0 bfd:enable=true bfd:min_tx=300 bfd:min_rx=300 -- \
                    set Interface p1 bfd:enable=true bfd:min_tx=500 bfd:min_rx=500
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:269"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



ovs-appctl time/stop

# wait for a while to stablize everything.
ovs-appctl time/warp 10000 500

{ set +x
$as_echo "$at_srcdir/bfd.at:281: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:281"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:281"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:282: ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:282"
( $at_check_trace; ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:282"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:283: ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:283"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	TX Interval: Approx 500ms
	Local Minimum TX Interval: 300ms
	Remote Minimum TX Interval: 500ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:283"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:284: ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:284"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	RX Interval: Approx 500ms
	Local Minimum RX Interval: 300ms
	Remote Minimum RX Interval: 500ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:284"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Test-1 BFD decay: decay to decay_min_rx
{ set +x
$as_echo "$at_srcdir/bfd.at:287: ovs-vsctl set interface p0 bfd:decay_min_rx=3000"
at_fn_check_prepare_trace "bfd.at:287"
( $at_check_trace; ovs-vsctl set interface p0 bfd:decay_min_rx=3000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:287"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# bfd:decay_min_rx is set to 3000ms after the local state of p0 goes up,
# so for the first 2000ms, there should be no change.
ovs-appctl time/warp 2000 500

{ set +x
$as_echo "$at_srcdir/bfd.at:291: ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:291"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	TX Interval: Approx 500ms
	Local Minimum TX Interval: 300ms
	Remote Minimum TX Interval: 500ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:291"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:292: ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:292"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	RX Interval: Approx 500ms
	Local Minimum RX Interval: 300ms
	Remote Minimum RX Interval: 500ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:292"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# advance the clock by 5000ms.
ovs-appctl time/warp 5000 500
# now, min_rx should decay to 3000ms.

{ set +x
$as_echo "$at_srcdir/bfd.at:297: ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:297"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	TX Interval: Approx 500ms
	Local Minimum TX Interval: 300ms
	Remote Minimum TX Interval: 500ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:297"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:298: ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:298"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	RX Interval: Approx 3000ms
	Local Minimum RX Interval: 3000ms
	Remote Minimum RX Interval: 500ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:298"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# advance clock by 5000ms and check the flags are all 'none'.
ovs-appctl time/warp 5000 500

{ set +x
$as_echo "$at_srcdir/bfd.at:302: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:302"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:302"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:303: ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:303"
( $at_check_trace; ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:303"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:304: ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:304"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	TX Interval: Approx 500ms
	Local Minimum TX Interval: 300ms
	Remote Minimum TX Interval: 500ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:304"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:305: ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:305"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	RX Interval: Approx 3000ms
	Local Minimum RX Interval: 3000ms
	Remote Minimum RX Interval: 500ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:305"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# End of Test-1 ###############################################################


# Test-2 BFD decay: go back to min_rx when there is traffic
# receive packet at 1/100ms rate for 5000ms.
for i in `seq 0 49`
do
    ovs-appctl time/warp 100
    { set +x
$as_echo "$at_srcdir/bfd.at:314: ovs-ofctl packet-out br1 \"in_port=3 packet=90e2ba01475000101856b2e80806000108000604000100101856b2e80202020300000000000002020202 actions=2\""
at_fn_check_prepare_trace "bfd.at:314"
( $at_check_trace; ovs-ofctl packet-out br1 "in_port=3 packet=90e2ba01475000101856b2e80806000108000604000100101856b2e80202020300000000000002020202 actions=2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:314"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

done
# after a decay interval (3000ms), the p0 min_rx will go back to
# min_rx.

{ set +x
$as_echo "$at_srcdir/bfd.at:319: ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:319"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	TX Interval: Approx 500ms
	Local Minimum TX Interval: 300ms
	Remote Minimum TX Interval: 500ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:319"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:320: ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:320"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	RX Interval: Approx 500ms
	Local Minimum RX Interval: 300ms
	Remote Minimum RX Interval: 500ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:320"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# End of Test-2 ###############################################################


# Test-3 BFD decay: set decay_min_rx to 1000ms.
# this should firstly reset the min_rx and then re-decay to 1000ms.
{ set +x
$as_echo "$at_srcdir/bfd.at:326: ovs-vsctl set Interface p0 bfd:decay_min_rx=1000"
at_fn_check_prepare_trace "bfd.at:326"
( $at_check_trace; ovs-vsctl set Interface p0 bfd:decay_min_rx=1000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:326"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# advance the clock by 10000ms, decay should have happened.
ovs-appctl time/warp 10000 500

{ set +x
$as_echo "$at_srcdir/bfd.at:329: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:329"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:329"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:330: ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:330"
( $at_check_trace; ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:330"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:331: ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:331"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	TX Interval: Approx 500ms
	Local Minimum TX Interval: 300ms
	Remote Minimum TX Interval: 500ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:331"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:332: ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:332"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	RX Interval: Approx 1000ms
	Local Minimum RX Interval: 1000ms
	Remote Minimum RX Interval: 500ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:332"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# End of Test-3 ###############################################################


# Test-4 BFD decay: set decay_min_rx to 0 to disable bfd decay.
{ set +x
$as_echo "$at_srcdir/bfd.at:337: ovs-vsctl set Interface p0 bfd:decay_min_rx=0"
at_fn_check_prepare_trace "bfd.at:337"
( $at_check_trace; ovs-vsctl set Interface p0 bfd:decay_min_rx=0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:337"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# advance the clock by 5000ms.
ovs-appctl time/warp 10000 500
# min_rx is reset.

{ set +x
$as_echo "$at_srcdir/bfd.at:341: ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:341"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	TX Interval: Approx 500ms
	Local Minimum TX Interval: 300ms
	Remote Minimum TX Interval: 500ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:341"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:342: ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:342"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	RX Interval: Approx 500ms
	Local Minimum RX Interval: 300ms
	Remote Minimum RX Interval: 500ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:342"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



for i in `seq 0 20`
do
    ovs-appctl time/warp 500

{ set +x
$as_echo "$at_srcdir/bfd.at:347: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:347"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:347"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:348: ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:348"
( $at_check_trace; ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:348"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:349: ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:349"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	TX Interval: Approx 500ms
	Local Minimum TX Interval: 300ms
	Remote Minimum TX Interval: 500ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:349"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:350: ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:350"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	RX Interval: Approx 500ms
	Local Minimum RX Interval: 300ms
	Remote Minimum RX Interval: 500ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:350"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


done
# End of Test-4 ################################################################


# Test-5 BFD decay: rmt_min_tx is greater than decay_min_rx
{ set +x
$as_echo "$at_srcdir/bfd.at:356: ovs-vsctl set Interface p0 bfd:decay_min_rx=3000 -- set interface p1 bfd:min_tx=5000"
at_fn_check_prepare_trace "bfd.at:356"
( $at_check_trace; ovs-vsctl set Interface p0 bfd:decay_min_rx=3000 -- set interface p1 bfd:min_tx=5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:356"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# advance the clock by 10000ms to stable everything.
ovs-appctl time/warp 10000 500

{ set +x
$as_echo "$at_srcdir/bfd.at:359: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:359"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:359"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:360: ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:360"
( $at_check_trace; ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:360"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# p0 rx should show 5000ms even if it is in decay.

{ set +x
$as_echo "$at_srcdir/bfd.at:362: ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:362"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	TX Interval: Approx 500ms
	Local Minimum TX Interval: 300ms
	Remote Minimum TX Interval: 5000ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:362"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:363: ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:363"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	RX Interval: Approx 5000ms
	Local Minimum RX Interval: 3000ms
	Remote Minimum RX Interval: 500ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:363"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# then, there should be no change of status,
for i in `seq 0 19`
do
    ovs-appctl time/warp 500

{ set +x
$as_echo "$at_srcdir/bfd.at:368: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:368"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:368"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:369: ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:369"
( $at_check_trace; ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:369"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:370: ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:370"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	TX Interval: Approx 500ms
	Local Minimum TX Interval: 300ms
	Remote Minimum TX Interval: 5000ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:370"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:371: ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:371"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	RX Interval: Approx 5000ms
	Local Minimum RX Interval: 3000ms
	Remote Minimum RX Interval: 500ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:371"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


done
# reset the p1's min_tx to 500ms.
{ set +x
$as_echo "$at_srcdir/bfd.at:374: ovs-vsctl set Interface p1 bfd:min_tx=500"
at_fn_check_prepare_trace "bfd.at:374"
( $at_check_trace; ovs-vsctl set Interface p1 bfd:min_tx=500
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:374"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# advance the clock by 20000ms to stable everything.
# since p0 has been in decay, now the RX will show 3000ms.
ovs-appctl time/warp 20000 500

{ set +x
$as_echo "$at_srcdir/bfd.at:378: ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:378"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	TX Interval: Approx 500ms
	Local Minimum TX Interval: 300ms
	Remote Minimum TX Interval: 500ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:378"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:379: ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:379"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	RX Interval: Approx 3000ms
	Local Minimum RX Interval: 3000ms
	Remote Minimum RX Interval: 500ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:379"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# End of Test-5 ###############################################################


# Test-6 BFD decay: state up->down->up.
# turn bfd off on p1
{ set +x
$as_echo "$at_srcdir/bfd.at:385: ovs-vsctl set Interface p1 bfd:enable=false"
at_fn_check_prepare_trace "bfd.at:385"
( $at_check_trace; ovs-vsctl set Interface p1 bfd:enable=false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:385"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# advance the clock by 15000ms to stable everything.
ovs-appctl time/warp 15000 1000

{ set +x
$as_echo "$at_srcdir/bfd.at:389: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:389"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: false
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: down
	Local Diagnostic: Control Detection Time Expired

	Remote Flags: none
	Remote Session State: down
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:389"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:390: ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:390"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	TX Interval: Approx 1000ms
	Local Minimum TX Interval: 1000ms
	Remote Minimum TX Interval: 0ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:390"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:391: ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:391"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	RX Interval: Approx 300ms
	Local Minimum RX Interval: 300ms
	Remote Minimum RX Interval: 1ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:391"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# resume the bfd on p1. the bfd should not go to decay mode direclty.
{ set +x
$as_echo "$at_srcdir/bfd.at:394: ovs-vsctl set Interface p1 bfd:enable=true"
at_fn_check_prepare_trace "bfd.at:394"
( $at_check_trace; ovs-vsctl set Interface p1 bfd:enable=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:394"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 1500 500

{ set +x
$as_echo "$at_srcdir/bfd.at:396: ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:396"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	TX Interval: Approx 500ms
	Local Minimum TX Interval: 300ms
	Remote Minimum TX Interval: 500ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:396"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:397: ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:397"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	RX Interval: Approx 500ms
	Local Minimum RX Interval: 300ms
	Remote Minimum RX Interval: 500ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:397"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# since the decay_min_rx is still 3000ms, so after 5000ms, p0 should have decayed.
ovs-appctl time/warp 5000 500

{ set +x
$as_echo "$at_srcdir/bfd.at:401: ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:401"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	TX Interval: Approx 500ms
	Local Minimum TX Interval: 300ms
	Remote Minimum TX Interval: 500ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:401"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:402: ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:402"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	RX Interval: Approx 3000ms
	Local Minimum RX Interval: 3000ms
	Remote Minimum RX Interval: 500ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:402"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# End of Test-6 ################################################################

{ set +x
$as_echo "$at_srcdir/bfd.at:405: check_logs "
at_fn_check_prepare_trace "bfd.at:405"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:405"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/bfd.at:405: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "bfd.at:405"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:405"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/bfd.at:405: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "bfd.at:405"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:405"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bfd.at:405: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bfd.at:405: wait failed" >&5

    $as_echo "bfd.at:405" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bfd.at:405"
fi

   { set +x
$as_echo "$at_srcdir/bfd.at:405: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "bfd.at:405"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:405"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/bfd.at:405: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "bfd.at:405"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:405"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bfd.at:405: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bfd.at:405: wait failed" >&5

    $as_echo "bfd.at:405" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bfd.at:405"
fi

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

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/bfd.at:416: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "bfd.at:416"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:416"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bfd.at:416: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "bfd.at:416"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:416"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/bfd.at:416: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:416"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:416"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/bfd.at:416: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "bfd.at:416"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:416"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bfd.at:416: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "bfd.at:416"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:416"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/bfd.at:416: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:416"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:416"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/bfd.at:416: add_of_br 0 add-br br1 -- set bridge br1 datapath-type=dummy -- \\
                    add-port br1 p1 -- set Interface p1 type=patch \\
                    options:peer=p0 ofport_request=2 -- \\
                    add-port br0 p0 -- set Interface p0 type=patch \\
                    options:peer=p1 ofport_request=1 -- \\
                    set Interface p0 bfd:enable=true bfd:min_tx=500 bfd:min_rx=500 -- \\
                    add-port br1 p2 -- set Interface p2 type=internal ofport_request=3 "
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:416"
( $at_check_trace; add_of_br 0 add-br br1 -- set bridge br1 datapath-type=dummy -- \
                    add-port br1 p1 -- set Interface p1 type=patch \
                    options:peer=p0 ofport_request=2 -- \
                    add-port br0 p0 -- set Interface p0 type=patch \
                    options:peer=p1 ofport_request=1 -- \
                    set Interface p0 bfd:enable=true bfd:min_tx=500 bfd:min_rx=500 -- \
                    add-port br1 p2 -- set Interface p2 type=internal ofport_request=3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:416"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



ovs-appctl time/stop
# check the inital status.

{ set +x
$as_echo "$at_srcdir/bfd.at:426: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:426"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: false
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: down
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: down
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:426"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:427: ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:427"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	TX Interval: Approx 1000ms
	Local Minimum TX Interval: 1000ms
	Remote Minimum TX Interval: 0ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:427"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:428: ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:428"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	RX Interval: Approx 500ms
	Local Minimum RX Interval: 500ms
	Remote Minimum RX Interval: 1ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:428"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# enable forwarding_if_rx.
{ set +x
$as_echo "$at_srcdir/bfd.at:431: ovs-vsctl set Interface p0 bfd:forwarding_if_rx=true"
at_fn_check_prepare_trace "bfd.at:431"
( $at_check_trace; ovs-vsctl set Interface p0 bfd:forwarding_if_rx=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:431"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# there should be no change of forwarding flag, since
# there is no traffic.
for i in `seq 0 3`
do
    ovs-appctl time/warp 500

{ set +x
$as_echo "$at_srcdir/bfd.at:438: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:438"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: false
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: down
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: down
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:438"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


done

# receive packet at 1/100ms rate for 2000ms.
for i in `seq 0 19`
do
    ovs-appctl time/warp 100
    { set +x
$as_echo "$at_srcdir/bfd.at:445: ovs-ofctl packet-out br1 \"in_port=3 packet=90e2ba01475000101856b2e80806000108000604000100101856b2e80202020300000000000002020202 actions=2\""
at_fn_check_prepare_trace "bfd.at:445"
( $at_check_trace; ovs-ofctl packet-out br1 "in_port=3 packet=90e2ba01475000101856b2e80806000108000604000100101856b2e80202020300000000000002020202 actions=2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:445"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

done
# the forwarding flag should be false, due to the demand_rx_bfd.

{ set +x
$as_echo "$at_srcdir/bfd.at:449: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:449"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: false
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: down
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: down
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:449"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:451: ovs-vsctl del-br br1"
at_fn_check_prepare_trace "bfd.at:451"
( $at_check_trace; ovs-vsctl del-br br1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:451"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bfd.at:452: check_logs "
at_fn_check_prepare_trace "bfd.at:452"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:452"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/bfd.at:452: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "bfd.at:452"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:452"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/bfd.at:452: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "bfd.at:452"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:452"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bfd.at:452: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bfd.at:452: wait failed" >&5

    $as_echo "bfd.at:452" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bfd.at:452"
fi

   { set +x
$as_echo "$at_srcdir/bfd.at:452: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "bfd.at:452"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:452"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/bfd.at:452: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "bfd.at:452"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:452"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bfd.at:452: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bfd.at:452: wait failed" >&5

    $as_echo "bfd.at:452" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bfd.at:452"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_16
#AT_START_17
at_fn_group_banner 17 'bfd.at:460' \
  "bfd - bfd forwarding_if_rx - bfd on both sides" " " 3
at_xfail=no
(
  $as_echo "17. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/bfd.at:461: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "bfd.at:461"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:461"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bfd.at:461: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "bfd.at:461"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:461"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/bfd.at:461: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:461"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:461"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/bfd.at:461: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "bfd.at:461"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:461"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bfd.at:461: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "bfd.at:461"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:461"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/bfd.at:461: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:461"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:461"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/bfd.at:461: add_of_br 0 add-br br1 -- set bridge br1 datapath-type=dummy -- \\
                    add-port br1 p1 -- set Interface p1 type=patch \\
                    options:peer=p0 ofport_request=2 -- \\
                    add-port br0 p0 -- set Interface p0 type=patch \\
                    options:peer=p1 ofport_request=1 -- \\
                    set Interface p0 bfd:enable=true bfd:min_tx=500 bfd:min_rx=500 -- \\
                    set Interface p1 bfd:enable=true bfd:min_tx=300 bfd:min_rx=300 -- \\
                    add-port br1 p2 -- set Interface p2 type=internal ofport_request=3 "
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:461"
( $at_check_trace; add_of_br 0 add-br br1 -- set bridge br1 datapath-type=dummy -- \
                    add-port br1 p1 -- set Interface p1 type=patch \
                    options:peer=p0 ofport_request=2 -- \
                    add-port br0 p0 -- set Interface p0 type=patch \
                    options:peer=p1 ofport_request=1 -- \
                    set Interface p0 bfd:enable=true bfd:min_tx=500 bfd:min_rx=500 -- \
                    set Interface p1 bfd:enable=true bfd:min_tx=300 bfd:min_rx=300 -- \
                    add-port br1 p2 -- set Interface p2 type=internal ofport_request=3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:461"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



ovs-appctl time/stop
# advance the clock, to stablize the states.
ovs-appctl time/warp 5000 500

# enable forwarding_if_rx.
{ set +x
$as_echo "$at_srcdir/bfd.at:475: ovs-vsctl set Interface p0 bfd:forwarding_if_rx=true"
at_fn_check_prepare_trace "bfd.at:475"
( $at_check_trace; ovs-vsctl set Interface p0 bfd:forwarding_if_rx=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:475"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# there should be no change of the forwarding flag, since
# the bfd on both ends is already up.
for i in `seq 0 5`
do
    ovs-appctl time/warp 500

{ set +x
$as_echo "$at_srcdir/bfd.at:482: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:482"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:482"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


done

# stop the bfd on one side.
{ set +x
$as_echo "$at_srcdir/bfd.at:486: ovs-vsctl set Interface p1 bfd:enable=false"
at_fn_check_prepare_trace "bfd.at:486"
( $at_check_trace; ovs-vsctl set Interface p1 bfd:enable=false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:486"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# for within 1500ms, the detection timer is not out.
# there is no change to status.
for i in `seq 0 1`
do
    ovs-appctl time/warp 500

{ set +x
$as_echo "$at_srcdir/bfd.at:492: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:492"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:492"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


    for i in `seq 0 4`
    do
        { set +x
$as_echo "$at_srcdir/bfd.at:495: ovs-ofctl packet-out br1 \"in_port=3 packet=90e2ba01475000101856b2e80806000108000604000100101856b2e80202020300000000000002020202 actions=2\""
at_fn_check_prepare_trace "bfd.at:495"
( $at_check_trace; ovs-ofctl packet-out br1 "in_port=3 packet=90e2ba01475000101856b2e80806000108000604000100101856b2e80202020300000000000002020202 actions=2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:495"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    done
done

# at 1500ms, the STATE should go DOWN, due to Control Detection Time Expired.
# but forwarding flag should be still true.
ovs-appctl time/warp 500

{ set +x
$as_echo "$at_srcdir/bfd.at:503: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:503"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: down
	Local Diagnostic: Control Detection Time Expired

	Remote Flags: none
	Remote Session State: down
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:503"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# reset bfd forwarding_if_rx.
{ set +x
$as_echo "$at_srcdir/bfd.at:506: ovs-vsctl set Interface p0 bfd:forwarding_if_rx=false"
at_fn_check_prepare_trace "bfd.at:506"
( $at_check_trace; ovs-vsctl set Interface p0 bfd:forwarding_if_rx=false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:506"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# forwarding flag should turn to false since the STATE is DOWN.

{ set +x
$as_echo "$at_srcdir/bfd.at:508: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:508"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: false
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: down
	Local Diagnostic: Control Detection Time Expired

	Remote Flags: none
	Remote Session State: down
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:508"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# re-enable bfd on the other end. the states should be up.
{ set +x
$as_echo "$at_srcdir/bfd.at:511: ovs-vsctl set Interface p1 bfd:enable=true bfd:min_tx=300 bfd:min_rx=300"
at_fn_check_prepare_trace "bfd.at:511"
( $at_check_trace; ovs-vsctl set Interface p1 bfd:enable=true bfd:min_tx=300 bfd:min_rx=300
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:511"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# advance the clock, to stablize the states.
ovs-appctl time/warp 5000 500

{ set +x
$as_echo "$at_srcdir/bfd.at:514: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:514"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: Control Detection Time Expired

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:514"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:515: ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:515"
( $at_check_trace; ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: Control Detection Time Expired
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:515"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:516: ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:516"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	TX Interval: Approx 500ms
	Local Minimum TX Interval: 500ms
	Remote Minimum TX Interval: 300ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:516"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:517: ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:517"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	RX Interval: Approx 500ms
	Local Minimum RX Interval: 500ms
	Remote Minimum RX Interval: 300ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:517"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:519: ovs-vsctl del-br br1"
at_fn_check_prepare_trace "bfd.at:519"
( $at_check_trace; ovs-vsctl del-br br1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:519"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bfd.at:520: check_logs "
at_fn_check_prepare_trace "bfd.at:520"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:520"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/bfd.at:520: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "bfd.at:520"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:520"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/bfd.at:520: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "bfd.at:520"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:520"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bfd.at:520: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bfd.at:520: wait failed" >&5

    $as_echo "bfd.at:520" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bfd.at:520"
fi

   { set +x
$as_echo "$at_srcdir/bfd.at:520: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "bfd.at:520"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:520"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/bfd.at:520: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "bfd.at:520"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:520"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bfd.at:520: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bfd.at:520: wait failed" >&5

    $as_echo "bfd.at:520" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bfd.at:520"
fi

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

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/bfd.at:527: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "bfd.at:527"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:527"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bfd.at:527: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "bfd.at:527"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:527"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/bfd.at:527: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:527"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:527"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/bfd.at:527: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "bfd.at:527"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:527"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bfd.at:527: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "bfd.at:527"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:527"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/bfd.at:527: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:527"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:527"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/bfd.at:527: add_of_br 0 add-br br1 -- set bridge br1 datapath-type=dummy -- \\
                    add-port br1 p1 -- set Interface p1 type=patch \\
                    options:peer=p0 ofport_request=2 -- \\
                    add-port br0 p0 -- set Interface p0 type=patch \\
                    options:peer=p1 ofport_request=1 -- \\
                    set Interface p0 bfd:enable=true bfd:min_tx=300 bfd:min_rx=300 bfd:decay_min_rx=3000 -- \\
                    set Interface p1 bfd:enable=true bfd:min_tx=500 bfd:min_rx=500 "
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:527"
( $at_check_trace; add_of_br 0 add-br br1 -- set bridge br1 datapath-type=dummy -- \
                    add-port br1 p1 -- set Interface p1 type=patch \
                    options:peer=p0 ofport_request=2 -- \
                    add-port br0 p0 -- set Interface p0 type=patch \
                    options:peer=p1 ofport_request=1 -- \
                    set Interface p0 bfd:enable=true bfd:min_tx=300 bfd:min_rx=300 bfd:decay_min_rx=3000 -- \
                    set Interface p1 bfd:enable=true bfd:min_tx=500 bfd:min_rx=500
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:527"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



ovs-appctl time/stop
# advance the clock, to stablize the states.
ovs-appctl time/warp 10000 500

{ set +x
$as_echo "$at_srcdir/bfd.at:538: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:538"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:538"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:539: ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:539"
( $at_check_trace; ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:539"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:540: ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:540"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	TX Interval: Approx 500ms
	Local Minimum TX Interval: 300ms
	Remote Minimum TX Interval: 500ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:540"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:541: ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:541"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	RX Interval: Approx 3000ms
	Local Minimum RX Interval: 3000ms
	Remote Minimum RX Interval: 500ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:541"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# enable forwarding_if_rx.
{ set +x
$as_echo "$at_srcdir/bfd.at:544: ovs-vsctl set Interface p0 bfd:forwarding_if_rx=true"
at_fn_check_prepare_trace "bfd.at:544"
( $at_check_trace; ovs-vsctl set Interface p0 bfd:forwarding_if_rx=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:544"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# there should be no change of the forwarding flag, since
# the bfd on both ends is already up.
for i in `seq 0 9`
do
    ovs-appctl time/warp 500

{ set +x
$as_echo "$at_srcdir/bfd.at:551: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:551"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:551"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


done

# reconfigure the decay_min_rx to 1000ms.
{ set +x
$as_echo "$at_srcdir/bfd.at:555: ovs-vsctl set interface p0 bfd:decay_min_rx=1000"
at_fn_check_prepare_trace "bfd.at:555"
( $at_check_trace; ovs-vsctl set interface p0 bfd:decay_min_rx=1000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:555"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# wait for 5000ms to decay.
ovs-appctl time/warp 5000 500

{ set +x
$as_echo "$at_srcdir/bfd.at:559: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:559"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:559"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:560: ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:560"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	TX Interval: Approx 500ms
	Local Minimum TX Interval: 300ms
	Remote Minimum TX Interval: 500ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:560"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:561: ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:561"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	RX Interval: Approx 1000ms
	Local Minimum RX Interval: 1000ms
	Remote Minimum RX Interval: 500ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:561"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# stop the bfd on one side.
{ set +x
$as_echo "$at_srcdir/bfd.at:564: ovs-vsctl set Interface p1 bfd:enable=false"
at_fn_check_prepare_trace "bfd.at:564"
( $at_check_trace; ovs-vsctl set Interface p1 bfd:enable=false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:564"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# advance clock by 4000ms, while receiving packets.
# the STATE should go DOWN, due to Control Detection Time Expired.
# but forwarding flag should be still true.
for i in `seq 0 7`
do
    ovs-appctl time/warp 500
    { set +x
$as_echo "$at_srcdir/bfd.at:572: ovs-ofctl packet-out br1 \"in_port=3 packet=90e2ba01475000101856b2e80806000108000604000100101856b2e80202020300000000000002020202 actions=2\""
at_fn_check_prepare_trace "bfd.at:572"
( $at_check_trace; ovs-ofctl packet-out br1 "in_port=3 packet=90e2ba01475000101856b2e80806000108000604000100101856b2e80202020300000000000002020202 actions=2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:572"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

done

{ set +x
$as_echo "$at_srcdir/bfd.at:575: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:575"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: down
	Local Diagnostic: Control Detection Time Expired

	Remote Flags: none
	Remote Session State: down
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:575"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# receive packet at 1/100ms rate for 1000ms.
for i in `seq 0 9`
do
    { set +x
$as_echo "$at_srcdir/bfd.at:580: ovs-ofctl packet-out br1 \"in_port=3 packet=90e2ba01475000101856b2e80806000108000604000100101856b2e80202020300000000000002020202 actions=2\""
at_fn_check_prepare_trace "bfd.at:580"
( $at_check_trace; ovs-ofctl packet-out br1 "in_port=3 packet=90e2ba01475000101856b2e80806000108000604000100101856b2e80202020300000000000002020202 actions=2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:580"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    ovs-appctl time/warp 100
    # the forwarding flag should always be true during this time.

{ set +x
$as_echo "$at_srcdir/bfd.at:584: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:584"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: down
	Local Diagnostic: Control Detection Time Expired

	Remote Flags: none
	Remote Session State: down
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:584"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


done

# stop receiving for 5000ms.
ovs-appctl time/warp 5000 100

{ set +x
$as_echo "$at_srcdir/bfd.at:589: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:589"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: false
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: down
	Local Diagnostic: Control Detection Time Expired

	Remote Flags: none
	Remote Session State: down
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:589"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# reset bfd forwarding_if_rx.
{ set +x
$as_echo "$at_srcdir/bfd.at:592: ovs-vsctl set Interface p0 bfd:forwarding_if_rx=false"
at_fn_check_prepare_trace "bfd.at:592"
( $at_check_trace; ovs-vsctl set Interface p0 bfd:forwarding_if_rx=false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:592"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/bfd.at:593: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:593"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: false
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: down
	Local Diagnostic: Control Detection Time Expired

	Remote Flags: none
	Remote Session State: down
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:593"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# re-enable bfd forwarding_if_rx.
{ set +x
$as_echo "$at_srcdir/bfd.at:595: ovs-vsctl set Interface p0 bfd:forwarding_if_rx=true"
at_fn_check_prepare_trace "bfd.at:595"
( $at_check_trace; ovs-vsctl set Interface p0 bfd:forwarding_if_rx=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:595"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/bfd.at:596: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:596"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: false
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: down
	Local Diagnostic: Control Detection Time Expired

	Remote Flags: none
	Remote Session State: down
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:596"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# re-enable bfd on the other end. the states should be up.
{ set +x
$as_echo "$at_srcdir/bfd.at:599: ovs-vsctl set Interface p1 bfd:enable=true bfd:min_tx=300 bfd:min_rx=300"
at_fn_check_prepare_trace "bfd.at:599"
( $at_check_trace; ovs-vsctl set Interface p1 bfd:enable=true bfd:min_tx=300 bfd:min_rx=300
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:599"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# advance the clock, to stablize the states.
ovs-appctl time/warp 10000 500

{ set +x
$as_echo "$at_srcdir/bfd.at:602: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:602"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: Control Detection Time Expired

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:602"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:603: ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:603"
( $at_check_trace; ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: Control Detection Time Expired
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:603"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:604: ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:604"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	TX Interval: Approx 300ms
	Local Minimum TX Interval: 300ms
	Remote Minimum TX Interval: 300ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:604"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:605: ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:605"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	RX Interval: Approx 1000ms
	Local Minimum RX Interval: 1000ms
	Remote Minimum RX Interval: 300ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:605"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:607: ovs-vsctl del-br br1"
at_fn_check_prepare_trace "bfd.at:607"
( $at_check_trace; ovs-vsctl del-br br1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:607"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bfd.at:608: check_logs "
at_fn_check_prepare_trace "bfd.at:608"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:608"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/bfd.at:608: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "bfd.at:608"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:608"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/bfd.at:608: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "bfd.at:608"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:608"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bfd.at:608: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bfd.at:608: wait failed" >&5

    $as_echo "bfd.at:608" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bfd.at:608"
fi

   { set +x
$as_echo "$at_srcdir/bfd.at:608: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "bfd.at:608"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:608"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/bfd.at:608: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "bfd.at:608"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:608"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bfd.at:608: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bfd.at:608: wait failed" >&5

    $as_echo "bfd.at:608" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bfd.at:608"
fi

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

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/bfd.at:615: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "bfd.at:615"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bfd.at:615: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "bfd.at:615"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/bfd.at:615: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:615"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/bfd.at:615: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "bfd.at:615"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:615"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bfd.at:615: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "bfd.at:615"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:615"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/bfd.at:615: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:615"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:615"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/bfd.at:615: add_of_br 0 add-br br1 -- set bridge br1 datapath-type=dummy -- \\
                    add-port br1 p1 -- set Interface p1 type=patch \\
                    options:peer=p0 ofport_request=2 -- \\
                    add-port br0 p0 -- set Interface p0 type=patch \\
                    options:peer=p1 ofport_request=1 -- \\
                    set Interface p0 bfd:enable=true bfd:min_tx=300 bfd:min_rx=300 bfd:forwarding_if_rx=true -- \\
                    set Interface p1 bfd:enable=true bfd:min_tx=500 bfd:min_rx=500 "
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:615"
( $at_check_trace; add_of_br 0 add-br br1 -- set bridge br1 datapath-type=dummy -- \
                    add-port br1 p1 -- set Interface p1 type=patch \
                    options:peer=p0 ofport_request=2 -- \
                    add-port br0 p0 -- set Interface p0 type=patch \
                    options:peer=p1 ofport_request=1 -- \
                    set Interface p0 bfd:enable=true bfd:min_tx=300 bfd:min_rx=300 bfd:forwarding_if_rx=true -- \
                    set Interface p1 bfd:enable=true bfd:min_tx=500 bfd:min_rx=500
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:615"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



ovs-appctl time/stop
# advance the clock, to stablize the states.
ovs-appctl time/warp 10000 500

{ set +x
$as_echo "$at_srcdir/bfd.at:626: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:626"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:626"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:627: ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:627"
( $at_check_trace; ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:627"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:628: ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:628"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	TX Interval: Approx 500ms
	Local Minimum TX Interval: 300ms
	Remote Minimum TX Interval: 500ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:628"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# disable the bfd on p1.
{ set +x
$as_echo "$at_srcdir/bfd.at:631: ovs-vsctl set Interface p1 bfd:enable=false"
at_fn_check_prepare_trace "bfd.at:631"
( $at_check_trace; ovs-vsctl set Interface p1 bfd:enable=false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:631"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# advance clock by 4000ms, while receiving packets.
# the STATE should go DOWN, due to Control Detection Time Expired.
# but forwarding flag should be still true.
for i in `seq 0 7`
do
    ovs-appctl time/warp 500
    { set +x
$as_echo "$at_srcdir/bfd.at:639: ovs-ofctl packet-out br1 \"in_port=3 packet=90e2ba01475000101856b2e80806000108000604000100101856b2e80202020300000000000002020202 actions=2\""
at_fn_check_prepare_trace "bfd.at:639"
( $at_check_trace; ovs-ofctl packet-out br1 "in_port=3 packet=90e2ba01475000101856b2e80806000108000604000100101856b2e80202020300000000000002020202 actions=2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:639"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

done

{ set +x
$as_echo "$at_srcdir/bfd.at:642: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:642"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: down
	Local Diagnostic: Control Detection Time Expired

	Remote Flags: none
	Remote Session State: down
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:642"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# advance clock long enough to trigger the demand_bfd_rx interval
# (100 * bfd->cfm_min_rx), forwarding flag should go down since there
# is no bfd control packet received during the demand_rx_bfd.
for i in `seq 0 120`
do
    ovs-appctl time/warp 300
    { set +x
$as_echo "$at_srcdir/bfd.at:650: ovs-ofctl packet-out br1 \"in_port=3 packet=90e2ba01475000101856b2e80806000108000604000100101856b2e80202020300000000000002020202 actions=2\""
at_fn_check_prepare_trace "bfd.at:650"
( $at_check_trace; ovs-ofctl packet-out br1 "in_port=3 packet=90e2ba01475000101856b2e80806000108000604000100101856b2e80202020300000000000002020202 actions=2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:650"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

done

{ set +x
$as_echo "$at_srcdir/bfd.at:653: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:653"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: false
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: down
	Local Diagnostic: Control Detection Time Expired

	Remote Flags: none
	Remote Session State: down
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:653"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# now enable the bfd on p1 again.
{ set +x
$as_echo "$at_srcdir/bfd.at:656: ovs-vsctl set Interface p1 bfd:enable=true"
at_fn_check_prepare_trace "bfd.at:656"
( $at_check_trace; ovs-vsctl set Interface p1 bfd:enable=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:656"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# advance clock by 5000ms.  and p1 and p0 should be all up.
ovs-appctl time/warp 5000 500

{ set +x
$as_echo "$at_srcdir/bfd.at:659: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:659"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: Control Detection Time Expired

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:659"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:660: ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:660"
( $at_check_trace; ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: Control Detection Time Expired
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:660"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:661: ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:661"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	TX Interval: Approx 500ms
	Local Minimum TX Interval: 300ms
	Remote Minimum TX Interval: 500ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:661"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# disable the bfd on p1 again.
{ set +x
$as_echo "$at_srcdir/bfd.at:664: ovs-vsctl set Interface p1 bfd:enable=false"
at_fn_check_prepare_trace "bfd.at:664"
( $at_check_trace; ovs-vsctl set Interface p1 bfd:enable=false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:664"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# advance clock long enough to trigger the demand_rx_bfd,
# forwarding flag should go down since there is no bfd control packet
# received during the demand_rx_bfd.
for i in `seq 0 120`
do
    ovs-appctl time/warp 300
    { set +x
$as_echo "$at_srcdir/bfd.at:671: ovs-ofctl packet-out br1 \"in_port=3 packet=90e2ba01475000101856b2e80806000108000604000100101856b2e80202020300000000000002020202 actions=2\""
at_fn_check_prepare_trace "bfd.at:671"
( $at_check_trace; ovs-ofctl packet-out br1 "in_port=3 packet=90e2ba01475000101856b2e80806000108000604000100101856b2e80202020300000000000002020202 actions=2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:671"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

done

{ set +x
$as_echo "$at_srcdir/bfd.at:674: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:674"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: false
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: down
	Local Diagnostic: Control Detection Time Expired

	Remote Flags: none
	Remote Session State: down
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:674"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:676: ovs-vsctl del-br br1"
at_fn_check_prepare_trace "bfd.at:676"
( $at_check_trace; ovs-vsctl del-br br1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:676"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bfd.at:677: check_logs "
at_fn_check_prepare_trace "bfd.at:677"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:677"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/bfd.at:677: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "bfd.at:677"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:677"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/bfd.at:677: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "bfd.at:677"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:677"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bfd.at:677: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bfd.at:677: wait failed" >&5

    $as_echo "bfd.at:677" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bfd.at:677"
fi

   { set +x
$as_echo "$at_srcdir/bfd.at:677: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "bfd.at:677"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:677"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/bfd.at:677: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "bfd.at:677"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:677"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bfd.at:677: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bfd.at:677: wait failed" >&5

    $as_echo "bfd.at:677" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bfd.at:677"
fi

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

ovs_init

#Create 2 bridges connected by patch ports and enable bfd
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/bfd.at:687: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "bfd.at:687"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:687"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bfd.at:687: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "bfd.at:687"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:687"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/bfd.at:687: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:687"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:687"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/bfd.at:687: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "bfd.at:687"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:687"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bfd.at:687: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "bfd.at:687"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:687"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/bfd.at:687: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:687"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:687"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/bfd.at:687: add_of_br 0 add-br br1 -- \\
                    set bridge br1 datapath-type=dummy \\
                    other-config:hwaddr=aa:55:aa:56:00:00 -- \\
                    add-port br1 p1 -- set Interface p1 type=patch \\
                    options:peer=p0 ofport_request=2 -- \\
                    add-port br0 p0 -- set Interface p0 type=patch \\
                    options:peer=p1 ofport_request=1 -- \\
                    set Interface p0 bfd:enable=true bfd:min_tx=100 bfd:min_rx=100 -- \\
                    set Interface p1 bfd:enable=true bfd:min_tx=100 bfd:min_rx=100 "
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:687"
( $at_check_trace; add_of_br 0 add-br br1 -- \
                    set bridge br1 datapath-type=dummy \
                    other-config:hwaddr=aa:55:aa:56:00:00 -- \
                    add-port br1 p1 -- set Interface p1 type=patch \
                    options:peer=p0 ofport_request=2 -- \
                    add-port br0 p0 -- set Interface p0 type=patch \
                    options:peer=p1 ofport_request=1 -- \
                    set Interface p0 bfd:enable=true bfd:min_tx=100 bfd:min_rx=100 -- \
                    set Interface p1 bfd:enable=true bfd:min_tx=100 bfd:min_rx=100
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:687"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



ovs-appctl time/stop
# Disable the stats update to prevent the race between ovsdb updating
# stats and ovs-vsctl cmd closing the jsonrpc session.
{ set +x
$as_echo "$at_srcdir/bfd.at:700: ovs-vsctl set Open_vSwitch . other_config:stats-update-interval=50000000"
at_fn_check_prepare_trace "bfd.at:700"
( $at_check_trace; ovs-vsctl set Open_vSwitch . other_config:stats-update-interval=50000000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:700"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Part-1 wait for a while to stablize bfd.
ovs-appctl time/warp 10100 100

{ set +x
$as_echo "$at_srcdir/bfd.at:704: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:704"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:704"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:705: ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:705"
( $at_check_trace; ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:705"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:706: ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:706"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	TX Interval: Approx 100ms
	Local Minimum TX Interval: 100ms
	Remote Minimum TX Interval: 100ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:706"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:707: ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:707"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	RX Interval: Approx 100ms
	Local Minimum RX Interval: 100ms
	Remote Minimum RX Interval: 100ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:707"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# both p0 and p1 should have flap_count = "1". since down->up.

{ set +x
$as_echo "$at_srcdir/bfd.at:709: ovs-vsctl list interface p0 | sed -n \"s/^.*flap_count=\\(.*\\), forwarding.*\$/\\1/p\""
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:709"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n "s/^.*flap_count=\(.*\), forwarding.*$/\1/p"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"1\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:709"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:710: ovs-vsctl list interface p1 | sed -n \"s/^.*flap_count=\\(.*\\), forwarding.*\$/\\1/p\""
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:710"
( $at_check_trace; ovs-vsctl list interface p1 | sed -n "s/^.*flap_count=\(.*\), forwarding.*$/\1/p"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"1\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:710"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# turn bfd on p1 off, should increment the bfd:flap_count on p0.
{ set +x
$as_echo "$at_srcdir/bfd.at:713: ovs-vsctl set interface p1 bfd:enable=false"
at_fn_check_prepare_trace "bfd.at:713"
( $at_check_trace; ovs-vsctl set interface p1 bfd:enable=false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:713"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 5000 100

{ set +x
$as_echo "$at_srcdir/bfd.at:715: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:715"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: false
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: down
	Local Diagnostic: Control Detection Time Expired

	Remote Flags: none
	Remote Session State: down
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:715"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:716: ovs-vsctl list interface p0 | sed -n \"s/^.*flap_count=\\(.*\\), forwarding.*\$/\\1/p\""
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:716"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n "s/^.*flap_count=\(.*\), forwarding.*$/\1/p"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"2\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:716"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/bfd.at:717: ovs-vsctl list interface p1 | sed -n \"s/^.*flap_count=\\(.*\\), forwarding.*\$/\\1/p\""
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:717"
( $at_check_trace; ovs-vsctl list interface p1 | sed -n "s/^.*flap_count=\(.*\), forwarding.*$/\1/p"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:717"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# turn bfd on p1 on again, should increment the bfd:flap_count on p0.
# p1 should still have flap_count = "1", since it is reset.
{ set +x
$as_echo "$at_srcdir/bfd.at:721: ovs-vsctl set interface p1 bfd:enable=true"
at_fn_check_prepare_trace "bfd.at:721"
( $at_check_trace; ovs-vsctl set interface p1 bfd:enable=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:721"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 5000 100

{ set +x
$as_echo "$at_srcdir/bfd.at:723: ovs-vsctl list interface p0 | sed -n \"s/^.*flap_count=\\(.*\\), forwarding.*\$/\\1/p\""
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:723"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n "s/^.*flap_count=\(.*\), forwarding.*$/\1/p"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"3\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:723"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:724: ovs-vsctl list interface p1 | sed -n \"s/^.*flap_count=\\(.*\\), forwarding.*\$/\\1/p\""
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:724"
( $at_check_trace; ovs-vsctl list interface p1 | sed -n "s/^.*flap_count=\(.*\), forwarding.*$/\1/p"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"1\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:724"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }




# Part-2 now turn on the forwarding_override.
{ set +x
$as_echo "$at_srcdir/bfd.at:728: ovs-appctl bfd/set-forwarding p0 true"
at_fn_check_prepare_trace "bfd.at:728"
( $at_check_trace; ovs-appctl bfd/set-forwarding p0 true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:728"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# turn bfd on p1 off, should not increment the bfd:flap_count on p0, since forwarding_override is on.
{ set +x
$as_echo "$at_srcdir/bfd.at:733: ovs-vsctl set interface p1 bfd:enable=false"
at_fn_check_prepare_trace "bfd.at:733"
( $at_check_trace; ovs-vsctl set interface p1 bfd:enable=false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:733"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 5000 100

{ set +x
$as_echo "$at_srcdir/bfd.at:735: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:735"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: down
	Local Diagnostic: Control Detection Time Expired

	Remote Flags: none
	Remote Session State: down
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:735"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:736: ovs-vsctl list interface p0 | sed -n \"s/^.*flap_count=\\(.*\\), forwarding.*\$/\\1/p\""
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:736"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n "s/^.*flap_count=\(.*\), forwarding.*$/\1/p"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"3\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:736"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/bfd.at:737: ovs-vsctl list interface p1 | sed -n \"s/^.*flap_count=\\(.*\\), forwarding.*\$/\\1/p\""
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:737"
( $at_check_trace; ovs-vsctl list interface p1 | sed -n "s/^.*flap_count=\(.*\), forwarding.*$/\1/p"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:737"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# turn bfd on p1 on again, should not increment the bfd:flap_count on p0, since forwarding override is on.
# p1 should still have flap_count = "1", since it is reset.
{ set +x
$as_echo "$at_srcdir/bfd.at:741: ovs-vsctl set interface p1 bfd:enable=true"
at_fn_check_prepare_trace "bfd.at:741"
( $at_check_trace; ovs-vsctl set interface p1 bfd:enable=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:741"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 5000 100

{ set +x
$as_echo "$at_srcdir/bfd.at:743: ovs-vsctl list interface p0 | sed -n \"s/^.*flap_count=\\(.*\\), forwarding.*\$/\\1/p\""
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:743"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n "s/^.*flap_count=\(.*\), forwarding.*$/\1/p"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"3\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:743"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:744: ovs-vsctl list interface p1 | sed -n \"s/^.*flap_count=\\(.*\\), forwarding.*\$/\\1/p\""
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:744"
( $at_check_trace; ovs-vsctl list interface p1 | sed -n "s/^.*flap_count=\(.*\), forwarding.*$/\1/p"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"1\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:744"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# turn the forwarding_override back to normal.
{ set +x
$as_echo "$at_srcdir/bfd.at:747: ovs-appctl bfd/set-forwarding p0 normal"
at_fn_check_prepare_trace "bfd.at:747"
( $at_check_trace; ovs-appctl bfd/set-forwarding p0 normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:747"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# turn bfd on p1 off and on, should increment the bfd:flap_count on p0.
{ set +x
$as_echo "$at_srcdir/bfd.at:752: ovs-vsctl set interface p1 bfd:enable=false"
at_fn_check_prepare_trace "bfd.at:752"
( $at_check_trace; ovs-vsctl set interface p1 bfd:enable=false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:752"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 5000 100
{ set +x
$as_echo "$at_srcdir/bfd.at:754: ovs-vsctl set interface p1 bfd:enable=true"
at_fn_check_prepare_trace "bfd.at:754"
( $at_check_trace; ovs-vsctl set interface p1 bfd:enable=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:754"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 5000 100

{ set +x
$as_echo "$at_srcdir/bfd.at:756: ovs-vsctl list interface p0 | sed -n \"s/^.*flap_count=\\(.*\\), forwarding.*\$/\\1/p\""
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:756"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n "s/^.*flap_count=\(.*\), forwarding.*$/\1/p"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"5\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:756"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:757: ovs-vsctl list interface p1 | sed -n \"s/^.*flap_count=\\(.*\\), forwarding.*\$/\\1/p\""
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:757"
( $at_check_trace; ovs-vsctl list interface p1 | sed -n "s/^.*flap_count=\(.*\), forwarding.*$/\1/p"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"1\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:757"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Part-3 now turn on forwarding_if_rx.
{ set +x
$as_echo "$at_srcdir/bfd.at:760: ovs-vsctl set Interface p0 bfd:forwarding_if_rx=true"
at_fn_check_prepare_trace "bfd.at:760"
( $at_check_trace; ovs-vsctl set Interface p0 bfd:forwarding_if_rx=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:760"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 1100 100
# disable the bfd on p1.
{ set +x
$as_echo "$at_srcdir/bfd.at:763: ovs-vsctl set Interface p1 bfd:enable=false"
at_fn_check_prepare_trace "bfd.at:763"
( $at_check_trace; ovs-vsctl set Interface p1 bfd:enable=false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:763"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# advance clock by 4000ms, while receiving packets.
# the STATE should go DOWN, due to Control Detection Time Expired.
# but forwarding flag should be true.
for i in `seq 0 39`
do
    ovs-appctl time/warp 100
    { set +x
$as_echo "$at_srcdir/bfd.at:771: ovs-ofctl packet-out br1 \"in_port=3 packet=90e2ba01475000101856b2e80806000108000604000100101856b2e80202020300000000000002020202 actions=2\""
at_fn_check_prepare_trace "bfd.at:771"
( $at_check_trace; ovs-ofctl packet-out br1 "in_port=3 packet=90e2ba01475000101856b2e80806000108000604000100101856b2e80202020300000000000002020202 actions=2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:771"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

done

{ set +x
$as_echo "$at_srcdir/bfd.at:774: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:774"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: down
	Local Diagnostic: Control Detection Time Expired

	Remote Flags: none
	Remote Session State: down
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:774"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# flap_count should remain unchanged.

{ set +x
$as_echo "$at_srcdir/bfd.at:776: ovs-vsctl list interface p0 | sed -n \"s/^.*flap_count=\\(.*\\), forwarding.*\$/\\1/p\""
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:776"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n "s/^.*flap_count=\(.*\), forwarding.*$/\1/p"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"5\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:776"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# stop the traffic for more than 100 * bfd->cfm_min_rx ms, the forwarding flag of p0 should turn false.
# and there should be the increment of flap_count.
ovs-appctl time/warp 12100 100

{ set +x
$as_echo "$at_srcdir/bfd.at:781: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:781"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: false
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: down
	Local Diagnostic: Control Detection Time Expired

	Remote Flags: none
	Remote Session State: down
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:781"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:782: ovs-vsctl list interface p0 | sed -n \"s/^.*flap_count=\\(.*\\), forwarding.*\$/\\1/p\""
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:782"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n "s/^.*flap_count=\(.*\), forwarding.*$/\1/p"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"6\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:782"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# advance clock by 4000ms, and resume the traffic.
for i in `seq 0 39`
do
    ovs-appctl time/warp 100
    { set +x
$as_echo "$at_srcdir/bfd.at:788: ovs-ofctl packet-out br1 \"in_port=3 packet=90e2ba01475000101856b2e80806000108000604000100101856b2e80202020300000000000002020202 actions=2\""
at_fn_check_prepare_trace "bfd.at:788"
( $at_check_trace; ovs-ofctl packet-out br1 "in_port=3 packet=90e2ba01475000101856b2e80806000108000604000100101856b2e80202020300000000000002020202 actions=2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:788"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

done
# forwarding should be false, since there is still no bfd control packet received.

{ set +x
$as_echo "$at_srcdir/bfd.at:792: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:792"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: false
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: down
	Local Diagnostic: Control Detection Time Expired

	Remote Flags: none
	Remote Session State: down
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:792"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:793: ovs-vsctl list interface p0 | sed -n \"s/^.*flap_count=\\(.*\\), forwarding.*\$/\\1/p\""
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:793"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n "s/^.*flap_count=\(.*\), forwarding.*$/\1/p"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"6\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:793"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# turn on the bfd on p1.
{ set +x
$as_echo "$at_srcdir/bfd.at:796: ovs-vsctl set interface p1 bfd:enable=true"
at_fn_check_prepare_trace "bfd.at:796"
( $at_check_trace; ovs-vsctl set interface p1 bfd:enable=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:796"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 5000 100
# even though there is no data traffic, since p1 bfd is on again, should increment the flap_count.

{ set +x
$as_echo "$at_srcdir/bfd.at:799: ovs-vsctl list interface p0 | sed -n \"s/^.*flap_count=\\(.*\\), forwarding.*\$/\\1/p\""
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:799"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n "s/^.*flap_count=\(.*\), forwarding.*$/\1/p"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"7\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:799"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:800: ovs-vsctl list interface p1 | sed -n \"s/^.*flap_count=\\(.*\\), forwarding.*\$/\\1/p\""
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:800"
( $at_check_trace; ovs-vsctl list interface p1 | sed -n "s/^.*flap_count=\(.*\), forwarding.*$/\1/p"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"1\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:800"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:802: check_logs "
at_fn_check_prepare_trace "bfd.at:802"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:802"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/bfd.at:802: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "bfd.at:802"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:802"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/bfd.at:802: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "bfd.at:802"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:802"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bfd.at:802: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bfd.at:802: wait failed" >&5

    $as_echo "bfd.at:802" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bfd.at:802"
fi

   { set +x
$as_echo "$at_srcdir/bfd.at:802: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "bfd.at:802"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:802"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/bfd.at:802: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "bfd.at:802"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:802"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bfd.at:802: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bfd.at:802: wait failed" >&5

    $as_echo "bfd.at:802" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bfd.at:802"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_20
#AT_START_21
at_fn_group_banner 21 'bfd.at:805' \
  "bfd - check that BFD works together with RSTP" "  " 3
at_xfail=no
(
  $as_echo "21. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

# Create br0 with interfaces p1
#    and br1 with interfaces p2
# with p1 and p2 connected via unix domain socket
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/bfd.at:809: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "bfd.at:809"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:809"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bfd.at:809: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "bfd.at:809"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:809"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/bfd.at:809: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:809"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:809"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/bfd.at:809: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "bfd.at:809"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:809"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bfd.at:809: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "bfd.at:809"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:809"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/bfd.at:809: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:809"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:809"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/bfd.at:809: add_of_br 0 set bridge br0 rstp_enable=true -- \\
   add-br br1 -- \\
   set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \\
   set bridge br1 datapath-type=dummy -- \\
   set bridge br1 rstp_enable=true -- \\
 "
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:809"
( $at_check_trace; add_of_br 0 set bridge br0 rstp_enable=true -- \
   add-br br1 -- \
   set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \
   set bridge br1 datapath-type=dummy -- \
   set bridge br1 rstp_enable=true -- \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:809"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:817: ovs-vsctl add-port br0 p1 -- \\
   set interface p1 type=dummy options:pstream=punix:\$OVS_RUNDIR/p0.sock bfd:enable=true -- \\
"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:817"
( $at_check_trace; ovs-vsctl add-port br0 p1 -- \
   set interface p1 type=dummy options:pstream=punix:$OVS_RUNDIR/p0.sock bfd:enable=true -- \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:817"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/bfd.at:821: ovs-vsctl add-port br1 p2 -- \\
   set interface p2 type=dummy options:stream=unix:\$OVS_RUNDIR/p0.sock bfd:enable=true -- \\
"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:821"
( $at_check_trace; ovs-vsctl add-port br1 p2 -- \
   set interface p2 type=dummy options:stream=unix:$OVS_RUNDIR/p0.sock bfd:enable=true -- \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:821"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/stop
ovs-appctl time/warp 4100 100

# Forwarding should be true

{ set +x
$as_echo "$at_srcdir/bfd.at:829: ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:829"
( $at_check_trace; ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:829"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:830: ovs-appctl bfd/show p2 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:830"
( $at_check_trace; ovs-appctl bfd/show p2 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:830"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Disable bfd on p2, forwarding on p1 should go to false
{ set +x
$as_echo "$at_srcdir/bfd.at:833: ovs-vsctl set interface p2 bfd:enable=false"
at_fn_check_prepare_trace "bfd.at:833"
( $at_check_trace; ovs-vsctl set interface p2 bfd:enable=false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:833"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 5000 100

{ set +x
$as_echo "$at_srcdir/bfd.at:836: ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:836"
( $at_check_trace; ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: false
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: down
	Local Diagnostic: Control Detection Time Expired

	Remote Flags: none
	Remote Session State: down
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:836"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:838: check_logs "
at_fn_check_prepare_trace "bfd.at:838"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:838"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/bfd.at:838: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "bfd.at:838"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:838"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/bfd.at:838: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "bfd.at:838"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:838"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bfd.at:838: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bfd.at:838: wait failed" >&5

    $as_echo "bfd.at:838" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bfd.at:838"
fi

   { set +x
$as_echo "$at_srcdir/bfd.at:838: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "bfd.at:838"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:838"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/bfd.at:838: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "bfd.at:838"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:838"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bfd.at:838: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bfd.at:838: wait failed" >&5

    $as_echo "bfd.at:838" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bfd.at:838"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_21
#AT_START_22
at_fn_group_banner 22 'bfd.at:842' \
  "bfd - liveness propagation - OF1.3" "             " 3
at_xfail=no
(
  $as_echo "22. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/bfd.at:843: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "bfd.at:843"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:843"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bfd.at:843: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "bfd.at:843"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:843"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/bfd.at:843: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:843"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:843"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/bfd.at:843: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "bfd.at:843"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:843"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bfd.at:843: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "bfd.at:843"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:843"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/bfd.at:843: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:843"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:843"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/bfd.at:843: add_of_br 0  "
at_fn_check_prepare_trace "bfd.at:843"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:843"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/bfd.at:844: ovs-ofctl -O OpenFlow13 -P standard monitor br0 --detach --no-chdir --pidfile"
at_fn_check_prepare_trace "bfd.at:844"
( $at_check_trace; ovs-ofctl -O OpenFlow13 -P standard monitor br0 --detach --no-chdir --pidfile
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:844"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

check_liveness () {
    printf '\n\n--- check_liveness %d ---\n\n\n' $1
    shift

	echo >>expout "OFPT_PORT_STATUS (OF1.3): MOD: 1(p0): addr:
     config:     0
     state:      $1
     speed: 0 Mbps now, 0 Mbps max"

	{ set +x
$as_echo "$at_srcdir/bfd.at:854: sed '
s/ (xid=0x[0-9a-fA-F]*)//
s/ *duration.*//
s/addr:[0-9a-fA-F:]*/addr:/' < monitor.log|grep -A3 \"MOD: 1(p0)\"|grep -ve --"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:854"
( $at_check_trace; sed '
s/ (xid=0x[0-9a-fA-F]*)//
s/ *duration.*//
s/addr:[0-9a-fA-F:]*/addr:/' < monitor.log|grep -A3 "MOD: 1(p0)"|grep -ve --
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:854"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

}
: > expout
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log
# Set miss_send_len to 128, enabling port_status messages to our service connection.
ovs-appctl -t ovs-ofctl ofctl/send 0409000c0123456700000080
#Create 2 bridges connected by patch ports and enable bfd
{ set +x
$as_echo "$at_srcdir/bfd.at:867: ovs-vsctl add-br br1 -- \\
          set bridge br1 datapath-type=dummy \\
          other-config:hwaddr=aa:55:aa:56:00:00 -- \\
          add-port br1 p1 -- set Interface p1 type=patch \\
          options:peer=p0 ofport_request=2 -- \\
          add-port br0 p0 -- set Interface p0 type=patch \\
          options:peer=p1 ofport_request=1 -- \\
          set Interface p0 bfd:enable=true bfd:min_tx=100 bfd:min_rx=100 -- \\
          set Interface p1 bfd:enable=true bfd:min_tx=100 bfd:min_rx=100"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:867"
( $at_check_trace; ovs-vsctl add-br br1 -- \
          set bridge br1 datapath-type=dummy \
          other-config:hwaddr=aa:55:aa:56:00:00 -- \
          add-port br1 p1 -- set Interface p1 type=patch \
          options:peer=p0 ofport_request=2 -- \
          add-port br0 p0 -- set Interface p0 type=patch \
          options:peer=p1 ofport_request=1 -- \
          set Interface p0 bfd:enable=true bfd:min_tx=100 bfd:min_rx=100 -- \
          set Interface p1 bfd:enable=true bfd:min_tx=100 bfd:min_rx=100
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:867"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/stop
# Disable the stats update to prevent the race between ovsdb updating
# stats and ovs-vsctl cmd closing the jsonrpc session.
{ set +x
$as_echo "$at_srcdir/bfd.at:880: ovs-vsctl set Open_vSwitch . other_config:stats-update-interval=50000000"
at_fn_check_prepare_trace "bfd.at:880"
( $at_check_trace; ovs-vsctl set Open_vSwitch . other_config:stats-update-interval=50000000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:880"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# wait for a while to stablize bfd.
ovs-appctl time/warp 10100 100

{ set +x
$as_echo "$at_srcdir/bfd.at:884: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:884"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:884"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:885: ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:885"
( $at_check_trace; ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:885"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:886: ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:886"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	TX Interval: Approx 100ms
	Local Minimum TX Interval: 100ms
	Remote Minimum TX Interval: 100ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:886"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:887: ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:887"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	RX Interval: Approx 100ms
	Local Minimum RX Interval: 100ms
	Remote Minimum RX Interval: 100ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:887"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# both p0 and p1 should have flap_count = "1". since down->up.

{ set +x
$as_echo "$at_srcdir/bfd.at:889: ovs-vsctl list interface p0 | sed -n \"s/^.*flap_count=\\(.*\\), forwarding.*\$/\\1/p\""
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:889"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n "s/^.*flap_count=\(.*\), forwarding.*$/\1/p"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"1\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:889"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:890: ovs-vsctl list interface p1 | sed -n \"s/^.*flap_count=\\(.*\\), forwarding.*\$/\\1/p\""
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:890"
( $at_check_trace; ovs-vsctl list interface p1 | sed -n "s/^.*flap_count=\(.*\), forwarding.*$/\1/p"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"1\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:890"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


check_liveness 1 LIVE

# turn bfd on p1 off, should increment the bfd:flap_count on p0.
{ set +x
$as_echo "$at_srcdir/bfd.at:894: ovs-vsctl set interface p1 bfd:enable=false"
at_fn_check_prepare_trace "bfd.at:894"
( $at_check_trace; ovs-vsctl set interface p1 bfd:enable=false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:894"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 5000 100

{ set +x
$as_echo "$at_srcdir/bfd.at:896: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:896"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: false
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: down
	Local Diagnostic: Control Detection Time Expired

	Remote Flags: none
	Remote Session State: down
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:896"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:897: ovs-vsctl list interface p0 | sed -n \"s/^.*flap_count=\\(.*\\), forwarding.*\$/\\1/p\""
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:897"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n "s/^.*flap_count=\(.*\), forwarding.*$/\1/p"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"2\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:897"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/bfd.at:898: ovs-vsctl list interface p1 | sed -n \"s/^.*flap_count=\\(.*\\), forwarding.*\$/\\1/p\""
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:898"
( $at_check_trace; ovs-vsctl list interface p1 | sed -n "s/^.*flap_count=\(.*\), forwarding.*$/\1/p"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:898"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

check_liveness 2 0

# turn bfd on p1 on again, should increment the bfd:flap_count on p0.
# p1 should still have flap_count = "1", since it is reset.
{ set +x
$as_echo "$at_srcdir/bfd.at:903: ovs-vsctl set interface p1 bfd:enable=true"
at_fn_check_prepare_trace "bfd.at:903"
( $at_check_trace; ovs-vsctl set interface p1 bfd:enable=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:903"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 5000 100

{ set +x
$as_echo "$at_srcdir/bfd.at:905: ovs-vsctl list interface p0 | sed -n \"s/^.*flap_count=\\(.*\\), forwarding.*\$/\\1/p\""
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:905"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n "s/^.*flap_count=\(.*\), forwarding.*$/\1/p"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"3\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:905"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:906: ovs-vsctl list interface p1 | sed -n \"s/^.*flap_count=\\(.*\\), forwarding.*\$/\\1/p\""
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:906"
( $at_check_trace; ovs-vsctl list interface p1 | sed -n "s/^.*flap_count=\(.*\), forwarding.*$/\1/p"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"1\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:906"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


check_liveness 3 LIVE

{ set +x
$as_echo "$at_srcdir/bfd.at:909: check_logs "
at_fn_check_prepare_trace "bfd.at:909"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:909"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/bfd.at:909: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "bfd.at:909"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:909"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/bfd.at:909: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "bfd.at:909"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:909"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bfd.at:909: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bfd.at:909: wait failed" >&5

    $as_echo "bfd.at:909" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bfd.at:909"
fi

   { set +x
$as_echo "$at_srcdir/bfd.at:909: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "bfd.at:909"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:909"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/bfd.at:909: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "bfd.at:909"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:909"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bfd.at:909: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bfd.at:909: wait failed" >&5

    $as_echo "bfd.at:909" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bfd.at:909"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_22
#AT_START_23
at_fn_group_banner 23 'bfd.at:913' \
  "bfd - liveness propagation - OF1.4" "             " 3
at_xfail=no
(
  $as_echo "23. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/bfd.at:914: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "bfd.at:914"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:914"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bfd.at:914: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "bfd.at:914"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:914"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/bfd.at:914: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:914"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:914"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/bfd.at:914: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "bfd.at:914"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:914"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bfd.at:914: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "bfd.at:914"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:914"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/bfd.at:914: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:914"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:914"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/bfd.at:914: add_of_br 0  "
at_fn_check_prepare_trace "bfd.at:914"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:914"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/bfd.at:915: ovs-ofctl -O OpenFlow14 -P standard monitor br0 --detach --no-chdir --pidfile"
at_fn_check_prepare_trace "bfd.at:915"
( $at_check_trace; ovs-ofctl -O OpenFlow14 -P standard monitor br0 --detach --no-chdir --pidfile
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:915"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

check_liveness () {
    printf '\n\n--- check_liveness %d ---\n\n\n' $1
    shift

	echo >>expout "OFPT_PORT_STATUS (OF1.4): MOD: 1(p0): addr:
     config:     0
     state:      $1
     speed: 0 Mbps now, 0 Mbps max"

	{ set +x
$as_echo "$at_srcdir/bfd.at:925: sed '
s/ (xid=0x[0-9a-fA-F]*)//
s/ *duration.*//
s/addr:[0-9a-fA-F:]*/addr:/' < monitor.log|grep -A3 \"MOD: 1(p0)\"|grep -ve --"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:925"
( $at_check_trace; sed '
s/ (xid=0x[0-9a-fA-F]*)//
s/ *duration.*//
s/addr:[0-9a-fA-F:]*/addr:/' < monitor.log|grep -A3 "MOD: 1(p0)"|grep -ve --
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:925"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

}
: > expout
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log
# Set miss_send_len to 128, enabling port_status messages to our service connection.
ovs-appctl -t ovs-ofctl ofctl/send 0509000c0123456700000080
#Create 2 bridges connected by patch ports and enable bfd
{ set +x
$as_echo "$at_srcdir/bfd.at:938: ovs-vsctl add-br br1 -- \\
          set bridge br1 datapath-type=dummy \\
          other-config:hwaddr=aa:55:aa:56:00:00 -- \\
          add-port br1 p1 -- set Interface p1 type=patch \\
          options:peer=p0 ofport_request=2 -- \\
          add-port br0 p0 -- set Interface p0 type=patch \\
          options:peer=p1 ofport_request=1 -- \\
          set Interface p0 bfd:enable=true bfd:min_tx=100 bfd:min_rx=100 -- \\
          set Interface p1 bfd:enable=true bfd:min_tx=100 bfd:min_rx=100"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:938"
( $at_check_trace; ovs-vsctl add-br br1 -- \
          set bridge br1 datapath-type=dummy \
          other-config:hwaddr=aa:55:aa:56:00:00 -- \
          add-port br1 p1 -- set Interface p1 type=patch \
          options:peer=p0 ofport_request=2 -- \
          add-port br0 p0 -- set Interface p0 type=patch \
          options:peer=p1 ofport_request=1 -- \
          set Interface p0 bfd:enable=true bfd:min_tx=100 bfd:min_rx=100 -- \
          set Interface p1 bfd:enable=true bfd:min_tx=100 bfd:min_rx=100
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:938"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/stop
# Disable the stats update to prevent the race between ovsdb updating
# stats and ovs-vsctl cmd closing the jsonrpc session.
{ set +x
$as_echo "$at_srcdir/bfd.at:951: ovs-vsctl set Open_vSwitch . other_config:stats-update-interval=50000000"
at_fn_check_prepare_trace "bfd.at:951"
( $at_check_trace; ovs-vsctl set Open_vSwitch . other_config:stats-update-interval=50000000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:951"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# wait for a while to stablize bfd.
ovs-appctl time/warp 10100 100

{ set +x
$as_echo "$at_srcdir/bfd.at:955: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:955"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:955"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:956: ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:956"
( $at_check_trace; ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:956"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:957: ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:957"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	TX Interval: Approx 100ms
	Local Minimum TX Interval: 100ms
	Remote Minimum TX Interval: 100ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:957"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:958: ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:958"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	RX Interval: Approx 100ms
	Local Minimum RX Interval: 100ms
	Remote Minimum RX Interval: 100ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:958"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# both p0 and p1 should have flap_count = "1". since down->up.

{ set +x
$as_echo "$at_srcdir/bfd.at:960: ovs-vsctl list interface p0 | sed -n \"s/^.*flap_count=\\(.*\\), forwarding.*\$/\\1/p\""
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:960"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n "s/^.*flap_count=\(.*\), forwarding.*$/\1/p"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"1\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:960"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:961: ovs-vsctl list interface p1 | sed -n \"s/^.*flap_count=\\(.*\\), forwarding.*\$/\\1/p\""
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:961"
( $at_check_trace; ovs-vsctl list interface p1 | sed -n "s/^.*flap_count=\(.*\), forwarding.*$/\1/p"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"1\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:961"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


check_liveness 1 LIVE

# turn bfd on p1 off, should increment the bfd:flap_count on p0.
{ set +x
$as_echo "$at_srcdir/bfd.at:965: ovs-vsctl set interface p1 bfd:enable=false"
at_fn_check_prepare_trace "bfd.at:965"
( $at_check_trace; ovs-vsctl set interface p1 bfd:enable=false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:965"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 5000 100

{ set +x
$as_echo "$at_srcdir/bfd.at:967: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:967"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: false
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: down
	Local Diagnostic: Control Detection Time Expired

	Remote Flags: none
	Remote Session State: down
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:967"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:968: ovs-vsctl list interface p0 | sed -n \"s/^.*flap_count=\\(.*\\), forwarding.*\$/\\1/p\""
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:968"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n "s/^.*flap_count=\(.*\), forwarding.*$/\1/p"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"2\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:968"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/bfd.at:969: ovs-vsctl list interface p1 | sed -n \"s/^.*flap_count=\\(.*\\), forwarding.*\$/\\1/p\""
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:969"
( $at_check_trace; ovs-vsctl list interface p1 | sed -n "s/^.*flap_count=\(.*\), forwarding.*$/\1/p"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:969"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

check_liveness 2 0

# turn bfd on p1 on again, should increment the bfd:flap_count on p0.
# p1 should still have flap_count = "1", since it is reset.
{ set +x
$as_echo "$at_srcdir/bfd.at:974: ovs-vsctl set interface p1 bfd:enable=true"
at_fn_check_prepare_trace "bfd.at:974"
( $at_check_trace; ovs-vsctl set interface p1 bfd:enable=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:974"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 5000 100

{ set +x
$as_echo "$at_srcdir/bfd.at:976: ovs-vsctl list interface p0 | sed -n \"s/^.*flap_count=\\(.*\\), forwarding.*\$/\\1/p\""
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:976"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n "s/^.*flap_count=\(.*\), forwarding.*$/\1/p"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"3\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:976"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:977: ovs-vsctl list interface p1 | sed -n \"s/^.*flap_count=\\(.*\\), forwarding.*\$/\\1/p\""
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:977"
( $at_check_trace; ovs-vsctl list interface p1 | sed -n "s/^.*flap_count=\(.*\), forwarding.*$/\1/p"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"1\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:977"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


check_liveness 3 LIVE

{ set +x
$as_echo "$at_srcdir/bfd.at:980: check_logs "
at_fn_check_prepare_trace "bfd.at:980"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:980"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/bfd.at:980: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "bfd.at:980"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:980"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/bfd.at:980: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "bfd.at:980"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:980"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bfd.at:980: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bfd.at:980: wait failed" >&5

    $as_echo "bfd.at:980" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bfd.at:980"
fi

   { set +x
$as_echo "$at_srcdir/bfd.at:980: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "bfd.at:980"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:980"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/bfd.at:980: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "bfd.at:980"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:980"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bfd.at:980: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bfd.at:980: wait failed" >&5

    $as_echo "bfd.at:980" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bfd.at:980"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_23
#AT_START_24
at_fn_group_banner 24 'bfd.at:984' \
  "bfd - liveness propagation - OF1.5" "             " 3
at_xfail=no
(
  $as_echo "24. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/bfd.at:985: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "bfd.at:985"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:985"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bfd.at:985: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "bfd.at:985"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:985"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/bfd.at:985: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:985"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:985"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/bfd.at:985: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "bfd.at:985"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:985"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bfd.at:985: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "bfd.at:985"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:985"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/bfd.at:985: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:985"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:985"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/bfd.at:985: add_of_br 0  "
at_fn_check_prepare_trace "bfd.at:985"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:985"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/bfd.at:986: ovs-ofctl -O OpenFlow15 -P standard monitor br0 --detach --no-chdir --pidfile"
at_fn_check_prepare_trace "bfd.at:986"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -P standard monitor br0 --detach --no-chdir --pidfile
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:986"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

check_liveness () {
    printf '\n\n--- check_liveness %d ---\n\n\n' $1
    shift

	echo >>expout "OFPT_PORT_STATUS (OF1.5): MOD: 1(p0): addr:
     config:     0
     state:      $1
     speed: 0 Mbps now, 0 Mbps max"

	{ set +x
$as_echo "$at_srcdir/bfd.at:996: sed '
s/ (xid=0x[0-9a-fA-F]*)//
s/ *duration.*//
s/addr:[0-9a-fA-F:]*/addr:/' < monitor.log|grep -A3 \"MOD: 1(p0)\"|grep -ve --"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:996"
( $at_check_trace; sed '
s/ (xid=0x[0-9a-fA-F]*)//
s/ *duration.*//
s/addr:[0-9a-fA-F:]*/addr:/' < monitor.log|grep -A3 "MOD: 1(p0)"|grep -ve --
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:996"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

}
: > expout
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log
# Set miss_send_len to 128, enabling port_status messages to our service connection.
ovs-appctl -t ovs-ofctl ofctl/send 0609000c0123456700000080
#Create 2 bridges connected by patch ports and enable bfd
{ set +x
$as_echo "$at_srcdir/bfd.at:1009: ovs-vsctl add-br br1 -- \\
          set bridge br1 datapath-type=dummy \\
          other-config:hwaddr=aa:55:aa:56:00:00 -- \\
          add-port br1 p1 -- set Interface p1 type=patch \\
          options:peer=p0 ofport_request=2 -- \\
          add-port br0 p0 -- set Interface p0 type=patch \\
          options:peer=p1 ofport_request=1 -- \\
          set Interface p0 bfd:enable=true bfd:min_tx=100 bfd:min_rx=100 -- \\
          set Interface p1 bfd:enable=true bfd:min_tx=100 bfd:min_rx=100"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:1009"
( $at_check_trace; ovs-vsctl add-br br1 -- \
          set bridge br1 datapath-type=dummy \
          other-config:hwaddr=aa:55:aa:56:00:00 -- \
          add-port br1 p1 -- set Interface p1 type=patch \
          options:peer=p0 ofport_request=2 -- \
          add-port br0 p0 -- set Interface p0 type=patch \
          options:peer=p1 ofport_request=1 -- \
          set Interface p0 bfd:enable=true bfd:min_tx=100 bfd:min_rx=100 -- \
          set Interface p1 bfd:enable=true bfd:min_tx=100 bfd:min_rx=100
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1009"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/stop
# Disable the stats update to prevent the race between ovsdb updating
# stats and ovs-vsctl cmd closing the jsonrpc session.
{ set +x
$as_echo "$at_srcdir/bfd.at:1022: ovs-vsctl set Open_vSwitch . other_config:stats-update-interval=50000000"
at_fn_check_prepare_trace "bfd.at:1022"
( $at_check_trace; ovs-vsctl set Open_vSwitch . other_config:stats-update-interval=50000000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1022"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# wait for a while to stablize bfd.
ovs-appctl time/warp 10100 100

{ set +x
$as_echo "$at_srcdir/bfd.at:1026: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:1026"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1026"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:1027: ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:1027"
( $at_check_trace; ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1027"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:1028: ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:1028"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/TX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	TX Interval: Approx 100ms
	Local Minimum TX Interval: 100ms
	Remote Minimum TX Interval: 100ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1028"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:1029: ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:1029"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/RX Interval/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	RX Interval: Approx 100ms
	Local Minimum RX Interval: 100ms
	Remote Minimum RX Interval: 100ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1029"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# both p0 and p1 should have flap_count = "1". since down->up.

{ set +x
$as_echo "$at_srcdir/bfd.at:1031: ovs-vsctl list interface p0 | sed -n \"s/^.*flap_count=\\(.*\\), forwarding.*\$/\\1/p\""
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:1031"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n "s/^.*flap_count=\(.*\), forwarding.*$/\1/p"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"1\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1031"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:1032: ovs-vsctl list interface p1 | sed -n \"s/^.*flap_count=\\(.*\\), forwarding.*\$/\\1/p\""
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:1032"
( $at_check_trace; ovs-vsctl list interface p1 | sed -n "s/^.*flap_count=\(.*\), forwarding.*$/\1/p"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"1\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1032"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


check_liveness 1 LIVE

# turn bfd on p1 off, should increment the bfd:flap_count on p0.
{ set +x
$as_echo "$at_srcdir/bfd.at:1036: ovs-vsctl set interface p1 bfd:enable=false"
at_fn_check_prepare_trace "bfd.at:1036"
( $at_check_trace; ovs-vsctl set interface p1 bfd:enable=false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1036"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 5000 100

{ set +x
$as_echo "$at_srcdir/bfd.at:1038: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:1038"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: false
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: down
	Local Diagnostic: Control Detection Time Expired

	Remote Flags: none
	Remote Session State: down
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1038"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:1039: ovs-vsctl list interface p0 | sed -n \"s/^.*flap_count=\\(.*\\), forwarding.*\$/\\1/p\""
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:1039"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n "s/^.*flap_count=\(.*\), forwarding.*$/\1/p"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"2\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1039"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/bfd.at:1040: ovs-vsctl list interface p1 | sed -n \"s/^.*flap_count=\\(.*\\), forwarding.*\$/\\1/p\""
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:1040"
( $at_check_trace; ovs-vsctl list interface p1 | sed -n "s/^.*flap_count=\(.*\), forwarding.*$/\1/p"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1040"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

check_liveness 2 0

# turn bfd on p1 on again, should increment the bfd:flap_count on p0.
# p1 should still have flap_count = "1", since it is reset.
{ set +x
$as_echo "$at_srcdir/bfd.at:1045: ovs-vsctl set interface p1 bfd:enable=true"
at_fn_check_prepare_trace "bfd.at:1045"
( $at_check_trace; ovs-vsctl set interface p1 bfd:enable=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1045"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 5000 100

{ set +x
$as_echo "$at_srcdir/bfd.at:1047: ovs-vsctl list interface p0 | sed -n \"s/^.*flap_count=\\(.*\\), forwarding.*\$/\\1/p\""
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:1047"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n "s/^.*flap_count=\(.*\), forwarding.*$/\1/p"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"3\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1047"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:1048: ovs-vsctl list interface p1 | sed -n \"s/^.*flap_count=\\(.*\\), forwarding.*\$/\\1/p\""
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:1048"
( $at_check_trace; ovs-vsctl list interface p1 | sed -n "s/^.*flap_count=\(.*\), forwarding.*$/\1/p"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"1\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1048"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


check_liveness 3 LIVE

{ set +x
$as_echo "$at_srcdir/bfd.at:1051: check_logs "
at_fn_check_prepare_trace "bfd.at:1051"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1051"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/bfd.at:1051: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "bfd.at:1051"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1051"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/bfd.at:1051: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "bfd.at:1051"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1051"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bfd.at:1051: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bfd.at:1051: wait failed" >&5

    $as_echo "bfd.at:1051" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bfd.at:1051"
fi

   { set +x
$as_echo "$at_srcdir/bfd.at:1051: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "bfd.at:1051"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1051"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/bfd.at:1051: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "bfd.at:1051"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1051"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bfd.at:1051: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bfd.at:1051: wait failed" >&5

    $as_echo "bfd.at:1051" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bfd.at:1051"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_24
#AT_START_25
at_fn_group_banner 25 'bfd.at:1054' \
  "bfd - Edit the Detect Mult values" "              " 3
at_xfail=no
(
  $as_echo "25. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

#Create 2 bridges connected by patch ports and enable BFD
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/bfd.at:1056: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "bfd.at:1056"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1056"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bfd.at:1056: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "bfd.at:1056"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1056"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/bfd.at:1056: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:1056"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1056"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/bfd.at:1056: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "bfd.at:1056"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1056"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bfd.at:1056: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "bfd.at:1056"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1056"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/bfd.at:1056: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:1056"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1056"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/bfd.at:1056: add_of_br 0  "
at_fn_check_prepare_trace "bfd.at:1056"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1056"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/stop
{ set +x
$as_echo "$at_srcdir/bfd.at:1058:  ovs-vsctl -- add-br br1 -- \\
           set bridge br1 datapath-type=dummy "
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:1058"
( $at_check_trace;  ovs-vsctl -- add-br br1 -- \
           set bridge br1 datapath-type=dummy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1058"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bfd.at:1060:  ovs-vsctl -- add-port br1 p1 -- set Interface p1 type=patch\\
           options:peer=p0 "
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:1060"
( $at_check_trace;  ovs-vsctl -- add-port br1 p1 -- set Interface p1 type=patch\
           options:peer=p0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1060"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bfd.at:1062:  ovs-vsctl -- add-port br0 p0 -- set Interface p0 type=patch\\
           options:peer=p1 "
at_fn_check_prepare_notrace 'an embedded newline' "bfd.at:1062"
( $at_check_trace;  ovs-vsctl -- add-port br0 p0 -- set Interface p0 type=patch\
           options:peer=p1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1062"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bfd.at:1064:  ovs-vsctl -- set interface p0 bfd:enable=true "
at_fn_check_prepare_trace "bfd.at:1064"
( $at_check_trace;  ovs-vsctl -- set interface p0 bfd:enable=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1064"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bfd.at:1065:  ovs-vsctl -- set interface p1 bfd:enable=true "
at_fn_check_prepare_trace "bfd.at:1065"
( $at_check_trace;  ovs-vsctl -- set interface p1 bfd:enable=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1065"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 3100 100
#Verify that BFD has been enabled on both interfaces.

{ set +x
$as_echo "$at_srcdir/bfd.at:1068: ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:1068"
( $at_check_trace; ovs-appctl bfd/show p1 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1068"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:1069: ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:1069"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -e '/Time:/d' | sed -e '/Discriminator/d' | sed -e '/Interval:/d'| sed -e '/Multiplier/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Forwarding: true
	Concatenated Path Down: false

	Local Flags: none
	Local Session State: up
	Local Diagnostic: No Diagnostic

	Remote Flags: none
	Remote Session State: up
	Remote Diagnostic: No Diagnostic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1069"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


#Verify that default mult values are 3.

{ set +x
$as_echo "$at_srcdir/bfd.at:1071: ovs-appctl bfd/show p0 | sed -n '/Detect Multiplier/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:1071"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/Detect Multiplier/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Detect Multiplier: 3
	Remote Detect Multiplier: 3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1071"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:1072: ovs-appctl bfd/show p1 | sed -n '/Detect Multiplier/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:1072"
( $at_check_trace; ovs-appctl bfd/show p1 | sed -n '/Detect Multiplier/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Detect Multiplier: 3
	Remote Detect Multiplier: 3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1072"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


#Set the mult values to valid range border mult(p0)=1 mult(p1)=255.
{ set +x
$as_echo "$at_srcdir/bfd.at:1074: ovs-vsctl set interface p0 bfd:mult=1"
at_fn_check_prepare_trace "bfd.at:1074"
( $at_check_trace; ovs-vsctl set interface p0 bfd:mult=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1074"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bfd.at:1075: ovs-vsctl set interface p1 bfd:mult=255"
at_fn_check_prepare_trace "bfd.at:1075"
( $at_check_trace; ovs-vsctl set interface p1 bfd:mult=255
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1075"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 3100 100

{ set +x
$as_echo "$at_srcdir/bfd.at:1077: ovs-appctl bfd/show p0 | sed -n '/Detect Multiplier/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:1077"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/Detect Multiplier/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Detect Multiplier: 1
	Remote Detect Multiplier: 255
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1077"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:1078: ovs-appctl bfd/show p1 | sed -n '/Detect Multiplier/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:1078"
( $at_check_trace; ovs-appctl bfd/show p1 | sed -n '/Detect Multiplier/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Detect Multiplier: 255
	Remote Detect Multiplier: 1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1078"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



#Set the mult values out valid range border mult(p0)=0 mult(p1)=256.
{ set +x
$as_echo "$at_srcdir/bfd.at:1081: ovs-vsctl set interface p0 bfd:mult=0"
at_fn_check_prepare_trace "bfd.at:1081"
( $at_check_trace; ovs-vsctl set interface p0 bfd:mult=0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1081"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bfd.at:1082: ovs-vsctl set interface p1 bfd:mult=256"
at_fn_check_prepare_trace "bfd.at:1082"
( $at_check_trace; ovs-vsctl set interface p1 bfd:mult=256
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1082"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 3100 100

{ set +x
$as_echo "$at_srcdir/bfd.at:1084: ovs-appctl bfd/show p0 | sed -n '/Detect Multiplier/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:1084"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/Detect Multiplier/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Detect Multiplier: 3
	Remote Detect Multiplier: 3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1084"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:1085: ovs-appctl bfd/show p1 | sed -n '/Detect Multiplier/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:1085"
( $at_check_trace; ovs-appctl bfd/show p1 | sed -n '/Detect Multiplier/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Detect Multiplier: 3
	Remote Detect Multiplier: 3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1085"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



#Set valid non default mult values mult(p0)=8 mult(p1)=125.
{ set +x
$as_echo "$at_srcdir/bfd.at:1088: ovs-vsctl set interface p0 bfd:mult=8"
at_fn_check_prepare_trace "bfd.at:1088"
( $at_check_trace; ovs-vsctl set interface p0 bfd:mult=8
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1088"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bfd.at:1089: ovs-vsctl set interface p1 bfd:mult=125"
at_fn_check_prepare_trace "bfd.at:1089"
( $at_check_trace; ovs-vsctl set interface p1 bfd:mult=125
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1089"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 3100 100

{ set +x
$as_echo "$at_srcdir/bfd.at:1091: ovs-appctl bfd/show p0 | sed -n '/Detect Multiplier/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:1091"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/Detect Multiplier/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Detect Multiplier: 8
	Remote Detect Multiplier: 125
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1091"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:1092: ovs-appctl bfd/show p1 | sed -n '/Detect Multiplier/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:1092"
( $at_check_trace; ovs-appctl bfd/show p1 | sed -n '/Detect Multiplier/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Detect Multiplier: 125
	Remote Detect Multiplier: 8
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1092"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



#Clear mult values. Detect mult values shall be default 3 again.
{ set +x
$as_echo "$at_srcdir/bfd.at:1095: ovs-vsctl remove interface p0 bfd mult"
at_fn_check_prepare_trace "bfd.at:1095"
( $at_check_trace; ovs-vsctl remove interface p0 bfd mult
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1095"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bfd.at:1096: ovs-vsctl remove interface p1 bfd mult"
at_fn_check_prepare_trace "bfd.at:1096"
( $at_check_trace; ovs-vsctl remove interface p1 bfd mult
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1096"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 3100 100

{ set +x
$as_echo "$at_srcdir/bfd.at:1098: ovs-appctl bfd/show p0 | sed -n '/Detect Multiplier/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:1098"
( $at_check_trace; ovs-appctl bfd/show p0 | sed -n '/Detect Multiplier/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Detect Multiplier: 3
	Remote Detect Multiplier: 3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1098"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:1099: ovs-appctl bfd/show p1 | sed -n '/Detect Multiplier/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "bfd.at:1099"
( $at_check_trace; ovs-appctl bfd/show p1 | sed -n '/Detect Multiplier/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Detect Multiplier: 3
	Remote Detect Multiplier: 3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1099"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bfd.at:1101: check_logs "
at_fn_check_prepare_trace "bfd.at:1101"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1101"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/bfd.at:1101: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "bfd.at:1101"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1101"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/bfd.at:1101: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "bfd.at:1101"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1101"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bfd.at:1101: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bfd.at:1101: wait failed" >&5

    $as_echo "bfd.at:1101" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bfd.at:1101"
fi

   { set +x
$as_echo "$at_srcdir/bfd.at:1101: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "bfd.at:1101"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1101"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/bfd.at:1101: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "bfd.at:1101"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bfd.at:1101"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bfd.at:1101: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bfd.at:1101: wait failed" >&5

    $as_echo "bfd.at:1101" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bfd.at:1101"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_25
#AT_START_26
at_fn_group_banner 26 'cfm.at:49' \
  "cfm - check update ovsdb 1" "                     " 4
at_xfail=no
(
  $as_echo "26. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/cfm.at:50: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "cfm.at:50"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:50"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/cfm.at:50: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "cfm.at:50"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:50"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/cfm.at:50: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:50"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:50"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/cfm.at:50: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "cfm.at:50"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:50"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/cfm.at:50: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "cfm.at:50"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:50"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/cfm.at:50: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:50"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:50"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/cfm.at:50: add_of_br 0 add-port br0 p0 -- set Interface p0 type=gre \\
                    options:remote_ip=1.2.3.4 -- \\
                    set Interface p0 other_config:cfm_interval=300 other_config:cfm_extended=true "
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:50"
( $at_check_trace; add_of_br 0 add-port br0 p0 -- set Interface p0 type=gre \
                    options:remote_ip=1.2.3.4 -- \
                    set Interface p0 other_config:cfm_interval=300 other_config:cfm_extended=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:50"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



ovs-appctl time/stop
{ set +x
$as_echo "$at_srcdir/cfm.at:55: ovs-appctl ofproto/list-tunnels"
at_fn_check_prepare_trace "cfm.at:55"
( $at_check_trace; ovs-appctl ofproto/list-tunnels
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "port 1: p0 (gre: ::->1.2.3.4, key=0, legacy_l2, dp port=1, ttl=64)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:55"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/cfm.at:59: ovs-vsctl set Interface p0 cfm_mpid=1"
at_fn_check_prepare_trace "cfm.at:59"
( $at_check_trace; ovs-vsctl set Interface p0 cfm_mpid=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:59"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# at beginning, since the first fault check timeout is not reached
# cfm_fault should be false.
for i in `seq 0 4`; do
    ovs-appctl time/warp 100


{ set +x
$as_echo "$at_srcdir/cfm.at:64: ovs-vsctl list interface p0 | sed -n '/cfm_fault /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:64"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_fault /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_fault           : false
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:64"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:64: ovs-vsctl list interface p0 | sed -n '/cfm_fault_status /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:64"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_fault_status /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_fault_status    : []
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:64"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:64: ovs-vsctl list interface p0 | sed -n '/cfm_flap_count /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:64"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_flap_count /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_flap_count      : 0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:64"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:64: ovs-vsctl list interface p0 | sed -n '/cfm_health /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:64"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_health /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_health          : []
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:64"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:64: ovs-vsctl list interface p0 | sed -n '/cfm_remote_mpids /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:64"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_remote_mpids /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_remote_mpids    : []
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:64"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:64: ovs-vsctl list interface p0 | sed -n '/cfm_remote_opstate /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:64"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_remote_opstate /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_remote_opstate  : up
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:64"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



done

# advance clock to pass the fault check timeout and check cfm
# status update in OVSDB.
ovs-appctl time/warp 1500 100


{ set +x
$as_echo "$at_srcdir/cfm.at:70: ovs-vsctl list interface p0 | sed -n '/cfm_fault /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:70"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_fault /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_fault           : true
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:70"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:70: ovs-vsctl list interface p0 | sed -n '/cfm_fault_status /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:70"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_fault_status /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_fault_status    : [recv]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:70"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:70: ovs-vsctl list interface p0 | sed -n '/cfm_flap_count /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:70"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_flap_count /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_flap_count      : 1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:70"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:70: ovs-vsctl list interface p0 | sed -n '/cfm_health /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:70"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_health /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_health          : []
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:70"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:70: ovs-vsctl list interface p0 | sed -n '/cfm_remote_mpids /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:70"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_remote_mpids /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_remote_mpids    : []
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:70"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:70: ovs-vsctl list interface p0 | sed -n '/cfm_remote_opstate /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:70"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_remote_opstate /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_remote_opstate  : up
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:70"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }




# remove the cfm on p0 and status should be all empty.
{ set +x
$as_echo "$at_srcdir/cfm.at:73: ovs-vsctl remove int p0 cfm_mpid 1"
at_fn_check_prepare_trace "cfm.at:73"
( $at_check_trace; ovs-vsctl remove int p0 cfm_mpid 1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:73"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 500 100


{ set +x
$as_echo "$at_srcdir/cfm.at:75: ovs-vsctl list interface p0 | sed -n '/cfm_fault /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:75"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_fault /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_fault           : []
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:75"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:75: ovs-vsctl list interface p0 | sed -n '/cfm_fault_status /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:75"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_fault_status /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_fault_status    : []
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:75"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:75: ovs-vsctl list interface p0 | sed -n '/cfm_flap_count /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:75"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_flap_count /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_flap_count      : []
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:75"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:75: ovs-vsctl list interface p0 | sed -n '/cfm_health /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:75"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_health /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_health          : []
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:75"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:75: ovs-vsctl list interface p0 | sed -n '/cfm_remote_mpids /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:75"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_remote_mpids /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_remote_mpids    : []
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:75"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:75: ovs-vsctl list interface p0 | sed -n '/cfm_remote_opstate /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:75"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_remote_opstate /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_remote_opstate  : []
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:75"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }




{ set +x
$as_echo "$at_srcdir/cfm.at:77: check_logs "
at_fn_check_prepare_trace "cfm.at:77"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:77"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/cfm.at:77: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "cfm.at:77"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:77"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/cfm.at:77: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "cfm.at:77"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:77"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "cfm.at:77: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "cfm.at:77: wait failed" >&5

    $as_echo "cfm.at:77" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/cfm.at:77"
fi

   { set +x
$as_echo "$at_srcdir/cfm.at:77: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "cfm.at:77"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:77"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/cfm.at:77: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "cfm.at:77"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:77"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "cfm.at:77: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "cfm.at:77: wait failed" >&5

    $as_echo "cfm.at:77" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/cfm.at:77"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_26
#AT_START_27
at_fn_group_banner 27 'cfm.at:81' \
  "cfm - check update ovsdb 2" "                     " 4
at_xfail=no
(
  $as_echo "27. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

#Create 2 bridges connected by patch ports and enable cfm
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/cfm.at:83: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "cfm.at:83"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:83"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/cfm.at:83: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "cfm.at:83"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:83"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/cfm.at:83: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:83"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:83"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/cfm.at:83: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "cfm.at:83"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:83"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/cfm.at:83: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "cfm.at:83"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:83"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/cfm.at:83: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:83"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:83"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/cfm.at:83: add_of_br 0 add-br br1 -- \\
                    set bridge br1 datapath-type=dummy \\
                    other-config:hwaddr=aa:55:aa:56:00:00 -- \\
                    add-port br1 p1 -- set Interface p1 type=patch \\
                    options:peer=p0 -- \\
                    add-port br0 p0 -- set Interface p0 type=patch \\
                    options:peer=p1 -- \\
                    set Interface p0 other_config:cfm_interval=300 other_config:cfm_extended=true -- \\
                    set Interface p1 other_config:cfm_interval=300 other_config:cfm_extended=true "
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:83"
( $at_check_trace; add_of_br 0 add-br br1 -- \
                    set bridge br1 datapath-type=dummy \
                    other-config:hwaddr=aa:55:aa:56:00:00 -- \
                    add-port br1 p1 -- set Interface p1 type=patch \
                    options:peer=p0 -- \
                    add-port br0 p0 -- set Interface p0 type=patch \
                    options:peer=p1 -- \
                    set Interface p0 other_config:cfm_interval=300 other_config:cfm_extended=true -- \
                    set Interface p1 other_config:cfm_interval=300 other_config:cfm_extended=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:83"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



ovs-appctl time/stop

{ set +x
$as_echo "$at_srcdir/cfm.at:95: ovs-vsctl set Interface p0 cfm_mpid=1"
at_fn_check_prepare_trace "cfm.at:95"
( $at_check_trace; ovs-vsctl set Interface p0 cfm_mpid=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:95"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# check cfm status update in OVSDB.
ovs-appctl time/warp 1500 100


{ set +x
$as_echo "$at_srcdir/cfm.at:98: ovs-vsctl list interface p0 | sed -n '/cfm_fault /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:98"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_fault /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_fault           : true
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:98"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:98: ovs-vsctl list interface p0 | sed -n '/cfm_fault_status /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:98"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_fault_status /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_fault_status    : [recv]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:98"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:98: ovs-vsctl list interface p0 | sed -n '/cfm_flap_count /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:98"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_flap_count /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_flap_count      : 1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:98"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:98: ovs-vsctl list interface p0 | sed -n '/cfm_health /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:98"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_health /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_health          : []
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:98"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:98: ovs-vsctl list interface p0 | sed -n '/cfm_remote_mpids /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:98"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_remote_mpids /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_remote_mpids    : []
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:98"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:98: ovs-vsctl list interface p0 | sed -n '/cfm_remote_opstate /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:98"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_remote_opstate /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_remote_opstate  : up
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:98"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }




# turn cfm on p1 on, cfm status of p0 and p1 should all go up.
{ set +x
$as_echo "$at_srcdir/cfm.at:101: ovs-vsctl set interface p1 cfm_mpid=2"
at_fn_check_prepare_trace "cfm.at:101"
( $at_check_trace; ovs-vsctl set interface p1 cfm_mpid=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:101"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 1500 100


{ set +x
$as_echo "$at_srcdir/cfm.at:103: ovs-vsctl list interface p0 | sed -n '/cfm_fault /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:103"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_fault /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_fault           : false
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:103"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:103: ovs-vsctl list interface p0 | sed -n '/cfm_fault_status /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:103"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_fault_status /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_fault_status    : []
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:103"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:103: ovs-vsctl list interface p0 | sed -n '/cfm_flap_count /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:103"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_flap_count /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_flap_count      : 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:103"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:103: ovs-vsctl list interface p0 | sed -n '/cfm_health /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:103"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_health /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_health          : []
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:103"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:103: ovs-vsctl list interface p0 | sed -n '/cfm_remote_mpids /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:103"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_remote_mpids /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_remote_mpids    : [2]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:103"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:103: ovs-vsctl list interface p0 | sed -n '/cfm_remote_opstate /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:103"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_remote_opstate /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_remote_opstate  : up
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:103"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }





{ set +x
$as_echo "$at_srcdir/cfm.at:104: ovs-vsctl list interface p1 | sed -n '/cfm_fault /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:104"
( $at_check_trace; ovs-vsctl list interface p1 | sed -n '/cfm_fault /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_fault           : false
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:104"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:104: ovs-vsctl list interface p1 | sed -n '/cfm_fault_status /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:104"
( $at_check_trace; ovs-vsctl list interface p1 | sed -n '/cfm_fault_status /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_fault_status    : []
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:104"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:104: ovs-vsctl list interface p1 | sed -n '/cfm_flap_count /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:104"
( $at_check_trace; ovs-vsctl list interface p1 | sed -n '/cfm_flap_count /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_flap_count      : 0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:104"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:104: ovs-vsctl list interface p1 | sed -n '/cfm_health /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:104"
( $at_check_trace; ovs-vsctl list interface p1 | sed -n '/cfm_health /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_health          : []
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:104"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:104: ovs-vsctl list interface p1 | sed -n '/cfm_remote_mpids /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:104"
( $at_check_trace; ovs-vsctl list interface p1 | sed -n '/cfm_remote_mpids /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_remote_mpids    : [1]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:104"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:104: ovs-vsctl list interface p1 | sed -n '/cfm_remote_opstate /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:104"
( $at_check_trace; ovs-vsctl list interface p1 | sed -n '/cfm_remote_opstate /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_remote_opstate  : up
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:104"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }




# turn cfm on p1 off, cfm status of p0 should go down again.
{ set +x
$as_echo "$at_srcdir/cfm.at:107: ovs-vsctl remove int p1 cfm_mpid 2"
at_fn_check_prepare_trace "cfm.at:107"
( $at_check_trace; ovs-vsctl remove int p1 cfm_mpid 2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 1500 100


{ set +x
$as_echo "$at_srcdir/cfm.at:109: ovs-vsctl list interface p0 | sed -n '/cfm_fault /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:109"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_fault /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_fault           : true
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:109"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:109: ovs-vsctl list interface p0 | sed -n '/cfm_fault_status /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:109"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_fault_status /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_fault_status    : [recv]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:109"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:109: ovs-vsctl list interface p0 | sed -n '/cfm_flap_count /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:109"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_flap_count /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_flap_count      : 3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:109"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:109: ovs-vsctl list interface p0 | sed -n '/cfm_health /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:109"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_health /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_health          : []
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:109"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:109: ovs-vsctl list interface p0 | sed -n '/cfm_remote_mpids /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:109"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_remote_mpids /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_remote_mpids    : []
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:109"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:109: ovs-vsctl list interface p0 | sed -n '/cfm_remote_opstate /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:109"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_remote_opstate /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_remote_opstate  : up
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:109"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }




{ set +x
$as_echo "$at_srcdir/cfm.at:111: check_logs "
at_fn_check_prepare_trace "cfm.at:111"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:111"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/cfm.at:111: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "cfm.at:111"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:111"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/cfm.at:111: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "cfm.at:111"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:111"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "cfm.at:111: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "cfm.at:111: wait failed" >&5

    $as_echo "cfm.at:111" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/cfm.at:111"
fi

   { set +x
$as_echo "$at_srcdir/cfm.at:111: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "cfm.at:111"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:111"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/cfm.at:111: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "cfm.at:111"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:111"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "cfm.at:111: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "cfm.at:111: wait failed" >&5

    $as_echo "cfm.at:111" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/cfm.at:111"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_27
#AT_START_28
at_fn_group_banner 28 'cfm.at:115' \
  "cfm - demand mode" "                              " 4
at_xfail=no
(
  $as_echo "28. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

#Create 2 bridges connected by patch ports and enable cfm
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/cfm.at:117: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "cfm.at:117"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:117"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/cfm.at:117: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "cfm.at:117"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:117"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/cfm.at:117: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:117"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:117"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/cfm.at:117: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "cfm.at:117"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:117"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/cfm.at:117: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "cfm.at:117"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:117"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/cfm.at:117: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:117"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:117"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/cfm.at:117: add_of_br 0 add-br br1 -- \\
                    set bridge br1 datapath-type=dummy \\
                    other-config:hwaddr=aa:55:aa:56:00:00 -- \\
                    add-port br1 p1 -- set Interface p1 type=patch \\
                    options:peer=p0 -- \\
                    add-port br0 p0 -- set Interface p0 type=patch \\
                    options:peer=p1 -- \\
                    set Interface p0 cfm_mpid=1 other_config:cfm_interval=300 other_config:cfm_extended=true -- \\
                    set Interface p1 cfm_mpid=2 other_config:cfm_interval=300 other_config:cfm_extended=true  "
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:117"
( $at_check_trace; add_of_br 0 add-br br1 -- \
                    set bridge br1 datapath-type=dummy \
                    other-config:hwaddr=aa:55:aa:56:00:00 -- \
                    add-port br1 p1 -- set Interface p1 type=patch \
                    options:peer=p0 -- \
                    add-port br0 p0 -- set Interface p0 type=patch \
                    options:peer=p1 -- \
                    set Interface p0 cfm_mpid=1 other_config:cfm_interval=300 other_config:cfm_extended=true -- \
                    set Interface p1 cfm_mpid=2 other_config:cfm_interval=300 other_config:cfm_extended=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:117"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



ovs-appctl time/stop
# wait for a while to stablize cfm.
ovs-appctl time/warp 10100 100

{ set +x
$as_echo "$at_srcdir/cfm.at:130: ovs-appctl cfm/show p0 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:130"
( $at_check_trace; ovs-appctl cfm/show p0 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "---- p0 ----
MPID 1: extended
	average health: 100
	opstate: up
	remote_opstate: up
	interval: 300ms
Remote MPID 2
	opstate: up
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:130"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:131: ovs-appctl cfm/show p1 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:131"
( $at_check_trace; ovs-appctl cfm/show p1 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "---- p1 ----
MPID 2: extended
	average health: 100
	opstate: up
	remote_opstate: up
	interval: 300ms
Remote MPID 1
	opstate: up
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:131"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# turn on demand mode on one end.
{ set +x
$as_echo "$at_srcdir/cfm.at:134: ovs-vsctl set interface p0 other_config:cfm_demand=true"
at_fn_check_prepare_trace "cfm.at:134"
( $at_check_trace; ovs-vsctl set interface p0 other_config:cfm_demand=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:134"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# cfm should never go down.
for i in `seq 0 100`
do
    ovs-appctl time/warp 100

{ set +x
$as_echo "$at_srcdir/cfm.at:140: ovs-appctl cfm/show p0 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:140"
( $at_check_trace; ovs-appctl cfm/show p0 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "---- p0 ----
MPID 1: extended
	average health: 100
	opstate: up
	remote_opstate: up
	interval: 300ms
Remote MPID 2
	opstate: up
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:140"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:141: ovs-appctl cfm/show p1 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:141"
( $at_check_trace; ovs-appctl cfm/show p1 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "---- p1 ----
MPID 2: extended
	average health: 100
	opstate: up
	remote_opstate: up
	interval: 300ms
Remote MPID 1
	opstate: up
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:141"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


done

# turn on demand mode on the other end.
{ set +x
$as_echo "$at_srcdir/cfm.at:145: ovs-vsctl set interface p1 other_config:cfm_demand=true"
at_fn_check_prepare_trace "cfm.at:145"
( $at_check_trace; ovs-vsctl set interface p1 other_config:cfm_demand=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:145"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

for i in `seq 0 100`
do
    ovs-appctl time/warp 100

{ set +x
$as_echo "$at_srcdir/cfm.at:149: ovs-appctl cfm/show p0 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:149"
( $at_check_trace; ovs-appctl cfm/show p0 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "---- p0 ----
MPID 1: extended
	average health: 100
	opstate: up
	remote_opstate: up
	interval: 300ms
Remote MPID 2
	opstate: up
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:149"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:150: ovs-appctl cfm/show p1 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:150"
( $at_check_trace; ovs-appctl cfm/show p1 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "---- p1 ----
MPID 2: extended
	average health: 100
	opstate: up
	remote_opstate: up
	interval: 300ms
Remote MPID 1
	opstate: up
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:150"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


done

{ set +x
$as_echo "$at_srcdir/cfm.at:153: check_logs "
at_fn_check_prepare_trace "cfm.at:153"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:153"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/cfm.at:153: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "cfm.at:153"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:153"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/cfm.at:153: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "cfm.at:153"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:153"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "cfm.at:153: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "cfm.at:153: wait failed" >&5

    $as_echo "cfm.at:153" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/cfm.at:153"
fi

   { set +x
$as_echo "$at_srcdir/cfm.at:153: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "cfm.at:153"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:153"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/cfm.at:153: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "cfm.at:153"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:153"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "cfm.at:153: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "cfm.at:153: wait failed" >&5

    $as_echo "cfm.at:153" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/cfm.at:153"
fi

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

ovs_init

#Create 2 bridges connected by patch ports and enable cfm
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/cfm.at:159: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "cfm.at:159"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:159"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/cfm.at:159: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "cfm.at:159"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:159"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/cfm.at:159: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:159"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:159"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/cfm.at:159: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "cfm.at:159"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:159"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/cfm.at:159: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "cfm.at:159"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:159"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/cfm.at:159: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:159"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:159"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/cfm.at:159: add_of_br 0 add-br br1 -- \\
                    set bridge br1 datapath-type=dummy \\
                    other-config:hwaddr=aa:55:aa:56:00:00 -- \\
                    add-port br1 p1 -- set Interface p1 type=patch \\
                    options:peer=p0 ofport_request=2 -- \\
                    add-port br0 p0 -- set Interface p0 type=patch \\
                    options:peer=p1 ofport_request=1 -- \\
                    set Interface p0 cfm_mpid=1 other_config:cfm_interval=300 other_config:cfm_extended=true other_config:cfm_demand=true -- \\
                    set Interface p1 cfm_mpid=2 other_config:cfm_interval=300 other_config:cfm_extended=true other_config:cfm_demand=true "
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:159"
( $at_check_trace; add_of_br 0 add-br br1 -- \
                    set bridge br1 datapath-type=dummy \
                    other-config:hwaddr=aa:55:aa:56:00:00 -- \
                    add-port br1 p1 -- set Interface p1 type=patch \
                    options:peer=p0 ofport_request=2 -- \
                    add-port br0 p0 -- set Interface p0 type=patch \
                    options:peer=p1 ofport_request=1 -- \
                    set Interface p0 cfm_mpid=1 other_config:cfm_interval=300 other_config:cfm_extended=true other_config:cfm_demand=true -- \
                    set Interface p1 cfm_mpid=2 other_config:cfm_interval=300 other_config:cfm_extended=true other_config:cfm_demand=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:159"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



ovs-appctl time/stop
# wait for a while to stablize cfm. (need a longer time, since in demand mode
# the fault interval is (MAX(ccm_interval_ms, 500) * 3.5) ms)
ovs-appctl time/warp 20100 100

{ set +x
$as_echo "$at_srcdir/cfm.at:173: ovs-appctl cfm/show p0 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:173"
( $at_check_trace; ovs-appctl cfm/show p0 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "---- p0 ----
MPID 1: extended
	average health: 100
	opstate: up
	remote_opstate: up
	interval: 300ms
Remote MPID 2
	opstate: up
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:173"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:174: ovs-appctl cfm/show p1 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:174"
( $at_check_trace; ovs-appctl cfm/show p1 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "---- p1 ----
MPID 2: extended
	average health: 100
	opstate: up
	remote_opstate: up
	interval: 300ms
Remote MPID 1
	opstate: up
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:174"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# turn off the cfm on p1.
{ set +x
$as_echo "$at_srcdir/cfm.at:177: ovs-vsctl clear Interface p1 cfm_mpid"
at_fn_check_prepare_trace "cfm.at:177"
( $at_check_trace; ovs-vsctl clear Interface p1 cfm_mpid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:177"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# cfm should never go down while receiving data packets.
for i in `seq 0 200`
do
    ovs-appctl time/warp 100
    { set +x
$as_echo "$at_srcdir/cfm.at:182: ovs-ofctl packet-out br1 \"in_port=3 packet=90e2ba01475000101856b2e80806000108000604000100101856b2e80202020300000000000002020202 actions=2\""
at_fn_check_prepare_trace "cfm.at:182"
( $at_check_trace; ovs-ofctl packet-out br1 "in_port=3 packet=90e2ba01475000101856b2e80806000108000604000100101856b2e80202020300000000000002020202 actions=2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:182"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

done

{ set +x
$as_echo "$at_srcdir/cfm.at:185: ovs-appctl cfm/show p0 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:185"
( $at_check_trace; ovs-appctl cfm/show p0 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "---- p0 ----
MPID 1: extended
	average health: 0
	opstate: up
	remote_opstate: up
	interval: 300ms
Remote MPID 2
	opstate: up
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:185"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# wait longer, since the demand_rx_ccm interval is 100 * 300 ms.
# since there is no ccm received, the [recv] fault should be raised.
for i in `seq 0 200`
do
    ovs-appctl time/warp 100
    { set +x
$as_echo "$at_srcdir/cfm.at:192: ovs-ofctl packet-out br1 \"in_port=3 packet=90e2ba01475000101856b2e80806000108000604000100101856b2e80202020300000000000002020202 actions=2\""
at_fn_check_prepare_trace "cfm.at:192"
( $at_check_trace; ovs-ofctl packet-out br1 "in_port=3 packet=90e2ba01475000101856b2e80806000108000604000100101856b2e80202020300000000000002020202 actions=2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:192"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

done

{ set +x
$as_echo "$at_srcdir/cfm.at:195: ovs-appctl cfm/show p0 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:195"
( $at_check_trace; ovs-appctl cfm/show p0 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "---- p0 ----
MPID 1: extended
	fault: recv
	average health: 0
	opstate: up
	remote_opstate: up
	interval: 300ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:195"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# now turn on the cfm on p1 again,
{ set +x
$as_echo "$at_srcdir/cfm.at:198: ovs-vsctl set Interface p1 cfm_mpid=2"
at_fn_check_prepare_trace "cfm.at:198"
( $at_check_trace; ovs-vsctl set Interface p1 cfm_mpid=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:198"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# cfm should be up for both p0 and p1
ovs-appctl time/warp 20100 100

{ set +x
$as_echo "$at_srcdir/cfm.at:201: ovs-appctl cfm/show p0 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:201"
( $at_check_trace; ovs-appctl cfm/show p0 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "---- p0 ----
MPID 1: extended
	average health: 100
	opstate: up
	remote_opstate: up
	interval: 300ms
Remote MPID 2
	opstate: up
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:201"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:202: ovs-appctl cfm/show p1 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:202"
( $at_check_trace; ovs-appctl cfm/show p1 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "---- p1 ----
MPID 2: extended
	average health: 100
	opstate: up
	remote_opstate: up
	interval: 300ms
Remote MPID 1
	opstate: up
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:202"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# now turn off the cfm on p1 again
{ set +x
$as_echo "$at_srcdir/cfm.at:205: ovs-vsctl clear Interface p1 cfm_mpid"
at_fn_check_prepare_trace "cfm.at:205"
( $at_check_trace; ovs-vsctl clear Interface p1 cfm_mpid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:205"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# since there is no ccm received, the [recv] fault should be raised.
for i in `seq 0 400`
do
    ovs-appctl time/warp 100
    { set +x
$as_echo "$at_srcdir/cfm.at:210: ovs-ofctl packet-out br1 \"in_port=3 packet=90e2ba01475000101856b2e80806000108000604000100101856b2e80202020300000000000002020202 actions=2\""
at_fn_check_prepare_trace "cfm.at:210"
( $at_check_trace; ovs-ofctl packet-out br1 "in_port=3 packet=90e2ba01475000101856b2e80806000108000604000100101856b2e80202020300000000000002020202 actions=2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:210"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

done

{ set +x
$as_echo "$at_srcdir/cfm.at:213: ovs-appctl cfm/show p0 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:213"
( $at_check_trace; ovs-appctl cfm/show p0 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "---- p0 ----
MPID 1: extended
	fault: recv
	average health: 0
	opstate: up
	remote_opstate: up
	interval: 300ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:213"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:215: check_logs "
at_fn_check_prepare_trace "cfm.at:215"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:215"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/cfm.at:215: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "cfm.at:215"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:215"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/cfm.at:215: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "cfm.at:215"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:215"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "cfm.at:215: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "cfm.at:215: wait failed" >&5

    $as_echo "cfm.at:215" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/cfm.at:215"
fi

   { set +x
$as_echo "$at_srcdir/cfm.at:215: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "cfm.at:215"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:215"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/cfm.at:215: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "cfm.at:215"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:215"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "cfm.at:215: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "cfm.at:215: wait failed" >&5

    $as_echo "cfm.at:215" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/cfm.at:215"
fi

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

ovs_init

#Create 2 bridges connected by patch ports and enable cfm
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/cfm.at:221: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "cfm.at:221"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:221"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/cfm.at:221: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "cfm.at:221"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:221"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/cfm.at:221: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:221"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:221"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/cfm.at:221: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "cfm.at:221"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:221"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/cfm.at:221: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "cfm.at:221"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:221"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/cfm.at:221: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:221"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:221"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/cfm.at:221: add_of_br 0 add-br br1 -- \\
                    set bridge br1 datapath-type=dummy \\
                    other-config:hwaddr=aa:55:aa:56:00:00 -- \\
                    add-port br1 p1 -- set Interface p1 type=patch \\
                    options:peer=p0 -- \\
                    add-port br0 p0 -- set Interface p0 type=patch \\
                    options:peer=p1 -- \\
                    set Interface p0 cfm_mpid=1 other_config:cfm_interval=100 other_config:cfm_extended=true -- \\
                    set Interface p1 cfm_mpid=2 other_config:cfm_interval=100 other_config:cfm_extended=true "
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:221"
( $at_check_trace; add_of_br 0 add-br br1 -- \
                    set bridge br1 datapath-type=dummy \
                    other-config:hwaddr=aa:55:aa:56:00:00 -- \
                    add-port br1 p1 -- set Interface p1 type=patch \
                    options:peer=p0 -- \
                    add-port br0 p0 -- set Interface p0 type=patch \
                    options:peer=p1 -- \
                    set Interface p0 cfm_mpid=1 other_config:cfm_interval=100 other_config:cfm_extended=true -- \
                    set Interface p1 cfm_mpid=2 other_config:cfm_interval=100 other_config:cfm_extended=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:221"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



ovs-appctl time/stop

# wait for a while to stablize cfm.
ovs-appctl time/warp 10100 100

{ set +x
$as_echo "$at_srcdir/cfm.at:235: ovs-appctl cfm/show p0 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:235"
( $at_check_trace; ovs-appctl cfm/show p0 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "---- p0 ----
MPID 1: extended
	average health: 100
	opstate: up
	remote_opstate: up
	interval: 100ms
Remote MPID 2
	opstate: up
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:235"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:236: ovs-appctl cfm/show p1 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:236"
( $at_check_trace; ovs-appctl cfm/show p1 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "---- p1 ----
MPID 2: extended
	average health: 100
	opstate: up
	remote_opstate: up
	interval: 100ms
Remote MPID 1
	opstate: up
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:236"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# turn cfm on p1 off, should increment the cfm_flap_count on p0.
{ set +x
$as_echo "$at_srcdir/cfm.at:239: ovs-vsctl remove interface p1 cfm_mpid 2"
at_fn_check_prepare_trace "cfm.at:239"
( $at_check_trace; ovs-vsctl remove interface p1 cfm_mpid 2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:239"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 1100 100

{ set +x
$as_echo "$at_srcdir/cfm.at:241: ovs-vsctl list interface p0 | sed -n '/cfm_flap_count /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:241"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_flap_count /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_flap_count      : 1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:241"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:242: ovs-vsctl list interface p1 | sed -n '/cfm_flap_count /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:242"
( $at_check_trace; ovs-vsctl list interface p1 | sed -n '/cfm_flap_count /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_flap_count      : []
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:242"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# turn cfm on p1 on again, should increment the cfm_flap_count on p0.
{ set +x
$as_echo "$at_srcdir/cfm.at:245: ovs-vsctl set interface p1 cfm_mpid=2"
at_fn_check_prepare_trace "cfm.at:245"
( $at_check_trace; ovs-vsctl set interface p1 cfm_mpid=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:245"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 1100 100

{ set +x
$as_echo "$at_srcdir/cfm.at:247: ovs-vsctl list interface p0 | sed -n '/cfm_flap_count /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:247"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_flap_count /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_flap_count      : 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:247"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:249: check_logs "
at_fn_check_prepare_trace "cfm.at:249"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:249"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/cfm.at:249: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "cfm.at:249"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:249"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/cfm.at:249: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "cfm.at:249"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:249"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "cfm.at:249: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "cfm.at:249: wait failed" >&5

    $as_echo "cfm.at:249" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/cfm.at:249"
fi

   { set +x
$as_echo "$at_srcdir/cfm.at:249: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "cfm.at:249"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:249"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/cfm.at:249: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "cfm.at:249"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:249"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "cfm.at:249: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "cfm.at:249: wait failed" >&5

    $as_echo "cfm.at:249" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/cfm.at:249"
fi

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

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/cfm.at:253: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "cfm.at:253"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:253"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/cfm.at:253: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "cfm.at:253"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:253"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/cfm.at:253: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:253"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:253"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/cfm.at:253: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "cfm.at:253"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:253"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/cfm.at:253: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "cfm.at:253"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:253"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/cfm.at:253: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:253"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:253"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/cfm.at:253: add_of_br 0 add-br br1 -- \\
                    set bridge br1 datapath-type=dummy \\
                    other-config:hwaddr=aa:55:aa:56:00:00 -- \\
                    add-port br1 p1 -- set Interface p1 type=patch \\
                    options:peer=p0 -- \\
                    add-port br0 p0 -- set Interface p0 type=patch \\
                    options:peer=p1 -- \\
                    set Interface p0 cfm_mpid=1 other_config:cfm_interval=100 other_config:cfm_extended=true -- \\
                    set Interface p1 cfm_mpid=2 other_config:cfm_interval=100 other_config:cfm_extended=true "
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:253"
( $at_check_trace; add_of_br 0 add-br br1 -- \
                    set bridge br1 datapath-type=dummy \
                    other-config:hwaddr=aa:55:aa:56:00:00 -- \
                    add-port br1 p1 -- set Interface p1 type=patch \
                    options:peer=p0 -- \
                    add-port br0 p0 -- set Interface p0 type=patch \
                    options:peer=p1 -- \
                    set Interface p0 cfm_mpid=1 other_config:cfm_interval=100 other_config:cfm_extended=true -- \
                    set Interface p1 cfm_mpid=2 other_config:cfm_interval=100 other_config:cfm_extended=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:253"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



ovs-appctl time/stop
# wait for a while to stablize cfm.
ovs-appctl time/warp 10100 100

{ set +x
$as_echo "$at_srcdir/cfm.at:266: ovs-appctl cfm/show p0 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:266"
( $at_check_trace; ovs-appctl cfm/show p0 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "---- p0 ----
MPID 1: extended
	average health: 100
	opstate: up
	remote_opstate: up
	interval: 100ms
Remote MPID 2
	opstate: up
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:266"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:267: ovs-appctl cfm/show p1 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:267"
( $at_check_trace; ovs-appctl cfm/show p1 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "---- p1 ----
MPID 2: extended
	average health: 100
	opstate: up
	remote_opstate: up
	interval: 100ms
Remote MPID 1
	opstate: up
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:267"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/cfm.at:268: ovs-appctl cfm/show p1 | grep 'fault_override'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:268"
( $at_check_trace; ovs-appctl cfm/show p1 | grep 'fault_override'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/cfm.at:268"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/cfm.at:269: ovs-vsctl list interface p1 | sed -n '/cfm_fault_status /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:269"
( $at_check_trace; ovs-vsctl list interface p1 | sed -n '/cfm_fault_status /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_fault_status    : []
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:269"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# set a fault and see that this is shown in the CFM module and the database
{ set +x
$as_echo "$at_srcdir/cfm.at:272: ovs-appctl cfm/set-fault p1 true"
at_fn_check_prepare_trace "cfm.at:272"
( $at_check_trace; ovs-appctl cfm/set-fault p1 true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:272"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/cfm.at:274: ovs-appctl time/warp 100"
at_fn_check_prepare_trace "cfm.at:274"
( $at_check_trace; ovs-appctl time/warp 100
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:274"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/cfm.at:275: ovs-appctl cfm/show p1 | grep 'fault_override' | sed -e 's/MPID [0-9]*: extended //'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:275"
( $at_check_trace; ovs-appctl cfm/show p1 | grep 'fault_override' | sed -e 's/MPID [0-9]*: extended //'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "fault_override
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:275"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/cfm.at:278: ovs-vsctl list interface p1 | sed -n '/cfm_fault_status /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:278"
( $at_check_trace; ovs-vsctl list interface p1 | sed -n '/cfm_fault_status /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_fault_status    : [override]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:278"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# reset and see that it returned to normal
{ set +x
$as_echo "$at_srcdir/cfm.at:281: ovs-appctl cfm/set-fault normal"
at_fn_check_prepare_trace "cfm.at:281"
( $at_check_trace; ovs-appctl cfm/set-fault normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:281"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/cfm.at:283: ovs-appctl time/warp 100"
at_fn_check_prepare_trace "cfm.at:283"
( $at_check_trace; ovs-appctl time/warp 100
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:283"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/cfm.at:284: ovs-appctl cfm/show p1 | grep 'fault_override'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:284"
( $at_check_trace; ovs-appctl cfm/show p1 | grep 'fault_override'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/cfm.at:284"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/cfm.at:285: ovs-vsctl list interface p1 | sed -n '/cfm_fault_status /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:285"
( $at_check_trace; ovs-vsctl list interface p1 | sed -n '/cfm_fault_status /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_fault_status    : []
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:285"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:287: check_logs "
at_fn_check_prepare_trace "cfm.at:287"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:287"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/cfm.at:287: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "cfm.at:287"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:287"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/cfm.at:287: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "cfm.at:287"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:287"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "cfm.at:287: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "cfm.at:287: wait failed" >&5

    $as_echo "cfm.at:287" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/cfm.at:287"
fi

   { set +x
$as_echo "$at_srcdir/cfm.at:287: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "cfm.at:287"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:287"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/cfm.at:287: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "cfm.at:287"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:287"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "cfm.at:287: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "cfm.at:287: wait failed" >&5

    $as_echo "cfm.at:287" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/cfm.at:287"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_31
#AT_START_32
at_fn_group_banner 32 'cfm.at:290' \
  "cfm - check that CFM works together with RSTP" "  " 4
at_xfail=no
(
  $as_echo "32. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

# Create br0 with interfaces p1
#    and br1 with interfaces p2
# with p1 and p2 connected via unix domain socket
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/cfm.at:294: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "cfm.at:294"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:294"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/cfm.at:294: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "cfm.at:294"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:294"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/cfm.at:294: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:294"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:294"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/cfm.at:294: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "cfm.at:294"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:294"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/cfm.at:294: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "cfm.at:294"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:294"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/cfm.at:294: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:294"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:294"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/cfm.at:294: add_of_br 0 set bridge br0 rstp_enable=true -- \\
   add-br br1 -- \\
   set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \\
   set bridge br1 datapath-type=dummy -- \\
   set bridge br1 rstp_enable=true -- \\
 "
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:294"
( $at_check_trace; add_of_br 0 set bridge br0 rstp_enable=true -- \
   add-br br1 -- \
   set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \
   set bridge br1 datapath-type=dummy -- \
   set bridge br1 rstp_enable=true -- \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:294"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:302: ovs-vsctl add-port br0 p0 -- \\
   set interface p0 type=dummy options:pstream=punix:\$OVS_RUNDIR/p0.sock cfm_mpid=1 other_config:cfm_interval=300 other_config:cfm_extended=true -- \\
"
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:302"
( $at_check_trace; ovs-vsctl add-port br0 p0 -- \
   set interface p0 type=dummy options:pstream=punix:$OVS_RUNDIR/p0.sock cfm_mpid=1 other_config:cfm_interval=300 other_config:cfm_extended=true -- \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:302"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/cfm.at:306: ovs-vsctl add-port br1 p1 -- \\
   set interface p1 type=dummy options:stream=unix:\$OVS_RUNDIR/p0.sock cfm_mpid=2 other_config:cfm_interval=300 other_config:cfm_extended=true -- \\
"
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:306"
( $at_check_trace; ovs-vsctl add-port br1 p1 -- \
   set interface p1 type=dummy options:stream=unix:$OVS_RUNDIR/p0.sock cfm_mpid=2 other_config:cfm_interval=300 other_config:cfm_extended=true -- \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:306"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/stop
ovs-appctl time/warp 10100 100

# Forwarding should be true

{ set +x
$as_echo "$at_srcdir/cfm.at:314: ovs-appctl cfm/show p0 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:314"
( $at_check_trace; ovs-appctl cfm/show p0 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "---- p0 ----
MPID 1: extended
	average health: 100
	opstate: up
	remote_opstate: up
	interval: 300ms
Remote MPID 2
	opstate: up
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:314"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:315: ovs-appctl cfm/show p1 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:315"
( $at_check_trace; ovs-appctl cfm/show p1 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "---- p1 ----
MPID 2: extended
	average health: 100
	opstate: up
	remote_opstate: up
	interval: 300ms
Remote MPID 1
	opstate: up
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:315"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Disable cfm on p1, cfm should receive fault.
{ set +x
$as_echo "$at_srcdir/cfm.at:318: ovs-vsctl set interface p1 other_config:cfm_extended=false"
at_fn_check_prepare_trace "cfm.at:318"
( $at_check_trace; ovs-vsctl set interface p1 other_config:cfm_extended=false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:318"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 5000 100

{ set +x
$as_echo "$at_srcdir/cfm.at:321: ovs-appctl cfm/show p0 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:321"
( $at_check_trace; ovs-appctl cfm/show p0 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "---- p0 ----
MPID 1: extended
	fault: recv
	average health: 0
	opstate: up
	remote_opstate: up
	interval: 300ms
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:321"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:323: check_logs "
at_fn_check_prepare_trace "cfm.at:323"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:323"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/cfm.at:323: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "cfm.at:323"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:323"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/cfm.at:323: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "cfm.at:323"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:323"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "cfm.at:323: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "cfm.at:323: wait failed" >&5

    $as_echo "cfm.at:323" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/cfm.at:323"
fi

   { set +x
$as_echo "$at_srcdir/cfm.at:323: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "cfm.at:323"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:323"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/cfm.at:323: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "cfm.at:323"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:323"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "cfm.at:323: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "cfm.at:323: wait failed" >&5

    $as_echo "cfm.at:323" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/cfm.at:323"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_32
#AT_START_33
at_fn_group_banner 33 'cfm.at:327' \
  "cfm - liveness propagation - OF1.3" "             " 4
at_xfail=no
(
  $as_echo "33. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/cfm.at:328: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "cfm.at:328"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:328"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/cfm.at:328: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "cfm.at:328"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:328"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/cfm.at:328: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:328"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:328"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/cfm.at:328: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "cfm.at:328"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:328"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/cfm.at:328: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "cfm.at:328"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:328"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/cfm.at:328: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:328"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:328"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/cfm.at:328: add_of_br 0  "
at_fn_check_prepare_trace "cfm.at:328"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:328"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/cfm.at:329: ovs-ofctl -O OpenFlow13 -P standard monitor br0 --detach --no-chdir --pidfile"
at_fn_check_prepare_trace "cfm.at:329"
( $at_check_trace; ovs-ofctl -O OpenFlow13 -P standard monitor br0 --detach --no-chdir --pidfile
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:329"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

check_liveness () {
    printf '\n\n--- check_liveness %d ---\n\n\n' $1
    shift

	echo >>expout "OFPT_PORT_STATUS (OF1.3): MOD: 1(p0): addr:
     config:     0
     state:      $1
     speed: 0 Mbps now, 0 Mbps max"

	{ set +x
$as_echo "$at_srcdir/cfm.at:339: sed '
s/ (xid=0x[0-9a-fA-F]*)//
s/ *duration.*//
s/addr:[0-9a-fA-F:]*/addr:/' < monitor.log|grep -A3 \"MOD: 1(p0)\"|grep -ve --"
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:339"
( $at_check_trace; sed '
s/ (xid=0x[0-9a-fA-F]*)//
s/ *duration.*//
s/addr:[0-9a-fA-F:]*/addr:/' < monitor.log|grep -A3 "MOD: 1(p0)"|grep -ve --
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:339"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

}
: > expout
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log
# Set miss_send_len to 128, enabling port_status messages to our service connection.
ovs-appctl -t ovs-ofctl ofctl/send 0409000c0123456700000080

#Create 2 bridges connected by patch ports and enable cfm
{ set +x
$as_echo "$at_srcdir/cfm.at:353: ovs-vsctl add-br br1 -- \\
          set bridge br1 datapath-type=dummy \\
          other-config:hwaddr=aa:55:aa:56:00:00 -- \\
          add-port br1 p1 -- set Interface p1 type=patch \\
          options:peer=p0 -- \\
          add-port br0 p0 -- set Interface p0 type=patch \\
          options:peer=p1"
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:353"
( $at_check_trace; ovs-vsctl add-br br1 -- \
          set bridge br1 datapath-type=dummy \
          other-config:hwaddr=aa:55:aa:56:00:00 -- \
          add-port br1 p1 -- set Interface p1 type=patch \
          options:peer=p0 -- \
          add-port br0 p0 -- set Interface p0 type=patch \
          options:peer=p1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:353"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

check_liveness 1 LIVE

{ set +x
$as_echo "$at_srcdir/cfm.at:362: ovs-vsctl \\
          set Interface p0 cfm_mpid=1 other_config:cfm_interval=100 other_config:cfm_extended=true -- \\
          set Interface p1 cfm_mpid=2 other_config:cfm_interval=100 other_config:cfm_extended=true"
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:362"
( $at_check_trace; ovs-vsctl \
          set Interface p0 cfm_mpid=1 other_config:cfm_interval=100 other_config:cfm_extended=true -- \
          set Interface p1 cfm_mpid=2 other_config:cfm_interval=100 other_config:cfm_extended=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:362"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/stop
# wait for a while to stablize cfm.
ovs-appctl time/warp 10100 100

{ set +x
$as_echo "$at_srcdir/cfm.at:368: ovs-appctl cfm/show p0 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:368"
( $at_check_trace; ovs-appctl cfm/show p0 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "---- p0 ----
MPID 1: extended
	average health: 100
	opstate: up
	remote_opstate: up
	interval: 100ms
Remote MPID 2
	opstate: up
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:368"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:369: ovs-appctl cfm/show p1 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:369"
( $at_check_trace; ovs-appctl cfm/show p1 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "---- p1 ----
MPID 2: extended
	average health: 100
	opstate: up
	remote_opstate: up
	interval: 100ms
Remote MPID 1
	opstate: up
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:369"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# turn cfm on p1 off, should increment the cfm_flap_count on p0.
{ set +x
$as_echo "$at_srcdir/cfm.at:372: ovs-vsctl remove interface p1 cfm_mpid 2"
at_fn_check_prepare_trace "cfm.at:372"
( $at_check_trace; ovs-vsctl remove interface p1 cfm_mpid 2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:372"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 1100 100

{ set +x
$as_echo "$at_srcdir/cfm.at:374: ovs-vsctl list interface p0 | sed -n '/cfm_flap_count /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:374"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_flap_count /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_flap_count      : 1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:374"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:375: ovs-vsctl list interface p1 | sed -n '/cfm_flap_count /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:375"
( $at_check_trace; ovs-vsctl list interface p1 | sed -n '/cfm_flap_count /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_flap_count      : []
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:375"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


check_liveness 2 0

# turn cfm on p1 on again, should increment the cfm_flap_count on p0.
{ set +x
$as_echo "$at_srcdir/cfm.at:379: ovs-vsctl set interface p1 cfm_mpid=2"
at_fn_check_prepare_trace "cfm.at:379"
( $at_check_trace; ovs-vsctl set interface p1 cfm_mpid=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:379"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 1100 100
check_liveness 3 LIVE


{ set +x
$as_echo "$at_srcdir/cfm.at:383: ovs-vsctl list interface p0 | sed -n '/cfm_flap_count /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:383"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_flap_count /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_flap_count      : 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:383"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:385: check_logs "
at_fn_check_prepare_trace "cfm.at:385"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:385"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/cfm.at:385: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "cfm.at:385"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:385"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/cfm.at:385: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "cfm.at:385"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:385"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "cfm.at:385: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "cfm.at:385: wait failed" >&5

    $as_echo "cfm.at:385" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/cfm.at:385"
fi

   { set +x
$as_echo "$at_srcdir/cfm.at:385: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "cfm.at:385"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:385"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/cfm.at:385: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "cfm.at:385"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:385"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "cfm.at:385: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "cfm.at:385: wait failed" >&5

    $as_echo "cfm.at:385" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/cfm.at:385"
fi

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

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/cfm.at:390: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "cfm.at:390"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:390"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/cfm.at:390: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "cfm.at:390"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:390"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/cfm.at:390: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:390"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:390"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/cfm.at:390: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "cfm.at:390"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:390"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/cfm.at:390: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "cfm.at:390"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:390"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/cfm.at:390: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:390"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:390"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/cfm.at:390: add_of_br 0  "
at_fn_check_prepare_trace "cfm.at:390"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:390"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/cfm.at:391: ovs-ofctl -O OpenFlow14 -P standard monitor br0 --detach --no-chdir --pidfile"
at_fn_check_prepare_trace "cfm.at:391"
( $at_check_trace; ovs-ofctl -O OpenFlow14 -P standard monitor br0 --detach --no-chdir --pidfile
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:391"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

check_liveness () {
    printf '\n\n--- check_liveness %d ---\n\n\n' $1
    shift

	echo >>expout "OFPT_PORT_STATUS (OF1.4): MOD: 1(p0): addr:
     config:     0
     state:      $1
     speed: 0 Mbps now, 0 Mbps max"

	{ set +x
$as_echo "$at_srcdir/cfm.at:401: sed '
s/ (xid=0x[0-9a-fA-F]*)//
s/ *duration.*//
s/addr:[0-9a-fA-F:]*/addr:/' < monitor.log|grep -A3 \"MOD: 1(p0)\"|grep -ve --"
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:401"
( $at_check_trace; sed '
s/ (xid=0x[0-9a-fA-F]*)//
s/ *duration.*//
s/addr:[0-9a-fA-F:]*/addr:/' < monitor.log|grep -A3 "MOD: 1(p0)"|grep -ve --
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:401"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

}
: > expout
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log
# Set miss_send_len to 128, enabling port_status messages to our service connection.
ovs-appctl -t ovs-ofctl ofctl/send 0509000c0123456700000080

#Create 2 bridges connected by patch ports and enable cfm
{ set +x
$as_echo "$at_srcdir/cfm.at:415: ovs-vsctl add-br br1 -- \\
          set bridge br1 datapath-type=dummy \\
          other-config:hwaddr=aa:55:aa:56:00:00 -- \\
          add-port br1 p1 -- set Interface p1 type=patch \\
          options:peer=p0 -- \\
          add-port br0 p0 -- set Interface p0 type=patch \\
          options:peer=p1"
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:415"
( $at_check_trace; ovs-vsctl add-br br1 -- \
          set bridge br1 datapath-type=dummy \
          other-config:hwaddr=aa:55:aa:56:00:00 -- \
          add-port br1 p1 -- set Interface p1 type=patch \
          options:peer=p0 -- \
          add-port br0 p0 -- set Interface p0 type=patch \
          options:peer=p1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:415"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

check_liveness 1 LIVE

{ set +x
$as_echo "$at_srcdir/cfm.at:424: ovs-vsctl \\
          set Interface p0 cfm_mpid=1 other_config:cfm_interval=100 other_config:cfm_extended=true -- \\
          set Interface p1 cfm_mpid=2 other_config:cfm_interval=100 other_config:cfm_extended=true"
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:424"
( $at_check_trace; ovs-vsctl \
          set Interface p0 cfm_mpid=1 other_config:cfm_interval=100 other_config:cfm_extended=true -- \
          set Interface p1 cfm_mpid=2 other_config:cfm_interval=100 other_config:cfm_extended=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:424"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/stop
# wait for a while to stablize cfm.
ovs-appctl time/warp 10100 100

{ set +x
$as_echo "$at_srcdir/cfm.at:430: ovs-appctl cfm/show p0 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:430"
( $at_check_trace; ovs-appctl cfm/show p0 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "---- p0 ----
MPID 1: extended
	average health: 100
	opstate: up
	remote_opstate: up
	interval: 100ms
Remote MPID 2
	opstate: up
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:430"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:431: ovs-appctl cfm/show p1 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:431"
( $at_check_trace; ovs-appctl cfm/show p1 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "---- p1 ----
MPID 2: extended
	average health: 100
	opstate: up
	remote_opstate: up
	interval: 100ms
Remote MPID 1
	opstate: up
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:431"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# turn cfm on p1 off, should increment the cfm_flap_count on p0.
{ set +x
$as_echo "$at_srcdir/cfm.at:434: ovs-vsctl remove interface p1 cfm_mpid 2"
at_fn_check_prepare_trace "cfm.at:434"
( $at_check_trace; ovs-vsctl remove interface p1 cfm_mpid 2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:434"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 1100 100

{ set +x
$as_echo "$at_srcdir/cfm.at:436: ovs-vsctl list interface p0 | sed -n '/cfm_flap_count /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:436"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_flap_count /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_flap_count      : 1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:436"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:437: ovs-vsctl list interface p1 | sed -n '/cfm_flap_count /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:437"
( $at_check_trace; ovs-vsctl list interface p1 | sed -n '/cfm_flap_count /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_flap_count      : []
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:437"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


check_liveness 2 0

# turn cfm on p1 on again, should increment the cfm_flap_count on p0.
{ set +x
$as_echo "$at_srcdir/cfm.at:441: ovs-vsctl set interface p1 cfm_mpid=2"
at_fn_check_prepare_trace "cfm.at:441"
( $at_check_trace; ovs-vsctl set interface p1 cfm_mpid=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:441"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 1100 100
check_liveness 3 LIVE


{ set +x
$as_echo "$at_srcdir/cfm.at:445: ovs-vsctl list interface p0 | sed -n '/cfm_flap_count /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:445"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_flap_count /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_flap_count      : 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:445"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:447: check_logs "
at_fn_check_prepare_trace "cfm.at:447"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:447"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/cfm.at:447: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "cfm.at:447"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:447"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/cfm.at:447: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "cfm.at:447"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:447"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "cfm.at:447: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "cfm.at:447: wait failed" >&5

    $as_echo "cfm.at:447" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/cfm.at:447"
fi

   { set +x
$as_echo "$at_srcdir/cfm.at:447: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "cfm.at:447"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:447"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/cfm.at:447: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "cfm.at:447"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:447"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "cfm.at:447: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "cfm.at:447: wait failed" >&5

    $as_echo "cfm.at:447" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/cfm.at:447"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_34
#AT_START_35
at_fn_group_banner 35 'cfm.at:451' \
  "cfm - liveness propagation - OF1.5" "             " 4
at_xfail=no
(
  $as_echo "35. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/cfm.at:452: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "cfm.at:452"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:452"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/cfm.at:452: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "cfm.at:452"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:452"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/cfm.at:452: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:452"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:452"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/cfm.at:452: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "cfm.at:452"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:452"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/cfm.at:452: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "cfm.at:452"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:452"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/cfm.at:452: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:452"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:452"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/cfm.at:452: add_of_br 0  "
at_fn_check_prepare_trace "cfm.at:452"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:452"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/cfm.at:453: ovs-ofctl -O OpenFlow15 -P standard monitor br0 --detach --no-chdir --pidfile"
at_fn_check_prepare_trace "cfm.at:453"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -P standard monitor br0 --detach --no-chdir --pidfile
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:453"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

check_liveness () {
    printf '\n\n--- check_liveness %d ---\n\n\n' $1
    shift

	echo >>expout "OFPT_PORT_STATUS (OF1.5): MOD: 1(p0): addr:
     config:     0
     state:      $1
     speed: 0 Mbps now, 0 Mbps max"

	{ set +x
$as_echo "$at_srcdir/cfm.at:463: sed '
s/ (xid=0x[0-9a-fA-F]*)//
s/ *duration.*//
s/addr:[0-9a-fA-F:]*/addr:/' < monitor.log|grep -A3 \"MOD: 1(p0)\"|grep -ve --"
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:463"
( $at_check_trace; sed '
s/ (xid=0x[0-9a-fA-F]*)//
s/ *duration.*//
s/addr:[0-9a-fA-F:]*/addr:/' < monitor.log|grep -A3 "MOD: 1(p0)"|grep -ve --
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:463"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

}
: > expout
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log
# Set miss_send_len to 128, enabling port_status messages to our service connection.
ovs-appctl -t ovs-ofctl ofctl/send 0609000c0123456700000080

#Create 2 bridges connected by patch ports and enable cfm
{ set +x
$as_echo "$at_srcdir/cfm.at:477: ovs-vsctl add-br br1 -- \\
          set bridge br1 datapath-type=dummy \\
          other-config:hwaddr=aa:55:aa:56:00:00 -- \\
          add-port br1 p1 -- set Interface p1 type=patch \\
          options:peer=p0 -- \\
          add-port br0 p0 -- set Interface p0 type=patch \\
          options:peer=p1"
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:477"
( $at_check_trace; ovs-vsctl add-br br1 -- \
          set bridge br1 datapath-type=dummy \
          other-config:hwaddr=aa:55:aa:56:00:00 -- \
          add-port br1 p1 -- set Interface p1 type=patch \
          options:peer=p0 -- \
          add-port br0 p0 -- set Interface p0 type=patch \
          options:peer=p1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:477"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

check_liveness 1 LIVE

{ set +x
$as_echo "$at_srcdir/cfm.at:486: ovs-vsctl \\
          set Interface p0 cfm_mpid=1 other_config:cfm_interval=100 other_config:cfm_extended=true -- \\
          set Interface p1 cfm_mpid=2 other_config:cfm_interval=100 other_config:cfm_extended=true"
at_fn_check_prepare_notrace 'an embedded newline' "cfm.at:486"
( $at_check_trace; ovs-vsctl \
          set Interface p0 cfm_mpid=1 other_config:cfm_interval=100 other_config:cfm_extended=true -- \
          set Interface p1 cfm_mpid=2 other_config:cfm_interval=100 other_config:cfm_extended=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:486"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/stop
# wait for a while to stablize cfm.
ovs-appctl time/warp 10100 100

{ set +x
$as_echo "$at_srcdir/cfm.at:492: ovs-appctl cfm/show p0 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:492"
( $at_check_trace; ovs-appctl cfm/show p0 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "---- p0 ----
MPID 1: extended
	average health: 100
	opstate: up
	remote_opstate: up
	interval: 100ms
Remote MPID 2
	opstate: up
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:492"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:493: ovs-appctl cfm/show p1 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:493"
( $at_check_trace; ovs-appctl cfm/show p1 | sed -e '/next CCM tx:/d' | sed -e '/next fault check:/d' | sed -e  '/recv since check:/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "---- p1 ----
MPID 2: extended
	average health: 100
	opstate: up
	remote_opstate: up
	interval: 100ms
Remote MPID 1
	opstate: up
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:493"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# turn cfm on p1 off, should increment the cfm_flap_count on p0.
{ set +x
$as_echo "$at_srcdir/cfm.at:496: ovs-vsctl remove interface p1 cfm_mpid 2"
at_fn_check_prepare_trace "cfm.at:496"
( $at_check_trace; ovs-vsctl remove interface p1 cfm_mpid 2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:496"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 1100 100

{ set +x
$as_echo "$at_srcdir/cfm.at:498: ovs-vsctl list interface p0 | sed -n '/cfm_flap_count /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:498"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_flap_count /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_flap_count      : 1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:498"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:499: ovs-vsctl list interface p1 | sed -n '/cfm_flap_count /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:499"
( $at_check_trace; ovs-vsctl list interface p1 | sed -n '/cfm_flap_count /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_flap_count      : []
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:499"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


check_liveness 2 0

# turn cfm on p1 on again, should increment the cfm_flap_count on p0.
{ set +x
$as_echo "$at_srcdir/cfm.at:503: ovs-vsctl set interface p1 cfm_mpid=2"
at_fn_check_prepare_trace "cfm.at:503"
( $at_check_trace; ovs-vsctl set interface p1 cfm_mpid=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:503"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 1100 100
check_liveness 3 LIVE


{ set +x
$as_echo "$at_srcdir/cfm.at:507: ovs-vsctl list interface p0 | sed -n '/cfm_flap_count /p'"
at_fn_check_prepare_notrace 'a shell pipeline' "cfm.at:507"
( $at_check_trace; ovs-vsctl list interface p0 | sed -n '/cfm_flap_count /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "cfm_flap_count      : 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:507"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/cfm.at:509: check_logs "
at_fn_check_prepare_trace "cfm.at:509"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:509"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/cfm.at:509: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "cfm.at:509"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:509"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/cfm.at:509: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "cfm.at:509"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:509"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "cfm.at:509: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "cfm.at:509: wait failed" >&5

    $as_echo "cfm.at:509" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/cfm.at:509"
fi

   { set +x
$as_echo "$at_srcdir/cfm.at:509: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "cfm.at:509"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:509"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/cfm.at:509: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "cfm.at:509"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/cfm.at:509"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "cfm.at:509: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "cfm.at:509: wait failed" >&5

    $as_echo "cfm.at:509" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/cfm.at:509"
fi

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

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/lacp.at:14: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "lacp.at:14"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:14"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/lacp.at:14: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "lacp.at:14"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:14"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/lacp.at:14: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "lacp.at:14"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:14"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/lacp.at:14: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "lacp.at:14"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:14"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/lacp.at:14: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "lacp.at:14"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:14"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/lacp.at:14: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "lacp.at:14"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:14"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/lacp.at:14: add_of_br 0 \\
        add-port br0 p1 --\\
        set Port p1 lacp=active --\\
        set Interface p1 type=dummy  "
at_fn_check_prepare_notrace 'an embedded newline' "lacp.at:14"
( $at_check_trace; add_of_br 0 \
        add-port br0 p1 --\
        set Port p1 lacp=active --\
        set Interface p1 type=dummy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:14"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



ovs-appctl time/stop
ovs-appctl time/warp 300 100

{ set +x
$as_echo "$at_srcdir/lacp.at:22: ovs-appctl lacp/show"
at_fn_check_prepare_trace "lacp.at:22"
( $at_check_trace; ovs-appctl lacp/show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "---- p1 ----
	status: active negotiated
	sys_id: aa:55:aa:55:00:00
	sys_priority: 65535
	aggregation key: 1
	lacp_time: slow

slave: p1: expired attached
	port_id: 1
	port_priority: 65535
	may_enable: false

	actor sys_id: aa:55:aa:55:00:00
	actor sys_priority: 65535
	actor port_id: 1
	actor port_priority: 65535
	actor key: 1
	actor state: activity synchronized collecting distributing expired

	partner sys_id: 00:00:00:00:00:00
	partner sys_priority: 0
	partner port_id: 0
	partner port_priority: 0
	partner key: 0
	partner state: timeout
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:22"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/lacp.at:49: ovs-appctl bond/show"
at_fn_check_prepare_trace "lacp.at:49"
( $at_check_trace; ovs-appctl bond/show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:49"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/lacp.at:50: check_logs "
at_fn_check_prepare_trace "lacp.at:50"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:50"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/lacp.at:50: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "lacp.at:50"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:50"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/lacp.at:50: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "lacp.at:50"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:50"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "lacp.at:50: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "lacp.at:50: wait failed" >&5

    $as_echo "lacp.at:50" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/lacp.at:50"
fi

   { set +x
$as_echo "$at_srcdir/lacp.at:50: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "lacp.at:50"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:50"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/lacp.at:50: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "lacp.at:50"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:50"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "lacp.at:50: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "lacp.at:50: wait failed" >&5

    $as_echo "lacp.at:50" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/lacp.at:50"
fi

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

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/lacp.at:54: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "lacp.at:54"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:54"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/lacp.at:54: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "lacp.at:54"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:54"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/lacp.at:54: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "lacp.at:54"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:54"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/lacp.at:54: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "lacp.at:54"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:54"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/lacp.at:54: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "lacp.at:54"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:54"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/lacp.at:54: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "lacp.at:54"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:54"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/lacp.at:54: add_of_br 0         add-bond br0 bond p1 p2 --\\
        set Port bond lacp=active bond-mode=active-backup \\
            other_config:lacp-time=\"fast\" \\
            other_config:lacp-system-id=11:22:33:44:55:66 \\
            other_config:lacp-system-priority=54321 --\\
        set Interface p1 type=dummy \\
            other_config:lacp-port-id=11 \\
            other_config:lacp-port-priority=111 \\
            other_config:lacp-aggregation-key=3333 --\\
        set Interface p2 type=dummy \\
            other_config:lacp-port-id=22 \\
            other_config:lacp-port-priority=222 \\
            other_config:lacp-aggregation-key=3333  "
at_fn_check_prepare_notrace 'an embedded newline' "lacp.at:54"
( $at_check_trace; add_of_br 0         add-bond br0 bond p1 p2 --\
        set Port bond lacp=active bond-mode=active-backup \
            other_config:lacp-time="fast" \
            other_config:lacp-system-id=11:22:33:44:55:66 \
            other_config:lacp-system-priority=54321 --\
        set Interface p1 type=dummy \
            other_config:lacp-port-id=11 \
            other_config:lacp-port-priority=111 \
            other_config:lacp-aggregation-key=3333 --\
        set Interface p2 type=dummy \
            other_config:lacp-port-id=22 \
            other_config:lacp-port-priority=222 \
            other_config:lacp-aggregation-key=3333
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:54"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



ovs-appctl time/stop
ovs-appctl time/warp 300 100

{ set +x
$as_echo "$at_srcdir/lacp.at:72: ovs-appctl lacp/show"
at_fn_check_prepare_trace "lacp.at:72"
( $at_check_trace; ovs-appctl lacp/show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:72"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/lacp.at:73: sed -e 's/aggregation key:.*/aggregation key: <omitted>/' < stdout"
at_fn_check_prepare_trace "lacp.at:73"
( $at_check_trace; sed -e 's/aggregation key:.*/aggregation key: <omitted>/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "---- bond ----
	status: active negotiated
	sys_id: 11:22:33:44:55:66
	sys_priority: 54321
	aggregation key: <omitted>
	lacp_time: fast

slave: p1: expired attached
	port_id: 11
	port_priority: 111
	may_enable: false

	actor sys_id: 11:22:33:44:55:66
	actor sys_priority: 54321
	actor port_id: 11
	actor port_priority: 111
	actor key: 3333
	actor state: activity timeout aggregation synchronized collecting distributing expired

	partner sys_id: 00:00:00:00:00:00
	partner sys_priority: 0
	partner port_id: 0
	partner port_priority: 0
	partner key: 0
	partner state: timeout

slave: p2: expired attached
	port_id: 22
	port_priority: 222
	may_enable: false

	actor sys_id: 11:22:33:44:55:66
	actor sys_priority: 54321
	actor port_id: 22
	actor port_priority: 222
	actor key: 3333
	actor state: activity timeout aggregation synchronized collecting distributing expired

	partner sys_id: 00:00:00:00:00:00
	partner sys_priority: 0
	partner port_id: 0
	partner port_priority: 0
	partner key: 0
	partner state: timeout
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:73"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/lacp.at:119: ovs-appctl bond/show"
at_fn_check_prepare_trace "lacp.at:119"
( $at_check_trace; ovs-appctl bond/show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "---- bond ----
bond_mode: active-backup
bond may use recirculation: no, Recirc-ID : -1
bond-hash-basis: 0
updelay: 0 ms
downdelay: 0 ms
lacp_status: negotiated
lacp_fallback_ab: false
active slave mac: 00:00:00:00:00:00(none)

slave p1: disabled
	may_enable: false

slave p2: disabled
	may_enable: false

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:119"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/lacp.at:137: check_logs "
at_fn_check_prepare_trace "lacp.at:137"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:137"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/lacp.at:137: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "lacp.at:137"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:137"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/lacp.at:137: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "lacp.at:137"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:137"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "lacp.at:137: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "lacp.at:137: wait failed" >&5

    $as_echo "lacp.at:137" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/lacp.at:137"
fi

   { set +x
$as_echo "$at_srcdir/lacp.at:137: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "lacp.at:137"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:137"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/lacp.at:137: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "lacp.at:137"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:137"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "lacp.at:137: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "lacp.at:137: wait failed" >&5

    $as_echo "lacp.at:137" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/lacp.at:137"
fi

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

ovs_init

# Create bond0 on br0 with interfaces p0 and p1
#    and bond1 on br1 with interfaces p2 and p3
# with p0 patched to p2 and p1 patched to p3.
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/lacp.at:144: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "lacp.at:144"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:144"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/lacp.at:144: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "lacp.at:144"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:144"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/lacp.at:144: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "lacp.at:144"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:144"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/lacp.at:144: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "lacp.at:144"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:144"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/lacp.at:144: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "lacp.at:144"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:144"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/lacp.at:144: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "lacp.at:144"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:144"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/lacp.at:144: add_of_br 0 add-bond br0 bond0 p0 p1 bond_mode=balance-tcp lacp=active \\
                            other-config:lacp-time=fast \\
                            other-config:bond-rebalance-interval=0 -- \\
   set interface p0 type=patch options:peer=p2 ofport_request=1 \\
                    other-config:lacp-aggregation-key=2 -- \\
   set interface p1 type=patch options:peer=p3 ofport_request=2 \\
                    other-config:lacp-aggregation-key=2 -- \\
   add-br br1 -- \\
   set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \\
   set bridge br1 datapath-type=dummy other-config:datapath-id=1234 \\
                  fail-mode=secure -- \\
   add-bond br1 bond1 p2 p3 bond_mode=balance-tcp lacp=active \\
                            other-config:lacp-time=fast \\
                            other-config:bond-rebalance-interval=0 -- \\
   set interface p2 type=patch options:peer=p0 ofport_request=3 \\
                    other-config:lacp-aggregation-key=4 -- \\
   set interface p3 type=patch options:peer=p1 ofport_request=4 \\
                    other-config:lacp-aggregation-key=4 -- "
at_fn_check_prepare_notrace 'an embedded newline' "lacp.at:144"
( $at_check_trace; add_of_br 0 add-bond br0 bond0 p0 p1 bond_mode=balance-tcp lacp=active \
                            other-config:lacp-time=fast \
                            other-config:bond-rebalance-interval=0 -- \
   set interface p0 type=patch options:peer=p2 ofport_request=1 \
                    other-config:lacp-aggregation-key=2 -- \
   set interface p1 type=patch options:peer=p3 ofport_request=2 \
                    other-config:lacp-aggregation-key=2 -- \
   add-br br1 -- \
   set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \
   set bridge br1 datapath-type=dummy other-config:datapath-id=1234 \
                  fail-mode=secure -- \
   add-bond br1 bond1 p2 p3 bond_mode=balance-tcp lacp=active \
                            other-config:lacp-time=fast \
                            other-config:bond-rebalance-interval=0 -- \
   set interface p2 type=patch options:peer=p0 ofport_request=3 \
                    other-config:lacp-aggregation-key=4 -- \
   set interface p3 type=patch options:peer=p1 ofport_request=4 \
                    other-config:lacp-aggregation-key=4 --
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:144"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/lacp.at:164: ovs-appctl netdev-dummy/set-admin-state up"
at_fn_check_prepare_trace "lacp.at:164"
( $at_check_trace; ovs-appctl netdev-dummy/set-admin-state up
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:164"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/stop

# Wait for up to 5 (simulated) seconds, until LACP negotiation finishes.
i=0
while :; do
    ovs-appctl lacp/show bond0 > bond0

    ovs-appctl lacp/show bond1 > bond1

    if grep negotiated bond0 && grep negotiated bond1; then
        if grep expired bond0 || grep expired bond1; then
            :
        else
            break
        fi
    fi
    i=`expr $i + 1`
    if test $i = 50; then
        $as_echo "lacp.at:185" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/lacp.at:185"
    fi
    ovs-appctl time/warp 100
done

# Now check the correctly negotiated configuration.
{ set +x
$as_echo "$at_srcdir/lacp.at:191: ovs-appctl lacp/show bond0
ovs-appctl lacp/show bond1
ovs-appctl bond/show bond0 | sed '
    s/Recirc-ID.*\$/<del>/
'  | sed '
    s/active slave mac.*\$/<active slave mac del>/
'
ovs-appctl bond/show bond1 | sed '
    s/Recirc-ID.*\$/<del>/
'  | sed '
    s/active slave mac.*\$/<active slave mac del>/
'  "
at_fn_check_prepare_notrace 'an embedded newline' "lacp.at:191"
( $at_check_trace; ovs-appctl lacp/show bond0
ovs-appctl lacp/show bond1
ovs-appctl bond/show bond0 | sed '
    s/Recirc-ID.*$/<del>/
'  | sed '
    s/active slave mac.*$/<active slave mac del>/
'
ovs-appctl bond/show bond1 | sed '
    s/Recirc-ID.*$/<del>/
'  | sed '
    s/active slave mac.*$/<active slave mac del>/
'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"bond0" \
"bond1"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/lacp.at:196: sed '/active slave/d' stdout"
at_fn_check_prepare_trace "lacp.at:196"
( $at_check_trace; sed '/active slave/d' stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "---- bond0 ----
	status: active negotiated
	sys_id: aa:55:aa:55:00:00
	sys_priority: 65534
	aggregation key: 2
	lacp_time: fast

slave: p0: current attached
	port_id: 1
	port_priority: 65535
	may_enable: true

	actor sys_id: aa:55:aa:55:00:00
	actor sys_priority: 65534
	actor port_id: 1
	actor port_priority: 65535
	actor key: 2
	actor state: activity timeout aggregation synchronized collecting distributing

	partner sys_id: aa:66:aa:66:00:00
	partner sys_priority: 65534
	partner port_id: 3
	partner port_priority: 65535
	partner key: 4
	partner state: activity timeout aggregation synchronized collecting distributing

slave: p1: current attached
	port_id: 2
	port_priority: 65535
	may_enable: true

	actor sys_id: aa:55:aa:55:00:00
	actor sys_priority: 65534
	actor port_id: 2
	actor port_priority: 65535
	actor key: 2
	actor state: activity timeout aggregation synchronized collecting distributing

	partner sys_id: aa:66:aa:66:00:00
	partner sys_priority: 65534
	partner port_id: 4
	partner port_priority: 65535
	partner key: 4
	partner state: activity timeout aggregation synchronized collecting distributing
---- bond1 ----
	status: active negotiated
	sys_id: aa:66:aa:66:00:00
	sys_priority: 65534
	aggregation key: 4
	lacp_time: fast

slave: p2: current attached
	port_id: 3
	port_priority: 65535
	may_enable: true

	actor sys_id: aa:66:aa:66:00:00
	actor sys_priority: 65534
	actor port_id: 3
	actor port_priority: 65535
	actor key: 4
	actor state: activity timeout aggregation synchronized collecting distributing

	partner sys_id: aa:55:aa:55:00:00
	partner sys_priority: 65534
	partner port_id: 1
	partner port_priority: 65535
	partner key: 2
	partner state: activity timeout aggregation synchronized collecting distributing

slave: p3: current attached
	port_id: 4
	port_priority: 65535
	may_enable: true

	actor sys_id: aa:66:aa:66:00:00
	actor sys_priority: 65534
	actor port_id: 4
	actor port_priority: 65535
	actor key: 4
	actor state: activity timeout aggregation synchronized collecting distributing

	partner sys_id: aa:55:aa:55:00:00
	partner sys_priority: 65534
	partner port_id: 2
	partner port_priority: 65535
	partner key: 2
	partner state: activity timeout aggregation synchronized collecting distributing
---- bond0 ----
bond_mode: balance-tcp
bond may use recirculation: yes, <del>
bond-hash-basis: 0
updelay: 0 ms
downdelay: 0 ms
lacp_status: negotiated
lacp_fallback_ab: false

slave p0: enabled
	may_enable: true

slave p1: enabled
	may_enable: true

---- bond1 ----
bond_mode: balance-tcp
bond may use recirculation: yes, <del>
bond-hash-basis: 0
updelay: 0 ms
downdelay: 0 ms
lacp_status: negotiated
lacp_fallback_ab: false

slave p2: enabled
	may_enable: true

slave p3: enabled
	may_enable: true

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:196"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"bond0" \
"bond1"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/lacp.at:316: grep 'active slave\$' stdout"
at_fn_check_prepare_dynamic "grep 'active slave$' stdout" "lacp.at:316"
( $at_check_trace; grep 'active slave$' stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	active slave
	active slave
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:316"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"bond0" \
"bond1"
$at_traceon; }


# Redirect the patch link between p0 and p2 so that no packets get
# back and forth across them anymore.  Then wait 4 simulated
# seconds.  The LACP state should become "expired" for p0 and p2.
{ set +x
$as_echo "$at_srcdir/lacp.at:324: ovs-vsctl \\
-- add-port br0 null0 -- set int null0 type=patch options:peer=p2 -- set int p2 options:peer=null0 \\
-- add-port br1 null1 -- set int null1 type=patch options:peer=p0 -- set int p0 options:peer=null1"
at_fn_check_prepare_notrace 'an embedded newline' "lacp.at:324"
( $at_check_trace; ovs-vsctl \
-- add-port br0 null0 -- set int null0 type=patch options:peer=p2 -- set int p2 options:peer=null0 \
-- add-port br1 null1 -- set int null1 type=patch options:peer=p0 -- set int p0 options:peer=null1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:324"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"bond0" \
"bond1"
$at_traceon; }


ovs-appctl time/warp 4100 100
{ set +x
$as_echo "$at_srcdir/lacp.at:329: ovs-appctl lacp/show bond0
ovs-appctl lacp/show bond1
ovs-appctl bond/show bond0 | sed '
    s/Recirc-ID.*\$/<del>/
'  | sed '
    s/active slave mac.*\$/<active slave mac del>/
'
ovs-appctl bond/show bond1 | sed '
    s/Recirc-ID.*\$/<del>/
'  | sed '
    s/active slave mac.*\$/<active slave mac del>/
'  "
at_fn_check_prepare_notrace 'an embedded newline' "lacp.at:329"
( $at_check_trace; ovs-appctl lacp/show bond0
ovs-appctl lacp/show bond1
ovs-appctl bond/show bond0 | sed '
    s/Recirc-ID.*$/<del>/
'  | sed '
    s/active slave mac.*$/<active slave mac del>/
'
ovs-appctl bond/show bond1 | sed '
    s/Recirc-ID.*$/<del>/
'  | sed '
    s/active slave mac.*$/<active slave mac del>/
'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "---- bond0 ----
	status: active negotiated
	sys_id: aa:55:aa:55:00:00
	sys_priority: 65534
	aggregation key: 2
	lacp_time: fast

slave: p0: expired attached
	port_id: 1
	port_priority: 65535
	may_enable: false

	actor sys_id: aa:55:aa:55:00:00
	actor sys_priority: 65534
	actor port_id: 1
	actor port_priority: 65535
	actor key: 2
	actor state: activity timeout aggregation synchronized collecting distributing expired

	partner sys_id: aa:66:aa:66:00:00
	partner sys_priority: 65534
	partner port_id: 3
	partner port_priority: 65535
	partner key: 4
	partner state: activity timeout aggregation collecting distributing

slave: p1: current attached
	port_id: 2
	port_priority: 65535
	may_enable: true

	actor sys_id: aa:55:aa:55:00:00
	actor sys_priority: 65534
	actor port_id: 2
	actor port_priority: 65535
	actor key: 2
	actor state: activity timeout aggregation synchronized collecting distributing

	partner sys_id: aa:66:aa:66:00:00
	partner sys_priority: 65534
	partner port_id: 4
	partner port_priority: 65535
	partner key: 4
	partner state: activity timeout aggregation synchronized collecting distributing
---- bond1 ----
	status: active negotiated
	sys_id: aa:66:aa:66:00:00
	sys_priority: 65534
	aggregation key: 4
	lacp_time: fast

slave: p2: expired attached
	port_id: 3
	port_priority: 65535
	may_enable: false

	actor sys_id: aa:66:aa:66:00:00
	actor sys_priority: 65534
	actor port_id: 3
	actor port_priority: 65535
	actor key: 4
	actor state: activity timeout aggregation synchronized collecting distributing expired

	partner sys_id: aa:55:aa:55:00:00
	partner sys_priority: 65534
	partner port_id: 1
	partner port_priority: 65535
	partner key: 2
	partner state: activity timeout aggregation collecting distributing

slave: p3: current attached
	port_id: 4
	port_priority: 65535
	may_enable: true

	actor sys_id: aa:66:aa:66:00:00
	actor sys_priority: 65534
	actor port_id: 4
	actor port_priority: 65535
	actor key: 4
	actor state: activity timeout aggregation synchronized collecting distributing

	partner sys_id: aa:55:aa:55:00:00
	partner sys_priority: 65534
	partner port_id: 2
	partner port_priority: 65535
	partner key: 2
	partner state: activity timeout aggregation synchronized collecting distributing
---- bond0 ----
bond_mode: balance-tcp
bond may use recirculation: yes, <del>
bond-hash-basis: 0
updelay: 0 ms
downdelay: 0 ms
lacp_status: negotiated
lacp_fallback_ab: false
<active slave mac del>

slave p0: disabled
	may_enable: false

slave p1: enabled
	active slave
	may_enable: true

---- bond1 ----
bond_mode: balance-tcp
bond may use recirculation: yes, <del>
bond-hash-basis: 0
updelay: 0 ms
downdelay: 0 ms
lacp_status: negotiated
lacp_fallback_ab: false
<active slave mac del>

slave p2: disabled
	may_enable: false

slave p3: enabled
	active slave
	may_enable: true

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:329"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"bond0" \
"bond1"
$at_traceon; }


# Wait 4 more simulated seconds.  The LACP state should become
# "defaulted" for p0 and p2.
ovs-appctl time/warp 4100 100
{ set +x
$as_echo "$at_srcdir/lacp.at:461: ovs-appctl lacp/show bond0
ovs-appctl lacp/show bond1
ovs-appctl bond/show bond0 | sed '
    s/Recirc-ID.*\$/<del>/
'  | sed '
    s/active slave mac.*\$/<active slave mac del>/
'
ovs-appctl bond/show bond1 | sed '
    s/Recirc-ID.*\$/<del>/
'  | sed '
    s/active slave mac.*\$/<active slave mac del>/
'  "
at_fn_check_prepare_notrace 'an embedded newline' "lacp.at:461"
( $at_check_trace; ovs-appctl lacp/show bond0
ovs-appctl lacp/show bond1
ovs-appctl bond/show bond0 | sed '
    s/Recirc-ID.*$/<del>/
'  | sed '
    s/active slave mac.*$/<active slave mac del>/
'
ovs-appctl bond/show bond1 | sed '
    s/Recirc-ID.*$/<del>/
'  | sed '
    s/active slave mac.*$/<active slave mac del>/
'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "---- bond0 ----
	status: active negotiated
	sys_id: aa:55:aa:55:00:00
	sys_priority: 65534
	aggregation key: 2
	lacp_time: fast

slave: p0: defaulted detached
	port_id: 1
	port_priority: 65535
	may_enable: false

	actor sys_id: aa:55:aa:55:00:00
	actor sys_priority: 65534
	actor port_id: 1
	actor port_priority: 65535
	actor key: 2
	actor state: activity timeout aggregation defaulted

	partner sys_id: 00:00:00:00:00:00
	partner sys_priority: 0
	partner port_id: 0
	partner port_priority: 0
	partner key: 0
	partner state:

slave: p1: current attached
	port_id: 2
	port_priority: 65535
	may_enable: true

	actor sys_id: aa:55:aa:55:00:00
	actor sys_priority: 65534
	actor port_id: 2
	actor port_priority: 65535
	actor key: 2
	actor state: activity timeout aggregation synchronized collecting distributing

	partner sys_id: aa:66:aa:66:00:00
	partner sys_priority: 65534
	partner port_id: 4
	partner port_priority: 65535
	partner key: 4
	partner state: activity timeout aggregation synchronized collecting distributing
---- bond1 ----
	status: active negotiated
	sys_id: aa:66:aa:66:00:00
	sys_priority: 65534
	aggregation key: 4
	lacp_time: fast

slave: p2: defaulted detached
	port_id: 3
	port_priority: 65535
	may_enable: false

	actor sys_id: aa:66:aa:66:00:00
	actor sys_priority: 65534
	actor port_id: 3
	actor port_priority: 65535
	actor key: 4
	actor state: activity timeout aggregation defaulted

	partner sys_id: 00:00:00:00:00:00
	partner sys_priority: 0
	partner port_id: 0
	partner port_priority: 0
	partner key: 0
	partner state:

slave: p3: current attached
	port_id: 4
	port_priority: 65535
	may_enable: true

	actor sys_id: aa:66:aa:66:00:00
	actor sys_priority: 65534
	actor port_id: 4
	actor port_priority: 65535
	actor key: 4
	actor state: activity timeout aggregation synchronized collecting distributing

	partner sys_id: aa:55:aa:55:00:00
	partner sys_priority: 65534
	partner port_id: 2
	partner port_priority: 65535
	partner key: 2
	partner state: activity timeout aggregation synchronized collecting distributing
---- bond0 ----
bond_mode: balance-tcp
bond may use recirculation: yes, <del>
bond-hash-basis: 0
updelay: 0 ms
downdelay: 0 ms
lacp_status: negotiated
lacp_fallback_ab: false
<active slave mac del>

slave p0: disabled
	may_enable: false

slave p1: enabled
	active slave
	may_enable: true

---- bond1 ----
bond_mode: balance-tcp
bond may use recirculation: yes, <del>
bond-hash-basis: 0
updelay: 0 ms
downdelay: 0 ms
lacp_status: negotiated
lacp_fallback_ab: false
<active slave mac del>

slave p2: disabled
	may_enable: false

slave p3: enabled
	active slave
	may_enable: true

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:461"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"bond0" \
"bond1"
$at_traceon; }


# Reconnect the patch link between p0 and p2 to allow traffic between the ports.
{ set +x
$as_echo "$at_srcdir/lacp.at:591: ovs-vsctl \\
-- del-port null0 -- set int p2 options:peer=p0 \\
-- del-port null1 -- set int p0 options:peer=p2"
at_fn_check_prepare_notrace 'an embedded newline' "lacp.at:591"
( $at_check_trace; ovs-vsctl \
-- del-port null0 -- set int p2 options:peer=p0 \
-- del-port null1 -- set int p0 options:peer=p2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:591"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"bond0" \
"bond1"
$at_traceon; }


# Wait for 30 more seconds (LACP_SLOW_TIME_TX) for the lacp to renegotiate
ovs-appctl time/warp 30100 100

{ set +x
$as_echo "$at_srcdir/lacp.at:598: ovs-appctl lacp/show bond0
ovs-appctl lacp/show bond1
ovs-appctl bond/show bond0 | sed '
    s/Recirc-ID.*\$/<del>/
'  | sed '
    s/active slave mac.*\$/<active slave mac del>/
'
ovs-appctl bond/show bond1 | sed '
    s/Recirc-ID.*\$/<del>/
'  | sed '
    s/active slave mac.*\$/<active slave mac del>/
'  "
at_fn_check_prepare_notrace 'an embedded newline' "lacp.at:598"
( $at_check_trace; ovs-appctl lacp/show bond0
ovs-appctl lacp/show bond1
ovs-appctl bond/show bond0 | sed '
    s/Recirc-ID.*$/<del>/
'  | sed '
    s/active slave mac.*$/<active slave mac del>/
'
ovs-appctl bond/show bond1 | sed '
    s/Recirc-ID.*$/<del>/
'  | sed '
    s/active slave mac.*$/<active slave mac del>/
'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "---- bond0 ----
	status: active negotiated
	sys_id: aa:55:aa:55:00:00
	sys_priority: 65534
	aggregation key: 2
	lacp_time: fast

slave: p0: current attached
	port_id: 1
	port_priority: 65535
	may_enable: true

	actor sys_id: aa:55:aa:55:00:00
	actor sys_priority: 65534
	actor port_id: 1
	actor port_priority: 65535
	actor key: 2
	actor state: activity timeout aggregation synchronized collecting distributing

	partner sys_id: aa:66:aa:66:00:00
	partner sys_priority: 65534
	partner port_id: 3
	partner port_priority: 65535
	partner key: 4
	partner state: activity timeout aggregation synchronized collecting distributing

slave: p1: current attached
	port_id: 2
	port_priority: 65535
	may_enable: true

	actor sys_id: aa:55:aa:55:00:00
	actor sys_priority: 65534
	actor port_id: 2
	actor port_priority: 65535
	actor key: 2
	actor state: activity timeout aggregation synchronized collecting distributing

	partner sys_id: aa:66:aa:66:00:00
	partner sys_priority: 65534
	partner port_id: 4
	partner port_priority: 65535
	partner key: 4
	partner state: activity timeout aggregation synchronized collecting distributing
---- bond1 ----
	status: active negotiated
	sys_id: aa:66:aa:66:00:00
	sys_priority: 65534
	aggregation key: 4
	lacp_time: fast

slave: p2: current attached
	port_id: 3
	port_priority: 65535
	may_enable: true

	actor sys_id: aa:66:aa:66:00:00
	actor sys_priority: 65534
	actor port_id: 3
	actor port_priority: 65535
	actor key: 4
	actor state: activity timeout aggregation synchronized collecting distributing

	partner sys_id: aa:55:aa:55:00:00
	partner sys_priority: 65534
	partner port_id: 1
	partner port_priority: 65535
	partner key: 2
	partner state: activity timeout aggregation synchronized collecting distributing

slave: p3: current attached
	port_id: 4
	port_priority: 65535
	may_enable: true

	actor sys_id: aa:66:aa:66:00:00
	actor sys_priority: 65534
	actor port_id: 4
	actor port_priority: 65535
	actor key: 4
	actor state: activity timeout aggregation synchronized collecting distributing

	partner sys_id: aa:55:aa:55:00:00
	partner sys_priority: 65534
	partner port_id: 2
	partner port_priority: 65535
	partner key: 2
	partner state: activity timeout aggregation synchronized collecting distributing
---- bond0 ----
bond_mode: balance-tcp
bond may use recirculation: yes, <del>
bond-hash-basis: 0
updelay: 0 ms
downdelay: 0 ms
lacp_status: negotiated
lacp_fallback_ab: false
<active slave mac del>

slave p0: enabled
	may_enable: true

slave p1: enabled
	active slave
	may_enable: true

---- bond1 ----
bond_mode: balance-tcp
bond may use recirculation: yes, <del>
bond-hash-basis: 0
updelay: 0 ms
downdelay: 0 ms
lacp_status: negotiated
lacp_fallback_ab: false
<active slave mac del>

slave p2: enabled
	may_enable: true

slave p3: enabled
	active slave
	may_enable: true

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:598"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"bond0" \
"bond1"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/lacp.at:727: check_logs "
at_fn_check_prepare_trace "lacp.at:727"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:727"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"bond0" \
"bond1"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/lacp.at:727: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "lacp.at:727"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:727"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"bond0" \
"bond1"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/lacp.at:727: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "lacp.at:727"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:727"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"bond0" \
"bond1"
$at_traceon; }

   $as_echo "lacp.at:727: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "lacp.at:727: wait failed" >&5

    $as_echo "lacp.at:727" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/lacp.at:727"
fi

   { set +x
$as_echo "$at_srcdir/lacp.at:727: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "lacp.at:727"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:727"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"bond0" \
"bond1"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/lacp.at:727: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "lacp.at:727"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:727"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"bond0" \
"bond1"
$at_traceon; }

   $as_echo "lacp.at:727: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "lacp.at:727: wait failed" >&5

    $as_echo "lacp.at:727" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/lacp.at:727"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_38
#AT_START_39
at_fn_group_banner 39 'lacp.at:731' \
  "lacp - liveness propagation - OF1.3" "            " 5
at_xfail=no
(
  $as_echo "39. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/lacp.at:732: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "lacp.at:732"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:732"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/lacp.at:732: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "lacp.at:732"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:732"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/lacp.at:732: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "lacp.at:732"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:732"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/lacp.at:732: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "lacp.at:732"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:732"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/lacp.at:732: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "lacp.at:732"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:732"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/lacp.at:732: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "lacp.at:732"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:732"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/lacp.at:732: add_of_br 0  "
at_fn_check_prepare_trace "lacp.at:732"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:732"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/lacp.at:733: ovs-ofctl -O OpenFlow13 -P standard monitor br0 --detach --no-chdir --pidfile"
at_fn_check_prepare_trace "lacp.at:733"
( $at_check_trace; ovs-ofctl -O OpenFlow13 -P standard monitor br0 --detach --no-chdir --pidfile
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:733"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

check_liveness () {
    printf '\n\n--- check_liveness %d ---\n\n\n' $1
    shift

	echo >>expout "OFPT_PORT_STATUS (OF1.3): MOD: 1(p0): addr:
     config:     0
     state:      $1
     speed: 0 Mbps now, 0 Mbps max"

	{ set +x
$as_echo "$at_srcdir/lacp.at:743: sed '
s/ (xid=0x[0-9a-fA-F]*)//
s/ *duration.*//
s/addr:[0-9a-fA-F:]*/addr:/' < monitor.log|grep -A3 \"MOD: 1(p0)\"|grep -ve --"
at_fn_check_prepare_notrace 'an embedded newline' "lacp.at:743"
( $at_check_trace; sed '
s/ (xid=0x[0-9a-fA-F]*)//
s/ *duration.*//
s/addr:[0-9a-fA-F:]*/addr:/' < monitor.log|grep -A3 "MOD: 1(p0)"|grep -ve --
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:743"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

}
: > expout
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log
# Set miss_send_len to 128, enabling port_status messages to our service connection.
ovs-appctl -t ovs-ofctl ofctl/send 0409000c0123456700000080

# Create bond0 on br0 with interfaces p0 and p1
#    and bond1 on br1 with interfaces p2 and p3
# with p0 patched to p2 and p1 patched to p3.
{ set +x
$as_echo "$at_srcdir/lacp.at:759: ovs-vsctl add-bond br0 bond0 p0 p1 bond_mode=balance-tcp lacp=active \\
                            other-config:lacp-time=fast \\
                            other-config:bond-rebalance-interval=0 -- \\
   set interface p0 type=patch options:peer=p2 ofport_request=1 \\
                    other-config:lacp-aggregation-key=2 -- \\
   set interface p1 type=patch options:peer=p3 ofport_request=2 \\
                    other-config:lacp-aggregation-key=2 -- \\
   add-br br1 -- \\
   set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \\
   set bridge br1 datapath-type=dummy other-config:datapath-id=1234 \\
                  fail-mode=secure -- \\
   add-bond br1 bond1 p2 p3 bond_mode=balance-tcp lacp=active \\
                            other-config:lacp-time=fast \\
                            other-config:bond-rebalance-interval=0 -- \\
   set interface p2 type=patch options:peer=p0 ofport_request=3 \\
                    other-config:lacp-aggregation-key=4 -- \\
   set interface p3 type=patch options:peer=p1 ofport_request=4 \\
                    other-config:lacp-aggregation-key=4 --"
at_fn_check_prepare_notrace 'an embedded newline' "lacp.at:759"
( $at_check_trace; ovs-vsctl add-bond br0 bond0 p0 p1 bond_mode=balance-tcp lacp=active \
                            other-config:lacp-time=fast \
                            other-config:bond-rebalance-interval=0 -- \
   set interface p0 type=patch options:peer=p2 ofport_request=1 \
                    other-config:lacp-aggregation-key=2 -- \
   set interface p1 type=patch options:peer=p3 ofport_request=2 \
                    other-config:lacp-aggregation-key=2 -- \
   add-br br1 -- \
   set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \
   set bridge br1 datapath-type=dummy other-config:datapath-id=1234 \
                  fail-mode=secure -- \
   add-bond br1 bond1 p2 p3 bond_mode=balance-tcp lacp=active \
                            other-config:lacp-time=fast \
                            other-config:bond-rebalance-interval=0 -- \
   set interface p2 type=patch options:peer=p0 ofport_request=3 \
                    other-config:lacp-aggregation-key=4 -- \
   set interface p3 type=patch options:peer=p1 ofport_request=4 \
                    other-config:lacp-aggregation-key=4 --
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:759"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/lacp.at:778: ovs-appctl netdev-dummy/set-admin-state up"
at_fn_check_prepare_trace "lacp.at:778"
( $at_check_trace; ovs-appctl netdev-dummy/set-admin-state up
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:778"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/stop

# Wait for up to 5 (simulated) seconds, until LACP negotiation finishes.
i=0
while :; do
    ovs-appctl lacp/show bond0 > bond0

    ovs-appctl lacp/show bond1 > bond1

    if grep negotiated bond0 && grep negotiated bond1; then
        if grep expired bond0 || grep expired bond1; then
            :
        else
            break
        fi
    fi
    i=`expr $i + 1`
    if test $i = 50; then
        $as_echo "lacp.at:798" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/lacp.at:798"
    fi
    ovs-appctl time/warp 100
done
check_liveness 1 LIVE

# Makes LACP state "expired" for p0 and p2.
{ set +x
$as_echo "$at_srcdir/lacp.at:805: ovs-vsctl \\
-- add-port br0 null0 -- set int null0 type=patch options:peer=p2 -- set int p2 options:peer=null0 \\
-- add-port br1 null1 -- set int null1 type=patch options:peer=p0 -- set int p0 options:peer=null1"
at_fn_check_prepare_notrace 'an embedded newline' "lacp.at:805"
( $at_check_trace; ovs-vsctl \
-- add-port br0 null0 -- set int null0 type=patch options:peer=p2 -- set int p2 options:peer=null0 \
-- add-port br1 null1 -- set int null1 type=patch options:peer=p0 -- set int p0 options:peer=null1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:805"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"bond0" \
"bond1"
$at_traceon; }

check_liveness 2 LIVE

# Wait 4 more simulated seconds.  The LACP state should become "defaulted" for p0 and p2.
ovs-appctl time/warp 4100 100
check_liveness 3 0

# Reconnect the patch link between p0 and p2 to allow traffic between the ports.
{ set +x
$as_echo "$at_srcdir/lacp.at:815: ovs-vsctl \\
-- del-port null0 -- set int p2 options:peer=p0 \\
-- del-port null1 -- set int p0 options:peer=p2"
at_fn_check_prepare_notrace 'an embedded newline' "lacp.at:815"
( $at_check_trace; ovs-vsctl \
-- del-port null0 -- set int p2 options:peer=p0 \
-- del-port null1 -- set int p0 options:peer=p2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:815"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"bond0" \
"bond1"
$at_traceon; }


# Wait for 30 more seconds (LACP_SLOW_TIME_TX) for the lacp to renegotiate
ovs-appctl time/warp 30100 100
check_liveness 3 LIVE

{ set +x
$as_echo "$at_srcdir/lacp.at:823: check_logs "
at_fn_check_prepare_trace "lacp.at:823"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:823"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"bond0" \
"bond1"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/lacp.at:823: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "lacp.at:823"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:823"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"bond0" \
"bond1"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/lacp.at:823: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "lacp.at:823"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:823"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"bond0" \
"bond1"
$at_traceon; }

   $as_echo "lacp.at:823: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "lacp.at:823: wait failed" >&5

    $as_echo "lacp.at:823" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/lacp.at:823"
fi

   { set +x
$as_echo "$at_srcdir/lacp.at:823: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "lacp.at:823"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:823"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"bond0" \
"bond1"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/lacp.at:823: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "lacp.at:823"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:823"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"bond0" \
"bond1"
$at_traceon; }

   $as_echo "lacp.at:823: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "lacp.at:823: wait failed" >&5

    $as_echo "lacp.at:823" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/lacp.at:823"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_39
#AT_START_40
at_fn_group_banner 40 'lacp.at:827' \
  "lacp - liveness propagation - OF1.4" "            " 5
at_xfail=no
(
  $as_echo "40. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/lacp.at:828: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "lacp.at:828"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:828"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/lacp.at:828: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "lacp.at:828"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:828"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/lacp.at:828: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "lacp.at:828"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:828"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/lacp.at:828: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "lacp.at:828"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:828"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/lacp.at:828: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "lacp.at:828"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:828"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/lacp.at:828: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "lacp.at:828"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:828"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/lacp.at:828: add_of_br 0  "
at_fn_check_prepare_trace "lacp.at:828"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:828"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/lacp.at:829: ovs-ofctl -O OpenFlow14 -P standard monitor br0 --detach --no-chdir --pidfile"
at_fn_check_prepare_trace "lacp.at:829"
( $at_check_trace; ovs-ofctl -O OpenFlow14 -P standard monitor br0 --detach --no-chdir --pidfile
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:829"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

check_liveness () {
    printf '\n\n--- check_liveness %d ---\n\n\n' $1
    shift

	echo >>expout "OFPT_PORT_STATUS (OF1.4): MOD: 1(p0): addr:
     config:     0
     state:      $1
     speed: 0 Mbps now, 0 Mbps max"

	{ set +x
$as_echo "$at_srcdir/lacp.at:839: sed '
s/ (xid=0x[0-9a-fA-F]*)//
s/ *duration.*//
s/addr:[0-9a-fA-F:]*/addr:/' < monitor.log|grep -A3 \"MOD: 1(p0)\"|grep -ve --"
at_fn_check_prepare_notrace 'an embedded newline' "lacp.at:839"
( $at_check_trace; sed '
s/ (xid=0x[0-9a-fA-F]*)//
s/ *duration.*//
s/addr:[0-9a-fA-F:]*/addr:/' < monitor.log|grep -A3 "MOD: 1(p0)"|grep -ve --
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:839"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

}
: > expout
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log
# Set miss_send_len to 128, enabling port_status messages to our service connection.
ovs-appctl -t ovs-ofctl ofctl/send 0509000c0123456700000080

# Create bond0 on br0 with interfaces p0 and p1
#    and bond1 on br1 with interfaces p2 and p3
# with p0 patched to p2 and p1 patched to p3.
{ set +x
$as_echo "$at_srcdir/lacp.at:855: ovs-vsctl add-bond br0 bond0 p0 p1 bond_mode=balance-tcp lacp=active \\
                            other-config:lacp-time=fast \\
                            other-config:bond-rebalance-interval=0 -- \\
   set interface p0 type=patch options:peer=p2 ofport_request=1 \\
                    other-config:lacp-aggregation-key=2 -- \\
   set interface p1 type=patch options:peer=p3 ofport_request=2 \\
                    other-config:lacp-aggregation-key=2 -- \\
   add-br br1 -- \\
   set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \\
   set bridge br1 datapath-type=dummy other-config:datapath-id=1234 \\
                  fail-mode=secure -- \\
   add-bond br1 bond1 p2 p3 bond_mode=balance-tcp lacp=active \\
                            other-config:lacp-time=fast \\
                            other-config:bond-rebalance-interval=0 -- \\
   set interface p2 type=patch options:peer=p0 ofport_request=3 \\
                    other-config:lacp-aggregation-key=4 -- \\
   set interface p3 type=patch options:peer=p1 ofport_request=4 \\
                    other-config:lacp-aggregation-key=4 --"
at_fn_check_prepare_notrace 'an embedded newline' "lacp.at:855"
( $at_check_trace; ovs-vsctl add-bond br0 bond0 p0 p1 bond_mode=balance-tcp lacp=active \
                            other-config:lacp-time=fast \
                            other-config:bond-rebalance-interval=0 -- \
   set interface p0 type=patch options:peer=p2 ofport_request=1 \
                    other-config:lacp-aggregation-key=2 -- \
   set interface p1 type=patch options:peer=p3 ofport_request=2 \
                    other-config:lacp-aggregation-key=2 -- \
   add-br br1 -- \
   set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \
   set bridge br1 datapath-type=dummy other-config:datapath-id=1234 \
                  fail-mode=secure -- \
   add-bond br1 bond1 p2 p3 bond_mode=balance-tcp lacp=active \
                            other-config:lacp-time=fast \
                            other-config:bond-rebalance-interval=0 -- \
   set interface p2 type=patch options:peer=p0 ofport_request=3 \
                    other-config:lacp-aggregation-key=4 -- \
   set interface p3 type=patch options:peer=p1 ofport_request=4 \
                    other-config:lacp-aggregation-key=4 --
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:855"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/lacp.at:874: ovs-appctl netdev-dummy/set-admin-state up"
at_fn_check_prepare_trace "lacp.at:874"
( $at_check_trace; ovs-appctl netdev-dummy/set-admin-state up
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:874"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/stop

# Wait for up to 5 (simulated) seconds, until LACP negotiation finishes.
i=0
while :; do
    ovs-appctl lacp/show bond0 > bond0

    ovs-appctl lacp/show bond1 > bond1

    if grep negotiated bond0 && grep negotiated bond1; then
        if grep expired bond0 || grep expired bond1; then
            :
        else
            break
        fi
    fi
    i=`expr $i + 1`
    if test $i = 50; then
        $as_echo "lacp.at:894" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/lacp.at:894"
    fi
    ovs-appctl time/warp 100
done
check_liveness 1 LIVE

# Makes LACP state "expired" for p0 and p2.
{ set +x
$as_echo "$at_srcdir/lacp.at:901: ovs-vsctl \\
-- add-port br0 null0 -- set int null0 type=patch options:peer=p2 -- set int p2 options:peer=null0 \\
-- add-port br1 null1 -- set int null1 type=patch options:peer=p0 -- set int p0 options:peer=null1"
at_fn_check_prepare_notrace 'an embedded newline' "lacp.at:901"
( $at_check_trace; ovs-vsctl \
-- add-port br0 null0 -- set int null0 type=patch options:peer=p2 -- set int p2 options:peer=null0 \
-- add-port br1 null1 -- set int null1 type=patch options:peer=p0 -- set int p0 options:peer=null1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:901"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"bond0" \
"bond1"
$at_traceon; }

check_liveness 2 LIVE

# Wait 4 more simulated seconds.  The LACP state should become "defaulted" for p0 and p2.
ovs-appctl time/warp 4100 100
check_liveness 3 0

# Reconnect the patch link between p0 and p2 to allow traffic between the ports.
{ set +x
$as_echo "$at_srcdir/lacp.at:911: ovs-vsctl \\
-- del-port null0 -- set int p2 options:peer=p0 \\
-- del-port null1 -- set int p0 options:peer=p2"
at_fn_check_prepare_notrace 'an embedded newline' "lacp.at:911"
( $at_check_trace; ovs-vsctl \
-- del-port null0 -- set int p2 options:peer=p0 \
-- del-port null1 -- set int p0 options:peer=p2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:911"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"bond0" \
"bond1"
$at_traceon; }


# Wait for 30 more seconds (LACP_SLOW_TIME_TX) for the lacp to renegotiate
ovs-appctl time/warp 30100 100
check_liveness 3 LIVE

{ set +x
$as_echo "$at_srcdir/lacp.at:919: check_logs "
at_fn_check_prepare_trace "lacp.at:919"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:919"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"bond0" \
"bond1"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/lacp.at:919: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "lacp.at:919"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:919"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"bond0" \
"bond1"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/lacp.at:919: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "lacp.at:919"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:919"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"bond0" \
"bond1"
$at_traceon; }

   $as_echo "lacp.at:919: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "lacp.at:919: wait failed" >&5

    $as_echo "lacp.at:919" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/lacp.at:919"
fi

   { set +x
$as_echo "$at_srcdir/lacp.at:919: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "lacp.at:919"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:919"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"bond0" \
"bond1"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/lacp.at:919: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "lacp.at:919"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:919"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"bond0" \
"bond1"
$at_traceon; }

   $as_echo "lacp.at:919: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "lacp.at:919: wait failed" >&5

    $as_echo "lacp.at:919" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/lacp.at:919"
fi

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

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/lacp.at:924: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "lacp.at:924"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:924"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/lacp.at:924: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "lacp.at:924"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:924"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/lacp.at:924: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "lacp.at:924"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:924"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/lacp.at:924: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "lacp.at:924"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:924"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/lacp.at:924: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "lacp.at:924"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:924"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/lacp.at:924: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "lacp.at:924"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:924"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/lacp.at:924: add_of_br 0  "
at_fn_check_prepare_trace "lacp.at:924"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:924"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/lacp.at:925: ovs-ofctl -O OpenFlow15 -P standard monitor br0 --detach --no-chdir --pidfile"
at_fn_check_prepare_trace "lacp.at:925"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -P standard monitor br0 --detach --no-chdir --pidfile
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:925"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

check_liveness () {
    printf '\n\n--- check_liveness %d ---\n\n\n' $1
    shift

	echo >>expout "OFPT_PORT_STATUS (OF1.5): MOD: 1(p0): addr:
     config:     0
     state:      $1
     speed: 0 Mbps now, 0 Mbps max"

	{ set +x
$as_echo "$at_srcdir/lacp.at:935: sed '
s/ (xid=0x[0-9a-fA-F]*)//
s/ *duration.*//
s/addr:[0-9a-fA-F:]*/addr:/' < monitor.log|grep -A3 \"MOD: 1(p0)\"|grep -ve --"
at_fn_check_prepare_notrace 'an embedded newline' "lacp.at:935"
( $at_check_trace; sed '
s/ (xid=0x[0-9a-fA-F]*)//
s/ *duration.*//
s/addr:[0-9a-fA-F:]*/addr:/' < monitor.log|grep -A3 "MOD: 1(p0)"|grep -ve --
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:935"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

}
: > expout
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log
# Set miss_send_len to 128, enabling port_status messages to our service connection.
ovs-appctl -t ovs-ofctl ofctl/send 0609000c0123456700000080

# Create bond0 on br0 with interfaces p0 and p1
#    and bond1 on br1 with interfaces p2 and p3
# with p0 patched to p2 and p1 patched to p3.
{ set +x
$as_echo "$at_srcdir/lacp.at:951: ovs-vsctl add-bond br0 bond0 p0 p1 bond_mode=balance-tcp lacp=active \\
                            other-config:lacp-time=fast \\
                            other-config:bond-rebalance-interval=0 -- \\
   set interface p0 type=patch options:peer=p2 ofport_request=1 \\
                    other-config:lacp-aggregation-key=2 -- \\
   set interface p1 type=patch options:peer=p3 ofport_request=2 \\
                    other-config:lacp-aggregation-key=2 -- \\
   add-br br1 -- \\
   set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \\
   set bridge br1 datapath-type=dummy other-config:datapath-id=1234 \\
                  fail-mode=secure -- \\
   add-bond br1 bond1 p2 p3 bond_mode=balance-tcp lacp=active \\
                            other-config:lacp-time=fast \\
                            other-config:bond-rebalance-interval=0 -- \\
   set interface p2 type=patch options:peer=p0 ofport_request=3 \\
                    other-config:lacp-aggregation-key=4 -- \\
   set interface p3 type=patch options:peer=p1 ofport_request=4 \\
                    other-config:lacp-aggregation-key=4 --"
at_fn_check_prepare_notrace 'an embedded newline' "lacp.at:951"
( $at_check_trace; ovs-vsctl add-bond br0 bond0 p0 p1 bond_mode=balance-tcp lacp=active \
                            other-config:lacp-time=fast \
                            other-config:bond-rebalance-interval=0 -- \
   set interface p0 type=patch options:peer=p2 ofport_request=1 \
                    other-config:lacp-aggregation-key=2 -- \
   set interface p1 type=patch options:peer=p3 ofport_request=2 \
                    other-config:lacp-aggregation-key=2 -- \
   add-br br1 -- \
   set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \
   set bridge br1 datapath-type=dummy other-config:datapath-id=1234 \
                  fail-mode=secure -- \
   add-bond br1 bond1 p2 p3 bond_mode=balance-tcp lacp=active \
                            other-config:lacp-time=fast \
                            other-config:bond-rebalance-interval=0 -- \
   set interface p2 type=patch options:peer=p0 ofport_request=3 \
                    other-config:lacp-aggregation-key=4 -- \
   set interface p3 type=patch options:peer=p1 ofport_request=4 \
                    other-config:lacp-aggregation-key=4 --
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:951"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/lacp.at:970: ovs-appctl netdev-dummy/set-admin-state up"
at_fn_check_prepare_trace "lacp.at:970"
( $at_check_trace; ovs-appctl netdev-dummy/set-admin-state up
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:970"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/stop

# Wait for up to 5 (simulated) seconds, until LACP negotiation finishes.
i=0
while :; do
    ovs-appctl lacp/show bond0 > bond0

    ovs-appctl lacp/show bond1 > bond1

    if grep negotiated bond0 && grep negotiated bond1; then
        if grep expired bond0 || grep expired bond1; then
            :
        else
            break
        fi
    fi
    i=`expr $i + 1`
    if test $i = 50; then
        $as_echo "lacp.at:990" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/lacp.at:990"
    fi
    ovs-appctl time/warp 100
done
check_liveness 1 LIVE

# Makes LACP state "expired" for p0 and p2.
{ set +x
$as_echo "$at_srcdir/lacp.at:997: ovs-vsctl \\
-- add-port br0 null0 -- set int null0 type=patch options:peer=p2 -- set int p2 options:peer=null0 \\
-- add-port br1 null1 -- set int null1 type=patch options:peer=p0 -- set int p0 options:peer=null1"
at_fn_check_prepare_notrace 'an embedded newline' "lacp.at:997"
( $at_check_trace; ovs-vsctl \
-- add-port br0 null0 -- set int null0 type=patch options:peer=p2 -- set int p2 options:peer=null0 \
-- add-port br1 null1 -- set int null1 type=patch options:peer=p0 -- set int p0 options:peer=null1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:997"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"bond0" \
"bond1"
$at_traceon; }

check_liveness 2 LIVE

# Wait 4 more simulated seconds.  The LACP state should become "defaulted" for p0 and p2.
ovs-appctl time/warp 4100 100
check_liveness 3 0

# Reconnect the patch link between p0 and p2 to allow traffic between the ports.
{ set +x
$as_echo "$at_srcdir/lacp.at:1007: ovs-vsctl \\
-- del-port null0 -- set int p2 options:peer=p0 \\
-- del-port null1 -- set int p0 options:peer=p2"
at_fn_check_prepare_notrace 'an embedded newline' "lacp.at:1007"
( $at_check_trace; ovs-vsctl \
-- del-port null0 -- set int p2 options:peer=p0 \
-- del-port null1 -- set int p0 options:peer=p2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:1007"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"bond0" \
"bond1"
$at_traceon; }


# Wait for 30 more seconds (LACP_SLOW_TIME_TX) for the lacp to renegotiate
ovs-appctl time/warp 30100 100
check_liveness 3 LIVE

{ set +x
$as_echo "$at_srcdir/lacp.at:1015: check_logs "
at_fn_check_prepare_trace "lacp.at:1015"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:1015"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"bond0" \
"bond1"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/lacp.at:1015: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "lacp.at:1015"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:1015"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"bond0" \
"bond1"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/lacp.at:1015: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "lacp.at:1015"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:1015"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"bond0" \
"bond1"
$at_traceon; }

   $as_echo "lacp.at:1015: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "lacp.at:1015: wait failed" >&5

    $as_echo "lacp.at:1015" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/lacp.at:1015"
fi

   { set +x
$as_echo "$at_srcdir/lacp.at:1015: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "lacp.at:1015"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:1015"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"bond0" \
"bond1"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/lacp.at:1015: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "lacp.at:1015"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lacp.at:1015"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"bond0" \
"bond1"
$at_traceon; }

   $as_echo "lacp.at:1015: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "lacp.at:1015: wait failed" >&5

    $as_echo "lacp.at:1015" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/lacp.at:1015"
fi

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

ovs_init

{ set +x
$as_echo "$at_srcdir/library.at:4: \$PYTHON \$srcdir/flowgen.py >/dev/null 3>flows 4>pcap"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/flowgen.py >/dev/null 3>flows 4>pcap" "library.at:4"
( $at_check_trace; $PYTHON $srcdir/flowgen.py >/dev/null 3>flows 4>pcap
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:4"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/library.at:5: ovstest test-flows flows pcap"
at_fn_check_prepare_trace "library.at:5"
( $at_check_trace; ovstest test-flows flows pcap
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "checked 247 packets, 0 errors
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:5"
$at_failed && at_fn_log_failure
$at_traceon; }

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

ovs_init

{ set +x
$as_echo "$at_srcdir/library.at:10: ovstest test-csum"
at_fn_check_prepare_trace "library.at:10"
( $at_check_trace; ovstest test-csum
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "....#....#....####................................#................................#
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:10"
$at_failed && at_fn_log_failure
$at_traceon; }

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

ovs_init

{ set +x
$as_echo "$at_srcdir/library.at:15: ovstest test-hash"
at_fn_check_prepare_trace "library.at:15"
( $at_check_trace; ovstest test-hash
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:15"
$at_failed && at_fn_log_failure
$at_traceon; }

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

ovs_init


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

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

ovs_init


{ set +x
$as_echo "$at_srcdir/library.at:26: ovstest test-hindex"
at_fn_check_prepare_trace "library.at:26"
( $at_check_trace; ovstest test-hindex
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo ".....................
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_46
#AT_START_47
at_fn_group_banner 47 'library.at:30' \
  "cuckoo hash" "                                    " 6
at_xfail=no
(
  $as_echo "47. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/library.at:32: ovstest test-cmap check 1"
at_fn_check_prepare_trace "library.at:32"
( $at_check_trace; ovstest test-cmap check 1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "...
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_47
#AT_START_48
at_fn_group_banner 48 'library.at:36' \
  "counting cuckoo hash" "                           " 6
at_xfail=no
(
  $as_echo "48. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/library.at:38: ovstest test-ccmap check 1"
at_fn_check_prepare_trace "library.at:38"
( $at_check_trace; ovstest test-ccmap check 1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "...
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:38"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_48
#AT_START_49
at_fn_group_banner 49 'library.at:42' \
  "atomic operations" "                              " 6
at_xfail=no
(
  $as_echo "49. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/library.at:43: ovstest test-atomic"
at_fn_check_prepare_trace "library.at:43"
( $at_check_trace; ovstest test-atomic
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:43"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_49
#AT_START_50
at_fn_group_banner 50 'library.at:46' \
  "test linked lists" "                              " 6
at_xfail=no
(
  $as_echo "50. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/library.at:47: ovstest test-list"
at_fn_check_prepare_trace "library.at:47"
( $at_check_trace; ovstest test-list
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "....
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:47"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_50
#AT_START_51
at_fn_group_banner 51 'library.at:51' \
  "packet library" "                                 " 6
at_xfail=no
(
  $as_echo "51. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/library.at:52: ovstest test-packets"
at_fn_check_prepare_trace "library.at:52"
( $at_check_trace; ovstest test-packets
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:52"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_51
#AT_START_52
at_fn_group_banner 52 'library.at:55' \
  "SHA-1" "                                          " 6
at_xfail=no
(
  $as_echo "52. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/library.at:56: ovstest test-sha1"
at_fn_check_prepare_trace "library.at:56"
( $at_check_trace; ovstest test-sha1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo ".........
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:56"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_52
#AT_START_53
at_fn_group_banner 53 'library.at:60' \
  "test skiplist" "                                  " 6
at_xfail=no
(
  $as_echo "53. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/library.at:62: ovstest test-skiplist"
at_fn_check_prepare_trace "library.at:62"
( $at_check_trace; ovstest test-skiplist
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "skiplist insert
skiplist delete
skiplist find
skiplist forward_to
skiplist random

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

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_53
#AT_START_54
at_fn_group_banner 54 'library.at:71' \
  "type properties" "                                " 6
at_xfail=no
(
  $as_echo "54. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/library.at:72: test-type-props"
at_fn_check_prepare_trace "library.at:72"
( $at_check_trace; test-type-props
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:72"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_54
#AT_START_55
at_fn_group_banner 55 'library.at:75' \
  "strtok_r bug fix" "                               " 6
at_xfail=no
(
  $as_echo "55. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/library.at:76: test-strtok_r"
at_fn_check_prepare_trace "library.at:76"
( $at_check_trace; test-strtok_r
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NULL NULL
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:76"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_55
#AT_START_56
at_fn_group_banner 56 'library.at:80' \
  "byte order conversion" "                          " 6
at_xfail=no
(
  $as_echo "56. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/library.at:82: ovstest test-byte-order"
at_fn_check_prepare_trace "library.at:82"
( $at_check_trace; ovstest test-byte-order
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:82"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_56
#AT_START_57
at_fn_group_banner 57 'library.at:85' \
  "random number generator" "                        " 6
at_xfail=no
(
  $as_echo "57. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/library.at:86: ovstest test-random"
at_fn_check_prepare_trace "library.at:86"
( $at_check_trace; ovstest test-random
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "average=7fa2014f

bit      0     1
  0  4946  5054
  1  4939  5061
  2  4947  5053
  3  4935  5065
  4  5004  4996
  5  4998  5002
  6  5062  4938
  7  5009  4991
  8  5001  4999
  9  5022  4978
 10  5006  4994
 11  5039  4961
 12  4940  5060
 13  5048  4952
 14  4930  5070
 15  4973  5027
 16  4954  5046
 17  5043  4957
 18  5020  4980
 19  5104  4896
 20  5051  4949
 21  5003  4997
 22  5110  4890
 23  4950  5050
 24  5016  4984
 25  5019  4981
 26  4948  5052
 27  4995  5005
 28  4995  5005
 29  4969  5031
 30  5109  4891
 31  4984  5016
(expected values are 5000)

nibble   0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15
     0 640 589 610 613 588 632 650 613 582 646 627 640 612 650 637 671
     1 626 642 663 620 630 609 617 602 615 638 614 644 641 597 598 644
     2 667 611 617 613 609 629 642 651 604 641 594 659 651 610 617 585
     3 621 662 594 605 618 644 616 613 613 616 611 608 614 660 653 652
     4 641 668 621 664 619 624 625 642 624 629 607 566 599 639 618 614
     5 666 629 620 621 581 615 598 620 630 651 671 622 628 603 657 588
     6 620 640 621 606 603 644 628 633 620 597 653 591 637 658 634 615
     7 636 645 679 593 598 609 612 612 623 626 638 669 603 629 606 622
(expected values are 625)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:86"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_57
#AT_START_58
at_fn_group_banner 58 'library.at:137' \
  "ctz() function" "                                 " 6
at_xfail=no
(
  $as_echo "58. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/library.at:137: ovstest test-util ctz"
at_fn_check_prepare_trace "library.at:137"
( $at_check_trace; ovstest test-util ctz
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:137"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_58
#AT_START_59
at_fn_group_banner 59 'library.at:137' \
  "clz() function" "                                 " 6
at_xfail=no
(
  $as_echo "59. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/library.at:137: ovstest test-util clz"
at_fn_check_prepare_trace "library.at:137"
( $at_check_trace; ovstest test-util clz
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:137"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_59
#AT_START_60
at_fn_group_banner 60 'library.at:137' \
  "round_up_pow2() function" "                       " 6
at_xfail=no
(
  $as_echo "60. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/library.at:137: ovstest test-util round_up_pow2"
at_fn_check_prepare_trace "library.at:137"
( $at_check_trace; ovstest test-util round_up_pow2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:137"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_60
#AT_START_61
at_fn_group_banner 61 'library.at:137' \
  "round_down_pow2() function" "                     " 6
at_xfail=no
(
  $as_echo "61. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/library.at:137: ovstest test-util round_down_pow2"
at_fn_check_prepare_trace "library.at:137"
( $at_check_trace; ovstest test-util round_down_pow2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:137"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_61
#AT_START_62
at_fn_group_banner 62 'library.at:137' \
  "count_1bits() function" "                         " 6
at_xfail=no
(
  $as_echo "62. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/library.at:137: ovstest test-util count_1bits"
at_fn_check_prepare_trace "library.at:137"
( $at_check_trace; ovstest test-util count_1bits
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:137"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_62
#AT_START_63
at_fn_group_banner 63 'library.at:137' \
  "log_2_floor() function" "                         " 6
at_xfail=no
(
  $as_echo "63. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/library.at:137: ovstest test-util log_2_floor"
at_fn_check_prepare_trace "library.at:137"
( $at_check_trace; ovstest test-util log_2_floor
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:137"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_63
#AT_START_64
at_fn_group_banner 64 'library.at:137' \
  "bitwise_copy() function" "                        " 6
at_xfail=no
(
  $as_echo "64. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/library.at:137: ovstest test-util bitwise_copy"
at_fn_check_prepare_trace "library.at:137"
( $at_check_trace; ovstest test-util bitwise_copy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:137"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_64
#AT_START_65
at_fn_group_banner 65 'library.at:137' \
  "bitwise_zero() function" "                        " 6
at_xfail=no
(
  $as_echo "65. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/library.at:137: ovstest test-util bitwise_zero"
at_fn_check_prepare_trace "library.at:137"
( $at_check_trace; ovstest test-util bitwise_zero
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:137"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_65
#AT_START_66
at_fn_group_banner 66 'library.at:137' \
  "bitwise_one() function" "                         " 6
at_xfail=no
(
  $as_echo "66. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/library.at:137: ovstest test-util bitwise_one"
at_fn_check_prepare_trace "library.at:137"
( $at_check_trace; ovstest test-util bitwise_one
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:137"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_66
#AT_START_67
at_fn_group_banner 67 'library.at:137' \
  "bitwise_is_all_zeros() function" "                " 6
at_xfail=no
(
  $as_echo "67. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/library.at:137: ovstest test-util bitwise_is_all_zeros"
at_fn_check_prepare_trace "library.at:137"
( $at_check_trace; ovstest test-util bitwise_is_all_zeros
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:137"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_67
#AT_START_68
at_fn_group_banner 68 'library.at:137' \
  "bitwise_rscan() function" "                       " 6
at_xfail=no
(
  $as_echo "68. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/library.at:137: ovstest test-util bitwise_rscan"
at_fn_check_prepare_trace "library.at:137"
( $at_check_trace; ovstest test-util bitwise_rscan
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:137"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_68
#AT_START_69
at_fn_group_banner 69 'library.at:137' \
  "ovs_scan() function" "                            " 6
at_xfail=no
(
  $as_echo "69. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/library.at:137: ovstest test-util ovs_scan"
at_fn_check_prepare_trace "library.at:137"
( $at_check_trace; ovstest test-util ovs_scan
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:137"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_69
#AT_START_70
at_fn_group_banner 70 'library.at:156' \
  "unix socket, short pathname - C" "                " 6
at_xfail=no
(
  $as_echo "70. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "library.at:157" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/library.at:157"
{ set +x
$as_echo "$at_srcdir/library.at:158: ovstest test-unix-socket x"
at_fn_check_prepare_trace "library.at:158"
( $at_check_trace; ovstest test-unix-socket x
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:158"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_70
#AT_START_71
at_fn_group_banner 71 'library.at:166' \
  "unix socket, long pathname - C" "                 " 6
at_xfail=no
(
  $as_echo "71. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "library.at:167" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/library.at:167"
longname=01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012

{ set +x
$as_echo "$at_srcdir/library.at:174: mkdir \$longname || exit 77"
at_fn_check_prepare_dynamic "mkdir $longname || exit 77" "library.at:174"
( $at_check_trace; mkdir $longname || exit 77
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:174"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/library.at:176: cd \$longname && ovstest test-unix-socket ../\$longname/socket socket"
at_fn_check_prepare_dynamic "cd $longname && ovstest test-unix-socket ../$longname/socket socket" "library.at:176"
( $at_check_trace; cd $longname && ovstest test-unix-socket ../$longname/socket socket
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:176"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_71
#AT_START_72
at_fn_group_banner 72 'library.at:186' \
  "unix socket, short pathname - Python2" "          " 6
at_xfail=no
(
  $as_echo "72. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "library.at:186" >"$at_check_line_file"
(test $HAVE_PYTHON = no || test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/library.at:186"

   { set +x
$as_echo "$at_srcdir/library.at:186: \$PYTHON \$srcdir/test-unix-socket.py x"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-unix-socket.py x" "library.at:186"
( $at_check_trace; $PYTHON $srcdir/test-unix-socket.py x
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:186"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_72
#AT_START_73
at_fn_group_banner 73 'library.at:187' \
  "unix socket, short pathname - Python3" "          " 6
at_xfail=no
(
  $as_echo "73. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "library.at:187" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no || test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/library.at:187"

   { set +x
$as_echo "$at_srcdir/library.at:187: \$PYTHON3 \$srcdir/test-unix-socket.py x"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-unix-socket.py x" "library.at:187"
( $at_check_trace; $PYTHON3 $srcdir/test-unix-socket.py x
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:187"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_73
#AT_START_74
at_fn_group_banner 74 'library.at:208' \
  "unix socket, long pathname - Python2" "           " 6
at_xfail=no
(
  $as_echo "74. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "library.at:208" >"$at_check_line_file"
(test $HAVE_PYTHON = no || test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/library.at:208"

         longname=01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012

         { set +x
$as_echo "$at_srcdir/library.at:208: mkdir \$longname || exit 77"
at_fn_check_prepare_dynamic "mkdir $longname || exit 77" "library.at:208"
( $at_check_trace; mkdir $longname || exit 77
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:208"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/library.at:208: cd \$longname && \$PYTHON \$abs_srcdir/test-unix-socket.py ../\$longname/socket socket"
at_fn_check_prepare_dynamic "cd $longname && $PYTHON $abs_srcdir/test-unix-socket.py ../$longname/socket socket" "library.at:208"
( $at_check_trace; cd $longname && $PYTHON $abs_srcdir/test-unix-socket.py ../$longname/socket socket
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:208"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_74
#AT_START_75
at_fn_group_banner 75 'library.at:209' \
  "unix socket, long pathname - Python3" "           " 6
at_xfail=no
(
  $as_echo "75. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "library.at:209" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no || test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/library.at:209"

         longname=01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012

         { set +x
$as_echo "$at_srcdir/library.at:209: mkdir \$longname || exit 77"
at_fn_check_prepare_dynamic "mkdir $longname || exit 77" "library.at:209"
( $at_check_trace; mkdir $longname || exit 77
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:209"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/library.at:209: cd \$longname && \$PYTHON3 \$abs_srcdir/test-unix-socket.py ../\$longname/socket socket"
at_fn_check_prepare_dynamic "cd $longname && $PYTHON3 $abs_srcdir/test-unix-socket.py ../$longname/socket socket" "library.at:209"
( $at_check_trace; cd $longname && $PYTHON3 $abs_srcdir/test-unix-socket.py ../$longname/socket socket
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:209"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_75
#AT_START_76
at_fn_group_banner 76 'library.at:211' \
  "ovs_assert" "                                     " 6
at_xfail=no
(
  $as_echo "76. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

if test "$IS_WIN32" = "yes"; then
  exit_status=9
else
  # SIGABRT + 128
  exit_status=134
fi
{ set +x
$as_echo "$at_srcdir/library.at:218: ovstest test-util -voff -vfile:info '-vPATTERN:file:%c|%p|%m' --log-file assert"
at_fn_check_prepare_notrace 'a shell pipeline' "library.at:218"
( $at_check_trace; ovstest test-util -voff -vfile:info '-vPATTERN:file:%c|%p|%m' --log-file assert
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status $exit_status $at_status "$at_srcdir/library.at:218"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/library.at:221: sed 's/\\(opened log file\\) .*/\\1/
s/|[^|]*: /|/' test-util.log"
at_fn_check_prepare_notrace 'an embedded newline' "library.at:221"
( $at_check_trace; sed 's/\(opened log file\) .*/\1/
s/|[^|]*: /|/' test-util.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "vlog|INFO|opened log file
util|EMER|assertion false failed in test_assert()
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:221"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/library.at:227: sed 's/.*: //
1q' stderr"
at_fn_check_prepare_notrace 'an embedded newline' "library.at:227"
( $at_check_trace; sed 's/.*: //
1q' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "assertion false failed in test_assert()
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:227"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_76
#AT_START_77
at_fn_group_banner 77 'library.at:234' \
  "snprintf" "                                       " 6
at_xfail=no
(
  $as_echo "77. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/library.at:235: ovstest test-util snprintf"
at_fn_check_prepare_trace "library.at:235"
( $at_check_trace; ovstest test-util snprintf
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:235"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_77
#AT_START_78
at_fn_group_banner 78 'library.at:238' \
  "bitmap functions" "                               " 6
at_xfail=no
(
  $as_echo "78. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/library.at:239: ovstest test-bitmap check"
at_fn_check_prepare_trace "library.at:239"
( $at_check_trace; ovstest test-bitmap check
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "..
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:239"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_78
#AT_START_79
at_fn_group_banner 79 'library.at:243' \
  "use of public headers" "                          " 6
at_xfail=no
(
  $as_echo "79. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/library.at:244: test-lib"
at_fn_check_prepare_trace "library.at:244"
( $at_check_trace; test-lib
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:244"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_79
#AT_START_80
at_fn_group_banner 80 'library.at:247' \
  "ofpbuf module" "                                  " 6
at_xfail=no
(
  $as_echo "80. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/library.at:248: ovstest test-ofpbuf"
at_fn_check_prepare_trace "library.at:248"
( $at_check_trace; ovstest test-ofpbuf
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:248"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_80
#AT_START_81
at_fn_group_banner 81 'library.at:251' \
  "rcu" "                                            " 6
at_xfail=no
(
  $as_echo "81. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/library.at:252: ovstest test-rcu-quiesce"
at_fn_check_prepare_trace "library.at:252"
( $at_check_trace; ovstest test-rcu-quiesce
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/library.at:252"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_81
#AT_START_82
at_fn_group_banner 82 'heap.at:8' \
  "heap library -- insert delete same order" "       " 7
at_xfail=no
(
  $as_echo "82. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   { set +x
$as_echo "$at_srcdir/heap.at:8: ovstest test-heap insert-delete-same-order"
at_fn_check_prepare_trace "heap.at:8"
( $at_check_trace; ovstest test-heap insert-delete-same-order
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/heap.at:8"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_82
#AT_START_83
at_fn_group_banner 83 'heap.at:9' \
  "heap library -- insert delete reverse order" "    " 7
at_xfail=no
(
  $as_echo "83. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   { set +x
$as_echo "$at_srcdir/heap.at:9: ovstest test-heap insert-delete-reverse-order"
at_fn_check_prepare_trace "heap.at:9"
( $at_check_trace; ovstest test-heap insert-delete-reverse-order
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/heap.at:9"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_83
#AT_START_84
at_fn_group_banner 84 'heap.at:10' \
  "heap library -- insert delete every order" "      " 7
at_xfail=no
(
  $as_echo "84. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   { set +x
$as_echo "$at_srcdir/heap.at:10: ovstest test-heap insert-delete-every-order"
at_fn_check_prepare_trace "heap.at:10"
( $at_check_trace; ovstest test-heap insert-delete-every-order
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/heap.at:10"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_84
#AT_START_85
at_fn_group_banner 85 'heap.at:11' \
  "heap library -- insert delete same order with dups" "" 7
at_xfail=no
(
  $as_echo "85. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   { set +x
$as_echo "$at_srcdir/heap.at:11: ovstest test-heap insert-delete-same-order-with-dups"
at_fn_check_prepare_trace "heap.at:11"
( $at_check_trace; ovstest test-heap insert-delete-same-order-with-dups
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/heap.at:11"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_85
#AT_START_86
at_fn_group_banner 86 'heap.at:12' \
  "heap library -- raw insert" "                     " 7
at_xfail=no
(
  $as_echo "86. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   { set +x
$as_echo "$at_srcdir/heap.at:12: ovstest test-heap raw-insert"
at_fn_check_prepare_trace "heap.at:12"
( $at_check_trace; ovstest test-heap raw-insert
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/heap.at:12"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_86
#AT_START_87
at_fn_group_banner 87 'heap.at:13' \
  "heap library -- raw delete" "                     " 7
at_xfail=no
(
  $as_echo "87. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   { set +x
$as_echo "$at_srcdir/heap.at:13: ovstest test-heap raw-delete"
at_fn_check_prepare_trace "heap.at:13"
( $at_check_trace; ovstest test-heap raw-delete
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/heap.at:13"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_87
#AT_START_88
at_fn_group_banner 88 'bundle.at:10' \
  "hrw bundle link selection" "                      " 8
at_xfail=no
(
  $as_echo "88. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/bundle.at:12: ovstest test-bundle 'symmetric_l4,60,hrw,ofport,NXM_NX_REG0[],slaves:1,2,3,4,5'"
at_fn_check_prepare_trace "bundle.at:12"
( $at_check_trace; ovstest test-bundle 'symmetric_l4,60,hrw,ofport,NXM_NX_REG0[],slaves:1,2,3,4,5'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:12"
$at_failed && at_fn_log_failure
$at_traceon; }

# 100000: disruption=1.00 (perfect=1.00) 1.00 0.00 0.00 0.00 0.00 0.00
# 110000: disruption=0.50 (perfect=0.50) 0.50 0.50 0.00 0.00 0.00 0.00
# 010000: disruption=0.50 (perfect=0.50) 0.00 1.00 0.00 0.00 0.00 0.00
# 011000: disruption=0.50 (perfect=0.50) 0.00 0.50 0.50 0.00 0.00 0.00
# 111000: disruption=0.33 (perfect=0.33) 0.33 0.33 0.34 0.00 0.00 0.00
# 101000: disruption=0.33 (perfect=0.33) 0.50 0.00 0.50 0.00 0.00 0.00
# 001000: disruption=0.50 (perfect=0.50) 0.00 0.00 1.00 0.00 0.00 0.00
# 001100: disruption=0.50 (perfect=0.50) 0.00 0.00 0.50 0.50 0.00 0.00
# 101100: disruption=0.33 (perfect=0.33) 0.33 0.00 0.34 0.33 0.00 0.00
# 111100: disruption=0.25 (perfect=0.25) 0.25 0.25 0.25 0.25 0.00 0.00
# 011100: disruption=0.25 (perfect=0.25) 0.00 0.33 0.33 0.33 0.00 0.00
# 010100: disruption=0.33 (perfect=0.33) 0.00 0.50 0.00 0.50 0.00 0.00
# 110100: disruption=0.33 (perfect=0.33) 0.33 0.33 0.00 0.34 0.00 0.00
# 100100: disruption=0.33 (perfect=0.33) 0.50 0.00 0.00 0.50 0.00 0.00
# 000100: disruption=0.50 (perfect=0.50) 0.00 0.00 0.00 1.00 0.00 0.00
# 000110: disruption=0.50 (perfect=0.50) 0.00 0.00 0.00 0.50 0.50 0.00
# 100110: disruption=0.33 (perfect=0.33) 0.33 0.00 0.00 0.33 0.33 0.00
# 110110: disruption=0.25 (perfect=0.25) 0.25 0.25 0.00 0.25 0.25 0.00
# 010110: disruption=0.25 (perfect=0.25) 0.00 0.34 0.00 0.33 0.33 0.00
# 011110: disruption=0.25 (perfect=0.25) 0.00 0.25 0.25 0.25 0.25 0.00
# 111110: disruption=0.20 (perfect=0.20) 0.20 0.20 0.20 0.20 0.20 0.00
# 101110: disruption=0.20 (perfect=0.20) 0.25 0.00 0.25 0.25 0.25 0.00
# 001110: disruption=0.25 (perfect=0.25) 0.00 0.00 0.34 0.33 0.33 0.00
# 001010: disruption=0.33 (perfect=0.33) 0.00 0.00 0.50 0.00 0.50 0.00
# 101010: disruption=0.33 (perfect=0.33) 0.33 0.00 0.34 0.00 0.33 0.00
# 111010: disruption=0.25 (perfect=0.25) 0.25 0.25 0.25 0.00 0.25 0.00
# 011010: disruption=0.25 (perfect=0.25) 0.00 0.33 0.34 0.00 0.33 0.00
# 010010: disruption=0.34 (perfect=0.33) 0.00 0.50 0.00 0.00 0.50 0.00
# 110010: disruption=0.33 (perfect=0.33) 0.33 0.33 0.00 0.00 0.33 0.00
# 100010: disruption=0.33 (perfect=0.33) 0.50 0.00 0.00 0.00 0.50 0.00
# 000010: disruption=0.50 (perfect=0.50) 0.00 0.00 0.00 0.00 1.00 0.00
# 000011: disruption=0.50 (perfect=0.50) 0.00 0.00 0.00 0.00 0.50 0.50
# 100011: disruption=0.33 (perfect=0.33) 0.33 0.00 0.00 0.00 0.33 0.33
# 110011: disruption=0.25 (perfect=0.25) 0.25 0.25 0.00 0.00 0.25 0.25
# 010011: disruption=0.25 (perfect=0.25) 0.00 0.33 0.00 0.00 0.33 0.33
# 011011: disruption=0.25 (perfect=0.25) 0.00 0.25 0.25 0.00 0.25 0.25
# 111011: disruption=0.20 (perfect=0.20) 0.20 0.20 0.20 0.00 0.20 0.20
# 101011: disruption=0.20 (perfect=0.20) 0.25 0.00 0.25 0.00 0.25 0.25
# 001011: disruption=0.25 (perfect=0.25) 0.00 0.00 0.34 0.00 0.33 0.33
# 001111: disruption=0.25 (perfect=0.25) 0.00 0.00 0.25 0.25 0.25 0.25
# 101111: disruption=0.20 (perfect=0.20) 0.20 0.00 0.20 0.20 0.20 0.20
# 111111: disruption=0.17 (perfect=0.17) 0.17 0.17 0.17 0.17 0.17 0.17
# 011111: disruption=0.17 (perfect=0.17) 0.00 0.20 0.20 0.20 0.20 0.20
# 010111: disruption=0.20 (perfect=0.20) 0.00 0.25 0.00 0.25 0.25 0.25
# 110111: disruption=0.20 (perfect=0.20) 0.20 0.20 0.00 0.20 0.20 0.20
# 100111: disruption=0.20 (perfect=0.20) 0.25 0.00 0.00 0.25 0.25 0.25
# 000111: disruption=0.25 (perfect=0.25) 0.00 0.00 0.00 0.33 0.33 0.33
# 000101: disruption=0.33 (perfect=0.33) 0.00 0.00 0.00 0.50 0.00 0.50
# 100101: disruption=0.33 (perfect=0.33) 0.33 0.00 0.00 0.33 0.00 0.33
# 110101: disruption=0.25 (perfect=0.25) 0.25 0.25 0.00 0.25 0.00 0.25
# 010101: disruption=0.25 (perfect=0.25) 0.00 0.33 0.00 0.33 0.00 0.33
# 011101: disruption=0.25 (perfect=0.25) 0.00 0.25 0.25 0.25 0.00 0.25
# 111101: disruption=0.20 (perfect=0.20) 0.20 0.20 0.20 0.20 0.00 0.20
# 101101: disruption=0.20 (perfect=0.20) 0.25 0.00 0.25 0.25 0.00 0.25
# 001101: disruption=0.25 (perfect=0.25) 0.00 0.00 0.33 0.33 0.00 0.33
# 001001: disruption=0.33 (perfect=0.33) 0.00 0.00 0.50 0.00 0.00 0.50
# 101001: disruption=0.33 (perfect=0.33) 0.33 0.00 0.33 0.00 0.00 0.33
# 111001: disruption=0.25 (perfect=0.25) 0.25 0.25 0.25 0.00 0.00 0.25
# 011001: disruption=0.25 (perfect=0.25) 0.00 0.33 0.34 0.00 0.00 0.33
# 010001: disruption=0.34 (perfect=0.33) 0.00 0.50 0.00 0.00 0.00 0.50
# 110001: disruption=0.33 (perfect=0.33) 0.33 0.33 0.00 0.00 0.00 0.34
# 100001: disruption=0.33 (perfect=0.33) 0.50 0.00 0.00 0.00 0.00 0.50
# 000001: disruption=0.50 (perfect=0.50) 0.00 0.00 0.00 0.00 0.00 1.00
# 000000: disruption=1.00 (perfect=1.00) 0.00 0.00 0.00 0.00 0.00 0.00
# 100000: disruption=1.00 (perfect=1.00) 1.00 0.00 0.00 0.00 0.00 0.00
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_88
#AT_START_89
at_fn_group_banner 89 'bundle.at:81' \
  "active_backup bundle link selection" "            " 8
at_xfail=no
(
  $as_echo "89. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/bundle.at:83: ovstest test-bundle 'symmetric_l4,60,active_backup,ofport,NXM_NX_REG0[],slaves:1,2,3,4,5,6'"
at_fn_check_prepare_trace "bundle.at:83"
( $at_check_trace; ovstest test-bundle 'symmetric_l4,60,active_backup,ofport,NXM_NX_REG0[],slaves:1,2,3,4,5,6'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "100000: disruption=1.00 (perfect=1.00) 1.00 0.00 0.00 0.00 0.00 0.00
110000: disruption=0.00 (perfect=0.00) 1.00 0.00 0.00 0.00 0.00 0.00
010000: disruption=1.00 (perfect=1.00) 0.00 1.00 0.00 0.00 0.00 0.00
011000: disruption=0.00 (perfect=0.00) 0.00 1.00 0.00 0.00 0.00 0.00
111000: disruption=1.00 (perfect=1.00) 1.00 0.00 0.00 0.00 0.00 0.00
101000: disruption=0.00 (perfect=0.00) 1.00 0.00 0.00 0.00 0.00 0.00
001000: disruption=1.00 (perfect=1.00) 0.00 0.00 1.00 0.00 0.00 0.00
001100: disruption=0.00 (perfect=0.00) 0.00 0.00 1.00 0.00 0.00 0.00
101100: disruption=1.00 (perfect=1.00) 1.00 0.00 0.00 0.00 0.00 0.00
111100: disruption=0.00 (perfect=0.00) 1.00 0.00 0.00 0.00 0.00 0.00
011100: disruption=1.00 (perfect=1.00) 0.00 1.00 0.00 0.00 0.00 0.00
010100: disruption=0.00 (perfect=0.00) 0.00 1.00 0.00 0.00 0.00 0.00
110100: disruption=1.00 (perfect=1.00) 1.00 0.00 0.00 0.00 0.00 0.00
100100: disruption=0.00 (perfect=0.00) 1.00 0.00 0.00 0.00 0.00 0.00
000100: disruption=1.00 (perfect=1.00) 0.00 0.00 0.00 1.00 0.00 0.00
000110: disruption=0.00 (perfect=0.00) 0.00 0.00 0.00 1.00 0.00 0.00
100110: disruption=1.00 (perfect=1.00) 1.00 0.00 0.00 0.00 0.00 0.00
110110: disruption=0.00 (perfect=0.00) 1.00 0.00 0.00 0.00 0.00 0.00
010110: disruption=1.00 (perfect=1.00) 0.00 1.00 0.00 0.00 0.00 0.00
011110: disruption=0.00 (perfect=0.00) 0.00 1.00 0.00 0.00 0.00 0.00
111110: disruption=1.00 (perfect=1.00) 1.00 0.00 0.00 0.00 0.00 0.00
101110: disruption=0.00 (perfect=0.00) 1.00 0.00 0.00 0.00 0.00 0.00
001110: disruption=1.00 (perfect=1.00) 0.00 0.00 1.00 0.00 0.00 0.00
001010: disruption=0.00 (perfect=0.00) 0.00 0.00 1.00 0.00 0.00 0.00
101010: disruption=1.00 (perfect=1.00) 1.00 0.00 0.00 0.00 0.00 0.00
111010: disruption=0.00 (perfect=0.00) 1.00 0.00 0.00 0.00 0.00 0.00
011010: disruption=1.00 (perfect=1.00) 0.00 1.00 0.00 0.00 0.00 0.00
010010: disruption=0.00 (perfect=0.00) 0.00 1.00 0.00 0.00 0.00 0.00
110010: disruption=1.00 (perfect=1.00) 1.00 0.00 0.00 0.00 0.00 0.00
100010: disruption=0.00 (perfect=0.00) 1.00 0.00 0.00 0.00 0.00 0.00
000010: disruption=1.00 (perfect=1.00) 0.00 0.00 0.00 0.00 1.00 0.00
000011: disruption=0.00 (perfect=0.00) 0.00 0.00 0.00 0.00 1.00 0.00
100011: disruption=1.00 (perfect=1.00) 1.00 0.00 0.00 0.00 0.00 0.00
110011: disruption=0.00 (perfect=0.00) 1.00 0.00 0.00 0.00 0.00 0.00
010011: disruption=1.00 (perfect=1.00) 0.00 1.00 0.00 0.00 0.00 0.00
011011: disruption=0.00 (perfect=0.00) 0.00 1.00 0.00 0.00 0.00 0.00
111011: disruption=1.00 (perfect=1.00) 1.00 0.00 0.00 0.00 0.00 0.00
101011: disruption=0.00 (perfect=0.00) 1.00 0.00 0.00 0.00 0.00 0.00
001011: disruption=1.00 (perfect=1.00) 0.00 0.00 1.00 0.00 0.00 0.00
001111: disruption=0.00 (perfect=0.00) 0.00 0.00 1.00 0.00 0.00 0.00
101111: disruption=1.00 (perfect=1.00) 1.00 0.00 0.00 0.00 0.00 0.00
111111: disruption=0.00 (perfect=0.00) 1.00 0.00 0.00 0.00 0.00 0.00
011111: disruption=1.00 (perfect=1.00) 0.00 1.00 0.00 0.00 0.00 0.00
010111: disruption=0.00 (perfect=0.00) 0.00 1.00 0.00 0.00 0.00 0.00
110111: disruption=1.00 (perfect=1.00) 1.00 0.00 0.00 0.00 0.00 0.00
100111: disruption=0.00 (perfect=0.00) 1.00 0.00 0.00 0.00 0.00 0.00
000111: disruption=1.00 (perfect=1.00) 0.00 0.00 0.00 1.00 0.00 0.00
000101: disruption=0.00 (perfect=0.00) 0.00 0.00 0.00 1.00 0.00 0.00
100101: disruption=1.00 (perfect=1.00) 1.00 0.00 0.00 0.00 0.00 0.00
110101: disruption=0.00 (perfect=0.00) 1.00 0.00 0.00 0.00 0.00 0.00
010101: disruption=1.00 (perfect=1.00) 0.00 1.00 0.00 0.00 0.00 0.00
011101: disruption=0.00 (perfect=0.00) 0.00 1.00 0.00 0.00 0.00 0.00
111101: disruption=1.00 (perfect=1.00) 1.00 0.00 0.00 0.00 0.00 0.00
101101: disruption=0.00 (perfect=0.00) 1.00 0.00 0.00 0.00 0.00 0.00
001101: disruption=1.00 (perfect=1.00) 0.00 0.00 1.00 0.00 0.00 0.00
001001: disruption=0.00 (perfect=0.00) 0.00 0.00 1.00 0.00 0.00 0.00
101001: disruption=1.00 (perfect=1.00) 1.00 0.00 0.00 0.00 0.00 0.00
111001: disruption=0.00 (perfect=0.00) 1.00 0.00 0.00 0.00 0.00 0.00
011001: disruption=1.00 (perfect=1.00) 0.00 1.00 0.00 0.00 0.00 0.00
010001: disruption=0.00 (perfect=0.00) 0.00 1.00 0.00 0.00 0.00 0.00
110001: disruption=1.00 (perfect=1.00) 1.00 0.00 0.00 0.00 0.00 0.00
100001: disruption=0.00 (perfect=0.00) 1.00 0.00 0.00 0.00 0.00 0.00
000001: disruption=1.00 (perfect=1.00) 0.00 0.00 0.00 0.00 0.00 1.00
000000: disruption=1.00 (perfect=1.00) 0.00 0.00 0.00 0.00 0.00 0.00
100000: disruption=1.00 (perfect=1.00) 1.00 0.00 0.00 0.00 0.00 0.00
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:83"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_89
#AT_START_90
at_fn_group_banner 90 'bundle.at:153' \
  "hrw bundle single link selection" "               " 8
at_xfail=no
(
  $as_echo "90. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/bundle.at:155: ovstest test-bundle 'symmetric_l4,60,hrw,ofport,NXM_NX_REG0[],slaves:1'"
at_fn_check_prepare_trace "bundle.at:155"
( $at_check_trace; ovstest test-bundle 'symmetric_l4,60,hrw,ofport,NXM_NX_REG0[],slaves:1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:155"
$at_failed && at_fn_log_failure
$at_traceon; }

# 1: disruption=1.00 (perfect=1.00) 1.00
# 0: disruption=1.00 (perfect=1.00) 0.00
# 1: disruption=1.00 (perfect=1.00) 1.00
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_90
#AT_START_91
at_fn_group_banner 91 'bundle.at:162' \
  "hrw bundle no link selection" "                   " 8
at_xfail=no
(
  $as_echo "91. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/bundle.at:164: ovstest test-bundle 'symmetric_l4,60,hrw,ofport,NXM_NX_REG0[],slaves:'"
at_fn_check_prepare_trace "bundle.at:164"
( $at_check_trace; ovstest test-bundle 'symmetric_l4,60,hrw,ofport,NXM_NX_REG0[],slaves:'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:164"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_91
#AT_START_92
at_fn_group_banner 92 'bundle.at:170' \
  "bundle action missing argument" "                 " 8
at_xfail=no
(
  $as_echo "92. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/bundle.at:172: ovs-ofctl parse-flow actions=bundle"
at_fn_check_prepare_trace "bundle.at:172"
( $at_check_trace; ovs-ofctl parse-flow actions=bundle
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: : not enough arguments to bundle action
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/bundle.at:172"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_92
#AT_START_93
at_fn_group_banner 93 'bundle.at:177' \
  "bundle action bad fields" "                       " 8
at_xfail=no
(
  $as_echo "93. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/bundle.at:179: ovs-ofctl parse-flow 'actions=bundle(xyzzy,60,hrw,ofport,slaves:1,2))'"
at_fn_check_prepare_trace "bundle.at:179"
( $at_check_trace; ovs-ofctl parse-flow 'actions=bundle(xyzzy,60,hrw,ofport,slaves:1,2))'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: xyzzy,60,hrw,ofport,slaves:1,2: unknown fields \`xyzzy'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/bundle.at:179"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_93
#AT_START_94
at_fn_group_banner 94 'bundle.at:184' \
  "bundle action bad algorithm" "                    " 8
at_xfail=no
(
  $as_echo "94. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/bundle.at:186: ovs-ofctl parse-flow 'actions=bundle(symmetric_l4,60,fubar,ofport,slaves:1,2))'"
at_fn_check_prepare_trace "bundle.at:186"
( $at_check_trace; ovs-ofctl parse-flow 'actions=bundle(symmetric_l4,60,fubar,ofport,slaves:1,2))'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: symmetric_l4,60,fubar,ofport,slaves:1,2: unknown algorithm \`fubar'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/bundle.at:186"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_94
#AT_START_95
at_fn_group_banner 95 'bundle.at:191' \
  "bundle action bad slave type" "                   " 8
at_xfail=no
(
  $as_echo "95. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/bundle.at:193: ovs-ofctl parse-flow 'actions=bundle(symmetric_l4,60,hrw,robot,slaves:1,2))'"
at_fn_check_prepare_trace "bundle.at:193"
( $at_check_trace; ovs-ofctl parse-flow 'actions=bundle(symmetric_l4,60,hrw,robot,slaves:1,2))'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: symmetric_l4,60,hrw,robot,slaves:1,2: unknown slave_type \`robot'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/bundle.at:193"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_95
#AT_START_96
at_fn_group_banner 96 'bundle.at:198' \
  "bundle action bad slave delimiter" "              " 8
at_xfail=no
(
  $as_echo "96. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/bundle.at:200: ovs-ofctl parse-flow 'actions=bundle(symmetric_l4,60,hrw,ofport,robot:1,2))'"
at_fn_check_prepare_trace "bundle.at:200"
( $at_check_trace; ovs-ofctl parse-flow 'actions=bundle(symmetric_l4,60,hrw,ofport,robot:1,2))'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: symmetric_l4,60,hrw,ofport,robot:1,2: missing slave delimiter, expected \`slaves' got \`robot'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/bundle.at:200"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_96
#AT_START_97
at_fn_group_banner 97 'bundle.at:211' \
  "bundle action with many ports" "                  " 8
at_xfail=no
(
  $as_echo "97. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/bundle.at:213: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "bundle.at:213"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:213"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bundle.at:213: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "bundle.at:213"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:213"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/bundle.at:213: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bundle.at:213"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:213"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/bundle.at:213: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "bundle.at:213"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:213"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bundle.at:213: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "bundle.at:213"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:213"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/bundle.at:213: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bundle.at:213"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:213"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/bundle.at:213: add_of_br 0  "
at_fn_check_prepare_trace "bundle.at:213"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:213"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/bundle.at:214: ovs-ofctl add-flow br0 'actions=set_field:0x1->metadata,set_field:0x2->metadata,set_field:0x3->metadata,set_field:0x4->metadata,bundle(symmetric_l4,0,hrw,ofport,slaves:[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])'"
at_fn_check_prepare_trace "bundle.at:214"
( $at_check_trace; ovs-ofctl add-flow br0 'actions=set_field:0x1->metadata,set_field:0x2->metadata,set_field:0x3->metadata,set_field:0x4->metadata,bundle(symmetric_l4,0,hrw,ofport,slaves:[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])'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:214"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bundle.at:215: ovs-ofctl dump-flows br0 --no-stats"
at_fn_check_prepare_trace "bundle.at:215"
( $at_check_trace; ovs-ofctl dump-flows br0 --no-stats
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " actions=load:0x1->OXM_OF_METADATA[],load:0x2->OXM_OF_METADATA[],load:0x3->OXM_OF_METADATA[],load:0x4->OXM_OF_METADATA[],bundle(symmetric_l4,0,hrw,ofport,slaves: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)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:215"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bundle.at:218: check_logs "
at_fn_check_prepare_trace "bundle.at:218"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:218"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/bundle.at:218: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "bundle.at:218"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:218"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/bundle.at:218: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "bundle.at:218"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:218"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bundle.at:218: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bundle.at:218: wait failed" >&5

    $as_echo "bundle.at:218" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bundle.at:218"
fi

   { set +x
$as_echo "$at_srcdir/bundle.at:218: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "bundle.at:218"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:218"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/bundle.at:218: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "bundle.at:218"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:218"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bundle.at:218: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bundle.at:218: wait failed" >&5

    $as_echo "bundle.at:218" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bundle.at:218"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_97
#AT_START_98
at_fn_group_banner 98 'bundle.at:221' \
  "bundle action with ports up and down" "           " 8
at_xfail=no
(
  $as_echo "98. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/bundle.at:223: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "bundle.at:223"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:223"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bundle.at:223: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "bundle.at:223"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:223"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/bundle.at:223: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bundle.at:223"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:223"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/bundle.at:223: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "bundle.at:223"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:223"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bundle.at:223: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "bundle.at:223"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:223"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/bundle.at:223: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bundle.at:223"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:223"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/bundle.at:223: add_of_br 0     add-port br0 p1 -- set Interface p1 type=dummy -- \\
    set Interface p1 ofport_request=1 -- \\
    add-port br0 p2 -- set Interface p2 type=dummy -- \\
    set Interface p2 ofport_request=2
 "
at_fn_check_prepare_notrace 'an embedded newline' "bundle.at:223"
( $at_check_trace; add_of_br 0     add-port br0 p1 -- set Interface p1 type=dummy -- \
    set Interface p1 ofport_request=1 -- \
    add-port br0 p2 -- set Interface p2 type=dummy -- \
    set Interface p2 ofport_request=2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:223"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/bundle.at:229: ovs-ofctl add-flow br0 'actions=bundle(eth_src,50,active_backup,ofport,slaves:1,2)'"
at_fn_check_prepare_trace "bundle.at:229"
( $at_check_trace; ovs-ofctl add-flow br0 'actions=bundle(eth_src,50,active_backup,ofport,slaves:1,2)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:229"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bundle.at:230: ovs-ofctl mod-port br0 p1 up"
at_fn_check_prepare_trace "bundle.at:230"
( $at_check_trace; ovs-ofctl mod-port br0 p1 up
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:230"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bundle.at:231: ovs-ofctl mod-port br0 p2 up"
at_fn_check_prepare_trace "bundle.at:231"
( $at_check_trace; ovs-ofctl mod-port br0 p2 up
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:231"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bundle.at:232: ovs-appctl ofproto/trace br0 'in_port=LOCAL,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:06'"
at_fn_check_prepare_trace "bundle.at:232"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=LOCAL,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:06'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:232"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bundle.at:233: tail -1 stdout"
at_fn_check_prepare_trace "bundle.at:233"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:233"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bundle.at:236: ovs-ofctl mod-port br0 p1 down"
at_fn_check_prepare_trace "bundle.at:236"
( $at_check_trace; ovs-ofctl mod-port br0 p1 down
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:236"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bundle.at:237: ovs-appctl ofproto/trace br0 'in_port=LOCAL,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:06'"
at_fn_check_prepare_trace "bundle.at:237"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=LOCAL,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:06'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:237"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bundle.at:238: tail -1 stdout"
at_fn_check_prepare_trace "bundle.at:238"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:238"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bundle.at:241: ovs-ofctl mod-port br0 p2 down"
at_fn_check_prepare_trace "bundle.at:241"
( $at_check_trace; ovs-ofctl mod-port br0 p2 down
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:241"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bundle.at:242: ovs-appctl ofproto/trace br0 'in_port=LOCAL,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:06'"
at_fn_check_prepare_trace "bundle.at:242"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=LOCAL,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:06'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:242"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bundle.at:243: tail -1 stdout"
at_fn_check_prepare_trace "bundle.at:243"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:243"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bundle.at:246: ovs-ofctl mod-port br0 p1 up"
at_fn_check_prepare_trace "bundle.at:246"
( $at_check_trace; ovs-ofctl mod-port br0 p1 up
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:246"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bundle.at:247: ovs-appctl ofproto/trace br0 'in_port=LOCAL,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:06'"
at_fn_check_prepare_trace "bundle.at:247"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=LOCAL,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:06'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:247"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bundle.at:248: tail -1 stdout"
at_fn_check_prepare_trace "bundle.at:248"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:248"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bundle.at:251: ovs-ofctl mod-port br0 p2 up"
at_fn_check_prepare_trace "bundle.at:251"
( $at_check_trace; ovs-ofctl mod-port br0 p2 up
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:251"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bundle.at:252: ovs-appctl ofproto/trace br0 'in_port=LOCAL,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:06'"
at_fn_check_prepare_trace "bundle.at:252"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=LOCAL,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:06'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:252"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bundle.at:253: tail -1 stdout"
at_fn_check_prepare_trace "bundle.at:253"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:253"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bundle.at:256: check_logs "
at_fn_check_prepare_trace "bundle.at:256"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:256"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/bundle.at:256: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "bundle.at:256"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:256"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/bundle.at:256: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "bundle.at:256"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:256"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bundle.at:256: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bundle.at:256: wait failed" >&5

    $as_echo "bundle.at:256" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bundle.at:256"
fi

   { set +x
$as_echo "$at_srcdir/bundle.at:256: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "bundle.at:256"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:256"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/bundle.at:256: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "bundle.at:256"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:256"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bundle.at:256: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bundle.at:256: wait failed" >&5

    $as_echo "bundle.at:256" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bundle.at:256"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_98
#AT_START_99
at_fn_group_banner 99 'bundle.at:259' \
  "bundle_load action with ports down" "             " 8
at_xfail=no
(
  $as_echo "99. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/bundle.at:261: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "bundle.at:261"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:261"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bundle.at:261: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "bundle.at:261"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:261"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/bundle.at:261: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bundle.at:261"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:261"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/bundle.at:261: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "bundle.at:261"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:261"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bundle.at:261: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "bundle.at:261"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:261"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/bundle.at:261: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bundle.at:261"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:261"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/bundle.at:261: add_of_br 0     add-port br0 p1 -- set Interface p1 type=dummy -- \\
    set Interface p1 ofport_request=1 -- \\
    add-port br0 p2 -- set Interface p2 type=dummy -- \\
    set Interface p2 ofport_request=2
 "
at_fn_check_prepare_notrace 'an embedded newline' "bundle.at:261"
( $at_check_trace; add_of_br 0     add-port br0 p1 -- set Interface p1 type=dummy -- \
    set Interface p1 ofport_request=1 -- \
    add-port br0 p2 -- set Interface p2 type=dummy -- \
    set Interface p2 ofport_request=2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:261"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/bundle.at:267: ovs-ofctl add-flow br0 'actions=bundle_load(eth_src,50,hrw,ofport,OXM_OF_ETH_SRC[0..15],slaves:1,2)'"
at_fn_check_prepare_trace "bundle.at:267"
( $at_check_trace; ovs-ofctl add-flow br0 'actions=bundle_load(eth_src,50,hrw,ofport,OXM_OF_ETH_SRC[0..15],slaves:1,2)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:267"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bundle.at:268: ovs-ofctl mod-port br0 p1 down"
at_fn_check_prepare_trace "bundle.at:268"
( $at_check_trace; ovs-ofctl mod-port br0 p1 down
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:268"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bundle.at:269: ovs-ofctl mod-port br0 p2 down"
at_fn_check_prepare_trace "bundle.at:269"
( $at_check_trace; ovs-ofctl mod-port br0 p2 down
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:269"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bundle.at:270: ovs-appctl ofproto/trace br0 'in_port=LOCAL,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:06'"
at_fn_check_prepare_trace "bundle.at:270"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=LOCAL,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:06'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:270"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bundle.at:271: grep Final stdout"
at_fn_check_prepare_trace "bundle.at:271"
( $at_check_trace; grep Final stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Final flow: in_port=LOCAL,vlan_tci=0x0000,dl_src=50:54:00:00:ff:ff,dl_dst=50:54:00:00:00:06,dl_type=0x0000
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:271"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bundle.at:274: check_logs "
at_fn_check_prepare_trace "bundle.at:274"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:274"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/bundle.at:274: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "bundle.at:274"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:274"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/bundle.at:274: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "bundle.at:274"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:274"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bundle.at:274: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bundle.at:274: wait failed" >&5

    $as_echo "bundle.at:274" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bundle.at:274"
fi

   { set +x
$as_echo "$at_srcdir/bundle.at:274: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "bundle.at:274"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:274"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/bundle.at:274: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "bundle.at:274"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bundle.at:274"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bundle.at:274: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bundle.at:274: wait failed" >&5

    $as_echo "bundle.at:274" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bundle.at:274"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_99
#AT_START_100
at_fn_group_banner 100 'classifier.at:2' \
  "flow classifier - empty" "                        " 9
at_xfail=no
(
  $as_echo "100. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   { set +x
$as_echo "$at_srcdir/classifier.at:2: ovstest test-classifier empty"
at_fn_check_prepare_trace "classifier.at:2"
( $at_check_trace; ovstest test-classifier empty
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:2"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_100
#AT_START_101
at_fn_group_banner 101 'classifier.at:2' \
  "flow classifier - destroy null" "                 " 9
at_xfail=no
(
  $as_echo "101. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   { set +x
$as_echo "$at_srcdir/classifier.at:2: ovstest test-classifier destroy-null"
at_fn_check_prepare_trace "classifier.at:2"
( $at_check_trace; ovstest test-classifier destroy-null
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:2"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_101
#AT_START_102
at_fn_group_banner 102 'classifier.at:2' \
  "flow classifier - single rule" "                  " 9
at_xfail=no
(
  $as_echo "102. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   { set +x
$as_echo "$at_srcdir/classifier.at:2: ovstest test-classifier single-rule"
at_fn_check_prepare_trace "classifier.at:2"
( $at_check_trace; ovstest test-classifier single-rule
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:2"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_102
#AT_START_103
at_fn_group_banner 103 'classifier.at:2' \
  "flow classifier - rule replacement" "             " 9
at_xfail=no
(
  $as_echo "103. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   { set +x
$as_echo "$at_srcdir/classifier.at:2: ovstest test-classifier rule-replacement"
at_fn_check_prepare_trace "classifier.at:2"
( $at_check_trace; ovstest test-classifier rule-replacement
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:2"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_103
#AT_START_104
at_fn_group_banner 104 'classifier.at:2' \
  "flow classifier - many rules in one list" "       " 9
at_xfail=no
(
  $as_echo "104. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   { set +x
$as_echo "$at_srcdir/classifier.at:2: ovstest test-classifier many-rules-in-one-list"
at_fn_check_prepare_trace "classifier.at:2"
( $at_check_trace; ovstest test-classifier many-rules-in-one-list
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:2"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_104
#AT_START_105
at_fn_group_banner 105 'classifier.at:2' \
  "flow classifier - versioned many rules in one list" "" 9
at_xfail=no
(
  $as_echo "105. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   { set +x
$as_echo "$at_srcdir/classifier.at:2: ovstest test-classifier --versioned many-rules-in-one-list"
at_fn_check_prepare_trace "classifier.at:2"
( $at_check_trace; ovstest test-classifier --versioned many-rules-in-one-list
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:2"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_105
#AT_START_106
at_fn_group_banner 106 'classifier.at:2' \
  "flow classifier - many rules in one table" "      " 9
at_xfail=no
(
  $as_echo "106. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   { set +x
$as_echo "$at_srcdir/classifier.at:2: ovstest test-classifier many-rules-in-one-table"
at_fn_check_prepare_trace "classifier.at:2"
( $at_check_trace; ovstest test-classifier many-rules-in-one-table
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:2"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_106
#AT_START_107
at_fn_group_banner 107 'classifier.at:2' \
  "flow classifier - versioned many rules in one table" "" 9
at_xfail=no
(
  $as_echo "107. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   { set +x
$as_echo "$at_srcdir/classifier.at:2: ovstest test-classifier --versioned many-rules-in-one-table"
at_fn_check_prepare_trace "classifier.at:2"
( $at_check_trace; ovstest test-classifier --versioned many-rules-in-one-table
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:2"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_107
#AT_START_108
at_fn_group_banner 108 'classifier.at:2' \
  "flow classifier - many rules in two tables" "     " 9
at_xfail=no
(
  $as_echo "108. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   { set +x
$as_echo "$at_srcdir/classifier.at:2: ovstest test-classifier many-rules-in-two-tables"
at_fn_check_prepare_trace "classifier.at:2"
( $at_check_trace; ovstest test-classifier many-rules-in-two-tables
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:2"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_108
#AT_START_109
at_fn_group_banner 109 'classifier.at:2' \
  "flow classifier - versioned many rules in two tables" "" 9
at_xfail=no
(
  $as_echo "109. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   { set +x
$as_echo "$at_srcdir/classifier.at:2: ovstest test-classifier --versioned many-rules-in-two-tables"
at_fn_check_prepare_trace "classifier.at:2"
( $at_check_trace; ovstest test-classifier --versioned many-rules-in-two-tables
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:2"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_109
#AT_START_110
at_fn_group_banner 110 'classifier.at:2' \
  "flow classifier - many rules in five tables" "    " 9
at_xfail=no
(
  $as_echo "110. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   { set +x
$as_echo "$at_srcdir/classifier.at:2: ovstest test-classifier many-rules-in-five-tables"
at_fn_check_prepare_trace "classifier.at:2"
( $at_check_trace; ovstest test-classifier many-rules-in-five-tables
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:2"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_110
#AT_START_111
at_fn_group_banner 111 'classifier.at:2' \
  "flow classifier - versioned many rules in five tables" "" 9
at_xfail=no
(
  $as_echo "111. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   { set +x
$as_echo "$at_srcdir/classifier.at:2: ovstest test-classifier --versioned many-rules-in-five-tables"
at_fn_check_prepare_trace "classifier.at:2"
( $at_check_trace; ovstest test-classifier --versioned many-rules-in-five-tables
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:2"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_111
#AT_START_112
at_fn_group_banner 112 'classifier.at:21' \
  "miniflow - miniflow" "                            " 10
at_xfail=no
(
  $as_echo "112. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   { set +x
$as_echo "$at_srcdir/classifier.at:21: ovstest test-classifier miniflow"
at_fn_check_prepare_trace "classifier.at:21"
( $at_check_trace; ovstest test-classifier miniflow
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:21"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_112
#AT_START_113
at_fn_group_banner 113 'classifier.at:21' \
  "miniflow - minimask_has_extra" "                  " 10
at_xfail=no
(
  $as_echo "113. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   { set +x
$as_echo "$at_srcdir/classifier.at:21: ovstest test-classifier minimask_has_extra"
at_fn_check_prepare_trace "classifier.at:21"
( $at_check_trace; ovstest test-classifier minimask_has_extra
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:21"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_113
#AT_START_114
at_fn_group_banner 114 'classifier.at:21' \
  "miniflow - minimask_combine" "                    " 10
at_xfail=no
(
  $as_echo "114. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   { set +x
$as_echo "$at_srcdir/classifier.at:21: ovstest test-classifier minimask_combine"
at_fn_check_prepare_trace "classifier.at:21"
( $at_check_trace; ovstest test-classifier minimask_combine
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:21"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_114
#AT_START_115
at_fn_group_banner 115 'classifier.at:31' \
  "flow classifier - lookup segmentation" "          " 11
at_xfail=no
(
  $as_echo "115. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/classifier.at:32: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "classifier.at:32"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/classifier.at:32: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "classifier.at:32"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/classifier.at:32: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "classifier.at:32"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/classifier.at:32: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "classifier.at:32"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:32"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/classifier.at:32: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "classifier.at:32"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:32"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/classifier.at:32: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "classifier.at:32"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:32"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/classifier.at:32: add_of_br 0  "
at_fn_check_prepare_trace "classifier.at:32"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:32"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3
cat >flows.txt <<'_ATEOF'
table=0 in_port=1 priority=16,tcp,nw_dst=10.1.0.0/255.255.0.0,action=output(3)
table=0 in_port=1 priority=32,tcp,nw_dst=10.1.2.15,action=output(2)
table=0 in_port=1 priority=33,tcp,nw_dst=10.1.2.15,tp_dst=80,action=drop
table=0 in_port=1 priority=0,ip,action=drop
table=0 in_port=2 priority=16,tcp,nw_dst=192.168.0.0/255.255.0.0,action=output(1)
table=0 in_port=2 priority=0,ip,action=drop
table=0 in_port=3 priority=16,tcp,nw_src=10.1.0.0/255.255.0.0,action=output(1)
table=0 in_port=3 priority=0,ip,action=drop
_ATEOF

{ set +x
$as_echo "$at_srcdir/classifier.at:44: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "classifier.at:44"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:44"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/classifier.at:45: ovs-appctl ofproto/trace br0 'in_port=2,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=80'"
at_fn_check_prepare_trace "classifier.at:45"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=2,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=80'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:45"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/classifier.at:46: tail -2 stdout"
at_fn_check_prepare_trace "classifier.at:46"
( $at_check_trace; tail -2 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Megaflow: recirc_id=0,eth,tcp,in_port=2,nw_dst=192.168.0.0/16,nw_frag=no
Datapath actions: 1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:46"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/classifier.at:50: ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=11.1.2.15,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=80'"
at_fn_check_prepare_trace "classifier.at:50"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=11.1.2.15,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=80'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:50"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/classifier.at:51: tail -2 stdout"
at_fn_check_prepare_trace "classifier.at:51"
( $at_check_trace; tail -2 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Megaflow: recirc_id=0,eth,ip,in_port=1,nw_dst=11.0.0.0/8,nw_frag=no
Datapath actions: drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:51"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/classifier.at:55: ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=10.1.2.15,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=80'"
at_fn_check_prepare_trace "classifier.at:55"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=10.1.2.15,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=80'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:55"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/classifier.at:56: tail -2 stdout"
at_fn_check_prepare_trace "classifier.at:56"
( $at_check_trace; tail -2 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Megaflow: recirc_id=0,eth,tcp,in_port=1,nw_dst=10.1.2.15,nw_frag=no,tp_dst=80
Datapath actions: drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:56"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/classifier.at:60: ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=10.1.2.15,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=79'"
at_fn_check_prepare_trace "classifier.at:60"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=10.1.2.15,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=79'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:60"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/classifier.at:61: tail -2 stdout"
at_fn_check_prepare_trace "classifier.at:61"
( $at_check_trace; tail -2 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Megaflow: recirc_id=0,eth,tcp,in_port=1,nw_dst=10.1.2.15,nw_frag=no,tp_dst=0x40/0xfff0
Datapath actions: 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:61"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/classifier.at:65: check_logs "
at_fn_check_prepare_trace "classifier.at:65"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:65"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/classifier.at:65: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "classifier.at:65"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:65"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/classifier.at:65: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "classifier.at:65"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:65"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "classifier.at:65: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "classifier.at:65: wait failed" >&5

    $as_echo "classifier.at:65" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/classifier.at:65"
fi

   { set +x
$as_echo "$at_srcdir/classifier.at:65: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "classifier.at:65"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:65"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/classifier.at:65: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "classifier.at:65"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:65"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "classifier.at:65: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "classifier.at:65: wait failed" >&5

    $as_echo "classifier.at:65" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/classifier.at:65"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_115
#AT_START_116
at_fn_group_banner 116 'classifier.at:69' \
  "flow classifier - prefix lookup" "                " 12
at_xfail=no
(
  $as_echo "116. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/classifier.at:70: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "classifier.at:70"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:70"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/classifier.at:70: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "classifier.at:70"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:70"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/classifier.at:70: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "classifier.at:70"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:70"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/classifier.at:70: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "classifier.at:70"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:70"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/classifier.at:70: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "classifier.at:70"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:70"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/classifier.at:70: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "classifier.at:70"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:70"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/classifier.at:70: add_of_br 0  "
at_fn_check_prepare_trace "classifier.at:70"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:70"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3
{ set +x
$as_echo "$at_srcdir/classifier.at:72: ovs-vsctl set Bridge br0 flow_tables:0=@N1 -- --id=@N1 create Flow_Table name=t0"
at_fn_check_prepare_trace "classifier.at:72"
( $at_check_trace; ovs-vsctl set Bridge br0 flow_tables:0=@N1 -- --id=@N1 create Flow_Table name=t0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:72"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

cat >flows.txt <<'_ATEOF'
table=0 in_port=1 priority=16,tcp,nw_dst=10.1.0.0/255.255.0.0,action=output(3)
table=0 in_port=1 priority=32,tcp,nw_dst=10.1.2.0/255.255.255.0,tp_src=79,action=output(2)
table=0 in_port=1 priority=33,tcp,nw_dst=10.1.2.15,tp_dst=80,action=drop
table=0 in_port=1 priority=33,tcp,nw_dst=10.1.2.15,tp_dst=8080,action=output(2)
table=0 in_port=1 priority=33,tcp,nw_dst=10.1.2.15,tp_dst=192,action=output(2)
table=0 in_port=1 priority=0,ip,action=drop
table=0 in_port=2 priority=16,tcp,nw_dst=192.168.0.0/255.255.0.0,action=output(1)
table=0 in_port=2 priority=0,ip,action=drop
table=0 in_port=3 priority=16,tcp,nw_src=10.1.0.0/255.255.0.0,action=output(1)
table=0 in_port=3 priority=0,ip,action=drop
_ATEOF

{ set +x
$as_echo "$at_srcdir/classifier.at:85: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "classifier.at:85"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:85"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# nw_dst and nw_src should be on by default
{ set +x
$as_echo "$at_srcdir/classifier.at:88: ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=80'"
at_fn_check_prepare_trace "classifier.at:88"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=80'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:88"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/classifier.at:89: tail -2 stdout"
at_fn_check_prepare_trace "classifier.at:89"
( $at_check_trace; tail -2 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Megaflow: recirc_id=0,eth,tcp,in_port=1,nw_dst=192.168.0.0/16,nw_frag=no
Datapath actions: drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:89"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/classifier.at:94: ovs-vsctl set Flow_Table t0 prefixes=ipv6_label"
at_fn_check_prepare_trace "classifier.at:94"
( $at_check_trace; ovs-vsctl set Flow_Table t0 prefixes=ipv6_label
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:94"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/classifier.at:95: ovs-vsctl set Flow_Table t0 prefixes=nw_dst,nw_src,tun_dst,tun_src"
at_fn_check_prepare_trace "classifier.at:95"
( $at_check_trace; ovs-vsctl set Flow_Table t0 prefixes=nw_dst,nw_src,tun_dst,tun_src
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: nw_dst,nw_src,tun_dst,tun_src: 4 value(s) specified but the maximum number is 3
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/classifier.at:95"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/classifier.at:98: ovs-vsctl set Flow_Table t0 prefixes=nw_dst,nw_dst"
at_fn_check_prepare_trace "classifier.at:98"
( $at_check_trace; ovs-vsctl set Flow_Table t0 prefixes=nw_dst,nw_dst
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: nw_dst,nw_dst: set contains duplicate value
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/classifier.at:98"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/classifier.at:102: ovs-vsctl set Flow_Table t0 prefixes=nw_dst"
at_fn_check_prepare_trace "classifier.at:102"
( $at_check_trace; ovs-vsctl set Flow_Table t0 prefixes=nw_dst
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:102"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/classifier.at:103: ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=80'"
at_fn_check_prepare_trace "classifier.at:103"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=80'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:103"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/classifier.at:104: tail -2 stdout"
at_fn_check_prepare_trace "classifier.at:104"
( $at_check_trace; tail -2 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Megaflow: recirc_id=0,eth,tcp,in_port=1,nw_dst=192.168.0.0/16,nw_frag=no
Datapath actions: drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:104"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/classifier.at:108: ovs-appctl ofproto/trace br0 'in_port=2,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=80'"
at_fn_check_prepare_trace "classifier.at:108"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=2,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=80'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:108"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/classifier.at:109: tail -2 stdout"
at_fn_check_prepare_trace "classifier.at:109"
( $at_check_trace; tail -2 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Megaflow: recirc_id=0,eth,tcp,in_port=2,nw_dst=192.168.0.0/16,nw_frag=no
Datapath actions: 1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:109"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/classifier.at:113: ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=10.1.2.15,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=80'"
at_fn_check_prepare_trace "classifier.at:113"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=10.1.2.15,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=80'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:113"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/classifier.at:114: tail -2 stdout"
at_fn_check_prepare_trace "classifier.at:114"
( $at_check_trace; tail -2 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Megaflow: recirc_id=0,eth,tcp,in_port=1,nw_dst=10.1.2.15,nw_frag=no,tp_dst=80
Datapath actions: drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:114"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/classifier.at:118: ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=10.1.2.15,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=79'"
at_fn_check_prepare_trace "classifier.at:118"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=10.1.2.15,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=79'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:118"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/classifier.at:119: tail -2 stdout"
at_fn_check_prepare_trace "classifier.at:119"
( $at_check_trace; tail -2 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Megaflow: recirc_id=0,eth,tcp,in_port=1,nw_dst=10.1.2.15,nw_frag=no,tp_src=0x0/0xffc0,tp_dst=0x40/0xfff0
Datapath actions: 3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:119"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/classifier.at:123: ovs-vsctl set Flow_Table t0 prefixes=none"
at_fn_check_prepare_trace "classifier.at:123"
( $at_check_trace; ovs-vsctl set Flow_Table t0 prefixes=none
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:123"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/classifier.at:124: ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=10.1.3.16,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=79'"
at_fn_check_prepare_trace "classifier.at:124"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=10.1.3.16,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=79'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:124"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/classifier.at:125: tail -2 stdout"
at_fn_check_prepare_trace "classifier.at:125"
( $at_check_trace; tail -2 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Megaflow: recirc_id=0,eth,tcp,in_port=1,nw_dst=10.1.3.16,nw_frag=no
Datapath actions: 3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:125"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/classifier.at:129: check_logs \"/'prefixes' with incompatible field: ipv6_label/d\""
at_fn_check_prepare_trace "classifier.at:129"
( $at_check_trace; check_logs "/'prefixes' with incompatible field: ipv6_label/d"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:129"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/classifier.at:129: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "classifier.at:129"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:129"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/classifier.at:129: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "classifier.at:129"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:129"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "classifier.at:129: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "classifier.at:129: wait failed" >&5

    $as_echo "classifier.at:129" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/classifier.at:129"
fi

   { set +x
$as_echo "$at_srcdir/classifier.at:129: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "classifier.at:129"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:129"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/classifier.at:129: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "classifier.at:129"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:129"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "classifier.at:129: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "classifier.at:129: wait failed" >&5

    $as_echo "classifier.at:129" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/classifier.at:129"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_116
#AT_START_117
at_fn_group_banner 117 'classifier.at:134' \
  "single conjunctive match" "                       " 13
at_xfail=no
(
  $as_echo "117. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/classifier.at:135: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "classifier.at:135"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:135"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/classifier.at:135: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "classifier.at:135"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:135"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/classifier.at:135: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "classifier.at:135"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:135"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/classifier.at:135: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "classifier.at:135"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:135"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/classifier.at:135: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "classifier.at:135"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:135"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/classifier.at:135: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "classifier.at:135"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:135"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/classifier.at:135: add_of_br 0  "
at_fn_check_prepare_trace "classifier.at:135"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:135"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3 4 5
cat >flows.txt <<'_ATEOF'
conj_id=1,actions=3
priority=100,ip,ip_src=10.0.0.1,actions=conjunction(1,1/2)
priority=100,ip,ip_src=10.0.0.4,actions=conjunction(1,1/2)
priority=100,ip,ip_src=10.0.0.6,actions=conjunction(1,1/2)
priority=100,ip,ip_src=10.0.0.7,actions=conjunction(1,1/2)
priority=100,ip,ip_dst=10.0.0.2,actions=conjunction(1,2/2)
priority=100,ip,ip_dst=10.0.0.5,actions=conjunction(1,2/2)
priority=100,ip,ip_dst=10.0.0.7,actions=conjunction(1,2/2)
priority=100,ip,ip_dst=10.0.0.8,actions=conjunction(1,2/2)
priority=100,ip,ip_src=10.0.0.1,ip_dst=10.0.0.4,actions=4
priority=100,ip,ip_src=10.0.0.3,ip_dst=10.0.0.5,actions=5

priority=0 actions=2
_ATEOF

{ set +x
$as_echo "$at_srcdir/classifier.at:152: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "classifier.at:152"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:152"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

for src in 0 1 2 3 4 5 6 7; do
    for dst in 0 1 2 3 4 5 6 7; do
        if test $src$dst = 14; then
            out=4
        elif test $src$dst = 35; then
            out=5
        else
            out=2
            case $src in [1467]) case $dst in [2578]) out=3 ;; esac ;; esac
        fi
        { set +x
$as_echo "$at_srcdir/classifier.at:163: ovs-appctl ofproto/trace br0 \"in_port=1,dl_type=0x0800,nw_src=10.0.0.\$src,nw_dst=10.0.0.\$dst\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace br0 \"in_port=1,dl_type=0x0800,nw_src=10.0.0.$src,nw_dst=10.0.0.$dst\"" "classifier.at:163"
( $at_check_trace; ovs-appctl ofproto/trace br0 "in_port=1,dl_type=0x0800,nw_src=10.0.0.$src,nw_dst=10.0.0.$dst"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:163"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

        { set +x
$as_echo "$at_srcdir/classifier.at:164: tail -1 stdout"
at_fn_check_prepare_trace "classifier.at:164"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: $out
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:164"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    done
done
{ set +x
$as_echo "$at_srcdir/classifier.at:168: check_logs "
at_fn_check_prepare_trace "classifier.at:168"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:168"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/classifier.at:168: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "classifier.at:168"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:168"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/classifier.at:168: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "classifier.at:168"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:168"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "classifier.at:168: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "classifier.at:168: wait failed" >&5

    $as_echo "classifier.at:168" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/classifier.at:168"
fi

   { set +x
$as_echo "$at_srcdir/classifier.at:168: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "classifier.at:168"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:168"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/classifier.at:168: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "classifier.at:168"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:168"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "classifier.at:168: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "classifier.at:168: wait failed" >&5

    $as_echo "classifier.at:168" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/classifier.at:168"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_117
#AT_START_118
at_fn_group_banner 118 'classifier.at:171' \
  "multiple conjunctive match" "                     " 13
at_xfail=no
(
  $as_echo "118. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/classifier.at:172: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "classifier.at:172"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:172"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/classifier.at:172: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "classifier.at:172"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:172"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/classifier.at:172: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "classifier.at:172"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:172"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/classifier.at:172: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "classifier.at:172"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:172"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/classifier.at:172: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "classifier.at:172"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:172"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/classifier.at:172: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "classifier.at:172"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:172"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/classifier.at:172: add_of_br 0  "
at_fn_check_prepare_trace "classifier.at:172"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:172"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3 4 5
cat >flows.txt <<'_ATEOF'
conj_id=1,actions=1
conj_id=2,actions=2
conj_id=3,actions=3

priority=5,ip,ip_src=20.0.0.0/8,actions=conjunction(1,1/2),conjunction(2,1/2)
priority=5,ip,ip_src=10.1.0.0/16,actions=conjunction(1,1/2),conjunction(3,2/3)
priority=5,ip,ip_src=10.2.0.0/16,actions=conjunction(1,1/2),conjunction(2,1/2)
priority=5,ip,ip_src=10.1.3.0/24,actions=conjunction(1,1/2),conjunction(3,2/3)
priority=5,ip,ip_src=10.1.4.5/32,actions=conjunction(1,1/2),conjunction(2,1/2)

priority=5,ip,ip_dst=20.0.0.0/8,actions=conjunction(1,2/2)
priority=5,ip,ip_dst=10.1.0.0/16,actions=conjunction(1,2/2)
priority=5,ip,ip_dst=10.2.0.0/16,actions=conjunction(1,2/2)
priority=5,ip,ip_dst=10.1.3.0/24,actions=conjunction(1,2/2)
priority=5,ip,ip_dst=10.1.4.5/32,actions=conjunction(1,2/2)
priority=5,ip,ip_dst=30.0.0.0/8,actions=conjunction(2,2/2),conjunction(3,1/3)
priority=5,ip,ip_dst=40.5.0.0/16,actions=conjunction(2,2/2),conjunction(3,1/3)

priority=5,tcp,tcp_dst=80,actions=conjunction(3,3/3)
priority=5,tcp,tcp_dst=443,actions=conjunction(3,3/3)

priority=5,tcp,tcp_src=80,actions=conjunction(3,3/3)
priority=5,tcp,tcp_src=443,actions=conjunction(3,3/3)

priority=0,actions=4
_ATEOF

{ set +x
$as_echo "$at_srcdir/classifier.at:201: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "classifier.at:201"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:201"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

for a0 in \
    '1 20.0.0.1' \
    '2 10.1.0.1' \
    '3 10.2.0.1' \
    '4 10.1.3.1' \
    '5 10.1.4.5' \
    '6 1.2.3.4'
do
    for b0 in \
        '1 20.0.0.1' \
        '2 10.1.0.1' \
        '3 10.2.0.1' \
        '4 10.1.3.1' \
        '5 10.1.4.5' \
        '6 30.0.0.1' \
        '7 40.5.0.1' \
        '8 1.2.3.4'
    do
        for c0 in '1 80' '2 443' '3 8080'; do
            for d0 in '1 80' '2 443' '3 8080'; do
                set $a0; a=$1 ip_src=$2
                set $b0; b=$1 ip_dst=$2
                set $c0; c=$1 tcp_src=$2
                set $d0; d=$1 tcp_dst=$2
                case $a$b$c$d in
                    [12345][12345]??) out=1 ;;
                    [135][67]??) out=2 ;;
                    [24][67][12]? | [24][67]?[12]) out=3 ;;
                    *) out=4
                esac
                { set +x
$as_echo "$at_srcdir/classifier.at:232: ovs-appctl ofproto/trace br0 \"in_port=5,dl_type=0x0800,nw_proto=6,nw_src=\$ip_src,nw_dst=\$ip_dst,tcp_src=\$tcp_src,tcp_dst=\$tcp_dst\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace br0 \"in_port=5,dl_type=0x0800,nw_proto=6,nw_src=$ip_src,nw_dst=$ip_dst,tcp_src=$tcp_src,tcp_dst=$tcp_dst\"" "classifier.at:232"
( $at_check_trace; ovs-appctl ofproto/trace br0 "in_port=5,dl_type=0x0800,nw_proto=6,nw_src=$ip_src,nw_dst=$ip_dst,tcp_src=$tcp_src,tcp_dst=$tcp_dst"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:232"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

                { set +x
$as_echo "$at_srcdir/classifier.at:233: tail -1 stdout"
at_fn_check_prepare_trace "classifier.at:233"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: $out
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:233"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

            done
        done
    done
done
{ set +x
$as_echo "$at_srcdir/classifier.at:239: check_logs "
at_fn_check_prepare_trace "classifier.at:239"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:239"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/classifier.at:239: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "classifier.at:239"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:239"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/classifier.at:239: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "classifier.at:239"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:239"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "classifier.at:239: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "classifier.at:239: wait failed" >&5

    $as_echo "classifier.at:239" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/classifier.at:239"
fi

   { set +x
$as_echo "$at_srcdir/classifier.at:239: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "classifier.at:239"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:239"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/classifier.at:239: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "classifier.at:239"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:239"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "classifier.at:239: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "classifier.at:239: wait failed" >&5

    $as_echo "classifier.at:239" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/classifier.at:239"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_118
#AT_START_119
at_fn_group_banner 119 'classifier.at:247' \
  "conjunctive match priority fallback" "            " 13
at_xfail=no
(
  $as_echo "119. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/classifier.at:248: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "classifier.at:248"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:248"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/classifier.at:248: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "classifier.at:248"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:248"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/classifier.at:248: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "classifier.at:248"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:248"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/classifier.at:248: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "classifier.at:248"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:248"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/classifier.at:248: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "classifier.at:248"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:248"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/classifier.at:248: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "classifier.at:248"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:248"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/classifier.at:248: add_of_br 0  "
at_fn_check_prepare_trace "classifier.at:248"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:248"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3 4 5 6 7
cat >flows.txt <<'_ATEOF'
conj_id=1,actions=1
conj_id=3,actions=3

priority=5,ip,ip_src=10.0.0.1,actions=conjunction(1,1/2)
priority=5,ip,ip_src=10.0.0.2,actions=conjunction(1,1/2)
priority=5,ip,ip_dst=10.0.0.1,actions=conjunction(1,2/2)
priority=5,ip,ip_dst=10.0.0.2,actions=conjunction(1,2/2)
priority=5,ip,ip_dst=10.0.0.3,actions=conjunction(1,2/2)

priority=4,ip,ip_src=10.0.0.3,ip_dst=10.0.0.2,actions=2

priority=3,ip,ip_src=10.0.0.1,actions=conjunction(3,1/2)
priority=3,ip,ip_src=10.0.0.3,actions=conjunction(3,1/2)
priority=3,ip,ip_dst=10.0.0.2,actions=conjunction(3,2/2)
priority=3,ip,ip_dst=10.0.0.3,actions=conjunction(3,2/2)
priority=3,ip,ip_dst=10.0.0.4,actions=conjunction(3,2/2)

priority=2,ip,ip_dst=10.0.0.1,actions=4

priority=1,ip,ip_src=10.0.0.1,ip_dst=10.0.0.5,actions=5

priority=0,actions=6
_ATEOF

{ set +x
$as_echo "$at_srcdir/classifier.at:274: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "classifier.at:274"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:274"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

for src in 0 1 2 3; do
    for dst in 0 1 2 3 4 5; do
        case $src$dst in
            [12][123]) out=1 ;;
            32) out=2 ;;
            [13][234]) out=3 ;;
	    ?1) out=4 ;;
            15) out=5 ;;
            *) out=6
        esac
        { set +x
$as_echo "$at_srcdir/classifier.at:285: ovs-appctl ofproto/trace br0 \"in_port=7,dl_type=0x0800,nw_src=10.0.0.\$src,nw_dst=10.0.0.\$dst\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace br0 \"in_port=7,dl_type=0x0800,nw_src=10.0.0.$src,nw_dst=10.0.0.$dst\"" "classifier.at:285"
( $at_check_trace; ovs-appctl ofproto/trace br0 "in_port=7,dl_type=0x0800,nw_src=10.0.0.$src,nw_dst=10.0.0.$dst"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:285"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

        { set +x
$as_echo "$at_srcdir/classifier.at:286: tail -1 stdout"
at_fn_check_prepare_trace "classifier.at:286"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: $out
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:286"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    done
done
{ set +x
$as_echo "$at_srcdir/classifier.at:290: check_logs "
at_fn_check_prepare_trace "classifier.at:290"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:290"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/classifier.at:290: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "classifier.at:290"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:290"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/classifier.at:290: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "classifier.at:290"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:290"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "classifier.at:290: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "classifier.at:290: wait failed" >&5

    $as_echo "classifier.at:290" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/classifier.at:290"
fi

   { set +x
$as_echo "$at_srcdir/classifier.at:290: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "classifier.at:290"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:290"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/classifier.at:290: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "classifier.at:290"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:290"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "classifier.at:290: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "classifier.at:290: wait failed" >&5

    $as_echo "classifier.at:290" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/classifier.at:290"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_119
#AT_START_120
at_fn_group_banner 120 'classifier.at:293' \
  "conjunctive match and other actions" "            " 13
at_xfail=no
(
  $as_echo "120. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/classifier.at:294: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "classifier.at:294"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:294"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/classifier.at:294: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "classifier.at:294"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:294"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/classifier.at:294: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "classifier.at:294"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:294"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/classifier.at:294: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "classifier.at:294"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:294"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/classifier.at:294: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "classifier.at:294"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:294"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/classifier.at:294: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "classifier.at:294"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:294"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/classifier.at:294: add_of_br 0  "
at_fn_check_prepare_trace "classifier.at:294"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:294"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# It's OK to use "conjunction" actions with "note" actions.
{ set +x
$as_echo "$at_srcdir/classifier.at:296: ovs-ofctl add-flow br0 'actions=conjunction(3,1/2),note:41.42.43.44.45.46'"
at_fn_check_prepare_trace "classifier.at:296"
( $at_check_trace; ovs-ofctl add-flow br0 'actions=conjunction(3,1/2),note:41.42.43.44.45.46'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:296"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/classifier.at:297: ovs-ofctl add-flow br0 'actions=note:41.42.43.44.45.46,conjunction(3,1/2)'"
at_fn_check_prepare_trace "classifier.at:297"
( $at_check_trace; ovs-ofctl add-flow br0 'actions=note:41.42.43.44.45.46,conjunction(3,1/2)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:297"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# It's not OK to use "conjunction" actions with other types of actions.
{ set +x
$as_echo "$at_srcdir/classifier.at:299: ovs-ofctl '-vPATTERN:console:%c|%p|%m' add-flow br0 'actions=output:1,conjunction(3,1/2)'"
at_fn_check_prepare_notrace 'a shell pipeline' "classifier.at:299"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' add-flow br0 'actions=output:1,conjunction(3,1/2)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ofp_actions|WARN|\"conjunction\" actions may be used along with \"note\" but not any other kind of action (such as the \"output\" action used here)
ovs-ofctl: Incorrect instruction ordering
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/classifier.at:299"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/classifier.at:303: ovs-ofctl '-vPATTERN:console:%c|%p|%m' add-flow br0 'actions=conjunction(3,1/2),output:1'"
at_fn_check_prepare_notrace 'a shell pipeline' "classifier.at:303"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' add-flow br0 'actions=conjunction(3,1/2),output:1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ofp_actions|WARN|\"conjunction\" actions may be used along with \"note\" but not any other kind of action (such as the \"output\" action used here)
ovs-ofctl: Incorrect instruction ordering
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/classifier.at:303"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/classifier.at:307: check_logs "
at_fn_check_prepare_trace "classifier.at:307"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:307"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/classifier.at:307: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "classifier.at:307"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:307"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/classifier.at:307: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "classifier.at:307"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:307"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "classifier.at:307: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "classifier.at:307: wait failed" >&5

    $as_echo "classifier.at:307" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/classifier.at:307"
fi

   { set +x
$as_echo "$at_srcdir/classifier.at:307: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "classifier.at:307"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:307"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/classifier.at:307: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "classifier.at:307"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/classifier.at:307"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "classifier.at:307: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "classifier.at:307: wait failed" >&5

    $as_echo "classifier.at:307" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/classifier.at:307"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_120
#AT_START_121
at_fn_group_banner 121 'check-structs.at:11' \
  "check struct tail padding" "                      " 14
at_xfail=no
(
  $as_echo "121. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "check-structs.at:12" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/check-structs.at:12"
   cat >test.h <<'_ATEOF'
struct xyz {
    ovs_be16 x;
};
_ATEOF

   { set +x
$as_echo "$at_srcdir/check-structs.at:12: \$PYTHON \$top_srcdir/build-aux/check-structs test.h"
at_fn_check_prepare_dynamic "$PYTHON $top_srcdir/build-aux/check-structs test.h" "check-structs.at:12"
( $at_check_trace; $PYTHON $top_srcdir/build-aux/check-structs test.h
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "test.h:3: warning: struct xyz needs 2 bytes of tail padding
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/check-structs.at:12"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_121
#AT_START_122
at_fn_group_banner 122 'check-structs.at:21' \
  "check struct internal alignment" "                " 14
at_xfail=no
(
  $as_echo "122. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "check-structs.at:22" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/check-structs.at:22"
   cat >test.h <<'_ATEOF'
struct xyzzy {
    ovs_be16 x;
    ovs_be32 y;
};
_ATEOF

   { set +x
$as_echo "$at_srcdir/check-structs.at:22: \$PYTHON \$top_srcdir/build-aux/check-structs test.h"
at_fn_check_prepare_dynamic "$PYTHON $top_srcdir/build-aux/check-structs test.h" "check-structs.at:22"
( $at_check_trace; $PYTHON $top_srcdir/build-aux/check-structs test.h
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "test.h:3: warning: struct xyzzy member y is 2 bytes short of 4-byte alignment
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/check-structs.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_122
#AT_START_123
at_fn_group_banner 123 'check-structs.at:32' \
  "check struct declared size" "                     " 14
at_xfail=no
(
  $as_echo "123. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "check-structs.at:33" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/check-structs.at:33"
   cat >test.h <<'_ATEOF'
struct wibble {
    ovs_be64 z;
};
OFP_ASSERT(sizeof(struct wibble) == 12);

_ATEOF

   { set +x
$as_echo "$at_srcdir/check-structs.at:33: \$PYTHON \$top_srcdir/build-aux/check-structs test.h"
at_fn_check_prepare_dynamic "$PYTHON $top_srcdir/build-aux/check-structs test.h" "check-structs.at:33"
( $at_check_trace; $PYTHON $top_srcdir/build-aux/check-structs test.h
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "test.h:4: warning: struct wibble is 8 bytes long but declared as 12
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/check-structs.at:33"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_123
#AT_START_124
at_fn_group_banner 124 'check-structs.at:44' \
  "check wrong struct's declared size" "             " 14
at_xfail=no
(
  $as_echo "124. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "check-structs.at:45" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/check-structs.at:45"
   cat >test.h <<'_ATEOF'
struct moo {
    ovs_be64 bar;
};
OFP_ASSERT(sizeof(struct moo) == 8);
struct wibble {
    ovs_be64 z;
};
OFP_ASSERT(sizeof(struct moo) == 8);

_ATEOF

   { set +x
$as_echo "$at_srcdir/check-structs.at:45: \$PYTHON \$top_srcdir/build-aux/check-structs test.h"
at_fn_check_prepare_dynamic "$PYTHON $top_srcdir/build-aux/check-structs test.h" "check-structs.at:45"
( $at_check_trace; $PYTHON $top_srcdir/build-aux/check-structs test.h
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "test.h:8: warning: checking size of struct moo but struct wibble was most recently defined
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/check-structs.at:45"
$at_failed && at_fn_log_failure
$at_traceon; }

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

ovs_init

$as_echo "daemon.at:4" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/daemon.at:4"



{ set +x
$as_echo "$at_srcdir/daemon.at:14: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "daemon.at:14"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:14"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon.at:14: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "daemon.at:14"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:14"
$at_failed && at_fn_log_failure
$at_traceon; }



# Start the daemon and wait for the pidfile to get created
# and that its contents are the correct pid.
{ set +x
$as_echo "$at_srcdir/daemon.at:19: ovsdb-server --pidfile --remote=punix:socket db 2>/dev/null & echo \$! > expected"
at_fn_check_prepare_dynamic "ovsdb-server --pidfile --remote=punix:socket db 2>/dev/null & echo $! > expected" "daemon.at:19"
( $at_check_trace; ovsdb-server --pidfile --remote=punix:socket db 2>/dev/null & echo $! > expected
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:19"
$at_failed && at_fn_log_failure  \
"pid" \
"expected"
$at_traceon; }

on_exit 'kill `cat expected`'
$as_echo "daemon.at:21: waiting until test -s ovsdb-server.pid..." >&5
ovs_wait_cond () {
    test -s ovsdb-server.pid
}
if ovs_wait; then :
else
    $as_echo "daemon.at:21: wait failed" >&5

    $as_echo "daemon.at:21" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon.at:21"
fi

{ set +x
$as_echo "$at_srcdir/daemon.at:22: pid=\`cat ovsdb-server.pid\` && expected=\`cat expected\` && test \"\$pid\" = \"\$expected\""
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon.at:22"
( $at_check_trace; pid=`cat ovsdb-server.pid` && expected=`cat expected` && test "$pid" = "$expected"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:22"
$at_failed && at_fn_log_failure  \
"pid" \
"expected"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/daemon.at:23: kill -0 \`cat ovsdb-server.pid\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon.at:23"
( $at_check_trace; kill -0 `cat ovsdb-server.pid`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:23"
$at_failed && at_fn_log_failure  \
"pid" \
"expected"
$at_traceon; }

# Kill the daemon and make sure that the pidfile gets deleted.
kill `cat expected`
$as_echo "daemon.at:26: waiting while kill -0 \`cat expected\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat expected`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "daemon.at:26: wait failed" >&5

    $as_echo "daemon.at:26" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon.at:26"
fi

{ set +x
$as_echo "$at_srcdir/daemon.at:27: test ! -e ovsdb-server.pid"
at_fn_check_prepare_trace "daemon.at:27"
( $at_check_trace; test ! -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:27"
$at_failed && at_fn_log_failure  \
"pid" \
"expected"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_125
#AT_START_126
at_fn_group_banner 126 'daemon.at:30' \
  "daemon --monitor" "                               " 15
at_xfail=no
(
  $as_echo "126. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "daemon.at:31" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/daemon.at:31"
{ set +x
$as_echo "$at_srcdir/daemon.at:32: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "daemon.at:32"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon.at:32: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "daemon.at:32"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }





# Start the daemon and wait for the pidfile to get created.
{ set +x
$as_echo "$at_srcdir/daemon.at:38: ovsdb-server --monitor --pidfile --remote=punix:socket db 2>/dev/null & echo \$! > parent"
at_fn_check_prepare_dynamic "ovsdb-server --monitor --pidfile --remote=punix:socket db 2>/dev/null & echo $! > parent" "daemon.at:38"
( $at_check_trace; ovsdb-server --monitor --pidfile --remote=punix:socket db 2>/dev/null & echo $! > parent
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:38"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

$as_echo "daemon.at:39: waiting until test -s ovsdb-server.pid..." >&5
ovs_wait_cond () {
    test -s ovsdb-server.pid
}
if ovs_wait; then :
else
    $as_echo "daemon.at:39: wait failed" >&5
    kill `cat parent`
    $as_echo "daemon.at:39" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon.at:39"
fi

# Check that the pidfile names a running process,
# and that the parent process of that process is our child process.
{ set +x
$as_echo "$at_srcdir/daemon.at:42: kill -0 \`cat ovsdb-server.pid\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon.at:42"
( $at_check_trace; kill -0 `cat ovsdb-server.pid`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:42"
if $at_failed; then :
  kill `cat parent`
fi
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/daemon.at:43: parent_pid \`cat ovsdb-server.pid\` > parentpid"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon.at:43"
( $at_check_trace; parent_pid `cat ovsdb-server.pid` > parentpid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:43"
if $at_failed; then :
  kill `cat parent`
fi
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/daemon.at:45: parentpid=\`cat parentpid\` &&
   parent=\`cat parent\` &&
   test \$parentpid = \$parent"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon.at:45"
( $at_check_trace; parentpid=`cat parentpid` &&
   parent=`cat parent` &&
   test $parentpid = $parent
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:45"
if $at_failed; then :
  kill `cat parent`
fi
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

# Avoid a race between pidfile creation and notifying the parent,
# which can easily trigger if ovsdb-server is slow (e.g. due to valgrind).
$as_echo "daemon.at:52: waiting until ovs-appctl --timeout=10 -t ovsdb-server version..." >&5
ovs_wait_cond () {
    ovs-appctl --timeout=10 -t ovsdb-server version
}
if ovs_wait; then :
else
    $as_echo "daemon.at:52: wait failed" >&5
    kill `cat ovsdb-server.pid`
    $as_echo "daemon.at:52" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon.at:52"
fi

# Kill the daemon process, making it look like a segfault,
# and wait for a new child process to get spawned.
{ set +x
$as_echo "$at_srcdir/daemon.at:57: cp ovsdb-server.pid oldpid"
at_fn_check_prepare_trace "daemon.at:57"
( $at_check_trace; cp ovsdb-server.pid oldpid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:57"
if $at_failed; then :
  kill `cat parent`
fi
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/daemon.at:58: kill -SEGV \`cat ovsdb-server.pid\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon.at:58"
( $at_check_trace; kill -SEGV `cat ovsdb-server.pid`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:58"
if $at_failed; then :
  kill `cat parent`
fi
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

$as_echo "daemon.at:59: waiting while kill -0 \`cat oldpid\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat oldpid`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "daemon.at:59: wait failed" >&5
    kill `cat parent`
    $as_echo "daemon.at:59" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon.at:59"
fi

$as_echo "daemon.at:60: waiting until test -s ovsdb-server.pid && test \`cat ovsdb-server.pid\` != \`cat oldpid\`..." >&5
ovs_wait_cond () {
    test -s ovsdb-server.pid && test `cat ovsdb-server.pid` != `cat oldpid`
}
if ovs_wait; then :
else
    $as_echo "daemon.at:60: wait failed" >&5
    kill `cat parent`
    $as_echo "daemon.at:60" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon.at:60"
fi

{ set +x
$as_echo "$at_srcdir/daemon.at:62: cp ovsdb-server.pid newpid"
at_fn_check_prepare_trace "daemon.at:62"
( $at_check_trace; cp ovsdb-server.pid newpid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:62"
if $at_failed; then :
  kill `cat parent`
fi
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

# Check that the pidfile names a running process,
# and that the parent process of that process is our child process.
{ set +x
$as_echo "$at_srcdir/daemon.at:65: parent_pid \`cat ovsdb-server.pid\` > parentpid"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon.at:65"
( $at_check_trace; parent_pid `cat ovsdb-server.pid` > parentpid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:65"
if $at_failed; then :
  kill `cat parent`
fi
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/daemon.at:67: parentpid=\`cat parentpid\` &&
   parent=\`cat parent\` &&
   test \$parentpid = \$parent"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon.at:67"
( $at_check_trace; parentpid=`cat parentpid` &&
   parent=`cat parent` &&
   test $parentpid = $parent
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:67"
if $at_failed; then :
  kill `cat parent`
fi
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

# Kill the daemon process with SIGTERM, and wait for the daemon
# and the monitor processes to go away and the pidfile to get deleted.
{ set +x
$as_echo "$at_srcdir/daemon.at:74: kill \`cat ovsdb-server.pid\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon.at:74"
( $at_check_trace; kill `cat ovsdb-server.pid`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:74"
if $at_failed; then :
  kill `cat parent`
fi
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

$as_echo "daemon.at:75: waiting while kill -0 \`cat parent\` || kill -0 \`cat newpid\` || test -e ovsdb-server.pid..." >&5
ovs_wait_cond () {
    if kill -0 `cat parent` || kill -0 `cat newpid` || test -e ovsdb-server.pid; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "daemon.at:75: wait failed" >&5
    kill `cat parent`
    $as_echo "daemon.at:75" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon.at:75"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_126
#AT_START_127
at_fn_group_banner 127 'daemon.at:79' \
  "daemon --detach" "                                " 15
at_xfail=no
(
  $as_echo "127. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/daemon.at:81: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "daemon.at:81"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:81"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon.at:81: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "daemon.at:81"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:81"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

# Start the daemon and make sure that the pidfile exists immediately.
# We don't wait for the pidfile to get created because the daemon is
# supposed to do so before the parent exits.
{ set +x
$as_echo "$at_srcdir/daemon.at:85: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db"
at_fn_check_prepare_trace "daemon.at:85"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:85"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/daemon.at:86: test -s ovsdb-server.pid"
at_fn_check_prepare_trace "daemon.at:86"
( $at_check_trace; test -s ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:86"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/daemon.at:87: kill -0 \`cat ovsdb-server.pid\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon.at:87"
( $at_check_trace; kill -0 `cat ovsdb-server.pid`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:87"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

# Kill the daemon and make sure that the pidfile gets deleted.
cp ovsdb-server.pid saved-pid
if test "$IS_WIN32" = "yes"; then
  # When a 'kill pid' is done on windows (through 'taskkill //F'),
  # pidfiles are not deleted (because it is force kill), so use
  # 'ovs-appctl exit' instead
  { set +x
$as_echo "$at_srcdir/daemon.at:94: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "daemon.at:94"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:94"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/daemon.at:94: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "daemon.at:94"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:94"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

   $as_echo "daemon.at:94: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "daemon.at:94: wait failed" >&5

    $as_echo "daemon.at:94" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon.at:94"
fi

else
  kill `cat ovsdb-server.pid`
fi
$as_echo "daemon.at:98: waiting while kill -0 \`cat saved-pid\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat saved-pid`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "daemon.at:98: wait failed" >&5

    $as_echo "daemon.at:98" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon.at:98"
fi

{ set +x
$as_echo "$at_srcdir/daemon.at:99: test ! -e ovsdb-server.pid"
at_fn_check_prepare_trace "daemon.at:99"
( $at_check_trace; test ! -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:99"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_127
#AT_START_128
at_fn_group_banner 128 'daemon.at:102' \
  "daemon --detach --monitor" "                      " 15
at_xfail=no
(
  $as_echo "128. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "daemon.at:103" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/daemon.at:103"
{ set +x
$as_echo "$at_srcdir/daemon.at:104: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "daemon.at:104"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:104"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon.at:104: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "daemon.at:104"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:104"
$at_failed && at_fn_log_failure
$at_traceon; }







# Start the daemon and make sure that the pidfile exists immediately.
# We don't wait for the pidfile to get created because the daemon is
# supposed to do so before the parent exits.
{ set +x
$as_echo "$at_srcdir/daemon.at:114: ovsdb-server --detach --no-chdir --pidfile --monitor --remote=punix:socket db"
at_fn_check_prepare_trace "daemon.at:114"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --monitor --remote=punix:socket db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:114"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

on_exit 'kill `cat ovsdb-server.pid olddaemon newdaemon monitor newmonitor`'
{ set +x
$as_echo "$at_srcdir/daemon.at:116: test -s ovsdb-server.pid"
at_fn_check_prepare_trace "daemon.at:116"
( $at_check_trace; test -s ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:116"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

# Check that the pidfile names a running process,
# and that the parent process of that process is a running process,
# and that the parent process of that process is init.
{ set +x
$as_echo "$at_srcdir/daemon.at:120: kill -0 \`cat ovsdb-server.pid\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon.at:120"
( $at_check_trace; kill -0 `cat ovsdb-server.pid`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:120"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/daemon.at:121: parent_pid \`cat ovsdb-server.pid\` > monitor"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon.at:121"
( $at_check_trace; parent_pid `cat ovsdb-server.pid` > monitor
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:121"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/daemon.at:122: kill -0 \`cat monitor\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon.at:122"
( $at_check_trace; kill -0 `cat monitor`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:122"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/daemon.at:123: parent_pid \`cat monitor\` > init"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon.at:123"
( $at_check_trace; parent_pid `cat monitor` > init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:123"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/daemon.at:124: test \`cat init\` != \$\$"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon.at:124"
( $at_check_trace; test `cat init` != $$
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:124"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

# Kill the daemon process, making it look like a segfault,
# and wait for a new daemon process to get spawned.
{ set +x
$as_echo "$at_srcdir/daemon.at:127: cp ovsdb-server.pid olddaemon"
at_fn_check_prepare_trace "daemon.at:127"
( $at_check_trace; cp ovsdb-server.pid olddaemon
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:127"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/daemon.at:128: kill -SEGV \`cat ovsdb-server.pid\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon.at:128"
( $at_check_trace; kill -SEGV `cat ovsdb-server.pid`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:128"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

$as_echo "daemon.at:129: waiting while kill -0 \`cat olddaemon\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat olddaemon`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "daemon.at:129: wait failed" >&5

    $as_echo "daemon.at:129" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon.at:129"
fi

$as_echo "daemon.at:130: waiting until test -s ovsdb-server.pid && test \`cat ovsdb-server.pid\` != \`cat olddaemon\`..." >&5
ovs_wait_cond () {
    test -s ovsdb-server.pid && test `cat ovsdb-server.pid` != `cat olddaemon`
}
if ovs_wait; then :
else
    $as_echo "daemon.at:130: wait failed" >&5

    $as_echo "daemon.at:130" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon.at:130"
fi

{ set +x
$as_echo "$at_srcdir/daemon.at:131: cp ovsdb-server.pid newdaemon"
at_fn_check_prepare_trace "daemon.at:131"
( $at_check_trace; cp ovsdb-server.pid newdaemon
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:131"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

# Check that the pidfile names a running process,
# and that the parent process of that process is our child process.
{ set +x
$as_echo "$at_srcdir/daemon.at:134: kill -0 \`cat ovsdb-server.pid\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon.at:134"
( $at_check_trace; kill -0 `cat ovsdb-server.pid`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:134"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/daemon.at:135: diff olddaemon newdaemon"
at_fn_check_prepare_trace "daemon.at:135"
( $at_check_trace; diff olddaemon newdaemon
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/daemon.at:135"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/daemon.at:136: parent_pid \`cat ovsdb-server.pid\` > newmonitor"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon.at:136"
( $at_check_trace; parent_pid `cat ovsdb-server.pid` > newmonitor
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:136"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/daemon.at:137: diff monitor newmonitor"
at_fn_check_prepare_trace "daemon.at:137"
( $at_check_trace; diff monitor newmonitor
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:137"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/daemon.at:138: kill -0 \`cat newmonitor\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon.at:138"
( $at_check_trace; kill -0 `cat newmonitor`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:138"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/daemon.at:139: parent_pid \`cat newmonitor\` > init"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon.at:139"
( $at_check_trace; parent_pid `cat newmonitor` > init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:139"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/daemon.at:140: test \`cat init\` != \$\$"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon.at:140"
( $at_check_trace; test `cat init` != $$
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:140"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

# Kill the daemon process with SIGTERM, and wait for the daemon
# and the monitor processes to go away and the pidfile to get deleted.
{ set +x
$as_echo "$at_srcdir/daemon.at:143: kill \`cat ovsdb-server.pid\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon.at:143"
( $at_check_trace; kill `cat ovsdb-server.pid`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:143"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

$as_echo "daemon.at:144: waiting while kill -0 \`cat monitor\` || kill -0 \`cat newdaemon\` || test -e ovsdb-server.pid..." >&5
ovs_wait_cond () {
    if kill -0 `cat monitor` || kill -0 `cat newdaemon` || test -e ovsdb-server.pid; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "daemon.at:144: wait failed" >&5

    $as_echo "daemon.at:144" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon.at:144"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_128
#AT_START_129
at_fn_group_banner 129 'daemon.at:148' \
  "daemon --detach startup errors" "                 " 15
at_xfail=no
(
  $as_echo "129. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/daemon.at:150: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "daemon.at:150"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:150"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon.at:150: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "daemon.at:150"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:150"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/daemon.at:151: ovsdb-server --detach --no-chdir --pidfile --unixctl=nonexistent/unixctl db"
at_fn_check_prepare_trace "daemon.at:151"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --unixctl=nonexistent/unixctl db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/daemon.at:151"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/daemon.at:152: grep 'ovsdb-server: could not initialize control socket' stderr"
at_fn_check_prepare_trace "daemon.at:152"
( $at_check_trace; grep 'ovsdb-server: could not initialize control socket' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:152"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/daemon.at:154: test ! -s pid"
at_fn_check_prepare_trace "daemon.at:154"
( $at_check_trace; test ! -s pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:154"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_129
#AT_START_130
at_fn_group_banner 130 'daemon.at:157' \
  "daemon --detach --monitor startup errors" "       " 15
at_xfail=no
(
  $as_echo "130. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "daemon.at:158" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/daemon.at:158"

{ set +x
$as_echo "$at_srcdir/daemon.at:160: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "daemon.at:160"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:160"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon.at:160: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "daemon.at:160"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:160"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/daemon.at:161: ovsdb-server --detach --no-chdir --pidfile --monitor --unixctl=nonexistent/unixctl db"
at_fn_check_prepare_trace "daemon.at:161"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --monitor --unixctl=nonexistent/unixctl db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/daemon.at:161"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/daemon.at:162: grep 'ovsdb-server: could not initialize control socket' stderr"
at_fn_check_prepare_trace "daemon.at:162"
( $at_check_trace; grep 'ovsdb-server: could not initialize control socket' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:162"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/daemon.at:164: test ! -s pid"
at_fn_check_prepare_trace "daemon.at:164"
( $at_check_trace; test ! -s pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:164"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_130
#AT_START_131
at_fn_group_banner 131 'daemon.at:167' \
  "daemon --service" "                               " 15
at_xfail=no
(
  $as_echo "131. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


$as_echo "daemon.at:169" >"$at_check_line_file"
(test "$IS_WIN32" != "yes") \
  && at_fn_check_skip 77 "$at_srcdir/daemon.at:169"

   $as_echo "daemon.at:170" >"$at_check_line_file"
(net session; test $? -ne 0) \
  && at_fn_check_skip 77 "$at_srcdir/daemon.at:170"

$as_echo "daemon.at:171" >"$at_check_line_file"
(sc qc ovsdb-server) \
  && at_fn_check_skip 77 "$at_srcdir/daemon.at:171"

{ set +x
$as_echo "$at_srcdir/daemon.at:173: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "daemon.at:173"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:173"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon.at:173: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "daemon.at:173"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:173"
$at_failed && at_fn_log_failure
$at_traceon; }


# To create a Windows service, we need the absolute path for the executable.
abs_path="$(cd $(dirname `which ovsdb-server`); pwd -W; cd $OLDPWD)"

{ set +x
$as_echo "$at_srcdir/daemon.at:178: sc create ovsdb-server binpath=\"\$abs_path/ovsdb-server \`pwd\`/db --log-file=\`pwd\`/ovsdb-server.log --pidfile=\`pwd\`/ovsdb-server.pid --unixctl=\`pwd\`/ovsdb-server.ctl --remote=punix:\`pwd\`/socket --service\""
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon.at:178"
( $at_check_trace; sc create ovsdb-server binpath="$abs_path/ovsdb-server `pwd`/db --log-file=`pwd`/ovsdb-server.log --pidfile=`pwd`/ovsdb-server.pid --unixctl=`pwd`/ovsdb-server.ctl --remote=punix:`pwd`/socket --service"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[SC] CreateService SUCCESS
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:178"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/daemon.at:182: sc start ovsdb-server"
at_fn_check_prepare_trace "daemon.at:182"
( $at_check_trace; sc start ovsdb-server
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:182"
if $at_failed; then :
  sc delete ovsdb-server
fi
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

$as_echo "daemon.at:183: waiting until test -s ovsdb-server.pid..." >&5
ovs_wait_cond () {
    test -s ovsdb-server.pid
}
if ovs_wait; then :
else
    $as_echo "daemon.at:183: wait failed" >&5

    $as_echo "daemon.at:183" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon.at:183"
fi

$as_echo "daemon.at:184: waiting until sc query ovsdb-server | grep STATE | grep RUNNING > /dev/null 2>&1..." >&5
ovs_wait_cond () {
    sc query ovsdb-server | grep STATE | grep RUNNING > /dev/null 2>&1
}
if ovs_wait; then :
else
    $as_echo "daemon.at:184: wait failed" >&5

    $as_echo "daemon.at:184" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon.at:184"
fi

{ set +x
$as_echo "$at_srcdir/daemon.at:185: kill -0 \`cat ovsdb-server.pid\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon.at:185"
( $at_check_trace; kill -0 `cat ovsdb-server.pid`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:185"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/daemon.at:186: ovs-appctl -t ovsdb-server ovsdb-server/list-dbs"
at_fn_check_prepare_trace "daemon.at:186"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/list-dbs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Open_vSwitch
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:186"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/daemon.at:189: sc stop ovsdb-server"
at_fn_check_prepare_trace "daemon.at:189"
( $at_check_trace; sc stop ovsdb-server
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:189"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

$as_echo "daemon.at:190: waiting until test ! -s ovsdb-server.pid..." >&5
ovs_wait_cond () {
    test ! -s ovsdb-server.pid
}
if ovs_wait; then :
else
    $as_echo "daemon.at:190: wait failed" >&5

    $as_echo "daemon.at:190" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon.at:190"
fi

{ set +x
$as_echo "$at_srcdir/daemon.at:191: sc query ovsdb-server | grep STATE | grep STOPPED"
at_fn_check_prepare_notrace 'a shell pipeline' "daemon.at:191"
( $at_check_trace; sc query ovsdb-server | grep STATE | grep STOPPED
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:191"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/daemon.at:192: sc delete ovsdb-server"
at_fn_check_prepare_trace "daemon.at:192"
( $at_check_trace; sc delete ovsdb-server
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[SC] DeleteService SUCCESS
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon.at:192"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_131
#AT_START_132
at_fn_group_banner 132 'daemon-py.at:25' \
  "daemon - Python2" "                               " 16
at_xfail=no
(
  $as_echo "132. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "daemon-py.at:25" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/daemon-py.at:25"
   # Skip this test for Windows, echo $! gives shell pid instead of parent process
   $as_echo "daemon-py.at:25" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/daemon-py.at:25"



   # Start the daemon and wait for the pidfile to get created
   # and that its contents are the correct pid.
   { set +x
$as_echo "$at_srcdir/daemon-py.at:25: \$PYTHON \$srcdir/test-daemon.py --pidfile=pid& echo \$! > expected"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-daemon.py --pidfile=pid& echo $! > expected" "daemon-py.at:25"
( $at_check_trace; $PYTHON $srcdir/test-daemon.py --pidfile=pid& echo $! > expected
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:25"
$at_failed && at_fn_log_failure  \
"pid" \
"expected"
$at_traceon; }

   $as_echo "daemon-py.at:25: waiting until test -s pid..." >&5
ovs_wait_cond () {
    test -s pid
}
if ovs_wait; then :
else
    $as_echo "daemon-py.at:25: wait failed" >&5
    kill `cat expected`
    $as_echo "daemon-py.at:25" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon-py.at:25"
fi

   { set +x
$as_echo "$at_srcdir/daemon-py.at:25: pid=\`cat pid\` && expected=\`cat expected\` && test \"\$pid\" = \"\$expected\""
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:25"
( $at_check_trace; pid=`cat pid` && expected=`cat expected` && test "$pid" = "$expected"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:25"
if $at_failed; then :
  kill `cat expected`
fi
$at_failed && at_fn_log_failure  \
"pid" \
"expected"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:25: kill -0 \`cat pid\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:25"
( $at_check_trace; kill -0 `cat pid`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:25"
if $at_failed; then :
  kill `cat expected`
fi
$at_failed && at_fn_log_failure  \
"pid" \
"expected"
$at_traceon; }

   # Kill the daemon and make sure that the pidfile gets deleted.
   kill `cat expected`
   $as_echo "daemon-py.at:25: waiting while kill -0 \`cat expected\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat expected`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "daemon-py.at:25: wait failed" >&5

    $as_echo "daemon-py.at:25" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon-py.at:25"
fi

   { set +x
$as_echo "$at_srcdir/daemon-py.at:25: test ! -e pid"
at_fn_check_prepare_trace "daemon-py.at:25"
( $at_check_trace; test ! -e pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:25"
$at_failed && at_fn_log_failure  \
"pid" \
"expected"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_132
#AT_START_133
at_fn_group_banner 133 'daemon-py.at:26' \
  "daemon - Python3" "                               " 16
at_xfail=no
(
  $as_echo "133. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "daemon-py.at:26" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/daemon-py.at:26"
   # Skip this test for Windows, echo $! gives shell pid instead of parent process
   $as_echo "daemon-py.at:26" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/daemon-py.at:26"



   # Start the daemon and wait for the pidfile to get created
   # and that its contents are the correct pid.
   { set +x
$as_echo "$at_srcdir/daemon-py.at:26: \$PYTHON3 \$srcdir/test-daemon.py --pidfile=pid& echo \$! > expected"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-daemon.py --pidfile=pid& echo $! > expected" "daemon-py.at:26"
( $at_check_trace; $PYTHON3 $srcdir/test-daemon.py --pidfile=pid& echo $! > expected
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:26"
$at_failed && at_fn_log_failure  \
"pid" \
"expected"
$at_traceon; }

   $as_echo "daemon-py.at:26: waiting until test -s pid..." >&5
ovs_wait_cond () {
    test -s pid
}
if ovs_wait; then :
else
    $as_echo "daemon-py.at:26: wait failed" >&5
    kill `cat expected`
    $as_echo "daemon-py.at:26" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon-py.at:26"
fi

   { set +x
$as_echo "$at_srcdir/daemon-py.at:26: pid=\`cat pid\` && expected=\`cat expected\` && test \"\$pid\" = \"\$expected\""
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:26"
( $at_check_trace; pid=`cat pid` && expected=`cat expected` && test "$pid" = "$expected"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:26"
if $at_failed; then :
  kill `cat expected`
fi
$at_failed && at_fn_log_failure  \
"pid" \
"expected"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:26: kill -0 \`cat pid\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:26"
( $at_check_trace; kill -0 `cat pid`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:26"
if $at_failed; then :
  kill `cat expected`
fi
$at_failed && at_fn_log_failure  \
"pid" \
"expected"
$at_traceon; }

   # Kill the daemon and make sure that the pidfile gets deleted.
   kill `cat expected`
   $as_echo "daemon-py.at:26: waiting while kill -0 \`cat expected\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat expected`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "daemon-py.at:26: wait failed" >&5

    $as_echo "daemon-py.at:26" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon-py.at:26"
fi

   { set +x
$as_echo "$at_srcdir/daemon-py.at:26: test ! -e pid"
at_fn_check_prepare_trace "daemon-py.at:26"
( $at_check_trace; test ! -e pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:26"
$at_failed && at_fn_log_failure  \
"pid" \
"expected"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_133
#AT_START_134
at_fn_group_banner 134 'daemon-py.at:69' \
  "daemon --monitor - Python2" "                     " 16
at_xfail=no
(
  $as_echo "134. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "daemon-py.at:69" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/daemon-py.at:69"
   # Skip this test for Windows, echo $! gives shell pid instead of parent process
   $as_echo "daemon-py.at:69" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/daemon-py.at:69"




   # Start the daemon and wait for the pidfile to get created.
   { set +x
$as_echo "$at_srcdir/daemon-py.at:69: \$PYTHON \$srcdir/test-daemon.py --pidfile=pid --monitor& echo \$! > parent"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-daemon.py --pidfile=pid --monitor& echo $! > parent" "daemon-py.at:69"
( $at_check_trace; $PYTHON $srcdir/test-daemon.py --pidfile=pid --monitor& echo $! > parent
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:69"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   on_exit 'kill `cat parent`'
   $as_echo "daemon-py.at:69: waiting until test -s pid..." >&5
ovs_wait_cond () {
    test -s pid
}
if ovs_wait; then :
else
    $as_echo "daemon-py.at:69: wait failed" >&5

    $as_echo "daemon-py.at:69" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon-py.at:69"
fi

   # Check that the pidfile names a running process,
   # and that the parent process of that process is our child process.
   { set +x
$as_echo "$at_srcdir/daemon-py.at:69: kill -0 \`cat pid\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:69"
( $at_check_trace; kill -0 `cat pid`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:69"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:69: parent_pid \`cat pid\` > parentpid"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:69"
( $at_check_trace; parent_pid `cat pid` > parentpid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:69"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:69: parentpid=\`cat parentpid\` &&
      parent=\`cat parent\` &&
      test \$parentpid = \$parent"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:69"
( $at_check_trace; parentpid=`cat parentpid` &&
      parent=`cat parent` &&
      test $parentpid = $parent
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:69"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   # Kill the daemon process, making it look like a segfault,
   # and wait for a new child process to get spawned.
   { set +x
$as_echo "$at_srcdir/daemon-py.at:69: cp pid oldpid"
at_fn_check_prepare_trace "daemon-py.at:69"
( $at_check_trace; cp pid oldpid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:69"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:69: kill -SEGV \`cat pid\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:69"
( $at_check_trace; kill -SEGV `cat pid`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:69"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   $as_echo "daemon-py.at:69: waiting while kill -0 \`cat oldpid\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat oldpid`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "daemon-py.at:69: wait failed" >&5

    $as_echo "daemon-py.at:69" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon-py.at:69"
fi

   $as_echo "daemon-py.at:69: waiting until test -s pid && test \`cat pid\` != \`cat oldpid\`..." >&5
ovs_wait_cond () {
    test -s pid && test `cat pid` != `cat oldpid`
}
if ovs_wait; then :
else
    $as_echo "daemon-py.at:69: wait failed" >&5

    $as_echo "daemon-py.at:69" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon-py.at:69"
fi

   { set +x
$as_echo "$at_srcdir/daemon-py.at:69: cp pid newpid"
at_fn_check_prepare_trace "daemon-py.at:69"
( $at_check_trace; cp pid newpid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:69"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   # Check that the pidfile names a running process,
   # and that the parent process of that process is our child process.
   { set +x
$as_echo "$at_srcdir/daemon-py.at:69: parent_pid \`cat pid\` > parentpid"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:69"
( $at_check_trace; parent_pid `cat pid` > parentpid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:69"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:69: parentpid=\`cat parentpid\` &&
      parent=\`cat parent\` &&
      test \$parentpid = \$parent"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:69"
( $at_check_trace; parentpid=`cat parentpid` &&
      parent=`cat parent` &&
      test $parentpid = $parent
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:69"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   # Kill the daemon process with SIGTERM, and wait for the daemon
   # and the monitor processes to go away and the pidfile to get deleted.
   { set +x
$as_echo "$at_srcdir/daemon-py.at:69: kill \`cat pid\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:69"
( $at_check_trace; kill `cat pid`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:69"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   $as_echo "daemon-py.at:69: waiting while kill -0 \`cat parent\` || kill -0 \`cat newpid\` || test -e pid..." >&5
ovs_wait_cond () {
    if kill -0 `cat parent` || kill -0 `cat newpid` || test -e pid; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "daemon-py.at:69: wait failed" >&5

    $as_echo "daemon-py.at:69" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon-py.at:69"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_134
#AT_START_135
at_fn_group_banner 135 'daemon-py.at:70' \
  "daemon --monitor - Python3" "                     " 16
at_xfail=no
(
  $as_echo "135. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "daemon-py.at:70" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/daemon-py.at:70"
   # Skip this test for Windows, echo $! gives shell pid instead of parent process
   $as_echo "daemon-py.at:70" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/daemon-py.at:70"




   # Start the daemon and wait for the pidfile to get created.
   { set +x
$as_echo "$at_srcdir/daemon-py.at:70: \$PYTHON3 \$srcdir/test-daemon.py --pidfile=pid --monitor& echo \$! > parent"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-daemon.py --pidfile=pid --monitor& echo $! > parent" "daemon-py.at:70"
( $at_check_trace; $PYTHON3 $srcdir/test-daemon.py --pidfile=pid --monitor& echo $! > parent
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:70"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   on_exit 'kill `cat parent`'
   $as_echo "daemon-py.at:70: waiting until test -s pid..." >&5
ovs_wait_cond () {
    test -s pid
}
if ovs_wait; then :
else
    $as_echo "daemon-py.at:70: wait failed" >&5

    $as_echo "daemon-py.at:70" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon-py.at:70"
fi

   # Check that the pidfile names a running process,
   # and that the parent process of that process is our child process.
   { set +x
$as_echo "$at_srcdir/daemon-py.at:70: kill -0 \`cat pid\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:70"
( $at_check_trace; kill -0 `cat pid`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:70"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:70: parent_pid \`cat pid\` > parentpid"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:70"
( $at_check_trace; parent_pid `cat pid` > parentpid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:70"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:70: parentpid=\`cat parentpid\` &&
      parent=\`cat parent\` &&
      test \$parentpid = \$parent"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:70"
( $at_check_trace; parentpid=`cat parentpid` &&
      parent=`cat parent` &&
      test $parentpid = $parent
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:70"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   # Kill the daemon process, making it look like a segfault,
   # and wait for a new child process to get spawned.
   { set +x
$as_echo "$at_srcdir/daemon-py.at:70: cp pid oldpid"
at_fn_check_prepare_trace "daemon-py.at:70"
( $at_check_trace; cp pid oldpid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:70"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:70: kill -SEGV \`cat pid\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:70"
( $at_check_trace; kill -SEGV `cat pid`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:70"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   $as_echo "daemon-py.at:70: waiting while kill -0 \`cat oldpid\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat oldpid`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "daemon-py.at:70: wait failed" >&5

    $as_echo "daemon-py.at:70" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon-py.at:70"
fi

   $as_echo "daemon-py.at:70: waiting until test -s pid && test \`cat pid\` != \`cat oldpid\`..." >&5
ovs_wait_cond () {
    test -s pid && test `cat pid` != `cat oldpid`
}
if ovs_wait; then :
else
    $as_echo "daemon-py.at:70: wait failed" >&5

    $as_echo "daemon-py.at:70" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon-py.at:70"
fi

   { set +x
$as_echo "$at_srcdir/daemon-py.at:70: cp pid newpid"
at_fn_check_prepare_trace "daemon-py.at:70"
( $at_check_trace; cp pid newpid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:70"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   # Check that the pidfile names a running process,
   # and that the parent process of that process is our child process.
   { set +x
$as_echo "$at_srcdir/daemon-py.at:70: parent_pid \`cat pid\` > parentpid"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:70"
( $at_check_trace; parent_pid `cat pid` > parentpid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:70"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:70: parentpid=\`cat parentpid\` &&
      parent=\`cat parent\` &&
      test \$parentpid = \$parent"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:70"
( $at_check_trace; parentpid=`cat parentpid` &&
      parent=`cat parent` &&
      test $parentpid = $parent
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:70"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   # Kill the daemon process with SIGTERM, and wait for the daemon
   # and the monitor processes to go away and the pidfile to get deleted.
   { set +x
$as_echo "$at_srcdir/daemon-py.at:70: kill \`cat pid\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:70"
( $at_check_trace; kill `cat pid`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:70"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   $as_echo "daemon-py.at:70: waiting while kill -0 \`cat parent\` || kill -0 \`cat newpid\` || test -e pid..." >&5
ovs_wait_cond () {
    if kill -0 `cat parent` || kill -0 `cat newpid` || test -e pid; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "daemon-py.at:70: wait failed" >&5

    $as_echo "daemon-py.at:70" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon-py.at:70"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_135
#AT_START_136
at_fn_group_banner 136 'daemon-py.at:113' \
  "daemon --monitor restart exit code - Python2" "   " 16
at_xfail=no
(
  $as_echo "136. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "daemon-py.at:113" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/daemon-py.at:113"
   # Skip this test for Windows, echo $! gives shell pid instead of parent process
   $as_echo "daemon-py.at:113" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/daemon-py.at:113"




   # Start the daemon and wait for the pidfile to get created.
   { set +x
$as_echo "$at_srcdir/daemon-py.at:113: \$PYTHON \$srcdir/test-daemon.py --pidfile=pid --monitor& echo \$! > parent"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-daemon.py --pidfile=pid --monitor& echo $! > parent" "daemon-py.at:113"
( $at_check_trace; $PYTHON $srcdir/test-daemon.py --pidfile=pid --monitor& echo $! > parent
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:113"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   on_exit 'kill `cat parent`'
   $as_echo "daemon-py.at:113: waiting until test -s pid..." >&5
ovs_wait_cond () {
    test -s pid
}
if ovs_wait; then :
else
    $as_echo "daemon-py.at:113: wait failed" >&5

    $as_echo "daemon-py.at:113" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon-py.at:113"
fi

   # Check that the pidfile names a running process,
   # and that the parent process of that process is our child process.
   { set +x
$as_echo "$at_srcdir/daemon-py.at:113: kill -0 \`cat pid\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:113"
( $at_check_trace; kill -0 `cat pid`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:113"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:113: parent_pid \`cat pid\` > parentpid"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:113"
( $at_check_trace; parent_pid `cat pid` > parentpid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:113"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:113: parentpid=\`cat parentpid\` &&
      parent=\`cat parent\` &&
      test \$parentpid = \$parent"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:113"
( $at_check_trace; parentpid=`cat parentpid` &&
      parent=`cat parent` &&
      test $parentpid = $parent
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:113"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   # HUP the daemon process causing it to throw an exception,
   # and wait for a new child process to get spawned.
   { set +x
$as_echo "$at_srcdir/daemon-py.at:113: cp pid oldpid"
at_fn_check_prepare_trace "daemon-py.at:113"
( $at_check_trace; cp pid oldpid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:113"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:113: kill -HUP \`cat pid\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:113"
( $at_check_trace; kill -HUP `cat pid`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:113"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   $as_echo "daemon-py.at:113: waiting while kill -0 \`cat oldpid\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat oldpid`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "daemon-py.at:113: wait failed" >&5

    $as_echo "daemon-py.at:113" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon-py.at:113"
fi

   $as_echo "daemon-py.at:113: waiting until test -s pid && test \`cat pid\` != \`cat oldpid\`..." >&5
ovs_wait_cond () {
    test -s pid && test `cat pid` != `cat oldpid`
}
if ovs_wait; then :
else
    $as_echo "daemon-py.at:113: wait failed" >&5

    $as_echo "daemon-py.at:113" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon-py.at:113"
fi

   { set +x
$as_echo "$at_srcdir/daemon-py.at:113: cp pid newpid"
at_fn_check_prepare_trace "daemon-py.at:113"
( $at_check_trace; cp pid newpid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:113"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   # Check that the pidfile names a running process,
   # and that the parent process of that process is our child process.
   { set +x
$as_echo "$at_srcdir/daemon-py.at:113: parent_pid \`cat pid\` > parentpid"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:113"
( $at_check_trace; parent_pid `cat pid` > parentpid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:113"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:113: parentpid=\`cat parentpid\` &&
      parent=\`cat parent\` &&
      test \$parentpid = \$parent"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:113"
( $at_check_trace; parentpid=`cat parentpid` &&
      parent=`cat parent` &&
      test $parentpid = $parent
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:113"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   # Kill the daemon process with SIGTERM, and wait for the daemon
   # and the monitor processes to go away and the pidfile to get deleted.
   { set +x
$as_echo "$at_srcdir/daemon-py.at:113: kill \`cat pid\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:113"
( $at_check_trace; kill `cat pid`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:113"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   $as_echo "daemon-py.at:113: waiting while kill -0 \`cat parent\` || kill -0 \`cat newpid\` || test -e pid..." >&5
ovs_wait_cond () {
    if kill -0 `cat parent` || kill -0 `cat newpid` || test -e pid; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "daemon-py.at:113: wait failed" >&5

    $as_echo "daemon-py.at:113" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon-py.at:113"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_136
#AT_START_137
at_fn_group_banner 137 'daemon-py.at:114' \
  "daemon --monitor restart exit code - Python3" "   " 16
at_xfail=no
(
  $as_echo "137. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "daemon-py.at:114" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/daemon-py.at:114"
   # Skip this test for Windows, echo $! gives shell pid instead of parent process
   $as_echo "daemon-py.at:114" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/daemon-py.at:114"




   # Start the daemon and wait for the pidfile to get created.
   { set +x
$as_echo "$at_srcdir/daemon-py.at:114: \$PYTHON3 \$srcdir/test-daemon.py --pidfile=pid --monitor& echo \$! > parent"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-daemon.py --pidfile=pid --monitor& echo $! > parent" "daemon-py.at:114"
( $at_check_trace; $PYTHON3 $srcdir/test-daemon.py --pidfile=pid --monitor& echo $! > parent
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:114"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   on_exit 'kill `cat parent`'
   $as_echo "daemon-py.at:114: waiting until test -s pid..." >&5
ovs_wait_cond () {
    test -s pid
}
if ovs_wait; then :
else
    $as_echo "daemon-py.at:114: wait failed" >&5

    $as_echo "daemon-py.at:114" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon-py.at:114"
fi

   # Check that the pidfile names a running process,
   # and that the parent process of that process is our child process.
   { set +x
$as_echo "$at_srcdir/daemon-py.at:114: kill -0 \`cat pid\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:114"
( $at_check_trace; kill -0 `cat pid`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:114"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:114: parent_pid \`cat pid\` > parentpid"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:114"
( $at_check_trace; parent_pid `cat pid` > parentpid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:114"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:114: parentpid=\`cat parentpid\` &&
      parent=\`cat parent\` &&
      test \$parentpid = \$parent"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:114"
( $at_check_trace; parentpid=`cat parentpid` &&
      parent=`cat parent` &&
      test $parentpid = $parent
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:114"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   # HUP the daemon process causing it to throw an exception,
   # and wait for a new child process to get spawned.
   { set +x
$as_echo "$at_srcdir/daemon-py.at:114: cp pid oldpid"
at_fn_check_prepare_trace "daemon-py.at:114"
( $at_check_trace; cp pid oldpid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:114"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:114: kill -HUP \`cat pid\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:114"
( $at_check_trace; kill -HUP `cat pid`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:114"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   $as_echo "daemon-py.at:114: waiting while kill -0 \`cat oldpid\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat oldpid`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "daemon-py.at:114: wait failed" >&5

    $as_echo "daemon-py.at:114" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon-py.at:114"
fi

   $as_echo "daemon-py.at:114: waiting until test -s pid && test \`cat pid\` != \`cat oldpid\`..." >&5
ovs_wait_cond () {
    test -s pid && test `cat pid` != `cat oldpid`
}
if ovs_wait; then :
else
    $as_echo "daemon-py.at:114: wait failed" >&5

    $as_echo "daemon-py.at:114" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon-py.at:114"
fi

   { set +x
$as_echo "$at_srcdir/daemon-py.at:114: cp pid newpid"
at_fn_check_prepare_trace "daemon-py.at:114"
( $at_check_trace; cp pid newpid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:114"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   # Check that the pidfile names a running process,
   # and that the parent process of that process is our child process.
   { set +x
$as_echo "$at_srcdir/daemon-py.at:114: parent_pid \`cat pid\` > parentpid"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:114"
( $at_check_trace; parent_pid `cat pid` > parentpid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:114"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:114: parentpid=\`cat parentpid\` &&
      parent=\`cat parent\` &&
      test \$parentpid = \$parent"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:114"
( $at_check_trace; parentpid=`cat parentpid` &&
      parent=`cat parent` &&
      test $parentpid = $parent
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:114"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   # Kill the daemon process with SIGTERM, and wait for the daemon
   # and the monitor processes to go away and the pidfile to get deleted.
   { set +x
$as_echo "$at_srcdir/daemon-py.at:114: kill \`cat pid\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:114"
( $at_check_trace; kill `cat pid`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:114"
$at_failed && at_fn_log_failure  \
"pid" \
"parent" \
"parentpid" \
"newpid"
$at_traceon; }

   $as_echo "daemon-py.at:114: waiting while kill -0 \`cat parent\` || kill -0 \`cat newpid\` || test -e pid..." >&5
ovs_wait_cond () {
    if kill -0 `cat parent` || kill -0 `cat newpid` || test -e pid; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "daemon-py.at:114: wait failed" >&5

    $as_echo "daemon-py.at:114" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon-py.at:114"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_137
#AT_START_138
at_fn_group_banner 138 'daemon-py.at:135' \
  "daemon --detach - Python2" "                      " 16
at_xfail=no
(
  $as_echo "138. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "daemon-py.at:135" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/daemon-py.at:135"
   # Skip this test for Windows, the pid file not removed if the daemon is killed
   $as_echo "daemon-py.at:135" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/daemon-py.at:135"

   # Start the daemon and make sure that the pidfile exists immediately.
   # We don't wait for the pidfile to get created because the daemon is
   # supposed to do so before the parent exits.
   { set +x
$as_echo "$at_srcdir/daemon-py.at:135: \$PYTHON \$srcdir/test-daemon.py --pidfile=pid --detach"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-daemon.py --pidfile=pid --detach" "daemon-py.at:135"
( $at_check_trace; $PYTHON $srcdir/test-daemon.py --pidfile=pid --detach
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:135"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:135: test -s pid"
at_fn_check_prepare_trace "daemon-py.at:135"
( $at_check_trace; test -s pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:135"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:135: kill -0 \`cat pid\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:135"
( $at_check_trace; kill -0 `cat pid`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:135"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

   # Kill the daemon and make sure that the pidfile gets deleted.
   cp pid saved-pid
   kill `cat pid`
   $as_echo "daemon-py.at:135: waiting while kill -0 \`cat saved-pid\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat saved-pid`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "daemon-py.at:135: wait failed" >&5

    $as_echo "daemon-py.at:135" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon-py.at:135"
fi

   { set +x
$as_echo "$at_srcdir/daemon-py.at:135: test ! -e pid"
at_fn_check_prepare_trace "daemon-py.at:135"
( $at_check_trace; test ! -e pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:135"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_138
#AT_START_139
at_fn_group_banner 139 'daemon-py.at:136' \
  "daemon --detach - Python3" "                      " 16
at_xfail=no
(
  $as_echo "139. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "daemon-py.at:136" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/daemon-py.at:136"
   # Skip this test for Windows, the pid file not removed if the daemon is killed
   $as_echo "daemon-py.at:136" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/daemon-py.at:136"

   # Start the daemon and make sure that the pidfile exists immediately.
   # We don't wait for the pidfile to get created because the daemon is
   # supposed to do so before the parent exits.
   { set +x
$as_echo "$at_srcdir/daemon-py.at:136: \$PYTHON3 \$srcdir/test-daemon.py --pidfile=pid --detach"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-daemon.py --pidfile=pid --detach" "daemon-py.at:136"
( $at_check_trace; $PYTHON3 $srcdir/test-daemon.py --pidfile=pid --detach
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:136"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:136: test -s pid"
at_fn_check_prepare_trace "daemon-py.at:136"
( $at_check_trace; test -s pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:136"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:136: kill -0 \`cat pid\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:136"
( $at_check_trace; kill -0 `cat pid`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:136"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

   # Kill the daemon and make sure that the pidfile gets deleted.
   cp pid saved-pid
   kill `cat pid`
   $as_echo "daemon-py.at:136: waiting while kill -0 \`cat saved-pid\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat saved-pid`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "daemon-py.at:136: wait failed" >&5

    $as_echo "daemon-py.at:136" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon-py.at:136"
fi

   { set +x
$as_echo "$at_srcdir/daemon-py.at:136: test ! -e pid"
at_fn_check_prepare_trace "daemon-py.at:136"
( $at_check_trace; test ! -e pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:136"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_139
#AT_START_140
at_fn_group_banner 140 'daemon-py.at:186' \
  "daemon --detach --monitor - Python2" "            " 16
at_xfail=no
(
  $as_echo "140. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "daemon-py.at:186" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/daemon-py.at:186"
   # Skip this test for Windows, uses Linux specific kill signal
   $as_echo "daemon-py.at:186" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/daemon-py.at:186"






   # Start the daemon and make sure that the pidfile exists immediately.
   # We don't wait for the pidfile to get created because the daemon is
   # supposed to do so before the parent exits.
   { set +x
$as_echo "$at_srcdir/daemon-py.at:186: \$PYTHON \$srcdir/test-daemon.py --pidfile=daemon --detach --monitor"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-daemon.py --pidfile=daemon --detach --monitor" "daemon-py.at:186"
( $at_check_trace; $PYTHON $srcdir/test-daemon.py --pidfile=daemon --detach --monitor
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:186"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

   on_exit 'kill `cat daemon olddaemon newdaemon monitor`'
   { set +x
$as_echo "$at_srcdir/daemon-py.at:186: test -s daemon"
at_fn_check_prepare_trace "daemon-py.at:186"
( $at_check_trace; test -s daemon
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:186"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

   # Check that the pidfile names a running process,
   # and that the parent process of that process is a running process,
   # and that the parent process of that process is init.
   { set +x
$as_echo "$at_srcdir/daemon-py.at:186: kill -0 \`cat daemon\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:186"
( $at_check_trace; kill -0 `cat daemon`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:186"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:186: parent_pid \`cat daemon\` > monitor"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:186"
( $at_check_trace; parent_pid `cat daemon` > monitor
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:186"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:186: kill -0 \`cat monitor\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:186"
( $at_check_trace; kill -0 `cat monitor`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:186"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:186: parent_pid \`cat monitor\` > init"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:186"
( $at_check_trace; parent_pid `cat monitor` > init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:186"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:186: test \`cat init\` != \$\$"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:186"
( $at_check_trace; test `cat init` != $$
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:186"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

   # Kill the daemon process, making it look like a segfault,
   # and wait for a new daemon process to get spawned.
   { set +x
$as_echo "$at_srcdir/daemon-py.at:186: cp daemon olddaemon"
at_fn_check_prepare_trace "daemon-py.at:186"
( $at_check_trace; cp daemon olddaemon
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:186"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:186: kill -SEGV \`cat daemon\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:186"
( $at_check_trace; kill -SEGV `cat daemon`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:186"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

   $as_echo "daemon-py.at:186: waiting while kill -0 \`cat olddaemon\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat olddaemon`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "daemon-py.at:186: wait failed" >&5

    $as_echo "daemon-py.at:186" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon-py.at:186"
fi

   $as_echo "daemon-py.at:186: waiting until test -s daemon && test \`cat daemon\` != \`cat olddaemon\`..." >&5
ovs_wait_cond () {
    test -s daemon && test `cat daemon` != `cat olddaemon`
}
if ovs_wait; then :
else
    $as_echo "daemon-py.at:186: wait failed" >&5

    $as_echo "daemon-py.at:186" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon-py.at:186"
fi

   { set +x
$as_echo "$at_srcdir/daemon-py.at:186: cp daemon newdaemon"
at_fn_check_prepare_trace "daemon-py.at:186"
( $at_check_trace; cp daemon newdaemon
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:186"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

   # Check that the pidfile names a running process,
   # and that the parent process of that process is our child process.
   { set +x
$as_echo "$at_srcdir/daemon-py.at:186: kill -0 \`cat daemon\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:186"
( $at_check_trace; kill -0 `cat daemon`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:186"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:186: diff olddaemon newdaemon"
at_fn_check_prepare_trace "daemon-py.at:186"
( $at_check_trace; diff olddaemon newdaemon
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/daemon-py.at:186"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:186: parent_pid \`cat daemon\` > newmonitor"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:186"
( $at_check_trace; parent_pid `cat daemon` > newmonitor
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:186"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:186: diff monitor newmonitor"
at_fn_check_prepare_trace "daemon-py.at:186"
( $at_check_trace; diff monitor newmonitor
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:186"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:186: kill -0 \`cat newmonitor\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:186"
( $at_check_trace; kill -0 `cat newmonitor`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:186"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:186: parent_pid \`cat newmonitor\` > init"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:186"
( $at_check_trace; parent_pid `cat newmonitor` > init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:186"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:186: test \`cat init\` != \$\$"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:186"
( $at_check_trace; test `cat init` != $$
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:186"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

   # Kill the daemon process with SIGTERM, and wait for the daemon
   # and the monitor processes to go away and the pidfile to get deleted.
   { set +x
$as_echo "$at_srcdir/daemon-py.at:186: kill \`cat daemon\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:186"
( $at_check_trace; kill `cat daemon`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:186"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

   $as_echo "daemon-py.at:186: waiting while kill -0 \`cat monitor\` || kill -0 \`cat newdaemon\` || test -e daemon..." >&5
ovs_wait_cond () {
    if kill -0 `cat monitor` || kill -0 `cat newdaemon` || test -e daemon; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "daemon-py.at:186: wait failed" >&5

    $as_echo "daemon-py.at:186" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon-py.at:186"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_140
#AT_START_141
at_fn_group_banner 141 'daemon-py.at:187' \
  "daemon --detach --monitor - Python3" "            " 16
at_xfail=no
(
  $as_echo "141. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "daemon-py.at:187" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/daemon-py.at:187"
   # Skip this test for Windows, uses Linux specific kill signal
   $as_echo "daemon-py.at:187" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/daemon-py.at:187"






   # Start the daemon and make sure that the pidfile exists immediately.
   # We don't wait for the pidfile to get created because the daemon is
   # supposed to do so before the parent exits.
   { set +x
$as_echo "$at_srcdir/daemon-py.at:187: \$PYTHON3 \$srcdir/test-daemon.py --pidfile=daemon --detach --monitor"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-daemon.py --pidfile=daemon --detach --monitor" "daemon-py.at:187"
( $at_check_trace; $PYTHON3 $srcdir/test-daemon.py --pidfile=daemon --detach --monitor
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:187"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

   on_exit 'kill `cat daemon olddaemon newdaemon monitor`'
   { set +x
$as_echo "$at_srcdir/daemon-py.at:187: test -s daemon"
at_fn_check_prepare_trace "daemon-py.at:187"
( $at_check_trace; test -s daemon
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:187"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

   # Check that the pidfile names a running process,
   # and that the parent process of that process is a running process,
   # and that the parent process of that process is init.
   { set +x
$as_echo "$at_srcdir/daemon-py.at:187: kill -0 \`cat daemon\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:187"
( $at_check_trace; kill -0 `cat daemon`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:187"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:187: parent_pid \`cat daemon\` > monitor"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:187"
( $at_check_trace; parent_pid `cat daemon` > monitor
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:187"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:187: kill -0 \`cat monitor\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:187"
( $at_check_trace; kill -0 `cat monitor`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:187"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:187: parent_pid \`cat monitor\` > init"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:187"
( $at_check_trace; parent_pid `cat monitor` > init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:187"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:187: test \`cat init\` != \$\$"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:187"
( $at_check_trace; test `cat init` != $$
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:187"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

   # Kill the daemon process, making it look like a segfault,
   # and wait for a new daemon process to get spawned.
   { set +x
$as_echo "$at_srcdir/daemon-py.at:187: cp daemon olddaemon"
at_fn_check_prepare_trace "daemon-py.at:187"
( $at_check_trace; cp daemon olddaemon
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:187"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:187: kill -SEGV \`cat daemon\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:187"
( $at_check_trace; kill -SEGV `cat daemon`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:187"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

   $as_echo "daemon-py.at:187: waiting while kill -0 \`cat olddaemon\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat olddaemon`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "daemon-py.at:187: wait failed" >&5

    $as_echo "daemon-py.at:187" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon-py.at:187"
fi

   $as_echo "daemon-py.at:187: waiting until test -s daemon && test \`cat daemon\` != \`cat olddaemon\`..." >&5
ovs_wait_cond () {
    test -s daemon && test `cat daemon` != `cat olddaemon`
}
if ovs_wait; then :
else
    $as_echo "daemon-py.at:187: wait failed" >&5

    $as_echo "daemon-py.at:187" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon-py.at:187"
fi

   { set +x
$as_echo "$at_srcdir/daemon-py.at:187: cp daemon newdaemon"
at_fn_check_prepare_trace "daemon-py.at:187"
( $at_check_trace; cp daemon newdaemon
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:187"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

   # Check that the pidfile names a running process,
   # and that the parent process of that process is our child process.
   { set +x
$as_echo "$at_srcdir/daemon-py.at:187: kill -0 \`cat daemon\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:187"
( $at_check_trace; kill -0 `cat daemon`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:187"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:187: diff olddaemon newdaemon"
at_fn_check_prepare_trace "daemon-py.at:187"
( $at_check_trace; diff olddaemon newdaemon
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/daemon-py.at:187"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:187: parent_pid \`cat daemon\` > newmonitor"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:187"
( $at_check_trace; parent_pid `cat daemon` > newmonitor
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:187"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:187: diff monitor newmonitor"
at_fn_check_prepare_trace "daemon-py.at:187"
( $at_check_trace; diff monitor newmonitor
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:187"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:187: kill -0 \`cat newmonitor\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:187"
( $at_check_trace; kill -0 `cat newmonitor`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:187"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:187: parent_pid \`cat newmonitor\` > init"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:187"
( $at_check_trace; parent_pid `cat newmonitor` > init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:187"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:187: test \`cat init\` != \$\$"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:187"
( $at_check_trace; test `cat init` != $$
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:187"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

   # Kill the daemon process with SIGTERM, and wait for the daemon
   # and the monitor processes to go away and the pidfile to get deleted.
   { set +x
$as_echo "$at_srcdir/daemon-py.at:187: kill \`cat daemon\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:187"
( $at_check_trace; kill `cat daemon`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:187"
$at_failed && at_fn_log_failure  \
"daemon" \
"olddaemon" \
"newdaemon" \
"monitor" \
"newmonitor" \
"init"
$at_traceon; }

   $as_echo "daemon-py.at:187: waiting while kill -0 \`cat monitor\` || kill -0 \`cat newdaemon\` || test -e daemon..." >&5
ovs_wait_cond () {
    if kill -0 `cat monitor` || kill -0 `cat newdaemon` || test -e daemon; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "daemon-py.at:187: wait failed" >&5

    $as_echo "daemon-py.at:187" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/daemon-py.at:187"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_141
#AT_START_142
at_fn_group_banner 142 'daemon-py.at:199' \
  "daemon --detach startup errors - Python2" "       " 16
at_xfail=no
(
  $as_echo "142. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "daemon-py.at:199" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/daemon-py.at:199"

   { set +x
$as_echo "$at_srcdir/daemon-py.at:199: \$PYTHON \$srcdir/test-daemon.py --pidfile=pid --detach --bail"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-daemon.py --pidfile=pid --detach --bail" "daemon-py.at:199"
( $at_check_trace; $PYTHON $srcdir/test-daemon.py --pidfile=pid --detach --bail
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/daemon-py.at:199"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:199: grep 'test-daemon.py: exiting after daemonize_start() as requested' stderr"
at_fn_check_prepare_trace "daemon-py.at:199"
( $at_check_trace; grep 'test-daemon.py: exiting after daemonize_start() as requested' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:199"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:199: test ! -s pid"
at_fn_check_prepare_trace "daemon-py.at:199"
( $at_check_trace; test ! -s pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:199"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_142
#AT_START_143
at_fn_group_banner 143 'daemon-py.at:200' \
  "daemon --detach startup errors - Python3" "       " 16
at_xfail=no
(
  $as_echo "143. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "daemon-py.at:200" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/daemon-py.at:200"

   { set +x
$as_echo "$at_srcdir/daemon-py.at:200: \$PYTHON3 \$srcdir/test-daemon.py --pidfile=pid --detach --bail"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-daemon.py --pidfile=pid --detach --bail" "daemon-py.at:200"
( $at_check_trace; $PYTHON3 $srcdir/test-daemon.py --pidfile=pid --detach --bail
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/daemon-py.at:200"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:200: grep 'test-daemon.py: exiting after daemonize_start() as requested' stderr"
at_fn_check_prepare_trace "daemon-py.at:200"
( $at_check_trace; grep 'test-daemon.py: exiting after daemonize_start() as requested' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:200"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:200: test ! -s pid"
at_fn_check_prepare_trace "daemon-py.at:200"
( $at_check_trace; test ! -s pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:200"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_143
#AT_START_144
at_fn_group_banner 144 'daemon-py.at:212' \
  "daemon --detach --monitor startup errors - Python2" "" 16
at_xfail=no
(
  $as_echo "144. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "daemon-py.at:212" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/daemon-py.at:212"

   { set +x
$as_echo "$at_srcdir/daemon-py.at:212: \$PYTHON \$srcdir/test-daemon.py --pidfile=pid --detach --monitor --bail"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-daemon.py --pidfile=pid --detach --monitor --bail" "daemon-py.at:212"
( $at_check_trace; $PYTHON $srcdir/test-daemon.py --pidfile=pid --detach --monitor --bail
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/daemon-py.at:212"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:212: grep 'test-daemon.py: exiting after daemonize_start() as requested' stderr"
at_fn_check_prepare_trace "daemon-py.at:212"
( $at_check_trace; grep 'test-daemon.py: exiting after daemonize_start() as requested' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:212"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:212: test ! -s pid"
at_fn_check_prepare_trace "daemon-py.at:212"
( $at_check_trace; test ! -s pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:212"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_144
#AT_START_145
at_fn_group_banner 145 'daemon-py.at:213' \
  "daemon --detach --monitor startup errors - Python3" "" 16
at_xfail=no
(
  $as_echo "145. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "daemon-py.at:213" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/daemon-py.at:213"

   { set +x
$as_echo "$at_srcdir/daemon-py.at:213: \$PYTHON3 \$srcdir/test-daemon.py --pidfile=pid --detach --monitor --bail"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-daemon.py --pidfile=pid --detach --monitor --bail" "daemon-py.at:213"
( $at_check_trace; $PYTHON3 $srcdir/test-daemon.py --pidfile=pid --detach --monitor --bail
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/daemon-py.at:213"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:213: grep 'test-daemon.py: exiting after daemonize_start() as requested' stderr"
at_fn_check_prepare_trace "daemon-py.at:213"
( $at_check_trace; grep 'test-daemon.py: exiting after daemonize_start() as requested' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:213"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:213: test ! -s pid"
at_fn_check_prepare_trace "daemon-py.at:213"
( $at_check_trace; test ! -s pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:213"
$at_failed && at_fn_log_failure  \
"pid"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_145
#AT_START_146
at_fn_group_banner 146 'daemon-py.at:238' \
  "daemon --detach closes standard fds - Python2" "  " 16
at_xfail=no
(
  $as_echo "146. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "daemon-py.at:238" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/daemon-py.at:238"
   # Skip this test for Windows, uses Linux specific kill signal
   $as_echo "daemon-py.at:238" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/daemon-py.at:238"



   { set +x
$as_echo "$at_srcdir/daemon-py.at:238: (yes 2>stderr; echo \$? > status) | \$PYTHON \$srcdir/test-daemon.py --pidfile=pid --detach"
at_fn_check_prepare_notrace 'a shell pipeline' "daemon-py.at:238"
( $at_check_trace; (yes 2>stderr; echo $? > status) | $PYTHON $srcdir/test-daemon.py --pidfile=pid --detach
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:238"
$at_failed && at_fn_log_failure  \
"pid" \
"status" \
"stderr"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:238: kill \`cat pid\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:238"
( $at_check_trace; kill `cat pid`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:238"
$at_failed && at_fn_log_failure  \
"pid" \
"status" \
"stderr"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:238: test -s status"
at_fn_check_prepare_trace "daemon-py.at:238"
( $at_check_trace; test -s status
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:238"
$at_failed && at_fn_log_failure  \
"pid" \
"status" \
"stderr"
$at_traceon; }

   if grep '[bB]roken pipe' stderr >/dev/null 2>&1; then
     # Something in the environment caused SIGPIPE to be ignored, but
     # 'yes' at least told us that it got EPIPE.  Good enough; we know
     # that stdout was closed.
     :
   else
     # Otherwise make sure that 'yes' died from SIGPIPE.
     { set +x
$as_echo "$at_srcdir/daemon-py.at:238: kill -l \`cat status\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:238"
( $at_check_trace; kill -l `cat status`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "PIPE
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:238"
$at_failed && at_fn_log_failure  \
"pid" \
"status" \
"stderr"
$at_traceon; }

   fi
     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_146
#AT_START_147
at_fn_group_banner 147 'daemon-py.at:239' \
  "daemon --detach closes standard fds - Python3" "  " 16
at_xfail=no
(
  $as_echo "147. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "daemon-py.at:239" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/daemon-py.at:239"
   # Skip this test for Windows, uses Linux specific kill signal
   $as_echo "daemon-py.at:239" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/daemon-py.at:239"



   { set +x
$as_echo "$at_srcdir/daemon-py.at:239: (yes 2>stderr; echo \$? > status) | \$PYTHON3 \$srcdir/test-daemon.py --pidfile=pid --detach"
at_fn_check_prepare_notrace 'a shell pipeline' "daemon-py.at:239"
( $at_check_trace; (yes 2>stderr; echo $? > status) | $PYTHON3 $srcdir/test-daemon.py --pidfile=pid --detach
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:239"
$at_failed && at_fn_log_failure  \
"pid" \
"status" \
"stderr"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:239: kill \`cat pid\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:239"
( $at_check_trace; kill `cat pid`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:239"
$at_failed && at_fn_log_failure  \
"pid" \
"status" \
"stderr"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:239: test -s status"
at_fn_check_prepare_trace "daemon-py.at:239"
( $at_check_trace; test -s status
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:239"
$at_failed && at_fn_log_failure  \
"pid" \
"status" \
"stderr"
$at_traceon; }

   if grep '[bB]roken pipe' stderr >/dev/null 2>&1; then
     # Something in the environment caused SIGPIPE to be ignored, but
     # 'yes' at least told us that it got EPIPE.  Good enough; we know
     # that stdout was closed.
     :
   else
     # Otherwise make sure that 'yes' died from SIGPIPE.
     { set +x
$as_echo "$at_srcdir/daemon-py.at:239: kill -l \`cat status\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:239"
( $at_check_trace; kill -l `cat status`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "PIPE
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:239"
$at_failed && at_fn_log_failure  \
"pid" \
"status" \
"stderr"
$at_traceon; }

   fi
     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_147
#AT_START_148
at_fn_group_banner 148 'daemon-py.at:265' \
  "daemon --detach --monitor closes standard fds - Python2" "" 16
at_xfail=no
(
  $as_echo "148. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "daemon-py.at:265" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/daemon-py.at:265"
   # Skip this test for Windows, uses Linux specific kill signal
   $as_echo "daemon-py.at:265" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/daemon-py.at:265"



   { set +x
$as_echo "$at_srcdir/daemon-py.at:265: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "daemon-py.at:265"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:265"
$at_failed && at_fn_log_failure  \
"pid" \
"status" \
"stderr"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:265: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "daemon-py.at:265"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:265"
$at_failed && at_fn_log_failure  \
"pid" \
"status" \
"stderr"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:265: (yes 2>stderr; echo \$? > status) | \$PYTHON \$srcdir/test-daemon.py --pidfile=pid --detach"
at_fn_check_prepare_notrace 'a shell pipeline' "daemon-py.at:265"
( $at_check_trace; (yes 2>stderr; echo $? > status) | $PYTHON $srcdir/test-daemon.py --pidfile=pid --detach
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:265"
$at_failed && at_fn_log_failure  \
"pid" \
"status" \
"stderr"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:265: kill \`cat pid\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:265"
( $at_check_trace; kill `cat pid`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:265"
$at_failed && at_fn_log_failure  \
"pid" \
"status" \
"stderr"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:265: test -s status"
at_fn_check_prepare_trace "daemon-py.at:265"
( $at_check_trace; test -s status
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:265"
$at_failed && at_fn_log_failure  \
"pid" \
"status" \
"stderr"
$at_traceon; }

   if grep '[bB]roken pipe' stderr >/dev/null 2>&1; then
     # Something in the environment caused SIGPIPE to be ignored, but
     # 'yes' at least told us that it got EPIPE.  Good enough; we know
     # that stdout was closed.
     :
   else
     # Otherwise make sure that 'yes' died from SIGPIPE.
     { set +x
$as_echo "$at_srcdir/daemon-py.at:265: kill -l \`cat status\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:265"
( $at_check_trace; kill -l `cat status`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "PIPE
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:265"
$at_failed && at_fn_log_failure  \
"pid" \
"status" \
"stderr"
$at_traceon; }

   fi
     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_148
#AT_START_149
at_fn_group_banner 149 'daemon-py.at:266' \
  "daemon --detach --monitor closes standard fds - Python3" "" 16
at_xfail=no
(
  $as_echo "149. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "daemon-py.at:266" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/daemon-py.at:266"
   # Skip this test for Windows, uses Linux specific kill signal
   $as_echo "daemon-py.at:266" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/daemon-py.at:266"



   { set +x
$as_echo "$at_srcdir/daemon-py.at:266: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "daemon-py.at:266"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:266"
$at_failed && at_fn_log_failure  \
"pid" \
"status" \
"stderr"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:266: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "daemon-py.at:266"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:266"
$at_failed && at_fn_log_failure  \
"pid" \
"status" \
"stderr"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:266: (yes 2>stderr; echo \$? > status) | \$PYTHON3 \$srcdir/test-daemon.py --pidfile=pid --detach"
at_fn_check_prepare_notrace 'a shell pipeline' "daemon-py.at:266"
( $at_check_trace; (yes 2>stderr; echo $? > status) | $PYTHON3 $srcdir/test-daemon.py --pidfile=pid --detach
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:266"
$at_failed && at_fn_log_failure  \
"pid" \
"status" \
"stderr"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:266: kill \`cat pid\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:266"
( $at_check_trace; kill `cat pid`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:266"
$at_failed && at_fn_log_failure  \
"pid" \
"status" \
"stderr"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/daemon-py.at:266: test -s status"
at_fn_check_prepare_trace "daemon-py.at:266"
( $at_check_trace; test -s status
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:266"
$at_failed && at_fn_log_failure  \
"pid" \
"status" \
"stderr"
$at_traceon; }

   if grep '[bB]roken pipe' stderr >/dev/null 2>&1; then
     # Something in the environment caused SIGPIPE to be ignored, but
     # 'yes' at least told us that it got EPIPE.  Good enough; we know
     # that stdout was closed.
     :
   else
     # Otherwise make sure that 'yes' died from SIGPIPE.
     { set +x
$as_echo "$at_srcdir/daemon-py.at:266: kill -l \`cat status\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "daemon-py.at:266"
( $at_check_trace; kill -l `cat status`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "PIPE
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/daemon-py.at:266"
$at_failed && at_fn_log_failure  \
"pid" \
"status" \
"stderr"
$at_traceon; }

   fi
     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_149
#AT_START_150
at_fn_group_banner 150 'ofp-actions.at:3' \
  "OpenFlow 1.0 action translation" "                " 17
at_xfail=no
(
  $as_echo "150. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >test-data <<'_ATEOF'
# actions=LOCAL
0000 0008 fffe 04d2

# actions=CONTROLLER:1234
0000 0008 fffd 04d2

# actions=mod_vlan_vid:9
0001 0008 0009 0000

# actions=mod_vlan_pcp:6
0002 0008 06 000000

# actions=strip_vlan
0003 0008 00000000

# actions=mod_dl_src:00:11:22:33:44:55
0004 0010 001122334455 000000000000

# actions=mod_dl_dst:10:20:30:40:50:60
0005 0010 102030405060 000000000000

# actions=mod_nw_src:1.2.3.4
0006 0008 01020304

# actions=mod_nw_dst:192.168.0.1
0007 0008 c0a80001

# actions=mod_nw_tos:48
0008 0008 30 000000

# actions=mod_tp_src:80
0009 0008 0050 0000

# actions=mod_tp_dst:443
000a 0008 01bb 0000

# actions=enqueue:10:55
000b 0010 000a 000000000000 00000037

# actions=resubmit:5
ffff 0010 00002320 0001 0005 00000000

# actions=set_tunnel:0x12345678
ffff 0010 00002320 0002 0000 12345678

# actions=set_queue:2309737729
ffff 0010 00002320 0004 0000 89abcd01

# actions=pop_queue
ffff 0010 00002320 0005 000000000000

# actions=move:NXM_OF_IN_PORT[]->NXM_OF_VLAN_TCI[]
ffff 0018 00002320 0006 0010 0000 0000 00000002 00000802

# actions=load:0xf009->NXM_OF_VLAN_TCI[]
ffff 0018 00002320 0007 000f 00000802 000000000000f009

# actions=note:11.e9.9a.ad.67.f3
ffff 0010 00002320 0008 11e99aad67f3

# actions=set_tunnel64:0xc426384d49c53d60
ffff 0018 00002320 0009 000000000000 c426384d49c53d60

# actions=set_tunnel64:0x885f3298
ffff 0018 00002320 0009 000000000000 00000000885f3298

# bad OpenFlow10 actions: OFPBIC_UNSUP_INST
& ofp_actions|WARN|write_metadata instruction not allowed here
ffff 0020 00002320 0016 000000000000 fedcba9876543210 ffffffffffffffff

# bad OpenFlow10 actions: OFPBIC_UNSUP_INST
& ofp_actions|WARN|write_metadata instruction not allowed here
ffff 0020 00002320 0016 000000000000 fedcba9876543210 ffff0000ffff0000

# actions=multipath(eth_src,50,modulo_n,1,0,NXM_NX_REG0[])
ffff 0020 00002320 000a 0000 0032 0000 0000 0000 0000 0000 0000 001f 00010004

# actions=bundle(eth_src,0,hrw,ofport,slaves:4,8)
ffff 0028 00002320 000c 0001 0000 0000 00000002 0002 0000 00000000 00000000 0004 0008 00000000

# actions=bundle_load(eth_src,0,hrw,ofport,NXM_NX_REG0[],slaves:4,8)
ffff 0028 00002320 000d 0001 0000 0000 00000002 0002 001f 00010004 00000000 0004 0008 00000000

# actions=resubmit(10,5)
ffff 0010 00002320 000e 000a 05 000000

# actions=resubmit(10,5,ct)
ffff 0010 00002320 002c 000a 05 000000

# actions=output:NXM_NX_REG1[5..10]
ffff 0018 00002320 000f 0145 00010204 ffff 000000000000

# actions=learn(table=2,idle_timeout=10,hard_timeout=20,fin_idle_timeout=2,fin_hard_timeout=4,priority=80,cookie=0x123456789abcdef0,NXM_OF_VLAN_TCI[0..11],NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[],output:NXM_OF_IN_PORT[])
ffff 0048 00002320 0010 000a 0014 0050 123456789abcdef0 0000 02 00 0002 0004 000c 00000802 0000 00000802 0000 0030 00000406 0000 00000206 0000 1010 00000002 0000 00000000

# actions=exit
ffff 0010 00002320 0011 000000000000

# actions=dec_ttl
ffff 0010 00002320 0012 000000000000

# actions=fin_timeout(idle_timeout=10,hard_timeout=20)
ffff 0010 00002320 0013 000a 0014 0000

# actions=controller(reason=invalid_ttl,max_len=1234,id=5678)
ffff 0010 00002320 0014 04d2 162e 02 00

# actions=controller(reason=invalid_ttl,max_len=1234,id=5678,userdata=01.02.03.04.05,pause)
ffff 0040 00002320 0025   000000000000 0000 0008 04d2   0000 0001 0008 162e   0000 0002 0005 02   000000 0003 0009 0102030405   00000000000000 0004 0004   00000000

# actions=dec_ttl(32768,12345,90,765,1024)
ffff 0020 00002320 0015 000500000000 80003039005A02fd 0400000000000000

# actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
ffff 0018 00002320 001d 3039 00005BA0 00008707 0000B26E

# actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678,sampling_port=56789)
ffff 0020 00002320 0026 3039 00005BA0 00008707 0000B26E DDD50000 00000000

# actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678,sampling_port=56789,egress)
ffff 0020 00002320 0029 3039 00005BA0 00008707 0000B26E DDD50200 00000000

# bad OpenFlow10 actions: OFPBAC_BAD_LEN
& ofp_actions|WARN|OpenFlow action OFPAT_OUTPUT length 240 exceeds action buffer length 8
& ofp_actions|WARN|bad action at offset 0 (OFPBAC_BAD_LEN):
& 00000000  00 00 00 f0 00 00 00 00-
00 00 00 f0 00 00 00 00

# bad OpenFlow10 actions: OFPBAC_BAD_LEN
& ofp_actions|WARN|OpenFlow action OFPAT_OUTPUT length 16 not in valid range [8,8]
& ofp_actions|WARN|bad action at offset 0 (OFPBAC_BAD_LEN):
& 00000000  00 00 00 10 ff fe ff ff-00 00 00 00 00 00 00 00
00 00 00 10 ff fe ff ff 00 00 00 00 00 00 00 00

# bad OpenFlow10 actions: OFPBAC_BAD_LEN
& ofp_actions|WARN|OpenFlow action NXAST_DEC_TTL_CNT_IDS length 17 is not a multiple of 8
ffff 0011 00002320 0015 0001 00000000 0000000000000000

# bad OpenFlow10 actions: OFPBAC_BAD_OUT_PORT
0000 0008 ffff 0000

# actions=ct()
ffff 0018 00002320 0023 0000 00000000 0000 FF 000000 0000

# actions=ct(commit)
ffff 0018 00002320 0023 0001 00000000 0000 FF 000000 0000

# actions=ct(commit,force)
ffff 0018 00002320 0023 0003 00000000 0000 FF 000000 0000

# bad OpenFlow10 actions: OFPBAC_BAD_ARGUMENT
ffff 0018 00002320 0023 0002 00000000 0000 FF 000000 0000

# actions=ct(table=10)
ffff 0018 00002320 0023 0000 00000000 0000 0A 000000 0000

# actions=ct(zone=10)
ffff 0018 00002320 0023 0000 00000000 000A FF 000000 0000

# actions=ct(zone=NXM_NX_REG0[0..15])
ffff 0018 00002320 0023 0000 00010004 000F FF 000000 0000

# bad OpenFlow10 actions: OFPBAC_BAD_SET_LEN
ffff 0018 00002320 0023 0000 00010004 0007 FF 000000 0000

# bad OpenFlow10 actions: OFPBAC_BAD_SET_LEN
ffff 0018 00002320 0023 0000 00010004 001F FF 000000 0000

# actions=ct(commit,exec(load:0xf009->NXM_NX_CT_MARK[]))
ffff 0030 00002320 0023 0001 00000000 0000 FF 000000 0000 ffff 0018 00002320 0007 001f 0001d604 000000000000f009

# actions=ct(commit,force,exec(load:0xf009->NXM_NX_CT_MARK[]))
ffff 0030 00002320 0023 0003 00000000 0000 FF 000000 0000 ffff 0018 00002320 0007 001f 0001d604 000000000000f009

# actions=ct(commit,exec(load:0->NXM_NX_CT_LABEL[64..127],load:0x1d->NXM_NX_CT_LABEL[0..63]))
ffff 0048 00002320 0023 0001 00000000 0000 FF 000000 0000 ffff 0018 00002320 0007 103f 0001d810 0000 0000 0000 0000 ffff 0018 00002320 0007 003f 0001d810 0000 0000 0000 001d

# bad OpenFlow10 actions: OFPBAC_BAD_SET_ARGUMENT
& ofp_actions|WARN|cannot set CT fields outside of ct action
ffff 0018 00002320 0007 001f 0001d604 000000000000f009

# bad OpenFlow10 actions: OFPBAC_BAD_SET_ARGUMENT
& meta_flow|WARN|destination field ct_zone is not writable
ffff 0030 00002320 0023 0001 00000000 0000 FF 000000 0000 ffff 0018 00002320 0007 000f 0001d504 000000000000f009

# bad OpenFlow10 actions: OFPBAC_BAD_ARGUMENT
& ofp_actions|WARN|ct action doesn't support nested action ct
ffff 0030 00002320 0023 0001 00000000 0000 FF 000000 0000 ffff 0018 00002320 0023 0000 00000000 0000 FF 000000 0000

# bad OpenFlow10 actions: OFPBAC_BAD_ARGUMENT
& ofp_actions|WARN|ct action doesn't support nested modification of reg0
ffff 0030 00002320 0023 0001 00000000 0000 FF 000000 0000 ffff 0018 00002320 0007 001f 00010004 000000000000f009

# actions=ct(alg=ftp)
ffff 0018 00002320 0023 0000 00000000 0000 FF 000000 0015

# actions=ct(alg=tftp)
ffff 0018 00002320 0023 0000 00000000 0000 FF 000000 0045

# actions=ct(commit,nat(src))
ffff 0028 00002320 0023 0001 00000000 0000 FF 000000 0000 ffff 0010 00002320 0024 00 00 0001 0000

# actions=ct(commit,nat(dst))
ffff 0028 00002320 0023 0001 00000000 0000 FF 000000 0000 ffff 0010 00002320 0024 00 00 0002 0000

# actions=ct(nat)
ffff 0028 00002320 0023 0000 00000000 0000 FF 000000 0000 ffff 0010 00002320 0024 00 00 0000 0000

# actions=ct(commit,nat(src=10.0.0.240,random))
ffff 0030 00002320 0023 0001 00000000 0000 FF 000000 0000 ffff 0018 00002320 0024 00 00 0011 0001 0a0000f0 00000000

# actions=ct(commit,nat(src=10.0.0.240:32768-65535,random))
ffff 0030 00002320 0023 0001 00000000 0000 FF 000000 0000 ffff 0018 00002320 0024 00 00 0011 0031 0a0000f0 8000ffff

# actions=ct(commit,nat(dst=10.0.0.128-10.0.0.254,hash))
ffff 0030 00002320 0023 0001 00000000 0000 FF 000000 0000 ffff 0018 00002320 0024 00 00 000a 0003 0a000080 0a0000fe

# actions=ct(commit,nat(src=10.0.0.240-10.0.0.254:32768-65535,persistent))
ffff 0038 00002320 0023 0001 00000000 0000 FF 000000 0000 ffff 0020 00002320 0024 00 00 0005 0033 0a0000f0 0a0000fe 8000ffff 00000000

# actions=ct(commit,nat(src=fe80::20c:29ff:fe88:a18b,random))
ffff 0038 00002320 0023 0001 00000000 0000 FF 000000 0000 ffff 0020 00002320 0024 00 00 0011 0004 fe800000 00000000 020c 29ff fe88 a18b

# actions=ct(commit,nat(src=fe80::20c:29ff:fe88:1-fe80::20c:29ff:fe88:a18b,random))
ffff 0048 00002320 0023 0001 00000000 0000 FF 000000 0000 ffff 0030 00002320 0024 00 00 0011 000c fe800000 00000000 020c 29ff fe88 0001 fe800000 00000000 020c 29ff fe88 a18b

# actions=ct(commit,nat(src=[fe80::20c:29ff:fe88:1]-[fe80::20c:29ff:fe88:a18b]:255-4096,random))
ffff 0050 00002320 0023 0001 00000000 0000 FF 000000 0000 ffff 0038 00002320 0024 00 00 0011 003c fe800000 00000000 020c 29ff fe88 0001 fe800000 00000000 020c 29ff fe88 a18b 00ff1000 00000000

# actions=ct_clear
ffff 0010 00002320 002b 000000000000

# actions=output(port=1,max_len=100)
ffff 0010 00002320 0027 0001 00000064

# actions=clone(mod_vlan_vid:5,output:10)
ffff 0020 00002320 002a 000000000000 0001 0008 0005 0000 0000 0008 000a 0000

# actions=learn(table=2,priority=0,NXM_OF_VLAN_TCI[0..11],NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[],output:NXM_OF_IN_PORT[])
ffff 0050 00002320 002d 0000 0000 0000 0000000000000000 0000 02 00 0000 0000 00000000 0000 0000 000c 00000802 0000 00000802 0000 0030 00000406 0000 00000206 0000 1010 00000002 0000 00000000

# actions=learn(table=2,idle_timeout=10,hard_timeout=20,fin_idle_timeout=2,fin_hard_timeout=4,priority=80,cookie=0x123456789abcdef0,limit=1,NXM_OF_VLAN_TCI[0..11],NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[],output:NXM_OF_IN_PORT[])
ffff 0050 00002320 002d 000a 0014 0050 123456789abcdef0 0000 02 00 0002 0004 00000001 0000 0000 000c 00000802 0000 00000802 0000 0030 00000406 0000 00000206 0000 1010 00000002 0000 00000000

# actions=learn(table=2,idle_timeout=10,hard_timeout=20,fin_idle_timeout=2,fin_hard_timeout=4,priority=80,cookie=0x123456789abcdef0,limit=1,result_dst=NXM_NX_REG0[8],NXM_OF_VLAN_TCI[0..11],NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[],output:NXM_OF_IN_PORT[])
ffff 0050 00002320 002d 000a 0014 0050 123456789abcdef0 0004 02 00 0002 0004 00000001 0008 0000 00010004 000c 00000802 0000 00000802 0000 0030 00000406 0000 00000206 0000 1010 00000002 0000

# actions=group:5
ffff 0010 00002320 0028 0000 00000005

# bad OpenFlow10 actions: NXBRC_MUST_BE_ZERO
ffff 0018 00002320 0025 0000 0005 0000 1122334455 000005

# bad OpenFlow10 actions: NXBRC_MUST_BE_ZERO
ffff 0018 00002320 0025 0000 0005 5000 1122334455 000000

# bad OpenFlow10 actions: OFPBAC_BAD_ARGUMENT
ffff 0048 00002320 0023 0001 00000000 0000 FF 000000 0000 ffff 0030 00002320 0024 00 00 0011 000c fe800000 00000000 020c 29ff fe88 a18b fe800000 00000000 020c 29ff fe88 0001

_ATEOF

sed '/^[#&]/d' < test-data > input.txt
sed -n 's/^# //p; /^$/p' < test-data > expout
sed -n 's/^& //p' < test-data > experr



{ set +x
$as_echo "$at_srcdir/ofp-actions.at:320: ovs-ofctl '-vPATTERN:console:%c|%p|%m' parse-actions OpenFlow10 < input.txt"
at_fn_check_prepare_notrace 'a shell pipeline' "ofp-actions.at:320"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' parse-actions OpenFlow10 < input.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:320"
$at_failed && at_fn_log_failure  \
"input.txt" \
"expout" \
"experr"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_150
#AT_START_151
at_fn_group_banner 151 'ofp-actions.at:325' \
  "OpenFlow 1.0 \"instruction\" translations" "        " 17
at_xfail=no
(
  $as_echo "151. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >test-data <<'_ATEOF'
# actions=LOCAL
0000 0008 fffe 04d2

# actions=mod_dl_src:00:11:22:33:44:55
0004 0010 001122334455 000000000000

# actions=write_metadata:0xfedcba9876543210
ffff 0020 00002320 0016 000000000000 fedcba9876543210 ffffffffffffffff

# actions=write_metadata:0xfedcba9876543210/0xffff0000ffff0000
ffff 0020 00002320 0016 000000000000 fedcba9876543210 ffff0000ffff0000

_ATEOF

sed '/^[#&]/d' < test-data > input.txt
sed -n 's/^# //p; /^$/p' < test-data > expout
sed -n 's/^& //p' < test-data > experr



{ set +x
$as_echo "$at_srcdir/ofp-actions.at:350: ovs-ofctl '-vPATTERN:console:%c|%p|%m' parse-instructions OpenFlow10 < input.txt"
at_fn_check_prepare_notrace 'a shell pipeline' "ofp-actions.at:350"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' parse-instructions OpenFlow10 < input.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:350"
$at_failed && at_fn_log_failure  \
"input.txt" \
"expout" \
"experr"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_151
#AT_START_152
at_fn_group_banner 152 'ofp-actions.at:355' \
  "OpenFlow 1.1 action translation" "                " 17
at_xfail=no
(
  $as_echo "152. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >test-data <<'_ATEOF'
# actions=LOCAL
0000 0010 fffffffe 04d2 000000000000

# actions=CONTROLLER:1234
0000 0010 fffffffd 04d2 000000000000

# actions=set_vlan_vid:9
0001 0008 0009 0000

# actions=set_vlan_pcp:6
0002 0008 06 000000

# actions=mod_dl_src:00:11:22:33:44:55
0003 0010 001122334455 000000000000

# actions=mod_dl_dst:10:20:30:40:50:60
0004 0010 102030405060 000000000000

# actions=mod_nw_src:1.2.3.4
0005 0008 01020304

# actions=mod_nw_dst:192.168.0.1
0006 0008 c0a80001

# actions=mod_nw_tos:48
0007 0008 30 000000

# actions=mod_nw_ecn:2
0008 0008 02 000000

# actions=mod_tp_src:80
0009 0008 0050 0000

# actions=mod_tp_dst:443
000a 0008 01bb 0000

# actions=pop_vlan
0012 0008 00000000

# actions=set_queue:2309737729
0015 0008 89abcd01

# actions=push_vlan:0x8100
0011 0008 8100 0000

# actions=resubmit:5
ffff 0010 00002320 0001 0005 00000000

# actions=set_tunnel:0x12345678
ffff 0010 00002320 0002 0000 12345678

# actions=pop_queue
ffff 0010 00002320 0005 000000000000

# actions=move:NXM_OF_IN_PORT[]->NXM_OF_VLAN_TCI[]
ffff 0018 00002320 0006 0010 0000 0000 00000002 00000802

# actions=load:0xf009->NXM_OF_VLAN_TCI[]
ffff 0018 00002320 0007 000f 00000802 000000000000f009

# actions=note:11.e9.9a.ad.67.f3
ffff 0010 00002320 0008 11e99aad67f3

# actions=set_tunnel64:0xc426384d49c53d60
ffff 0018 00002320 0009 000000000000 c426384d49c53d60

# actions=set_tunnel64:0x885f3298
ffff 0018 00002320 0009 000000000000 00000000885f3298

& ofp_actions|WARN|write_metadata instruction not allowed here
# bad OpenFlow11 actions: OFPBIC_UNSUP_INST
ffff 0020 00002320 0016 000000000000 fedcba9876543210 ffffffffffffffff

# actions=multipath(eth_src,50,modulo_n,1,0,NXM_NX_REG0[])
ffff 0020 00002320 000a 0000 0032 0000 0000 0000 0000 0000 0000 001f 00010004

# actions=bundle(eth_src,0,hrw,ofport,slaves:4,8)
ffff 0028 00002320 000c 0001 0000 0000 00000002 0002 0000 00000000 00000000 0004 0008 00000000

# actions=bundle_load(eth_src,0,hrw,ofport,NXM_NX_REG0[],slaves:4,8)
ffff 0028 00002320 000d 0001 0000 0000 00000002 0002 001f 00010004 00000000 0004 0008 00000000

# actions=resubmit(10,5)
ffff 0010 00002320 000e 000a 05 000000

# actions=resubmit(10,5,ct)
ffff 0010 00002320 002c 000a 05 000000

# actions=output:NXM_NX_REG1[5..10]
ffff 0018 00002320 000f 0145 00010204 ffff 000000000000

# actions=learn(table=2,idle_timeout=10,hard_timeout=20,fin_idle_timeout=2,fin_hard_timeout=4,priority=80,cookie=0x123456789abcdef0,NXM_OF_VLAN_TCI[0..11],NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[],output:NXM_OF_IN_PORT[])
ffff 0048 00002320 0010 000a 0014 0050 123456789abcdef0 0000 02 00 0002 0004 000c 00000802 0000 00000802 0000 0030 00000406 0000 00000206 0000 1010 00000002 0000 00000000

# actions=exit
ffff 0010 00002320 0011 000000000000

# actions=dec_ttl
0018 0008 00000000

# actions=fin_timeout(idle_timeout=10,hard_timeout=20)
ffff 0010 00002320 0013 000a 0014 0000

# actions=controller(reason=invalid_ttl,max_len=1234,id=5678)
ffff 0010 00002320 0014 04d2 162e 02 00

# actions=dec_ttl(32768,12345,90,765,1024)
ffff 0020 00002320 0015 000500000000 80003039005A02fd 0400000000000000

# actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
ffff 0018 00002320 001d 3039 00005BA0 00008707 0000B26E

# bad OpenFlow11 actions: OFPBAC_BAD_OUT_PORT
& ofp_actions|WARN|bad action at offset 0 (OFPBAC_BAD_OUT_PORT):
& 00000000  00 00 00 10 ff ff ff ff-00 00 00 00 00 00 00 00
0000 0010 ffffffff 0000 000000000000

_ATEOF

sed '/^[#&]/d' < test-data > input.txt
sed -n 's/^# //p; /^$/p' < test-data > expout
sed -n 's/^& //p' < test-data > experr



{ set +x
$as_echo "$at_srcdir/ofp-actions.at:493: ovs-ofctl '-vPATTERN:console:%c|%p|%m' parse-actions OpenFlow11 < input.txt"
at_fn_check_prepare_notrace 'a shell pipeline' "ofp-actions.at:493"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' parse-actions OpenFlow11 < input.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:493"
$at_failed && at_fn_log_failure  \
"input.txt" \
"expout" \
"experr"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_152
#AT_START_153
at_fn_group_banner 153 'ofp-actions.at:498' \
  "OpenFlow 1.1 instruction translation" "           " 17
at_xfail=no
(
  $as_echo "153. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >test-data <<'_ATEOF'
# actions=LOCAL
0004 0018 00000000 0000 0010 fffffffe 04d2 000000000000

# actions=drop
#  0: 00 -> (none)
#  1: 04 -> (none)
#  2: 00 -> (none)
#  3: 08 -> (none)
#  4: 00 -> (none)
#  5: 00 -> (none)
#  6: 00 -> (none)
#  7: 01 -> (none)
0004 0008 00000001

# actions=drop
#  0: 00 -> (none)
#  1: 04 -> (none)
#  2: 00 -> (none)
#  3: 08 -> (none)
#  4: 00 -> (none)
#  5: 00 -> (none)
#  6: 00 -> (none)
#  7: 00 -> (none)
0004 0008 00000000

# bad OpenFlow11 instructions: OFPBIC_DUP_INST
0004 0008 00000000 0004 0008 00000000

& ofp_actions|WARN|OpenFlow message instructions length 9 is not a multiple of 8
# bad OpenFlow11 instructions: OFPBIC_BAD_LEN
0004 0009 01 00000000

# bad OpenFlow11 instructions: OFPBIC_BAD_LEN
0001 0010 01 000000 0000000000000000

# actions=goto_table:1
#  7: 01 -> 00
0001 0008 01 000001

# bad OpenFlow11 instructions: OFPBIC_BAD_TABLE_ID
2,0001 0008 01 000000

# actions=goto_table:1
0001 0008 01 000000

# actions=write_metadata:0xfedcba9876543210
0002 0018 00000000 fedcba9876543210 ffffffffffffffff

# actions=write_metadata:0xfedcba9876543210
#  1: 04 -> 02
#  3: 28 -> 18
#  8: ff -> fe
#  9: ff -> dc
# 10: 00 -> ba
# 11: 20 -> 98
# 12: 00 -> 76
# 13: 00 -> 54
# 14: 23 -> 32
# 15: 20 -> 10
# 16: 00 -> ff
# 17: 16 -> ff
# 18: 00 -> ff
# 19: 00 -> ff
# 20: 00 -> ff
# 21: 00 -> ff
# 22: 00 -> ff
# 23: 00 -> ff
# 24: fe -> (none)
# 25: dc -> (none)
# 26: ba -> (none)
# 27: 98 -> (none)
# 28: 76 -> (none)
# 29: 54 -> (none)
# 30: 32 -> (none)
# 31: 10 -> (none)
# 32: ff -> (none)
# 33: ff -> (none)
# 34: ff -> (none)
# 35: ff -> (none)
# 36: ff -> (none)
# 37: ff -> (none)
# 38: ff -> (none)
# 39: ff -> (none)
0004 0028 00000000 ffff 0020 00002320 0016 000000000000 fedcba9876543210 ffffffffffffffff

# actions=write_metadata:0xfedcba9876543210/0xff00ff00ff00ff00
0002 0018 00000000 fedcba9876543210 ff00ff00ff00ff00

# bad OpenFlow11 instructions: OFPBIC_BAD_LEN
0002 0010 00000000 fedcba9876543210

# bad OpenFlow11 instructions: OFPBIC_BAD_LEN
0002 0020 00000000 fedcba9876543210 ffffffffffffffff 0000000000000000

# bad OpenFlow11 instructions: OFPBIC_DUP_INST
0002 0018 00000000 fedcba9876543210 ff00ff00ff00ff00 0002 0018 00000000 fedcba9876543210 ff00ff00ff00ff00

# actions=write_metadata:0xfedcba9876543210,goto_table:1
#  1: 01 -> 02
#  3: 08 -> 18
#  4: 01 -> 00
#  8: 00 -> fe
#  9: 02 -> dc
# 10: 00 -> ba
# 11: 18 -> 98
# 12: 00 -> 76
# 13: 00 -> 54
# 14: 00 -> 32
# 15: 00 -> 10
# 16: fe -> ff
# 17: dc -> ff
# 18: ba -> ff
# 19: 98 -> ff
# 20: 76 -> ff
# 21: 54 -> ff
# 22: 32 -> ff
# 23: 10 -> ff
# 24: ff -> 00
# 25: ff -> 01
# 26: ff -> 00
# 27: ff -> 08
# 28: ff -> 01
# 29: ff -> 00
# 30: ff -> 00
# 31: ff -> 00
0001 0008 01 000000 0002 0018 00000000 fedcba9876543210 ffffffffffffffff

# actions=write_actions(drop)
#  0: 00 -> (none)
#  1: 03 -> (none)
#  2: 00 -> (none)
#  3: 08 -> (none)
#  4: 00 -> (none)
#  5: 00 -> (none)
#  6: 00 -> (none)
#  7: 01 -> (none)
0003 0008 00000001

# actions=write_actions(drop)
#  0: 00 -> (none)
#  1: 03 -> (none)
#  2: 00 -> (none)
#  3: 08 -> (none)
#  4: 00 -> (none)
#  5: 00 -> (none)
#  6: 00 -> (none)
#  7: 00 -> (none)
0003 0008 00000000

# bad OpenFlow11 instructions: OFPBIC_BAD_LEN
0005 0010 00000000 0000000000000000

# actions=clear_actions
#  7: 01 -> 00
0005 0008 00000001

# actions=clear_actions
#  4: 01 -> 00
0005 0008 01 000000

# actions=clear_actions
0005 0008 00000000

# bad OpenFlow11 instructions: OFPBIC_BAD_EXPERIMENTER
ffff 0008 01 000000

# bad OpenFlow11 instructions: OFPBIC_UNKNOWN_INST
0000 0008 01 000000

_ATEOF

sed '/^[#&]/d' < test-data > input.txt
sed -n 's/^# //p; /^$/p' < test-data > expout
sed -n 's/^& //p' < test-data > experr



{ set +x
$as_echo "$at_srcdir/ofp-actions.at:702: ovs-ofctl '-vPATTERN:console:%c|%p|%m' parse-instructions OpenFlow11 < input.txt"
at_fn_check_prepare_notrace 'a shell pipeline' "ofp-actions.at:702"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' parse-instructions OpenFlow11 < input.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:702"
$at_failed && at_fn_log_failure  \
"input.txt" \
"expout" \
"experr"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_153
#AT_START_154
at_fn_group_banner 154 'ofp-actions.at:709' \
  "OpenFlow 1.2 action translation" "                " 17
at_xfail=no
(
  $as_echo "154. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >test-data <<'_ATEOF'
# actions=LOCAL
0000 0010 fffffffe 04d2 000000000000

# bad OpenFlow12 actions: OFPBAC_BAD_SET_MASK
& ofp_actions|WARN|bad action at offset 0 (OFPBAC_BAD_SET_MASK):
& 00000000  00 19 00 18 80 00 09 0c-00 00 00 00 12 34 00 00
& 00000010  00 00 ff ff 00 00 00 00-
0019 0018 8000090c 000000001234 00000000ffff 00000000

_ATEOF

sed '/^[#&]/d' < test-data > input.txt
sed -n 's/^# //p; /^$/p' < test-data > expout
sed -n 's/^& //p' < test-data > experr



{ set +x
$as_echo "$at_srcdir/ofp-actions.at:728: ovs-ofctl '-vPATTERN:console:%c|%p|%m' parse-actions OpenFlow12 < input.txt"
at_fn_check_prepare_notrace 'a shell pipeline' "ofp-actions.at:728"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' parse-actions OpenFlow12 < input.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:728"
$at_failed && at_fn_log_failure  \
"input.txt" \
"expout" \
"experr"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_154
#AT_START_155
at_fn_group_banner 155 'ofp-actions.at:735' \
  "OpenFlow 1.3 action translation" "                " 17
at_xfail=no
(
  $as_echo "155. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >test-data <<'_ATEOF'
# actions=LOCAL
0000 0010 fffffffe 04d2 000000000000

# actions=move:NXM_OF_IN_PORT[]->NXM_OF_VLAN_TCI[]
ffff 0018 00002320 0006 0010 0000 0000 00000002 00000802

# actions=move:NXM_OF_IN_PORT[]->NXM_OF_VLAN_TCI[]
ffff 0020 4f4e4600 0c80 0000 0010 0000 0000 0000 00000002 00000802 00000000

_ATEOF

sed '/^[#&]/d' < test-data > input.txt
sed -n 's/^# //p; /^$/p' < test-data > expout
sed -n 's/^& //p' < test-data > experr



{ set +x
$as_echo "$at_srcdir/ofp-actions.at:756: ovs-ofctl '-vPATTERN:console:%c|%p|%m' parse-actions OpenFlow13 < input.txt"
at_fn_check_prepare_notrace 'a shell pipeline' "ofp-actions.at:756"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' parse-actions OpenFlow13 < input.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:756"
$at_failed && at_fn_log_failure  \
"input.txt" \
"expout" \
"experr"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_155
#AT_START_156
at_fn_group_banner 156 'ofp-actions.at:763' \
  "OpenFlow 1.5 action translation" "                " 17
at_xfail=no
(
  $as_echo "156. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >test-data <<'_ATEOF'
# actions=LOCAL
0000 0010 fffffffe 04d2 000000000000

# actions=move:NXM_OF_IN_PORT[]->NXM_OF_VLAN_TCI[]
001c 0018 0010 0000 0000 0000 00000002 00000802 00000000

# actions=set_field:00:00:00:00:12:34/00:00:00:00:ff:ff->eth_src
0019 0018 8000090c 000000001234 00000000ffff 00000000

_ATEOF

sed '/^[#&]/d' < test-data > input.txt
sed -n 's/^# //p; /^$/p' < test-data > expout
sed -n 's/^& //p' < test-data > experr



{ set +x
$as_echo "$at_srcdir/ofp-actions.at:782: ovs-ofctl '-vPATTERN:console:%c|%p|%m' parse-actions OpenFlow15 < input.txt"
at_fn_check_prepare_notrace 'a shell pipeline' "ofp-actions.at:782"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' parse-actions OpenFlow15 < input.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:782"
$at_failed && at_fn_log_failure  \
"input.txt" \
"expout" \
"experr"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_156
#AT_START_157
at_fn_group_banner 157 'ofp-actions.at:787' \
  "ofp-actions - inconsistent MPLS actions" "        " 17
at_xfail=no
(
  $as_echo "157. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofp-actions.at:788: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofp-actions.at:788"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:788"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofp-actions.at:788: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofp-actions.at:788"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:788"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofp-actions.at:788: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-actions.at:788"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:788"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofp-actions.at:788: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofp-actions.at:788"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:788"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofp-actions.at:788: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofp-actions.at:788"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:788"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofp-actions.at:788: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-actions.at:788"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:788"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofp-actions.at:788: add_of_br 0  "
at_fn_check_prepare_trace "ofp-actions.at:788"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:788"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofp-actions.at:790: ovs-ofctl -O OpenFlow11 -vwarn add-flow br0 'tcp actions=fin_timeout(idle_timeout=1)'"
at_fn_check_prepare_trace "ofp-actions.at:790"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -vwarn add-flow br0 'tcp actions=fin_timeout(idle_timeout=1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:790"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-actions.at:792: ovs-ofctl -O OpenFlow11 -vwarn add-flow br0 'tcp actions=push_mpls:0x8847,fin_timeout(idle_timeout=1)'"
at_fn_check_prepare_trace "ofp-actions.at:792"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -vwarn add-flow br0 'tcp actions=push_mpls:0x8847,fin_timeout(idle_timeout=1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: none of the usable flow formats (OpenFlow10,NXM) is among the allowed flow formats (OpenFlow11)
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofp-actions.at:792"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-actions.at:796: check_logs "
at_fn_check_prepare_trace "ofp-actions.at:796"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:796"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofp-actions.at:796: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofp-actions.at:796"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:796"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofp-actions.at:796: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofp-actions.at:796"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:796"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofp-actions.at:796: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofp-actions.at:796: wait failed" >&5

    $as_echo "ofp-actions.at:796" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofp-actions.at:796"
fi

   { set +x
$as_echo "$at_srcdir/ofp-actions.at:796: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofp-actions.at:796"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:796"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofp-actions.at:796: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofp-actions.at:796"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:796"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofp-actions.at:796: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofp-actions.at:796: wait failed" >&5

    $as_echo "ofp-actions.at:796" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofp-actions.at:796"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_157
#AT_START_158
at_fn_group_banner 158 'ofp-actions.at:799' \
  "reg_load <-> set_field translation corner case" " " 17
at_xfail=no
(
  $as_echo "158. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofp-actions.at:801: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofp-actions.at:801"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:801"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofp-actions.at:801: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofp-actions.at:801"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:801"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofp-actions.at:801: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-actions.at:801"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:801"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofp-actions.at:801: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofp-actions.at:801"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:801"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofp-actions.at:801: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofp-actions.at:801"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:801"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofp-actions.at:801: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-actions.at:801"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:801"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofp-actions.at:801: add_of_br 0  "
at_fn_check_prepare_trace "ofp-actions.at:801"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:801"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofp-actions.at:806: ovs-ofctl -O OpenFlow13 add-flow br0 mpls,actions=set_field:10-\\>mpls_label"
at_fn_check_prepare_trace "ofp-actions.at:806"
( $at_check_trace; ovs-ofctl -O OpenFlow13 add-flow br0 mpls,actions=set_field:10-\>mpls_label
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:806"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-actions.at:807: ovs-ofctl -O OpenFlow10 dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ofp-actions.at:807"
( $at_check_trace; ovs-ofctl -O OpenFlow10 dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW reply:
 mpls actions=load:0xa->OXM_OF_MPLS_LABEL[]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:807"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-actions.at:811: check_logs "
at_fn_check_prepare_trace "ofp-actions.at:811"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:811"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofp-actions.at:811: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofp-actions.at:811"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:811"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofp-actions.at:811: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofp-actions.at:811"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:811"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofp-actions.at:811: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofp-actions.at:811: wait failed" >&5

    $as_echo "ofp-actions.at:811" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofp-actions.at:811"
fi

   { set +x
$as_echo "$at_srcdir/ofp-actions.at:811: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofp-actions.at:811"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:811"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofp-actions.at:811: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofp-actions.at:811"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:811"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofp-actions.at:811: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofp-actions.at:811: wait failed" >&5

    $as_echo "ofp-actions.at:811" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofp-actions.at:811"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_158
#AT_START_159
at_fn_group_banner 159 'ofp-actions.at:814' \
  "enqueue action for OF1.1+" "                      " 17
at_xfail=no
(
  $as_echo "159. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofp-actions.at:816: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofp-actions.at:816"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:816"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofp-actions.at:816: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofp-actions.at:816"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:816"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofp-actions.at:816: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-actions.at:816"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:816"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofp-actions.at:816: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofp-actions.at:816"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:816"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofp-actions.at:816: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofp-actions.at:816"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:816"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofp-actions.at:816: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-actions.at:816"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:816"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofp-actions.at:816: add_of_br 0  "
at_fn_check_prepare_trace "ofp-actions.at:816"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:816"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofp-actions.at:819: ovs-ofctl -O OpenFlow10 add-flow br0 'actions=enqueue(123,456)'"
at_fn_check_prepare_trace "ofp-actions.at:819"
( $at_check_trace; ovs-ofctl -O OpenFlow10 add-flow br0 'actions=enqueue(123,456)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:819"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-actions.at:820: ovs-ofctl -O OpenFlow10 dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ofp-actions.at:820"
( $at_check_trace; ovs-ofctl -O OpenFlow10 dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW reply:
 actions=enqueue:123:456
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:820"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-actions.at:824: ovs-ofctl -O OpenFlow13 dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ofp-actions.at:824"
( $at_check_trace; ovs-ofctl -O OpenFlow13 dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW reply (OF1.3):
 reset_counts actions=set_queue:456,output:123,pop_queue
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:824"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-actions.at:828: check_logs "
at_fn_check_prepare_trace "ofp-actions.at:828"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:828"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofp-actions.at:828: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofp-actions.at:828"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:828"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofp-actions.at:828: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofp-actions.at:828"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:828"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofp-actions.at:828: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofp-actions.at:828: wait failed" >&5

    $as_echo "ofp-actions.at:828" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofp-actions.at:828"
fi

   { set +x
$as_echo "$at_srcdir/ofp-actions.at:828: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofp-actions.at:828"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:828"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofp-actions.at:828: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofp-actions.at:828"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:828"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofp-actions.at:828: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofp-actions.at:828: wait failed" >&5

    $as_echo "ofp-actions.at:828" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofp-actions.at:828"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_159
#AT_START_160
at_fn_group_banner 160 'ofp-actions.at:831' \
  "mod_nw_ttl action for OF1.0" "                    " 17
at_xfail=no
(
  $as_echo "160. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofp-actions.at:833: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofp-actions.at:833"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:833"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofp-actions.at:833: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofp-actions.at:833"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:833"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofp-actions.at:833: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-actions.at:833"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:833"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofp-actions.at:833: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofp-actions.at:833"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:833"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofp-actions.at:833: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofp-actions.at:833"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:833"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofp-actions.at:833: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-actions.at:833"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:833"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofp-actions.at:833: add_of_br 0  "
at_fn_check_prepare_trace "ofp-actions.at:833"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:833"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofp-actions.at:836: ovs-ofctl -O OpenFlow11 add-flow br0 'ip,actions=mod_nw_ttl:123'"
at_fn_check_prepare_trace "ofp-actions.at:836"
( $at_check_trace; ovs-ofctl -O OpenFlow11 add-flow br0 'ip,actions=mod_nw_ttl:123'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:836"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-actions.at:837: ovs-ofctl -O OpenFlow10 dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ofp-actions.at:837"
( $at_check_trace; ovs-ofctl -O OpenFlow10 dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW reply:
 ip actions=load:0x7b->NXM_NX_IP_TTL[]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:837"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-actions.at:841: ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ofp-actions.at:841"
( $at_check_trace; ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW reply (OF1.1):
 ip actions=mod_nw_ttl:123
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:841"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-actions.at:845: check_logs "
at_fn_check_prepare_trace "ofp-actions.at:845"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:845"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofp-actions.at:845: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofp-actions.at:845"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:845"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofp-actions.at:845: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofp-actions.at:845"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:845"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofp-actions.at:845: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofp-actions.at:845: wait failed" >&5

    $as_echo "ofp-actions.at:845" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofp-actions.at:845"
fi

   { set +x
$as_echo "$at_srcdir/ofp-actions.at:845: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofp-actions.at:845"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:845"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofp-actions.at:845: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofp-actions.at:845"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:845"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofp-actions.at:845: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofp-actions.at:845: wait failed" >&5

    $as_echo "ofp-actions.at:845" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofp-actions.at:845"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_160
#AT_START_161
at_fn_group_banner 161 'ofp-actions.at:848' \
  "mod_nw_ecn action translation" "                  " 17
at_xfail=no
(
  $as_echo "161. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofp-actions.at:850: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofp-actions.at:850"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:850"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofp-actions.at:850: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofp-actions.at:850"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:850"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofp-actions.at:850: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-actions.at:850"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:850"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofp-actions.at:850: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofp-actions.at:850"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:850"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofp-actions.at:850: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofp-actions.at:850"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:850"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofp-actions.at:850: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-actions.at:850"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:850"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofp-actions.at:850: add_of_br 0  "
at_fn_check_prepare_trace "ofp-actions.at:850"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:850"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofp-actions.at:855: ovs-ofctl -O OpenFlow11 add-flow br0 'ip,actions=mod_nw_ecn:2'"
at_fn_check_prepare_trace "ofp-actions.at:855"
( $at_check_trace; ovs-ofctl -O OpenFlow11 add-flow br0 'ip,actions=mod_nw_ecn:2'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:855"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-actions.at:856: ovs-ofctl -O OpenFlow10 dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ofp-actions.at:856"
( $at_check_trace; ovs-ofctl -O OpenFlow10 dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW reply:
 ip actions=load:0x2->NXM_NX_IP_ECN[]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:856"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-actions.at:860: ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ofp-actions.at:860"
( $at_check_trace; ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW reply (OF1.1):
 ip actions=mod_nw_ecn:2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:860"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-actions.at:864: ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ofp-actions.at:864"
( $at_check_trace; ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW reply (OF1.2):
 ip actions=set_field:2->nw_ecn
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:864"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofp-actions.at:876: ovs-ofctl del-flows br0"
at_fn_check_prepare_trace "ofp-actions.at:876"
( $at_check_trace; ovs-ofctl del-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:876"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-actions.at:877: ovs-ofctl -O OpenFlow12 add-flow br0 'ip,actions=set_field:2->ip_ecn'"
at_fn_check_prepare_trace "ofp-actions.at:877"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 'ip,actions=set_field:2->ip_ecn'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:877"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-actions.at:878: ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ofp-actions.at:878"
( $at_check_trace; ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW reply (OF1.1):
 ip actions=mod_nw_ecn:2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:878"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofp-actions.at:885: ovs-ofctl del-flows br0"
at_fn_check_prepare_trace "ofp-actions.at:885"
( $at_check_trace; ovs-ofctl del-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:885"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-actions.at:886: ovs-ofctl -O OpenFlow10 add-flow br0 'ip,actions=set_field:2->ip_ecn'"
at_fn_check_prepare_trace "ofp-actions.at:886"
( $at_check_trace; ovs-ofctl -O OpenFlow10 add-flow br0 'ip,actions=set_field:2->ip_ecn'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:886"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-actions.at:887: ovs-ofctl del-flows br0"
at_fn_check_prepare_trace "ofp-actions.at:887"
( $at_check_trace; ovs-ofctl del-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:887"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-actions.at:888: ovs-ofctl -O OpenFlow11 add-flow br0 'ip,actions=set_field:2->ip_ecn'"
at_fn_check_prepare_trace "ofp-actions.at:888"
( $at_check_trace; ovs-ofctl -O OpenFlow11 add-flow br0 'ip,actions=set_field:2->ip_ecn'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:888"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofp-actions.at:890: check_logs "
at_fn_check_prepare_trace "ofp-actions.at:890"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:890"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofp-actions.at:890: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofp-actions.at:890"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:890"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofp-actions.at:890: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofp-actions.at:890"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:890"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofp-actions.at:890: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofp-actions.at:890: wait failed" >&5

    $as_echo "ofp-actions.at:890" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofp-actions.at:890"
fi

   { set +x
$as_echo "$at_srcdir/ofp-actions.at:890: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofp-actions.at:890"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:890"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofp-actions.at:890: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofp-actions.at:890"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-actions.at:890"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofp-actions.at:890: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofp-actions.at:890: wait failed" >&5

    $as_echo "ofp-actions.at:890" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofp-actions.at:890"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_161
#AT_START_162
at_fn_group_banner 162 'ofp-print.at:3' \
  "empty" "                                          " 18
at_xfail=no
(
  $as_echo "162. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:5: ovs-ofctl ofp-print ''"
at_fn_check_prepare_trace "ofp-print.at:5"
( $at_check_trace; ovs-ofctl ofp-print ''
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OpenFlow message is empty
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:5"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_162
#AT_START_163
at_fn_group_banner 163 'ofp-print.at:9' \
  "too short" "                                      " 18
at_xfail=no
(
  $as_echo "163. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:11: ovs-ofctl ofp-print aabb"
at_fn_check_prepare_trace "ofp-print.at:11"
( $at_check_trace; ovs-ofctl ofp-print aabb
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OpenFlow packet too short (only 2 bytes):
00000000  aa bb                                           |..              |
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:11"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_163
#AT_START_164
at_fn_group_banner 164 'ofp-print.at:17' \
  "wrong OpenFlow version" "                         " 18
at_xfail=no
(
  $as_echo "164. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:19: ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print 00bb0008eeff0011"
at_fn_check_prepare_notrace 'a shell pipeline' "ofp-print.at:19"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print 00bb0008eeff0011
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ofp_msgs|WARN|unknown OpenFlow message (version 0, type 187)
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "***decode error: OFPBRC_BAD_TYPE***
00000000  00 bb 00 08 ee ff 00 11-                        |........        |
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:19"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_164
#AT_START_165
at_fn_group_banner 165 'ofp-print.at:27' \
  "truncated message" "                              " 18
at_xfail=no
(
  $as_echo "165. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:29: ovs-ofctl ofp-print 0110ccddeeff0011"
at_fn_check_prepare_trace "ofp-print.at:29"
( $at_check_trace; ovs-ofctl ofp-print 0110ccddeeff0011
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "(***truncated to 8 bytes from 52445***)
00000000  01 10 cc dd ee ff 00 11-                        |........        |
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_165
#AT_START_166
at_fn_group_banner 166 'ofp-print.at:35' \
  "message only uses part of buffer" "               " 18
at_xfail=no
(
  $as_echo "166. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:37: ovs-ofctl ofp-print 01100009eeff00112233"
at_fn_check_prepare_trace "ofp-print.at:37"
( $at_check_trace; ovs-ofctl ofp-print 01100009eeff00112233
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "(***only uses 9 bytes out of 10***)
00000000  01 10 00 09 ee ff 00 11-22 33                   |........\"3      |
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:37"
$at_failed && at_fn_log_failure
$at_traceon; }

# "
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_166
#AT_START_167
at_fn_group_banner 167 'ofp-print.at:44' \
  "OFPT_HELLO - ordinary" "                          " 18
at_xfail=no
(
  $as_echo "167. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:46: ovs-ofctl ofp-print 0100000800000000"
at_fn_check_prepare_trace "ofp-print.at:46"
( $at_check_trace; ovs-ofctl ofp-print 0100000800000000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_HELLO (xid=0x0):
 version bitmap: 0x01
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:46"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_167
#AT_START_168
at_fn_group_banner 168 'ofp-print.at:52' \
  "OFPT_HELLO with extra data" "                     " 18
at_xfail=no
(
  $as_echo "168. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:54: ovs-ofctl ofp-print 0100001300000000657874726120646174610a"
at_fn_check_prepare_trace "ofp-print.at:54"
( $at_check_trace; ovs-ofctl ofp-print 0100001300000000657874726120646174610a
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_HELLO (xid=0x0):
 version bitmap: 0x01
 unknown data in hello:
00000000  01 00 00 13 00 00 00 00-65 78 74 72 61 20 64 61 |........extra da|
00000010  74 61 0a                                        |ta.             |
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:54"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_168
#AT_START_169
at_fn_group_banner 169 'ofp-print.at:64' \
  "OFPT_HELLO with version bitmap" "                 " 18
at_xfail=no
(
  $as_echo "169. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:66: ovs-ofctl ofp-print \"01 00 00 10 00 00 00 00 00 01 00 08 00 00 00 f0\""
at_fn_check_prepare_trace "ofp-print.at:66"
( $at_check_trace; ovs-ofctl ofp-print "01 00 00 10 00 00 00 00 00 01 00 08 00 00 00 f0"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_HELLO (xid=0x0):
 version bitmap: 0x04, 0x05, 0x06, 0x07
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:66"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_169
#AT_START_170
at_fn_group_banner 170 'ofp-print.at:73' \
  "OFPT_HELLO with version bitmap and extra data" "  " 18
at_xfail=no
(
  $as_echo "170. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:75: ovs-ofctl ofp-print \"\\
01 00 00 1b 00 00 00 00 ff ff 00 06 01 02 00 00 \\
00 01 00 08 00 00 00 f0 61 62 63\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:75"
( $at_check_trace; ovs-ofctl ofp-print "\
01 00 00 1b 00 00 00 00 ff ff 00 06 01 02 00 00 \
00 01 00 08 00 00 00 f0 61 62 63"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_HELLO (xid=0x0):
 version bitmap: 0x04, 0x05, 0x06, 0x07
 unknown data in hello:
00000000  01 00 00 1b 00 00 00 00-ff ff 00 06 01 02 00 00 |................|
00000010  00 01 00 08 00 00 00 f0-61 62 63                |........abc     |
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:75"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_170
#AT_START_171
at_fn_group_banner 171 'ofp-print.at:87' \
  "OFPT_HELLO with higher than supported version" "  " 18
at_xfail=no
(
  $as_echo "171. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:89: ovs-ofctl ofp-print \"0f 00 00 08 00 00 00 00\""
at_fn_check_prepare_trace "ofp-print.at:89"
( $at_check_trace; ovs-ofctl ofp-print "0f 00 00 08 00 00 00 00"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_HELLO (OF 0x0f) (xid=0x0):
 version bitmap: 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:89"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-print.at:94: ovs-ofctl ofp-print \"40 00 00 08 00 00 00 00\""
at_fn_check_prepare_trace "ofp-print.at:94"
( $at_check_trace; ovs-ofctl ofp-print "40 00 00 08 00 00 00 00"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_HELLO (OF 0x40) (xid=0x0):
 version bitmap: 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:94"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-print.at:99: ovs-ofctl ofp-print \"3f 00 00 18 00 00 00 00 00 01 00 0c aa aa aa aa aa aa aa aa 00 00 00 00\""
at_fn_check_prepare_trace "ofp-print.at:99"
( $at_check_trace; ovs-ofctl ofp-print "3f 00 00 18 00 00 00 00 00 01 00 0c aa aa aa aa aa aa aa aa 00 00 00 00"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_HELLO (OF 0x3f) (xid=0x0):
 version bitmap: 0x01, 0x03, 0x05, 0x07, 0x09, 0x0b, 0x0d, 0x0f, 0x11, 0x13, 0x15, 0x17, 0x19, 0x1b, 0x1d, 0x1f
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:99"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_171
#AT_START_172
at_fn_group_banner 172 'ofp-print.at:106' \
  "OFPT_HELLO with contradictory version bitmaps" "  " 18
at_xfail=no
(
  $as_echo "172. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:109: ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print \"01 00 00 10 00 00 00 00 00 01 00 08 00 00 00 00\""
at_fn_check_prepare_notrace 'a shell pipeline' "ofp-print.at:109"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print "01 00 00 10 00 00 00 00 00 01 00 08 00 00 00 00"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ofp_util|WARN|peer does not support any OpenFlow version (between 0x01 and 0x1f)
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_HELLO (xid=0x0):
 version bitmap: 0x01
 unknown data in hello:
00000000  01 00 00 10 00 00 00 00-00 01 00 08 00 00 00 00 |................|
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:109"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-print.at:118: ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print \"3f 00 00 18 00 00 00 00 00 01 00 0c 00 00 00 00 aa aa aa aa 00 00 00 00\""
at_fn_check_prepare_notrace 'a shell pipeline' "ofp-print.at:118"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print "3f 00 00 18 00 00 00 00 00 01 00 0c 00 00 00 00 aa aa aa aa 00 00 00 00"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ofp_util|WARN|peer does not support any OpenFlow version (between 0x01 and 0x1f)
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_HELLO (OF 0x3f) (xid=0x0):
 version bitmap: 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f
 unknown data in hello:
00000000  3f 00 00 18 00 00 00 00-00 01 00 0c 00 00 00 00 |?...............|
00000010  aa aa aa aa 00 00 00 00-                        |........        |
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:118"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-print.at:128: ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print \"01 00 00 10 00 00 00 00 00 01 00 08 00 00 00 f1\""
at_fn_check_prepare_notrace 'a shell pipeline' "ofp-print.at:128"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print "01 00 00 10 00 00 00 00 00 01 00 08 00 00 00 f1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ofp_util|WARN|peer claims to support invalid OpenFlow version 0x00
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_HELLO (xid=0x0):
 version bitmap: 0x04, 0x05, 0x06, 0x07
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:128"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-print.at:135: ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print \"01 00 00 10 00 00 00 00 00 01 00 08 00 00 00 01\""
at_fn_check_prepare_notrace 'a shell pipeline' "ofp-print.at:135"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print "01 00 00 10 00 00 00 00 00 01 00 08 00 00 00 01"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ofp_util|WARN|peer claims to support invalid OpenFlow version 0x00
ofp_util|WARN|peer does not support any OpenFlow version (between 0x01 and 0x1f)
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_HELLO (xid=0x0):
 version bitmap: 0x01
 unknown data in hello:
00000000  01 00 00 10 00 00 00 00-00 01 00 08 00 00 00 01 |................|
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:135"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_172
#AT_START_173
at_fn_group_banner 173 'ofp-print.at:148' \
  "OFPT_ECHO_REQUEST, empty payload" "               " 18
at_xfail=no
(
  $as_echo "173. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:150: ovs-ofctl ofp-print '01 02 00 08 00 00 00 01'"
at_fn_check_prepare_trace "ofp-print.at:150"
( $at_check_trace; ovs-ofctl ofp-print '01 02 00 08 00 00 00 01'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ECHO_REQUEST (xid=0x1): 0 bytes of payload
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:150"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_173
#AT_START_174
at_fn_group_banner 174 'ofp-print.at:155' \
  "OFPT_ECHO_REQUEST, 5-byte payload" "              " 18
at_xfail=no
(
  $as_echo "174. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:157: ovs-ofctl ofp-print '0102000d00000001 25 53 54 1a 9d'"
at_fn_check_prepare_trace "ofp-print.at:157"
( $at_check_trace; ovs-ofctl ofp-print '0102000d00000001 25 53 54 1a 9d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ECHO_REQUEST (xid=0x1): 5 bytes of payload
00000000  25 53 54 1a 9d                                  |%ST..           |
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:157"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_174
#AT_START_175
at_fn_group_banner 175 'ofp-print.at:163' \
  "OFPT_ECHO_REPLY, empty payload" "                 " 18
at_xfail=no
(
  $as_echo "175. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:165: ovs-ofctl ofp-print '01 03 00 08 00 00 00 01'"
at_fn_check_prepare_trace "ofp-print.at:165"
( $at_check_trace; ovs-ofctl ofp-print '01 03 00 08 00 00 00 01'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ECHO_REPLY (xid=0x1): 0 bytes of payload
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:165"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_175
#AT_START_176
at_fn_group_banner 176 'ofp-print.at:170' \
  "OFPT_ECHO_REPLY, 5-byte payload" "                " 18
at_xfail=no
(
  $as_echo "176. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:172: ovs-ofctl ofp-print '0103000d0000000ba330efaf9e'"
at_fn_check_prepare_trace "ofp-print.at:172"
( $at_check_trace; ovs-ofctl ofp-print '0103000d0000000ba330efaf9e'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ECHO_REPLY (xid=0xb): 5 bytes of payload
00000000  a3 30 ef af 9e                                  |.0...           |
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:172"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_176
#AT_START_177
at_fn_group_banner 177 'ofp-print.at:178' \
  "OFPT_FEATURES_REQUEST" "                          " 18
at_xfail=no
(
  $as_echo "177. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:180: ovs-ofctl ofp-print '0105000800000001'"
at_fn_check_prepare_trace "ofp-print.at:180"
( $at_check_trace; ovs-ofctl ofp-print '0105000800000001'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_FEATURES_REQUEST (xid=0x1):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:180"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_177
#AT_START_178
at_fn_group_banner 178 'ofp-print.at:185' \
  "OFPT_FEATURES_REPLY - OF1.0" "                    " 18
at_xfail=no
(
  $as_echo "178. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:187: ovs-ofctl ofp-print \"\\
01 06 00 e0 00 00 00 01 00 00 50 54 00 00 00 01 \\
00 00 01 00 02 00 00 00 00 00 00 87 00 00 0f ff \\
ff fe 50 54 00 00 00 01 62 72 30 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 03 50 54 00 00 00 01 65 74 68 30 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 02 08 00 00 02 8f 00 00 02 8f 00 00 00 00 \\
00 02 50 54 00 00 00 03 65 74 68 32 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 02 08 00 00 02 8f 00 00 02 8f 00 00 00 00 \\
00 01 50 54 00 00 00 02 65 74 68 31 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 02 08 00 00 02 8f 00 00 02 8f 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:187"
( $at_check_trace; ovs-ofctl ofp-print "\
01 06 00 e0 00 00 00 01 00 00 50 54 00 00 00 01 \
00 00 01 00 02 00 00 00 00 00 00 87 00 00 0f ff \
ff fe 50 54 00 00 00 01 62 72 30 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 03 50 54 00 00 00 01 65 74 68 30 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 02 08 00 00 02 8f 00 00 02 8f 00 00 00 00 \
00 02 50 54 00 00 00 03 65 74 68 32 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 02 08 00 00 02 8f 00 00 02 8f 00 00 00 00 \
00 01 50 54 00 00 00 02 65 74 68 31 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 02 08 00 00 02 8f 00 00 02 8f 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_FEATURES_REPLY (xid=0x1): dpid:0000505400000001
n_tables:2, n_buffers:256
capabilities: FLOW_STATS TABLE_STATS PORT_STATS ARP_MATCH_IP
actions: output enqueue set_vlan_vid set_vlan_pcp strip_vlan mod_dl_src mod_dl_dst mod_nw_src mod_nw_dst mod_nw_tos mod_tp_src mod_tp_dst
 1(eth1): addr:50:54:00:00:00:02
     config:     0
     state:      0
     current:    100MB-FD AUTO_NEG
     advertised: 10MB-HD 10MB-FD 100MB-HD 100MB-FD COPPER AUTO_NEG
     supported:  10MB-HD 10MB-FD 100MB-HD 100MB-FD COPPER AUTO_NEG
     speed: 100 Mbps now, 100 Mbps max
 2(eth2): addr:50:54:00:00:00:03
     config:     0
     state:      0
     current:    100MB-FD AUTO_NEG
     advertised: 10MB-HD 10MB-FD 100MB-HD 100MB-FD COPPER AUTO_NEG
     supported:  10MB-HD 10MB-FD 100MB-HD 100MB-FD COPPER AUTO_NEG
     speed: 100 Mbps now, 100 Mbps max
 3(eth0): addr:50:54:00:00:00:01
     config:     0
     state:      0
     current:    100MB-FD AUTO_NEG
     advertised: 10MB-HD 10MB-FD 100MB-HD 100MB-FD COPPER AUTO_NEG
     supported:  10MB-HD 10MB-FD 100MB-HD 100MB-FD COPPER AUTO_NEG
     speed: 100 Mbps now, 100 Mbps max
 LOCAL(br0): addr:50:54:00:00:00:01
     config:     PORT_DOWN
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:187"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_178
#AT_START_179
at_fn_group_banner 179 'ofp-print.at:235' \
  "OFPT_FEATURES_REPLY cut off mid-port - OF1.0" "   " 18
at_xfail=no
(
  $as_echo "179. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:237: ovs-ofctl ofp-print \"\\
01 06 00 dc 00 00 00 01 00 00 50 54 00 00 00 01 \\
00 00 01 00 02 00 00 00 00 00 00 87 00 00 0f ff \\
ff fe 50 54 00 00 00 01 62 72 30 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 03 50 54 00 00 00 01 65 74 68 30 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 02 08 00 00 02 8f 00 00 02 8f 00 00 00 00 \\
00 02 50 54 00 00 00 03 65 74 68 32 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 02 08 00 00 02 8f 00 00 02 8f 00 00 00 00 \\
00 01 50 54 00 00 00 02 65 74 68 31 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 02 08 00 00 02 8f 00 00 02 8f \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:237"
( $at_check_trace; ovs-ofctl ofp-print "\
01 06 00 dc 00 00 00 01 00 00 50 54 00 00 00 01 \
00 00 01 00 02 00 00 00 00 00 00 87 00 00 0f ff \
ff fe 50 54 00 00 00 01 62 72 30 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 03 50 54 00 00 00 01 65 74 68 30 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 02 08 00 00 02 8f 00 00 02 8f 00 00 00 00 \
00 02 50 54 00 00 00 03 65 74 68 32 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 02 08 00 00 02 8f 00 00 02 8f 00 00 00 00 \
00 01 50 54 00 00 00 02 65 74 68 31 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 02 08 00 00 02 8f 00 00 02 8f \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo >>"$at_stdout"; $as_echo "***decode error: OFPBRC_BAD_LEN***
00000000  01 06 00 dc 00 00 00 01-00 00 50 54 00 00 00 01 |..........PT....|
00000010  00 00 01 00 02 00 00 00-00 00 00 87 00 00 0f ff |................|
00000020  ff fe 50 54 00 00 00 01-62 72 30 00 00 00 00 00 |..PT....br0.....|
00000030  00 00 00 00 00 00 00 00-00 00 00 01 00 00 00 01 |................|
00000040  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |................|
00000050  00 03 50 54 00 00 00 01-65 74 68 30 00 00 00 00 |..PT....eth0....|
00000060  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |................|
00000070  00 00 02 08 00 00 02 8f-00 00 02 8f 00 00 00 00 |................|
00000080  00 02 50 54 00 00 00 03-65 74 68 32 00 00 00 00 |..PT....eth2....|
00000090  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |................|
000000a0  00 00 02 08 00 00 02 8f-00 00 02 8f 00 00 00 00 |................|
000000b0  00 01 50 54 00 00 00 02-65 74 68 31 00 00 00 00 |..PT....eth1....|
000000c0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 |................|
000000d0  00 00 02 08 00 00 02 8f-00 00 02 8f             |............    |
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:237"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-print.at:269: sed 's/.*|//' stderr"
at_fn_check_prepare_notrace 'a shell pipeline' "ofp-print.at:269"
( $at_check_trace; sed 's/.*|//' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "received OFPT_FEATURES_REPLY with incorrect length 220 (must be exactly 32 bytes or longer by an integer multiple of 48 bytes)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:269"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_179
#AT_START_180
at_fn_group_banner 180 'ofp-print.at:274' \
  "OFPT_FEATURES_REPLY - OF1.1" "                    " 18
at_xfail=no
(
  $as_echo "180. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:276: ovs-ofctl ofp-print \"\\
02 06 00 a0 00 00 00 01 00 00 50 54 00 00 00 01 \\
00 00 01 00 02 00 00 00 00 00 00 87 00 00 00 00 \\
ff ff ff fe 00 00 00 00 50 54 00 00 00 01 00 00 \\
62 72 30 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 01 86 a0 00 01 86 a0 \\
00 00 00 03 00 00 00 00 50 54 00 00 00 01 00 00 \\
65 74 68 30 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 20 08 00 00 28 0f \\
00 00 28 0f 00 00 00 00 00 01 86 a0 00 01 86 a0 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:276"
( $at_check_trace; ovs-ofctl ofp-print "\
02 06 00 a0 00 00 00 01 00 00 50 54 00 00 00 01 \
00 00 01 00 02 00 00 00 00 00 00 87 00 00 00 00 \
ff ff ff fe 00 00 00 00 50 54 00 00 00 01 00 00 \
62 72 30 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 01 86 a0 00 01 86 a0 \
00 00 00 03 00 00 00 00 50 54 00 00 00 01 00 00 \
65 74 68 30 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 20 08 00 00 28 0f \
00 00 28 0f 00 00 00 00 00 01 86 a0 00 01 86 a0 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_FEATURES_REPLY (OF1.1) (xid=0x1): dpid:0000505400000001
n_tables:2, n_buffers:256
capabilities: FLOW_STATS TABLE_STATS PORT_STATS ARP_MATCH_IP
 3(eth0): addr:50:54:00:00:00:01
     config:     0
     state:      0
     current:    100MB-FD AUTO_NEG
     advertised: 10MB-HD 10MB-FD 100MB-HD 100MB-FD COPPER AUTO_NEG
     supported:  10MB-HD 10MB-FD 100MB-HD 100MB-FD COPPER AUTO_NEG
     speed: 100 Mbps now, 100 Mbps max
 LOCAL(br0): addr:50:54:00:00:00:01
     config:     PORT_DOWN
     state:      LINK_DOWN
     speed: 100 Mbps now, 100 Mbps max
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:276"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_180
#AT_START_181
at_fn_group_banner 181 'ofp-print.at:305' \
  "OFPT_FEATURES_REPLY cut off mid-port - OF1.1" "   " 18
at_xfail=no
(
  $as_echo "181. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:307: ovs-ofctl ofp-print \"\\
02 06 00 90 00 00 00 01 00 00 50 54 00 00 00 01 \\
00 00 01 00 02 00 00 00 00 00 00 87 00 00 00 00 \\
ff ff ff fe 00 00 00 00 50 54 00 00 00 01 00 00 \\
62 72 30 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 01 86 a0 00 01 86 a0 \\
00 00 00 03 00 00 00 00 50 54 00 00 00 01 00 00 \\
65 74 68 30 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 20 08 00 00 28 0f \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:307"
( $at_check_trace; ovs-ofctl ofp-print "\
02 06 00 90 00 00 00 01 00 00 50 54 00 00 00 01 \
00 00 01 00 02 00 00 00 00 00 00 87 00 00 00 00 \
ff ff ff fe 00 00 00 00 50 54 00 00 00 01 00 00 \
62 72 30 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 01 86 a0 00 01 86 a0 \
00 00 00 03 00 00 00 00 50 54 00 00 00 01 00 00 \
65 74 68 30 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 20 08 00 00 28 0f \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo >>"$at_stdout"; $as_echo "***decode error: OFPBRC_BAD_LEN***
00000000  02 06 00 90 00 00 00 01-00 00 50 54 00 00 00 01 |..........PT....|
00000010  00 00 01 00 02 00 00 00-00 00 00 87 00 00 00 00 |................|
00000020  ff ff ff fe 00 00 00 00-50 54 00 00 00 01 00 00 |........PT......|
00000030  62 72 30 00 00 00 00 00-00 00 00 00 00 00 00 00 |br0.............|
00000040  00 00 00 01 00 00 00 01-00 00 00 00 00 00 00 00 |................|
00000050  00 00 00 00 00 00 00 00-00 01 86 a0 00 01 86 a0 |................|
00000060  00 00 00 03 00 00 00 00-50 54 00 00 00 01 00 00 |........PT......|
00000070  65 74 68 30 00 00 00 00-00 00 00 00 00 00 00 00 |eth0............|
00000080  00 00 00 00 00 00 00 00-00 00 20 08 00 00 28 0f |.......... ...(.|
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:307"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-print.at:329: sed 's/.*|//' stderr"
at_fn_check_prepare_notrace 'a shell pipeline' "ofp-print.at:329"
( $at_check_trace; sed 's/.*|//' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "received OFPT_FEATURES_REPLY with incorrect length 144 (must be exactly 32 bytes or longer by an integer multiple of 64 bytes)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:329"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_181
#AT_START_182
at_fn_group_banner 182 'ofp-print.at:334' \
  "OFPT_FEATURES_REPLY - OF1.2" "                    " 18
at_xfail=no
(
  $as_echo "182. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:336: ovs-ofctl ofp-print \"\\
03 06 00 a0 00 00 00 01 00 00 50 54 00 00 00 01 \\
00 00 01 00 ff 00 00 00 00 00 01 77 00 00 00 00 \\
ff ff ff fe 00 00 00 00 50 54 00 00 00 01 00 00 \\
62 72 30 0a 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 01 86 a0 00 01 86 a0 \\
00 00 00 03 00 00 00 00 50 54 00 00 00 01 00 00 \\
65 74 68 30 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 20 08 00 00 28 0f \\
00 00 28 0f 00 00 00 00 00 01 86 a0 00 01 86 a0 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:336"
( $at_check_trace; ovs-ofctl ofp-print "\
03 06 00 a0 00 00 00 01 00 00 50 54 00 00 00 01 \
00 00 01 00 ff 00 00 00 00 00 01 77 00 00 00 00 \
ff ff ff fe 00 00 00 00 50 54 00 00 00 01 00 00 \
62 72 30 0a 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 01 86 a0 00 01 86 a0 \
00 00 00 03 00 00 00 00 50 54 00 00 00 01 00 00 \
65 74 68 30 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 20 08 00 00 28 0f \
00 00 28 0f 00 00 00 00 00 01 86 a0 00 01 86 a0 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_FEATURES_REPLY (OF1.2) (xid=0x1): dpid:0000505400000001
n_tables:255, n_buffers:256
capabilities: FLOW_STATS TABLE_STATS PORT_STATS IP_REASM QUEUE_STATS PORT_BLOCKED
 3(eth0): addr:50:54:00:00:00:01
     config:     0
     state:      0
     current:    100MB-FD AUTO_NEG
     advertised: 10MB-HD 10MB-FD 100MB-HD 100MB-FD COPPER AUTO_NEG
     supported:  10MB-HD 10MB-FD 100MB-HD 100MB-FD COPPER AUTO_NEG
     speed: 100 Mbps now, 100 Mbps max
 LOCAL(br0): addr:50:54:00:00:00:01
     config:     PORT_DOWN
     state:      LINK_DOWN
     speed: 100 Mbps now, 100 Mbps max
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:336"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_182
#AT_START_183
at_fn_group_banner 183 'ofp-print.at:365' \
  "OFPT_FEATURES_REPLY cut off mid-port - OF1.2" "   " 18
at_xfail=no
(
  $as_echo "183. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:367: ovs-ofctl ofp-print \"\\
03 06 00 a0 00 00 00 01 00 00 50 54 00 00 00 01 \\
00 00 01 00 ff 00 00 00 00 00 01 77 00 00 00 00 \\
ff ff ff fe 00 00 00 00 50 54 00 00 00 01 00 00 \\
62 72 30 0a 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 01 86 a0 00 01 86 a0 \\
00 00 00 03 00 00 00 00 50 54 00 00 00 01 00 00 \\
65 74 68 30 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 20 08 00 00 28 0f \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:367"
( $at_check_trace; ovs-ofctl ofp-print "\
03 06 00 a0 00 00 00 01 00 00 50 54 00 00 00 01 \
00 00 01 00 ff 00 00 00 00 00 01 77 00 00 00 00 \
ff ff ff fe 00 00 00 00 50 54 00 00 00 01 00 00 \
62 72 30 0a 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 01 86 a0 00 01 86 a0 \
00 00 00 03 00 00 00 00 50 54 00 00 00 01 00 00 \
65 74 68 30 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 20 08 00 00 28 0f \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo >>"$at_stdout"; $as_echo "OFPT_FEATURES_REPLY (OF1.2) (xid=0x1):
(***truncated to 144 bytes from 160***)
00000000  03 06 00 a0 00 00 00 01-00 00 50 54 00 00 00 01 |..........PT....|
00000010  00 00 01 00 ff 00 00 00-00 00 01 77 00 00 00 00 |...........w....|
00000020  ff ff ff fe 00 00 00 00-50 54 00 00 00 01 00 00 |........PT......|
00000030  62 72 30 0a 00 00 00 00-00 00 00 00 00 00 00 00 |br0.............|
00000040  00 00 00 01 00 00 00 01-00 00 00 00 00 00 00 00 |................|
00000050  00 00 00 00 00 00 00 00-00 01 86 a0 00 01 86 a0 |................|
00000060  00 00 00 03 00 00 00 00-50 54 00 00 00 01 00 00 |........PT......|
00000070  65 74 68 30 00 00 00 00-00 00 00 00 00 00 00 00 |eth0............|
00000080  00 00 00 00 00 00 00 00-00 00 20 08 00 00 28 0f |.......... ...(.|
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:367"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-print.at:390: sed 's/.*|//' stderr"
at_fn_check_prepare_notrace 'a shell pipeline' "ofp-print.at:390"
( $at_check_trace; sed 's/.*|//' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:390"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_183
#AT_START_184
at_fn_group_banner 184 'ofp-print.at:394' \
  "OFPT_FEATURES_REPLY - OF1.3" "                    " 18
at_xfail=no
(
  $as_echo "184. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:396: ovs-ofctl ofp-print \"\\
04 06 00 20 00 00 00 01 00 00 50 54 00 00 00 01 \\
00 00 01 00 ff 00 00 00 00 00 01 77 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:396"
( $at_check_trace; ovs-ofctl ofp-print "\
04 06 00 20 00 00 00 01 00 00 50 54 00 00 00 01 \
00 00 01 00 ff 00 00 00 00 00 01 77 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_FEATURES_REPLY (OF1.3) (xid=0x1): dpid:0000505400000001
n_tables:255, n_buffers:256
capabilities: FLOW_STATS TABLE_STATS PORT_STATS IP_REASM QUEUE_STATS PORT_BLOCKED
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:396"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_184
#AT_START_185
at_fn_group_banner 185 'ofp-print.at:406' \
  "OFPT_FEATURES_REPLY - OF1.4" "                    " 18
at_xfail=no
(
  $as_echo "185. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:408: ovs-ofctl ofp-print \"\\
05 06 00 20 00 00 00 01 00 00 50 54 00 00 00 01 \\
00 00 01 00 ff 00 00 00 00 00 07 6f 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:408"
( $at_check_trace; ovs-ofctl ofp-print "\
05 06 00 20 00 00 00 01 00 00 50 54 00 00 00 01 \
00 00 01 00 ff 00 00 00 00 00 07 6f 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_FEATURES_REPLY (OF1.4) (xid=0x1): dpid:0000505400000001
n_tables:255, n_buffers:256
capabilities: FLOW_STATS TABLE_STATS PORT_STATS GROUP_STATS IP_REASM QUEUE_STATS PORT_BLOCKED BUNDLES FLOW_MONITORING
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:408"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_185
#AT_START_186
at_fn_group_banner 186 'ofp-print.at:418' \
  "OFPT_FEATURES_REPLY - OF1.5" "                    " 18
at_xfail=no
(
  $as_echo "186. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:420: ovs-ofctl ofp-print \"\\
06 06 00 20 00 00 00 01 00 00 50 54 00 00 00 01 \\
00 00 01 00 ff 00 00 00 00 00 07 6f 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:420"
( $at_check_trace; ovs-ofctl ofp-print "\
06 06 00 20 00 00 00 01 00 00 50 54 00 00 00 01 \
00 00 01 00 ff 00 00 00 00 00 07 6f 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_FEATURES_REPLY (OF1.5) (xid=0x1): dpid:0000505400000001
n_tables:255, n_buffers:256
capabilities: FLOW_STATS TABLE_STATS PORT_STATS GROUP_STATS IP_REASM QUEUE_STATS PORT_BLOCKED BUNDLES FLOW_MONITORING
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:420"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_186
#AT_START_187
at_fn_group_banner 187 'ofp-print.at:430' \
  "OFPT_FEATURES_REPLY - with auxiliary_id - OF1.3" "" 18
at_xfail=no
(
  $as_echo "187. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:432: ovs-ofctl ofp-print \"\\
04 06 00 20 00 00 00 01 00 00 50 54 00 00 00 01 \\
00 00 01 00 ff 01 00 00 00 00 01 77 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:432"
( $at_check_trace; ovs-ofctl ofp-print "\
04 06 00 20 00 00 00 01 00 00 50 54 00 00 00 01 \
00 00 01 00 ff 01 00 00 00 00 01 77 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_FEATURES_REPLY (OF1.3) (xid=0x1): dpid:0000505400000001
n_tables:255, n_buffers:256, auxiliary_id:1
capabilities: FLOW_STATS TABLE_STATS PORT_STATS IP_REASM QUEUE_STATS PORT_BLOCKED
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:432"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_187
#AT_START_188
at_fn_group_banner 188 'ofp-print.at:442' \
  "OFPT_GET_CONFIG_REQUEST" "                        " 18
at_xfail=no
(
  $as_echo "188. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:444: ovs-ofctl ofp-print '0107000800000001'"
at_fn_check_prepare_trace "ofp-print.at:444"
( $at_check_trace; ovs-ofctl ofp-print '0107000800000001'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_GET_CONFIG_REQUEST (xid=0x1):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:444"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_188
#AT_START_189
at_fn_group_banner 189 'ofp-print.at:449' \
  "OFPT_GET_CONFIG_REPLY, most common form" "        " 18
at_xfail=no
(
  $as_echo "189. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:451: ovs-ofctl ofp-print '01 08 00 0c 00 00 00 03 00 00 00 00'"
at_fn_check_prepare_trace "ofp-print.at:451"
( $at_check_trace; ovs-ofctl ofp-print '01 08 00 0c 00 00 00 03 00 00 00 00'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_GET_CONFIG_REPLY (xid=0x3): frags=normal miss_send_len=0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_189
#AT_START_190
at_fn_group_banner 190 'ofp-print.at:457' \
  "OFPT_GET_CONFIG_REPLY, frags and miss_send_len" " " 18
at_xfail=no
(
  $as_echo "190. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:459: ovs-ofctl ofp-print '01 08 00 0c 00 00 00 03 00 02 00 ff'"
at_fn_check_prepare_trace "ofp-print.at:459"
( $at_check_trace; ovs-ofctl ofp-print '01 08 00 0c 00 00 00 03 00 02 00 ff'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_GET_CONFIG_REPLY (xid=0x3): frags=reassemble miss_send_len=255
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:459"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_190
#AT_START_191
at_fn_group_banner 191 'ofp-print.at:464' \
  "OFPT_PACKET_IN - OF1.0" "                         " 18
at_xfail=no
(
  $as_echo "191. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:466: ovs-ofctl ofp-print \"\\
01 0a 00 4e 00 00 00 00 00 00 01 11 00 3c 00 03 \\
00 00 50 54 00 00 00 06 50 54 00 00 00 05 08 00 \\
45 00 00 28 bd 12 00 00 40 06 3c 6a c0 a8 00 01 \\
c0 a8 00 02 27 2f 00 00 78 50 cc 5b 57 af 42 1e \\
50 02 02 00 26 e8 00 00 00 00 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:466"
( $at_check_trace; ovs-ofctl ofp-print "\
01 0a 00 4e 00 00 00 00 00 00 01 11 00 3c 00 03 \
00 00 50 54 00 00 00 06 50 54 00 00 00 05 08 00 \
45 00 00 28 bd 12 00 00 40 06 3c 6a c0 a8 00 01 \
c0 a8 00 02 27 2f 00 00 78 50 cc 5b 57 af 42 1e \
50 02 02 00 26 e8 00 00 00 00 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (xid=0x0): total_len=60 in_port=3 (via no_match) data_len=60 buffer=0x00000111
tcp,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:06,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=10031,tp_dst=0,tcp_flags=syn tcp_csum:26e8
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:466"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_191
#AT_START_192
at_fn_group_banner 192 'ofp-print.at:478' \
  "OFPT_PACKET_IN - OF1.0, with hex output of packet data" "" 18
at_xfail=no
(
  $as_echo "192. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:480: ovs-ofctl ofp-print \"\\
01 0a 00 4e 00 00 00 00 00 00 01 11 00 3c 00 03 \\
00 00 50 54 00 00 00 06 50 54 00 00 00 05 08 00 \\
45 00 00 28 bd 12 00 00 40 06 3c 6a c0 a8 00 01 \\
c0 a8 00 02 27 2f 00 00 78 50 cc 5b 57 af 42 1e \\
50 10 02 00 26 e8 00 00 00 00 00 00 00 00 \\
\" 3"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:480"
( $at_check_trace; ovs-ofctl ofp-print "\
01 0a 00 4e 00 00 00 00 00 00 01 11 00 3c 00 03 \
00 00 50 54 00 00 00 06 50 54 00 00 00 05 08 00 \
45 00 00 28 bd 12 00 00 40 06 3c 6a c0 a8 00 01 \
c0 a8 00 02 27 2f 00 00 78 50 cc 5b 57 af 42 1e \
50 10 02 00 26 e8 00 00 00 00 00 00 00 00 \
" 3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (xid=0x0): total_len=60 in_port=3 (via no_match) data_len=60 buffer=0x00000111
tcp,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:06,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=10031,tp_dst=0,tcp_flags=ack tcp_csum:26e8
00000000  50 54 00 00 00 06 50 54-00 00 00 05 08 00 45 00
00000010  00 28 bd 12 00 00 40 06-3c 6a c0 a8 00 01 c0 a8
00000020  00 02 27 2f 00 00 78 50-cc 5b 57 af 42 1e 50 10
00000030  02 00 26 e8 00 00 00 00-00 00 00 00
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:480"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_192
#AT_START_193
at_fn_group_banner 193 'ofp-print.at:496' \
  "OFPT_PACKET_IN - OF1.1" "                         " 18
at_xfail=no
(
  $as_echo "193. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:498: ovs-ofctl ofp-print \"\\
02 0a 00 54 00 00 00 00 00 00 01 11 00 00 00 03 \\
00 00 00 03 00 3c 00 00 \\
50 54 00 00 00 06 50 54 00 00 00 05 08 00 \\
45 00 00 28 bd 12 00 00 40 06 3c 6a c0 a8 00 01 \\
c0 a8 00 02 27 2f 00 00 78 50 cc 5b 57 af 42 1e \\
50 02 02 00 26 e8 00 00 00 00 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:498"
( $at_check_trace; ovs-ofctl ofp-print "\
02 0a 00 54 00 00 00 00 00 00 01 11 00 00 00 03 \
00 00 00 03 00 3c 00 00 \
50 54 00 00 00 06 50 54 00 00 00 05 08 00 \
45 00 00 28 bd 12 00 00 40 06 3c 6a c0 a8 00 01 \
c0 a8 00 02 27 2f 00 00 78 50 cc 5b 57 af 42 1e \
50 02 02 00 26 e8 00 00 00 00 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (OF1.1) (xid=0x0): total_len=60 in_port=3 (via no_match) data_len=60 buffer=0x00000111
tcp,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:06,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=10031,tp_dst=0,tcp_flags=syn tcp_csum:26e8
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:498"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_193
#AT_START_194
at_fn_group_banner 194 'ofp-print.at:511' \
  "OFPT_PACKET_IN - OF1.2" "                         " 18
at_xfail=no
(
  $as_echo "194. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:513: ovs-ofctl ofp-print \"\\
03 0a 00 4c 00 00 00 00 ff ff ff 00 00 2a 00 00 \\
00 01 00 0c 80 00 00 04 ff ff ff fe 00 00 00 00 \\
00 00 ff ff ff ff ff ff 00 23 20 83 c1 5f 80 35 \\
00 01 08 00 06 04 00 01 00 23 20 83 c1 5f 00 00 \\
00 00 00 23 20 83 c1 5f 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:513"
( $at_check_trace; ovs-ofctl ofp-print "\
03 0a 00 4c 00 00 00 00 ff ff ff 00 00 2a 00 00 \
00 01 00 0c 80 00 00 04 ff ff ff fe 00 00 00 00 \
00 00 ff ff ff ff ff ff 00 23 20 83 c1 5f 80 35 \
00 01 08 00 06 04 00 01 00 23 20 83 c1 5f 00 00 \
00 00 00 23 20 83 c1 5f 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (OF1.2) (xid=0x0): total_len=42 in_port=LOCAL (via no_match) data_len=42 buffer=0xffffff00
rarp,vlan_tci=0x0000,dl_src=00:23:20:83:c1:5f,dl_dst=ff:ff:ff:ff:ff:ff,arp_spa=0.0.0.0,arp_tpa=0.0.0.0,arp_op=1,arp_sha=00:23:20:83:c1:5f,arp_tha=00:23:20:83:c1:5f
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:513"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_194
#AT_START_195
at_fn_group_banner 195 'ofp-print.at:525' \
  "OFPT_PACKET_IN - OF1.2, with hex output of packet data" "" 18
at_xfail=no
(
  $as_echo "195. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:527: ovs-ofctl ofp-print \"\\
03 0a 00 4c 00 00 00 00 ff ff ff 00 00 2a 00 00 \\
00 01 00 0c 80 00 00 04 ff ff ff fe 00 00 00 00 \\
00 00 ff ff ff ff ff ff 00 23 20 83 c1 5f 80 35 \\
00 01 08 00 06 04 00 03 00 23 20 83 c1 5f 00 00 \\
00 00 00 23 20 83 c1 5f 00 00 00 00 \\
\" 3"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:527"
( $at_check_trace; ovs-ofctl ofp-print "\
03 0a 00 4c 00 00 00 00 ff ff ff 00 00 2a 00 00 \
00 01 00 0c 80 00 00 04 ff ff ff fe 00 00 00 00 \
00 00 ff ff ff ff ff ff 00 23 20 83 c1 5f 80 35 \
00 01 08 00 06 04 00 03 00 23 20 83 c1 5f 00 00 \
00 00 00 23 20 83 c1 5f 00 00 00 00 \
" 3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (OF1.2) (xid=0x0): total_len=42 in_port=LOCAL (via no_match) data_len=42 buffer=0xffffff00
rarp,vlan_tci=0x0000,dl_src=00:23:20:83:c1:5f,dl_dst=ff:ff:ff:ff:ff:ff,arp_spa=0.0.0.0,arp_tpa=0.0.0.0,arp_op=3,arp_sha=00:23:20:83:c1:5f,arp_tha=00:23:20:83:c1:5f
00000000  ff ff ff ff ff ff 00 23-20 83 c1 5f 80 35 00 01
00000010  08 00 06 04 00 03 00 23-20 83 c1 5f 00 00 00 00
00000020  00 23 20 83 c1 5f 00 00-00 00
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:527"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_195
#AT_START_196
at_fn_group_banner 196 'ofp-print.at:542' \
  "OFPT_PACKET_IN - OF1.3" "                         " 18
at_xfail=no
(
  $as_echo "196. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:544: ovs-ofctl ofp-print \"\\
04 0a 00 54 00 00 00 00 ff ff ff 00 00 2a 00 00 \\
01 02 03 04 05 06 07 08 00 01 00 0c 80 00 00 04 \\
ff ff ff fe 00 00 00 00 00 00 ff ff ff ff ff ff \\
00 23 20 83 c1 5f 80 35 00 01 08 00 06 04 00 03 \\
00 23 20 83 c1 5f 00 00 00 00 00 23 20 83 c1 5f \\
00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:544"
( $at_check_trace; ovs-ofctl ofp-print "\
04 0a 00 54 00 00 00 00 ff ff ff 00 00 2a 00 00 \
01 02 03 04 05 06 07 08 00 01 00 0c 80 00 00 04 \
ff ff ff fe 00 00 00 00 00 00 ff ff ff ff ff ff \
00 23 20 83 c1 5f 80 35 00 01 08 00 06 04 00 03 \
00 23 20 83 c1 5f 00 00 00 00 00 23 20 83 c1 5f \
00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (OF1.3) (xid=0x0): cookie=0x102030405060708 total_len=42 in_port=LOCAL (via no_match) data_len=42 buffer=0xffffff00
rarp,vlan_tci=0x0000,dl_src=00:23:20:83:c1:5f,dl_dst=ff:ff:ff:ff:ff:ff,arp_spa=0.0.0.0,arp_tpa=0.0.0.0,arp_op=3,arp_sha=00:23:20:83:c1:5f,arp_tha=00:23:20:83:c1:5f
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:544"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_196
#AT_START_197
at_fn_group_banner 197 'ofp-print.at:557' \
  "OFPT_PACKET_IN - OF1.4" "                         " 18
at_xfail=no
(
  $as_echo "197. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:559: ovs-ofctl ofp-print \"\\
05 0a 00 54 00 00 00 00 ff ff ff 00 00 2a 00 00 \\
01 02 03 04 05 06 07 08 00 01 00 0c 80 00 00 04 \\
ff ff ff fe 00 00 00 00 00 00 ff ff ff ff ff ff \\
00 23 20 83 c1 5f 80 35 00 01 08 00 06 04 00 03 \\
00 23 20 83 c1 5f 00 00 00 00 00 23 20 83 c1 5f \\
00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:559"
( $at_check_trace; ovs-ofctl ofp-print "\
05 0a 00 54 00 00 00 00 ff ff ff 00 00 2a 00 00 \
01 02 03 04 05 06 07 08 00 01 00 0c 80 00 00 04 \
ff ff ff fe 00 00 00 00 00 00 ff ff ff ff ff ff \
00 23 20 83 c1 5f 80 35 00 01 08 00 06 04 00 03 \
00 23 20 83 c1 5f 00 00 00 00 00 23 20 83 c1 5f \
00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (OF1.4) (xid=0x0): cookie=0x102030405060708 total_len=42 in_port=LOCAL (via no_match) data_len=42 buffer=0xffffff00
rarp,vlan_tci=0x0000,dl_src=00:23:20:83:c1:5f,dl_dst=ff:ff:ff:ff:ff:ff,arp_spa=0.0.0.0,arp_tpa=0.0.0.0,arp_op=3,arp_sha=00:23:20:83:c1:5f,arp_tha=00:23:20:83:c1:5f
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:559"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_197
#AT_START_198
at_fn_group_banner 198 'ofp-print.at:572' \
  "OFPT_PACKET_IN - OF1.5" "                         " 18
at_xfail=no
(
  $as_echo "198. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:574: ovs-ofctl ofp-print \"\\
06 0a 00 54 00 00 00 00 ff ff ff 00 00 2a 00 00 \\
01 02 03 04 05 06 07 08 00 01 00 0c 80 00 00 04 \\
ff ff ff fe 00 00 00 00 00 00 ff ff ff ff ff ff \\
00 23 20 83 c1 5f 80 35 00 01 08 00 06 04 00 03 \\
00 23 20 83 c1 5f 00 00 00 00 00 23 20 83 c1 5f \\
00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:574"
( $at_check_trace; ovs-ofctl ofp-print "\
06 0a 00 54 00 00 00 00 ff ff ff 00 00 2a 00 00 \
01 02 03 04 05 06 07 08 00 01 00 0c 80 00 00 04 \
ff ff ff fe 00 00 00 00 00 00 ff ff ff ff ff ff \
00 23 20 83 c1 5f 80 35 00 01 08 00 06 04 00 03 \
00 23 20 83 c1 5f 00 00 00 00 00 23 20 83 c1 5f \
00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (OF1.5) (xid=0x0): cookie=0x102030405060708 total_len=42 in_port=LOCAL (via no_match) data_len=42 buffer=0xffffff00
rarp,vlan_tci=0x0000,dl_src=00:23:20:83:c1:5f,dl_dst=ff:ff:ff:ff:ff:ff,arp_spa=0.0.0.0,arp_tpa=0.0.0.0,arp_op=3,arp_sha=00:23:20:83:c1:5f,arp_tha=00:23:20:83:c1:5f
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:574"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_198
#AT_START_199
at_fn_group_banner 199 'ofp-print.at:587' \
  "OFPT_PACKET_IN - OF1.3, with hex output of packet data" "" 18
at_xfail=no
(
  $as_echo "199. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:589: ovs-ofctl ofp-print \"\\
04 0a 00 54 00 00 00 00 ff ff ff 00 00 2a 00 00 \\
01 02 03 04 05 06 07 08 00 01 00 0c 80 00 00 04 \\
ff ff ff fe 00 00 00 00 00 00 ff ff ff ff ff ff \\
00 23 20 83 c1 5f 80 35 00 01 08 00 06 04 00 03 \\
00 23 20 83 c1 5f 00 00 00 00 00 23 20 83 c1 5f \\
00 00 00 00 \\
\" 3"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:589"
( $at_check_trace; ovs-ofctl ofp-print "\
04 0a 00 54 00 00 00 00 ff ff ff 00 00 2a 00 00 \
01 02 03 04 05 06 07 08 00 01 00 0c 80 00 00 04 \
ff ff ff fe 00 00 00 00 00 00 ff ff ff ff ff ff \
00 23 20 83 c1 5f 80 35 00 01 08 00 06 04 00 03 \
00 23 20 83 c1 5f 00 00 00 00 00 23 20 83 c1 5f \
00 00 00 00 \
" 3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (OF1.3) (xid=0x0): cookie=0x102030405060708 total_len=42 in_port=LOCAL (via no_match) data_len=42 buffer=0xffffff00
rarp,vlan_tci=0x0000,dl_src=00:23:20:83:c1:5f,dl_dst=ff:ff:ff:ff:ff:ff,arp_spa=0.0.0.0,arp_tpa=0.0.0.0,arp_op=3,arp_sha=00:23:20:83:c1:5f,arp_tha=00:23:20:83:c1:5f
00000000  ff ff ff ff ff ff 00 23-20 83 c1 5f 80 35 00 01
00000010  08 00 06 04 00 03 00 23-20 83 c1 5f 00 00 00 00
00000020  00 23 20 83 c1 5f 00 00-00 00
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:589"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_199
#AT_START_200
at_fn_group_banner 200 'ofp-print.at:605' \
  "OFPT_FLOW_REMOVED - OF1.0" "                      " 18
at_xfail=no
(
  $as_echo "200. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:607: ovs-ofctl ofp-print \"\\
01 0b 00 58 00 00 00 00 00 00 00 00 00 03 50 54 \\
00 00 00 05 50 54 00 00 00 06 ff ff 00 00 08 06 \\
00 02 00 00 c0 a8 00 01 c0 a8 00 02 00 00 00 00 \\
00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 05 \\
30 e0 35 00 00 05 00 00 00 00 00 00 00 00 00 01 \\
00 00 00 00 00 00 00 3c \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:607"
( $at_check_trace; ovs-ofctl ofp-print "\
01 0b 00 58 00 00 00 00 00 00 00 00 00 03 50 54 \
00 00 00 05 50 54 00 00 00 06 ff ff 00 00 08 06 \
00 02 00 00 c0 a8 00 01 c0 a8 00 02 00 00 00 00 \
00 00 00 00 00 00 00 00 ff ff 00 00 00 00 00 05 \
30 e0 35 00 00 05 00 00 00 00 00 00 00 00 00 01 \
00 00 00 00 00 00 00 3c \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_FLOW_REMOVED (xid=0x0): priority=65535,arp,in_port=3,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:06,arp_spa=192.168.0.1,arp_tpa=192.168.0.2,arp_op=2,nw_tos=0,tp_src=0,tp_dst=0 reason=idle duration5.820s idle5 pkts1 bytes60
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:607"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_200
#AT_START_201
at_fn_group_banner 201 'ofp-print.at:619' \
  "OFPT_FLOW_REMOVED - OF1.2" "                      " 18
at_xfail=no
(
  $as_echo "201. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:621: ovs-ofctl ofp-print \"\\
03 0b 00 40 00 00 00 00 fe dc ba 98 76 54 32 10 \\
80 00 01 05 00 00 00 01 00 98 96 80 00 3c 00 78 \\
00 00 00 00 00 12 d6 87 00 00 00 00 6f 68 ba 66 \\
00 01 00 0a 80 00 0c 02 10 09 00 00 00 00 00 00\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:621"
( $at_check_trace; ovs-ofctl ofp-print "\
03 0b 00 40 00 00 00 00 fe dc ba 98 76 54 32 10 \
80 00 01 05 00 00 00 01 00 98 96 80 00 3c 00 78 \
00 00 00 00 00 12 d6 87 00 00 00 00 6f 68 ba 66 \
00 01 00 0a 80 00 0c 02 10 09 00 00 00 00 00 00"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_FLOW_REMOVED (OF1.2) (xid=0x0): dl_vlan=9 reason=hard table_id=5 cookie:0xfedcba9876543210 duration1.010s idle60 hard120 pkts1234567 bytes1869134438
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:621"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_201
#AT_START_202
at_fn_group_banner 202 'ofp-print.at:630' \
  "OFPT_FLOW_REMOVED - OF1.3" "                      " 18
at_xfail=no
(
  $as_echo "202. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:632: ovs-ofctl ofp-print \"\\
04 0b 00 40 00 00 00 00 fe dc ba 98 76 54 32 10 \\
80 00 01 05 00 00 00 01 00 98 96 80 00 3c 00 78 \\
00 00 00 00 00 12 d6 87 00 00 00 00 6f 68 ba 66 \\
00 01 00 0a 80 00 0c 02 10 09 00 00 00 00 00 00\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:632"
( $at_check_trace; ovs-ofctl ofp-print "\
04 0b 00 40 00 00 00 00 fe dc ba 98 76 54 32 10 \
80 00 01 05 00 00 00 01 00 98 96 80 00 3c 00 78 \
00 00 00 00 00 12 d6 87 00 00 00 00 6f 68 ba 66 \
00 01 00 0a 80 00 0c 02 10 09 00 00 00 00 00 00"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_FLOW_REMOVED (OF1.3) (xid=0x0): dl_vlan=9 reason=hard table_id=5 cookie:0xfedcba9876543210 duration1.010s idle60 hard120 pkts1234567 bytes1869134438
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:632"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_202
#AT_START_203
at_fn_group_banner 203 'ofp-print.at:641' \
  "OFPT_PORT_STATUS - OF1.0" "                       " 18
at_xfail=no
(
  $as_echo "203. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:643: ovs-ofctl ofp-print \"\\
01 0c 00 40 00 00 00 00 02 00 00 00 00 00 00 00 \\
00 03 50 54 00 00 00 01 65 74 68 30 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 \\
00 00 02 08 00 00 02 8f 00 00 02 8f 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:643"
( $at_check_trace; ovs-ofctl ofp-print "\
01 0c 00 40 00 00 00 00 02 00 00 00 00 00 00 00 \
00 03 50 54 00 00 00 01 65 74 68 30 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01 \
00 00 02 08 00 00 02 8f 00 00 02 8f 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PORT_STATUS (xid=0x0): MOD: 3(eth0): addr:50:54:00:00:00:01
     config:     PORT_DOWN
     state:      LINK_DOWN
     current:    100MB-FD AUTO_NEG
     advertised: 10MB-HD 10MB-FD 100MB-HD 100MB-FD COPPER AUTO_NEG
     supported:  10MB-HD 10MB-FD 100MB-HD 100MB-FD COPPER AUTO_NEG
     speed: 100 Mbps now, 100 Mbps max
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:643"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_203
#AT_START_204
at_fn_group_banner 204 'ofp-print.at:659' \
  "OFPT_PORT_STATUS - OF1.1" "                       " 18
at_xfail=no
(
  $as_echo "204. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:661: ovs-ofctl ofp-print \"\\
02 0c 00 50 00 00 00 00 02 00 00 00 00 00 00 00 \\
00 00 00 03 00 00 00 00 50 54 00 00 00 01 00 00 \\
65 74 68 30 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 20 08 00 00 28 0f \\
00 00 28 0f 00 00 00 00 00 01 86 a0 00 01 86 a0 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:661"
( $at_check_trace; ovs-ofctl ofp-print "\
02 0c 00 50 00 00 00 00 02 00 00 00 00 00 00 00 \
00 00 00 03 00 00 00 00 50 54 00 00 00 01 00 00 \
65 74 68 30 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 20 08 00 00 28 0f \
00 00 28 0f 00 00 00 00 00 01 86 a0 00 01 86 a0 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PORT_STATUS (OF1.1) (xid=0x0): MOD: 3(eth0): addr:50:54:00:00:00:01
     config:     0
     state:      0
     current:    100MB-FD AUTO_NEG
     advertised: 10MB-HD 10MB-FD 100MB-HD 100MB-FD COPPER AUTO_NEG
     supported:  10MB-HD 10MB-FD 100MB-HD 100MB-FD COPPER AUTO_NEG
     speed: 100 Mbps now, 100 Mbps max
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:661"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_204
#AT_START_205
at_fn_group_banner 205 'ofp-print.at:678' \
  "OFPT_PORT_STATUS - OF1.4" "                       " 18
at_xfail=no
(
  $as_echo "205. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:680: ovs-ofctl ofp-print \"\\
05 0c 00 58 00 00 00 00 02 00 00 00 00 00 00 00 \\
00 00 00 03 00 48 00 00 50 54 00 00 00 01 00 00 \\
65 74 68 30 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 00 \\
00 00 20 08 00 00 28 0f 00 00 28 0f 00 00 00 00 \\
00 01 86 a0 00 01 86 a0 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:680"
( $at_check_trace; ovs-ofctl ofp-print "\
05 0c 00 58 00 00 00 00 02 00 00 00 00 00 00 00 \
00 00 00 03 00 48 00 00 50 54 00 00 00 01 00 00 \
65 74 68 30 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 00 \
00 00 20 08 00 00 28 0f 00 00 28 0f 00 00 00 00 \
00 01 86 a0 00 01 86 a0 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PORT_STATUS (OF1.4) (xid=0x0): MOD: 3(eth0): addr:50:54:00:00:00:01
     config:     0
     state:      0
     current:    100MB-FD AUTO_NEG
     advertised: 10MB-HD 10MB-FD 100MB-HD 100MB-FD COPPER AUTO_NEG
     supported:  10MB-HD 10MB-FD 100MB-HD 100MB-FD COPPER AUTO_NEG
     speed: 100 Mbps now, 100 Mbps max
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:680"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_205
#AT_START_206
at_fn_group_banner 206 'ofp-print.at:698' \
  "OFPT_PORT_STATUS - OF1.6" "                       " 18
at_xfail=no
(
  $as_echo "206. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:700: ovs-ofctl ofp-print \"\\
07 0c 00 90 00 00 00 00 02 00 00 00 00 00 00 00 \\
\\
00 00 00 03 00 80 00 03 50 54 00 00 00 01 00 00 \\
50 54 00 ff fe 00 00 01 \\
65 74 68 30 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 00 \\
00 00 20 08 00 00 28 0f 00 00 28 0f 00 00 00 00 \\
00 01 86 a0 00 01 86 a0 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:700"
( $at_check_trace; ovs-ofctl ofp-print "\
07 0c 00 90 00 00 00 00 02 00 00 00 00 00 00 00 \
\
00 00 00 03 00 80 00 03 50 54 00 00 00 01 00 00 \
50 54 00 ff fe 00 00 01 \
65 74 68 30 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 00 \
00 00 20 08 00 00 28 0f 00 00 28 0f 00 00 00 00 \
00 01 86 a0 00 01 86 a0 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PORT_STATUS (OF1.6) (xid=0x0): MOD: 3(eth0): addr:50:54:00:00:00:01
     addr64: 50:54:00:ff:fe:00:00:01
     config:     0
     state:      0
     current:    100MB-FD AUTO_NEG
     advertised: 10MB-HD 10MB-FD 100MB-HD 100MB-FD COPPER AUTO_NEG
     supported:  10MB-HD 10MB-FD 100MB-HD 100MB-FD COPPER AUTO_NEG
     speed: 100 Mbps now, 100 Mbps max
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:700"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_206
#AT_START_207
at_fn_group_banner 207 'ofp-print.at:724' \
  "OFPT_PACKET_OUT - OF1.0" "                        " 18
at_xfail=no
(
  $as_echo "207. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:726: ovs-ofctl ofp-print \"\\
01 0d 00 54 00 00 00 00 00 00 01 14 00 01 00 08 \\
00 00 00 08 00 03 00 00 50 54 00 00 00 05 50 54 \\
00 00 00 06 08 00 45 00 00 28 00 00 40 00 40 06 \\
b9 7c c0 a8 00 02 c0 a8 00 01 00 00 2b 60 00 00 \\
00 00 6a 4f 2b 58 50 14 00 00 6d 75 00 00 00 00 \\
00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:726"
( $at_check_trace; ovs-ofctl ofp-print "\
01 0d 00 54 00 00 00 00 00 00 01 14 00 01 00 08 \
00 00 00 08 00 03 00 00 50 54 00 00 00 05 50 54 \
00 00 00 06 08 00 45 00 00 28 00 00 40 00 40 06 \
b9 7c c0 a8 00 02 c0 a8 00 01 00 00 2b 60 00 00 \
00 00 6a 4f 2b 58 50 14 00 00 6d 75 00 00 00 00 \
00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_OUT (xid=0x0): in_port=1 actions=output:3 buffer=0x00000114
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:726"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_207
#AT_START_208
at_fn_group_banner 208 'ofp-print.at:738' \
  "OFPT_PACKET_OUT - OF1.0, with packet" "           " 18
at_xfail=no
(
  $as_echo "208. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:740: ovs-ofctl ofp-print \"\\
01 0d 00 54 00 00 00 00 ff ff ff ff 00 01 00 08 \\
00 00 00 08 00 03 00 00 50 54 00 00 00 05 50 54 \\
00 00 00 06 08 00 45 00 00 28 00 00 40 00 40 06 \\
b9 7c c0 a8 00 02 c0 a8 00 01 00 00 2b 60 00 00 \\
00 00 6a 4f 2b 58 50 14 00 00 6d 75 00 00 00 00 \\
00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:740"
( $at_check_trace; ovs-ofctl ofp-print "\
01 0d 00 54 00 00 00 00 ff ff ff ff 00 01 00 08 \
00 00 00 08 00 03 00 00 50 54 00 00 00 05 50 54 \
00 00 00 06 08 00 45 00 00 28 00 00 40 00 40 06 \
b9 7c c0 a8 00 02 c0 a8 00 01 00 00 2b 60 00 00 \
00 00 6a 4f 2b 58 50 14 00 00 6d 75 00 00 00 00 \
00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_OUT (xid=0x0): in_port=1 actions=output:3 data_len=60
tcp,vlan_tci=0x0000,dl_src=50:54:00:00:00:06,dl_dst=50:54:00:00:00:05,nw_src=192.168.0.2,nw_dst=192.168.0.1,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=0,tp_dst=11104,tcp_flags=rst|ack tcp_csum:6d75
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:740"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_208
#AT_START_209
at_fn_group_banner 209 'ofp-print.at:753' \
  "OFPT_PACKET_OUT - OF1.0, with hex output of packet data" "" 18
at_xfail=no
(
  $as_echo "209. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:755: ovs-ofctl ofp-print \"\\
01 0d 00 54 00 00 00 00 ff ff ff ff 00 01 00 08 \\
00 00 00 08 00 03 00 00 50 54 00 00 00 05 50 54 \\
00 00 00 06 08 00 45 00 00 28 00 00 40 00 40 06 \\
b9 7c c0 a8 00 02 c0 a8 00 01 00 00 2b 60 00 00 \\
00 00 6a 4f 2b 58 50 14 00 00 6d 75 00 00 00 00 \\
00 00 00 00 \\
\" 3"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:755"
( $at_check_trace; ovs-ofctl ofp-print "\
01 0d 00 54 00 00 00 00 ff ff ff ff 00 01 00 08 \
00 00 00 08 00 03 00 00 50 54 00 00 00 05 50 54 \
00 00 00 06 08 00 45 00 00 28 00 00 40 00 40 06 \
b9 7c c0 a8 00 02 c0 a8 00 01 00 00 2b 60 00 00 \
00 00 6a 4f 2b 58 50 14 00 00 6d 75 00 00 00 00 \
00 00 00 00 \
" 3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_OUT (xid=0x0): in_port=1 actions=output:3 data_len=60
tcp,vlan_tci=0x0000,dl_src=50:54:00:00:00:06,dl_dst=50:54:00:00:00:05,nw_src=192.168.0.2,nw_dst=192.168.0.1,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=0,tp_dst=11104,tcp_flags=rst|ack tcp_csum:6d75
00000000  50 54 00 00 00 05 50 54-00 00 00 06 08 00 45 00
00000010  00 28 00 00 40 00 40 06-b9 7c c0 a8 00 02 c0 a8
00000020  00 01 00 00 2b 60 00 00-00 00 6a 4f 2b 58 50 14
00000030  00 00 6d 75 00 00 00 00-00 00 00 00
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:755"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_209
#AT_START_210
at_fn_group_banner 210 'ofp-print.at:772' \
  "OFPT_PACKET_OUT - OF1.1" "                        " 18
at_xfail=no
(
  $as_echo "210. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:774: ovs-ofctl ofp-print \"\\
03 0d 00 28 88 58 df c5 ff ff ff 00 ff ff ff fe \\
00 10 00 00 00 00 00 00 00 00 00 10 ff ff ff fb \\
05 dc 00 00 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:774"
( $at_check_trace; ovs-ofctl ofp-print "\
03 0d 00 28 88 58 df c5 ff ff ff 00 ff ff ff fe \
00 10 00 00 00 00 00 00 00 00 00 10 ff ff ff fb \
05 dc 00 00 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_OUT (OF1.2) (xid=0x8858dfc5): in_port=LOCAL actions=FLOOD buffer=0xffffff00
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:774"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_210
#AT_START_211
at_fn_group_banner 211 'ofp-print.at:783' \
  "OFPT_PACKET_OUT - OF1.1, with packet" "           " 18
at_xfail=no
(
  $as_echo "211. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:785: ovs-ofctl ofp-print \"\\
03 0d 00 64 88 58 df c5 ff ff ff ff ff ff ff fe \\
00 10 00 00 00 00 00 00 00 00 00 10 ff ff ff fb \\
05 dc 00 00 00 00 00 00 50 54 00 00 00 05 50 54 \\
00 00 00 06 08 00 45 00 00 28 00 00 40 00 40 06 \\
b9 7c c0 a8 00 02 c0 a8 00 01 00 00 2b 60 00 00 \\
00 00 6a 4f 2b 58 50 14 00 00 6d 75 00 00 00 00 \\
00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:785"
( $at_check_trace; ovs-ofctl ofp-print "\
03 0d 00 64 88 58 df c5 ff ff ff ff ff ff ff fe \
00 10 00 00 00 00 00 00 00 00 00 10 ff ff ff fb \
05 dc 00 00 00 00 00 00 50 54 00 00 00 05 50 54 \
00 00 00 06 08 00 45 00 00 28 00 00 40 00 40 06 \
b9 7c c0 a8 00 02 c0 a8 00 01 00 00 2b 60 00 00 \
00 00 6a 4f 2b 58 50 14 00 00 6d 75 00 00 00 00 \
00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_OUT (OF1.2) (xid=0x8858dfc5): in_port=LOCAL actions=FLOOD data_len=60
tcp,vlan_tci=0x0000,dl_src=50:54:00:00:00:06,dl_dst=50:54:00:00:00:05,nw_src=192.168.0.2,nw_dst=192.168.0.1,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=0,tp_dst=11104,tcp_flags=rst|ack tcp_csum:6d75
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:785"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_211
#AT_START_212
at_fn_group_banner 212 'ofp-print.at:799' \
  "OFPT_PACKET_OUT - OF1.5" "                        " 18
at_xfail=no
(
  $as_echo "212. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:801: ovs-ofctl ofp-print \"\\
06 0d 00 30 11 22 33 44 ff ff ff 00 00 10 00 00 \\
00 01 00 10 80 00 00 04 00 00 00 01 00 00 00 00 \\
00 00 00 10 ff ff ff fb 05 dc 00 00 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:801"
( $at_check_trace; ovs-ofctl ofp-print "\
06 0d 00 30 11 22 33 44 ff ff ff 00 00 10 00 00 \
00 01 00 10 80 00 00 04 00 00 00 01 00 00 00 00 \
00 00 00 10 ff ff ff fb 05 dc 00 00 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_OUT (OF1.5) (xid=0x11223344): in_port=1 actions=FLOOD buffer=0xffffff00
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:801"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofp-print.at:810: ovs-ofctl ofp-print \"\\
06 0d 00 40 11 22 33 44 ff ff ff 00 00 10 00 00 \\
00 01 00 20 80 00 04 08 00 00 00 00 00 00 00 03 \\
80 00 4C 08 00 00 00 00 00 00 00 05 00 00 00 00 \\
00 00 00 10 ff ff ff fb 05 dc 00 00 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:810"
( $at_check_trace; ovs-ofctl ofp-print "\
06 0d 00 40 11 22 33 44 ff ff ff 00 00 10 00 00 \
00 01 00 20 80 00 04 08 00 00 00 00 00 00 00 03 \
80 00 4C 08 00 00 00 00 00 00 00 05 00 00 00 00 \
00 00 00 10 ff ff ff fb 05 dc 00 00 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_OUT (OF1.5) (xid=0x11223344): ***decode error: OFPBRC_BAD_PORT***
00000000  06 0d 00 40 11 22 33 44-ff ff ff 00 00 10 00 00 |...@.\"3D........|
00000010  00 01 00 20 80 00 04 08-00 00 00 00 00 00 00 03 |... ............|
00000020  80 00 4c 08 00 00 00 00-00 00 00 05 00 00 00 00 |..L.............|
00000030  00 00 00 10 ff ff ff fb-05 dc 00 00 00 00 00 00 |................|
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:810"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofp-print.at:823: ovs-ofctl ofp-print \"\\
06 0d 00 48 11 22 33 44 ff ff ff 00 00 10 00 00 \\
00 01 00 28 80 00 00 04 00 00 00 01 80 00 04 08 \\
00 00 00 00 00 00 00 03 80 00 4C 08 00 00 00 00 \\
00 00 00 05 00 00 00 00 00 00 00 10 ff ff ff fb \\
05 dc 00 00 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:823"
( $at_check_trace; ovs-ofctl ofp-print "\
06 0d 00 48 11 22 33 44 ff ff ff 00 00 10 00 00 \
00 01 00 28 80 00 00 04 00 00 00 01 80 00 04 08 \
00 00 00 00 00 00 00 03 80 00 4C 08 00 00 00 00 \
00 00 00 05 00 00 00 00 00 00 00 10 ff ff ff fb \
05 dc 00 00 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_OUT (OF1.5) (xid=0x11223344): tun_id=0x5,metadata=0x3,in_port=1 actions=FLOOD buffer=0xffffff00
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:823"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofp-print.at:834: ovs-ofctl ofp-print \"\\
06 0d 00 38 11 22 33 44 ff ff ff 00 00 10 00 00 \\
00 01 00 18 80 00 00 04 00 00 00 01 80 00 16 04 \\
11 22 33 44 00 00 00 00 00 00 00 10 ff ff ff fb \\
05 dc 00 00 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:834"
( $at_check_trace; ovs-ofctl ofp-print "\
06 0d 00 38 11 22 33 44 ff ff ff 00 00 10 00 00 \
00 01 00 18 80 00 00 04 00 00 00 01 80 00 16 04 \
11 22 33 44 00 00 00 00 00 00 00 10 ff ff ff fb \
05 dc 00 00 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_OUT (OF1.5) (xid=0x11223344): ***decode error: OFPBRC_PIPELINE_FIELDS_ONLY***
00000000  06 0d 00 38 11 22 33 44-ff ff ff 00 00 10 00 00 |...8.\"3D........|
00000010  00 01 00 18 80 00 00 04-00 00 00 01 80 00 16 04 |................|
00000020  11 22 33 44 00 00 00 00-00 00 00 10 ff ff ff fb |.\"3D............|
00000030  05 dc 00 00 00 00 00 00-                        |........        |
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:834"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_212
#AT_START_213
at_fn_group_banner 213 'ofp-print.at:850' \
  "OFPT_PACKET_OUT - OF1.5, with packet" "           " 18
at_xfail=no
(
  $as_echo "213. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:852: ovs-ofctl ofp-print \"\\
06 0d 00 74 11 22 33 44 ff ff ff ff 00 10 00 00 \\
00 01 00 18 80 00 00 04 00 00 00 01 80 00 04 08 \\
00 00 00 00 00 00 00 03 00 00 00 10 ff ff ff fb \\
05 dc 00 00 00 00 00 00 50 54 00 00 00 05 50 54 \\
00 00 00 06 08 00 45 00 00 28 00 00 40 00 40 06 \\
b9 7c c0 a8 00 02 c0 a8 00 01 00 00 2b 60 00 00 \\
00 00 6a 4f 2b 58 50 14 00 00 6d 75 00 00 00 00 \\
00 00 00 00
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:852"
( $at_check_trace; ovs-ofctl ofp-print "\
06 0d 00 74 11 22 33 44 ff ff ff ff 00 10 00 00 \
00 01 00 18 80 00 00 04 00 00 00 01 80 00 04 08 \
00 00 00 00 00 00 00 03 00 00 00 10 ff ff ff fb \
05 dc 00 00 00 00 00 00 50 54 00 00 00 05 50 54 \
00 00 00 06 08 00 45 00 00 28 00 00 40 00 40 06 \
b9 7c c0 a8 00 02 c0 a8 00 01 00 00 2b 60 00 00 \
00 00 6a 4f 2b 58 50 14 00 00 6d 75 00 00 00 00 \
00 00 00 00
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_OUT (OF1.5) (xid=0x11223344): metadata=0x3,in_port=1 actions=FLOOD data_len=60
tcp,vlan_tci=0x0000,dl_src=50:54:00:00:00:06,dl_dst=50:54:00:00:00:05,nw_src=192.168.0.2,nw_dst=192.168.0.1,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=0,tp_dst=11104,tcp_flags=rst|ack tcp_csum:6d75
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:852"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_213
#AT_START_214
at_fn_group_banner 214 'ofp-print.at:868' \
  "OFPT_FLOW_MOD - OF1.0 - low verbosity" "          " 18
at_xfail=no
(
  $as_echo "214. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:870: ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print \"\\
01 0e 00 50 00 00 00 00 00 00 00 00 00 01 50 54 \\
00 00 00 06 50 54 00 00 00 05 ff ff 00 00 08 06 \\
00 02 00 00 c0 a8 00 02 c0 a8 00 01 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 00 \\
00 00 01 0e 00 00 00 00 00 00 00 08 00 03 00 00 \\
\" 2"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:870"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print "\
01 0e 00 50 00 00 00 00 00 00 00 00 00 01 50 54 \
00 00 00 06 50 54 00 00 00 05 ff ff 00 00 08 06 \
00 02 00 00 c0 a8 00 02 c0 a8 00 01 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 00 \
00 00 01 0e 00 00 00 00 00 00 00 08 00 03 00 00 \
" 2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ofp_util|INFO|normalization changed ofp_match, details:
ofp_util|INFO| pre: arp,in_port=1,vlan_tci=0x0000,dl_src=50:54:00:00:00:06,dl_dst=50:54:00:00:00:05,arp_spa=192.168.0.2,arp_tpa=192.168.0.1,arp_op=2,nw_tos=0,tp_src=0,tp_dst=0
ofp_util|INFO|post: arp,in_port=1,vlan_tci=0x0000,dl_src=50:54:00:00:00:06,dl_dst=50:54:00:00:00:05,arp_spa=192.168.0.2,arp_tpa=192.168.0.1,arp_op=2
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_FLOW_MOD (xid=0x0): ADD priority=65535,arp,in_port=1,vlan_tci=0x0000,dl_src=50:54:00:00:00:06,dl_dst=50:54:00:00:00:05,arp_spa=192.168.0.2,arp_tpa=192.168.0.1,arp_op=2 idle:5 buf:0x10e out_port:0 actions=output:3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:870"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_214
#AT_START_215
at_fn_group_banner 215 'ofp-print.at:886' \
  "OFPT_FLOW_MOD - OF1.1 - low verbosity" "          " 18
at_xfail=no
(
  $as_echo "215. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:888: ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print \"\\
020e 0090 01020304 \\
da1aa3e035d87158 ffffffffffffffff \\
02 01 003c 0078 9c40 ffffffff ffffffff ffffffff 0003 \\
0000 \\
\\
0000 0058 00000000 000003f7 \\
000000000000ffffffffffff 000000000000ffffffffffff \\
0000 00 00 0806 00 00 c0a88000000000ff 00000000ffffffff 0000 0000 \\
00000000 00 000000 0000000000000000ffffffffffffffff \\
\\
0001 0008 03 000000 \\
\" 2"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:888"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print "\
020e 0090 01020304 \
da1aa3e035d87158 ffffffffffffffff \
02 01 003c 0078 9c40 ffffffff ffffffff ffffffff 0003 \
0000 \
\
0000 0058 00000000 000003f7 \
000000000000ffffffffffff 000000000000ffffffffffff \
0000 00 00 0806 00 00 c0a88000000000ff 00000000ffffffff 0000 0000 \
00000000 00 000000 0000000000000000ffffffffffffffff \
\
0001 0008 03 000000 \
" 2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_FLOW_MOD (OF1.1) (xid=0x1020304): MOD table:2 priority=40000,arp,arp_spa=192.168.128.0/24 cookie:0xda1aa3e035d87158/0xffffffffffffffff idle:60 hard:120 send_flow_rem check_overlap actions=goto_table:3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:888"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_215
#AT_START_216
at_fn_group_banner 216 'ofp-print.at:906' \
  "OFPT_FLOW_MOD - OF1.2 - low verbosity" "          " 18
at_xfail=no
(
  $as_echo "216. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:908: ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print \"\\
03 0e 00 90 00 00 00 02 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 01 00 00 00 00 00 ff ff \\
ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 \\
00 01 00 42 80 00 00 04 00 00 00 01 80 00 08 06 \\
50 54 00 00 00 06 80 00 06 06 50 54 00 00 00 05 \\
80 00 0a 02 08 06 80 00 0c 02 00 00 80 00 2a 02 \\
00 02 80 00 2c 04 c0 a8 00 02 80 00 2e 04 c0 a8 \\
00 01 00 00 00 00 00 00 00 04 00 18 00 00 00 00 \\
00 00 00 10 00 00 00 03 00 00 00 00 00 00 00 00 \\
\" 2"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:908"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print "\
03 0e 00 90 00 00 00 02 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 01 00 00 00 00 00 ff ff \
ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 \
00 01 00 42 80 00 00 04 00 00 00 01 80 00 08 06 \
50 54 00 00 00 06 80 00 06 06 50 54 00 00 00 05 \
80 00 0a 02 08 06 80 00 0c 02 00 00 80 00 2a 02 \
00 02 80 00 2c 04 c0 a8 00 02 80 00 2e 04 c0 a8 \
00 01 00 00 00 00 00 00 00 04 00 18 00 00 00 00 \
00 00 00 10 00 00 00 03 00 00 00 00 00 00 00 00 \
" 2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_FLOW_MOD (OF1.2) (xid=0x2): ADD table:1 priority=65535,arp,in_port=1,vlan_tci=0x0000/0x1fff,dl_src=50:54:00:00:00:06,dl_dst=50:54:00:00:00:05,arp_spa=192.168.0.2,arp_tpa=192.168.0.1,arp_op=2 actions=output:3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:908"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_216
#AT_START_217
at_fn_group_banner 217 'ofp-print.at:926' \
  "OFPT_FLOW_MOD - OF1.0 - high verbosity" "         " 18
at_xfail=no
(
  $as_echo "217. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:928: ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print \"\\
01 0e 00 50 00 00 00 00 00 00 00 00 00 01 50 54 \\
00 00 00 06 50 54 00 00 00 05 ff ff 00 00 08 06 \\
00 02 00 00 c0 a8 00 02 c0 a8 00 01 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 00 \\
00 00 01 0e 00 00 00 00 00 00 00 08 00 03 00 00 \\
\" 3"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:928"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print "\
01 0e 00 50 00 00 00 00 00 00 00 00 00 01 50 54 \
00 00 00 06 50 54 00 00 00 05 ff ff 00 00 08 06 \
00 02 00 00 c0 a8 00 02 c0 a8 00 01 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 00 \
00 00 01 0e 00 00 00 00 00 00 00 08 00 03 00 00 \
" 3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ofp_util|INFO|normalization changed ofp_match, details:
ofp_util|INFO| pre: arp,in_port=1,vlan_tci=0x0000,dl_src=50:54:00:00:00:06,dl_dst=50:54:00:00:00:05,arp_spa=192.168.0.2,arp_tpa=192.168.0.1,arp_op=2,nw_tos=0,tp_src=0,tp_dst=0
ofp_util|INFO|post: arp,in_port=1,vlan_tci=0x0000,dl_src=50:54:00:00:00:06,dl_dst=50:54:00:00:00:05,arp_spa=192.168.0.2,arp_tpa=192.168.0.1,arp_op=2
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_FLOW_MOD (xid=0x0): ADD arp,in_port=1,dl_vlan=65535,dl_vlan_pcp=0,dl_src=50:54:00:00:00:06,dl_dst=50:54:00:00:00:05,nw_src=192.168.0.2,nw_dst=192.168.0.1,arp_op=2,nw_tos=0,tp_src=0,tp_dst=0 idle:5 pri:65535 buf:0x10e out_port:0 actions=output:3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:928"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_217
#AT_START_218
at_fn_group_banner 218 'ofp-print.at:944' \
  "OFPT_FLOW_MOD - OF1.2 - low verbosity" "          " 18
at_xfail=no
(
  $as_echo "218. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:946: ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print \"\\
03 0e 00 90 00 00 00 02 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 01 00 00 00 00 00 ff ff \\
ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 \\
00 01 00 42 80 00 00 04 00 00 00 01 80 00 08 06 \\
50 54 00 00 00 06 80 00 06 06 50 54 00 00 00 05 \\
80 00 0a 02 08 06 80 00 0c 02 00 00 80 00 2a 02 \\
00 02 80 00 2c 04 c0 a8 00 02 80 00 2e 04 c0 a8 \\
00 01 00 00 00 00 00 00 00 04 00 18 00 00 00 00 \\
00 00 00 10 00 00 00 03 00 00 00 00 00 00 00 00 \\
\" 2"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:946"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print "\
03 0e 00 90 00 00 00 02 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 01 00 00 00 00 00 ff ff \
ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 \
00 01 00 42 80 00 00 04 00 00 00 01 80 00 08 06 \
50 54 00 00 00 06 80 00 06 06 50 54 00 00 00 05 \
80 00 0a 02 08 06 80 00 0c 02 00 00 80 00 2a 02 \
00 02 80 00 2c 04 c0 a8 00 02 80 00 2e 04 c0 a8 \
00 01 00 00 00 00 00 00 00 04 00 18 00 00 00 00 \
00 00 00 10 00 00 00 03 00 00 00 00 00 00 00 00 \
" 2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_FLOW_MOD (OF1.2) (xid=0x2): ADD table:1 priority=65535,arp,in_port=1,vlan_tci=0x0000/0x1fff,dl_src=50:54:00:00:00:06,dl_dst=50:54:00:00:00:05,arp_spa=192.168.0.2,arp_tpa=192.168.0.1,arp_op=2 actions=output:3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:946"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_218
#AT_START_219
at_fn_group_banner 219 'ofp-print.at:963' \
  "OFPT_FLOW_MOD - OF1.3 - flags - low verbosity" "  " 18
at_xfail=no
(
  $as_echo "219. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:965: ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print \"\\
04 0e 00 90 00 00 00 02 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 01 00 00 00 00 00 ff ff \\
ff ff ff ff ff ff ff ff ff ff ff ff 00 1f 00 00 \\
00 01 00 42 80 00 00 04 00 00 00 01 80 00 08 06 \\
50 54 00 00 00 06 80 00 06 06 50 54 00 00 00 05 \\
80 00 0a 02 08 06 80 00 0c 02 00 00 80 00 2a 02 \\
00 02 80 00 2c 04 c0 a8 00 02 80 00 2e 04 c0 a8 \\
00 01 00 00 00 00 00 00 00 04 00 18 00 00 00 00 \\
00 00 00 10 00 00 00 03 00 00 00 00 00 00 00 00 \\
\" 2"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:965"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print "\
04 0e 00 90 00 00 00 02 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 01 00 00 00 00 00 ff ff \
ff ff ff ff ff ff ff ff ff ff ff ff 00 1f 00 00 \
00 01 00 42 80 00 00 04 00 00 00 01 80 00 08 06 \
50 54 00 00 00 06 80 00 06 06 50 54 00 00 00 05 \
80 00 0a 02 08 06 80 00 0c 02 00 00 80 00 2a 02 \
00 02 80 00 2c 04 c0 a8 00 02 80 00 2e 04 c0 a8 \
00 01 00 00 00 00 00 00 00 04 00 18 00 00 00 00 \
00 00 00 10 00 00 00 03 00 00 00 00 00 00 00 00 \
" 2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_FLOW_MOD (OF1.3) (xid=0x2): ADD table:1 priority=65535,arp,in_port=1,vlan_tci=0x0000/0x1fff,dl_src=50:54:00:00:00:06,dl_dst=50:54:00:00:00:05,arp_spa=192.168.0.2,arp_tpa=192.168.0.1,arp_op=2 send_flow_rem check_overlap reset_counts no_packet_counts no_byte_counts actions=output:3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:965"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_219
#AT_START_220
at_fn_group_banner 220 'ofp-print.at:981' \
  "OFPT_FLOW_MOD - OF1.2 - set-field ip_src" "       " 18
at_xfail=no
(
  $as_echo "220. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:983: ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print \"\\
03 0e 00 58 52 33 45 02 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff \\
ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 \\
00 01 00 0a 80 00 0a 02 08 00 00 00 00 00 00 00 \\
00 04 00 18 00 00 00 00 00 19 00 10 80 00 16 04 \\
c0 a8 03 5c 00 00 00 00                         \\
\" 2"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:983"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print "\
03 0e 00 58 52 33 45 02 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff \
ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 \
00 01 00 0a 80 00 0a 02 08 00 00 00 00 00 00 00 \
00 04 00 18 00 00 00 00 00 19 00 10 80 00 16 04 \
c0 a8 03 5c 00 00 00 00                         \
" 2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_FLOW_MOD (OF1.2) (xid=0x52334502): ADD priority=255,ip actions=set_field:192.168.3.92->ip_src
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:983"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_220
#AT_START_221
at_fn_group_banner 221 'ofp-print.at:996' \
  "OFPT_FLOW_MOD - OF1.2 - set-field ip_dst" "       " 18
at_xfail=no
(
  $as_echo "221. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:998: ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print \"\\
03 0e 00 58 52 33 45 07 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff \\
ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 \\
00 01 00 0a 80 00 0a 02 08 00 00 00 00 00 00 00 \\
00 04 00 18 00 00 00 00 00 19 00 10 80 00 18 04 \\
c0 a8 4a 7a 00 00 00 00                         \\
\" 2"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:998"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print "\
03 0e 00 58 52 33 45 07 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff \
ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 \
00 01 00 0a 80 00 0a 02 08 00 00 00 00 00 00 00 \
00 04 00 18 00 00 00 00 00 19 00 10 80 00 18 04 \
c0 a8 4a 7a 00 00 00 00                         \
" 2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_FLOW_MOD (OF1.2) (xid=0x52334507): ADD priority=255,ip actions=set_field:192.168.74.122->ip_dst
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:998"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_221
#AT_START_222
at_fn_group_banner 222 'ofp-print.at:1011' \
  "OFPT_FLOW_MOD - OF1.2 - set-field sctp_src" "     " 18
at_xfail=no
(
  $as_echo "222. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1013: ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print \"\\
03 0e 00 58 52 33 45 07 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff \\
ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 \\
00 01 00 0f 80 00 0a 02 08 00 80 00 14 01 84 00 \\
00 04 00 18 00 00 00 00 00 19 00 10 80 00 22 02 \\
0d 06 00 00 00 00 00 00                         \\
\" 2"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1013"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print "\
03 0e 00 58 52 33 45 07 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff \
ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 \
00 01 00 0f 80 00 0a 02 08 00 80 00 14 01 84 00 \
00 04 00 18 00 00 00 00 00 19 00 10 80 00 22 02 \
0d 06 00 00 00 00 00 00                         \
" 2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_FLOW_MOD (OF1.2) (xid=0x52334507): ADD priority=255,sctp actions=set_field:3334->sctp_src
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1013"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_222
#AT_START_223
at_fn_group_banner 223 'ofp-print.at:1026' \
  "OFPT_FLOW_MOD - OF1.2 - set-field sctp_dst" "     " 18
at_xfail=no
(
  $as_echo "223. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1028: ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print \"\\
03 0e 00 58 52 33 45 07 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff \\
ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 \\
00 01 00 0f 80 00 0a 02 08 00 80 00 14 01 84 00 \\
00 04 00 18 00 00 00 00 00 19 00 10 80 00 24 02 \\
11 5d 00 00 00 00 00 00                         \\
\" 2"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1028"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print "\
03 0e 00 58 52 33 45 07 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff \
ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 \
00 01 00 0f 80 00 0a 02 08 00 80 00 14 01 84 00 \
00 04 00 18 00 00 00 00 00 19 00 10 80 00 24 02 \
11 5d 00 00 00 00 00 00                         \
" 2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_FLOW_MOD (OF1.2) (xid=0x52334507): ADD priority=255,sctp actions=set_field:4445->sctp_dst
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1028"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_223
#AT_START_224
at_fn_group_banner 224 'ofp-print.at:1041' \
  "OFPT_FLOW_MOD - OF1.2 - experimenter OXM" "       " 18
at_xfail=no
(
  $as_echo "224. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1043: ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print \"\\
03 0e 00 48 52 33 45 07 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff \\
ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 \\
00 01 00 14 ff ff 01 0c 00 00 23 20 01 23 45 67 \\
0f ff ff ff 00 00 00 00
\" 2"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1043"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print "\
03 0e 00 48 52 33 45 07 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff \
ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 \
00 01 00 14 ff ff 01 0c 00 00 23 20 01 23 45 67 \
0f ff ff ff 00 00 00 00
" 2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_FLOW_MOD (OF1.2) (xid=0x52334507): ADD priority=255,dp_hash=0x1234567/0xfffffff actions=drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1043"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_224
#AT_START_225
at_fn_group_banner 225 'ofp-print.at:1055' \
  "OFPT_FLOW_MOD - OF1.2 - set-field nd_target, nd_sll" "" 18
at_xfail=no
(
  $as_echo "225. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1057: ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print \"\\
03 0e 00 78 00 00 00 02 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff \\
ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 \\
00 01 00 14 80 00 0a 02 86 dd 80 00 14 01 3a 80 \\
00 3a 01 87 00 00 00 00 00 04 00 30 00 00 00 00 \\
00 19 00 18 80 00 3e 10 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 01 00 19 00 10 80 00 40 06 \\
aa aa aa aa aa aa 00 00
\" 2"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1057"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print "\
03 0e 00 78 00 00 00 02 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff \
ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 \
00 01 00 14 80 00 0a 02 86 dd 80 00 14 01 3a 80 \
00 3a 01 87 00 00 00 00 00 04 00 30 00 00 00 00 \
00 19 00 18 80 00 3e 10 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 01 00 19 00 10 80 00 40 06 \
aa aa aa aa aa aa 00 00
" 2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_FLOW_MOD (OF1.2) (xid=0x2): ADD priority=255,icmp6,icmp_type=135 actions=set_field:::1->nd_target,set_field:aa:aa:aa:aa:aa:aa->nd_sll
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1057"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_225
#AT_START_226
at_fn_group_banner 226 'ofp-print.at:1073' \
  "OFPT_FLOW_MOD - OF1.3 - meter" "                  " 18
at_xfail=no
(
  $as_echo "226. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1075: ovs-ofctl ofp-print \"\\
04 0e 00 40 cf fe 6b 86 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 e8 \\
ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 \\
00 01 00 04 00 00 00 00 00 06 00 08 00 00 00 01\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1075"
( $at_check_trace; ovs-ofctl ofp-print "\
04 0e 00 40 cf fe 6b 86 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 e8 \
ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 \
00 01 00 04 00 00 00 00 00 06 00 08 00 00 00 01"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_FLOW_MOD (OF1.3) (xid=0xcffe6b86): ADD priority=1000 actions=meter:1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1075"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_226
#AT_START_227
at_fn_group_banner 227 'ofp-print.at:1084' \
  "OFPT_FLOW reply - OF1.2 - set-field ip_src" "     " 18
at_xfail=no
(
  $as_echo "227. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1086: ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print \"\\
03 13 00 68 52 33 45 04 00 01 00 00 00 00 00 00 \\
00 58 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 01 00 0a 80 00 0a 02 08 00 00 00 00 00 00 00 \\
00 04 00 18 00 00 00 00 00 19 00 10 80 00 16 04 \\
c0 a8 03 5c 00 00 00 00                         \\
\" 2"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1086"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print "\
03 13 00 68 52 33 45 04 00 01 00 00 00 00 00 00 \
00 58 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 01 00 0a 80 00 0a 02 08 00 00 00 00 00 00 00 \
00 04 00 18 00 00 00 00 00 19 00 10 80 00 16 04 \
c0 a8 03 5c 00 00 00 00                         \
" 2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW reply (OF1.2) (xid=0x52334504):
 cookie=0x0, duration=0s, table=0, n_packets=0, n_bytes=0, priority=255,ip actions=set_field:192.168.3.92->ip_src
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1086"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_227
#AT_START_228
at_fn_group_banner 228 'ofp-print.at:1101' \
  "OFPT_FLOW reply - OF1.2 - set-field ip_dst" "     " 18
at_xfail=no
(
  $as_echo "228. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1103: ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print \"\\
03 13 00 68 52 33 45 09 00 01 00 00 00 00 00 00 \\
00 58 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 01 00 0a 80 00 0a 02 08 00 00 00 00 00 00 00 \\
00 04 00 18 00 00 00 00 00 19 00 10 80 00 18 04 \\
c0 a8 4a 7a 00 00 00 00                         \\
\" 2"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1103"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print "\
03 13 00 68 52 33 45 09 00 01 00 00 00 00 00 00 \
00 58 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 01 00 0a 80 00 0a 02 08 00 00 00 00 00 00 00 \
00 04 00 18 00 00 00 00 00 19 00 10 80 00 18 04 \
c0 a8 4a 7a 00 00 00 00                         \
" 2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW reply (OF1.2) (xid=0x52334509):
 cookie=0x0, duration=0s, table=0, n_packets=0, n_bytes=0, priority=255,ip actions=set_field:192.168.74.122->ip_dst
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1103"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_228
#AT_START_229
at_fn_group_banner 229 'ofp-print.at:1118' \
  "OFPT_FLOW reply - OF1.2 - set-field sctp_src" "   " 18
at_xfail=no
(
  $as_echo "229. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1120: ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print \"\\
03 13 00 68 52 33 45 04 00 01 00 00 00 00 00 00 \\
00 58 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 01 00 0f 80 00 0a 02 08 00 80 00 14 01 84 00 \\
00 04 00 18 00 00 00 00 00 19 00 10 80 00 22 02 \\
0d 06 00 00 00 00 00 00                         \\
\" 2"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1120"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print "\
03 13 00 68 52 33 45 04 00 01 00 00 00 00 00 00 \
00 58 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 01 00 0f 80 00 0a 02 08 00 80 00 14 01 84 00 \
00 04 00 18 00 00 00 00 00 19 00 10 80 00 22 02 \
0d 06 00 00 00 00 00 00                         \
" 2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW reply (OF1.2) (xid=0x52334504):
 cookie=0x0, duration=0s, table=0, n_packets=0, n_bytes=0, priority=255,sctp actions=set_field:3334->sctp_src
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1120"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_229
#AT_START_230
at_fn_group_banner 230 'ofp-print.at:1135' \
  "OFPT_FLOW reply - OF1.2 - set-field sctp_dst" "   " 18
at_xfail=no
(
  $as_echo "230. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1137: ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print \"\\
03 13 00 68 52 33 45 09 00 01 00 00 00 00 00 00 \\
00 58 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 01 00 0f 80 00 0a 02 08 00 80 00 14 01 84 00 \\
00 04 00 18 00 00 00 00 00 19 00 10 80 00 24 02 \\
11 5d 00 00 00 00 00 00                         \\
\" 2"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1137"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print "\
03 13 00 68 52 33 45 09 00 01 00 00 00 00 00 00 \
00 58 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 01 00 0f 80 00 0a 02 08 00 80 00 14 01 84 00 \
00 04 00 18 00 00 00 00 00 19 00 10 80 00 24 02 \
11 5d 00 00 00 00 00 00                         \
" 2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW reply (OF1.2) (xid=0x52334509):
 cookie=0x0, duration=0s, table=0, n_packets=0, n_bytes=0, priority=255,sctp actions=set_field:4445->sctp_dst
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1137"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_230
#AT_START_231
at_fn_group_banner 231 'ofp-print.at:1152' \
  "OFPT_PORT_MOD - OF1.0" "                          " 18
at_xfail=no
(
  $as_echo "231. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1154: ovs-ofctl ofp-print \"\\
01 0f 00 20 00 00 00 03 00 03 50 54 00 00 00 01 \\
00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 \\
\" 3"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1154"
( $at_check_trace; ovs-ofctl ofp-print "\
01 0f 00 20 00 00 00 03 00 03 50 54 00 00 00 01 \
00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 \
" 3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PORT_MOD (xid=0x3): port: 3: addr:50:54:00:00:00:01
     config: PORT_DOWN
     mask:   PORT_DOWN
     advertise: UNCHANGED
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1154"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_231
#AT_START_232
at_fn_group_banner 232 'ofp-print.at:1165' \
  "OFPT_PORT_MOD - OF1.1" "                          " 18
at_xfail=no
(
  $as_echo "232. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1167: ovs-ofctl ofp-print \"\\
02 10 00 28 00 00 00 03 00 00 00 03 00 00 00 00 \\
50 54 00 00 00 01 00 00 00 00 00 01 00 00 00 01 \\
00 00 00 00 00 00 00 00 \\
\" 3"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1167"
( $at_check_trace; ovs-ofctl ofp-print "\
02 10 00 28 00 00 00 03 00 00 00 03 00 00 00 00 \
50 54 00 00 00 01 00 00 00 00 00 01 00 00 00 01 \
00 00 00 00 00 00 00 00 \
" 3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PORT_MOD (OF1.1) (xid=0x3): port: 3: addr:50:54:00:00:00:01
     config: PORT_DOWN
     mask:   PORT_DOWN
     advertise: UNCHANGED
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1167"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_232
#AT_START_233
at_fn_group_banner 233 'ofp-print.at:1179' \
  "OFPT_PORT_MOD - OF1.2" "                          " 18
at_xfail=no
(
  $as_echo "233. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1181: ovs-ofctl ofp-print \"\\
03 10 00 28 00 00 00 03 00 00 00 03 00 00 00 00 \\
50 54 00 00 00 01 00 00 00 00 00 01 00 00 00 01 \\
00 00 00 00 00 00 00 00 \\
\" 3"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1181"
( $at_check_trace; ovs-ofctl ofp-print "\
03 10 00 28 00 00 00 03 00 00 00 03 00 00 00 00 \
50 54 00 00 00 01 00 00 00 00 00 01 00 00 00 01 \
00 00 00 00 00 00 00 00 \
" 3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PORT_MOD (OF1.2) (xid=0x3): port: 3: addr:50:54:00:00:00:01
     config: PORT_DOWN
     mask:   PORT_DOWN
     advertise: UNCHANGED
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1181"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_233
#AT_START_234
at_fn_group_banner 234 'ofp-print.at:1193' \
  "OFPT_PORT_MOD - OF1.3" "                          " 18
at_xfail=no
(
  $as_echo "234. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1195: ovs-ofctl ofp-print \"\\
04 10 00 28 00 00 00 03 00 00 00 03 00 00 00 00 \\
50 54 00 00 00 01 00 00 00 00 00 01 00 00 00 01 \\
00 00 00 00 00 00 00 00 \\
\" 3"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1195"
( $at_check_trace; ovs-ofctl ofp-print "\
04 10 00 28 00 00 00 03 00 00 00 03 00 00 00 00 \
50 54 00 00 00 01 00 00 00 00 00 01 00 00 00 01 \
00 00 00 00 00 00 00 00 \
" 3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PORT_MOD (OF1.3) (xid=0x3): port: 3: addr:50:54:00:00:00:01
     config: PORT_DOWN
     mask:   PORT_DOWN
     advertise: UNCHANGED
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1195"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_234
#AT_START_235
at_fn_group_banner 235 'ofp-print.at:1207' \
  "OFPT_PORT_MOD - OF1.4" "                          " 18
at_xfail=no
(
  $as_echo "235. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1209: ovs-ofctl ofp-print \"\\
05 10 00 28 00 00 00 03 00 00 00 03 00 00 00 00 \\
50 54 00 00 00 01 00 00 00 00 00 01 00 00 00 01 \\
00 00 00 08 00 00 00 01
\" 3"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1209"
( $at_check_trace; ovs-ofctl ofp-print "\
05 10 00 28 00 00 00 03 00 00 00 03 00 00 00 00 \
50 54 00 00 00 01 00 00 00 00 00 01 00 00 00 01 \
00 00 00 08 00 00 00 01
" 3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PORT_MOD (OF1.4) (xid=0x3): port: 3: addr:50:54:00:00:00:01
     config: PORT_DOWN
     mask:   PORT_DOWN
     advertise: 10MB-HD
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1209"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_235
#AT_START_236
at_fn_group_banner 236 'ofp-print.at:1221' \
  "OFPT_PORT_MOD - OF1.6" "                          " 18
at_xfail=no
(
  $as_echo "236. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1223: ovs-ofctl ofp-print \"\\
07 10 00 30 00 00 00 03 00 00 00 03 00 03 00 00 \\
50 54 00 00 00 01 00 00 50 54 00 ff fe 00 00 01 \\
00 00 00 01 00 00 00 01 00 00 00 08 00 00 00 01
\" 3"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1223"
( $at_check_trace; ovs-ofctl ofp-print "\
07 10 00 30 00 00 00 03 00 00 00 03 00 03 00 00 \
50 54 00 00 00 01 00 00 50 54 00 ff fe 00 00 01 \
00 00 00 01 00 00 00 01 00 00 00 08 00 00 00 01
" 3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PORT_MOD (OF1.6) (xid=0x3): port: 3: addr:50:54:00:00:00:01
     addr64: 50:54:00:ff:fe:00:00:01
     config: PORT_DOWN
     mask:   PORT_DOWN
     advertise: 10MB-HD
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1223"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_236
#AT_START_237
at_fn_group_banner 237 'ofp-print.at:1236' \
  "OFPT_TABLE_MOD - OF1.1" "                         " 18
at_xfail=no
(
  $as_echo "237. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1238: ovs-ofctl ofp-print \"\\
02 11 00 10 00 00 00 02 02 00 00 00 00 00 00 02 \\
\" 3"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1238"
( $at_check_trace; ovs-ofctl ofp-print "\
02 11 00 10 00 00 00 02 02 00 00 00 00 00 00 02 \
" 3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_TABLE_MOD (OF1.1) (xid=0x2): table_id=2, flow_miss_config=drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1238"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_237
#AT_START_238
at_fn_group_banner 238 'ofp-print.at:1245' \
  "OFPT_TABLE_MOD - OF1.2" "                         " 18
at_xfail=no
(
  $as_echo "238. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1247: ovs-ofctl ofp-print \"\\
03 11 00 10 00 00 00 02 02 00 00 00 00 00 00 01 \\
\" 3"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1247"
( $at_check_trace; ovs-ofctl ofp-print "\
03 11 00 10 00 00 00 02 02 00 00 00 00 00 00 01 \
" 3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_TABLE_MOD (OF1.2) (xid=0x2): table_id=2, flow_miss_config=continue
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1247"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_238
#AT_START_239
at_fn_group_banner 239 'ofp-print.at:1254' \
  "OFPT_TABLE_MOD - OF1.3" "                         " 18
at_xfail=no
(
  $as_echo "239. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1256: ovs-ofctl ofp-print \"\\
04 11 00 10 00 00 00 02 02 00 00 00 00 00 00 00 \\
\" 3"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1256"
( $at_check_trace; ovs-ofctl ofp-print "\
04 11 00 10 00 00 00 02 02 00 00 00 00 00 00 00 \
" 3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_TABLE_MOD (OF1.3) (xid=0x2): table_id=2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1256"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_239
#AT_START_240
at_fn_group_banner 240 'ofp-print.at:1263' \
  "OFPT_TABLE_MOD - OF1.4" "                         " 18
at_xfail=no
(
  $as_echo "240. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1265: ovs-ofctl ofp-print \"\\
05 11 00 10 00 00 00 02 02 00 00 00 00 00 00 00 \\
\" 3"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1265"
( $at_check_trace; ovs-ofctl ofp-print "\
05 11 00 10 00 00 00 02 02 00 00 00 00 00 00 00 \
" 3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_TABLE_MOD (OF1.4) (xid=0x2): table_id=2, eviction=off, vacancy=off
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1265"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_240
#AT_START_241
at_fn_group_banner 241 'ofp-print.at:1272' \
  "OFPST_DESC request" "                             " 18
at_xfail=no
(
  $as_echo "241. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1274: ovs-ofctl ofp-print \"0110000c0000000100000000\""
at_fn_check_prepare_trace "ofp-print.at:1274"
( $at_check_trace; ovs-ofctl ofp-print "0110000c0000000100000000"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_DESC request (xid=0x1):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1274"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_241
#AT_START_242
at_fn_group_banner 242 'ofp-print.at:1279' \
  "OFPST_DESC reply" "                               " 18
at_xfail=no
(
  $as_echo "242. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1281: ovs-ofctl ofp-print \"\\
01 11 04 2c 00 00 00 01 00 00 00 00 4e 69 63 69 \\
72 61 2c 20 49 6e 63 2e 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 4f 70 65 6e \\
20 76 53 77 69 74 63 68 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 31 2e 31 2e \\
30 70 72 65 32 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 4e 6f 6e 65 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 4e 6f 6e 65 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1281"
( $at_check_trace; ovs-ofctl ofp-print "\
01 11 04 2c 00 00 00 01 00 00 00 00 4e 69 63 69 \
72 61 2c 20 49 6e 63 2e 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 4f 70 65 6e \
20 76 53 77 69 74 63 68 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 31 2e 31 2e \
30 70 72 65 32 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 4e 6f 6e 65 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 4e 6f 6e 65 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_DESC reply (xid=0x1):
Manufacturer: Nicira, Inc.
Hardware: Open vSwitch
Software: 1.1.0pre2
Serial Num: None
DP Description: None
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1281"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_242
#AT_START_243
at_fn_group_banner 243 'ofp-print.at:1359' \
  "OFPST_FLOW request - OF1.0" "                     " 18
at_xfail=no
(
  $as_echo "243. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1361: ovs-ofctl ofp-print \"\\
01 10 00 38 00 00 00 04 00 01 00 00 00 38 20 ff \\
ff fe 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 ff 00 ff ff \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1361"
( $at_check_trace; ovs-ofctl ofp-print "\
01 10 00 38 00 00 00 04 00 01 00 00 00 38 20 ff \
ff fe 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 ff 00 ff ff \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW request (xid=0x4):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1361"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_243
#AT_START_244
at_fn_group_banner 244 'ofp-print.at:1371' \
  "OFPST_FLOW request - OF1.2" "                     " 18
at_xfail=no
(
  $as_echo "244. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1373: ovs-ofctl ofp-print \"\\
03 12 00 38 00 00 00 02 00 01 00 00 00 00 00 00 \\
ff 00 00 00 ff ff ff ff ff ff ff ff 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 01 00 04 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1373"
( $at_check_trace; ovs-ofctl ofp-print "\
03 12 00 38 00 00 00 02 00 01 00 00 00 00 00 00 \
ff 00 00 00 ff ff ff ff ff ff ff ff 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 01 00 04 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW request (OF1.2) (xid=0x2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1373"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_244
#AT_START_245
at_fn_group_banner 245 'ofp-print.at:1383' \
  "OFPST_FLOW request - OF1.3" "                     " 18
at_xfail=no
(
  $as_echo "245. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1385: ovs-ofctl ofp-print \"\\
04 12 00 38 00 00 00 02 00 01 00 00 00 00 00 00 \\
ff 00 00 00 ff ff ff ff ff ff ff ff 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 01 00 04 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1385"
( $at_check_trace; ovs-ofctl ofp-print "\
04 12 00 38 00 00 00 02 00 01 00 00 00 00 00 00 \
ff 00 00 00 ff ff ff ff ff ff ff ff 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 01 00 04 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW request (OF1.3) (xid=0x2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1385"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_245
#AT_START_246
at_fn_group_banner 246 'ofp-print.at:1395' \
  "OFPST_FLOW reply - OF1.0" "                       " 18
at_xfail=no
(
  $as_echo "246. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1397: ovs-ofctl ofp-print \"\\
01 11 01 e4 00 00 00 04 00 01 00 00 00 60 00 00 \\
00 00 00 00 00 03 50 54 00 00 00 05 50 54 00 00 \\
00 06 ff ff 00 00 08 06 00 02 00 00 c0 a8 00 01 \\
c0 a8 00 02 00 00 00 00 00 00 00 04 0b eb c2 00 \\
ff ff 00 05 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 \\
00 00 00 3c 00 00 00 08 00 01 00 00 00 60 00 00 \\
00 00 00 00 00 01 50 54 00 00 00 06 50 54 00 00 \\
00 05 ff ff 00 00 08 00 00 01 00 00 c0 a8 00 02 \\
c0 a8 00 01 00 00 00 00 00 00 00 08 35 a4 e9 00 \\
ff ff 00 05 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 0d 00 00 00 00 \\
00 00 04 fa 00 00 00 08 00 03 00 00 00 60 00 00 \\
00 00 00 00 00 01 50 54 00 00 00 06 50 54 00 00 \\
00 05 ff ff 00 00 08 06 00 01 00 00 c0 a8 00 02 \\
c0 a8 00 01 00 00 00 00 00 00 00 04 10 b0 76 00 \\
ff ff 00 05 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 \\
00 00 00 3c 00 00 00 08 00 03 00 00 00 60 00 00 \\
00 00 00 01 00 03 50 54 00 00 00 05 50 54 00 00 \\
00 06 ff ff 00 00 08 00 00 01 00 00 c0 a8 00 01 \\
c0 a8 00 02 00 08 00 00 00 00 00 09 05 b8 d8 00 \\
80 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 0d 00 00 00 00 \\
00 00 04 fa 00 00 00 08 00 01 00 00 \\
00 58 02 00 00 3f ff ff 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1397"
( $at_check_trace; ovs-ofctl ofp-print "\
01 11 01 e4 00 00 00 04 00 01 00 00 00 60 00 00 \
00 00 00 00 00 03 50 54 00 00 00 05 50 54 00 00 \
00 06 ff ff 00 00 08 06 00 02 00 00 c0 a8 00 01 \
c0 a8 00 02 00 00 00 00 00 00 00 04 0b eb c2 00 \
ff ff 00 05 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 \
00 00 00 3c 00 00 00 08 00 01 00 00 00 60 00 00 \
00 00 00 00 00 01 50 54 00 00 00 06 50 54 00 00 \
00 05 ff ff 00 00 08 00 00 01 00 00 c0 a8 00 02 \
c0 a8 00 01 00 00 00 00 00 00 00 08 35 a4 e9 00 \
ff ff 00 05 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 0d 00 00 00 00 \
00 00 04 fa 00 00 00 08 00 03 00 00 00 60 00 00 \
00 00 00 00 00 01 50 54 00 00 00 06 50 54 00 00 \
00 05 ff ff 00 00 08 06 00 01 00 00 c0 a8 00 02 \
c0 a8 00 01 00 00 00 00 00 00 00 04 10 b0 76 00 \
ff ff 00 05 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 \
00 00 00 3c 00 00 00 08 00 03 00 00 00 60 00 00 \
00 00 00 01 00 03 50 54 00 00 00 05 50 54 00 00 \
00 06 ff ff 00 00 08 00 00 01 00 00 c0 a8 00 01 \
c0 a8 00 02 00 08 00 00 00 00 00 09 05 b8 d8 00 \
80 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 0d 00 00 00 00 \
00 00 04 fa 00 00 00 08 00 01 00 00 \
00 58 02 00 00 3f ff ff 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW reply (xid=0x4):
 cookie=0x0, duration=4.200s, table=0, n_packets=1, n_bytes=60, idle_timeout=5, priority=65535,arp,in_port=3,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:06,arp_spa=192.168.0.1,arp_tpa=192.168.0.2,arp_op=2,nw_tos=0,tp_src=0,tp_dst=0 actions=output:1
 cookie=0x0, duration=8.900s, table=0, n_packets=13, n_bytes=1274, idle_timeout=5, priority=65535,icmp,in_port=1,vlan_tci=0x0000,dl_src=50:54:00:00:00:06,dl_dst=50:54:00:00:00:05,nw_src=192.168.0.2,nw_dst=192.168.0.1,nw_tos=0,icmp_type=0,icmp_code=0 actions=output:3
 cookie=0x0, duration=4.280s, table=0, n_packets=1, n_bytes=60, idle_timeout=5, priority=65535,arp,in_port=1,vlan_tci=0x0000,dl_src=50:54:00:00:00:06,dl_dst=50:54:00:00:00:05,arp_spa=192.168.0.2,arp_tpa=192.168.0.1,arp_op=1,nw_tos=0,tp_src=0,tp_dst=0 actions=output:3
 cookie=0x0, duration=9.096s, table=0, n_packets=13, n_bytes=1274, idle_timeout=5, icmp,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:06,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,icmp_type=8,icmp_code=0 actions=output:1
 cookie=0x0, duration=0s, table=2, n_packets=0, n_bytes=0, actions=drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1397"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_246
#AT_START_247
at_fn_group_banner 247 'ofp-print.at:1439' \
  "OFPST_FLOW reply - OF1.2" "                       " 18
at_xfail=no
(
  $as_echo "247. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1441: ovs-ofctl ofp-print \"\\
03 13 01 78 00 00 00 02 00 01 00 00 00 00 00 00 \\
00 78 00 00 00 00 00 03 01 5e f3 c0 80 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 62 \\
00 01 00 2d 80 00 00 04 00 00 00 02 80 00 06 06 \\
ca da ad d6 0d 37 80 00 0a 02 08 00 80 00 10 01 \\
00 80 00 04 08 00 00 00 00 00 00 00 00 00 00 00 \\
00 04 00 18 00 00 00 00 00 00 00 10 00 00 00 02 \\
05 dc 00 00 00 00 00 00 00 78 00 00 00 00 00 04 \\
20 7c 0a 40 80 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 \\
00 00 00 00 00 00 00 8c 00 01 00 2d 80 00 00 04 \\
00 00 00 02 80 00 06 06 52 54 00 c3 00 89 80 00 \\
0a 02 08 00 80 00 10 01 00 80 00 04 08 00 00 00 \\
00 00 00 00 00 00 00 00 00 04 00 18 00 00 00 00 \\
00 00 00 10 00 00 00 02 05 dc 00 00 00 00 00 00 \\
00 78 00 00 00 00 00 04 20 a9 d1 00 80 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 2a \\
00 01 00 2d 80 00 00 04 00 00 00 02 80 00 06 06 \\
52 54 00 97 00 69 80 00 0a 02 08 00 80 00 10 01 \\
00 80 00 04 08 00 00 00 00 00 00 00 00 00 00 00 \\
00 04 00 18 00 00 00 00 00 00 00 10 00 00 00 02 \\
05 dc 00 00 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1441"
( $at_check_trace; ovs-ofctl ofp-print "\
03 13 01 78 00 00 00 02 00 01 00 00 00 00 00 00 \
00 78 00 00 00 00 00 03 01 5e f3 c0 80 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 62 \
00 01 00 2d 80 00 00 04 00 00 00 02 80 00 06 06 \
ca da ad d6 0d 37 80 00 0a 02 08 00 80 00 10 01 \
00 80 00 04 08 00 00 00 00 00 00 00 00 00 00 00 \
00 04 00 18 00 00 00 00 00 00 00 10 00 00 00 02 \
05 dc 00 00 00 00 00 00 00 78 00 00 00 00 00 04 \
20 7c 0a 40 80 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 \
00 00 00 00 00 00 00 8c 00 01 00 2d 80 00 00 04 \
00 00 00 02 80 00 06 06 52 54 00 c3 00 89 80 00 \
0a 02 08 00 80 00 10 01 00 80 00 04 08 00 00 00 \
00 00 00 00 00 00 00 00 00 04 00 18 00 00 00 00 \
00 00 00 10 00 00 00 02 05 dc 00 00 00 00 00 00 \
00 78 00 00 00 00 00 04 20 a9 d1 00 80 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 2a \
00 01 00 2d 80 00 00 04 00 00 00 02 80 00 06 06 \
52 54 00 97 00 69 80 00 0a 02 08 00 80 00 10 01 \
00 80 00 04 08 00 00 00 00 00 00 00 00 00 00 00 \
00 04 00 18 00 00 00 00 00 00 00 10 00 00 00 02 \
05 dc 00 00 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW reply (OF1.2) (xid=0x2):
 cookie=0x0, duration=3.023s, table=0, n_packets=1, n_bytes=98, ip,metadata=0,in_port=2,dl_dst=ca:da:ad:d6:0d:37,nw_tos=0 actions=output:2
 cookie=0x0, duration=4.545s, table=0, n_packets=2, n_bytes=140, ip,metadata=0,in_port=2,dl_dst=52:54:00:c3:00:89,nw_tos=0 actions=output:2
 cookie=0x0, duration=4.548s, table=0, n_packets=1, n_bytes=42, ip,metadata=0,in_port=2,dl_dst=52:54:00:97:00:69,nw_tos=0 actions=output:2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1441"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_247
#AT_START_248
at_fn_group_banner 248 'ofp-print.at:1474' \
  "OFPST_AGGREGATE request - OF1.0" "                " 18
at_xfail=no
(
  $as_echo "248. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1476: ovs-ofctl ofp-print \"\\
01 10 00 38 00 00 00 04 00 02 00 00 00 38 20 ff \\
ff fe 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 ff 00 ff ff \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1476"
( $at_check_trace; ovs-ofctl ofp-print "\
01 10 00 38 00 00 00 04 00 02 00 00 00 38 20 ff \
ff fe 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 ff 00 ff ff \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_AGGREGATE request (xid=0x4):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1476"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_248
#AT_START_249
at_fn_group_banner 249 'ofp-print.at:1486' \
  "OFPST_AGGREGATE request - OF1.2" "                " 18
at_xfail=no
(
  $as_echo "249. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1488: ovs-ofctl ofp-print \"\\
03 12 00 38 00 00 00 02 00 02 00 00 00 00 00 00 \\
ff 00 00 00 ff ff ff ff ff ff ff ff 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 01 00 04 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1488"
( $at_check_trace; ovs-ofctl ofp-print "\
03 12 00 38 00 00 00 02 00 02 00 00 00 00 00 00 \
ff 00 00 00 ff ff ff ff ff ff ff ff 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 01 00 04 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_AGGREGATE request (OF1.2) (xid=0x2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1488"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_249
#AT_START_250
at_fn_group_banner 250 'ofp-print.at:1498' \
  "OFPST_AGGREGATE request - OF1.3" "                " 18
at_xfail=no
(
  $as_echo "250. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1500: ovs-ofctl ofp-print \"\\
04 12 00 38 00 00 00 02 00 02 00 00 00 00 00 00 \\
ff 00 00 00 ff ff ff ff ff ff ff ff 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 01 00 04 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1500"
( $at_check_trace; ovs-ofctl ofp-print "\
04 12 00 38 00 00 00 02 00 02 00 00 00 00 00 00 \
ff 00 00 00 ff ff ff ff ff ff ff ff 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 01 00 04 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_AGGREGATE request (OF1.3) (xid=0x2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1500"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_250
#AT_START_251
at_fn_group_banner 251 'ofp-print.at:1510' \
  "OFPST_AGGREGATE reply - OF1.0" "                  " 18
at_xfail=no
(
  $as_echo "251. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1512: ovs-ofctl ofp-print \"\\
01 11 00 24 00 00 00 04 00 02 00 00 00 00 00 00 \\
00 00 01 82 00 00 00 00 00 00 93 78 00 00 00 04 \\
00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1512"
( $at_check_trace; ovs-ofctl ofp-print "\
01 11 00 24 00 00 00 04 00 02 00 00 00 00 00 00 \
00 00 01 82 00 00 00 00 00 00 93 78 00 00 00 04 \
00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_AGGREGATE reply (xid=0x4): packet_count=386 byte_count=37752 flow_count=4
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1512"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_251
#AT_START_252
at_fn_group_banner 252 'ofp-print.at:1521' \
  "OFPST_AGGREGATE reply - OF1.2" "                  " 18
at_xfail=no
(
  $as_echo "252. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1523: ovs-ofctl ofp-print \"\\
03 13 00 28 00 00 00 02 00 02 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 79 00 00 00 00 00 00 4b 4f \\
00 00 00 03 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1523"
( $at_check_trace; ovs-ofctl ofp-print "\
03 13 00 28 00 00 00 02 00 02 00 00 00 00 00 00 \
00 00 00 00 00 00 00 79 00 00 00 00 00 00 4b 4f \
00 00 00 03 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_AGGREGATE reply (OF1.2) (xid=0x2): packet_count=121 byte_count=19279 flow_count=3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1523"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_252
#AT_START_253
at_fn_group_banner 253 'ofp-print.at:1532' \
  "OFPST_AGGREGATE reply - OF1.3" "                  " 18
at_xfail=no
(
  $as_echo "253. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1534: ovs-ofctl ofp-print \"\\
04 13 00 28 00 00 00 02 00 02 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 79 00 00 00 00 00 00 4b 4f \\
00 00 00 03 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1534"
( $at_check_trace; ovs-ofctl ofp-print "\
04 13 00 28 00 00 00 02 00 02 00 00 00 00 00 00 \
00 00 00 00 00 00 00 79 00 00 00 00 00 00 4b 4f \
00 00 00 03 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_AGGREGATE reply (OF1.3) (xid=0x2): packet_count=121 byte_count=19279 flow_count=3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1534"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_253
#AT_START_254
at_fn_group_banner 254 'ofp-print.at:1543' \
  "OFPST_TABLE request - OF1.0" "                    " 18
at_xfail=no
(
  $as_echo "254. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1545: ovs-ofctl ofp-print \"0110000c0000000100030000\""
at_fn_check_prepare_trace "ofp-print.at:1545"
( $at_check_trace; ovs-ofctl ofp-print "0110000c0000000100030000"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_TABLE request (xid=0x1):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1545"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_254
#AT_START_255
at_fn_group_banner 255 'ofp-print.at:1550' \
  "OFPST_TABLE request - OF1.1" "                    " 18
at_xfail=no
(
  $as_echo "255. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1552: ovs-ofctl ofp-print \"02120010000000020003000000000000\""
at_fn_check_prepare_trace "ofp-print.at:1552"
( $at_check_trace; ovs-ofctl ofp-print "02120010000000020003000000000000"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_TABLE request (OF1.1) (xid=0x2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1552"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_255
#AT_START_256
at_fn_group_banner 256 'ofp-print.at:1557' \
  "OFPST_TABLE request - OF1.2" "                    " 18
at_xfail=no
(
  $as_echo "256. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1559: ovs-ofctl ofp-print \"03120010000000020003000000000000\""
at_fn_check_prepare_trace "ofp-print.at:1559"
( $at_check_trace; ovs-ofctl ofp-print "03120010000000020003000000000000"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_TABLE request (OF1.2) (xid=0x2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1559"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_256
#AT_START_257
at_fn_group_banner 257 'ofp-print.at:1564' \
  "OFPST_TABLE request - OF1.3" "                    " 18
at_xfail=no
(
  $as_echo "257. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1566: ovs-ofctl ofp-print \"04120010000000020003000000000000\""
at_fn_check_prepare_trace "ofp-print.at:1566"
( $at_check_trace; ovs-ofctl ofp-print "04120010000000020003000000000000"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_TABLE request (OF1.3) (xid=0x2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1566"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_257
#AT_START_258
at_fn_group_banner 258 'ofp-print.at:1571' \
  "OFPST_TABLE reply - OF1.0" "                      " 18
at_xfail=no
(
  $as_echo "258. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1573: ovs-ofctl ofp-print \"\\
01 11 00 4c 00 00 00 01 00 03 00 00 00 00 00 00 \\
63 6c 61 73 73 69 66 69 65 72 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 3f ff ff 00 10 00 00 00 00 00 0b 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1573"
( $at_check_trace; ovs-ofctl ofp-print "\
01 11 00 4c 00 00 00 01 00 03 00 00 00 00 00 00 \
63 6c 61 73 73 69 66 69 65 72 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 3f ff ff 00 10 00 00 00 00 00 0b 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_TABLE reply (xid=0x1):
  table 0 (\"classifier\"):
    active=11, lookup=0, matched=0
    max_entries=1048576
    matching:
      in_port: exact match or wildcard
      eth_src: exact match or wildcard
      eth_dst: exact match or wildcard
      eth_type: exact match or wildcard
      vlan_vid: exact match or wildcard
      vlan_pcp: exact match or wildcard
      ip_src: exact match or wildcard
      ip_dst: exact match or wildcard
      nw_proto: exact match or wildcard
      nw_tos: exact match or wildcard
      tcp_src: exact match or wildcard
      tcp_dst: exact match or wildcard
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1573"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_258
#AT_START_259
at_fn_group_banner 259 'ofp-print.at:1600' \
  "OFPST_TABLE reply - OF1.2" "                      " 18
at_xfail=no
(
  $as_echo "259. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


(echo 'OFPST_TABLE reply (OF1.2) (xid=0x2):
  table 0 ("classifier"):
    active=1, lookup=74614, matched=106024
    config=controller
    max_entries=1000000
    instructions (table miss and others):
      instructions: write_metadata,goto_table
      Write-Actions and Apply-Actions features:
        supported on Set-Field: metadata in_port_oxm eth_src eth_dst eth_type vlan_vid vlan_pcp mpls_label mpls_tc ip_src ip_dst ipv6_src ipv6_dst ipv6_label nw_proto ip_dscp nw_ecn arp_op arp_spa arp_tpa arp_sha arp_tha tcp_src tcp_dst udp_src udp_dst sctp_src sctp_dst icmp_type icmp_code icmpv6_type icmpv6_code nd_target nd_sll nd_tll
    matching:
      metadata: exact match or wildcard
      in_port_oxm: exact match or wildcard
      eth_src: exact match or wildcard
      eth_dst: exact match or wildcard
      eth_type: exact match or wildcard
      vlan_vid: exact match or wildcard
      vlan_pcp: exact match or wildcard
      mpls_label: exact match or wildcard
      mpls_tc: exact match or wildcard
      ip_src: exact match or wildcard
      ip_dst: exact match or wildcard
      ipv6_src: exact match or wildcard
      ipv6_dst: exact match or wildcard
      ipv6_label: exact match or wildcard
      nw_proto: exact match or wildcard
      ip_dscp: exact match or wildcard
      nw_ecn: exact match or wildcard
      arp_op: exact match or wildcard
      arp_spa: exact match or wildcard
      arp_tpa: exact match or wildcard
      arp_sha: exact match or wildcard
      arp_tha: exact match or wildcard
      tcp_src: exact match or wildcard
      tcp_dst: exact match or wildcard
      udp_src: exact match or wildcard
      udp_dst: exact match or wildcard
      sctp_src: exact match or wildcard
      sctp_dst: exact match or wildcard
      icmp_type: exact match or wildcard
      icmp_code: exact match or wildcard
      icmpv6_type: exact match or wildcard
      icmpv6_code: exact match or wildcard
      nd_target: exact match or wildcard
      nd_sll: exact match or wildcard
      nd_tll: exact match or wildcard

  table 1 ("table1"):
    active=0, lookup=0, matched=0
    (same features)
'
 for i in `seq 2 253`; do
     printf '  table %d ("table%d"): ditto\n' $i $i
 done
 echo '  table 254 ("table254"):
    active=2, lookup=0, matched=0
    (same features)') > expout

(pad32="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
 pad7="00 00 00 00 00 00 00 "
 mid="00 00 00 0f ff ff ff ff \
00 00 00 0f ff ff ff ff 00 00 00 00 00 00 00 00 \
00 00 00 0f ff ff ff ff 00 00 00 0f ff ff ff ff \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 07 00 00 00 00 00 0f 42 40 "
 tail="00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00"

 printf "03 13 7f 90 00 00 00 02 00 03 00 00 00 00 00 00 "

 x=0
 printf "%02x $pad7" $x
 printf "%s$pad32" "classifier" | od -A n -t x1 -v -N 32 | tr '\n' ' '
 printf "$mid 00 00 00 01  "
 printf "00 00 00 00 00 01 23 76 00 00 00 00 00 01 9e 28 "

 x=1
 while test $x -lt 254; do
   printf "%02x $pad7" $x
   printf "%s$pad32" "table$x" | od -A n -t x1 -v -N 32 | tr '\n' ' '
   printf "$mid 00 00 00 00 $tail "
   x=`expr $x + 1`
 done

 x=254
 printf "%02x $pad7" $x
 printf "%s$pad32" "table$x" | od -A n -t x1 -v -N 32 | tr '\n' ' '
 printf "$mid 00 00 00 02 $tail") > in
{ set +x
$as_echo "$at_srcdir/ofp-print.at:1688: ovs-ofctl ofp-print - < in"
at_fn_check_prepare_trace "ofp-print.at:1688"
( $at_check_trace; ovs-ofctl ofp-print - < in
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1688"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_259
#AT_START_260
at_fn_group_banner 260 'ofp-print.at:1691' \
  "OFPST_TABLE reply - OF1.3" "                      " 18
at_xfail=no
(
  $as_echo "260. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1693: ovs-ofctl ofp-print \"\\
04 13 00 40 00 00 00 01 00 03 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 0b 00 00 00 00 00 00 02 00 \\
00 00 00 00 00 00 01 00 01 00 00 00 00 00 00 0c \\
00 00 00 00 00 00 02 01 00 00 00 00 00 00 01 01 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1693"
( $at_check_trace; ovs-ofctl ofp-print "\
04 13 00 40 00 00 00 01 00 03 00 00 00 00 00 00 \
00 00 00 00 00 00 00 0b 00 00 00 00 00 00 02 00 \
00 00 00 00 00 00 01 00 01 00 00 00 00 00 00 0c \
00 00 00 00 00 00 02 01 00 00 00 00 00 00 01 01 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_TABLE reply (OF1.3) (xid=0x1):
  table 0:
    active=11, lookup=512, matched=256

  table 1:
    active=12, lookup=513, matched=257
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1693"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_260
#AT_START_261
at_fn_group_banner 261 'ofp-print.at:1708' \
  "OFPST_PORT request - 1.0" "                       " 18
at_xfail=no
(
  $as_echo "261. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1710: ovs-ofctl ofp-print \"\\
01 10 00 14 00 00 00 01 00 04 00 00 ff ff 00 00 \\
00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1710"
( $at_check_trace; ovs-ofctl ofp-print "\
01 10 00 14 00 00 00 01 00 04 00 00 ff ff 00 00 \
00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_PORT request (xid=0x1): port_no=ANY
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1710"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_261
#AT_START_262
at_fn_group_banner 262 'ofp-print.at:1718' \
  "OFPST_PORT request - 1.1" "                       " 18
at_xfail=no
(
  $as_echo "262. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1720: ovs-ofctl ofp-print \"\\
02 12 00 18 00 00 00 02 00 04 00 00 00 00 00 00 \\
ff ff ff ff 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1720"
( $at_check_trace; ovs-ofctl ofp-print "\
02 12 00 18 00 00 00 02 00 04 00 00 00 00 00 00 \
ff ff ff ff 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_PORT request (OF1.1) (xid=0x2): port_no=ANY
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1720"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_262
#AT_START_263
at_fn_group_banner 263 'ofp-print.at:1728' \
  "OFPST_PORT request - 1.2" "                       " 18
at_xfail=no
(
  $as_echo "263. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1730: ovs-ofctl ofp-print \"\\
03 12 00 18 00 00 00 02 00 04 00 00 00 00 00 00 \\
ff ff ff ff 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1730"
( $at_check_trace; ovs-ofctl ofp-print "\
03 12 00 18 00 00 00 02 00 04 00 00 00 00 00 00 \
ff ff ff ff 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_PORT request (OF1.2) (xid=0x2): port_no=ANY
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1730"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_263
#AT_START_264
at_fn_group_banner 264 'ofp-print.at:1738' \
  "OFPST_PORT request - 1.3" "                       " 18
at_xfail=no
(
  $as_echo "264. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1740: ovs-ofctl ofp-print \"\\
04 12 00 18 00 00 00 02 00 04 00 00 00 00 00 00 \\
ff ff ff ff 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1740"
( $at_check_trace; ovs-ofctl ofp-print "\
04 12 00 18 00 00 00 02 00 04 00 00 00 00 00 00 \
ff ff ff ff 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_PORT request (OF1.3) (xid=0x2): port_no=ANY
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1740"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_264
#AT_START_265
at_fn_group_banner 265 'ofp-print.at:1748' \
  "OFPST_PORT reply - OF1.0" "                       " 18
at_xfail=no
(
  $as_echo "265. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1750: ovs-ofctl ofp-print \"\\
01 11 01 ac 00 00 00 01 00 04 00 00 00 03 00 00 \\
00 00 00 00 00 00 00 00 00 00 4d 20 00 00 00 00 \\
00 00 14 32 00 00 00 00 00 0f 60 4e 00 00 00 00 \\
00 05 71 bc 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 ff fe 00 00 00 00 00 00 00 00 00 00 \\
00 00 02 ac 00 00 00 00 00 00 01 f5 00 00 00 00 \\
00 01 0c 8c 00 00 00 00 00 00 db 1c 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 \\
00 00 00 00 00 00 00 00 00 00 06 be 00 00 00 00 \\
00 00 05 84 00 00 00 00 00 02 34 b4 00 00 00 00 \\
00 02 23 d4 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 \\
00 00 14 12 00 00 00 00 00 00 14 66 00 00 00 00 \\
00 04 a2 54 00 00 00 00 00 05 8a 1e 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1750"
( $at_check_trace; ovs-ofctl ofp-print "\
01 11 01 ac 00 00 00 01 00 04 00 00 00 03 00 00 \
00 00 00 00 00 00 00 00 00 00 4d 20 00 00 00 00 \
00 00 14 32 00 00 00 00 00 0f 60 4e 00 00 00 00 \
00 05 71 bc 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 ff fe 00 00 00 00 00 00 00 00 00 00 \
00 00 02 ac 00 00 00 00 00 00 01 f5 00 00 00 00 \
00 01 0c 8c 00 00 00 00 00 00 db 1c 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 \
00 00 00 00 00 00 00 00 00 00 06 be 00 00 00 00 \
00 00 05 84 00 00 00 00 00 02 34 b4 00 00 00 00 \
00 02 23 d4 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 \
00 00 14 12 00 00 00 00 00 00 14 66 00 00 00 00 \
00 04 a2 54 00 00 00 00 00 05 8a 1e 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_PORT reply (xid=0x1): 4 ports
  port  3: rx pkts=19744, bytes=1007694, drop=0, errs=0, frame=0, over=0, crc=0
           tx pkts=5170, bytes=356796, drop=0, errs=0, coll=0
  port LOCAL: rx pkts=684, bytes=68748, drop=0, errs=0, frame=0, over=0, crc=0
           tx pkts=501, bytes=56092, drop=0, errs=0, coll=0
  port  2: rx pkts=1726, bytes=144564, drop=0, errs=0, frame=0, over=0, crc=0
           tx pkts=1412, bytes=140244, drop=0, errs=0, coll=0
  port  1: rx pkts=5138, bytes=303700, drop=0, errs=0, frame=0, over=0, crc=0
           tx pkts=5222, bytes=363038, drop=0, errs=0, coll=0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1750"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_265
#AT_START_266
at_fn_group_banner 266 'ofp-print.at:1791' \
  "OFPST_PORT reply - OF1.2" "                       " 18
at_xfail=no
(
  $as_echo "266. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1793: ovs-ofctl ofp-print \"\\
03 13 01 48 00 00 00 02 00 04 00 00 00 00 00 00 \\
00 00 00 02 00 00 00 00 00 00 00 00 00 01 95 56 \\
00 00 00 00 00 00 00 88 00 00 00 00 02 5d 08 98 \\
00 00 00 00 00 00 2c f8 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 ff ff ff fe 00 00 00 00 \\
00 00 00 00 00 00 00 44 00 00 00 00 00 00 9d 2c \\
00 00 00 00 00 00 16 7c 00 00 00 00 01 1e 36 44 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 44 \\
00 00 00 00 00 00 9d 2c 00 00 00 00 00 00 16 7c \\
00 00 00 00 01 1e 36 44 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1793"
( $at_check_trace; ovs-ofctl ofp-print "\
03 13 01 48 00 00 00 02 00 04 00 00 00 00 00 00 \
00 00 00 02 00 00 00 00 00 00 00 00 00 01 95 56 \
00 00 00 00 00 00 00 88 00 00 00 00 02 5d 08 98 \
00 00 00 00 00 00 2c f8 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 ff ff ff fe 00 00 00 00 \
00 00 00 00 00 00 00 44 00 00 00 00 00 00 9d 2c \
00 00 00 00 00 00 16 7c 00 00 00 00 01 1e 36 44 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 44 \
00 00 00 00 00 00 9d 2c 00 00 00 00 00 00 16 7c \
00 00 00 00 01 1e 36 44 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_PORT reply (OF1.2) (xid=0x2): 3 ports
  port  2: rx pkts=103766, bytes=39651480, drop=0, errs=0, frame=0, over=0, crc=0
           tx pkts=136, bytes=11512, drop=0, errs=0, coll=0
  port LOCAL: rx pkts=68, bytes=5756, drop=0, errs=0, frame=0, over=0, crc=0
           tx pkts=40236, bytes=18757188, drop=0, errs=0, coll=0
  port  1: rx pkts=68, bytes=5756, drop=0, errs=0, frame=0, over=0, crc=0
           tx pkts=40236, bytes=18757188, drop=0, errs=0, coll=0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1793"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_266
#AT_START_267
at_fn_group_banner 267 'ofp-print.at:1826' \
  "OFPST_PORT reply - OF1.3" "                       " 18
at_xfail=no
(
  $as_echo "267. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1828: ovs-ofctl ofp-print \"\\
04 13 01 60 00 00 00 02 00 04 00 00 00 00 00 00 \\
00 00 00 02 00 00 00 00 00 00 00 00 00 01 95 56 \\
00 00 00 00 00 00 00 88 00 00 00 00 02 5d 08 98 \\
00 00 00 00 00 00 2c f8 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 01 00 0f 42 40 \\
ff ff ff fe 00 00 00 00 \\
00 00 00 00 00 00 00 44 00 00 00 00 00 00 9d 2c \\
00 00 00 00 00 00 16 7c 00 00 00 00 01 1e 36 44 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
ff ff ff ff ff ff ff ff \\
00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 44 \\
00 00 00 00 00 00 9d 2c 00 00 00 00 00 00 16 7c \\
00 00 00 00 01 1e 36 44 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 07 54 d4 c0 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1828"
( $at_check_trace; ovs-ofctl ofp-print "\
04 13 01 60 00 00 00 02 00 04 00 00 00 00 00 00 \
00 00 00 02 00 00 00 00 00 00 00 00 00 01 95 56 \
00 00 00 00 00 00 00 88 00 00 00 00 02 5d 08 98 \
00 00 00 00 00 00 2c f8 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 01 00 0f 42 40 \
ff ff ff fe 00 00 00 00 \
00 00 00 00 00 00 00 44 00 00 00 00 00 00 9d 2c \
00 00 00 00 00 00 16 7c 00 00 00 00 01 1e 36 44 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
ff ff ff ff ff ff ff ff \
00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 44 \
00 00 00 00 00 00 9d 2c 00 00 00 00 00 00 16 7c \
00 00 00 00 01 1e 36 44 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 07 54 d4 c0 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_PORT reply (OF1.3) (xid=0x2): 3 ports
  port  2: rx pkts=103766, bytes=39651480, drop=0, errs=0, frame=0, over=0, crc=0
           tx pkts=136, bytes=11512, drop=0, errs=0, coll=0
           duration=1.001s
  port LOCAL: rx pkts=68, bytes=5756, drop=0, errs=0, frame=0, over=0, crc=0
           tx pkts=40236, bytes=18757188, drop=0, errs=0, coll=0
  port  1: rx pkts=68, bytes=5756, drop=0, errs=0, frame=0, over=0, crc=0
           tx pkts=40236, bytes=18757188, drop=0, errs=0, coll=0
           duration=0.123s
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1828"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_267
#AT_START_268
at_fn_group_banner 268 'ofp-print.at:1865' \
  "OFPST_PORT reply - OF1.4" "                       " 18
at_xfail=no
(
  $as_echo "268. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1867: ovs-ofctl ofp-print \"\\
05 13 00 88 00 00 00 02 00 04 00 00 00 00 00 00 \\
00 78 00 00 00 00 00 02 00 00 00 01 00 0f 42 40 \\
00 00 00 00 00 01 95 56 00 00 00 00 00 00 00 88 \\
00 00 00 00 02 5d 08 98 00 00 00 00 00 00 2c f8 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 28 00 00 00 00 00 00 00 00 00 00 00 fc \\
00 00 00 00 00 00 00 fd 00 00 00 00 00 00 00 fe \\
00 00 00 00 00 00 00 ff \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1867"
( $at_check_trace; ovs-ofctl ofp-print "\
05 13 00 88 00 00 00 02 00 04 00 00 00 00 00 00 \
00 78 00 00 00 00 00 02 00 00 00 01 00 0f 42 40 \
00 00 00 00 00 01 95 56 00 00 00 00 00 00 00 88 \
00 00 00 00 02 5d 08 98 00 00 00 00 00 00 2c f8 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 28 00 00 00 00 00 00 00 00 00 00 00 fc \
00 00 00 00 00 00 00 fd 00 00 00 00 00 00 00 fe \
00 00 00 00 00 00 00 ff \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_PORT reply (OF1.4) (xid=0x2): 1 ports
  port  2: rx pkts=103766, bytes=39651480, drop=0, errs=0, frame=252, over=253, crc=254
           tx pkts=136, bytes=11512, drop=0, errs=0, coll=255
           duration=1.001s
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1867"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_268
#AT_START_269
at_fn_group_banner 269 'ofp-print.at:1885' \
  "OFPST_QUEUE request - OF1.0" "                    " 18
at_xfail=no
(
  $as_echo "269. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1887: ovs-ofctl ofp-print \"\\
01 10 00 14 00 00 00 01 00 05 00 00 ff fc 00 00 \\
ff ff ff ff \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1887"
( $at_check_trace; ovs-ofctl ofp-print "\
01 10 00 14 00 00 00 01 00 05 00 00 ff fc 00 00 \
ff ff ff ff \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_QUEUE request (xid=0x1): port=ANY queue=ALL
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1887"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_269
#AT_START_270
at_fn_group_banner 270 'ofp-print.at:1895' \
  "OFPST_QUEUE request - OF1.1" "                    " 18
at_xfail=no
(
  $as_echo "270. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1897: ovs-ofctl ofp-print \"\\
02 12 00 18 00 00 00 02 00 05 00 00 00 00 00 00 \\
ff ff ff ff ff ff ff ff \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1897"
( $at_check_trace; ovs-ofctl ofp-print "\
02 12 00 18 00 00 00 02 00 05 00 00 00 00 00 00 \
ff ff ff ff ff ff ff ff \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_QUEUE request (OF1.1) (xid=0x2): port=ANY queue=ALL
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1897"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_270
#AT_START_271
at_fn_group_banner 271 'ofp-print.at:1905' \
  "OFPST_QUEUE request - OF1.2" "                    " 18
at_xfail=no
(
  $as_echo "271. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1907: ovs-ofctl ofp-print \"\\
03 12 00 18 00 00 00 02 00 05 00 00 00 00 00 00 \\
ff ff ff ff ff ff ff ff \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1907"
( $at_check_trace; ovs-ofctl ofp-print "\
03 12 00 18 00 00 00 02 00 05 00 00 00 00 00 00 \
ff ff ff ff ff ff ff ff \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_QUEUE request (OF1.2) (xid=0x2): port=ANY queue=ALL
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1907"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_271
#AT_START_272
at_fn_group_banner 272 'ofp-print.at:1915' \
  "OFPST_QUEUE request - OF1.3" "                    " 18
at_xfail=no
(
  $as_echo "272. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1917: ovs-ofctl ofp-print \"\\
04 12 00 18 00 00 00 02 00 05 00 00 00 00 00 00 \\
ff ff ff ff ff ff ff ff \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1917"
( $at_check_trace; ovs-ofctl ofp-print "\
04 12 00 18 00 00 00 02 00 05 00 00 00 00 00 00 \
ff ff ff ff ff ff ff ff \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_QUEUE request (OF1.3) (xid=0x2): port=ANY queue=ALL
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1917"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_272
#AT_START_273
at_fn_group_banner 273 'ofp-print.at:1925' \
  "OFPST_QUEUE reply - OF1.0" "                      " 18
at_xfail=no
(
  $as_echo "273. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1927: ovs-ofctl ofp-print \"\\
01 11 00 cc 00 00 00 01 00 05 00 00 00 03 00 00 \\
00 00 00 01 00 00 00 00 00 00 01 2e 00 00 00 00 \\
00 00 00 01 00 00 00 00 00 00 00 00 00 03 00 00 \\
00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 \\
00 00 00 01 00 00 00 00 00 00 08 34 00 00 00 00 \\
00 00 00 14 00 00 00 00 00 00 00 00 00 02 00 00 \\
00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 \\
00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 \\
00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1927"
( $at_check_trace; ovs-ofctl ofp-print "\
01 11 00 cc 00 00 00 01 00 05 00 00 00 03 00 00 \
00 00 00 01 00 00 00 00 00 00 01 2e 00 00 00 00 \
00 00 00 01 00 00 00 00 00 00 00 00 00 03 00 00 \
00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 \
00 00 00 01 00 00 00 00 00 00 08 34 00 00 00 00 \
00 00 00 14 00 00 00 00 00 00 00 00 00 02 00 00 \
00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 \
00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 \
00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_QUEUE reply (xid=0x1): 6 queues
  port 3 queue 1: bytes=302, pkts=1, errors=0, duration=?
  port 3 queue 2: bytes=0, pkts=0, errors=0, duration=?
  port 2 queue 1: bytes=2100, pkts=20, errors=0, duration=?
  port 2 queue 2: bytes=0, pkts=0, errors=0, duration=?
  port 1 queue 1: bytes=0, pkts=0, errors=0, duration=?
  port 1 queue 2: bytes=0, pkts=0, errors=0, duration=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1927"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_273
#AT_START_274
at_fn_group_banner 274 'ofp-print.at:1952' \
  "OFPST_QUEUE reply - OF1.1" "                      " 18
at_xfail=no
(
  $as_echo "274. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1954: ovs-ofctl ofp-print \"\\
02 13 00 d0 00 00 00 01 00 05 00 00 00 00 00 00 \\
00 00 00 03 00 00 00 01 00 00 00 00 00 00 01 2e \\
00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 \\
00 00 00 03 00 00 00 02 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 02 00 00 00 01 00 00 00 00 00 00 08 34 \\
00 00 00 00 00 00 00 14 00 00 00 00 00 00 00 00 \\
00 00 00 02 00 00 00 02 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 01 00 00 00 02 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1954"
( $at_check_trace; ovs-ofctl ofp-print "\
02 13 00 d0 00 00 00 01 00 05 00 00 00 00 00 00 \
00 00 00 03 00 00 00 01 00 00 00 00 00 00 01 2e \
00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 \
00 00 00 03 00 00 00 02 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 02 00 00 00 01 00 00 00 00 00 00 08 34 \
00 00 00 00 00 00 00 14 00 00 00 00 00 00 00 00 \
00 00 00 02 00 00 00 02 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 01 00 00 00 02 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_QUEUE reply (OF1.1) (xid=0x1): 6 queues
  port 3 queue 1: bytes=302, pkts=1, errors=0, duration=?
  port 3 queue 2: bytes=0, pkts=0, errors=0, duration=?
  port 2 queue 1: bytes=2100, pkts=20, errors=0, duration=?
  port 2 queue 2: bytes=0, pkts=0, errors=0, duration=?
  port 1 queue 1: bytes=0, pkts=0, errors=0, duration=?
  port 1 queue 2: bytes=0, pkts=0, errors=0, duration=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1954"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_274
#AT_START_275
at_fn_group_banner 275 'ofp-print.at:1979' \
  "OFPST_QUEUE reply - OF1.2" "                      " 18
at_xfail=no
(
  $as_echo "275. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:1981: ovs-ofctl ofp-print \"\\
03 13 00 d0 00 00 00 01 00 05 00 00 00 00 00 00 \\
00 00 00 03 00 00 00 01 00 00 00 00 00 00 01 2e \\
00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 \\
00 00 00 03 00 00 00 02 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 02 00 00 00 01 00 00 00 00 00 00 08 34 \\
00 00 00 00 00 00 00 14 00 00 00 00 00 00 00 00 \\
00 00 00 02 00 00 00 02 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 01 00 00 00 02 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:1981"
( $at_check_trace; ovs-ofctl ofp-print "\
03 13 00 d0 00 00 00 01 00 05 00 00 00 00 00 00 \
00 00 00 03 00 00 00 01 00 00 00 00 00 00 01 2e \
00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 \
00 00 00 03 00 00 00 02 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 02 00 00 00 01 00 00 00 00 00 00 08 34 \
00 00 00 00 00 00 00 14 00 00 00 00 00 00 00 00 \
00 00 00 02 00 00 00 02 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 01 00 00 00 02 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_QUEUE reply (OF1.2) (xid=0x1): 6 queues
  port 3 queue 1: bytes=302, pkts=1, errors=0, duration=?
  port 3 queue 2: bytes=0, pkts=0, errors=0, duration=?
  port 2 queue 1: bytes=2100, pkts=20, errors=0, duration=?
  port 2 queue 2: bytes=0, pkts=0, errors=0, duration=?
  port 1 queue 1: bytes=0, pkts=0, errors=0, duration=?
  port 1 queue 2: bytes=0, pkts=0, errors=0, duration=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:1981"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_275
#AT_START_276
at_fn_group_banner 276 'ofp-print.at:2006' \
  "OFPST_QUEUE reply - OF1.3" "                      " 18
at_xfail=no
(
  $as_echo "276. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2008: ovs-ofctl ofp-print \"\\
04 13 01 00 00 00 00 01 00 05 00 00 00 00 00 00 \\
00 00 00 03 00 00 00 01 00 00 00 00 00 00 01 2e \\
00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 \\
00 00 00 64 1d cd 65 00 \\
00 00 00 03 00 00 00 02 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 64 1d cd 65 00 \\
00 00 00 02 00 00 00 01 00 00 00 00 00 00 08 34 \\
00 00 00 00 00 00 00 14 00 00 00 00 00 00 00 00 \\
00 00 00 64 1d cd 65 00 \\
00 00 00 02 00 00 00 02 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 64 1d cd 65 00 \\
00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 64 1d cd 65 00 \\
00 00 00 01 00 00 00 02 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
ff ff ff ff ff ff ff ff \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2008"
( $at_check_trace; ovs-ofctl ofp-print "\
04 13 01 00 00 00 00 01 00 05 00 00 00 00 00 00 \
00 00 00 03 00 00 00 01 00 00 00 00 00 00 01 2e \
00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 \
00 00 00 64 1d cd 65 00 \
00 00 00 03 00 00 00 02 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 64 1d cd 65 00 \
00 00 00 02 00 00 00 01 00 00 00 00 00 00 08 34 \
00 00 00 00 00 00 00 14 00 00 00 00 00 00 00 00 \
00 00 00 64 1d cd 65 00 \
00 00 00 02 00 00 00 02 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 64 1d cd 65 00 \
00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 64 1d cd 65 00 \
00 00 00 01 00 00 00 02 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
ff ff ff ff ff ff ff ff \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_QUEUE reply (OF1.3) (xid=0x1): 6 queues
  port 3 queue 1: bytes=302, pkts=1, errors=0, duration=100.500s
  port 3 queue 2: bytes=0, pkts=0, errors=0, duration=100.500s
  port 2 queue 1: bytes=2100, pkts=20, errors=0, duration=100.500s
  port 2 queue 2: bytes=0, pkts=0, errors=0, duration=100.500s
  port 1 queue 1: bytes=0, pkts=0, errors=0, duration=100.500s
  port 1 queue 2: bytes=0, pkts=0, errors=0, duration=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2008"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_276
#AT_START_277
at_fn_group_banner 277 'ofp-print.at:2039' \
  "OFPST_QUEUE reply - OF1.4" "                      " 18
at_xfail=no
(
  $as_echo "277. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2041: ovs-ofctl ofp-print \"\\
05 13 01 30 00 00 00 01 00 05 00 00 00 00 00 00 \\
00 30 00 00 00 00 00 00 \\
00 00 00 03 00 00 00 01 00 00 00 00 00 00 01 2e \\
00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 \\
00 00 00 64 1d cd 65 00 00 30 00 00 00 00 00 00 \\
00 00 00 03 00 00 00 02 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 64 1d cd 65 00 00 30 00 00 00 00 00 00 \\
00 00 00 02 00 00 00 01 00 00 00 00 00 00 08 34 \\
00 00 00 00 00 00 00 14 00 00 00 00 00 00 00 00 \\
00 00 00 64 1d cd 65 00 00 30 00 00 00 00 00 00 \\
00 00 00 02 00 00 00 02 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 64 1d cd 65 00 00 30 00 00 00 00 00 00 \\
00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 64 1d cd 65 00 00 30 00 00 00 00 00 00 \\
00 00 00 01 00 00 00 02 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
ff ff ff ff ff ff ff ff \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2041"
( $at_check_trace; ovs-ofctl ofp-print "\
05 13 01 30 00 00 00 01 00 05 00 00 00 00 00 00 \
00 30 00 00 00 00 00 00 \
00 00 00 03 00 00 00 01 00 00 00 00 00 00 01 2e \
00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 \
00 00 00 64 1d cd 65 00 00 30 00 00 00 00 00 00 \
00 00 00 03 00 00 00 02 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 64 1d cd 65 00 00 30 00 00 00 00 00 00 \
00 00 00 02 00 00 00 01 00 00 00 00 00 00 08 34 \
00 00 00 00 00 00 00 14 00 00 00 00 00 00 00 00 \
00 00 00 64 1d cd 65 00 00 30 00 00 00 00 00 00 \
00 00 00 02 00 00 00 02 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 64 1d cd 65 00 00 30 00 00 00 00 00 00 \
00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 64 1d cd 65 00 00 30 00 00 00 00 00 00 \
00 00 00 01 00 00 00 02 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
ff ff ff ff ff ff ff ff \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_QUEUE reply (OF1.4) (xid=0x1): 6 queues
  port 3 queue 1: bytes=302, pkts=1, errors=0, duration=100.500s
  port 3 queue 2: bytes=0, pkts=0, errors=0, duration=100.500s
  port 2 queue 1: bytes=2100, pkts=20, errors=0, duration=100.500s
  port 2 queue 2: bytes=0, pkts=0, errors=0, duration=100.500s
  port 1 queue 1: bytes=0, pkts=0, errors=0, duration=100.500s
  port 1 queue 2: bytes=0, pkts=0, errors=0, duration=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2041"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_277
#AT_START_278
at_fn_group_banner 278 'ofp-print.at:2073' \
  "OFPST_GROUP request" "                            " 18
at_xfail=no
(
  $as_echo "278. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2075: ovs-ofctl ofp-print \"\\
02 12 00 18 00 00 00 02 00 06 00 00 00 00 00 00 \\
ff ff ff ff 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2075"
( $at_check_trace; ovs-ofctl ofp-print "\
02 12 00 18 00 00 00 02 00 06 00 00 00 00 00 00 \
ff ff ff ff 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP request (OF1.1) (xid=0x2): group_id=ANY
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2075"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_278
#AT_START_279
at_fn_group_banner 279 'ofp-print.at:2082' \
  "OFPST_GROUP reply - OF1.1" "                      " 18
at_xfail=no
(
  $as_echo "279. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2084: ovs-ofctl ofp-print \"\\
02 13 00 a0 00 00 00 02 00 06 00 00 00 00 00 00 \\
00 50 00 00 87 65 43 21 00 00 00 04 00 00 00 00 \\
00 00 00 00 00 00 88 88 00 00 00 00 00 77 77 77 \\
00 00 00 00 00 00 11 11 00 00 00 00 00 22 22 22 \\
00 00 00 00 00 00 11 11 00 00 00 00 00 22 22 22 \\
00 00 00 00 00 00 66 66 00 00 00 00 00 33 33 33 \\
00 40 00 00 00 00 00 05 00 00 00 02 00 00 00 00 \\
00 00 00 00 00 00 88 88 00 00 00 00 00 77 77 77 \\
00 00 00 00 00 00 11 11 00 00 00 00 00 22 22 22 \\
00 00 00 00 00 00 11 11 00 00 00 00 00 22 22 22 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2084"
( $at_check_trace; ovs-ofctl ofp-print "\
02 13 00 a0 00 00 00 02 00 06 00 00 00 00 00 00 \
00 50 00 00 87 65 43 21 00 00 00 04 00 00 00 00 \
00 00 00 00 00 00 88 88 00 00 00 00 00 77 77 77 \
00 00 00 00 00 00 11 11 00 00 00 00 00 22 22 22 \
00 00 00 00 00 00 11 11 00 00 00 00 00 22 22 22 \
00 00 00 00 00 00 66 66 00 00 00 00 00 33 33 33 \
00 40 00 00 00 00 00 05 00 00 00 02 00 00 00 00 \
00 00 00 00 00 00 88 88 00 00 00 00 00 77 77 77 \
00 00 00 00 00 00 11 11 00 00 00 00 00 22 22 22 \
00 00 00 00 00 00 11 11 00 00 00 00 00 22 22 22 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP reply (OF1.1) (xid=0x2):
 group_id=2271560481,ref_count=4,packet_count=34952,byte_count=7829367,bucket0:packet_count=4369,byte_count=2236962,bucket1:packet_count=4369,byte_count=2236962,bucket2:packet_count=26214,byte_count=3355443
 group_id=5,ref_count=2,packet_count=34952,byte_count=7829367,bucket0:packet_count=4369,byte_count=2236962,bucket1:packet_count=4369,byte_count=2236962
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2084"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_279
#AT_START_280
at_fn_group_banner 280 'ofp-print.at:2102' \
  "OFPST_GROUP reply - OF1.3" "                      " 18
at_xfail=no
(
  $as_echo "280. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2104: ovs-ofctl ofp-print \"\\
04 13 00 b0 00 00 00 02 00 06 00 00 00 00 00 00 \\
00 58 00 00 87 65 43 21 00 00 00 04 00 00 00 00 \\
00 00 00 00 00 00 88 88 00 00 00 00 00 77 77 77 \\
00 00 00 12 1d cd 65 00 \\
00 00 00 00 00 00 11 11 00 00 00 00 00 22 22 22 \\
00 00 00 00 00 00 11 11 00 00 00 00 00 22 22 22 \\
00 00 00 00 00 00 66 66 00 00 00 00 00 33 33 33 \\
00 48 00 00 00 00 00 05 00 00 00 02 00 00 00 00 \\
00 00 00 00 00 00 88 88 00 00 00 00 00 77 77 77 \\
00 00 00 10 1d cd 65 00 \\
00 00 00 00 00 00 11 11 00 00 00 00 00 22 22 22 \\
00 00 00 00 00 00 11 11 00 00 00 00 00 22 22 22 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2104"
( $at_check_trace; ovs-ofctl ofp-print "\
04 13 00 b0 00 00 00 02 00 06 00 00 00 00 00 00 \
00 58 00 00 87 65 43 21 00 00 00 04 00 00 00 00 \
00 00 00 00 00 00 88 88 00 00 00 00 00 77 77 77 \
00 00 00 12 1d cd 65 00 \
00 00 00 00 00 00 11 11 00 00 00 00 00 22 22 22 \
00 00 00 00 00 00 11 11 00 00 00 00 00 22 22 22 \
00 00 00 00 00 00 66 66 00 00 00 00 00 33 33 33 \
00 48 00 00 00 00 00 05 00 00 00 02 00 00 00 00 \
00 00 00 00 00 00 88 88 00 00 00 00 00 77 77 77 \
00 00 00 10 1d cd 65 00 \
00 00 00 00 00 00 11 11 00 00 00 00 00 22 22 22 \
00 00 00 00 00 00 11 11 00 00 00 00 00 22 22 22 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP reply (OF1.3) (xid=0x2):
 group_id=2271560481,duration=18.500s,ref_count=4,packet_count=34952,byte_count=7829367,bucket0:packet_count=4369,byte_count=2236962,bucket1:packet_count=4369,byte_count=2236962,bucket2:packet_count=26214,byte_count=3355443
 group_id=5,duration=16.500s,ref_count=2,packet_count=34952,byte_count=7829367,bucket0:packet_count=4369,byte_count=2236962,bucket1:packet_count=4369,byte_count=2236962
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2104"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_280
#AT_START_281
at_fn_group_banner 281 'ofp-print.at:2124' \
  "OFPST_GROUP_DESC request - OF1.1" "               " 18
at_xfail=no
(
  $as_echo "281. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2126: ovs-ofctl ofp-print \"\\
02 12 00 10 00 00 00 02 00 07 00 00 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2126"
( $at_check_trace; ovs-ofctl ofp-print "\
02 12 00 10 00 00 00 02 00 07 00 00 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC request (OF1.1) (xid=0x2): group_id=ALL
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2126"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_281
#AT_START_282
at_fn_group_banner 282 'ofp-print.at:2132' \
  "OFPST_GROUP_DESC request - OF1.5" "               " 18
at_xfail=no
(
  $as_echo "282. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2134: ovs-ofctl ofp-print \"\\
06 12 00 18 00 00 00 02 00 07 00 00 00 00 00 00 \\
00 00 00 01 00 00 00 00
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2134"
( $at_check_trace; ovs-ofctl ofp-print "\
06 12 00 18 00 00 00 02 00 07 00 00 00 00 00 00 \
00 00 00 01 00 00 00 00
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC request (OF1.5) (xid=0x2): group_id=1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2134"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_282
#AT_START_283
at_fn_group_banner 283 'ofp-print.at:2141' \
  "OFPST_GROUP_DESC reply - OF1.1" "                 " 18
at_xfail=no
(
  $as_echo "283. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2143: ovs-ofctl ofp-print \"\\
02 13 00 78 00 00 00 02 00 07 00 00 00 00 00 00 \\
00 68 01 00 00 00 20 00 \\
00 20 00 64 00 00 00 01 ff ff ff ff 00 00 00 00 \\
00 00 00 10 00 00 00 01 00 00 00 00 00 00 00 00 \\
00 20 00 c8 00 00 00 02 ff ff ff ff 00 00 00 00 \\
00 00 00 10 00 00 00 02 00 00 00 00 00 00 00 00 \\
00 20 00 c8 00 00 00 03 ff ff ff ff 00 00 00 00 \\
00 00 00 10 00 00 00 03 00 00 00 00 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2143"
( $at_check_trace; ovs-ofctl ofp-print "\
02 13 00 78 00 00 00 02 00 07 00 00 00 00 00 00 \
00 68 01 00 00 00 20 00 \
00 20 00 64 00 00 00 01 ff ff ff ff 00 00 00 00 \
00 00 00 10 00 00 00 01 00 00 00 00 00 00 00 00 \
00 20 00 c8 00 00 00 02 ff ff ff ff 00 00 00 00 \
00 00 00 10 00 00 00 02 00 00 00 00 00 00 00 00 \
00 20 00 c8 00 00 00 03 ff ff ff ff 00 00 00 00 \
00 00 00 10 00 00 00 03 00 00 00 00 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.1) (xid=0x2):
 group_id=8192,type=select,bucket=weight:100,watch_port:1,actions=output:1,bucket=weight:200,watch_port:2,actions=output:2,bucket=weight:200,watch_port:3,actions=output:3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2143"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_283
#AT_START_284
at_fn_group_banner 284 'ofp-print.at:2158' \
  "OFPST_GROUP_DESC reply - OF1.5" "                 " 18
at_xfail=no
(
  $as_echo "284. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2160: ovs-ofctl ofp-print \"\\
06 13 00 d8 00 00 00 02 00 07 00 00 00 00 00 00 \\
00 c8 01 00 00 00 20 00 00 78 00 00 00 00 00 00 \\
00 28 00 10 00 00 00 00 00 00 00 10 00 00 00 01 \\
00 00 00 00 00 00 00 00 00 00 00 08 00 64 00 00 \\
00 01 00 08 00 00 00 01 \\
00 28 00 10 00 00 00 01 00 00 00 10 00 00 00 02 \\
00 00 00 00 00 00 00 00 00 00 00 08 00 c8 00 00 \\
00 01 00 08 00 00 00 02 \\
00 28 00 10 00 00 00 02 00 00 00 10 00 00 00 03 \\
00 00 00 00 00 00 00 00 00 00 00 08 00 c8 00 00 \\
00 01 00 08 00 00 00 03 \\
ff ff 00 3b 00 00 15 40 00 00 00 01 00 00 00 00 \\
68 61 73 68 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 \\
80 00 18 04 ff ff ff 00 80 00 1a 02 ff ff 80 00 \\
14 01 ff 00 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2160"
( $at_check_trace; ovs-ofctl ofp-print "\
06 13 00 d8 00 00 00 02 00 07 00 00 00 00 00 00 \
00 c8 01 00 00 00 20 00 00 78 00 00 00 00 00 00 \
00 28 00 10 00 00 00 00 00 00 00 10 00 00 00 01 \
00 00 00 00 00 00 00 00 00 00 00 08 00 64 00 00 \
00 01 00 08 00 00 00 01 \
00 28 00 10 00 00 00 01 00 00 00 10 00 00 00 02 \
00 00 00 00 00 00 00 00 00 00 00 08 00 c8 00 00 \
00 01 00 08 00 00 00 02 \
00 28 00 10 00 00 00 02 00 00 00 10 00 00 00 03 \
00 00 00 00 00 00 00 00 00 00 00 08 00 c8 00 00 \
00 01 00 08 00 00 00 03 \
ff ff 00 3b 00 00 15 40 00 00 00 01 00 00 00 00 \
68 61 73 68 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 \
80 00 18 04 ff ff ff 00 80 00 1a 02 ff ff 80 00 \
14 01 ff 00 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.5) (xid=0x2):
 group_id=8192,type=select,selection_method=hash,fields(ip_dst=255.255.255.0,nw_proto,tcp_src),bucket=bucket_id:0,weight:100,watch_port:1,actions=output:1,bucket=bucket_id:1,weight:200,watch_port:2,actions=output:2,bucket=bucket_id:2,weight:200,watch_port:3,actions=output:3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2160"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_284
#AT_START_285
at_fn_group_banner 285 'ofp-print.at:2183' \
  "OFPST_GROUP_FEATURES request" "                   " 18
at_xfail=no
(
  $as_echo "285. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2185: ovs-ofctl ofp-print \"\\
03 12 00 10 00 00 00 02 00 08 00 00 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2185"
( $at_check_trace; ovs-ofctl ofp-print "\
03 12 00 10 00 00 00 02 00 08 00 00 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_FEATURES request (OF1.2) (xid=0x2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2185"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_285
#AT_START_286
at_fn_group_banner 286 'ofp-print.at:2191' \
  "OFPST_GROUP_FEATURES reply" "                     " 18
at_xfail=no
(
  $as_echo "286. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2193: ovs-ofctl ofp-print \"\\
03 13 00 38 00 00 00 02 00 08 00 00 00 00 00 00 \\
00 00 00 0f 00 00 00 0f \\
00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 \\
00 00 00 01 00 02 00 01 00 06 00 01 00 0e 00 01 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2193"
( $at_check_trace; ovs-ofctl ofp-print "\
03 13 00 38 00 00 00 02 00 08 00 00 00 00 00 00 \
00 00 00 0f 00 00 00 0f \
00 00 00 01 00 00 00 02 00 00 00 03 00 00 00 04 \
00 00 00 01 00 02 00 01 00 06 00 01 00 0e 00 01 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_FEATURES reply (OF1.2) (xid=0x2):
 Group table:
    Types:  0xf
    Capabilities:  0xf
    all group:
       max_groups=0x1
       actions: output
    select group:
       max_groups=0x2
       actions: output push_vlan
    indirect group:
       max_groups=0x3
       actions: output strip_vlan push_vlan
    fast failover group:
       max_groups=0x4
       actions: output strip_vlan push_vlan push_mpls
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2193"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_286
#AT_START_287
at_fn_group_banner 287 'ofp-print.at:2218' \
  "OFPST_PORT_DESC request - OF1.0" "                " 18
at_xfail=no
(
  $as_echo "287. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2220: ovs-ofctl ofp-print \"0110000c00000001000d0000\""
at_fn_check_prepare_trace "ofp-print.at:2220"
( $at_check_trace; ovs-ofctl ofp-print "0110000c00000001000d0000"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_PORT_DESC request (xid=0x1): port=ANY
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2220"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_287
#AT_START_288
at_fn_group_banner 288 'ofp-print.at:2225' \
  "OFPST_PORT_DESC request - OF1.5" "                " 18
at_xfail=no
(
  $as_echo "288. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2227: ovs-ofctl ofp-print \"\\
06 12 00 18 00 00 00 02 00 0d 00 00 00 00 00 00 \\
00 00 00 05 00 00 00 00\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2227"
( $at_check_trace; ovs-ofctl ofp-print "\
06 12 00 18 00 00 00 02 00 0d 00 00 00 00 00 00 \
00 00 00 05 00 00 00 00"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_PORT_DESC request (OF1.5) (xid=0x2): port=5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2227"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_288
#AT_START_289
at_fn_group_banner 289 'ofp-print.at:2234' \
  "OFPST_PORT_DESC reply - OF1.0" "                  " 18
at_xfail=no
(
  $as_echo "289. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2236: ovs-ofctl ofp-print \"\\
01 11 00 3c 00 00 00 00 00 0d 00 00 00 03 50 54 \\
00 00 00 01 65 74 68 30 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 01 00 00 00 01 00 00 02 08 \\
00 00 02 8f 00 00 02 8f 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2236"
( $at_check_trace; ovs-ofctl ofp-print "\
01 11 00 3c 00 00 00 00 00 0d 00 00 00 03 50 54 \
00 00 00 01 65 74 68 30 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 01 00 00 00 01 00 00 02 08 \
00 00 02 8f 00 00 02 8f 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_PORT_DESC reply (xid=0x0):
 3(eth0): addr:50:54:00:00:00:01
     config:     PORT_DOWN
     state:      LINK_DOWN
     current:    100MB-FD AUTO_NEG
     advertised: 10MB-HD 10MB-FD 100MB-HD 100MB-FD COPPER AUTO_NEG
     supported:  10MB-HD 10MB-FD 100MB-HD 100MB-FD COPPER AUTO_NEG
     speed: 100 Mbps now, 100 Mbps max
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2236"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_289
#AT_START_290
at_fn_group_banner 290 'ofp-print.at:2253' \
  "OFPST_PORT_DESC reply - OF1.4" "                  " 18
at_xfail=no
(
  $as_echo "290. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2255: ovs-ofctl ofp-print \"\\
05 13 00 58 00 00 00 02 00 0d 00 00 00 00 00 00 \\
00 00 00 03 00 48 00 00 50 54 00 00 00 01 00 00 \\
65 74 68 30 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 00 \\
00 00 20 08 00 00 28 0f 00 00 28 0f 00 00 00 00 \\
00 01 86 a0 00 01 86 a0 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2255"
( $at_check_trace; ovs-ofctl ofp-print "\
05 13 00 58 00 00 00 02 00 0d 00 00 00 00 00 00 \
00 00 00 03 00 48 00 00 50 54 00 00 00 01 00 00 \
65 74 68 30 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 00 \
00 00 20 08 00 00 28 0f 00 00 28 0f 00 00 00 00 \
00 01 86 a0 00 01 86 a0 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_PORT_DESC reply (OF1.4) (xid=0x2):
 3(eth0): addr:50:54:00:00:00:01
     config:     0
     state:      0
     current:    100MB-FD AUTO_NEG
     advertised: 10MB-HD 10MB-FD 100MB-HD 100MB-FD COPPER AUTO_NEG
     supported:  10MB-HD 10MB-FD 100MB-HD 100MB-FD COPPER AUTO_NEG
     speed: 100 Mbps now, 100 Mbps max
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2255"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_290
#AT_START_291
at_fn_group_banner 291 'ofp-print.at:2274' \
  "OFPT_METER_MOD request - OF1.3" "                 " 18
at_xfail=no
(
  $as_echo "291. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2276: ovs-ofctl ofp-print \"\\
04 1d 00 20 00 00 00 02 00 00 00 0d 00 00 00 05 \\
00 01 00 10 00 00 04 00 00 00 00 80 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2276"
( $at_check_trace; ovs-ofctl ofp-print "\
04 1d 00 20 00 00 00 02 00 00 00 0d 00 00 00 05 \
00 01 00 10 00 00 04 00 00 00 00 80 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_METER_MOD (OF1.3) (xid=0x2): ADD meter=5 kbps burst stats bands=
type=drop rate=1024 burst_size=128
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2276"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_291
#AT_START_292
at_fn_group_banner 292 'ofp-print.at:2285' \
  "OFPT_METER_MOD request - bad band - OF1.3" "      " 18
at_xfail=no
(
  $as_echo "292. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2287: ovs-ofctl ofp-print \"\\
04 1d 00 20 85 01 d7 38 00 00 00 00 00 00 00 01
00 05 00 10 00 00 00 02 00 00 00 02 00 00 00 00
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2287"
( $at_check_trace; ovs-ofctl ofp-print "\
04 1d 00 20 85 01 d7 38 00 00 00 00 00 00 00 01
00 05 00 10 00 00 00 02 00 00 00 02 00 00 00 00
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_METER_MOD (OF1.3) (xid=0x8501d738): ***decode error: OFPMMFC_BAD_BAND***
00000000  04 1d 00 20 85 01 d7 38-00 00 00 00 00 00 00 01 |... ...8........|
00000010  00 05 00 10 00 00 00 02-00 00 00 02 00 00 00 00 |................|
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2287"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_292
#AT_START_293
at_fn_group_banner 293 'ofp-print.at:2297' \
  "OFPT_METER_MOD request - bad command - OF1.3" "   " 18
at_xfail=no
(
  $as_echo "293. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2299: ovs-ofctl ofp-print \"\\
04 1d 00 10 28 a6 26 52 00 08 00 00 00 00 00 01
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2299"
( $at_check_trace; ovs-ofctl ofp-print "\
04 1d 00 10 28 a6 26 52 00 08 00 00 00 00 00 01
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_METER_MOD (OF1.3) (xid=0x28a62652): ***decode error: OFPMMFC_BAD_COMMAND***
00000000  04 1d 00 10 28 a6 26 52-00 08 00 00 00 00 00 01 |....(.&R........|
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2299"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_293
#AT_START_294
at_fn_group_banner 294 'ofp-print.at:2307' \
  "OFPT_METER_MOD request - bad flags - OF1.3" "     " 18
at_xfail=no
(
  $as_echo "294. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2309: ovs-ofctl ofp-print \"\\
04 1d 00 20 82 b3 a1 a4 00 00 00 03 00 00 00 01 \\
00 01 00 10 00 00 00 02 00 00 00 02 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2309"
( $at_check_trace; ovs-ofctl ofp-print "\
04 1d 00 20 82 b3 a1 a4 00 00 00 03 00 00 00 01 \
00 01 00 10 00 00 00 02 00 00 00 02 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_METER_MOD (OF1.3) (xid=0x82b3a1a4): ***decode error: OFPMMFC_BAD_FLAGS***
00000000  04 1d 00 20 82 b3 a1 a4-00 00 00 03 00 00 00 01 |... ............|
00000010  00 01 00 10 00 00 00 02-00 00 00 02 00 00 00 00 |................|
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2309"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_294
#AT_START_295
at_fn_group_banner 295 'ofp-print.at:2319' \
  "OFPST_METER request - OF1.3" "                    " 18
at_xfail=no
(
  $as_echo "295. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2321: ovs-ofctl ofp-print \"041200180000000200090000000000000000000100000000\""
at_fn_check_prepare_trace "ofp-print.at:2321"
( $at_check_trace; ovs-ofctl ofp-print "041200180000000200090000000000000000000100000000"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_METER request (OF1.3) (xid=0x2): meter=1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2321"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_295
#AT_START_296
at_fn_group_banner 296 'ofp-print.at:2326' \
  "OFPST_METER_CONFIG request - OF1.3" "             " 18
at_xfail=no
(
  $as_echo "296. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2328: ovs-ofctl ofp-print \"0412001800000002000a0000000000000000000100000000\""
at_fn_check_prepare_trace "ofp-print.at:2328"
( $at_check_trace; ovs-ofctl ofp-print "0412001800000002000a0000000000000000000100000000"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_METER_CONFIG request (OF1.3) (xid=0x2): meter=1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2328"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_296
#AT_START_297
at_fn_group_banner 297 'ofp-print.at:2333' \
  "OFPST_METER_FEATURES request - OF1.3" "           " 18
at_xfail=no
(
  $as_echo "297. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2335: ovs-ofctl ofp-print \"0412001000000002000b000000000000\""
at_fn_check_prepare_trace "ofp-print.at:2335"
( $at_check_trace; ovs-ofctl ofp-print "0412001000000002000b000000000000"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_METER_FEATURES request (OF1.3) (xid=0x2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2335"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_297
#AT_START_298
at_fn_group_banner 298 'ofp-print.at:2340' \
  "OFPST_METER_FEATURES reply - OF1.3" "             " 18
at_xfail=no
(
  $as_echo "298. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2342: ovs-ofctl ofp-print \"\\
04 13 00 20 00 00 00 02 00 0b 00 00 00 00 00 00 \\
00 01 00 00 00 00 00 06 00 00 00 0F 10 02 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2342"
( $at_check_trace; ovs-ofctl ofp-print "\
04 13 00 20 00 00 00 02 00 0b 00 00 00 00 00 00 \
00 01 00 00 00 00 00 06 00 00 00 0F 10 02 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_METER_FEATURES reply (OF1.3) (xid=0x2):
max_meter:65536 max_bands:16 max_color:2
band_types: drop dscp_remark
capabilities: kbps pktps burst stats
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2342"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_298
#AT_START_299
at_fn_group_banner 299 'ofp-print.at:2353' \
  "OFPST_METER_CONFIG reply - OF1.3" "               " 18
at_xfail=no
(
  $as_echo "299. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2355: ovs-ofctl ofp-print \"\\
04 13 00 50 00 00 00 02 00 0a 00 00 00 00 00 00 \\
00 28 00 05 00 00 00 01 \\
00 01 00 10 00 01 00 00 00 00 05 00 00 00 00 00 \\
00 02 00 10 00 10 00 00 00 00 f0 00 00 00 00 00 \\
00 18 00 09 00 00 00 02 \\
00 01 00 10 00 02 00 00 00 00 00 00 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2355"
( $at_check_trace; ovs-ofctl ofp-print "\
04 13 00 50 00 00 00 02 00 0a 00 00 00 00 00 00 \
00 28 00 05 00 00 00 01 \
00 01 00 10 00 01 00 00 00 00 05 00 00 00 00 00 \
00 02 00 10 00 10 00 00 00 00 f0 00 00 00 00 00 \
00 18 00 09 00 00 00 02 \
00 01 00 10 00 02 00 00 00 00 00 00 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_METER_CONFIG reply (OF1.3) (xid=0x2):
meter=1 kbps burst bands=
type=drop rate=65536 burst_size=1280
type=dscp_remark rate=1048576 burst_size=61440 prec_level=0

meter=2 kbps stats bands=
type=drop rate=131072
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2355"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_299
#AT_START_300
at_fn_group_banner 300 'ofp-print.at:2373' \
  "OFPST_METER reply - OF1.3" "                      " 18
at_xfail=no
(
  $as_echo "300. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2375: ovs-ofctl ofp-print \"\\
04 13 00 90 00 00 00 02 00 09 00 00 00 00 00 00 \\
00 00 00 01 00 48 00 00 00 00 00 00 00 00 00 05 \\
00 00 00 00 00 00 10 00 00 00 00 00 00 02 30 00 \\
00 00 01 8a 0a 6e 23 44 \\
00 00 00 00 00 00 00 7e 00 00 00 00 00 00 34 33 \\
00 00 00 00 00 00 00 e7 00 00 00 00 00 00 94 2e \\
00 00 00 02 00 38 00 00 00 00 00 00 00 00 00 02 \\
00 00 00 00 00 00 02 00 00 00 00 00 00 00 30 00 \\
00 00 01 87 0a 23 6e 44 \\
00 00 00 00 00 00 00 2a 00 00 00 00 00 00 04 33 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2375"
( $at_check_trace; ovs-ofctl ofp-print "\
04 13 00 90 00 00 00 02 00 09 00 00 00 00 00 00 \
00 00 00 01 00 48 00 00 00 00 00 00 00 00 00 05 \
00 00 00 00 00 00 10 00 00 00 00 00 00 02 30 00 \
00 00 01 8a 0a 6e 23 44 \
00 00 00 00 00 00 00 7e 00 00 00 00 00 00 34 33 \
00 00 00 00 00 00 00 e7 00 00 00 00 00 00 94 2e \
00 00 00 02 00 38 00 00 00 00 00 00 00 00 00 02 \
00 00 00 00 00 00 02 00 00 00 00 00 00 00 30 00 \
00 00 01 87 0a 23 6e 44 \
00 00 00 00 00 00 00 2a 00 00 00 00 00 00 04 33 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_METER reply (OF1.3) (xid=0x2):
meter:1 flow_count:5 packet_in_count:4096 byte_in_count:143360 duration:394.174990148s bands:
0: packet_count:126 byte_count:13363
1: packet_count:231 byte_count:37934

meter:2 flow_count:2 packet_in_count:512 byte_in_count:12288 duration:391.170094148s bands:
0: packet_count:42 byte_count:1075
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2375"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_300
#AT_START_301
at_fn_group_banner 301 'ofp-print.at:2397' \
  "OFPST_TABLE_FEATURES request - OF1.3" "           " 18
at_xfail=no
(
  $as_echo "301. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2399: ovs-ofctl ofp-print \"\\
04 13 09 40 00 00 00 d5 00 0c 00 01 00 00 00 00 \\
09 30 00 00 00 00 00 00 74 61 62 6c 65 30 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff \\
ff ff ff ff ff ff ff ff 00 00 00 03 00 0f 42 40 \\
00 00 00 2c 00 01 00 08 00 00 00 00 00 02 00 08 \\
00 00 00 00 00 03 00 08 00 00 00 00 00 04 00 08 \\
00 00 00 00 00 05 00 08 00 00 00 00 00 00 00 00 \\
00 01 00 2c 00 01 00 08 00 00 00 00 00 02 00 08 \\
00 00 00 00 00 03 00 08 00 00 00 00 00 04 00 08 \\
00 00 00 00 00 05 00 08 00 00 00 00 00 00 00 00 \\
00 02 01 01 01 02 03 04 05 06 07 08 09 0a 0b 0c \\
0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c \\
1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c \\
2d 2e 2f 30 31 32 33 34 35 36 37 38 39 3a 3b 3c \\
3d 3e 3f 40 41 42 43 44 45 46 47 48 49 4a 4b 4c \\
4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 5b 5c \\
5d 5e 5f 60 61 62 63 64 65 66 67 68 69 6a 6b 6c \\
6d 6e 6f 70 71 72 73 74 75 76 77 78 79 7a 7b 7c \\
7d 7e 7f 80 81 82 83 84 85 86 87 88 89 8a 8b 8c \\
8d 8e 8f 90 91 92 93 94 95 96 97 98 99 9a 9b 9c \\
9d 9e 9f a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ab ac \\
ad ae af b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 ba bb bc \\
bd be bf c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 ca cb cc \\
cd ce cf d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 da db dc \\
dd de df e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 ea eb ec \\
ed ee ef f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc \\
fd 00 00 00 00 00 00 00 00 03 01 01 01 02 03 04 \\
05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 \\
15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 \\
25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 \\
35 36 37 38 39 3a 3b 3c 3d 3e 3f 40 41 42 43 44 \\
45 46 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 \\
55 56 57 58 59 5a 5b 5c 5d 5e 5f 60 61 62 63 64 \\
65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 \\
75 76 77 78 79 7a 7b 7c 7d 7e 7f 80 81 82 83 84 \\
85 86 87 88 89 8a 8b 8c 8d 8e 8f 90 91 92 93 94 \\
95 96 97 98 99 9a 9b 9c 9d 9e 9f a0 a1 a2 a3 a4 \\
a5 a6 a7 a8 a9 aa ab ac ad ae af b0 b1 b2 b3 b4 \\
b5 b6 b7 b8 b9 ba bb bc bd be bf c0 c1 c2 c3 c4 \\
c5 c6 c7 c8 c9 ca cb cc cd ce cf d0 d1 d2 d3 d4 \\
d5 d6 d7 d8 d9 da db dc dd de df e0 e1 e2 e3 e4 \\
e5 e6 e7 e8 e9 ea eb ec ed ee ef f0 f1 f2 f3 f4 \\
f5 f6 f7 f8 f9 fa fb fc fd 00 00 00 00 00 00 00 \\
00 04 00 84 00 00 00 08 00 00 00 00 00 0b 00 08 \\
00 00 00 00 00 0c 00 08 00 00 00 00 00 0f 00 08 \\
00 00 00 00 00 10 00 08 00 00 00 00 00 11 00 08 \\
00 00 00 00 00 12 00 08 00 00 00 00 00 13 00 08 \\
00 00 00 00 00 14 00 08 00 00 00 00 00 15 00 08 \\
00 00 00 00 00 16 00 08 00 00 00 00 00 17 00 08 \\
00 00 00 00 00 18 00 08 00 00 00 00 00 19 00 08 \\
00 00 00 00 00 1a 00 08 00 00 00 00 00 1b 00 08 \\
00 00 00 00 00 00 00 00 00 05 00 84 00 00 00 08 \\
00 00 00 00 00 0b 00 08 00 00 00 00 00 0c 00 08 \\
00 00 00 00 00 0f 00 08 00 00 00 00 00 10 00 08 \\
00 00 00 00 00 11 00 08 00 00 00 00 00 12 00 08 \\
00 00 00 00 00 13 00 08 00 00 00 00 00 14 00 08 \\
00 00 00 00 00 15 00 08 00 00 00 00 00 16 00 08 \\
00 00 00 00 00 17 00 08 00 00 00 00 00 18 00 08 \\
00 00 00 00 00 19 00 08 00 00 00 00 00 1a 00 08 \\
00 00 00 00 00 1b 00 08 00 00 00 00 00 00 00 00 \\
00 06 00 84 00 00 00 08 00 00 00 00 00 0b 00 08 \\
00 00 00 00 00 0c 00 08 00 00 00 00 00 0f 00 08 \\
00 00 00 00 00 10 00 08 00 00 00 00 00 11 00 08 \\
00 00 00 00 00 12 00 08 00 00 00 00 00 13 00 08 \\
00 00 00 00 00 14 00 08 00 00 00 00 00 15 00 08 \\
00 00 00 00 00 16 00 08 00 00 00 00 00 17 00 08 \\
00 00 00 00 00 18 00 08 00 00 00 00 00 19 00 08 \\
00 00 00 00 00 1a 00 08 00 00 00 00 00 1b 00 08 \\
00 00 00 00 00 00 00 00 00 07 00 84 00 00 00 08 \\
00 00 00 00 00 0b 00 08 00 00 00 00 00 0c 00 08 \\
00 00 00 00 00 0f 00 08 00 00 00 00 00 10 00 08 \\
00 00 00 00 00 11 00 08 00 00 00 00 00 12 00 08 \\
00 00 00 00 00 13 00 08 00 00 00 00 00 14 00 08 \\
00 00 00 00 00 15 00 08 00 00 00 00 00 16 00 08 \\
00 00 00 00 00 17 00 08 00 00 00 00 00 18 00 08 \\
00 00 00 00 00 19 00 08 00 00 00 00 00 1a 00 08 \\
00 00 00 00 00 1b 00 08 00 00 00 00 00 00 00 00 \\
00 08 00 dc 80 00 4c 08 00 01 3e 04 00 01 40 04 \\
80 00 04 08 00 00 00 02 80 00 00 04 00 01 42 04 \\
00 01 00 04 00 01 02 04 00 01 04 04 00 01 06 04 \\
00 01 08 04 00 01 0a 04 00 01 0c 04 00 01 0e 04 \\
80 00 08 06 80 00 06 06 80 00 0a 02 00 00 08 02 \\
80 00 0c 02 80 00 0e 01 80 00 44 04 80 00 46 01 \\
80 00 48 01 80 00 16 04 80 00 18 04 80 00 34 10 \\
80 00 36 10 80 00 38 04 80 00 14 01 00 00 0a 01 \\
80 00 10 01 80 00 12 01 00 01 3a 01 00 01 34 01 \\
80 00 2a 02 80 00 2c 04 80 00 2e 04 80 00 30 06 \\
80 00 32 06 80 00 1a 02 80 00 1c 02 00 01 44 02 \\
80 00 1e 02 80 00 20 02 80 00 22 02 80 00 24 02 \\
80 00 26 01 80 00 28 01 80 00 3a 01 80 00 3c 01 \\
80 00 3e 10 80 00 40 06 80 00 42 06 00 00 00 00 \\
00 0a 00 dc 80 00 4c 08 00 01 3e 04 00 01 40 04 \\
80 00 04 08 00 00 00 02 80 00 00 04 00 01 42 04 \\
00 01 00 04 00 01 02 04 00 01 04 04 00 01 06 04 \\
00 01 08 04 00 01 0a 04 00 01 0c 04 00 01 0e 04 \\
80 00 08 06 80 00 06 06 80 00 0a 02 00 00 08 02 \\
80 00 0c 02 80 00 0e 01 80 00 44 04 80 00 46 01 \\
80 00 48 01 80 00 16 04 80 00 18 04 80 00 34 10 \\
80 00 36 10 80 00 38 04 80 00 14 01 00 00 0a 01 \\
80 00 10 01 80 00 12 01 00 01 3a 01 00 01 34 01 \\
80 00 2a 02 80 00 2c 04 80 00 2e 04 80 00 30 06 \\
80 00 32 06 80 00 1a 02 80 00 1c 02 00 01 44 02 \\
80 00 1e 02 80 00 20 02 80 00 22 02 80 00 24 02 \\
80 00 26 01 80 00 28 01 80 00 3a 01 80 00 3c 01 \\
80 00 3e 10 80 00 40 06 80 00 42 06 00 00 00 00 \\
00 0c 00 a8 80 00 4c 08 00 01 3e 04 00 01 40 04 \\
80 00 04 08 00 00 00 02 80 00 00 04 00 01 42 04 \\
00 01 00 04 00 01 02 04 00 01 04 04 00 01 06 04 \\
00 01 08 04 00 01 0a 04 00 01 0c 04 00 01 0e 04 \\
80 00 08 06 80 00 06 06 00 00 08 02 80 00 0c 02 \\
80 00 0e 01 80 00 44 04 80 00 46 01 80 00 16 04 \\
80 00 18 04 80 00 34 10 80 00 36 10 00 00 0a 01 \\
80 00 10 01 80 00 12 01 00 01 3a 01 80 00 2a 02 \\
80 00 2c 04 80 00 2e 04 80 00 30 06 80 00 32 06 \\
80 00 1a 02 80 00 1c 02 80 00 1e 02 80 00 20 02 \\
80 00 22 02 80 00 24 02 00 0d 00 a8 80 00 4c 08 \\
00 01 3e 04 00 01 40 04 80 00 04 08 00 00 00 02 \\
80 00 00 04 00 01 42 04 00 01 00 04 00 01 02 04 \\
00 01 04 04 00 01 06 04 00 01 08 04 00 01 0a 04 \\
00 01 0c 04 00 01 0e 04 80 00 08 06 80 00 06 06 \\
00 00 08 02 80 00 0c 02 80 00 0e 01 80 00 44 04 \\
80 00 46 01 80 00 16 04 80 00 18 04 80 00 34 10 \\
80 00 36 10 00 00 0a 01 80 00 10 01 80 00 12 01 \\
00 01 3a 01 80 00 2a 02 80 00 2c 04 80 00 2e 04 \\
80 00 30 06 80 00 32 06 80 00 1a 02 80 00 1c 02 \\
80 00 1e 02 80 00 20 02 80 00 22 02 80 00 24 02 \\
00 0e 00 a8 80 00 4c 08 00 01 3e 04 00 01 40 04 \\
80 00 04 08 00 00 00 02 80 00 00 04 00 01 42 04 \\
00 01 00 04 00 01 02 04 00 01 04 04 00 01 06 04 \\
00 01 08 04 00 01 0a 04 00 01 0c 04 00 01 0e 04 \\
80 00 08 06 80 00 06 06 00 00 08 02 80 00 0c 02 \\
80 00 0e 01 80 00 44 04 80 00 46 01 80 00 16 04 \\
80 00 18 04 80 00 34 10 80 00 36 10 00 00 0a 01 \\
80 00 10 01 80 00 12 01 00 01 3a 01 80 00 2a 02 \\
80 00 2c 04 80 00 2e 04 80 00 30 06 80 00 32 06 \\
80 00 1a 02 80 00 1c 02 80 00 1e 02 80 00 20 02 \\
80 00 22 02 80 00 24 02 00 0f 00 a8 80 00 4c 08 \\
00 01 3e 04 00 01 40 04 80 00 04 08 00 00 00 02 \\
80 00 00 04 00 01 42 04 00 01 00 04 00 01 02 04 \\
00 01 04 04 00 01 06 04 00 01 08 04 00 01 0a 04 \\
00 01 0c 04 00 01 0e 04 80 00 08 06 80 00 06 06 \\
00 00 08 02 80 00 0c 02 80 00 0e 01 80 00 44 04 \\
80 00 46 01 80 00 16 04 80 00 18 04 80 00 34 10 \\
80 00 36 10 00 00 0a 01 80 00 10 01 80 00 12 01 \\
00 01 3a 01 80 00 2a 02 80 00 2c 04 80 00 2e 04 \\
80 00 30 06 80 00 32 06 80 00 1a 02 80 00 1c 02 \\
80 00 1e 02 80 00 20 02 80 00 22 02 80 00 24 02 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2399"
( $at_check_trace; ovs-ofctl ofp-print "\
04 13 09 40 00 00 00 d5 00 0c 00 01 00 00 00 00 \
09 30 00 00 00 00 00 00 74 61 62 6c 65 30 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff \
ff ff ff ff ff ff ff ff 00 00 00 03 00 0f 42 40 \
00 00 00 2c 00 01 00 08 00 00 00 00 00 02 00 08 \
00 00 00 00 00 03 00 08 00 00 00 00 00 04 00 08 \
00 00 00 00 00 05 00 08 00 00 00 00 00 00 00 00 \
00 01 00 2c 00 01 00 08 00 00 00 00 00 02 00 08 \
00 00 00 00 00 03 00 08 00 00 00 00 00 04 00 08 \
00 00 00 00 00 05 00 08 00 00 00 00 00 00 00 00 \
00 02 01 01 01 02 03 04 05 06 07 08 09 0a 0b 0c \
0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c \
1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c \
2d 2e 2f 30 31 32 33 34 35 36 37 38 39 3a 3b 3c \
3d 3e 3f 40 41 42 43 44 45 46 47 48 49 4a 4b 4c \
4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 5b 5c \
5d 5e 5f 60 61 62 63 64 65 66 67 68 69 6a 6b 6c \
6d 6e 6f 70 71 72 73 74 75 76 77 78 79 7a 7b 7c \
7d 7e 7f 80 81 82 83 84 85 86 87 88 89 8a 8b 8c \
8d 8e 8f 90 91 92 93 94 95 96 97 98 99 9a 9b 9c \
9d 9e 9f a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ab ac \
ad ae af b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 ba bb bc \
bd be bf c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 ca cb cc \
cd ce cf d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 da db dc \
dd de df e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 ea eb ec \
ed ee ef f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc \
fd 00 00 00 00 00 00 00 00 03 01 01 01 02 03 04 \
05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 \
15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 \
25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 \
35 36 37 38 39 3a 3b 3c 3d 3e 3f 40 41 42 43 44 \
45 46 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 \
55 56 57 58 59 5a 5b 5c 5d 5e 5f 60 61 62 63 64 \
65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 \
75 76 77 78 79 7a 7b 7c 7d 7e 7f 80 81 82 83 84 \
85 86 87 88 89 8a 8b 8c 8d 8e 8f 90 91 92 93 94 \
95 96 97 98 99 9a 9b 9c 9d 9e 9f a0 a1 a2 a3 a4 \
a5 a6 a7 a8 a9 aa ab ac ad ae af b0 b1 b2 b3 b4 \
b5 b6 b7 b8 b9 ba bb bc bd be bf c0 c1 c2 c3 c4 \
c5 c6 c7 c8 c9 ca cb cc cd ce cf d0 d1 d2 d3 d4 \
d5 d6 d7 d8 d9 da db dc dd de df e0 e1 e2 e3 e4 \
e5 e6 e7 e8 e9 ea eb ec ed ee ef f0 f1 f2 f3 f4 \
f5 f6 f7 f8 f9 fa fb fc fd 00 00 00 00 00 00 00 \
00 04 00 84 00 00 00 08 00 00 00 00 00 0b 00 08 \
00 00 00 00 00 0c 00 08 00 00 00 00 00 0f 00 08 \
00 00 00 00 00 10 00 08 00 00 00 00 00 11 00 08 \
00 00 00 00 00 12 00 08 00 00 00 00 00 13 00 08 \
00 00 00 00 00 14 00 08 00 00 00 00 00 15 00 08 \
00 00 00 00 00 16 00 08 00 00 00 00 00 17 00 08 \
00 00 00 00 00 18 00 08 00 00 00 00 00 19 00 08 \
00 00 00 00 00 1a 00 08 00 00 00 00 00 1b 00 08 \
00 00 00 00 00 00 00 00 00 05 00 84 00 00 00 08 \
00 00 00 00 00 0b 00 08 00 00 00 00 00 0c 00 08 \
00 00 00 00 00 0f 00 08 00 00 00 00 00 10 00 08 \
00 00 00 00 00 11 00 08 00 00 00 00 00 12 00 08 \
00 00 00 00 00 13 00 08 00 00 00 00 00 14 00 08 \
00 00 00 00 00 15 00 08 00 00 00 00 00 16 00 08 \
00 00 00 00 00 17 00 08 00 00 00 00 00 18 00 08 \
00 00 00 00 00 19 00 08 00 00 00 00 00 1a 00 08 \
00 00 00 00 00 1b 00 08 00 00 00 00 00 00 00 00 \
00 06 00 84 00 00 00 08 00 00 00 00 00 0b 00 08 \
00 00 00 00 00 0c 00 08 00 00 00 00 00 0f 00 08 \
00 00 00 00 00 10 00 08 00 00 00 00 00 11 00 08 \
00 00 00 00 00 12 00 08 00 00 00 00 00 13 00 08 \
00 00 00 00 00 14 00 08 00 00 00 00 00 15 00 08 \
00 00 00 00 00 16 00 08 00 00 00 00 00 17 00 08 \
00 00 00 00 00 18 00 08 00 00 00 00 00 19 00 08 \
00 00 00 00 00 1a 00 08 00 00 00 00 00 1b 00 08 \
00 00 00 00 00 00 00 00 00 07 00 84 00 00 00 08 \
00 00 00 00 00 0b 00 08 00 00 00 00 00 0c 00 08 \
00 00 00 00 00 0f 00 08 00 00 00 00 00 10 00 08 \
00 00 00 00 00 11 00 08 00 00 00 00 00 12 00 08 \
00 00 00 00 00 13 00 08 00 00 00 00 00 14 00 08 \
00 00 00 00 00 15 00 08 00 00 00 00 00 16 00 08 \
00 00 00 00 00 17 00 08 00 00 00 00 00 18 00 08 \
00 00 00 00 00 19 00 08 00 00 00 00 00 1a 00 08 \
00 00 00 00 00 1b 00 08 00 00 00 00 00 00 00 00 \
00 08 00 dc 80 00 4c 08 00 01 3e 04 00 01 40 04 \
80 00 04 08 00 00 00 02 80 00 00 04 00 01 42 04 \
00 01 00 04 00 01 02 04 00 01 04 04 00 01 06 04 \
00 01 08 04 00 01 0a 04 00 01 0c 04 00 01 0e 04 \
80 00 08 06 80 00 06 06 80 00 0a 02 00 00 08 02 \
80 00 0c 02 80 00 0e 01 80 00 44 04 80 00 46 01 \
80 00 48 01 80 00 16 04 80 00 18 04 80 00 34 10 \
80 00 36 10 80 00 38 04 80 00 14 01 00 00 0a 01 \
80 00 10 01 80 00 12 01 00 01 3a 01 00 01 34 01 \
80 00 2a 02 80 00 2c 04 80 00 2e 04 80 00 30 06 \
80 00 32 06 80 00 1a 02 80 00 1c 02 00 01 44 02 \
80 00 1e 02 80 00 20 02 80 00 22 02 80 00 24 02 \
80 00 26 01 80 00 28 01 80 00 3a 01 80 00 3c 01 \
80 00 3e 10 80 00 40 06 80 00 42 06 00 00 00 00 \
00 0a 00 dc 80 00 4c 08 00 01 3e 04 00 01 40 04 \
80 00 04 08 00 00 00 02 80 00 00 04 00 01 42 04 \
00 01 00 04 00 01 02 04 00 01 04 04 00 01 06 04 \
00 01 08 04 00 01 0a 04 00 01 0c 04 00 01 0e 04 \
80 00 08 06 80 00 06 06 80 00 0a 02 00 00 08 02 \
80 00 0c 02 80 00 0e 01 80 00 44 04 80 00 46 01 \
80 00 48 01 80 00 16 04 80 00 18 04 80 00 34 10 \
80 00 36 10 80 00 38 04 80 00 14 01 00 00 0a 01 \
80 00 10 01 80 00 12 01 00 01 3a 01 00 01 34 01 \
80 00 2a 02 80 00 2c 04 80 00 2e 04 80 00 30 06 \
80 00 32 06 80 00 1a 02 80 00 1c 02 00 01 44 02 \
80 00 1e 02 80 00 20 02 80 00 22 02 80 00 24 02 \
80 00 26 01 80 00 28 01 80 00 3a 01 80 00 3c 01 \
80 00 3e 10 80 00 40 06 80 00 42 06 00 00 00 00 \
00 0c 00 a8 80 00 4c 08 00 01 3e 04 00 01 40 04 \
80 00 04 08 00 00 00 02 80 00 00 04 00 01 42 04 \
00 01 00 04 00 01 02 04 00 01 04 04 00 01 06 04 \
00 01 08 04 00 01 0a 04 00 01 0c 04 00 01 0e 04 \
80 00 08 06 80 00 06 06 00 00 08 02 80 00 0c 02 \
80 00 0e 01 80 00 44 04 80 00 46 01 80 00 16 04 \
80 00 18 04 80 00 34 10 80 00 36 10 00 00 0a 01 \
80 00 10 01 80 00 12 01 00 01 3a 01 80 00 2a 02 \
80 00 2c 04 80 00 2e 04 80 00 30 06 80 00 32 06 \
80 00 1a 02 80 00 1c 02 80 00 1e 02 80 00 20 02 \
80 00 22 02 80 00 24 02 00 0d 00 a8 80 00 4c 08 \
00 01 3e 04 00 01 40 04 80 00 04 08 00 00 00 02 \
80 00 00 04 00 01 42 04 00 01 00 04 00 01 02 04 \
00 01 04 04 00 01 06 04 00 01 08 04 00 01 0a 04 \
00 01 0c 04 00 01 0e 04 80 00 08 06 80 00 06 06 \
00 00 08 02 80 00 0c 02 80 00 0e 01 80 00 44 04 \
80 00 46 01 80 00 16 04 80 00 18 04 80 00 34 10 \
80 00 36 10 00 00 0a 01 80 00 10 01 80 00 12 01 \
00 01 3a 01 80 00 2a 02 80 00 2c 04 80 00 2e 04 \
80 00 30 06 80 00 32 06 80 00 1a 02 80 00 1c 02 \
80 00 1e 02 80 00 20 02 80 00 22 02 80 00 24 02 \
00 0e 00 a8 80 00 4c 08 00 01 3e 04 00 01 40 04 \
80 00 04 08 00 00 00 02 80 00 00 04 00 01 42 04 \
00 01 00 04 00 01 02 04 00 01 04 04 00 01 06 04 \
00 01 08 04 00 01 0a 04 00 01 0c 04 00 01 0e 04 \
80 00 08 06 80 00 06 06 00 00 08 02 80 00 0c 02 \
80 00 0e 01 80 00 44 04 80 00 46 01 80 00 16 04 \
80 00 18 04 80 00 34 10 80 00 36 10 00 00 0a 01 \
80 00 10 01 80 00 12 01 00 01 3a 01 80 00 2a 02 \
80 00 2c 04 80 00 2e 04 80 00 30 06 80 00 32 06 \
80 00 1a 02 80 00 1c 02 80 00 1e 02 80 00 20 02 \
80 00 22 02 80 00 24 02 00 0f 00 a8 80 00 4c 08 \
00 01 3e 04 00 01 40 04 80 00 04 08 00 00 00 02 \
80 00 00 04 00 01 42 04 00 01 00 04 00 01 02 04 \
00 01 04 04 00 01 06 04 00 01 08 04 00 01 0a 04 \
00 01 0c 04 00 01 0e 04 80 00 08 06 80 00 06 06 \
00 00 08 02 80 00 0c 02 80 00 0e 01 80 00 44 04 \
80 00 46 01 80 00 16 04 80 00 18 04 80 00 34 10 \
80 00 36 10 00 00 0a 01 80 00 10 01 80 00 12 01 \
00 01 3a 01 80 00 2a 02 80 00 2c 04 80 00 2e 04 \
80 00 30 06 80 00 32 06 80 00 1a 02 80 00 1c 02 \
80 00 1e 02 80 00 20 02 80 00 22 02 80 00 24 02 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_TABLE_FEATURES reply (OF1.3) (xid=0xd5):
  table 0 (\"table0\"):
    metadata: match=0xffffffffffffffff write=0xffffffffffffffff
    max_entries=1000000
    instructions (table miss and others):
      next tables: 1-253
      instructions: apply_actions,clear_actions,write_actions,write_metadata,goto_table
      Write-Actions and Apply-Actions features:
        actions: output group set_field strip_vlan push_vlan mod_nw_ttl dec_ttl set_mpls_ttl dec_mpls_ttl push_mpls pop_mpls set_queue
        supported on Set-Field: tun_id tun_src tun_dst metadata in_port in_port_oxm pkt_mark reg0 reg1 reg2 reg3 reg4 reg5 reg6 reg7 eth_src eth_dst vlan_tci vlan_vid vlan_pcp mpls_label mpls_tc ip_src ip_dst ipv6_src ipv6_dst nw_tos ip_dscp nw_ecn nw_ttl arp_op arp_spa arp_tpa arp_sha arp_tha tcp_src tcp_dst udp_src udp_dst sctp_src sctp_dst
    matching:
      tun_id: exact match or wildcard
      tun_src: exact match or wildcard
      tun_dst: exact match or wildcard
      metadata: exact match or wildcard
      in_port: exact match or wildcard
      in_port_oxm: exact match or wildcard
      pkt_mark: exact match or wildcard
      reg0: exact match or wildcard
      reg1: exact match or wildcard
      reg2: exact match or wildcard
      reg3: exact match or wildcard
      reg4: exact match or wildcard
      reg5: exact match or wildcard
      reg6: exact match or wildcard
      reg7: exact match or wildcard
      eth_src: exact match or wildcard
      eth_dst: exact match or wildcard
      eth_type: exact match or wildcard
      vlan_tci: exact match or wildcard
      vlan_vid: exact match or wildcard
      vlan_pcp: exact match or wildcard
      mpls_label: exact match or wildcard
      mpls_tc: exact match or wildcard
      mpls_bos: exact match or wildcard
      ip_src: exact match or wildcard
      ip_dst: exact match or wildcard
      ipv6_src: exact match or wildcard
      ipv6_dst: exact match or wildcard
      ipv6_label: exact match or wildcard
      nw_proto: exact match or wildcard
      nw_tos: exact match or wildcard
      ip_dscp: exact match or wildcard
      nw_ecn: exact match or wildcard
      nw_ttl: exact match or wildcard
      ip_frag: exact match or wildcard
      arp_op: exact match or wildcard
      arp_spa: exact match or wildcard
      arp_tpa: exact match or wildcard
      arp_sha: exact match or wildcard
      arp_tha: exact match or wildcard
      tcp_src: exact match or wildcard
      tcp_dst: exact match or wildcard
      tcp_flags: exact match or wildcard
      udp_src: exact match or wildcard
      udp_dst: exact match or wildcard
      sctp_src: exact match or wildcard
      sctp_dst: exact match or wildcard
      icmp_type: exact match or wildcard
      icmp_code: exact match or wildcard
      icmpv6_type: exact match or wildcard
      icmpv6_code: exact match or wildcard
      nd_target: exact match or wildcard
      nd_sll: exact match or wildcard
      nd_tll: exact match or wildcard
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2399"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_301
#AT_START_302
at_fn_group_banner 302 'ofp-print.at:2616' \
  "OFPT_BARRIER_REQUEST - OF1.0" "                   " 18
at_xfail=no
(
  $as_echo "302. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2618: ovs-ofctl ofp-print '01 12 00 08 00 00 00 01'"
at_fn_check_prepare_trace "ofp-print.at:2618"
( $at_check_trace; ovs-ofctl ofp-print '01 12 00 08 00 00 00 01'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_BARRIER_REQUEST (xid=0x1):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2618"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_302
#AT_START_303
at_fn_group_banner 303 'ofp-print.at:2623' \
  "OFPT_BARRIER_REQUEST - OF1.1" "                   " 18
at_xfail=no
(
  $as_echo "303. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2625: ovs-ofctl ofp-print '02 14 00 08 00 00 00 01'"
at_fn_check_prepare_trace "ofp-print.at:2625"
( $at_check_trace; ovs-ofctl ofp-print '02 14 00 08 00 00 00 01'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_BARRIER_REQUEST (OF1.1) (xid=0x1):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2625"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_303
#AT_START_304
at_fn_group_banner 304 'ofp-print.at:2630' \
  "OFPT_BARRIER_REQUEST - OF1.2" "                   " 18
at_xfail=no
(
  $as_echo "304. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2632: ovs-ofctl ofp-print '03 14 00 08 00 00 00 01'"
at_fn_check_prepare_trace "ofp-print.at:2632"
( $at_check_trace; ovs-ofctl ofp-print '03 14 00 08 00 00 00 01'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_BARRIER_REQUEST (OF1.2) (xid=0x1):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2632"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_304
#AT_START_305
at_fn_group_banner 305 'ofp-print.at:2637' \
  "OFPT_BARRIER_REQUEST - OF1.3" "                   " 18
at_xfail=no
(
  $as_echo "305. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2639: ovs-ofctl ofp-print '04 14 00 08 00 00 00 01'"
at_fn_check_prepare_trace "ofp-print.at:2639"
( $at_check_trace; ovs-ofctl ofp-print '04 14 00 08 00 00 00 01'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_BARRIER_REQUEST (OF1.3) (xid=0x1):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2639"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_305
#AT_START_306
at_fn_group_banner 306 'ofp-print.at:2644' \
  "OFPT_BARRIER_REPLY - OF1.0" "                     " 18
at_xfail=no
(
  $as_echo "306. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2646: ovs-ofctl ofp-print '01 13 00 08 00 00 00 01'"
at_fn_check_prepare_trace "ofp-print.at:2646"
( $at_check_trace; ovs-ofctl ofp-print '01 13 00 08 00 00 00 01'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_BARRIER_REPLY (xid=0x1):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2646"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_306
#AT_START_307
at_fn_group_banner 307 'ofp-print.at:2651' \
  "OFPT_BARRIER_REPLY - OF1.1" "                     " 18
at_xfail=no
(
  $as_echo "307. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2653: ovs-ofctl ofp-print '02 15 00 08 00 00 00 01'"
at_fn_check_prepare_trace "ofp-print.at:2653"
( $at_check_trace; ovs-ofctl ofp-print '02 15 00 08 00 00 00 01'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_BARRIER_REPLY (OF1.1) (xid=0x1):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2653"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_307
#AT_START_308
at_fn_group_banner 308 'ofp-print.at:2658' \
  "OFPT_BARRIER_REPLY - OF1.2" "                     " 18
at_xfail=no
(
  $as_echo "308. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2660: ovs-ofctl ofp-print '03 15 00 08 00 00 00 01'"
at_fn_check_prepare_trace "ofp-print.at:2660"
( $at_check_trace; ovs-ofctl ofp-print '03 15 00 08 00 00 00 01'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_BARRIER_REPLY (OF1.2) (xid=0x1):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2660"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_308
#AT_START_309
at_fn_group_banner 309 'ofp-print.at:2665' \
  "OFPT_BARRIER_REPLY - OF1.3" "                     " 18
at_xfail=no
(
  $as_echo "309. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2667: ovs-ofctl ofp-print '04 15 00 08 00 00 00 01'"
at_fn_check_prepare_trace "ofp-print.at:2667"
( $at_check_trace; ovs-ofctl ofp-print '04 15 00 08 00 00 00 01'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_BARRIER_REPLY (OF1.3) (xid=0x1):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2667"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_309
#AT_START_310
at_fn_group_banner 310 'ofp-print.at:2672' \
  "OFPT_QUEUE_GET_CONFIG_REQUEST - OF1.0" "          " 18
at_xfail=no
(
  $as_echo "310. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2674: ovs-ofctl ofp-print \"01 14 00 0c 00 00 00 01 00 01 00 00\""
at_fn_check_prepare_trace "ofp-print.at:2674"
( $at_check_trace; ovs-ofctl ofp-print "01 14 00 0c 00 00 00 01 00 01 00 00"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_QUEUE_GET_CONFIG_REQUEST (xid=0x1): port=1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2674"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_310
#AT_START_311
at_fn_group_banner 311 'ofp-print.at:2679' \
  "OFPT_QUEUE_GET_CONFIG_REQUEST - OF1.2" "          " 18
at_xfail=no
(
  $as_echo "311. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2681: ovs-ofctl ofp-print \"\\
03 16 00 10 00 00 00 01 00 00 00 01 00 00 00 00\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2681"
( $at_check_trace; ovs-ofctl ofp-print "\
03 16 00 10 00 00 00 01 00 00 00 01 00 00 00 00"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_QUEUE_GET_CONFIG_REQUEST (OF1.2) (xid=0x1): port=1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2681"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_311
#AT_START_312
at_fn_group_banner 312 'ofp-print.at:2687' \
  "OFPST_QUEUE_DESC request - OF1.4" "               " 18
at_xfail=no
(
  $as_echo "312. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2689: ovs-ofctl ofp-print \"\\
05 12 00 18 00 00 00 01 00 0f 00 00 00 00 00 00 \\
00 00 00 01 00 00 00 02\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2689"
( $at_check_trace; ovs-ofctl ofp-print "\
05 12 00 18 00 00 00 01 00 0f 00 00 00 00 00 00 \
00 00 00 01 00 00 00 02"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_QUEUE_DESC request (OF1.4) (xid=0x1): port=1 queue=2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2689"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_312
#AT_START_313
at_fn_group_banner 313 'ofp-print.at:2696' \
  "OFPT_QUEUE_GET_CONFIG_REPLY - OF1.0" "            " 18
at_xfail=no
(
  $as_echo "313. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2698: ovs-ofctl ofp-print \"01 15 00 40 00 00 00 01 \\
00 01 00 00 00 00 00 00 \\
00 00 55 55 00 28 00 00 \\
00 01 00 10 00 00 00 00 01 f4 00 00 00 00 00 00 \\
00 02 00 10 00 00 00 00 02 ee 00 00 00 00 00 00 \\
00 00 44 44 00 08 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2698"
( $at_check_trace; ovs-ofctl ofp-print "01 15 00 40 00 00 00 01 \
00 01 00 00 00 00 00 00 \
00 00 55 55 00 28 00 00 \
00 01 00 10 00 00 00 00 01 f4 00 00 00 00 00 00 \
00 02 00 10 00 00 00 00 02 ee 00 00 00 00 00 00 \
00 00 44 44 00 08 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_QUEUE_GET_CONFIG_REPLY (xid=0x1): port=1
queue 17476:
queue 21845: min_rate:50.0% max_rate:75.0%
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2698"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_313
#AT_START_314
at_fn_group_banner 314 'ofp-print.at:2711' \
  "OFPT_QUEUE_GET_CONFIG_REPLY - OF1.1" "            " 18
at_xfail=no
(
  $as_echo "314. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2713: ovs-ofctl ofp-print \"02 17 00 40 00 00 00 01 \\
00 00 00 01 00 00 00 00 \\
00 00 55 55 00 28 00 00 \\
00 01 00 10 00 00 00 00 01 f4 00 00 00 00 00 00 \\
00 02 00 10 00 00 00 00 02 ee 00 00 00 00 00 00 \\
00 00 44 44 00 08 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2713"
( $at_check_trace; ovs-ofctl ofp-print "02 17 00 40 00 00 00 01 \
00 00 00 01 00 00 00 00 \
00 00 55 55 00 28 00 00 \
00 01 00 10 00 00 00 00 01 f4 00 00 00 00 00 00 \
00 02 00 10 00 00 00 00 02 ee 00 00 00 00 00 00 \
00 00 44 44 00 08 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_QUEUE_GET_CONFIG_REPLY (OF1.1) (xid=0x1): port=1
queue 17476:
queue 21845: min_rate:50.0% max_rate:75.0%
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2713"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_314
#AT_START_315
at_fn_group_banner 315 'ofp-print.at:2726' \
  "OFPT_QUEUE_GET_CONFIG_REPLY - OF1.2" "            " 18
at_xfail=no
(
  $as_echo "315. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2728: ovs-ofctl ofp-print \"03 17 00 50 00 00 00 01 \\
00 00 00 01 00 00 00 00 \\
00 00 55 55 00 00 00 01 00 30 00 00 00 00 00 00 \\
00 01 00 10 00 00 00 00 01 f4 00 00 00 00 00 00 \\
00 02 00 10 00 00 00 00 02 ee 00 00 00 00 00 00 \\
00 00 44 44 00 08 00 01 00 10 00 00 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2728"
( $at_check_trace; ovs-ofctl ofp-print "03 17 00 50 00 00 00 01 \
00 00 00 01 00 00 00 00 \
00 00 55 55 00 00 00 01 00 30 00 00 00 00 00 00 \
00 01 00 10 00 00 00 00 01 f4 00 00 00 00 00 00 \
00 02 00 10 00 00 00 00 02 ee 00 00 00 00 00 00 \
00 00 44 44 00 08 00 01 00 10 00 00 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_QUEUE_GET_CONFIG_REPLY (OF1.2) (xid=0x1): port=1
queue 17476:
queue 21845: min_rate:50.0% max_rate:75.0%
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2728"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_315
#AT_START_316
at_fn_group_banner 316 'ofp-print.at:2741' \
  "OFPT_QUEUE_GET_CONFIG_REPLY - OF1.3" "            " 18
at_xfail=no
(
  $as_echo "316. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2743: ovs-ofctl ofp-print \"04 17 00 50 00 00 00 01 \\
00 00 00 01 00 00 00 00 \\
00 00 55 55 00 00 00 01 00 30 00 00 00 00 00 00 \\
00 01 00 10 00 00 00 00 01 f4 00 00 00 00 00 00 \\
00 02 00 10 00 00 00 00 02 ee 00 00 00 00 00 00 \\
00 00 44 44 00 08 00 01 00 10 00 00 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2743"
( $at_check_trace; ovs-ofctl ofp-print "04 17 00 50 00 00 00 01 \
00 00 00 01 00 00 00 00 \
00 00 55 55 00 00 00 01 00 30 00 00 00 00 00 00 \
00 01 00 10 00 00 00 00 01 f4 00 00 00 00 00 00 \
00 02 00 10 00 00 00 00 02 ee 00 00 00 00 00 00 \
00 00 44 44 00 08 00 01 00 10 00 00 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_QUEUE_GET_CONFIG_REPLY (OF1.3) (xid=0x1): port=1
queue 17476:
queue 21845: min_rate:50.0% max_rate:75.0%
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2743"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_316
#AT_START_317
at_fn_group_banner 317 'ofp-print.at:2757' \
  "OFPST_QUEUE_DESC reply - OF1.4" "                 " 18
at_xfail=no
(
  $as_echo "317. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2759: ovs-ofctl ofp-print \"\\
05 13 00 48 00 00 00 01 00 0f 00 00 00 00 00 00 \\

00 00 00 01 00 00 55 55 00 20 00 00 00 00 00 00 \\
00 01 00 08 01 f4 00 00 \\
00 02 00 08 02 ee 00 00 \\

00 00 00 02 00 00 44 44 00 18 00 00 00 00 00 00 \\
00 02 00 08 00 64 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2759"
( $at_check_trace; ovs-ofctl ofp-print "\
05 13 00 48 00 00 00 01 00 0f 00 00 00 00 00 00 \

00 00 00 01 00 00 55 55 00 20 00 00 00 00 00 00 \
00 01 00 08 01 f4 00 00 \
00 02 00 08 02 ee 00 00 \

00 00 00 02 00 00 44 44 00 18 00 00 00 00 00 00 \
00 02 00 08 00 64 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_QUEUE_DESC reply (OF1.4) (xid=0x1): port=1
queue 21845: min_rate:50.0% max_rate:75.0%
port=2
queue 17476: max_rate:10.0%
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2759"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_317
#AT_START_318
at_fn_group_banner 318 'ofp-print.at:2776' \
  "OFPT_SET_ASYNC - OF1.3" "                         " 18
at_xfail=no
(
  $as_echo "318. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2782: ovs-ofctl ofp-print \"\\
04 1c 00 20 00 00 00 00 00 00 10 05 00 00 10 07 \\
00 00 00 03 00 00 00 07 00 00 00 00 00 00 00 03 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2782"
( $at_check_trace; ovs-ofctl ofp-print "\
04 1c 00 20 00 00 00 00 00 00 10 05 00 00 10 07 \
00 00 00 03 00 00 00 07 00 00 00 00 00 00 00 03 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_SET_ASYNC (OF1.3) (xid=0x0):
 master:
       PACKET_IN: no_match invalid_ttl
     PORT_STATUS: add delete
    FLOW_REMOVED: (off)
     ROLE_STATUS: (off)
    TABLE_STATUS: (off)
  REQUESTFORWARD: (off)

 slave:
       PACKET_IN: no_match action invalid_ttl
     PORT_STATUS: add delete modify
    FLOW_REMOVED: idle hard
     ROLE_STATUS: (off)
    TABLE_STATUS: (off)
  REQUESTFORWARD: (off)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2782"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_318
#AT_START_319
at_fn_group_banner 319 'ofp-print.at:2805' \
  "OFPT_ROLE_REQUEST - OF1.2" "                      " 18
at_xfail=no
(
  $as_echo "319. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2807: ovs-ofctl ofp-print \"\\
03 18 00 18 00 00 00 02 00 00 00 02 00 00 00 00 \\
00 00 00 00 00 00 00 03 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2807"
( $at_check_trace; ovs-ofctl ofp-print "\
03 18 00 18 00 00 00 02 00 00 00 02 00 00 00 00 \
00 00 00 00 00 00 00 03 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ROLE_REQUEST (OF1.2) (xid=0x2): role=master generation_id=3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2807"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_319
#AT_START_320
at_fn_group_banner 320 'ofp-print.at:2815' \
  "OFPT_ROLE_REQUEST - nochange - OF1.2" "           " 18
at_xfail=no
(
  $as_echo "320. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2817: ovs-ofctl ofp-print \"\\
03 18 00 18 00 00 00 02 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2817"
( $at_check_trace; ovs-ofctl ofp-print "\
03 18 00 18 00 00 00 02 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ROLE_REQUEST (OF1.2) (xid=0x2): role=nochange
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2817"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_320
#AT_START_321
at_fn_group_banner 321 'ofp-print.at:2825' \
  "NXT_ROLE_REQUEST" "                               " 18
at_xfail=no
(
  $as_echo "321. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2827: ovs-ofctl ofp-print \"\\
01 04 00 14 00 00 00 02 00 00 23 20 00 00 00 0a \\
00 00 00 01 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2827"
( $at_check_trace; ovs-ofctl ofp-print "\
01 04 00 14 00 00 00 02 00 00 23 20 00 00 00 0a \
00 00 00 01 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_ROLE_REQUEST (xid=0x2): role=master
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2827"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_321
#AT_START_322
at_fn_group_banner 322 'ofp-print.at:2835' \
  "OFPT_ROLE_REPLY - OF1.2" "                        " 18
at_xfail=no
(
  $as_echo "322. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2837: ovs-ofctl ofp-print \"\\
03 19 00 18 00 00 00 02 00 00 00 03 00 00 00 00 \\
12 34 56 78 ab cd ef 90 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2837"
( $at_check_trace; ovs-ofctl ofp-print "\
03 19 00 18 00 00 00 02 00 00 00 03 00 00 00 00 \
12 34 56 78 ab cd ef 90 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ROLE_REPLY (OF1.2) (xid=0x2): role=slave generation_id=1311768467750121360
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2837"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_322
#AT_START_323
at_fn_group_banner 323 'ofp-print.at:2845' \
  "NXT_ROLE_REPLY" "                                 " 18
at_xfail=no
(
  $as_echo "323. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2847: ovs-ofctl ofp-print \"\\
01 04 00 14 00 00 00 02 00 00 23 20 00 00 00 0b \\
00 00 00 02 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2847"
( $at_check_trace; ovs-ofctl ofp-print "\
01 04 00 14 00 00 00 02 00 00 23 20 00 00 00 0b \
00 00 00 02 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_ROLE_REPLY (xid=0x2): role=slave
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2847"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_323
#AT_START_324
at_fn_group_banner 324 'ofp-print.at:2855' \
  "OFP_ROLE_STATUS - master, experimenter - OF1.4" " " 18
at_xfail=no
(
  $as_echo "324. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2857: ovs-ofctl ofp-print \"\\
05 1e 00 18 00 00 00 0a \\
00 00 00 02 02 00 00 00 ff ff ff ff ff ff ff ff \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2857"
( $at_check_trace; ovs-ofctl ofp-print "\
05 1e 00 18 00 00 00 0a \
00 00 00 02 02 00 00 00 ff ff ff ff ff ff ff ff \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ROLE_STATUS (OF1.4) (xid=0xa): role=master reason=experimenter_data_changed
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2857"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_324
#AT_START_325
at_fn_group_banner 325 'ofp-print.at:2865' \
  "OFP_ROLE_STATUS - master, config - OF1.4" "       " 18
at_xfail=no
(
  $as_echo "325. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2867: ovs-ofctl ofp-print \"\\
05 1e 00 18 00 00 00 0a \\
00 00 00 02 01 00 00 00 ff ff ff ff ff ff ff ff \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2867"
( $at_check_trace; ovs-ofctl ofp-print "\
05 1e 00 18 00 00 00 0a \
00 00 00 02 01 00 00 00 ff ff ff ff ff ff ff ff \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ROLE_STATUS (OF1.4) (xid=0xa): role=master reason=configuration_changed
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2867"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_325
#AT_START_326
at_fn_group_banner 326 'ofp-print.at:2875' \
  "OFP_ROLE_STATUS - master, config,generation - OF1.4" "" 18
at_xfail=no
(
  $as_echo "326. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2877: ovs-ofctl ofp-print \"\\
05 1e 00 18 00 00 00 0a \\
00 00 00 02 01 00 00 00 00 00 00 00 00 00 00 10 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2877"
( $at_check_trace; ovs-ofctl ofp-print "\
05 1e 00 18 00 00 00 0a \
00 00 00 02 01 00 00 00 00 00 00 00 00 00 00 10 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ROLE_STATUS (OF1.4) (xid=0xa): role=master generation_id=16 reason=configuration_changed
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2877"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_326
#AT_START_327
at_fn_group_banner 327 'ofp-print.at:2885' \
  "OFP_REQUESTFORWARD - OF1.4" "                     " 18
at_xfail=no
(
  $as_echo "327. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2887: ovs-ofctl ofp-print \"\\
05 20 00 18 00 00 00 02 \\
05 0f 00 10 02 00 00 00 \\
00 00 00 00 00 00 00 01 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2887"
( $at_check_trace; ovs-ofctl ofp-print "\
05 20 00 18 00 00 00 02 \
05 0f 00 10 02 00 00 00 \
00 00 00 00 00 00 00 01 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_REQUESTFORWARD (OF1.4) (xid=0x2): reason=group_mod
 ADD group_id=1,type=all
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2887"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_327
#AT_START_328
at_fn_group_banner 328 'ofp-print.at:2897' \
  "OFP_REQUESTFORWARD - OF1.4" "                     " 18
at_xfail=no
(
  $as_echo "328. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2899: ovs-ofctl ofp-print \"\\
05 20 00 18 00 00 00 02 \\
05 0f 00 10 02 00 00 00 \\
00 01 01 00 00 00 00 01 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2899"
( $at_check_trace; ovs-ofctl ofp-print "\
05 20 00 18 00 00 00 02 \
05 0f 00 10 02 00 00 00 \
00 01 01 00 00 00 00 01 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_REQUESTFORWARD (OF1.4) (xid=0x2): reason=group_mod
 MOD group_id=1,type=select
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2899"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_328
#AT_START_329
at_fn_group_banner 329 'ofp-print.at:2909' \
  "OFP_REQUESTFORWARD - OF1.4" "                     " 18
at_xfail=no
(
  $as_echo "329. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2911: ovs-ofctl ofp-print \"\\
05 20 00 18 00 00 00 02 \\
05 1d 00 10 02 00 00 00 \\
00 00 00 00 00 00 00 01 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2911"
( $at_check_trace; ovs-ofctl ofp-print "\
05 20 00 18 00 00 00 02 \
05 1d 00 10 02 00 00 00 \
00 00 00 00 00 00 00 01 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_REQUESTFORWARD (OF1.4) (xid=0x2): reason=meter_mod ADD meter=1 bands=
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2911"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_329
#AT_START_330
at_fn_group_banner 330 'ofp-print.at:2920' \
  "OFP_REQUESTFORWARD - OF1.4" "                     " 18
at_xfail=no
(
  $as_echo "330. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2922: ovs-ofctl ofp-print \"\\
05 20 00 18 00 00 00 02 \\
05 1d 00 10 02 00 00 00 \\
00 01 01 00 00 00 00 01 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2922"
( $at_check_trace; ovs-ofctl ofp-print "\
05 20 00 18 00 00 00 02 \
05 1d 00 10 02 00 00 00 \
00 01 01 00 00 00 00 01 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_REQUESTFORWARD (OF1.4) (xid=0x2): reason=meter_mod MOD meter=1 flags:0x100 bands=
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2922"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_330
#AT_START_331
at_fn_group_banner 331 'ofp-print.at:2931' \
  "NXT_SET_PACKET_IN" "                              " 18
at_xfail=no
(
  $as_echo "331. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2933: ovs-ofctl ofp-print \"\\
01 04 00 14 00 00 00 02 00 00 23 20 00 00 00 10 \\
00 00 00 01 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2933"
( $at_check_trace; ovs-ofctl ofp-print "\
01 04 00 14 00 00 00 02 00 00 23 20 00 00 00 10 \
00 00 00 01 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_SET_PACKET_IN_FORMAT (xid=0x2): format=nxt_packet_in
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2933"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_331
#AT_START_332
at_fn_group_banner 332 'ofp-print.at:2941' \
  "NXT_PACKET_IN" "                                  " 18
at_xfail=no
(
  $as_echo "332. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2943: ovs-ofctl ofp-print \"\\
01 04 00 ba 00 00 00 00 00 00 23 20 00 00 00 11 \\
ff ff ff ff 00 40 01 07 00 00 00 00 00 00 00 09 \\
00 4e 00 00 00 00 00 00 00 00 00 02 00 01 00 01 \\
20 08 00 00 00 00 00 00 00 06 00 01 00 04 00 00 \\
00 01 00 01 02 04 00 00 00 02 00 01 04 04 00 00 \\
00 03 00 01 06 04 00 00 00 04 00 01 08 04 00 00 \\
00 05 80 00 05 10 5a 5a 5a 5a 5a 5a 5a 5a ff ff \\
ff ff ff ff ff ff 00 00 00 00 82 82 82 82 82 82 \\
80 81 81 81 81 81 81 00 00 50 08 00 45 00 00 28 \\
00 00 00 00 00 06 32 05 53 53 53 53 54 54 54 54 \\
00 55 00 56 00 00 00 00 00 00 00 00 50 02 00 00 \\
31 6d 00 00 00 00 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2943"
( $at_check_trace; ovs-ofctl ofp-print "\
01 04 00 ba 00 00 00 00 00 00 23 20 00 00 00 11 \
ff ff ff ff 00 40 01 07 00 00 00 00 00 00 00 09 \
00 4e 00 00 00 00 00 00 00 00 00 02 00 01 00 01 \
20 08 00 00 00 00 00 00 00 06 00 01 00 04 00 00 \
00 01 00 01 02 04 00 00 00 02 00 01 04 04 00 00 \
00 03 00 01 06 04 00 00 00 04 00 01 08 04 00 00 \
00 05 80 00 05 10 5a 5a 5a 5a 5a 5a 5a 5a ff ff \
ff ff ff ff ff ff 00 00 00 00 82 82 82 82 82 82 \
80 81 81 81 81 81 81 00 00 50 08 00 45 00 00 28 \
00 00 00 00 00 06 32 05 53 53 53 53 54 54 54 54 \
00 55 00 56 00 00 00 00 00 00 00 00 50 02 00 00 \
31 6d 00 00 00 00 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): table_id=7 cookie=0x9 total_len=64 reg0=0x1,reg1=0x2,reg2=0x3,reg3=0x4,reg4=0x5,tun_id=0x6,metadata=0x5a5a5a5a5a5a5a5a,in_port=1 (via action) data_len=64 (unbuffered)
tcp,dl_vlan=80,dl_vlan_pcp=0,vlan_tci1=0x0000,dl_src=80:81:81:81:81:81,dl_dst=82:82:82:82:82:82,nw_src=83.83.83.83,nw_dst=84.84.84.84,nw_tos=0,nw_ecn=0,nw_ttl=0,tp_src=85,tp_dst=86,tcp_flags=syn tcp_csum:316d
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2943"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_332
#AT_START_333
at_fn_group_banner 333 'ofp-print.at:2962' \
  "NXT_PACKET_IN, with hex output of packet data" "  " 18
at_xfail=no
(
  $as_echo "333. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2964: ovs-ofctl ofp-print \"\\
01 04 00 ba 00 00 00 00 00 00 23 20 00 00 00 11 \\
ff ff ff ff 00 40 01 07 00 00 00 00 00 00 00 09 \\
00 4e 00 00 00 00 00 00 00 00 00 02 00 01 00 01 \\
20 08 00 00 00 00 00 00 00 06 00 01 00 04 00 00 \\
00 01 00 01 02 04 00 00 00 02 00 01 04 04 00 00 \\
00 03 00 01 06 04 00 00 00 04 00 01 08 04 00 00 \\
00 05 80 00 05 10 5a 5a 5a 5a 5a 5a 5a 5a ff ff \\
ff ff ff ff ff ff 00 00 00 00 82 82 82 82 82 82 \\
80 81 81 81 81 81 81 00 00 50 08 00 45 00 00 28 \\
00 00 00 00 00 06 32 05 53 53 53 53 54 54 54 54 \\
00 55 00 56 00 00 00 00 00 00 00 00 50 01 00 00 \\
31 6d 00 00 00 00 00 00 00 00 \\
\" 3"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2964"
( $at_check_trace; ovs-ofctl ofp-print "\
01 04 00 ba 00 00 00 00 00 00 23 20 00 00 00 11 \
ff ff ff ff 00 40 01 07 00 00 00 00 00 00 00 09 \
00 4e 00 00 00 00 00 00 00 00 00 02 00 01 00 01 \
20 08 00 00 00 00 00 00 00 06 00 01 00 04 00 00 \
00 01 00 01 02 04 00 00 00 02 00 01 04 04 00 00 \
00 03 00 01 06 04 00 00 00 04 00 01 08 04 00 00 \
00 05 80 00 05 10 5a 5a 5a 5a 5a 5a 5a 5a ff ff \
ff ff ff ff ff ff 00 00 00 00 82 82 82 82 82 82 \
80 81 81 81 81 81 81 00 00 50 08 00 45 00 00 28 \
00 00 00 00 00 06 32 05 53 53 53 53 54 54 54 54 \
00 55 00 56 00 00 00 00 00 00 00 00 50 01 00 00 \
31 6d 00 00 00 00 00 00 00 00 \
" 3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): table_id=7 cookie=0x9 total_len=64 reg0=0x1,reg1=0x2,reg2=0x3,reg3=0x4,reg4=0x5,tun_id=0x6,metadata=0x5a5a5a5a5a5a5a5a,in_port=1 (via action) data_len=64 (unbuffered)
tcp,dl_vlan=80,dl_vlan_pcp=0,vlan_tci1=0x0000,dl_src=80:81:81:81:81:81,dl_dst=82:82:82:82:82:82,nw_src=83.83.83.83,nw_dst=84.84.84.84,nw_tos=0,nw_ecn=0,nw_ttl=0,tp_src=85,tp_dst=86,tcp_flags=fin tcp_csum:316d
00000000  82 82 82 82 82 82 80 81-81 81 81 81 81 00 00 50
00000010  08 00 45 00 00 28 00 00-00 00 00 06 32 05 53 53
00000020  53 53 54 54 54 54 00 55-00 56 00 00 00 00 00 00
00000030  00 00 50 01 00 00 31 6d-00 00 00 00 00 00 00 00
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2964"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_333
#AT_START_334
at_fn_group_banner 334 'ofp-print.at:2987' \
  "NX_PACKET_IN2" "                                  " 18
at_xfail=no
(
  $as_echo "334. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:2989: ovs-ofctl ofp-print \"
01 04 0098 00000000 00002320 0000001e
0000 0034
  82 82 82 82 82 82 80 81 81 81 81 81 81 00 00 50
  08 00 45 00 00 28 00 00 00 00 00 06 32 05 53 53
  53 53 54 54 54 54 00 55 00 56 00 00 00 00 00 00   00000000
0001 0008 00000040
0002 0008 00000114
0003 0005 07   000000
0004 0010 00000000   fedcba9876543210
0005 0005 01   000000
0006 0010 80000408 5a5a5a5a5a5a5a5a
0007 0009 0102030405  00000000000000
\"
"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:2989"
( $at_check_trace; ovs-ofctl ofp-print "
01 04 0098 00000000 00002320 0000001e
0000 0034
  82 82 82 82 82 82 80 81 81 81 81 81 81 00 00 50
  08 00 45 00 00 28 00 00 00 00 00 06 32 05 53 53
  53 53 54 54 54 54 00 55 00 56 00 00 00 00 00 00   00000000
0001 0008 00000040
0002 0008 00000114
0003 0005 07   000000
0004 0010 00000000   fedcba9876543210
0005 0005 01   000000
0006 0010 80000408 5a5a5a5a5a5a5a5a
0007 0009 0102030405  00000000000000
"

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN2 (xid=0x0): table_id=7 cookie=0xfedcba9876543210 total_len=64 metadata=0x5a5a5a5a5a5a5a5a (via action) data_len=48 buffer=0x00000114
 userdata=01.02.03.04.05
ip,dl_vlan=80,dl_vlan_pcp=0,vlan_tci1=0x0000,dl_src=80:81:81:81:81:81,dl_dst=82:82:82:82:82:82,nw_src=0.0.0.0,nw_dst=0.0.0.0,nw_proto=0,nw_tos=0,nw_ecn=0,nw_ttl=0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:2989"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_334
#AT_START_335
at_fn_group_banner 335 'ofp-print.at:3010' \
  "NXT_SET_ASYNC_CONFIG" "                           " 18
at_xfail=no
(
  $as_echo "335. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3014: ovs-ofctl ofp-print \"\\
01 04 00 28 00 00 00 00 00 00 23 20 00 00 00 13 \\
00 00 10 05 00 00 10 07 00 00 00 03 00 00 00 07 \\
00 00 00 00 00 00 00 03 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3014"
( $at_check_trace; ovs-ofctl ofp-print "\
01 04 00 28 00 00 00 00 00 00 23 20 00 00 00 13 \
00 00 10 05 00 00 10 07 00 00 00 03 00 00 00 07 \
00 00 00 00 00 00 00 03 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_SET_ASYNC_CONFIG (xid=0x0):
 master:
       PACKET_IN: no_match invalid_ttl
     PORT_STATUS: add delete
    FLOW_REMOVED: (off)
     ROLE_STATUS: (off)
    TABLE_STATUS: (off)
  REQUESTFORWARD: (off)

 slave:
       PACKET_IN: no_match action invalid_ttl
     PORT_STATUS: add delete modify
    FLOW_REMOVED: idle hard
     ROLE_STATUS: (off)
    TABLE_STATUS: (off)
  REQUESTFORWARD: (off)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3014"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_335
#AT_START_336
at_fn_group_banner 336 'ofp-print.at:3038' \
  "OFPT_SET_ASYNC_CONFIG" "                          " 18
at_xfail=no
(
  $as_echo "336. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3040: ovs-ofctl ofp-print \"\\
05 1c 00 38 00 00 00 02 00 00 00 08 00 00 00 05 \\
00 01 00 08 00 00 00 02 00 02 00 08 00 00 00 02 \\
00 03 00 08 00 00 00 05 00 04 00 08 00 00 00 1c \\
00 05 00 08 00 00 00 05 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3040"
( $at_check_trace; ovs-ofctl ofp-print "\
05 1c 00 38 00 00 00 02 00 00 00 08 00 00 00 05 \
00 01 00 08 00 00 00 02 00 02 00 08 00 00 00 02 \
00 03 00 08 00 00 00 05 00 04 00 08 00 00 00 1c \
00 05 00 08 00 00 00 05 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_SET_ASYNC (OF1.4) (xid=0x2):
 master:
       PACKET_IN: action
     PORT_STATUS: add modify
    FLOW_REMOVED: idle delete
     ROLE_STATUS: (off)
    TABLE_STATUS: (off)
  REQUESTFORWARD: (off)

 slave:
       PACKET_IN: no_match invalid_ttl
     PORT_STATUS: delete
    FLOW_REMOVED: delete group_delete meter_delete
     ROLE_STATUS: (off)
    TABLE_STATUS: (off)
  REQUESTFORWARD: (off)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3040"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_336
#AT_START_337
at_fn_group_banner 337 'ofp-print.at:3065' \
  "OFPT_SET_ASYNC_CONFIG - invalid mask - OF1.4" "   " 18
at_xfail=no
(
  $as_echo "337. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3067: ovs-ofctl ofp-print \"\\
05 1c 00 38 00 00 00 02 00 00 00 08 00 00 00 40 \\
00 01 00 08 00 00 00 02 00 02 00 08 00 00 00 02 \\
00 03 00 08 00 00 00 05 00 04 00 08 00 00 00 1c \\
00 05 00 08 00 00 00 05 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3067"
( $at_check_trace; ovs-ofctl ofp-print "\
05 1c 00 38 00 00 00 02 00 00 00 08 00 00 00 40 \
00 01 00 08 00 00 00 02 00 02 00 08 00 00 00 02 \
00 03 00 08 00 00 00 05 00 04 00 08 00 00 00 1c \
00 05 00 08 00 00 00 05 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo >>"$at_stdout"; $as_echo "OFPT_SET_ASYNC (OF1.4) (xid=0x2): ***decode error: OFPACFC_INVALID***
00000000  05 1c 00 38 00 00 00 02-00 00 00 08 00 00 00 40 |...8...........@|
00000010  00 01 00 08 00 00 00 02-00 02 00 08 00 00 00 02 |................|
00000020  00 03 00 08 00 00 00 05-00 04 00 08 00 00 00 1c |................|
00000030  00 05 00 08 00 00 00 05-                        |........        |
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3067"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-print.at:3079: sed 's/.*|//' stderr"
at_fn_check_prepare_notrace 'a shell pipeline' "ofp-print.at:3079"
( $at_check_trace; sed 's/.*|//' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "bad value 0x40 for PACKET_IN (allowed mask 0x3f)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3079"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_337
#AT_START_338
at_fn_group_banner 338 'ofp-print.at:3084' \
  "OFPT_SET_ASYNC_CONFIG - unsupported configuration - OF1.4" "" 18
at_xfail=no
(
  $as_echo "338. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3086: ovs-ofctl ofp-print \"\\
05 1c 00 38 00 00 00 02 00 00 00 08 00 00 00 05 \\
00 11 00 08 00 00 00 02 00 02 00 08 00 00 00 02 \\
00 03 00 08 00 00 00 05 00 04 00 08 00 00 00 1c \\
00 05 00 08 00 00 00 05\\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3086"
( $at_check_trace; ovs-ofctl ofp-print "\
05 1c 00 38 00 00 00 02 00 00 00 08 00 00 00 05 \
00 11 00 08 00 00 00 02 00 02 00 08 00 00 00 02 \
00 03 00 08 00 00 00 05 00 04 00 08 00 00 00 1c \
00 05 00 08 00 00 00 05\
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo >>"$at_stdout"; $as_echo "OFPT_SET_ASYNC (OF1.4) (xid=0x2): ***decode error: OFPACFC_UNSUPPORTED***
00000000  05 1c 00 38 00 00 00 02-00 00 00 08 00 00 00 05 |...8............|
00000010  00 11 00 08 00 00 00 02-00 02 00 08 00 00 00 02 |................|
00000020  00 03 00 08 00 00 00 05-00 04 00 08 00 00 00 1c |................|
00000030  00 05 00 08 00 00 00 05-                        |........        |
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3086"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-print.at:3098: sed 's/.*|//' stderr"
at_fn_check_prepare_notrace 'a shell pipeline' "ofp-print.at:3098"
( $at_check_trace; sed 's/.*|//' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "unknown async config property type 17
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3098"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_338
#AT_START_339
at_fn_group_banner 339 'ofp-print.at:3103' \
  "NXT_SET_CONTROLLER_ID" "                          " 18
at_xfail=no
(
  $as_echo "339. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3105: ovs-ofctl ofp-print \"\\
01 04 00 18 00 00 00 03 00 00 23 20 00 00 00 14 \\
00 00 00 00 00 00 00 7b \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3105"
( $at_check_trace; ovs-ofctl ofp-print "\
01 04 00 18 00 00 00 03 00 00 23 20 00 00 00 14 \
00 00 00 00 00 00 00 7b \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_SET_CONTROLLER_ID (xid=0x3): id=123
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3105"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_339
#AT_START_340
at_fn_group_banner 340 'ofp-print.at:3113' \
  "NXT_FLOW_MONITOR_CANCEL" "                        " 18
at_xfail=no
(
  $as_echo "340. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3115: ovs-ofctl ofp-print \"\\
01 04 00 14 00 00 00 03 00 00 23 20 00 00 00 15 \\
01 02 30 40 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3115"
( $at_check_trace; ovs-ofctl ofp-print "\
01 04 00 14 00 00 00 03 00 00 23 20 00 00 00 15 \
01 02 30 40 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_FLOW_MONITOR_CANCEL (xid=0x3): id=16920640
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3115"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_340
#AT_START_341
at_fn_group_banner 341 'ofp-print.at:3123' \
  "NXT_FLOW_MONITOR_PAUSED" "                        " 18
at_xfail=no
(
  $as_echo "341. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3125: ovs-ofctl ofp-print \"\\
01 04 00 10 00 00 00 03 00 00 23 20 00 00 00 16 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3125"
( $at_check_trace; ovs-ofctl ofp-print "\
01 04 00 10 00 00 00 03 00 00 23 20 00 00 00 16 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_FLOW_MONITOR_PAUSED (xid=0x3):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3125"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_341
#AT_START_342
at_fn_group_banner 342 'ofp-print.at:3132' \
  "NXT_FLOW_MONITOR_RESUMED" "                       " 18
at_xfail=no
(
  $as_echo "342. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3134: ovs-ofctl ofp-print \"\\
01 04 00 10 00 00 00 03 00 00 23 20 00 00 00 17 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3134"
( $at_check_trace; ovs-ofctl ofp-print "\
01 04 00 10 00 00 00 03 00 00 23 20 00 00 00 17 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_FLOW_MONITOR_RESUMED (xid=0x3):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3134"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_342
#AT_START_343
at_fn_group_banner 343 'ofp-print.at:3141' \
  "NXT_SET_FLOW_FORMAT" "                            " 18
at_xfail=no
(
  $as_echo "343. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3143: ovs-ofctl ofp-print \"\\
01 04 00 14 00 00 00 02 00 00 23 20 00 00 00 0c \\
00 00 00 02 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3143"
( $at_check_trace; ovs-ofctl ofp-print "\
01 04 00 14 00 00 00 02 00 00 23 20 00 00 00 0c \
00 00 00 02 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_SET_FLOW_FORMAT (xid=0x2): format=nxm
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3143"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_343
#AT_START_344
at_fn_group_banner 344 'ofp-print.at:3152' \
  "NXT_FLOW_MOD, low verbosity" "                    " 18
at_xfail=no
(
  $as_echo "344. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3154: ovs-ofctl ofp-print \"\\
01 04 00 60 00 00 00 02 00 00 23 20 00 00 00 0d \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 \\
ff ff ff ff 00 10 00 00 00 14 00 00 00 00 00 00 \\
00 01 20 08 00 00 00 00 00 00 01 c8 00 01 00 04 \\
00 00 00 7b 00 00 00 00 ff ff 00 18 00 00 23 20 \\
00 07 00 1f 00 01 00 04 00 00 00 00 00 00 00 05 \\
\" 2"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3154"
( $at_check_trace; ovs-ofctl ofp-print "\
01 04 00 60 00 00 00 02 00 00 23 20 00 00 00 0d \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 \
ff ff ff ff 00 10 00 00 00 14 00 00 00 00 00 00 \
00 01 20 08 00 00 00 00 00 00 01 c8 00 01 00 04 \
00 00 00 7b 00 00 00 00 ff ff 00 18 00 00 23 20 \
00 07 00 1f 00 01 00 04 00 00 00 00 00 00 00 05 \
" 2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_FLOW_MOD (xid=0x2): ADD reg0=0x7b,tun_id=0x1c8 out_port:16 actions=load:0x5->NXM_NX_REG0[]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3154"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_344
#AT_START_345
at_fn_group_banner 345 'ofp-print.at:3168' \
  "NXT_FLOW_MOD, high verbosity" "                   " 18
at_xfail=no
(
  $as_echo "345. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3170: ovs-ofctl ofp-print \"\\
01 04 00 60 00 00 00 02 00 00 23 20 00 00 00 0d \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 \\
ff ff ff ff 01 00 00 00 00 14 00 00 00 00 00 00 \\
00 01 20 08 00 00 00 00 00 00 01 c8 00 01 00 04 \\
00 00 00 7b 00 00 00 00 ff ff 00 18 00 00 23 20 \\
00 07 00 1f 00 01 00 04 00 00 00 00 00 00 00 05 \\
\" 3"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3170"
( $at_check_trace; ovs-ofctl ofp-print "\
01 04 00 60 00 00 00 02 00 00 23 20 00 00 00 0d \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 00 \
ff ff ff ff 01 00 00 00 00 14 00 00 00 00 00 00 \
00 01 20 08 00 00 00 00 00 00 01 c8 00 01 00 04 \
00 00 00 7b 00 00 00 00 ff ff 00 18 00 00 23 20 \
00 07 00 1f 00 01 00 04 00 00 00 00 00 00 00 05 \
" 3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_FLOW_MOD (xid=0x2): ADD NXM_NX_TUN_ID(00000000000001c8), NXM_NX_REG0(0000007b) out_port:256 actions=load:0x5->NXM_NX_REG0[]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3170"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_345
#AT_START_346
at_fn_group_banner 346 'ofp-print.at:3182' \
  "OFPT_GROUP_MOD - OF1.1" "                         " 18
at_xfail=no
(
  $as_echo "346. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3184: ovs-ofctl ofp-print \"\\
02 0f 00 70 11 22 33 44 00 00 01 00 87 65 43 21 \\
00 20 00 64 00 00 00 01 ff ff ff ff 00 00 00 00 \\
00 00 00 10 00 00 00 01 00 00 00 00 00 00 00 00 \\
00 20 00 c8 00 00 00 02 ff ff ff ff 00 00 00 00 \\
00 00 00 10 00 00 00 02 00 00 00 00 00 00 00 00 \\
00 20 00 c8 00 00 00 03 ff ff ff ff 00 00 00 00 \\
00 00 00 10 00 00 00 03 00 00 00 00 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3184"
( $at_check_trace; ovs-ofctl ofp-print "\
02 0f 00 70 11 22 33 44 00 00 01 00 87 65 43 21 \
00 20 00 64 00 00 00 01 ff ff ff ff 00 00 00 00 \
00 00 00 10 00 00 00 01 00 00 00 00 00 00 00 00 \
00 20 00 c8 00 00 00 02 ff ff ff ff 00 00 00 00 \
00 00 00 10 00 00 00 02 00 00 00 00 00 00 00 00 \
00 20 00 c8 00 00 00 03 ff ff ff ff 00 00 00 00 \
00 00 00 10 00 00 00 03 00 00 00 00 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_GROUP_MOD (OF1.1) (xid=0x11223344):
 ADD group_id=2271560481,type=select,bucket=weight:100,watch_port:1,actions=output:1,bucket=weight:200,watch_port:2,actions=output:2,bucket=weight:200,watch_port:3,actions=output:3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3184"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_346
#AT_START_347
at_fn_group_banner 347 'ofp-print.at:3198' \
  "OFPT_GROUP_MOD add - OF1.5" "                     " 18
at_xfail=no
(
  $as_echo "347. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3200: ovs-ofctl ofp-print \"\\
06 0f 00 b8 11 22 33 44 00 00 01 00 87 65 43 21 \\
00 78 00 00 ff ff ff ff 00 28 00 10 00 00 00 00 \\
00 00 00 10 00 00 00 01 00 00 00 00 00 00 00 00 \\
00 00 00 08 00 64 00 00 00 01 00 08 00 00 00 01 \\
00 28 00 10 00 00 00 01 00 00 00 10 00 00 00 02 \\
00 00 00 00 00 00 00 00 00 00 00 08 00 c8 00 00 \\
00 01 00 08 00 00 00 02 00 28 00 10 00 00 00 02 \\
00 00 00 10 00 00 00 03 00 00 00 00 00 00 00 00 \\
00 00 00 08 00 c8 00 00 00 01 00 08 00 00 00 03 \\
ff ff 00 28 00 00 15 40 00 00 00 01 00 00 00 00 \\
68 61 73 68 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 07 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3200"
( $at_check_trace; ovs-ofctl ofp-print "\
06 0f 00 b8 11 22 33 44 00 00 01 00 87 65 43 21 \
00 78 00 00 ff ff ff ff 00 28 00 10 00 00 00 00 \
00 00 00 10 00 00 00 01 00 00 00 00 00 00 00 00 \
00 00 00 08 00 64 00 00 00 01 00 08 00 00 00 01 \
00 28 00 10 00 00 00 01 00 00 00 10 00 00 00 02 \
00 00 00 00 00 00 00 00 00 00 00 08 00 c8 00 00 \
00 01 00 08 00 00 00 02 00 28 00 10 00 00 00 02 \
00 00 00 10 00 00 00 03 00 00 00 00 00 00 00 00 \
00 00 00 08 00 c8 00 00 00 01 00 08 00 00 00 03 \
ff ff 00 28 00 00 15 40 00 00 00 01 00 00 00 00 \
68 61 73 68 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 07 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_GROUP_MOD (OF1.5) (xid=0x11223344):
 ADD group_id=2271560481,type=select,selection_method=hash,selection_method_param=7,bucket=bucket_id:0,weight:100,watch_port:1,actions=output:1,bucket=bucket_id:1,weight:200,watch_port:2,actions=output:2,bucket=bucket_id:2,weight:200,watch_port:3,actions=output:3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3200"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_347
#AT_START_348
at_fn_group_banner 348 'ofp-print.at:3219' \
  "OFPT_GROUP_MOD insert bucket - OF1.5" "           " 18
at_xfail=no
(
  $as_echo "348. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3221: ovs-ofctl ofp-print \"\\
06 0f 00 90 11 22 33 44 00 03 01 00 87 65 43 21 \\
00 78 00 00 ff ff ff fd 00 28 00 10 00 00 00 00 \\
00 00 00 10 00 00 00 01 00 00 00 00 00 00 00 00 \\
00 00 00 08 00 64 00 00 00 01 00 08 00 00 00 01 \\
00 28 00 10 00 00 00 01 00 00 00 10 00 00 00 02 \\
00 00 00 00 00 00 00 00 00 00 00 08 00 c8 00 00 \\
00 01 00 08 00 00 00 02 00 28 00 10 00 00 00 02 \\
00 00 00 10 00 00 00 03 00 00 00 00 00 00 00 00 \\
00 00 00 08 00 c8 00 00 00 01 00 08 00 00 00 03 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3221"
( $at_check_trace; ovs-ofctl ofp-print "\
06 0f 00 90 11 22 33 44 00 03 01 00 87 65 43 21 \
00 78 00 00 ff ff ff fd 00 28 00 10 00 00 00 00 \
00 00 00 10 00 00 00 01 00 00 00 00 00 00 00 00 \
00 00 00 08 00 64 00 00 00 01 00 08 00 00 00 01 \
00 28 00 10 00 00 00 01 00 00 00 10 00 00 00 02 \
00 00 00 00 00 00 00 00 00 00 00 08 00 c8 00 00 \
00 01 00 08 00 00 00 02 00 28 00 10 00 00 00 02 \
00 00 00 10 00 00 00 03 00 00 00 00 00 00 00 00 \
00 00 00 08 00 c8 00 00 00 01 00 08 00 00 00 03 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_GROUP_MOD (OF1.5) (xid=0x11223344):
 INSERT_BUCKET command_bucket_id:first,group_id=2271560481,bucket=bucket_id:0,weight:100,watch_port:1,actions=output:1,bucket=bucket_id:1,weight:200,watch_port:2,actions=output:2,bucket=bucket_id:2,weight:200,watch_port:3,actions=output:3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3221"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_348
#AT_START_349
at_fn_group_banner 349 'ofp-print.at:3237' \
  "NXT_FLOW_REMOVED" "                               " 18
at_xfail=no
(
  $as_echo "349. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3239: ovs-ofctl ofp-print \"\\
01 04 00 78 00 00 00 00 00 00 23 20 00 00 00 0e \\
00 00 00 00 00 00 00 00 ff ff 00 02 00 00 00 06 \\
01 6e 36 00 00 05 00 3c 00 00 00 00 00 00 00 01 \\
00 00 00 00 00 00 00 3c 00 00 00 02 00 03 00 00 \\
02 06 50 54 00 00 00 06 00 00 04 06 50 54 00 00 \\
00 05 00 00 06 02 08 06 00 00 08 02 00 00 00 00 \\
1e 02 00 02 00 00 20 04 c0 a8 00 01 00 00 22 04 \\
c0 a8 00 02 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3239"
( $at_check_trace; ovs-ofctl ofp-print "\
01 04 00 78 00 00 00 00 00 00 23 20 00 00 00 0e \
00 00 00 00 00 00 00 00 ff ff 00 02 00 00 00 06 \
01 6e 36 00 00 05 00 3c 00 00 00 00 00 00 00 01 \
00 00 00 00 00 00 00 3c 00 00 00 02 00 03 00 00 \
02 06 50 54 00 00 00 06 00 00 04 06 50 54 00 00 \
00 05 00 00 06 02 08 06 00 00 08 02 00 00 00 00 \
1e 02 00 02 00 00 20 04 c0 a8 00 01 00 00 22 04 \
c0 a8 00 02 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_FLOW_REMOVED (xid=0x0): priority=65535,arp,in_port=3,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:06,arp_spa=192.168.0.1,arp_tpa=192.168.0.2,arp_op=2 reason=idle table_id=1 duration6.024s idle5 pkts1 bytes60
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3239"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_349
#AT_START_350
at_fn_group_banner 350 'ofp-print.at:3253' \
  "NXT_FLOW_MOD_TABLE_ID" "                          " 18
at_xfail=no
(
  $as_echo "350. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3255: ovs-ofctl ofp-print \"\\
01 04 00 18 01 02 03 04 00 00 23 20 00 00 00 0f \\
01 00 00 00 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3255"
( $at_check_trace; ovs-ofctl ofp-print "\
01 04 00 18 01 02 03 04 00 00 23 20 00 00 00 0f \
01 00 00 00 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_FLOW_MOD_TABLE_ID (xid=0x1020304): enable
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3255"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_350
#AT_START_351
at_fn_group_banner 351 'ofp-print.at:3263' \
  "NXT_RESUME" "                                     " 18
at_xfail=no
(
  $as_echo "351. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3265: ovs-ofctl ofp-print \"\\
01 04 0038 01020304 00002320 0000001c \\
0000 0012 ffffffffffff 102030405060 1234 000000000000 \\
0006 000a 00000002 fffd 000000000000
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3265"
( $at_check_trace; ovs-ofctl ofp-print "\
01 04 0038 01020304 00002320 0000001c \
0000 0012 ffffffffffff 102030405060 1234 000000000000 \
0006 000a 00000002 fffd 000000000000
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_RESUME (xid=0x1020304): total_len=14 in_port=CONTROLLER (via no_match) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=10:20:30:40:50:60,dl_dst=ff:ff:ff:ff:ff:ff,dl_type=0x1234
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3265"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_351
#AT_START_352
at_fn_group_banner 352 'ofp-print.at:3275' \
  "NXST_FLOW request" "                              " 18
at_xfail=no
(
  $as_echo "352. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3277: ovs-ofctl ofp-print \"\\
01 10 00 20 00 00 00 04 ff ff 00 00 00 00 23 20 \\
00 00 00 00 00 00 00 00 ff ff 00 00 ff 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3277"
( $at_check_trace; ovs-ofctl ofp-print "\
01 10 00 20 00 00 00 04 ff ff 00 00 00 00 23 20 \
00 00 00 00 00 00 00 00 ff ff 00 00 ff 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW request (xid=0x4):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3277"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_352
#AT_START_353
at_fn_group_banner 353 'ofp-print.at:3285' \
  "NXST_FLOW reply" "                                " 18
at_xfail=no
(
  $as_echo "353. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3287: ovs-ofctl ofp-print \"\\
01 11 08 18 00 00 00 04 ff ff 00 00 00 00 23 20 \\
00 00 00 00 00 00 00 00 00 88 00 00 00 00 00 01 \\
02 dc 6c 00 ff ff 00 05 00 00 00 4c 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 \\
00 00 00 00 00 00 00 3c 00 00 00 02 00 03 00 00 \\
02 06 50 54 00 00 00 06 00 00 04 06 50 54 00 00 \\
00 05 00 00 06 02 08 00 00 00 08 02 00 00 00 00 \\
0a 01 00 00 00 0e 04 c0 a8 00 01 00 00 10 04 c0 \\
a8 00 02 00 00 0c 01 06 00 00 12 02 09 e7 00 00 \\
14 02 00 00 00 00 00 00 00 00 00 08 00 01 00 00 \\
00 88 00 00 00 00 00 03 32 11 62 00 ff ff 00 05 \\
00 00 00 4c 00 03 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 3c \\
00 00 00 02 00 03 00 00 02 06 50 54 00 00 00 06 \\
00 00 04 06 50 54 00 00 00 05 00 00 06 02 08 00 \\
00 00 08 02 00 00 00 00 0a 01 00 00 00 0e 04 c0 \\
a8 00 01 00 00 10 04 c0 a8 00 02 00 00 0c 01 06 \\
00 00 12 02 09 e4 00 00 14 02 00 00 00 00 00 00 \\
00 00 00 08 00 01 00 00 00 88 00 00 00 00 00 02 \\
33 f9 aa 00 ff ff 00 05 00 00 00 4c 00 05 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 \\
00 00 00 00 00 00 00 3c 00 00 00 02 00 01 00 00 \\
02 06 50 54 00 00 00 05 00 00 04 06 50 54 00 00 \\
00 06 00 00 06 02 08 00 00 00 08 02 00 00 00 00 \\
0a 01 00 00 00 0e 04 c0 a8 00 02 00 00 10 04 c0 \\
a8 00 01 00 00 0c 01 06 00 00 12 02 00 00 00 00 \\
14 02 09 e5 00 00 00 00 00 00 00 08 00 03 00 00 \\
00 88 00 00 00 00 00 04 2d 0f a5 00 ff ff 00 05 \\
00 00 00 4c 00 01 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 3c \\
00 00 00 02 00 03 00 00 02 06 50 54 00 00 00 06 \\
00 00 04 06 50 54 00 00 00 05 00 00 06 02 08 00 \\
00 00 08 02 00 00 00 00 0a 01 00 00 00 0e 04 c0 \\
a8 00 01 00 00 10 04 c0 a8 00 02 00 00 0c 01 06 \\
00 00 12 02 09 e3 00 00 14 02 00 00 00 00 00 00 \\
00 00 00 08 00 01 00 00 00 88 00 00 00 00 00 02 \\
34 73 bc 00 ff ff 00 05 00 0a 00 4c 00 03 00 03 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 \\
00 00 00 00 00 00 00 3c 00 00 00 02 00 03 00 00 \\
02 06 50 54 00 00 00 06 00 00 04 06 50 54 00 00 \\
00 05 00 00 06 02 08 00 00 00 08 02 00 00 00 00 \\
0a 01 00 00 00 0e 04 c0 a8 00 01 00 00 10 04 c0 \\
a8 00 02 00 00 0c 01 06 00 00 12 02 09 e5 00 00 \\
14 02 00 00 00 00 00 00 00 00 00 08 00 01 00 00 \\
00 88 00 00 00 00 00 05 28 0d e8 00 ff ff 00 05 \\
00 00 00 4c 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 3c \\
00 00 00 02 00 03 00 00 02 06 50 54 00 00 00 06 \\
00 00 04 06 50 54 00 00 00 05 00 00 06 02 08 00 \\
00 00 08 02 00 00 00 00 0a 01 00 00 00 0e 04 c0 \\
a8 00 01 00 00 10 04 c0 a8 00 02 00 00 0c 01 06 \\
00 00 12 02 09 e2 00 00 14 02 00 00 00 00 00 00 \\
00 00 00 08 00 01 00 00 00 88 00 00 00 00 00 01 \\
02 62 5a 00 ff ff 00 05 00 00 00 4c 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 \\
00 00 00 00 00 00 00 3c 00 00 00 02 00 01 00 00 \\
02 06 50 54 00 00 00 05 00 00 04 06 50 54 00 00 \\
00 06 00 00 06 02 08 00 00 00 08 02 00 00 00 00 \\
0a 01 00 00 00 0e 04 c0 a8 00 02 00 00 10 04 c0 \\
a8 00 01 00 00 0c 01 06 00 00 12 02 00 00 00 00 \\
14 02 09 e7 00 00 00 00 00 00 00 08 00 03 00 00 \\
00 88 00 00 00 00 00 01 38 be 5e 00 ff ff 00 05 \\
00 00 00 4c 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 3c \\
00 00 00 02 00 01 00 00 02 06 50 54 00 00 00 05 \\
00 00 04 06 50 54 00 00 00 06 00 00 06 02 08 00 \\
00 00 08 02 00 00 00 00 0a 01 00 00 00 0e 04 c0 \\
a8 00 02 00 00 10 04 c0 a8 00 01 00 00 0c 01 06 \\
00 00 12 02 00 00 00 00 14 02 09 e6 00 00 00 00 \\
00 00 00 08 00 03 00 00 00 88 00 00 00 00 00 04 \\
27 d0 df 00 ff ff 00 05 00 00 00 4c 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 \\
00 00 00 00 00 00 00 3c 00 00 00 02 00 01 00 00 \\
02 06 50 54 00 00 00 05 00 00 04 06 50 54 00 00 \\
00 06 00 00 06 02 08 00 00 00 08 02 00 00 00 00 \\
0a 01 00 00 00 0e 04 c0 a8 00 02 00 00 10 04 c0 \\
a8 00 01 00 00 0c 01 06 00 00 12 02 00 00 00 00 \\
14 02 09 e3 00 00 00 00 00 00 00 08 00 03 00 00 \\
00 88 00 00 00 00 00 03 2c d2 9c 00 ff ff 00 05 \\
00 00 00 4c 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 3c \\
00 00 00 02 00 01 00 00 02 06 50 54 00 00 00 05 \\
00 00 04 06 50 54 00 00 00 06 00 00 06 02 08 00 \\
00 00 08 02 00 00 00 00 0a 01 00 00 00 0e 04 c0 \\
a8 00 02 00 00 10 04 c0 a8 00 01 00 00 0c 01 06 \\
00 00 12 02 00 00 00 00 14 02 09 e4 00 00 00 00 \\
00 00 00 08 00 03 00 00 00 88 00 00 00 00 00 00 \\
0a 40 83 00 ff ff 00 05 00 00 00 4c 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 \\
00 00 00 00 00 00 00 3c 00 00 00 02 00 03 00 00 \\
02 06 50 54 00 00 00 06 00 00 04 06 50 54 00 00 \\
00 05 00 00 06 02 08 00 00 00 08 02 00 00 00 00 \\
0a 01 00 00 00 0e 04 c0 a8 00 01 00 00 10 04 c0 \\
a8 00 02 00 00 0c 01 06 00 00 12 02 09 e8 00 00 \\
14 02 00 00 00 00 00 00 00 00 00 08 00 01 00 00 \\
00 88 00 00 00 00 00 05 25 31 7c 00 ff ff 00 05 \\
00 00 00 4c 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 3c \\
00 00 00 02 00 01 00 00 02 06 50 54 00 00 00 05 \\
00 00 04 06 50 54 00 00 00 06 00 00 06 02 08 00 \\
00 00 08 02 00 00 00 00 0a 01 00 00 00 0e 04 c0 \\
a8 00 02 00 00 10 04 c0 a8 00 01 00 00 0c 01 06 \\
00 00 12 02 00 00 00 00 14 02 09 e2 00 00 00 00 \\
00 00 00 08 00 03 00 00 00 88 00 00 00 00 00 00 \\
04 c4 b4 00 ff ff 00 05 00 00 00 4c 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 \\
00 00 00 00 00 00 00 3c 00 00 00 02 00 01 00 00 \\
02 06 50 54 00 00 00 05 00 00 04 06 50 54 00 00 \\
00 06 00 00 06 02 08 00 00 00 08 02 00 00 00 00 \\
0a 01 00 00 00 0e 04 c0 a8 00 02 00 00 10 04 c0 \\
a8 00 01 00 00 0c 01 06 00 00 12 02 00 00 00 00 \\
14 02 09 e8 00 00 00 00 00 00 00 08 00 03 00 00 \\
00 88 00 00 00 00 00 01 39 38 70 00 ff ff 00 05 \\
00 00 00 4c 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 3c \\
00 00 00 02 00 03 00 00 02 06 50 54 00 00 00 06 \\
00 00 04 06 50 54 00 00 00 05 00 00 06 02 08 00 \\
00 00 08 02 00 00 00 00 0a 01 00 00 00 0e 04 c0 \\
a8 00 01 00 00 10 04 c0 a8 00 02 00 00 0c 01 06 \\
00 00 12 02 09 e6 00 00 14 02 00 00 00 00 00 00 \\
00 00 00 08 00 01 00 00 00 60 00 00 00 00 00 e4 \\
2e 7d db 00 80 00 00 00 00 00 00 14 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 01 20 08 00 00 00 00 \\
00 00 01 c8 00 01 00 04 00 00 00 7b 00 00 00 00 \\
ff ff 00 18 00 00 23 20 00 07 00 1f 00 01 00 04 \\
00 00 00 00 00 00 00 05 \\
00 30 01 00 00 00 0e 10 00 07 a1 20 80 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 64 00 00 00 00 00 00 19 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3287"
( $at_check_trace; ovs-ofctl ofp-print "\
01 11 08 18 00 00 00 04 ff ff 00 00 00 00 23 20 \
00 00 00 00 00 00 00 00 00 88 00 00 00 00 00 01 \
02 dc 6c 00 ff ff 00 05 00 00 00 4c 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 \
00 00 00 00 00 00 00 3c 00 00 00 02 00 03 00 00 \
02 06 50 54 00 00 00 06 00 00 04 06 50 54 00 00 \
00 05 00 00 06 02 08 00 00 00 08 02 00 00 00 00 \
0a 01 00 00 00 0e 04 c0 a8 00 01 00 00 10 04 c0 \
a8 00 02 00 00 0c 01 06 00 00 12 02 09 e7 00 00 \
14 02 00 00 00 00 00 00 00 00 00 08 00 01 00 00 \
00 88 00 00 00 00 00 03 32 11 62 00 ff ff 00 05 \
00 00 00 4c 00 03 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 3c \
00 00 00 02 00 03 00 00 02 06 50 54 00 00 00 06 \
00 00 04 06 50 54 00 00 00 05 00 00 06 02 08 00 \
00 00 08 02 00 00 00 00 0a 01 00 00 00 0e 04 c0 \
a8 00 01 00 00 10 04 c0 a8 00 02 00 00 0c 01 06 \
00 00 12 02 09 e4 00 00 14 02 00 00 00 00 00 00 \
00 00 00 08 00 01 00 00 00 88 00 00 00 00 00 02 \
33 f9 aa 00 ff ff 00 05 00 00 00 4c 00 05 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 \
00 00 00 00 00 00 00 3c 00 00 00 02 00 01 00 00 \
02 06 50 54 00 00 00 05 00 00 04 06 50 54 00 00 \
00 06 00 00 06 02 08 00 00 00 08 02 00 00 00 00 \
0a 01 00 00 00 0e 04 c0 a8 00 02 00 00 10 04 c0 \
a8 00 01 00 00 0c 01 06 00 00 12 02 00 00 00 00 \
14 02 09 e5 00 00 00 00 00 00 00 08 00 03 00 00 \
00 88 00 00 00 00 00 04 2d 0f a5 00 ff ff 00 05 \
00 00 00 4c 00 01 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 3c \
00 00 00 02 00 03 00 00 02 06 50 54 00 00 00 06 \
00 00 04 06 50 54 00 00 00 05 00 00 06 02 08 00 \
00 00 08 02 00 00 00 00 0a 01 00 00 00 0e 04 c0 \
a8 00 01 00 00 10 04 c0 a8 00 02 00 00 0c 01 06 \
00 00 12 02 09 e3 00 00 14 02 00 00 00 00 00 00 \
00 00 00 08 00 01 00 00 00 88 00 00 00 00 00 02 \
34 73 bc 00 ff ff 00 05 00 0a 00 4c 00 03 00 03 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 \
00 00 00 00 00 00 00 3c 00 00 00 02 00 03 00 00 \
02 06 50 54 00 00 00 06 00 00 04 06 50 54 00 00 \
00 05 00 00 06 02 08 00 00 00 08 02 00 00 00 00 \
0a 01 00 00 00 0e 04 c0 a8 00 01 00 00 10 04 c0 \
a8 00 02 00 00 0c 01 06 00 00 12 02 09 e5 00 00 \
14 02 00 00 00 00 00 00 00 00 00 08 00 01 00 00 \
00 88 00 00 00 00 00 05 28 0d e8 00 ff ff 00 05 \
00 00 00 4c 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 3c \
00 00 00 02 00 03 00 00 02 06 50 54 00 00 00 06 \
00 00 04 06 50 54 00 00 00 05 00 00 06 02 08 00 \
00 00 08 02 00 00 00 00 0a 01 00 00 00 0e 04 c0 \
a8 00 01 00 00 10 04 c0 a8 00 02 00 00 0c 01 06 \
00 00 12 02 09 e2 00 00 14 02 00 00 00 00 00 00 \
00 00 00 08 00 01 00 00 00 88 00 00 00 00 00 01 \
02 62 5a 00 ff ff 00 05 00 00 00 4c 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 \
00 00 00 00 00 00 00 3c 00 00 00 02 00 01 00 00 \
02 06 50 54 00 00 00 05 00 00 04 06 50 54 00 00 \
00 06 00 00 06 02 08 00 00 00 08 02 00 00 00 00 \
0a 01 00 00 00 0e 04 c0 a8 00 02 00 00 10 04 c0 \
a8 00 01 00 00 0c 01 06 00 00 12 02 00 00 00 00 \
14 02 09 e7 00 00 00 00 00 00 00 08 00 03 00 00 \
00 88 00 00 00 00 00 01 38 be 5e 00 ff ff 00 05 \
00 00 00 4c 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 3c \
00 00 00 02 00 01 00 00 02 06 50 54 00 00 00 05 \
00 00 04 06 50 54 00 00 00 06 00 00 06 02 08 00 \
00 00 08 02 00 00 00 00 0a 01 00 00 00 0e 04 c0 \
a8 00 02 00 00 10 04 c0 a8 00 01 00 00 0c 01 06 \
00 00 12 02 00 00 00 00 14 02 09 e6 00 00 00 00 \
00 00 00 08 00 03 00 00 00 88 00 00 00 00 00 04 \
27 d0 df 00 ff ff 00 05 00 00 00 4c 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 \
00 00 00 00 00 00 00 3c 00 00 00 02 00 01 00 00 \
02 06 50 54 00 00 00 05 00 00 04 06 50 54 00 00 \
00 06 00 00 06 02 08 00 00 00 08 02 00 00 00 00 \
0a 01 00 00 00 0e 04 c0 a8 00 02 00 00 10 04 c0 \
a8 00 01 00 00 0c 01 06 00 00 12 02 00 00 00 00 \
14 02 09 e3 00 00 00 00 00 00 00 08 00 03 00 00 \
00 88 00 00 00 00 00 03 2c d2 9c 00 ff ff 00 05 \
00 00 00 4c 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 3c \
00 00 00 02 00 01 00 00 02 06 50 54 00 00 00 05 \
00 00 04 06 50 54 00 00 00 06 00 00 06 02 08 00 \
00 00 08 02 00 00 00 00 0a 01 00 00 00 0e 04 c0 \
a8 00 02 00 00 10 04 c0 a8 00 01 00 00 0c 01 06 \
00 00 12 02 00 00 00 00 14 02 09 e4 00 00 00 00 \
00 00 00 08 00 03 00 00 00 88 00 00 00 00 00 00 \
0a 40 83 00 ff ff 00 05 00 00 00 4c 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 \
00 00 00 00 00 00 00 3c 00 00 00 02 00 03 00 00 \
02 06 50 54 00 00 00 06 00 00 04 06 50 54 00 00 \
00 05 00 00 06 02 08 00 00 00 08 02 00 00 00 00 \
0a 01 00 00 00 0e 04 c0 a8 00 01 00 00 10 04 c0 \
a8 00 02 00 00 0c 01 06 00 00 12 02 09 e8 00 00 \
14 02 00 00 00 00 00 00 00 00 00 08 00 01 00 00 \
00 88 00 00 00 00 00 05 25 31 7c 00 ff ff 00 05 \
00 00 00 4c 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 3c \
00 00 00 02 00 01 00 00 02 06 50 54 00 00 00 05 \
00 00 04 06 50 54 00 00 00 06 00 00 06 02 08 00 \
00 00 08 02 00 00 00 00 0a 01 00 00 00 0e 04 c0 \
a8 00 02 00 00 10 04 c0 a8 00 01 00 00 0c 01 06 \
00 00 12 02 00 00 00 00 14 02 09 e2 00 00 00 00 \
00 00 00 08 00 03 00 00 00 88 00 00 00 00 00 00 \
04 c4 b4 00 ff ff 00 05 00 00 00 4c 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 \
00 00 00 00 00 00 00 3c 00 00 00 02 00 01 00 00 \
02 06 50 54 00 00 00 05 00 00 04 06 50 54 00 00 \
00 06 00 00 06 02 08 00 00 00 08 02 00 00 00 00 \
0a 01 00 00 00 0e 04 c0 a8 00 02 00 00 10 04 c0 \
a8 00 01 00 00 0c 01 06 00 00 12 02 00 00 00 00 \
14 02 09 e8 00 00 00 00 00 00 00 08 00 03 00 00 \
00 88 00 00 00 00 00 01 39 38 70 00 ff ff 00 05 \
00 00 00 4c 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 3c \
00 00 00 02 00 03 00 00 02 06 50 54 00 00 00 06 \
00 00 04 06 50 54 00 00 00 05 00 00 06 02 08 00 \
00 00 08 02 00 00 00 00 0a 01 00 00 00 0e 04 c0 \
a8 00 01 00 00 10 04 c0 a8 00 02 00 00 0c 01 06 \
00 00 12 02 09 e6 00 00 14 02 00 00 00 00 00 00 \
00 00 00 08 00 01 00 00 00 60 00 00 00 00 00 e4 \
2e 7d db 00 80 00 00 00 00 00 00 14 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 01 20 08 00 00 00 00 \
00 00 01 c8 00 01 00 04 00 00 00 7b 00 00 00 00 \
ff ff 00 18 00 00 23 20 00 07 00 1f 00 01 00 04 \
00 00 00 00 00 00 00 05 \
00 30 01 00 00 00 0e 10 00 07 a1 20 80 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 64 00 00 00 00 00 00 19 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW reply (xid=0x4):
 cookie=0x0, duration=1.048s, table=0, n_packets=1, n_bytes=60, idle_timeout=5, priority=65535,tcp,in_port=3,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:06,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,tp_src=2535,tp_dst=0 actions=output:1
 cookie=0x0, duration=3.840s, table=0, n_packets=1, n_bytes=60, idle_timeout=5, idle_age=2, priority=65535,tcp,in_port=3,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:06,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,tp_src=2532,tp_dst=0 actions=output:1
 cookie=0x0, duration=2.872s, table=0, n_packets=1, n_bytes=60, idle_timeout=5, idle_age=4, priority=65535,tcp,in_port=1,vlan_tci=0x0000,dl_src=50:54:00:00:00:06,dl_dst=50:54:00:00:00:05,nw_src=192.168.0.2,nw_dst=192.168.0.1,nw_tos=0,tp_src=0,tp_dst=2533 actions=output:3
 cookie=0x0, duration=4.756s, table=0, n_packets=1, n_bytes=60, idle_timeout=5, idle_age=0, priority=65535,tcp,in_port=3,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:06,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,tp_src=2531,tp_dst=0 actions=output:1
 cookie=0x0, duration=2.880s, table=0, n_packets=1, n_bytes=60, idle_timeout=5, hard_timeout=10, idle_age=2, priority=65535,tcp,in_port=3,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:06,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,tp_src=2533,tp_dst=0 actions=output:1
 cookie=0x0, duration=5.672s, table=0, n_packets=1, n_bytes=60, idle_timeout=5, priority=65535,tcp,in_port=3,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:06,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,tp_src=2530,tp_dst=0 actions=output:1
 cookie=0x0, duration=1.040s, table=0, n_packets=1, n_bytes=60, idle_timeout=5, priority=65535,tcp,in_port=1,vlan_tci=0x0000,dl_src=50:54:00:00:00:06,dl_dst=50:54:00:00:00:05,nw_src=192.168.0.2,nw_dst=192.168.0.1,nw_tos=0,tp_src=0,tp_dst=2535 actions=output:3
 cookie=0x0, duration=1.952s, table=0, n_packets=1, n_bytes=60, idle_timeout=5, priority=65535,tcp,in_port=1,vlan_tci=0x0000,dl_src=50:54:00:00:00:06,dl_dst=50:54:00:00:00:05,nw_src=192.168.0.2,nw_dst=192.168.0.1,nw_tos=0,tp_src=0,tp_dst=2534 actions=output:3
 cookie=0x0, duration=4.668s, table=0, n_packets=1, n_bytes=60, idle_timeout=5, priority=65535,tcp,in_port=1,vlan_tci=0x0000,dl_src=50:54:00:00:00:06,dl_dst=50:54:00:00:00:05,nw_src=192.168.0.2,nw_dst=192.168.0.1,nw_tos=0,tp_src=0,tp_dst=2531 actions=output:3
 cookie=0x0, duration=3.752s, table=0, n_packets=1, n_bytes=60, idle_timeout=5, priority=65535,tcp,in_port=1,vlan_tci=0x0000,dl_src=50:54:00:00:00:06,dl_dst=50:54:00:00:00:05,nw_src=192.168.0.2,nw_dst=192.168.0.1,nw_tos=0,tp_src=0,tp_dst=2532 actions=output:3
 cookie=0x0, duration=0.172s, table=0, n_packets=1, n_bytes=60, idle_timeout=5, priority=65535,tcp,in_port=3,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:06,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,tp_src=2536,tp_dst=0 actions=output:1
 cookie=0x0, duration=5.624s, table=0, n_packets=1, n_bytes=60, idle_timeout=5, priority=65535,tcp,in_port=1,vlan_tci=0x0000,dl_src=50:54:00:00:00:06,dl_dst=50:54:00:00:00:05,nw_src=192.168.0.2,nw_dst=192.168.0.1,nw_tos=0,tp_src=0,tp_dst=2530 actions=output:3
 cookie=0x0, duration=0.080s, table=0, n_packets=1, n_bytes=60, idle_timeout=5, priority=65535,tcp,in_port=1,vlan_tci=0x0000,dl_src=50:54:00:00:00:06,dl_dst=50:54:00:00:00:05,nw_src=192.168.0.2,nw_dst=192.168.0.1,nw_tos=0,tp_src=0,tp_dst=2536 actions=output:3
 cookie=0x0, duration=1.960s, table=0, n_packets=1, n_bytes=60, idle_timeout=5, priority=65535,tcp,in_port=3,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:06,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,tp_src=2534,tp_dst=0 actions=output:1
 cookie=0x0, duration=228.780s, table=0, n_packets=0, n_bytes=0, reg0=0x7b,tun_id=0x1c8 actions=load:0x5->NXM_NX_REG0[]
 cookie=0x0, duration=3600.0005s, table=1, n_packets=100, n_bytes=6400, actions=drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3287"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_353
#AT_START_354
at_fn_group_banner 354 'ofp-print.at:3439' \
  "NXST_AGGREGATE request" "                         " 18
at_xfail=no
(
  $as_echo "354. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3441: ovs-ofctl ofp-print \"\\
01 10 00 20 00 00 00 04 ff ff 00 00 00 00 23 20 \\
00 00 00 01 00 00 00 00 ff ff 00 00 ff 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3441"
( $at_check_trace; ovs-ofctl ofp-print "\
01 10 00 20 00 00 00 04 ff ff 00 00 00 00 23 20 \
00 00 00 01 00 00 00 00 ff ff 00 00 ff 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_AGGREGATE request (xid=0x4):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3441"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_354
#AT_START_355
at_fn_group_banner 355 'ofp-print.at:3449' \
  "NXST_AGGREGATE reply" "                           " 18
at_xfail=no
(
  $as_echo "355. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3451: ovs-ofctl ofp-print \"\\
01 11 00 30 00 00 00 04 ff ff 00 00 00 00 23 20 \\
00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 07 \\
00 00 00 00 00 00 01 a4 00 00 00 07 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3451"
( $at_check_trace; ovs-ofctl ofp-print "\
01 11 00 30 00 00 00 04 ff ff 00 00 00 00 23 20 \
00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 07 \
00 00 00 00 00 00 01 a4 00 00 00 07 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_AGGREGATE reply (xid=0x4): packet_count=7 byte_count=420 flow_count=7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3451"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_355
#AT_START_356
at_fn_group_banner 356 'ofp-print.at:3460' \
  "NXST_FLOW_MONITOR request" "                      " 18
at_xfail=no
(
  $as_echo "356. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3462: ovs-ofctl ofp-print \"\\
01 10 00 40 00 00 00 04 ff ff 00 00 00 00 23 20 00 00 00 02 00 00 00 00 \\
00 00 40 00 00 3f ff fe 00 00 01 00 00 00 00 00 \\
00 00 20 00 00 04 ff ff 00 06 02 00 00 00 00 00 00 00 00 02 00 01 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3462"
( $at_check_trace; ovs-ofctl ofp-print "\
01 10 00 40 00 00 00 04 ff ff 00 00 00 00 23 20 00 00 00 02 00 00 00 00 \
00 00 40 00 00 3f ff fe 00 00 01 00 00 00 00 00 \
00 00 20 00 00 04 ff ff 00 06 02 00 00 00 00 00 00 00 00 02 00 01 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW_MONITOR request (xid=0x4):
 id=16384 flags=initial,add,delete,modify,actions,own out_port=LOCAL table=1
 id=8192 flags=delete table=2 in_port=1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3462"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_356
#AT_START_357
at_fn_group_banner 357 'ofp-print.at:3473' \
  "NXST_FLOW_MONITOR reply" "                        " 18
at_xfail=no
(
  $as_echo "357. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3475: ovs-ofctl ofp-print \"\\
01 11 00 40 00 00 00 04 ff ff 00 00 00 00 23 20 00 00 00 02 00 00 00 00 \\
00 20 00 01 00 05 80 00 00 05 00 10 00 06 01 00 12 34 56 78 9a bc de f0 \\
00 00 00 02 00 01 00 00 \\
00 08 00 03 00 01 86 a0 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3475"
( $at_check_trace; ovs-ofctl ofp-print "\
01 11 00 40 00 00 00 04 ff ff 00 00 00 00 23 20 00 00 00 02 00 00 00 00 \
00 20 00 01 00 05 80 00 00 05 00 10 00 06 01 00 12 34 56 78 9a bc de f0 \
00 00 00 02 00 01 00 00 \
00 08 00 03 00 01 86 a0 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW_MONITOR reply (xid=0x4):
 event=DELETED reason=eviction table=1 idle_timeout=5 hard_timeout=16 cookie=0x123456789abcdef0 in_port=1
 event=ABBREV xid=0x186a0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3475"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_357
#AT_START_358
at_fn_group_banner 358 'ofp-print.at:3488' \
  "OFPT_BUNDLE_CONTROL - atomic OPEN_REQUEST" "      " 18
at_xfail=no
(
  $as_echo "358. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3490: ovs-ofctl ofp-print \"\\
05 21 00 10 00 00 00 00 \\
00 00 00 01 00 00 00 01 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3490"
( $at_check_trace; ovs-ofctl ofp-print "\
05 21 00 10 00 00 00 00 \
00 00 00 01 00 00 00 01 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_BUNDLE_CONTROL (OF1.4) (xid=0x0):
 bundle_id=0x1 type=OPEN_REQUEST flags=atomic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3490"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_358
#AT_START_359
at_fn_group_banner 359 'ofp-print.at:3499' \
  "OFPT_BUNDLE_CONTROL - ordered OPEN_REQUEST" "     " 18
at_xfail=no
(
  $as_echo "359. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3501: ovs-ofctl ofp-print \"\\
05 21 00 10 00 00 00 00 \\
00 00 00 01 00 00 00 02 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3501"
( $at_check_trace; ovs-ofctl ofp-print "\
05 21 00 10 00 00 00 00 \
00 00 00 01 00 00 00 02 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_BUNDLE_CONTROL (OF1.4) (xid=0x0):
 bundle_id=0x1 type=OPEN_REQUEST flags=ordered
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3501"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_359
#AT_START_360
at_fn_group_banner 360 'ofp-print.at:3510' \
  "OFPT_BUNDLE_CONTROL - atomic ordered OPEN_REQUEST" "" 18
at_xfail=no
(
  $as_echo "360. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3512: ovs-ofctl ofp-print \"\\
05 21 00 10 00 00 00 00 \\
00 00 00 01 00 00 00 03 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3512"
( $at_check_trace; ovs-ofctl ofp-print "\
05 21 00 10 00 00 00 00 \
00 00 00 01 00 00 00 03 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_BUNDLE_CONTROL (OF1.4) (xid=0x0):
 bundle_id=0x1 type=OPEN_REQUEST flags=atomic ordered
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3512"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_360
#AT_START_361
at_fn_group_banner 361 'ofp-print.at:3521' \
  "OFPT_BUNDLE_CONTROL - OPEN_REPLY" "               " 18
at_xfail=no
(
  $as_echo "361. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3523: ovs-ofctl ofp-print \"\\
05 21 00 10 00 00 00 00 \\
00 00 00 01 00 01 00 01 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3523"
( $at_check_trace; ovs-ofctl ofp-print "\
05 21 00 10 00 00 00 00 \
00 00 00 01 00 01 00 01 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_BUNDLE_CONTROL (OF1.4) (xid=0x0):
 bundle_id=0x1 type=OPEN_REPLY flags=atomic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3523"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_361
#AT_START_362
at_fn_group_banner 362 'ofp-print.at:3532' \
  "OFPT_BUNDLE_CONTROL - CLOSE_REQUEST" "            " 18
at_xfail=no
(
  $as_echo "362. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3534: ovs-ofctl ofp-print \"\\
05 21 00 10 00 00 00 00 \\
00 00 00 01 00 02 00 01 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3534"
( $at_check_trace; ovs-ofctl ofp-print "\
05 21 00 10 00 00 00 00 \
00 00 00 01 00 02 00 01 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_BUNDLE_CONTROL (OF1.4) (xid=0x0):
 bundle_id=0x1 type=CLOSE_REQUEST flags=atomic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3534"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_362
#AT_START_363
at_fn_group_banner 363 'ofp-print.at:3543' \
  "OFPT_BUNDLE_CONTROL - CLOSE_REPLY" "              " 18
at_xfail=no
(
  $as_echo "363. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3545: ovs-ofctl ofp-print \"\\
05 21 00 10 00 00 00 00 \\
00 00 00 01 00 03 00 01 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3545"
( $at_check_trace; ovs-ofctl ofp-print "\
05 21 00 10 00 00 00 00 \
00 00 00 01 00 03 00 01 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_BUNDLE_CONTROL (OF1.4) (xid=0x0):
 bundle_id=0x1 type=CLOSE_REPLY flags=atomic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3545"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_363
#AT_START_364
at_fn_group_banner 364 'ofp-print.at:3554' \
  "OFPT_BUNDLE_CONTROL - COMMIT_REQUEST" "           " 18
at_xfail=no
(
  $as_echo "364. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3556: ovs-ofctl ofp-print \"\\
05 21 00 10 00 00 00 00 \\
00 00 00 01 00 04 00 01 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3556"
( $at_check_trace; ovs-ofctl ofp-print "\
05 21 00 10 00 00 00 00 \
00 00 00 01 00 04 00 01 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_BUNDLE_CONTROL (OF1.4) (xid=0x0):
 bundle_id=0x1 type=COMMIT_REQUEST flags=atomic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3556"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_364
#AT_START_365
at_fn_group_banner 365 'ofp-print.at:3565' \
  "OFPT_BUNDLE_CONTROL - COMMIT_REPLY" "             " 18
at_xfail=no
(
  $as_echo "365. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3567: ovs-ofctl ofp-print \"\\
05 21 00 10 00 00 00 00 \\
00 00 00 01 00 05 00 01 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3567"
( $at_check_trace; ovs-ofctl ofp-print "\
05 21 00 10 00 00 00 00 \
00 00 00 01 00 05 00 01 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_BUNDLE_CONTROL (OF1.4) (xid=0x0):
 bundle_id=0x1 type=COMMIT_REPLY flags=atomic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3567"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_365
#AT_START_366
at_fn_group_banner 366 'ofp-print.at:3576' \
  "OFPT_BUNDLE_CONTROL - DISCARD_REQUEST" "          " 18
at_xfail=no
(
  $as_echo "366. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3578: ovs-ofctl ofp-print \"\\
05 21 00 10 00 00 00 00 \\
00 00 00 01 00 06 00 01 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3578"
( $at_check_trace; ovs-ofctl ofp-print "\
05 21 00 10 00 00 00 00 \
00 00 00 01 00 06 00 01 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_BUNDLE_CONTROL (OF1.4) (xid=0x0):
 bundle_id=0x1 type=DISCARD_REQUEST flags=atomic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3578"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_366
#AT_START_367
at_fn_group_banner 367 'ofp-print.at:3587' \
  "OFPT_BUNDLE_CONTROL - DISCARD_REPLY" "            " 18
at_xfail=no
(
  $as_echo "367. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3589: ovs-ofctl ofp-print \"\\
05 21 00 10 00 00 00 00 \\
00 00 00 01 00 07 00 01 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3589"
( $at_check_trace; ovs-ofctl ofp-print "\
05 21 00 10 00 00 00 00 \
00 00 00 01 00 07 00 01 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_BUNDLE_CONTROL (OF1.4) (xid=0x0):
 bundle_id=0x1 type=DISCARD_REPLY flags=atomic
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3589"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_367
#AT_START_368
at_fn_group_banner 368 'ofp-print.at:3598' \
  "OFPT_BUNDLE_ADD_MESSAGE - verify xid" "           " 18
at_xfail=no
(
  $as_echo "368. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3600: ovs-ofctl ofp-print \"\\
05 22 00 20 00 00 00 00 00 00 00 01 00 00 00 01 \\
05 00 00 08 00 00 00 01 00 00 00 00 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3600"
( $at_check_trace; ovs-ofctl ofp-print "\
05 22 00 20 00 00 00 00 00 00 00 01 00 00 00 01 \
05 00 00 08 00 00 00 01 00 00 00 00 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_BUNDLE_ADD_MESSAGE (OF1.4) (xid=0x0): ***decode error: OFPBFC_MSG_BAD_XID***
00000000  05 22 00 20 00 00 00 00-00 00 00 01 00 00 00 01 |.\". ............|
00000010  05 00 00 08 00 00 00 01-00 00 00 00 00 00 00 00 |................|
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3600"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_368
#AT_START_369
at_fn_group_banner 369 'ofp-print.at:3610' \
  "OFPT_BUNDLE_ADD_MESSAGE - reject OFPT_HELLO" "    " 18
at_xfail=no
(
  $as_echo "369. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3612: ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print \"\\
05 22 00 20 00 00 00 00 00 00 00 01 00 00 00 01 \\
05 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3612"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' ofp-print "\
05 22 00 20 00 00 00 00 00 00 00 01 00 00 00 01 \
05 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ofp_util|WARN|OFPT_HELLO message not allowed inside OFPT14_BUNDLE_ADD_MESSAGE
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_BUNDLE_ADD_MESSAGE (OF1.4) (xid=0x0): ***decode error: OFPBFC_MSG_UNSUP***
00000000  05 22 00 20 00 00 00 00-00 00 00 01 00 00 00 01 |.\". ............|
00000010  05 00 00 10 00 00 00 00-00 00 00 00 00 00 00 00 |................|
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3612"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_369
#AT_START_370
at_fn_group_banner 370 'ofp-print.at:3624' \
  "OFPT_BUNDLE_ADD_MESSAGE - FLOW_MOD" "             " 18
at_xfail=no
(
  $as_echo "370. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3626: ovs-ofctl ofp-print \"\\
05 22 00 a0 00 00 00 02 00 00 00 01 00 00 00 01 \\
05 0e 00 90 00 00 00 02 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 01 00 00 00 00 00 ff ff \\
ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 \\
00 01 00 42 80 00 00 04 00 00 00 01 80 00 08 06 \\
50 54 00 00 00 06 80 00 06 06 50 54 00 00 00 05 \\
80 00 0a 02 08 06 80 00 0c 02 00 00 80 00 2a 02 \\
00 02 80 00 2c 04 c0 a8 00 02 80 00 2e 04 c0 a8 \\
00 01 00 00 00 00 00 00 00 04 00 18 00 00 00 00 \\
00 00 00 10 00 00 00 03 00 00 00 00 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3626"
( $at_check_trace; ovs-ofctl ofp-print "\
05 22 00 a0 00 00 00 02 00 00 00 01 00 00 00 01 \
05 0e 00 90 00 00 00 02 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 01 00 00 00 00 00 ff ff \
ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 \
00 01 00 42 80 00 00 04 00 00 00 01 80 00 08 06 \
50 54 00 00 00 06 80 00 06 06 50 54 00 00 00 05 \
80 00 0a 02 08 06 80 00 0c 02 00 00 80 00 2a 02 \
00 02 80 00 2c 04 c0 a8 00 02 80 00 2e 04 c0 a8 \
00 01 00 00 00 00 00 00 00 04 00 18 00 00 00 00 \
00 00 00 10 00 00 00 03 00 00 00 00 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_BUNDLE_ADD_MESSAGE (OF1.4) (xid=0x2):
 bundle_id=0x1 flags=atomic
OFPT_FLOW_MOD (OF1.4) (xid=0x2): ADD table:1 priority=65535,arp,in_port=1,vlan_tci=0x0000/0x1fff,dl_src=50:54:00:00:00:06,dl_dst=50:54:00:00:00:05,arp_spa=192.168.0.2,arp_tpa=192.168.0.1,arp_op=2 actions=output:3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3626"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_370
#AT_START_371
at_fn_group_banner 371 'ofp-print.at:3644' \
  "OFPT_BUNDLE_ADD_MESSAGE - PORT_MOD" "             " 18
at_xfail=no
(
  $as_echo "371. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3646: ovs-ofctl ofp-print \"\\
05 22 00 38 00 00 00 03 00 00 00 01 00 00 00 01 \\
05 10 00 28 00 00 00 03 00 00 00 03 00 00 00 00 \\
50 54 00 00 00 01 00 00 00 00 00 01 00 00 00 01 \\
00 00 00 08 00 00 00 01
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3646"
( $at_check_trace; ovs-ofctl ofp-print "\
05 22 00 38 00 00 00 03 00 00 00 01 00 00 00 01 \
05 10 00 28 00 00 00 03 00 00 00 03 00 00 00 00 \
50 54 00 00 00 01 00 00 00 00 00 01 00 00 00 01 \
00 00 00 08 00 00 00 01
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_BUNDLE_ADD_MESSAGE (OF1.4) (xid=0x3):
 bundle_id=0x1 flags=atomic
OFPT_PORT_MOD (OF1.4) (xid=0x3): port: 3: addr:50:54:00:00:00:01
     config: PORT_DOWN
     mask:   PORT_DOWN
     advertise: 10MB-HD
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3646"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_371
#AT_START_372
at_fn_group_banner 372 'ofp-print.at:3661' \
  "OFPT_BUNDLE_ADD_MESSAGE - GROUP_MOD" "            " 18
at_xfail=no
(
  $as_echo "372. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3663: ovs-ofctl ofp-print \"\\
06 22 00 c8 00 00 00 03 00 00 00 01 00 00 00 01 \\
06 0f 00 b8 00 00 00 03 00 00 01 00 87 65 43 21 \\
00 78 00 00 ff ff ff ff 00 28 00 10 00 00 00 00 \\
00 00 00 10 00 00 00 01 00 00 00 00 00 00 00 00 \\
00 00 00 08 00 64 00 00 00 01 00 08 00 00 00 01 \\
00 28 00 10 00 00 00 01 00 00 00 10 00 00 00 02 \\
00 00 00 00 00 00 00 00 00 00 00 08 00 c8 00 00 \\
00 01 00 08 00 00 00 02 00 28 00 10 00 00 00 02 \\
00 00 00 10 00 00 00 03 00 00 00 00 00 00 00 00 \\
00 00 00 08 00 c8 00 00 00 01 00 08 00 00 00 03 \\
ff ff 00 28 00 00 15 40 00 00 00 01 00 00 00 00 \\
68 61 73 68 00 00 00 00 00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 07 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3663"
( $at_check_trace; ovs-ofctl ofp-print "\
06 22 00 c8 00 00 00 03 00 00 00 01 00 00 00 01 \
06 0f 00 b8 00 00 00 03 00 00 01 00 87 65 43 21 \
00 78 00 00 ff ff ff ff 00 28 00 10 00 00 00 00 \
00 00 00 10 00 00 00 01 00 00 00 00 00 00 00 00 \
00 00 00 08 00 64 00 00 00 01 00 08 00 00 00 01 \
00 28 00 10 00 00 00 01 00 00 00 10 00 00 00 02 \
00 00 00 00 00 00 00 00 00 00 00 08 00 c8 00 00 \
00 01 00 08 00 00 00 02 00 28 00 10 00 00 00 02 \
00 00 00 10 00 00 00 03 00 00 00 00 00 00 00 00 \
00 00 00 08 00 c8 00 00 00 01 00 08 00 00 00 03 \
ff ff 00 28 00 00 15 40 00 00 00 01 00 00 00 00 \
68 61 73 68 00 00 00 00 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 07 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_BUNDLE_ADD_MESSAGE (OF1.5) (xid=0x3):
 bundle_id=0x1 flags=atomic
OFPT_GROUP_MOD (OF1.5) (xid=0x3):
 ADD group_id=2271560481,type=select,selection_method=hash,selection_method_param=7,bucket=bucket_id:0,weight:100,watch_port:1,actions=output:1,bucket=bucket_id:1,weight:200,watch_port:2,actions=output:2,bucket=bucket_id:2,weight:200,watch_port:3,actions=output:3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3663"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_372
#AT_START_373
at_fn_group_banner 373 'ofp-print.at:3685' \
  "OFPT_BUNDLE_ADD_MESSAGE - PACKET_OUT" "           " 18
at_xfail=no
(
  $as_echo "373. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3687: ovs-ofctl ofp-print \"\\
05 22 00 74 00 00 00 03 00 00 00 01 00 00 00 01 \\
05 0d 00 64 00 00 00 03 ff ff ff ff ff ff ff fe \\
00 10 00 00 00 00 00 00 00 00 00 10 ff ff ff fb \\
05 dc 00 00 00 00 00 00 50 54 00 00 00 05 50 54 \\
00 00 00 06 08 00 45 00 00 28 00 00 40 00 40 06 \\
b9 7c c0 a8 00 02 c0 a8 00 01 00 00 2b 60 00 00 \\
00 00 6a 4f 2b 58 50 14 00 00 6d 75 00 00 00 00 \\
00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3687"
( $at_check_trace; ovs-ofctl ofp-print "\
05 22 00 74 00 00 00 03 00 00 00 01 00 00 00 01 \
05 0d 00 64 00 00 00 03 ff ff ff ff ff ff ff fe \
00 10 00 00 00 00 00 00 00 00 00 10 ff ff ff fb \
05 dc 00 00 00 00 00 00 50 54 00 00 00 05 50 54 \
00 00 00 06 08 00 45 00 00 28 00 00 40 00 40 06 \
b9 7c c0 a8 00 02 c0 a8 00 01 00 00 2b 60 00 00 \
00 00 6a 4f 2b 58 50 14 00 00 6d 75 00 00 00 00 \
00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_BUNDLE_ADD_MESSAGE (OF1.4) (xid=0x3):
 bundle_id=0x1 flags=atomic
OFPT_PACKET_OUT (OF1.4) (xid=0x3): in_port=LOCAL actions=FLOOD data_len=60
tcp,vlan_tci=0x0000,dl_src=50:54:00:00:00:06,dl_dst=50:54:00:00:00:05,nw_src=192.168.0.2,nw_dst=192.168.0.1,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=0,tp_dst=11104,tcp_flags=rst|ack tcp_csum:6d75
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3687"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_373
#AT_START_374
at_fn_group_banner 374 'ofp-print.at:3704' \
  "NXST_IPFIX_BRIDGE - request" "                    " 18
at_xfail=no
(
  $as_echo "374. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3706: ovs-ofctl ofp-print \"\\
01 10 00 18 00 00 00 02 \\
ff ff 00 00 00 00 23 20 00 00 00 03 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3706"
( $at_check_trace; ovs-ofctl ofp-print "\
01 10 00 18 00 00 00 02 \
ff ff 00 00 00 00 23 20 00 00 00 03 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_IPFIX_BRIDGE request (xid=0x2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3706"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_374
#AT_START_375
at_fn_group_banner 375 'ofp-print.at:3714' \
  "NXST_IPFIX_BRIDGE - reply" "                      " 18
at_xfail=no
(
  $as_echo "375. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3716: ovs-ofctl ofp-print \"\\
01 11 00 70 00 00 00 02 \\
ff ff 00 00 00 00 23 20 00 00 00 03 00 00 00 00\\
00 00 00 00 00 00 00 01 \\
00 00 00 00 00 00 00 10 \\
00 00 00 00 00 00 00 78 \\
00 00 00 00 00 00 00 f0 \\
00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 a0 \\
00 00 00 00 00 00 00 02 \\
00 00 00 00 00 00 00 03 \\
00 00 00 00 00 00 00 04 \\
00 00 00 00 00 00 00 05 \\
00 00 00 00 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3716"
( $at_check_trace; ovs-ofctl ofp-print "\
01 11 00 70 00 00 00 02 \
ff ff 00 00 00 00 23 20 00 00 00 03 00 00 00 00\
00 00 00 00 00 00 00 01 \
00 00 00 00 00 00 00 10 \
00 00 00 00 00 00 00 78 \
00 00 00 00 00 00 00 f0 \
00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 a0 \
00 00 00 00 00 00 00 02 \
00 00 00 00 00 00 00 03 \
00 00 00 00 00 00 00 04 \
00 00 00 00 00 00 00 05 \
00 00 00 00 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_IPFIX_BRIDGE reply (xid=0x2):
  bridge ipfix: flows=1, current flows=16, sampled pkts=120, ipv4 ok=240, ipv6 ok=0, tx pkts=4
                pkts errs=160, ipv4 errs=2, ipv6 errs=3, tx errs=5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3716"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_375
#AT_START_376
at_fn_group_banner 376 'ofp-print.at:3737' \
  "NXST_IPFIX_FLOW - request" "                      " 18
at_xfail=no
(
  $as_echo "376. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3739: ovs-ofctl ofp-print \"\\
01 10 00 18 00 00 00 02 \\
ff ff 00 00 00 00 23 20 00 00 00 04 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3739"
( $at_check_trace; ovs-ofctl ofp-print "\
01 10 00 18 00 00 00 02 \
ff ff 00 00 00 00 23 20 00 00 00 04 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_IPFIX_FLOW request (xid=0x2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3739"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_376
#AT_START_377
at_fn_group_banner 377 'ofp-print.at:3747' \
  "NXST_IPFIX_FLOW - reply" "                        " 18
at_xfail=no
(
  $as_echo "377. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3749: ovs-ofctl ofp-print \"\\
01 11 00 C8 00 00 00 02 \\
ff ff 00 00 00 00 23 20 00 00 00 04 00 00 00 00\\
00 00 00 00 00 00 00 01 \\
00 00 00 00 00 00 00 10 \\
00 00 00 00 00 00 00 78 \\
00 00 00 00 00 00 00 f0 \\
00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 a0 \\
00 00 00 10 00 00 00 02 \\
00 00 00 00 00 00 00 03 \\
00 00 00 00 00 00 00 04 \\
00 00 00 00 00 00 00 05 \\
00 00 00 01 00 00 00 00 \\
00 00 00 00 00 00 00 01 \\
00 00 00 00 00 00 00 10 \\
00 00 00 00 00 00 00 78 \\
00 00 00 00 00 00 00 f0 \\
00 00 00 00 00 00 00 00 \\
00 00 00 00 00 00 00 a0 \\
00 00 00 10 00 00 00 02 \\
00 00 00 00 00 00 00 03 \\
00 00 00 00 00 00 00 04 \\
00 00 00 00 00 00 00 05 \\
00 00 00 02 00 00 00 00 \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3749"
( $at_check_trace; ovs-ofctl ofp-print "\
01 11 00 C8 00 00 00 02 \
ff ff 00 00 00 00 23 20 00 00 00 04 00 00 00 00\
00 00 00 00 00 00 00 01 \
00 00 00 00 00 00 00 10 \
00 00 00 00 00 00 00 78 \
00 00 00 00 00 00 00 f0 \
00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 a0 \
00 00 00 10 00 00 00 02 \
00 00 00 00 00 00 00 03 \
00 00 00 00 00 00 00 04 \
00 00 00 00 00 00 00 05 \
00 00 00 01 00 00 00 00 \
00 00 00 00 00 00 00 01 \
00 00 00 00 00 00 00 10 \
00 00 00 00 00 00 00 78 \
00 00 00 00 00 00 00 f0 \
00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 a0 \
00 00 00 10 00 00 00 02 \
00 00 00 00 00 00 00 03 \
00 00 00 00 00 00 00 04 \
00 00 00 00 00 00 00 05 \
00 00 00 02 00 00 00 00 \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_IPFIX_FLOW reply (xid=0x2): 2 ids
  id   1: flows=1, current flows=16, sampled pkts=120, ipv4 ok=240, ipv6 ok=0, tx pkts=4
          pkts errs=160, ipv4 errs=68719476738, ipv6 errs=3, tx errs=5
  id   2: flows=1, current flows=16, sampled pkts=120, ipv4 ok=240, ipv6 ok=0, tx pkts=4
          pkts errs=160, ipv4 errs=68719476738, ipv6 errs=3, tx errs=5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3749"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_377
#AT_START_378
at_fn_group_banner 378 'ofp-print.at:3783' \
  "NXT_CT_FLUSH_ZONE" "                              " 18
at_xfail=no
(
  $as_echo "378. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-print.at:3785: ovs-ofctl ofp-print \"\\
01 04 00 18 00 00 00 03 00 00 23 20 00 00 00 1d \\
00 00 00 00 00 00 00 0d \\
\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-print.at:3785"
( $at_check_trace; ovs-ofctl ofp-print "\
01 04 00 18 00 00 00 03 00 00 23 20 00 00 00 1d \
00 00 00 00 00 00 00 0d \
"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_CT_FLUSH_ZONE (xid=0x3): zone_id=13
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-print.at:3785"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_378
#AT_START_379
at_fn_group_banner 379 'ofp-util.at:3' \
  "encoding hellos" "                                " 19
at_xfail=no
(
  $as_echo "379. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/ofp-util.at:5: ovs-ofctl encode-hello 0x2"
at_fn_check_prepare_trace "ofp-util.at:5"
( $at_check_trace; ovs-ofctl encode-hello 0x2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "00000000  01 00 00 08 00 00 00 01
OFPT_HELLO (xid=0x1):
 version bitmap: 0x01
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-util.at:5"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-util.at:10: ovs-ofctl encode-hello 0x6"
at_fn_check_prepare_trace "ofp-util.at:10"
( $at_check_trace; ovs-ofctl encode-hello 0x6
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "00000000  02 00 00 08 00 00 00 01
OFPT_HELLO (OF1.1) (xid=0x1):
 version bitmap: 0x01, 0x02
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-util.at:10"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-util.at:15: ovs-ofctl encode-hello 0xe"
at_fn_check_prepare_trace "ofp-util.at:15"
( $at_check_trace; ovs-ofctl encode-hello 0xe
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "00000000  03 00 00 08 00 00 00 01
OFPT_HELLO (OF1.2) (xid=0x1):
 version bitmap: 0x01, 0x02, 0x03
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-util.at:15"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-util.at:20: ovs-ofctl encode-hello 0x1e"
at_fn_check_prepare_trace "ofp-util.at:20"
( $at_check_trace; ovs-ofctl encode-hello 0x1e
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "00000000  04 00 00 08 00 00 00 01
OFPT_HELLO (OF1.3) (xid=0x1):
 version bitmap: 0x01, 0x02, 0x03, 0x04
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-util.at:20"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-util.at:25: ovs-ofctl encode-hello 0x3e"
at_fn_check_prepare_trace "ofp-util.at:25"
( $at_check_trace; ovs-ofctl encode-hello 0x3e
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "00000000  05 00 00 08 00 00 00 01
OFPT_HELLO (OF1.4) (xid=0x1):
 version bitmap: 0x01, 0x02, 0x03, 0x04, 0x05
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-util.at:25"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofp-util.at:32: ovs-ofctl encode-hello 0xc"
at_fn_check_prepare_trace "ofp-util.at:32"
( $at_check_trace; ovs-ofctl encode-hello 0xc
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "00000000  03 00 00 10 00 00 00 01-00 01 00 08 00 00 00 0c
OFPT_HELLO (OF1.2) (xid=0x1):
 version bitmap: 0x02, 0x03
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-util.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-util.at:37: ovs-ofctl encode-hello 0xa"
at_fn_check_prepare_trace "ofp-util.at:37"
( $at_check_trace; ovs-ofctl encode-hello 0xa
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "00000000  03 00 00 10 00 00 00 01-00 01 00 08 00 00 00 0a
OFPT_HELLO (OF1.2) (xid=0x1):
 version bitmap: 0x01, 0x03
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-util.at:37"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-util.at:42: ovs-ofctl encode-hello 0x8"
at_fn_check_prepare_trace "ofp-util.at:42"
( $at_check_trace; ovs-ofctl encode-hello 0x8
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "00000000  03 00 00 10 00 00 00 01-00 01 00 08 00 00 00 08
OFPT_HELLO (OF1.2) (xid=0x1):
 version bitmap: 0x03
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-util.at:42"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-util.at:47: ovs-ofctl encode-hello 0x4"
at_fn_check_prepare_trace "ofp-util.at:47"
( $at_check_trace; ovs-ofctl encode-hello 0x4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "00000000  02 00 00 10 00 00 00 01-00 01 00 08 00 00 00 04
OFPT_HELLO (OF1.1) (xid=0x1):
 version bitmap: 0x02
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-util.at:47"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_379
#AT_START_380
at_fn_group_banner 380 'ofp-util.at:54' \
  "parsing key-value pairs" "                        " 19
at_xfail=no
(
  $as_echo "380. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/ofp-util.at:56: ovs-ofctl parse-key-value a a,b 'a b' 'a	b' 'a
b'"
at_fn_check_prepare_notrace 'an embedded newline' "ofp-util.at:56"
( $at_check_trace; ovs-ofctl parse-key-value a a,b 'a b' 'a	b' 'a
b'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
a, b
a, b
a, b
a, b
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-util.at:56"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofp-util.at:65: ovs-ofctl parse-key-value a:b a=b a:b,c=d 'a=b c' 'a(b)' 'a(b),c(d)'"
at_fn_check_prepare_trace "ofp-util.at:65"
( $at_check_trace; ovs-ofctl parse-key-value a:b a=b a:b,c=d 'a=b c' 'a(b)' 'a(b),c(d)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a=b
a=b
a=b, c=d
a=b, c
a=b
a=b, c=d
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-util.at:65"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofp-util.at:75: ovs-ofctl parse-key-value 'a:(b,c)' 'a:b(c,d)e' 'a(b,c(d,e),f)'"
at_fn_check_prepare_trace "ofp-util.at:75"
( $at_check_trace; ovs-ofctl parse-key-value 'a:(b,c)' 'a:b(c,d)e' 'a(b,c(d,e),f)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a=(b,c)
a=b(c,d)e
a=b,c(d,e),f
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-util.at:75"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofp-util.at:82: ovs-ofctl parse-key-value a,,b ',a  b' ' a b ,'"
at_fn_check_prepare_trace "ofp-util.at:82"
( $at_check_trace; ovs-ofctl parse-key-value a,,b ',a  b' ' a b ,'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a, b
a, b
a, b
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-util.at:82"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofp-util.at:91: ovs-ofctl parse-key-value 'a(b' 'a(b(c)' 'a=b(c'"
at_fn_check_prepare_trace "ofp-util.at:91"
( $at_check_trace; ovs-ofctl parse-key-value 'a(b' 'a(b(c)' 'a=b(c'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a=b
a=b(c)
a=b(c
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-util.at:91"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_380
#AT_START_381
at_fn_group_banner 381 'ofp-errors.at:3' \
  "OFPT_ERROR with type OFPET_HELLO_FAILED - OF1.0" "" 20
at_xfail=no
(
  $as_echo "381. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-errors.at:5: ovs-ofctl ofp-print 010100170000000000000001657874726120646174610a"
at_fn_check_prepare_trace "ofp-errors.at:5"
( $at_check_trace; ovs-ofctl ofp-print 010100170000000000000001657874726120646174610a
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (xid=0x0): OFPHFC_EPERM
extra data\\012
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-errors.at:5"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_381
#AT_START_382
at_fn_group_banner 382 'ofp-errors.at:11' \
  "OFPT_ERROR with type OFPET_HELLO_FAILED - OF1.1" "" 20
at_xfail=no
(
  $as_echo "382. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-errors.at:13: ovs-ofctl ofp-print 020100170000000000000001657874726120646174610a"
at_fn_check_prepare_trace "ofp-errors.at:13"
( $at_check_trace; ovs-ofctl ofp-print 020100170000000000000001657874726120646174610a
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (OF1.1) (xid=0x0): OFPHFC_EPERM
extra data\\012
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-errors.at:13"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_382
#AT_START_383
at_fn_group_banner 383 'ofp-errors.at:19' \
  "OFPT_ERROR with type OFPET_BAD_REQUEST - OF1.0" " " 20
at_xfail=no
(
  $as_echo "383. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-errors.at:21: ovs-ofctl ofp-print 0101001400000000000100060105ccddeeff0011"
at_fn_check_prepare_trace "ofp-errors.at:21"
( $at_check_trace; ovs-ofctl ofp-print 0101001400000000000100060105ccddeeff0011
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (xid=0x0): OFPBRC_BAD_LEN
OFPT_FEATURES_REQUEST (xid=0xeeff0011):
(***truncated to 8 bytes from 52445***)
00000000  01 05 cc dd ee ff 00 11-                        |........        |
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-errors.at:21"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_383
#AT_START_384
at_fn_group_banner 384 'ofp-errors.at:29' \
  "OFPT_ERROR prints type of truncated inner messages" "" 20
at_xfail=no
(
  $as_echo "384. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-errors.at:31: ovs-ofctl ofp-print \"0101004c092529d500010006 \\
01 06 00 e0 00 00 00 01 00 00 50 54 00 00 00 01 \\
00 00 01 00 02 00 00 00 00 00 00 87 00 00 0f ff \\
ff fe 50 54 00 00 00 01 62 72 30 00 00 00 00 00 \\
00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01\""
at_fn_check_prepare_notrace 'an embedded newline' "ofp-errors.at:31"
( $at_check_trace; ovs-ofctl ofp-print "0101004c092529d500010006 \
01 06 00 e0 00 00 00 01 00 00 50 54 00 00 00 01 \
00 00 01 00 02 00 00 00 00 00 00 87 00 00 0f ff \
ff fe 50 54 00 00 00 01 62 72 30 00 00 00 00 00 \
00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 01"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (xid=0x92529d5): OFPBRC_BAD_LEN
OFPT_FEATURES_REPLY (xid=0x1):
(***truncated to 64 bytes from 224***)
00000000  01 06 00 e0 00 00 00 01-00 00 50 54 00 00 00 01 |..........PT....|
00000010  00 00 01 00 02 00 00 00-00 00 00 87 00 00 0f ff |................|
00000020  ff fe 50 54 00 00 00 01-62 72 30 00 00 00 00 00 |..PT....br0.....|
00000030  00 00 00 00 00 00 00 00-00 00 00 01 00 00 00 01 |................|
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-errors.at:31"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_384
#AT_START_385
at_fn_group_banner 385 'ofp-errors.at:46' \
  "OFPT_ERROR with code OFPBMC_BAD_PREREQ - OF1.0" " " 20
at_xfail=no
(
  $as_echo "385. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-errors.at:48: ovs-ofctl ofp-print '0101001c55555555 b0c20000 0000232000010104 0102000811111111'"
at_fn_check_prepare_trace "ofp-errors.at:48"
( $at_check_trace; ovs-ofctl ofp-print '0101001c55555555 b0c20000 0000232000010104 0102000811111111'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (xid=0x55555555): OFPBMC_BAD_PREREQ
OFPT_ECHO_REQUEST (xid=0x11111111): 0 bytes of payload
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-errors.at:48"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_385
#AT_START_386
at_fn_group_banner 386 'ofp-errors.at:54' \
  "OFPT_ERROR with code OFPBMC_BAD_PREREQ - OF1.1" " " 20
at_xfail=no
(
  $as_echo "386. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-errors.at:56: ovs-ofctl ofp-print '0201001c55555555 b0c20000 0000232000010104 0102000811111111'"
at_fn_check_prepare_trace "ofp-errors.at:56"
( $at_check_trace; ovs-ofctl ofp-print '0201001c55555555 b0c20000 0000232000010104 0102000811111111'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (OF1.1) (xid=0x55555555): OFPBMC_BAD_PREREQ
OFPT_ECHO_REQUEST (xid=0x11111111): 0 bytes of payload
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-errors.at:56"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_386
#AT_START_387
at_fn_group_banner 387 'ofp-errors.at:64' \
  "OFPT_ERROR with type OFPFMFC_OVERLAP - OF1.0" "   " 20
at_xfail=no
(
  $as_echo "387. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-errors.at:66: ovs-ofctl ofp-print 0101001400000000000300010106ccddeeff0011"
at_fn_check_prepare_trace "ofp-errors.at:66"
( $at_check_trace; ovs-ofctl ofp-print 0101001400000000000300010106ccddeeff0011
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (xid=0x0): OFPFMFC_OVERLAP
OFPT_FEATURES_REPLY (xid=0xeeff0011):
(***truncated to 8 bytes from 52445***)
00000000  01 06 cc dd ee ff 00 11-                        |........        |
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-errors.at:66"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_387
#AT_START_388
at_fn_group_banner 388 'ofp-errors.at:73' \
  "OFPT_ERROR with type OFPBIC_UNSUP_INST - OF1.1" " " 20
at_xfail=no
(
  $as_echo "388. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-errors.at:75: ovs-ofctl ofp-print 0201001400000000000300010206ccddeeff0011"
at_fn_check_prepare_trace "ofp-errors.at:75"
( $at_check_trace; ovs-ofctl ofp-print 0201001400000000000300010206ccddeeff0011
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (OF1.1) (xid=0x0): OFPBIC_UNSUP_INST
OFPT_FEATURES_REPLY (OF1.1) (xid=0xeeff0011):
(***truncated to 8 bytes from 52445***)
00000000  02 06 cc dd ee ff 00 11-                        |........        |
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-errors.at:75"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_388
#AT_START_389
at_fn_group_banner 389 'ofp-errors.at:83' \
  "OFPT_ERROR with type OFPBIC_DUP_INST - OF1.4" "   " 20
at_xfail=no
(
  $as_echo "389. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-errors.at:85: ovs-ofctl ofp-print 0501001400000000000300090206ccddeeff0011"
at_fn_check_prepare_trace "ofp-errors.at:85"
( $at_check_trace; ovs-ofctl ofp-print 0501001400000000000300090206ccddeeff0011
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (OF1.4) (xid=0x0): OFPBIC_DUP_INST
OFPT_FEATURES_REPLY (OF1.1) (xid=0xeeff0011):
(***truncated to 8 bytes from 52445***)
00000000  02 06 cc dd ee ff 00 11-                        |........        |
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-errors.at:85"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_389
#AT_START_390
at_fn_group_banner 390 'ofp-errors.at:97' \
  "encoding OFPBIC_* experimenter errors" "          " 20
at_xfail=no
(
  $as_echo "390. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-errors.at:99: ovs-ofctl print-error OFPBIC_BAD_EXPERIMENTER"
at_fn_check_prepare_trace "ofp-errors.at:99"
( $at_check_trace; ovs-ofctl print-error OFPBIC_BAD_EXPERIMENTER
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OpenFlow 1.1: vendor 0, type 3, code 5
OpenFlow 1.2: vendor 0, type 3, code 5
OpenFlow 1.3: vendor 0, type 3, code 5
OpenFlow 1.4: vendor 0, type 3, code 5
OpenFlow 1.5: vendor 0, type 3, code 5
OpenFlow 1.6: vendor 0, type 3, code 5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-errors.at:99"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-errors.at:107: ovs-ofctl print-error OFPBIC_BAD_EXP_TYPE"
at_fn_check_prepare_trace "ofp-errors.at:107"
( $at_check_trace; ovs-ofctl print-error OFPBIC_BAD_EXP_TYPE
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OpenFlow 1.1: vendor 0, type 3, code 5
OpenFlow 1.2: vendor 0, type 3, code 6
OpenFlow 1.3: vendor 0, type 3, code 6
OpenFlow 1.4: vendor 0, type 3, code 6
OpenFlow 1.5: vendor 0, type 3, code 6
OpenFlow 1.6: vendor 0, type 3, code 6
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-errors.at:107"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_390
#AT_START_391
at_fn_group_banner 391 'ofp-errors.at:119' \
  "encoding errors extension that became official" " " 20
at_xfail=no
(
  $as_echo "391. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-errors.at:121: ovs-ofctl encode-error-reply OFPRRFC_BAD_ROLE 0100000812345678"
at_fn_check_prepare_trace "ofp-errors.at:121"
( $at_check_trace; ovs-ofctl encode-error-reply OFPRRFC_BAD_ROLE 0100000812345678
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "00000000  01 01 00 1c 12 34 56 78-b0 c2 00 00 00 00 23 20
00000010  00 01 02 01 01 00 00 08-12 34 56 78
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-errors.at:121"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-errors.at:126: ovs-ofctl encode-error-reply OFPRRFC_BAD_ROLE 0200000812345678"
at_fn_check_prepare_trace "ofp-errors.at:126"
( $at_check_trace; ovs-ofctl encode-error-reply OFPRRFC_BAD_ROLE 0200000812345678
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "00000000  02 01 00 1c 12 34 56 78-b0 c2 00 00 00 00 23 20
00000010  00 01 02 01 02 00 00 08-12 34 56 78
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-errors.at:126"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-errors.at:131: ovs-ofctl encode-error-reply OFPRRFC_BAD_ROLE 0300000812345678"
at_fn_check_prepare_trace "ofp-errors.at:131"
( $at_check_trace; ovs-ofctl encode-error-reply OFPRRFC_BAD_ROLE 0300000812345678
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "00000000  03 01 00 14 12 34 56 78-00 0b 00 02 03 00 00 08
00000010  12 34 56 78
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-errors.at:131"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_391
#AT_START_392
at_fn_group_banner 392 'ofp-errors.at:138' \
  "decoding OFPBIC_* experimenter errors" "          " 20
at_xfail=no
(
  $as_echo "392. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-errors.at:140: ovs-ofctl ofp-print '0201001455555555 00030005 0102000811111111'"
at_fn_check_prepare_trace "ofp-errors.at:140"
( $at_check_trace; ovs-ofctl ofp-print '0201001455555555 00030005 0102000811111111'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (OF1.1) (xid=0x55555555): OFPBIC_BAD_EXPERIMENTER
OFPT_ECHO_REQUEST (xid=0x11111111): 0 bytes of payload
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-errors.at:140"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-errors.at:144: ovs-ofctl ofp-print '0301001455555555 00030005 0102000811111111'"
at_fn_check_prepare_trace "ofp-errors.at:144"
( $at_check_trace; ovs-ofctl ofp-print '0301001455555555 00030005 0102000811111111'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (OF1.2) (xid=0x55555555): OFPBIC_BAD_EXPERIMENTER
OFPT_ECHO_REQUEST (xid=0x11111111): 0 bytes of payload
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-errors.at:144"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-errors.at:148: ovs-ofctl ofp-print '0301001455555555 00030006 0102000811111111'"
at_fn_check_prepare_trace "ofp-errors.at:148"
( $at_check_trace; ovs-ofctl ofp-print '0301001455555555 00030006 0102000811111111'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (OF1.2) (xid=0x55555555): OFPBIC_BAD_EXP_TYPE
OFPT_ECHO_REQUEST (xid=0x11111111): 0 bytes of payload
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-errors.at:148"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_392
#AT_START_393
at_fn_group_banner 393 'ofp-errors.at:154' \
  "decoding experimenter errors" "                   " 20
at_xfail=no
(
  $as_echo "393. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ofp-errors.at:156: ovs-ofctl ofp-print '0101001c55555555 b0c20000 0000232000010203 0102000811111111'"
at_fn_check_prepare_trace "ofp-errors.at:156"
( $at_check_trace; ovs-ofctl ofp-print '0101001c55555555 b0c20000 0000232000010203 0102000811111111'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (xid=0x55555555): NXBRC_MUST_BE_ZERO
OFPT_ECHO_REQUEST (xid=0x11111111): 0 bytes of payload
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-errors.at:156"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-errors.at:160: ovs-ofctl ofp-print '0201001c55555555 b0c20000 0000232000010203 0102000811111111'"
at_fn_check_prepare_trace "ofp-errors.at:160"
( $at_check_trace; ovs-ofctl ofp-print '0201001c55555555 b0c20000 0000232000010203 0102000811111111'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (OF1.1) (xid=0x55555555): NXBRC_MUST_BE_ZERO
OFPT_ECHO_REQUEST (xid=0x11111111): 0 bytes of payload
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-errors.at:160"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-errors.at:164: ovs-ofctl ofp-print '0301001855555555 ffff0004 00002320 0102000811111111'"
at_fn_check_prepare_trace "ofp-errors.at:164"
( $at_check_trace; ovs-ofctl ofp-print '0301001855555555 ffff0004 00002320 0102000811111111'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (OF1.2) (xid=0x55555555): NXBRC_MUST_BE_ZERO
OFPT_ECHO_REQUEST (xid=0x11111111): 0 bytes of payload
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-errors.at:164"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofp-errors.at:169: ovs-ofctl ofp-print '0301001812345678 ffff0a28 4f4e4600 0300000812345678'"
at_fn_check_prepare_trace "ofp-errors.at:169"
( $at_check_trace; ovs-ofctl ofp-print '0301001812345678 ffff0a28 4f4e4600 0300000812345678'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (OF1.2) (xid=0x12345678): OFPBIC_DUP_INST
OFPT_HELLO (OF1.2) (xid=0x12345678):
 version bitmap: 0x01, 0x02, 0x03
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-errors.at:169"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-errors.at:174: ovs-ofctl ofp-print '0401001812345678 ffff0a28 4f4e4600 0400000812345678'"
at_fn_check_prepare_trace "ofp-errors.at:174"
( $at_check_trace; ovs-ofctl ofp-print '0401001812345678 ffff0a28 4f4e4600 0400000812345678'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (OF1.3) (xid=0x12345678): OFPBIC_DUP_INST
OFPT_HELLO (OF1.3) (xid=0x12345678):
 version bitmap: 0x01, 0x02, 0x03, 0x04
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-errors.at:174"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-errors.at:179: ovs-ofctl ofp-print '0501001412345678 00030009 0500000812345678'"
at_fn_check_prepare_trace "ofp-errors.at:179"
( $at_check_trace; ovs-ofctl ofp-print '0501001412345678 00030009 0500000812345678'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (OF1.4) (xid=0x12345678): OFPBIC_DUP_INST
OFPT_HELLO (OF1.4) (xid=0x12345678):
 version bitmap: 0x01, 0x02, 0x03, 0x04, 0x05
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-errors.at:179"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_393
#AT_START_394
at_fn_group_banner 394 'ofp-errors.at:186' \
  "encoding experimenter errors" "                   " 20
at_xfail=no
(
  $as_echo "394. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


# Demonstrate that a Nicira extension error gets encoded correctly
# using the Nicira error extension format in OF1.0 and OF1.1, and
# correctly using the standard experimenter format in OF1.2.
{ set +x
$as_echo "$at_srcdir/ofp-errors.at:191: ovs-ofctl encode-error-reply NXBRC_MUST_BE_ZERO 0100000812345678"
at_fn_check_prepare_trace "ofp-errors.at:191"
( $at_check_trace; ovs-ofctl encode-error-reply NXBRC_MUST_BE_ZERO 0100000812345678
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "00000000  01 01 00 1c 12 34 56 78-b0 c2 00 00 00 00 23 20
00000010  00 01 02 03 01 00 00 08-12 34 56 78
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-errors.at:191"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-errors.at:196: ovs-ofctl encode-error-reply NXBRC_MUST_BE_ZERO 0200000812345678"
at_fn_check_prepare_trace "ofp-errors.at:196"
( $at_check_trace; ovs-ofctl encode-error-reply NXBRC_MUST_BE_ZERO 0200000812345678
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "00000000  02 01 00 1c 12 34 56 78-b0 c2 00 00 00 00 23 20
00000010  00 01 02 03 02 00 00 08-12 34 56 78
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-errors.at:196"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-errors.at:201: ovs-ofctl encode-error-reply NXBRC_MUST_BE_ZERO 0300000812345678"
at_fn_check_prepare_trace "ofp-errors.at:201"
( $at_check_trace; ovs-ofctl encode-error-reply NXBRC_MUST_BE_ZERO 0300000812345678
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "00000000  03 01 00 18 12 34 56 78-ff ff 00 04 00 00 23 20
00000010  03 00 00 08 12 34 56 78
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-errors.at:201"
$at_failed && at_fn_log_failure
$at_traceon; }


# Check that OFPERR_OFPBIC_DUP_INST is:
#    - not encodable in OF1.0 (OF1.0 doesn't have instructions, after all).
#    - encoded as a Nicira extension in OF1.1.
#    - encoded as an ONF extension in OF1.2 and OF1.3.
#    - encoded in the standard form in OF1.4.
{ set +x
$as_echo "$at_srcdir/ofp-errors.at:212: ovs-ofctl '-vPATTERN:console:%c|%p|%m' encode-error-reply OFPBIC_DUP_INST 0100000812345678"
at_fn_check_prepare_notrace 'a shell pipeline' "ofp-errors.at:212"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' encode-error-reply OFPBIC_DUP_INST 0100000812345678
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ofp_errors|ERR|cannot encode OFPBIC_DUP_INST for OpenFlow 1.0
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "00000000  01 01 00 1c 12 34 56 78-b0 c2 00 00 00 00 23 20
00000010  00 01 02 09 01 00 00 08-12 34 56 78
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-errors.at:212"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-errors.at:218: ovs-ofctl encode-error-reply OFPBIC_DUP_INST 0200000812345678"
at_fn_check_prepare_trace "ofp-errors.at:218"
( $at_check_trace; ovs-ofctl encode-error-reply OFPBIC_DUP_INST 0200000812345678
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "00000000  02 01 00 1c 12 34 56 78-b0 c2 00 00 00 00 23 20
00000010  00 03 01 00 02 00 00 08-12 34 56 78
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-errors.at:218"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-errors.at:222: ovs-ofctl encode-error-reply OFPBIC_DUP_INST 0300000812345678"
at_fn_check_prepare_trace "ofp-errors.at:222"
( $at_check_trace; ovs-ofctl encode-error-reply OFPBIC_DUP_INST 0300000812345678
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "00000000  03 01 00 18 12 34 56 78-ff ff 0a 28 4f 4e 46 00
00000010  03 00 00 08 12 34 56 78
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-errors.at:222"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-errors.at:226: ovs-ofctl encode-error-reply OFPBIC_DUP_INST 0400000812345678"
at_fn_check_prepare_trace "ofp-errors.at:226"
( $at_check_trace; ovs-ofctl encode-error-reply OFPBIC_DUP_INST 0400000812345678
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "00000000  04 01 00 18 12 34 56 78-ff ff 0a 28 4f 4e 46 00
00000010  04 00 00 08 12 34 56 78
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-errors.at:226"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofp-errors.at:230: ovs-ofctl encode-error-reply OFPBIC_DUP_INST 0500000812345678"
at_fn_check_prepare_trace "ofp-errors.at:230"
( $at_check_trace; ovs-ofctl encode-error-reply OFPBIC_DUP_INST 0500000812345678
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "00000000  05 01 00 14 12 34 56 78-00 03 00 09 05 00 00 08
00000010  12 34 56 78
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofp-errors.at:230"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_394
#AT_START_395
at_fn_group_banner 395 'ovs-ofctl.at:3' \
  "ovs-ofctl parse-flows choice of protocol" "       " 21
at_xfail=no
(
  $as_echo "395. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

# This doesn't cover some potential vlan_tci test cases.
for test_case in \
    'tun_id=0                                    NXM,OXM' \
    'tun_id=0/0x1                                NXM,OXM' \
    'tun_src=1.2.3.4                             NXM,OXM' \
    'tun_src=1.2.3.4/0.0.0.1                     NXM,OXM' \
    'tun_dst=1.2.3.4                             NXM,OXM' \
    'tun_dst=1.2.3.4/0.0.0.1                     NXM,OXM' \
    'tun_flags=1                                 NXM,OXM' \
    'tun_flags=+oam                              NXM,OXM' \
    'tun_tos=0                                   none' \
    'tun_ttl=0                                   none' \
    'tun_gbp_id=0                                NXM,OXM' \
    'tun_gbp_id=0/0x1                            NXM,OXM' \
    'tun_gbp_flags=0                             NXM,OXM' \
    'tun_gbp_flags=0/0x1                         NXM,OXM' \
    'tun_metadata0=0                             NXM,OXM' \
    'tun_metadata0=0/0x1                         NXM,OXM' \
    'tun_metadata0                               NXM,OXM' \
    'metadata=0                                  NXM,OXM,OpenFlow11' \
    'metadata=1/1                                NXM,OXM,OpenFlow11' \
    'in_port=1                                   any' \
    'skb_priority=0                              none' \
    'pkt_mark=1                                  NXM,OXM' \
    'pkt_mark=1/1                                NXM,OXM' \
    'reg0=0                                      NXM,OXM' \
    'reg0=0/1                                    NXM,OXM' \
    'reg1=1                                      NXM,OXM' \
    'reg1=1/1                                    NXM,OXM' \
    'reg2=2                                      NXM,OXM' \
    'reg2=2/1                                    NXM,OXM' \
    'reg3=3                                      NXM,OXM' \
    'reg3=3/1                                    NXM,OXM' \
    'reg4=4                                      NXM,OXM' \
    'reg4=4/1                                    NXM,OXM' \
    'reg5=5                                      NXM,OXM' \
    'reg5=5/1                                    NXM,OXM' \
    'reg6=6                                      NXM,OXM' \
    'reg6=6/1                                    NXM,OXM' \
    'reg7=7                                      NXM,OXM' \
    'reg8=8/1                                    NXM,OXM' \
    'reg8=8                                      NXM,OXM' \
    'reg9=9/1                                    NXM,OXM' \
    'reg9=9                                      NXM,OXM' \
    'reg10=10                                    NXM,OXM' \
    'reg10=10/1                                  NXM,OXM' \
    'reg11=11                                    NXM,OXM' \
    'reg11=11/1                                  NXM,OXM' \
    'reg12=12                                    NXM,OXM' \
    'reg12=12/1                                  NXM,OXM' \
    'reg13=13                                    NXM,OXM' \
    'reg13=13/1                                  NXM,OXM' \
    'reg14=14                                    NXM,OXM' \
    'reg14=14/1                                  NXM,OXM' \
    'xreg0=0                                     NXM,OXM' \
    'xreg0=0/1                                   NXM,OXM' \
    'xreg1=1                                     NXM,OXM' \
    'xreg1=1/1                                   NXM,OXM' \
    'xreg2=2                                     NXM,OXM' \
    'xreg2=2/3                                   NXM,OXM' \
    'xreg3=3                                     NXM,OXM' \
    'xreg3=3/5                                   NXM,OXM' \
    'xreg4=4                                     NXM,OXM' \
    'xreg4=4/1                                   NXM,OXM' \
    'xreg5=5                                     NXM,OXM' \
    'xreg5=5/1                                   NXM,OXM' \
    'xreg6=6                                     NXM,OXM' \
    'xreg6=6/1                                   NXM,OXM' \
    'xreg7=7                                     NXM,OXM' \
    'xreg7=7/1                                   NXM,OXM' \
    'xxreg0=0                                    NXM,OXM' \
    'xxreg0=0/1                                  NXM,OXM' \
    'xxreg1=1                                    NXM,OXM' \
    'xxreg1=1/1                                  NXM,OXM' \
    'xxreg2=2                                    NXM,OXM' \
    'xxreg2=2/1                                  NXM,OXM' \
    'xxreg3=3                                    NXM,OXM' \
    'xxreg3=3/1                                  NXM,OXM' \
    'xxreg3[0..0]=1                            NXM,OXM' \
    'xxreg3[126..127]=3                        NXM,OXM' \
    'reg3[]=3                                  NXM,OXM' \
    'dl_src=00:11:22:33:44:55                    any' \
    'dl_src=00:11:22:33:44:55/00:ff:ff:ff:ff:ff  NXM,OXM,OpenFlow11' \
    'dl_dst=00:11:22:33:44:55                    any' \
    'dl_dst=00:11:22:33:44:55/00:ff:ff:ff:ff:ff  NXM,OXM,OpenFlow11' \
    'dl_type=0x1234                              any' \
    'dl_type=0x0800                              any' \
    'dl_type=0x0806                              any' \
    'dl_type=0x86dd                              any' \
    'vlan_tci=0                                  any' \
    'vlan_tci=0x1009                             any' \
    'vlan_tci=0x1009/0x1                         NXM,OXM' \
    'dl_vlan=9                                   any' \
    'vlan_vid=11                                 any' \
    'vlan_vid=11/0x1                             NXM,OXM' \
    'dl_vlan_pcp=6                               any' \
    'vlan_pcp=5                                  any' \
    'mpls,mpls_label=5                           NXM,OXM,OpenFlow11' \
    'mpls,mpls_tc=1                              NXM,OXM,OpenFlow11' \
    'mpls,mpls_bos=0                             NXM,OXM' \
    'ip,ip_src=1.2.3.4                           any' \
    'ip,ip_src=192.168.0.0/24                    any' \
    'ip,ip_src=192.0.168.0/255.0.255.0           NXM,OXM,OpenFlow11' \
    'ip,ip_dst=1.2.3.4                           any' \
    'ip,ip_dst=192.168.0.0/24                    any' \
    'ip,ip_dst=192.0.168.0/255.0.255.0           NXM,OXM,OpenFlow11' \
    'ipv6,ipv6_src=::1                           NXM,OXM' \
    'ipv6,ipv6_src=0:0:0:0:0:0:0:1/::1           NXM,OXM' \
    'ipv6,ipv6_dst=::1                           NXM,OXM' \
    'ipv6,ipv6_dst=0:0:0:0:0:0:0:1/::1           NXM,OXM' \
    'ipv6,ipv6_label=5                           NXM,OXM' \
    'ipv6,ipv6_label=5/1                         NXM,OXM' \
    'ip,nw_proto=1                               any' \
    'ipv6,nw_proto=1                             NXM,OXM' \
    'ip,nw_tos=0xf0                              any' \
    'ipv6,nw_tos=0xf0                            NXM,OXM' \
    'ip,ip_dscp=0x3c                             any' \
    'ipv6,ip_dscp=0x3c                           NXM,OXM' \
    'ip,nw_ecn=1                                 NXM,OXM,OpenFlow11' \
    'ipv6,nw_ecn=1                               NXM,OXM' \
    'ip,nw_ttl=5                                 NXM,OXM' \
    'ipv6,nw_ttl=5                               NXM,OXM' \
    'ip,ip_frag=no                               NXM,OXM' \
    'ipv6,ip_frag=no                             NXM,OXM' \
    'arp,arp_op=0                                any' \
    'arp,arp_spa=1.2.3.4                         any' \
    'arp,arp_spa=1.2.3.4/0.0.0.1                 NXM,OXM,OpenFlow11' \
    'arp,arp_tpa=1.2.3.4                         any' \
    'arp,arp_tpa=1.2.3.4/0.0.0.1                 NXM,OXM,OpenFlow11' \
    'arp,arp_sha=00:11:22:33:44:55               NXM,OXM' \
    'arp,arp_sha=00:11:22:33:44:55/00:ff:ff:ff:ff:ff NXM,OXM' \
    'arp,arp_tha=00:11:22:33:44:55               NXM,OXM' \
    'arp,arp_tha=00:11:22:33:44:55/00:ff:ff:ff:ff:ff NXM,OXM' \
    'tcp,tcp_src=80                              any' \
    'tcp,tcp_src=0x1000/0x1000                   NXM,OXM' \
    'tcp6,tcp_src=80                             NXM,OXM' \
    'tcp6,tcp_src=0x1000/0x1000                  NXM,OXM' \
    'tcp,tcp_dst=80                              any' \
    'tcp,tcp_dst=0x1000/0x1000                   NXM,OXM' \
    'tcp6,tcp_dst=80                             NXM,OXM' \
    'tcp6,tcp_dst=0x1000/0x1000                  NXM,OXM' \
    'udp,udp_src=80                              any' \
    'udp,udp_src=0x1000/0x1000                   NXM,OXM' \
    'udp6,udp_src=80                             NXM,OXM' \
    'udp6,udp_src=0x1000/0x1000                  NXM,OXM' \
    'udp,udp_dst=80                              any' \
    'udp,udp_dst=0x1000/0x1000                   NXM,OXM' \
    'udp6,udp_dst=80                             NXM,OXM' \
    'udp6,udp_dst=0x1000/0x1000                  NXM,OXM' \
    'udp6,udp_dst[12]=1                        NXM,OXM' \
    'icmp,icmp_type=1                            any' \
    'icmp,icmp_code=2                            any' \
    'icmp6,icmpv6_type=1                         NXM,OXM' \
    'icmp6,icmpv6_code=2                         NXM,OXM' \
    'ct_state=+trk                               NXM,OXM' \
    'ct_zone=0                                   NXM,OXM' \
    'ct_mark=0                                   NXM,OXM' \
    'ct_label=0                                  NXM,OXM' \
    'ct_label=0x1234567890ABCDEF12345678         NXM,OXM'
do
    set $test_case
    echo
    echo "### test case: '$1' should have usable protocols '$2'"
    if test "$2" = none; then
      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:168: ovs-ofctl parse-flow \"\$1,actions=drop\""
at_fn_check_prepare_dynamic "ovs-ofctl parse-flow \"$1,actions=drop\"" "ovs-ofctl.at:168"
( $at_check_trace; ovs-ofctl parse-flow "$1,actions=drop"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: actions are invalid with specified match (OFPBAC_MATCH_INCONSISTENT)
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-ofctl.at:168"
$at_failed && at_fn_log_failure
$at_traceon; }

    else
      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:174: ovs-ofctl parse-flow \"\$1,actions=drop\" | sed 1q"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-ofctl.at:174"
( $at_check_trace; ovs-ofctl parse-flow "$1,actions=drop" | sed 1q
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "usable protocols: $2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:174"
$at_failed && at_fn_log_failure
$at_traceon; }

    fi
done
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_395
#AT_START_396
at_fn_group_banner 396 'ovs-ofctl.at:181' \
  "ovs-ofctl parse-flows (OpenFlow 1.0)" "           " 21
at_xfail=no
(
  $as_echo "396. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

cat >flows.txt <<'_ATEOF'

# comment
tcp,tp_src=123,actions=flood
in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=drop
udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
cookie=0x123456789abcdef hard_timeout=10 priority=60000 actions=controller
actions=note:41.42.43,note:00.01.02.03.04.05.06.07,note
ip,actions=set_field:10.4.3.77->ip_src,mod_nw_ecn:2
sctp actions=drop
sctp actions=drop
in_port=0 actions=resubmit:0
actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678,ingress)
actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678,sampling_port=56789)
actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678,sampling_port=56789,egress)
ip,actions=ct(nat)
ip,actions=ct(commit,nat(dst))
ip,actions=ct(commit,nat(src))
ip,actions=ct(commit,nat(src=10.0.0.240,random))
ip,actions=ct(commit,nat(src=10.0.0.240:32768-65535,random))
ip,actions=ct(commit,nat(dst=10.0.0.128-10.0.0.254,hash))
ip,actions=ct(commit,nat(src=10.0.0.240-10.0.0.254:32768-65535,persistent))
ipv6,actions=ct(commit,nat(src=fe80::20c:29ff:fe88:a18b,random))
ipv6,actions=ct(commit,nat(src=fe80::20c:29ff:fe88:1-fe80::20c:29ff:fe88:a18b,random))
ipv6,actions=ct(commit,nat(src=[fe80::20c:29ff:fe88:1]-[fe80::20c:29ff:fe88:a18b]:255-4096,random))
tcp,actions=ct(commit,nat(src=10.1.1.240-10.1.1.255),alg=ftp)
actions=in_port,output:in_port
_ATEOF


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:213: ovs-ofctl parse-flows flows.txt
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:213"
( $at_check_trace; ovs-ofctl parse-flows flows.txt

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:213"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:215: sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout"
at_fn_check_prepare_trace "ovs-ofctl.at:215"
( $at_check_trace; sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "usable protocols: any
chosen protocol: OpenFlow10-table_id
OFPT_FLOW_MOD: ADD tcp,tp_src=123 actions=FLOOD
OFPT_FLOW_MOD: ADD in_port=LOCAL,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=drop
OFPT_FLOW_MOD: ADD udp,dl_vlan_pcp=7 idle:5 actions=strip_vlan,output:0
OFPT_FLOW_MOD: ADD tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
OFPT_FLOW_MOD: ADD udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
OFPT_FLOW_MOD: ADD priority=60000 cookie:0x123456789abcdef hard:10 actions=CONTROLLER:65535
OFPT_FLOW_MOD: ADD actions=note:41.42.43.00.00.00,note:00.01.02.03.04.05.06.07.00.00.00.00.00.00,note:00.00.00.00.00.00
OFPT_FLOW_MOD: ADD ip actions=mod_nw_src:10.4.3.77,load:0x2->NXM_NX_IP_ECN[]
OFPT_FLOW_MOD: ADD sctp actions=drop
OFPT_FLOW_MOD: ADD sctp actions=drop
OFPT_FLOW_MOD: ADD in_port=0 actions=resubmit:0
OFPT_FLOW_MOD: ADD actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
OFPT_FLOW_MOD: ADD actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678,ingress)
OFPT_FLOW_MOD: ADD actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678,sampling_port=56789)
OFPT_FLOW_MOD: ADD actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678,sampling_port=56789,egress)
OFPT_FLOW_MOD: ADD ip actions=ct(nat)
OFPT_FLOW_MOD: ADD ip actions=ct(commit,nat(dst))
OFPT_FLOW_MOD: ADD ip actions=ct(commit,nat(src))
OFPT_FLOW_MOD: ADD ip actions=ct(commit,nat(src=10.0.0.240,random))
OFPT_FLOW_MOD: ADD ip actions=ct(commit,nat(src=10.0.0.240:32768-65535,random))
OFPT_FLOW_MOD: ADD ip actions=ct(commit,nat(dst=10.0.0.128-10.0.0.254,hash))
OFPT_FLOW_MOD: ADD ip actions=ct(commit,nat(src=10.0.0.240-10.0.0.254:32768-65535,persistent))
OFPT_FLOW_MOD: ADD ipv6 actions=ct(commit,nat(src=fe80::20c:29ff:fe88:a18b,random))
OFPT_FLOW_MOD: ADD ipv6 actions=ct(commit,nat(src=fe80::20c:29ff:fe88:1-fe80::20c:29ff:fe88:a18b,random))
OFPT_FLOW_MOD: ADD ipv6 actions=ct(commit,nat(src=[fe80::20c:29ff:fe88:1]-[fe80::20c:29ff:fe88:a18b]:255-4096,random))
OFPT_FLOW_MOD: ADD tcp actions=ct(commit,nat(src=10.1.1.240-10.1.1.255),alg=ftp)
OFPT_FLOW_MOD: ADD actions=IN_PORT,IN_PORT
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:215"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_396
#AT_START_397
at_fn_group_banner 397 'ovs-ofctl.at:248' \
  "ovs-ofctl parse-flows (OpenFlow 1.1)" "           " 21
at_xfail=no
(
  $as_echo "397. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

cat >flows.txt <<'_ATEOF'

# comment
tcp,tp_src=123,actions=flood
in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=drop
udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
udp,nw_src=192.168.0.3,tp_dst=53 actions=mod_nw_ecn:2,output:1
cookie=0x123456789abcdef hard_timeout=10 priority=60000 actions=controller
actions=note:41.42.43,note:00.01.02.03.04.05.06.07,note
ip,actions=mod_nw_ttl:1,set_field:10.4.3.77->ip_src
sctp actions=drop
sctp actions=drop
in_port=0 actions=resubmit:0
actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678,sampling_port=56789)
_ATEOF


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:266: ovs-ofctl --protocols OpenFlow11 parse-flows flows.txt
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:266"
( $at_check_trace; ovs-ofctl --protocols OpenFlow11 parse-flows flows.txt

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:266"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:268: sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout"
at_fn_check_prepare_trace "ovs-ofctl.at:268"
( $at_check_trace; sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "usable protocols: any
chosen protocol: OpenFlow11
OFPT_FLOW_MOD (OF1.1): ADD tcp,tp_src=123 actions=FLOOD
OFPT_FLOW_MOD (OF1.1): ADD in_port=LOCAL,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=drop
OFPT_FLOW_MOD (OF1.1): ADD udp,dl_vlan_pcp=7 idle:5 actions=pop_vlan,output:0
OFPT_FLOW_MOD (OF1.1): ADD tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
OFPT_FLOW_MOD (OF1.1): ADD udp,nw_src=192.168.0.3,tp_dst=53 actions=mod_nw_ecn:2,output:1
OFPT_FLOW_MOD (OF1.1): ADD priority=60000 cookie:0x123456789abcdef hard:10 actions=CONTROLLER:65535
OFPT_FLOW_MOD (OF1.1): ADD actions=note:41.42.43.00.00.00,note:00.01.02.03.04.05.06.07.00.00.00.00.00.00,note:00.00.00.00.00.00
OFPT_FLOW_MOD (OF1.1): ADD ip actions=mod_nw_ttl:1,mod_nw_src:10.4.3.77
OFPT_FLOW_MOD (OF1.1): ADD sctp actions=drop
OFPT_FLOW_MOD (OF1.1): ADD sctp actions=drop
OFPT_FLOW_MOD (OF1.1): ADD in_port=0 actions=resubmit:0
OFPT_FLOW_MOD (OF1.1): ADD actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
OFPT_FLOW_MOD (OF1.1): ADD actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678,sampling_port=56789)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:268"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_397
#AT_START_398
at_fn_group_banner 398 'ovs-ofctl.at:287' \
  "ovs-ofctl parse-flows (OpenFlow 1.2)" "           " 21
at_xfail=no
(
  $as_echo "398. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

cat >flows.txt <<'_ATEOF'

# comment
tcp,tp_src[5]=1,actions=flood
tcp,tp_src[6..10]=19,actions=flood
tcp,tp_src=123,actions=flood
in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=mod_vlan_vid:7,mod_vlan_pcp:2
udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
cookie=0x123456789abcdef hard_timeout=10 priority=60000 actions=controller
actions=note:41.42.43,note:00.01.02.03.04.05.06.07,note
ipv6,actions=set_field:fe80:0123:4567:890a:a6ba:dbff:fefe:59fa->ipv6_src
sctp actions=set_field:3334->sctp_src
sctp actions=set_field:4445->sctp_dst
tcp actions=mod_tp_dst:1234
udp actions=mod_tp_src:1111
ip actions=mod_nw_src:10.1.1.2,mod_nw_dst:192.168.10.1,mod_nw_ttl:1,mod_nw_tos:16,mod_nw_ecn:2
in_port=0 actions=mod_dl_src:11:22:33:44:55:66,mod_dl_dst:10:20:30:40:50:60
in_port=0 actions=resubmit:0
actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678,sampling_port=56789)
_ATEOF


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:311: ovs-ofctl --protocols OpenFlow12 parse-flows flows.txt
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:311"
( $at_check_trace; ovs-ofctl --protocols OpenFlow12 parse-flows flows.txt

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:311"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:313: sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout"
at_fn_check_prepare_trace "ovs-ofctl.at:313"
( $at_check_trace; sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "usable protocols: NXM,OXM
chosen protocol: OXM-OpenFlow12
OFPT_FLOW_MOD (OF1.2): ADD tcp,tp_src=0x20/0x20 actions=FLOOD
OFPT_FLOW_MOD (OF1.2): ADD tcp,tp_src=0x4c0/0x7c0 actions=FLOOD
OFPT_FLOW_MOD (OF1.2): ADD tcp,tp_src=123 actions=FLOOD
OFPT_FLOW_MOD (OF1.2): ADD in_port=LOCAL,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=set_field:4103->vlan_vid,set_field:2->vlan_pcp
OFPT_FLOW_MOD (OF1.2): ADD udp,dl_vlan_pcp=7 idle:5 actions=pop_vlan,output:0
OFPT_FLOW_MOD (OF1.2): ADD tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
OFPT_FLOW_MOD (OF1.2): ADD udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
OFPT_FLOW_MOD (OF1.2): ADD priority=60000 cookie:0x123456789abcdef hard:10 actions=CONTROLLER:65535
OFPT_FLOW_MOD (OF1.2): ADD actions=note:41.42.43.00.00.00,note:00.01.02.03.04.05.06.07.00.00.00.00.00.00,note:00.00.00.00.00.00
OFPT_FLOW_MOD (OF1.2): ADD ipv6 actions=set_field:fe80:123:4567:890a:a6ba:dbff:fefe:59fa->ipv6_src
OFPT_FLOW_MOD (OF1.2): ADD sctp actions=set_field:3334->sctp_src
OFPT_FLOW_MOD (OF1.2): ADD sctp actions=set_field:4445->sctp_dst
OFPT_FLOW_MOD (OF1.2): ADD tcp actions=set_field:1234->tcp_dst
OFPT_FLOW_MOD (OF1.2): ADD udp actions=set_field:1111->udp_src
OFPT_FLOW_MOD (OF1.2): ADD ip actions=set_field:10.1.1.2->ip_src,set_field:192.168.10.1->ip_dst,mod_nw_ttl:1,set_field:4->ip_dscp,set_field:2->nw_ecn
OFPT_FLOW_MOD (OF1.2): ADD in_port=0 actions=set_field:11:22:33:44:55:66->eth_src,set_field:10:20:30:40:50:60->eth_dst
OFPT_FLOW_MOD (OF1.2): ADD in_port=0 actions=resubmit:0
OFPT_FLOW_MOD (OF1.2): ADD actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
OFPT_FLOW_MOD (OF1.2): ADD actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678,sampling_port=56789)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:313"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_398
#AT_START_399
at_fn_group_banner 399 'ovs-ofctl.at:338' \
  "ovs-ofctl parse-flow with invalid mask" "         " 21
at_xfail=no
(
  $as_echo "399. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

for test_case in \
    'tun_tos 1/1' \
    'tun_ttl 1/1' \
    'skb_priority 1/1' \
    'eth_type 0x1234/0x1' \
    'dl_vlan 9/0x1' \
    'dl_vlan_pcp 6/0x1' \
    'vlan_pcp 5/0x1' \
    'mpls mpls_label 5/0x1' \
    'mpls mpls_tc 1/0x1' \
    'mpls mpls_bos 1/0x1' \
    'ip nw_proto 1/1' \
    'ipv6 nw_proto 1/1' \
    'ip nw_tos 0xf0/0xf0' \
    'ipv6 nw_tos 0xf0/0xf0' \
    'ip ip_dscp 0x3c/0xf0' \
    'ipv6 ip_dscp 0x3c/0xf0' \
    'ip nw_ecn 1/1' \
    'ipv6 nw_ecn 1/1' \
    'ip nw_ttl 5/1' \
    'ipv6 nw_ttl 5/1' \
    'arp arp_op 0/1' \
    'icmp icmp_type 1/1' \
    'icmp icmp_code 2/1' \
    'icmp6 icmpv6_code 2/1'
do
    set $test_case
    if test $# = 3; then
        prereq=$1, field=$2 value=$3
    else
        prereq= field=$1 value=$2
    fi
    { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:371: ovs-ofctl parse-flow \"\$prereq\$field=\$value,actions=drop\""
at_fn_check_prepare_dynamic "ovs-ofctl parse-flow \"$prereq$field=$value,actions=drop\"" "ovs-ofctl.at:371"
( $at_check_trace; ovs-ofctl parse-flow "$prereq$field=$value,actions=drop"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: $value: invalid mask for field $field
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-ofctl.at:371"
$at_failed && at_fn_log_failure
$at_traceon; }

done
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_399
#AT_START_400
at_fn_group_banner 400 'ovs-ofctl.at:377' \
  "ovs-ofctl action inconsistency (OpenFlow 1.1)" "  " 21
at_xfail=no
(
  $as_echo "400. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:378: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-ofctl.at:378"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:378"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:378: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ovs-ofctl.at:378"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:378"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:378: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:378"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:378"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:378: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ovs-ofctl.at:378"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:378"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:378: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ovs-ofctl.at:378"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:378"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:378: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:378"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:378"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:378: add_of_br 0  "
at_fn_check_prepare_trace "ovs-ofctl.at:378"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:378"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3
{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:380: ovs-ofctl --protocols OpenFlow11 add-flow br0 'ip actions=mod_tp_dst:1234'
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:380"
( $at_check_trace; ovs-ofctl --protocols OpenFlow11 add-flow br0 'ip actions=mod_tp_dst:1234'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: none of the usable flow formats (OpenFlow10,NXM) is among the allowed flow formats (OpenFlow11)
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/ovs-ofctl.at:380"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:383: check_logs "
at_fn_check_prepare_trace "ovs-ofctl.at:383"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:383"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:383: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovs-ofctl.at:383"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:383"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:383: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovs-ofctl.at:383"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:383"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-ofctl.at:383: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-ofctl.at:383: wait failed" >&5

    $as_echo "ovs-ofctl.at:383" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-ofctl.at:383"
fi

   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:383: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovs-ofctl.at:383"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:383"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:383: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovs-ofctl.at:383"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:383"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-ofctl.at:383: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-ofctl.at:383: wait failed" >&5

    $as_echo "ovs-ofctl.at:383" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-ofctl.at:383"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_400
#AT_START_401
at_fn_group_banner 401 'ovs-ofctl.at:386' \
  "ovs-ofctl parse-flows (skb_priority)" "           " 21
at_xfail=no
(
  $as_echo "401. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

cat >flows.txt <<'_ATEOF'

skb_priority=0x12341234,tcp,tp_src=123,actions=flood
_ATEOF


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:391: ovs-ofctl parse-flows flows.txt
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:391"
( $at_check_trace; ovs-ofctl parse-flows flows.txt

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-ofctl.at:391"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_401
#AT_START_402
at_fn_group_banner 402 'ovs-ofctl.at:398' \
  "ovs-ofctl parse-flows (NXM)" "                    " 21
at_xfail=no
(
  $as_echo "402. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

cat >flows.txt <<'_ATEOF'

# comment
tcp,tp_src=123,actions=flood
in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=drop
pkt_mark=0xbb,actions=set_field:0xaa->pkt_mark
udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
cookie=0x123456789abcdef hard_timeout=10 priority=60000 actions=controller
actions=note:41.42.43,note:00.01.02.03.04.05.06.07,note
tcp,tp_src=0x1230/0xfff0,tun_id=0x1234,cookie=0x5678,actions=flood
actions=set_tunnel:0x1234,set_tunnel64:0x9876,set_tunnel:0x123456789
actions=multipath(eth_src, 50, hrw, 12, 0, NXM_NX_REG0[0..3]),multipath(symmetric_l4, 1024, iter_hash, 5000, 5050, reg0[0..12])
table=1,actions=drop
tun_id=0x1234000056780000/0xffff0000ffff0000,actions=drop
metadata=0x1234ffff5678ffff/0xffff0000ffff0000,actions=drop
actions=bundle(eth_src,50,active_backup,ofport,slaves:1)
actions=bundle(symmetric_l4,60,hrw,ofport,slaves:2,3)
actions=bundle(symmetric_l4,60,hrw,ofport,slaves:)
actions=output:1,bundle(eth_src,0,hrw,ofport,slaves:1),output:2
actions=bundle_load(eth_src,50,active_backup,ofport,reg0,slaves:1)
actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..15],slaves:2,3)
actions=bundle_load(symmetric_l4,60,hrw,ofport,reg0[0..15],slaves:[2,3])
actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..30],slaves:)
actions=output:1,bundle_load(eth_src,0,hrw,ofport,NXM_NX_REG0[16..31],slaves:1),output:2
actions=resubmit:1,resubmit(2),resubmit(,3),resubmit(2,3)
send_flow_rem,actions=output:1,output:NXM_NX_REG0,output:2,output:reg1[16..31],output:3
check_overlap,actions=output:1,exit,output:2
tcp,actions=fin_timeout(idle_timeout=5,hard_timeout=15)
actions=controller(max_len=123,reason=invalid_ttl,id=555)
actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678,sampling_port=56789)
ip,actions=ct(commit,zone=5)
ip,actions=ct(commit,exec(load(1->NXM_NX_CT_MARK[])))
ip,actions=ct(commit,exec(load(0x1->NXM_NX_CT_LABEL[])))
ip,actions=ct(commit,exec(load(0x1234567890ABCDEF->NXM_NX_CT_LABEL[32..95])))
ip,actions=ct(commit,exec(load(1->ct_mark)))
ip,actions=ct(commit,exec(load(0x1->ct_label[])))
ip,actions=ct(commit,exec(load(0x1234567890ABCDEF->ct_label[32..95])))
ip,actions=ct(commit,exec(set_field(0x1->ct_label)))
ip,ct_state=+trk,ct_label=0x1234567890abcdef12345678,actions=ct(commit)
actions=output(max_len=100,port=123)
actions=output(port=100,max_len=123)
actions=output(port=LOCAL,max_len=123)
actions=output(port=IN_PORT,max_len=123)
_ATEOF


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:446: ovs-ofctl parse-flows flows.txt
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:446"
( $at_check_trace; ovs-ofctl parse-flows flows.txt

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:446"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:448: sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout"
at_fn_check_prepare_trace "ovs-ofctl.at:448"
( $at_check_trace; sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "usable protocols: OXM,NXM+table_id
chosen protocol: NXM+table_id
NXT_FLOW_MOD: ADD table:255 tcp,tp_src=123 actions=FLOOD
NXT_FLOW_MOD: ADD table:255 in_port=LOCAL,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=drop
NXT_FLOW_MOD: ADD table:255 pkt_mark=0xbb actions=load:0xaa->NXM_NX_PKT_MARK[]
NXT_FLOW_MOD: ADD table:255 udp,dl_vlan_pcp=7 idle:5 actions=strip_vlan,output:0
NXT_FLOW_MOD: ADD table:255 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
NXT_FLOW_MOD: ADD table:255 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
NXT_FLOW_MOD: ADD table:255 priority=60000 cookie:0x123456789abcdef hard:10 actions=CONTROLLER:65535
NXT_FLOW_MOD: ADD table:255 actions=note:41.42.43.00.00.00,note:00.01.02.03.04.05.06.07.00.00.00.00.00.00,note:00.00.00.00.00.00
NXT_FLOW_MOD: ADD table:255 tcp,tun_id=0x1234,tp_src=0x1230/0xfff0 cookie:0x5678 actions=FLOOD
NXT_FLOW_MOD: ADD table:255 actions=set_tunnel:0x1234,set_tunnel64:0x9876,set_tunnel64:0x123456789
NXT_FLOW_MOD: ADD table:255 actions=multipath(eth_src,50,hrw,12,0,NXM_NX_REG0[0..3]),multipath(symmetric_l4,1024,iter_hash,5000,5050,NXM_NX_REG0[0..12])
NXT_FLOW_MOD: ADD table:1 actions=drop
NXT_FLOW_MOD: ADD table:255 tun_id=0x1234000056780000/0xffff0000ffff0000 actions=drop
NXT_FLOW_MOD: ADD table:255 metadata=0x1234000056780000/0xffff0000ffff0000 actions=drop
NXT_FLOW_MOD: ADD table:255 actions=bundle(eth_src,50,active_backup,ofport,slaves:1)
NXT_FLOW_MOD: ADD table:255 actions=bundle(symmetric_l4,60,hrw,ofport,slaves:2,3)
NXT_FLOW_MOD: ADD table:255 actions=bundle(symmetric_l4,60,hrw,ofport,slaves:)
NXT_FLOW_MOD: ADD table:255 actions=output:1,bundle(eth_src,0,hrw,ofport,slaves:1),output:2
NXT_FLOW_MOD: ADD table:255 actions=bundle_load(eth_src,50,active_backup,ofport,NXM_NX_REG0[],slaves:1)
NXT_FLOW_MOD: ADD table:255 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..15],slaves:2,3)
NXT_FLOW_MOD: ADD table:255 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..15],slaves:2,3)
NXT_FLOW_MOD: ADD table:255 actions=bundle_load(symmetric_l4,60,hrw,ofport,NXM_NX_REG0[0..30],slaves:)
NXT_FLOW_MOD: ADD table:255 actions=output:1,bundle_load(eth_src,0,hrw,ofport,NXM_NX_REG0[16..31],slaves:1),output:2
NXT_FLOW_MOD: ADD table:255 actions=resubmit:1,resubmit:2,resubmit(,3),resubmit(2,3)
NXT_FLOW_MOD: ADD table:255 send_flow_rem actions=output:1,output:NXM_NX_REG0[],output:2,output:NXM_NX_REG1[16..31],output:3
NXT_FLOW_MOD: ADD table:255 check_overlap actions=output:1,exit,output:2
NXT_FLOW_MOD: ADD table:255 tcp actions=fin_timeout(idle_timeout=5,hard_timeout=15)
NXT_FLOW_MOD: ADD table:255 actions=controller(reason=invalid_ttl,max_len=123,id=555)
NXT_FLOW_MOD: ADD table:255 actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
NXT_FLOW_MOD: ADD table:255 actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678,sampling_port=56789)
NXT_FLOW_MOD: ADD table:255 ip actions=ct(commit,zone=5)
NXT_FLOW_MOD: ADD table:255 ip actions=ct(commit,exec(load:0x1->NXM_NX_CT_MARK[]))
NXT_FLOW_MOD: ADD table:255 ip actions=ct(commit,exec(load:0x1->NXM_NX_CT_LABEL[0..63],load:0->NXM_NX_CT_LABEL[64..127]))
NXT_FLOW_MOD: ADD table:255 ip actions=ct(commit,exec(load:0x1234567890abcdef->NXM_NX_CT_LABEL[32..95]))
NXT_FLOW_MOD: ADD table:255 ip actions=ct(commit,exec(load:0x1->NXM_NX_CT_MARK[]))
NXT_FLOW_MOD: ADD table:255 ip actions=ct(commit,exec(load:0x1->NXM_NX_CT_LABEL[0..63],load:0->NXM_NX_CT_LABEL[64..127]))
NXT_FLOW_MOD: ADD table:255 ip actions=ct(commit,exec(load:0x1234567890abcdef->NXM_NX_CT_LABEL[32..95]))
NXT_FLOW_MOD: ADD table:255 ip actions=ct(commit,exec(load:0x1->NXM_NX_CT_LABEL[0..63],load:0->NXM_NX_CT_LABEL[64..127]))
NXT_FLOW_MOD: ADD table:255 ct_state=+trk,ct_label=0x1234567890abcdef12345678,ip actions=ct(commit)
NXT_FLOW_MOD: ADD table:255 actions=output(port=123,max_len=100)
NXT_FLOW_MOD: ADD table:255 actions=output(port=100,max_len=123)
NXT_FLOW_MOD: ADD table:255 actions=output(port=LOCAL,max_len=123)
NXT_FLOW_MOD: ADD table:255 actions=output(port=IN_PORT,max_len=123)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:448"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_402
#AT_START_403
at_fn_group_banner 403 'ovs-ofctl.at:497' \
  "ovs-ofctl -F nxm parse-flows" "                   " 21
at_xfail=no
(
  $as_echo "403. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

cat >flows.txt <<'_ATEOF'

# comment
tcp,tp_src=123,actions=flood
in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=drop
arp,dl_src=00:0A:E4:25:6B:B0,arp_sha=00:0A:E4:25:6B:B0 actions=drop
ipv6,ipv6_label=0x12345 actions=2
ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5 actions=3
ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5/64 actions=4
ipv6,ipv6_dst=2001:db8:3c4d:1:2:3:4:5/127 actions=5
tcp6,ipv6_src=2001:db8:3c4d:1::1,tp_dst=80 actions=drop
udp6,ipv6_src=2001:db8:3c4d:1::3,tp_dst=53 actions=drop
in_port=3 icmp6,ipv6_src=2001:db8:3c4d:1::1,icmp_type=134 actions=drop
udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
icmp6,icmp_type=135,nd_target=FEC0::1234:F045:8FFF:1111:FE4E:0571 actions=drop
icmp6,icmp_type=135,nd_target=FEC0::1234:F045:8FFF:1111:FE4F:0571/112 actions=drop
icmp6,icmp_type=135,nd_sll=00:0A:E4:25:6B:B0 actions=drop
icmp6,icmp_type=136,nd_target=FEC0::1234:F045:8FFF:1111:FE4E:0571,nd_tll=00:0A:E4:25:6B:B1 actions=drop
icmp6,icmp_type=136,nd_target=FEC0::1234:F045:8FFF:1111:FE00:0000/96,nd_tll=00:0A:E4:25:6B:B1 actions=drop
cookie=0x123456789abcdef hard_timeout=10 priority=60000 actions=controller
actions=note:41.42.43,note:00.01.02.03.04.05.06.07,note
tun_id=0x1234,cookie=0x5678,actions=flood
actions=drop
tun_id=0x1234000056780000/0xffff0000ffff0000,actions=drop
dl_dst=01:00:00:00:00:00/01:00:00:00:00:00,actions=drop
dl_dst=00:00:00:00:00:00/01:00:00:00:00:00,actions=drop
dl_dst=aa:bb:cc:dd:ee:ff/fe:ff:ff:ff:ff:ff,actions=drop
dl_dst=aa:bb:cc:dd:ee:ff/00:00:00:00:00:00,actions=drop
actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678,sampling_port=56789)
ip,actions=ct(commit,zone=5)
ip,actions=ct(commit,exec(load(1->NXM_NX_CT_MARK[])))
ip,actions=ct(commit,exec(load(0x1->NXM_NX_CT_LABEL[])))
_ATEOF

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:533: ovs-ofctl -F nxm parse-flows flows.txt"
at_fn_check_prepare_trace "ovs-ofctl.at:533"
( $at_check_trace; ovs-ofctl -F nxm parse-flows flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:533"
$at_failed && at_fn_log_failure
$at_traceon; }


# The substitution for fec0:0: is because some libcs (e.g. MUSL)
# abbreviate a single zero and others (e.g. glibc) don't.
{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:537: sed 's/ (xid=0x[0-9a-fA-F]*)//
s/fec0:0:/fec0::/g' stdout"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:537"
( $at_check_trace; sed 's/ (xid=0x[0-9a-fA-F]*)//
s/fec0:0:/fec0::/g' stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "usable protocols: NXM,OXM
chosen protocol: NXM-table_id
NXT_FLOW_MOD: ADD tcp,tp_src=123 actions=FLOOD
NXT_FLOW_MOD: ADD in_port=LOCAL,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=drop
NXT_FLOW_MOD: ADD arp,dl_src=00:0a:e4:25:6b:b0,arp_sha=00:0a:e4:25:6b:b0 actions=drop
NXT_FLOW_MOD: ADD ipv6,ipv6_label=0x12345 actions=output:2
NXT_FLOW_MOD: ADD ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5 actions=output:3
NXT_FLOW_MOD: ADD ipv6,ipv6_src=2001:db8:3c4d:1::/64 actions=output:4
NXT_FLOW_MOD: ADD ipv6,ipv6_dst=2001:db8:3c4d:1:2:3:4:4/127 actions=output:5
NXT_FLOW_MOD: ADD tcp6,ipv6_src=2001:db8:3c4d:1::1,tp_dst=80 actions=drop
NXT_FLOW_MOD: ADD udp6,ipv6_src=2001:db8:3c4d:1::3,tp_dst=53 actions=drop
NXT_FLOW_MOD: ADD icmp6,in_port=3,ipv6_src=2001:db8:3c4d:1::1,icmp_type=134 actions=drop
NXT_FLOW_MOD: ADD udp,dl_vlan_pcp=7 idle:5 actions=strip_vlan,output:0
NXT_FLOW_MOD: ADD tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
NXT_FLOW_MOD: ADD udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
NXT_FLOW_MOD: ADD icmp6,icmp_type=135,nd_target=fec0::1234:f045:8fff:1111:fe4e:571 actions=drop
NXT_FLOW_MOD: ADD icmp6,icmp_type=135,nd_target=fec0::1234:f045:8fff:1111:fe4f:0/112 actions=drop
NXT_FLOW_MOD: ADD icmp6,icmp_type=135,nd_sll=00:0a:e4:25:6b:b0 actions=drop
NXT_FLOW_MOD: ADD icmp6,icmp_type=136,nd_target=fec0::1234:f045:8fff:1111:fe4e:571,nd_tll=00:0a:e4:25:6b:b1 actions=drop
NXT_FLOW_MOD: ADD icmp6,icmp_type=136,nd_target=fec0::1234:f045:8fff:1111::/96,nd_tll=00:0a:e4:25:6b:b1 actions=drop
NXT_FLOW_MOD: ADD priority=60000 cookie:0x123456789abcdef hard:10 actions=CONTROLLER:65535
NXT_FLOW_MOD: ADD actions=note:41.42.43.00.00.00,note:00.01.02.03.04.05.06.07.00.00.00.00.00.00,note:00.00.00.00.00.00
NXT_FLOW_MOD: ADD tun_id=0x1234 cookie:0x5678 actions=FLOOD
NXT_FLOW_MOD: ADD actions=drop
NXT_FLOW_MOD: ADD tun_id=0x1234000056780000/0xffff0000ffff0000 actions=drop
NXT_FLOW_MOD: ADD dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=drop
NXT_FLOW_MOD: ADD dl_dst=00:00:00:00:00:00/01:00:00:00:00:00 actions=drop
NXT_FLOW_MOD: ADD dl_dst=aa:bb:cc:dd:ee:ff/fe:ff:ff:ff:ff:ff actions=drop
NXT_FLOW_MOD: ADD actions=drop
NXT_FLOW_MOD: ADD actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
NXT_FLOW_MOD: ADD actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678,sampling_port=56789)
NXT_FLOW_MOD: ADD ip actions=ct(commit,zone=5)
NXT_FLOW_MOD: ADD ip actions=ct(commit,exec(load:0x1->NXM_NX_CT_MARK[]))
NXT_FLOW_MOD: ADD ip actions=ct(commit,exec(load:0x1->NXM_NX_CT_LABEL[0..63],load:0->NXM_NX_CT_LABEL[64..127]))
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:537"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_403
#AT_START_404
at_fn_group_banner 404 'ovs-ofctl.at:576' \
  "ovs-ofctl -F nxm -mmm parse-flows" "              " 21
at_xfail=no
(
  $as_echo "404. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

cat >flows.txt <<'_ATEOF'

# comment
tcp,tp_src=123,actions=flood
in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=drop
arp,dl_src=00:0A:E4:25:6B:B0,arp_sha=00:0A:E4:25:6B:B0 actions=drop
ipv6,ipv6_label=0x12345 actions=2
ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5 actions=3
ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5/64 actions=4
ipv6,ipv6_dst=2001:db8:3c4d:1:2:3:4:5/127 actions=5
tcp6,ipv6_src=2001:db8:3c4d:1::1,tp_dst=80 actions=drop
udp6,ipv6_src=2001:db8:3c4d:1::3,tp_dst=53 actions=drop
sctp6,ipv6_src=2001:db8:3c4d:1::5,tp_dst=309 actions=drop
in_port=3 icmp6,ipv6_src=2001:db8:3c4d:1::1,icmp_type=134 actions=drop
udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
sctp,nw_src=192.168.0.3,tp_dst=309 actions=pop_queue,output:1
icmp6,icmp_type=135,nd_target=FEC0::1234:F045:8FFF:1111:FE4E:0571 actions=drop
icmp6,icmp_type=135,nd_sll=00:0A:E4:25:6B:B0 actions=drop
icmp6,icmp_type=136,nd_target=FEC0::1234:F045:8FFF:1111:FE4E:0571,nd_tll=00:0A:E4:25:6B:B1 actions=drop
cookie=0x123456789abcdef hard_timeout=10 priority=60000 actions=controller
actions=note:41.42.43,note:00.01.02.03.04.05.06.07,note
tun_id=0x1234,cookie=0x5678,actions=flood
actions=drop
reg0=123,actions=move:reg0[0..5]->reg1[26..31],load:55->reg2,move:reg0->tun_id[0..31],move:reg0[0..15]->vlan_tci
actions=move:OXM_OF_ETH_DST[]->OXM_OF_ETH_SRC[]
actions=push:reg0[0..31],pop:NXM_NX_REG0[]
reg0=123,actions=move:reg0[0..5]->reg1[26..31],load:55->reg2,move:reg0->tun_id[0..31],move:reg0[0..15]->vlan_tci
actions=move:eth_dst->eth_src[]
actions=push:reg0[0..31],pop:reg0
vlan_tci=0x1123/0x1fff,actions=drop
actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678,sampling_port=56789)
ip,actions=ct(commit,zone=5)
ip,actions=ct(commit,exec(load(1->NXM_NX_CT_MARK[])))
ip,actions=ct(commit,exec(load(1->NXM_NX_CT_LABEL[])))
ip,actions=ct(commit,exec(set_field(1->ct_label)))
_ATEOF

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:615: ovs-ofctl -F nxm -mmm parse-flows flows.txt"
at_fn_check_prepare_trace "ovs-ofctl.at:615"
( $at_check_trace; ovs-ofctl -F nxm -mmm parse-flows flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:616: sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout"
at_fn_check_prepare_trace "ovs-ofctl.at:616"
( $at_check_trace; sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "usable protocols: NXM,OXM
chosen protocol: NXM-table_id
NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_SRC(007b) actions=FLOOD
NXT_FLOW_MOD: ADD NXM_OF_IN_PORT(fffe), NXM_OF_ETH_SRC(000ae4256bb0), NXM_OF_VLAN_TCI_W(1009/1fff) actions=drop
NXT_FLOW_MOD: ADD NXM_OF_ETH_SRC(000ae4256bb0), NXM_OF_ETH_TYPE(0806), NXM_NX_ARP_SHA(000ae4256bb0) actions=drop
NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_LABEL(00012345) actions=output:2
NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC(20010db83c4d00010002000300040005) actions=output:3
NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000) actions=output:4
NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_DST_W(20010db83c4d00010002000300040004/fffffffffffffffffffffffffffffffe) actions=output:5
NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC(20010db83c4d00010000000000000001), NXM_OF_IP_PROTO(06), NXM_OF_TCP_DST(0050) actions=drop
NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC(20010db83c4d00010000000000000003), NXM_OF_IP_PROTO(11), NXM_OF_UDP_DST(0035) actions=drop
NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC(20010db83c4d00010000000000000005), NXM_OF_IP_PROTO(84), OXM_OF_SCTP_DST(0135) actions=drop
NXT_FLOW_MOD: ADD NXM_OF_IN_PORT(0003), NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC(20010db83c4d00010000000000000001), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(86) actions=drop
NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(0800), NXM_OF_VLAN_TCI_W(f000/f000), NXM_OF_IP_PROTO(11) idle:5 actions=strip_vlan,output:0
NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(0800), NXM_OF_IP_SRC(c0a80003), NXM_OF_IP_PROTO(06), NXM_OF_TCP_DST(0050) actions=set_queue:37,output:1
NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(0800), NXM_OF_IP_SRC(c0a80003), NXM_OF_IP_PROTO(11), NXM_OF_UDP_DST(0035) actions=pop_queue,output:1
NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(0800), NXM_OF_IP_SRC(c0a80003), NXM_OF_IP_PROTO(84), OXM_OF_SCTP_DST(0135) actions=pop_queue,output:1
NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(87), NXM_NX_ND_TARGET(fec000001234f0458fff1111fe4e0571) actions=drop
NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(87), NXM_NX_ND_SLL(000ae4256bb0) actions=drop
NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(88), NXM_NX_ND_TARGET(fec000001234f0458fff1111fe4e0571), NXM_NX_ND_TLL(000ae4256bb1) actions=drop
NXT_FLOW_MOD: ADD <any> cookie:0x123456789abcdef hard:10 pri:60000 actions=CONTROLLER:65535
NXT_FLOW_MOD: ADD <any> actions=note:41.42.43.00.00.00,note:00.01.02.03.04.05.06.07.00.00.00.00.00.00,note:00.00.00.00.00.00
NXT_FLOW_MOD: ADD NXM_NX_TUN_ID(0000000000001234) cookie:0x5678 actions=FLOOD
NXT_FLOW_MOD: ADD <any> actions=drop
NXT_FLOW_MOD: ADD NXM_NX_REG0(0000007b) actions=move:NXM_NX_REG0[0..5]->NXM_NX_REG1[26..31],load:0x37->NXM_NX_REG2[],move:NXM_NX_REG0[]->NXM_NX_TUN_ID[0..31],move:NXM_NX_REG0[0..15]->NXM_OF_VLAN_TCI[]
NXT_FLOW_MOD: ADD <any> actions=move:NXM_OF_ETH_DST[]->NXM_OF_ETH_SRC[]
NXT_FLOW_MOD: ADD <any> actions=push:NXM_NX_REG0[],pop:NXM_NX_REG0[]
NXT_FLOW_MOD: ADD NXM_NX_REG0(0000007b) actions=move:NXM_NX_REG0[0..5]->NXM_NX_REG1[26..31],load:0x37->NXM_NX_REG2[],move:NXM_NX_REG0[]->NXM_NX_TUN_ID[0..31],move:NXM_NX_REG0[0..15]->NXM_OF_VLAN_TCI[]
NXT_FLOW_MOD: ADD <any> actions=move:NXM_OF_ETH_DST[]->NXM_OF_ETH_SRC[]
NXT_FLOW_MOD: ADD <any> actions=push:NXM_NX_REG0[],pop:NXM_NX_REG0[]
NXT_FLOW_MOD: ADD NXM_OF_VLAN_TCI_W(1123/1fff) actions=drop
NXT_FLOW_MOD: ADD <any> actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
NXT_FLOW_MOD: ADD <any> actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678,sampling_port=56789)
NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(0800) actions=ct(commit,zone=5)
NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(0800) actions=ct(commit,exec(load:0x1->NXM_NX_CT_MARK[]))
NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(0800) actions=ct(commit,exec(load:0x1->NXM_NX_CT_LABEL[0..63],load:0->NXM_NX_CT_LABEL[64..127]))
NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(0800) actions=ct(commit,exec(load:0x1->NXM_NX_CT_LABEL[0..63],load:0->NXM_NX_CT_LABEL[64..127]))
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:616"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_404
#AT_START_405
at_fn_group_banner 405 'ovs-ofctl.at:657' \
  "ovs-ofctl parse-nx-match" "                       " 21
at_xfail=no
(
  $as_echo "405. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >nx-match.txt <<'_ATEOF'
<any>

# in port
NXM_OF_IN_PORT(0000)
NXM_OF_IN_PORT(fffe)

# eth dst
NXM_OF_ETH_DST(0002e30f80a4)
NXM_OF_ETH_DST_W(010000000000/010000000000)
NXM_OF_ETH_DST_W(000000000000/010000000000)
NXM_OF_ETH_DST_W(ffffffffffff/010000000000)
NXM_OF_ETH_DST_W(0002e30f80a4/ffffffffffff)
NXM_OF_ETH_DST_W(60175619848f/000000000000)
NXM_OF_ETH_DST_W(0002e30f80a4/feffffffffff)
NXM_OF_ETH_DST_W(60175619848f/5a5a5a5a5a5a)

# eth src
NXM_OF_ETH_SRC(020898456ddb)
NXM_OF_ETH_SRC_W(012345abcdef/ffffff555555)
NXM_OF_ETH_SRC_W(020898456ddb/ffffffffffff)
NXM_OF_ETH_SRC_W(020898456ddb/000000000000)

# eth type
NXM_OF_ETH_TYPE(0800)
NXM_OF_ETH_TYPE(0800) NXM_OF_IN_PORT(0012)

# vlan tci
NXM_OF_VLAN_TCI(f009)
NXM_OF_VLAN_TCI(f009) NXM_OF_VLAN_TCI(f009)
NXM_OF_VLAN_TCI(0000)           # Packets without 802.1Q header.
NXM_OF_VLAN_TCI(3123)           # Packets with VID=123, PCP=1.
NXM_OF_VLAN_TCI(0123)           # Does not make sense (but supported anyway)
NXM_OF_VLAN_TCI_W(1123/1fff)    # Packets with VID=123, any PCP.
NXM_OF_VLAN_TCI_W(1123/ffff)    # Packets with VID=123, PCP=0
NXM_OF_VLAN_TCI_W(1123/0000)    # Packets with or without 802.1Q header
NXM_OF_VLAN_TCI_W(f000/f000)    # Packets with any VID, PCP=7.
NXM_OF_VLAN_TCI_W(0000/e000)    # No 802.1Q or with VID=0

# IP TOS
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_TOS(f0)
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_TOS(41)
NXM_OF_IP_TOS(f0)

# IP ECN
NXM_OF_ETH_TYPE(0800) NXM_NX_IP_ECN(03)
NXM_OF_ETH_TYPE(0800) NXM_NX_IP_ECN(06)
NXM_NX_IP_ECN(03)

# IP protocol
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(01)
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(05)
NXM_OF_IP_PROTO(05)

# IP TTL
NXM_OF_ETH_TYPE(0800) NXM_NX_IP_TTL(80)
NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_TTL(ff)
NXM_NX_IP_TTL(80)

# IP source
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_SRC(ac100014)
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_SRC_W(C0a80000/FFFF0000)
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_SRC_W(C0a80000/5a5a5a5a)
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_SRC_W(C0a80000/ffffffff)
NXM_OF_ETH_TYPE(0806) NXM_OF_IP_SRC(ac100014)
NXM_OF_IP_SRC_W(C0D80000/FFFF0000)

# IP destination
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_DST(ac100014)
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_DST_W(C0a88012/FFFF0000)
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_DST_W(C0a80000/5a5a5a5a)
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_DST_W(C0a80000/ffffffff)
NXM_OF_IP_DST(ac100014)
NXM_OF_ETH_TYPE(0806) NXM_OF_IP_DST_W(C0D80000/FFFF0000)

# TCP source port
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_SRC(4231)
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_SRC_W(5050/F0F0)
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_SRC_W(5050/ffff)
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(07) NXM_OF_TCP_SRC(4231)

# TCP destination port
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_DST(4231)
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_DST_W(FDE0/FFF0)
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_TCP_DST_W(FDE0/ffff)
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(07) NXM_OF_TCP_DST(4231)

# TCP flags
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_NX_TCP_FLAGS(0131)
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_NX_TCP_FLAGS_W(00F0/0FF0)
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_NX_TCP_FLAGS_W(01E2/ffff)
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(07) NXM_NX_TCP_FLAGS(0fff)

# UDP source port
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_SRC(8732)
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_SRC_W(0132/01FF)
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_SRC_W(0132/ffff)
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(06) NXM_OF_UDP_SRC(7823)

# UDP destination port
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_DST(1782)
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_DST_W(5005/F00F)
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(11) NXM_OF_UDP_DST_W(5005/FFFF)
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(02) NXM_OF_UDP_DST(1293)

# ICMP type
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(01) NXM_OF_ICMP_TYPE(12)
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(00) NXM_OF_ICMP_TYPE(10)

# ICMP code
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(01) NXM_OF_ICMP_CODE(12)
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(00) NXM_OF_ICMP_CODE(10)
NXM_OF_ETH_TYPE(0800) NXM_OF_ICMP_CODE(10)
NXM_OF_ICMP_CODE(00)

# ARP opcode
NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_OP(0001)
NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_OP(1111)
NXM_OF_ETH_TYPE(0000) NXM_OF_ARP_OP(0001)
NXM_OF_ARP_OP(0001)
NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_OP(0001) NXM_OF_ARP_OP(0001)

# ARP source protocol address
NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_SPA(ac100014)
NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_SPA_W(C0a81234/FFFFFF00)
NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_SPA_W(C0a81234/aaaaaa00)
NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_SPA_W(C0a81234/ffffffff)
NXM_OF_ETH_TYPE(0800) NXM_OF_ARP_SPA(ac100014)
NXM_OF_ARP_SPA_W(C0D80000/FFFF0000)

# ARP destination protocol address
NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_TPA(ac100014)
NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_TPA_W(C0a812fe/FFFFFF00)
NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_TPA_W(C0a81234/77777777)
NXM_OF_ETH_TYPE(0806) NXM_OF_ARP_TPA_W(C0a81234/ffffffff)
NXM_OF_ETH_TYPE(0800) NXM_OF_ARP_TPA(ac100014)
NXM_OF_ARP_TPA_W(C0D80000/FFFF0000)

# ARP source hardware address
NXM_OF_ETH_TYPE(0806) NXM_NX_ARP_SHA(0002e30f80a4)
NXM_OF_ETH_TYPE(0800) NXM_NX_ARP_SHA(0002e30f80a4)
NXM_NX_ARP_SHA(0002e30f80a4)

# ARP destination hardware address
NXM_OF_ETH_TYPE(0806) NXM_NX_ARP_THA(0002e30f80a4)
NXM_OF_ETH_TYPE(0800) NXM_NX_ARP_THA(0002e30f80a4)
NXM_NX_ARP_THA(0002e30f80a4)

# RARP opcode
NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_OP(0003)
NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_OP(1111)
NXM_OF_ETH_TYPE(0000) NXM_OF_ARP_OP(0003)
NXM_OF_ARP_OP(0003)
NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_OP(0003) NXM_OF_ARP_OP(0003)

# RARP source protocol address
NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_SPA(ac100014)
NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_SPA_W(C0a81200/FFFFFF00)
NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_SPA_W(C0a81234/aaaaaa00)
NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_SPA_W(C0a81234/ffffffff)
NXM_OF_ETH_TYPE(0800) NXM_OF_ARP_SPA(ac100014)
NXM_OF_ARP_SPA_W(C0D80000/FFFF0000)

# RARP destination protocol address
NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_TPA(ac100014)
NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_TPA_W(C0a81200/FFFFFF00)
NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_TPA_W(C0a81234/77777777)
NXM_OF_ETH_TYPE(8035) NXM_OF_ARP_TPA_W(C0a81234/ffffffff)
NXM_OF_ETH_TYPE(0800) NXM_OF_ARP_TPA(ac100014)
NXM_OF_ARP_TPA_W(C0D80000/FFFF0000)

# RARP source hardware address
NXM_OF_ETH_TYPE(8035) NXM_NX_ARP_SHA(0002e30f80a4)
NXM_OF_ETH_TYPE(0800) NXM_NX_ARP_SHA(0002e30f80a4)
NXM_NX_ARP_SHA(0002e30f80a4)

# RARP destination hardware address
NXM_OF_ETH_TYPE(8035) NXM_NX_ARP_THA(0002e30f80a4)
NXM_OF_ETH_TYPE(0800) NXM_NX_ARP_THA(0002e30f80a4)
NXM_NX_ARP_THA(0002e30f80a4)

# IPv6 source
NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_SRC(20010db83c4d00010002000300040005)
NXM_OF_ETH_TYPE(0800) NXM_NX_IPV6_SRC(20010db83c4d00010002000300040005)
NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/5a5a5a5a5a5a5a5a0000000000000000)
NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffffffffffffffffffff)
NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/00000000000000000000000000000000)
NXM_OF_ETH_TYPE(0800) NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffffffff000000000000)

# IPv6 destination
NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_DST(20010db83c4d00010002000300040005)
NXM_OF_ETH_TYPE(0800) NXM_NX_IPV6_DST(20010db83c4d00010002000300040005)
NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_DST_W(20010db83c4d00010000000000000000/77777777777777777777777777777777)
NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffffffffffffffffffff)
NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_DST_W(00000000000000000000000000000000/00000000000000000000000000000000)
NXM_OF_ETH_TYPE(0800) NXM_NX_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)

# IPv6 Flow Label
NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_LABEL(1000000f)
NXM_NX_IPV6_LABEL(0000000f)
NXM_OF_ETH_TYPE(86dd) NXM_NX_IPV6_LABEL(0000000f)

# ND target address
NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(87) NXM_NX_ND_TARGET(20010db83c4d00010002000300040005)
NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(88) NXM_NX_ND_TARGET(20010db83c4d00010002000300040005)
NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(87) NXM_NX_ND_TARGET_W(20010db83c4d00010002000300040005/0123456789abcdeffedcba9876543210)
NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(87) NXM_NX_ND_TARGET_W(20010db83c4d00010002000300040005/ffffffffffffffffffffffffffffffff)
NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(87) NXM_NX_ND_TARGET_W(00000000000000000000000000000000/00000000000000000000000000000000)
NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(88) NXM_NX_ND_TARGET_W(20010db83c4d00010002000300040005/fedcba98765432100123456789abcdef)

# ND source hardware address
NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(87) NXM_NX_ND_TARGET(20010db83c4d00010002000300040005) NXM_NX_ND_SLL(0002e30f80a4)
NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(88) NXM_NX_ND_TARGET(20010db83c4d00010002000300040005) NXM_NX_ND_SLL(0002e30f80a4)
NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3b) NXM_NX_ICMPV6_TYPE(87) NXM_NX_ND_TARGET(20010db83c4d00010002000300040005) NXM_NX_ND_SLL(0002e30f80a4)
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(87) NXM_NX_ND_TARGET(20010db83c4d00010002000300040005) NXM_NX_ND_SLL(0002e30f80a4)

# ND destination hardware address
NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(88) NXM_NX_ND_TARGET(20010db83c4d00010002000300040005) NXM_NX_ND_TLL(0002e30f80a4)
NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(87) NXM_NX_ND_TARGET(20010db83c4d00010002000300040005) NXM_NX_ND_TLL(0002e30f80a4)
NXM_OF_ETH_TYPE(86dd) NXM_OF_IP_PROTO(3b) NXM_NX_ICMPV6_TYPE(87) NXM_NX_ND_TARGET(20010db83c4d00010002000300040005) NXM_NX_ND_TLL(0002e30f80a4)
NXM_OF_ETH_TYPE(0800) NXM_OF_IP_PROTO(3a) NXM_NX_ICMPV6_TYPE(88) NXM_NX_ND_TARGET(20010db83c4d00010002000300040005) NXM_NX_ND_TLL(0002e30f80a4)

# IPv4 fragments.
NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(00)
NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(01)
NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(02)
NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(03)
NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(00/03)
NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(00/fd)
NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(00/02)
NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(01/01)
NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(02/02)
NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(03/03)
NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(03/ff)
NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG_W(03/00)
NXM_OF_ETH_TYPE(0800) NXM_NX_IP_FRAG(f3)

# IPv6 fragments.
NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(00)
NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(01)
NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(02)
NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(03)
NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(00/03)
NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(00/01)
NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(00/02)
NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(01/01)
NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(02/02)
NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(03/03)
NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(03/00)
NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG_W(03/ff)
NXM_OF_ETH_TYPE(86dd) NXM_NX_IP_FRAG(f3)

# Flow cookie.
NXM_NX_COOKIE(00000000abcdef01)
NXM_NX_COOKIE_W(84200000abcdef01/84200000FFFFFFFF)
NXM_NX_COOKIE_W(84200000abcdef01/ffffffffffffffff)
NXM_NX_COOKIE_W(0000000000000000/0000000000000000)

# Tunnel ID.
NXM_NX_TUN_ID(00000000abcdef01)
NXM_NX_TUN_ID_W(84200000abcdef01/84200000FFFFFFFF)
NXM_NX_TUN_ID_W(84200000abcdef01/FFFFFFFFFFFFFFFF)
NXM_NX_TUN_ID_W(0000000000000000/0000000000000000)

# Register 0.
NXM_NX_REG0(acebdf56)
NXM_NX_REG0_W(a0e0d050/f0f0f0f0)
NXM_NX_REG0_W(a0e0d050/ffffffff)
NXM_NX_REG0_W(00000000/00000000)

# Connection tracking fields,
NXM_OF_ETH_TYPE(0800) NXM_NX_CT_STATE(00000020)
NXM_OF_ETH_TYPE(0800) NXM_NX_CT_STATE(00001080)
NXM_OF_ETH_TYPE(0800) NXM_NX_CT_STATE_W(00000020/00000020)
NXM_OF_ETH_TYPE(0800) NXM_NX_CT_STATE_W(00000020/000000F0)
NXM_OF_ETH_TYPE(0800) NXM_NX_CT_ZONE(5a5a)
NXM_OF_ETH_TYPE(0800) NXM_NX_CT_MARK(5a5a5a5a)
NXM_OF_ETH_TYPE(0800) NXM_NX_CT_MARK_W(5a5a5a5a/fefefefe)
NXM_OF_ETH_TYPE(0800) NXM_NX_CT_LABEL(1234567890abcdef1234567890abcdef)
NXM_OF_ETH_TYPE(0800) NXM_NX_CT_LABEL_W(10203040506070809000a0b0c0d0e0f0/f1f2f3f4f5f6f7f8f9f0fafbfcfdfeff)

# dp_hash (testing experimenter OXM).
NXM_NX_DP_HASH(01234567)
NXOXM_ET_DP_HASH(01234567)

# Invalid field number.
01020304(1111/3333)

# Invalid field numbers (experimenter OXM).
ffff020800002320(11112222)
ffff030800002320(1111/3333)
_ATEOF

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:952: ovs-ofctl -vPATTERN:'console:%c|%p|%m' --strict parse-nx-match < nx-match.txt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-ofctl.at:952"
( $at_check_trace; ovs-ofctl -vPATTERN:'console:%c|%p|%m' --strict parse-nx-match < nx-match.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo >>"$at_stdout"; $as_echo "<any>

# in port
NXM_OF_IN_PORT(0000)
NXM_OF_IN_PORT(fffe)

# eth dst
NXM_OF_ETH_DST(0002e30f80a4)
NXM_OF_ETH_DST_W(010000000000/010000000000)
NXM_OF_ETH_DST_W(000000000000/010000000000)
nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
NXM_OF_ETH_DST(0002e30f80a4)
nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
NXM_OF_ETH_DST_W(0002e30f80a4/feffffffffff)
nx_pull_match() returned error OFPBMC_BAD_WILDCARDS

# eth src
NXM_OF_ETH_SRC(020898456ddb)
nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
NXM_OF_ETH_SRC(020898456ddb)
nx_pull_match() returned error OFPBMC_BAD_WILDCARDS

# eth type
NXM_OF_ETH_TYPE(0800)
NXM_OF_IN_PORT(0012), NXM_OF_ETH_TYPE(0800)

# vlan tci
NXM_OF_VLAN_TCI(f009)
nx_pull_match() returned error OFPBMC_DUP_FIELD
NXM_OF_VLAN_TCI(0000)
NXM_OF_VLAN_TCI(3123)
NXM_OF_VLAN_TCI(0123)
NXM_OF_VLAN_TCI_W(1123/1fff)
NXM_OF_VLAN_TCI(1123)
nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
NXM_OF_VLAN_TCI_W(f000/f000)
NXM_OF_VLAN_TCI_W(0000/e000)

# IP TOS
NXM_OF_ETH_TYPE(0800), NXM_OF_IP_TOS(f0)
nx_pull_match() returned error OFPBMC_BAD_VALUE
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# IP ECN
NXM_OF_ETH_TYPE(0800), NXM_NX_IP_ECN(03)
nx_pull_match() returned error OFPBMC_BAD_VALUE
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# IP protocol
NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(01)
NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(05)
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# IP TTL
NXM_OF_ETH_TYPE(0800), NXM_NX_IP_TTL(80)
NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_TTL(ff)
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# IP source
NXM_OF_ETH_TYPE(0800), NXM_OF_IP_SRC(ac100014)
NXM_OF_ETH_TYPE(0800), NXM_OF_IP_SRC_W(c0a80000/ffff0000)
nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
NXM_OF_ETH_TYPE(0800), NXM_OF_IP_SRC(c0a80000)
nx_pull_match() returned error OFPBMC_BAD_PREREQ
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# IP destination
NXM_OF_ETH_TYPE(0800), NXM_OF_IP_DST(ac100014)
nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
NXM_OF_ETH_TYPE(0800), NXM_OF_IP_DST(c0a80000)
nx_pull_match() returned error OFPBMC_BAD_PREREQ
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# TCP source port
NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_SRC(4231)
NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_SRC_W(5050/f0f0)
NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_SRC(5050)
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# TCP destination port
NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_DST(4231)
NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_DST_W(fde0/fff0)
NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_DST(fde0)
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# TCP flags
NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_NX_TCP_FLAGS(0131)
NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_NX_TCP_FLAGS_W(00f0/0ff0)
NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_NX_TCP_FLAGS(01e2)
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# UDP source port
NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_SRC(8732)
NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_SRC_W(0132/01ff)
NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_SRC(0132)
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# UDP destination port
NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_DST(1782)
NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_DST_W(5005/f00f)
NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(11), NXM_OF_UDP_DST(5005)
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# ICMP type
NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(01), NXM_OF_ICMP_TYPE(12)
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# ICMP code
NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(01), NXM_OF_ICMP_CODE(12)
nx_pull_match() returned error OFPBMC_BAD_PREREQ
nx_pull_match() returned error OFPBMC_BAD_PREREQ
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# ARP opcode
NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_OP(0001)
nx_pull_match() returned error OFPBMC_BAD_VALUE
nx_pull_match() returned error OFPBMC_BAD_PREREQ
nx_pull_match() returned error OFPBMC_BAD_PREREQ
nx_pull_match() returned error OFPBMC_DUP_FIELD

# ARP source protocol address
NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_SPA(ac100014)
nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_SPA(c0a81234)
nx_pull_match() returned error OFPBMC_BAD_PREREQ
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# ARP destination protocol address
NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_TPA(ac100014)
nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
NXM_OF_ETH_TYPE(0806), NXM_OF_ARP_TPA(c0a81234)
nx_pull_match() returned error OFPBMC_BAD_PREREQ
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# ARP source hardware address
NXM_OF_ETH_TYPE(0806), NXM_NX_ARP_SHA(0002e30f80a4)
nx_pull_match() returned error OFPBMC_BAD_PREREQ
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# ARP destination hardware address
NXM_OF_ETH_TYPE(0806), NXM_NX_ARP_THA(0002e30f80a4)
nx_pull_match() returned error OFPBMC_BAD_PREREQ
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# RARP opcode
NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_OP(0003)
nx_pull_match() returned error OFPBMC_BAD_VALUE
nx_pull_match() returned error OFPBMC_BAD_PREREQ
nx_pull_match() returned error OFPBMC_BAD_PREREQ
nx_pull_match() returned error OFPBMC_DUP_FIELD

# RARP source protocol address
NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_SPA(ac100014)
NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_SPA_W(c0a81200/ffffff00)
nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_SPA(c0a81234)
nx_pull_match() returned error OFPBMC_BAD_PREREQ
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# RARP destination protocol address
NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_TPA(ac100014)
NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_TPA_W(c0a81200/ffffff00)
nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
NXM_OF_ETH_TYPE(8035), NXM_OF_ARP_TPA(c0a81234)
nx_pull_match() returned error OFPBMC_BAD_PREREQ
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# RARP source hardware address
NXM_OF_ETH_TYPE(8035), NXM_NX_ARP_SHA(0002e30f80a4)
nx_pull_match() returned error OFPBMC_BAD_PREREQ
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# RARP destination hardware address
NXM_OF_ETH_TYPE(8035), NXM_NX_ARP_THA(0002e30f80a4)
nx_pull_match() returned error OFPBMC_BAD_PREREQ
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# IPv6 source
NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC(20010db83c4d00010002000300040005)
nx_pull_match() returned error OFPBMC_BAD_PREREQ
NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_SRC(20010db83c4d00010000000000000000)
nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# IPv6 destination
NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_DST(20010db83c4d00010002000300040005)
nx_pull_match() returned error OFPBMC_BAD_PREREQ
nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_DST(20010db83c4d00010000000000000000)
NXM_OF_ETH_TYPE(86dd)
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# IPv6 Flow Label
nx_pull_match() returned error OFPBMC_BAD_VALUE
nx_pull_match() returned error OFPBMC_BAD_PREREQ
NXM_OF_ETH_TYPE(86dd), NXM_NX_IPV6_LABEL(0000000f)

# ND target address
NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(87), NXM_NX_ND_TARGET(20010db83c4d00010002000300040005)
NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(88), NXM_NX_ND_TARGET(20010db83c4d00010002000300040005)
nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(87), NXM_NX_ND_TARGET(20010db83c4d00010002000300040005)
NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(87)
nx_pull_match() returned error OFPBMC_BAD_WILDCARDS

# ND source hardware address
NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(87), NXM_NX_ND_TARGET(20010db83c4d00010002000300040005), NXM_NX_ND_SLL(0002e30f80a4)
nx_pull_match() returned error OFPBMC_BAD_PREREQ
nx_pull_match() returned error OFPBMC_BAD_PREREQ
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# ND destination hardware address
NXM_OF_ETH_TYPE(86dd), NXM_OF_IP_PROTO(3a), NXM_NX_ICMPV6_TYPE(88), NXM_NX_ND_TARGET(20010db83c4d00010002000300040005), NXM_NX_ND_TLL(0002e30f80a4)
nx_pull_match() returned error OFPBMC_BAD_PREREQ
nx_pull_match() returned error OFPBMC_BAD_PREREQ
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# IPv4 fragments.
NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(00)
NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(01)
NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(02)
NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(03)
NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(00)
NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG_W(00/01)
NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG_W(00/02)
NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG_W(01/01)
NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG_W(02/02)
NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(03)
NXM_OF_ETH_TYPE(0800), NXM_NX_IP_FRAG(03)
nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
nx_pull_match() returned error OFPBMC_BAD_VALUE

# IPv6 fragments.
NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(00)
NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(01)
NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(02)
NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(03)
NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(00)
NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG_W(00/01)
NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG_W(00/02)
NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG_W(01/01)
NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG_W(02/02)
NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(03)
nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
NXM_OF_ETH_TYPE(86dd), NXM_NX_IP_FRAG(03)
nx_pull_match() returned error OFPBMC_BAD_VALUE

# Flow cookie.
NXM_NX_COOKIE(00000000abcdef01)
NXM_NX_COOKIE_W(84200000abcdef01/84200000ffffffff)
NXM_NX_COOKIE(84200000abcdef01)
<any>

# Tunnel ID.
NXM_NX_TUN_ID(00000000abcdef01)
NXM_NX_TUN_ID_W(84200000abcdef01/84200000ffffffff)
NXM_NX_TUN_ID(84200000abcdef01)
<any>

# Register 0.
NXM_NX_REG0(acebdf56)
NXM_NX_REG0_W(a0e0d050/f0f0f0f0)
NXM_NX_REG0(a0e0d050)
<any>

# Connection tracking fields,
NXM_OF_ETH_TYPE(0800), NXM_NX_CT_STATE_W(00000020/000000ff)
nx_pull_match() returned error OFPBMC_BAD_VALUE
NXM_OF_ETH_TYPE(0800), NXM_NX_CT_STATE_W(00000020/00000020)
NXM_OF_ETH_TYPE(0800), NXM_NX_CT_STATE_W(00000020/000000f0)
NXM_OF_ETH_TYPE(0800), NXM_NX_CT_ZONE(5a5a)
NXM_OF_ETH_TYPE(0800), NXM_NX_CT_MARK(5a5a5a5a)
NXM_OF_ETH_TYPE(0800), NXM_NX_CT_MARK_W(5a5a5a5a/fefefefe)
NXM_OF_ETH_TYPE(0800), NXM_NX_CT_LABEL(1234567890abcdef1234567890abcdef)
NXM_OF_ETH_TYPE(0800), NXM_NX_CT_LABEL_W(10203040506070809000a0b0c0d0e0f0/f1f2f3f4f5f6f7f8f9f0fafbfcfdfeff)

# dp_hash (testing experimenter OXM).
NXM_NX_DP_HASH(01234567)
NXM_NX_DP_HASH(01234567)

# Invalid field number.
nx_pull_match() returned error OFPBMC_BAD_FIELD

# Invalid field numbers (experimenter OXM).
nx_pull_match() returned error OFPBMC_BAD_FIELD
nx_pull_match() returned error OFPBMC_BAD_FIELD
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:952"
$at_failed && at_fn_log_failure
$at_traceon; }


# Check that at least the first warning made it.  (It's rate-limited
# so a variable number could show up, especially under valgrind etc.)
{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:1251: grep '1-bits in value' stderr | sed 1q"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-ofctl.at:1251"
( $at_check_trace; grep '1-bits in value' stderr | sed 1q
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "nx_match|WARN|Rejecting NXM/OXM entry 0:0:1:1:12 with 1-bits in value for bits wildcarded by the mask.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:1251"
$at_failed && at_fn_log_failure
$at_traceon; }


# Check that there wasn't any other stderr output.
{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:1256: grep -v '1-bits in value' stderr"
at_fn_check_prepare_trace "ovs-ofctl.at:1256"
( $at_check_trace; grep -v '1-bits in value' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-ofctl.at:1256"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_405
#AT_START_406
at_fn_group_banner 406 'ovs-ofctl.at:1259' \
  "ovs-ofctl parse-ofp10-match" "                    " 21
at_xfail=no
(
  $as_echo "406. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >test-data <<'_ATEOF'
# in_port=LOCAL
003820fe fffe xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx xxxx xx xx xxxx xxxxxxxx xxxxxxxx xxxx xxxx

# dl_src=00:01:02:03:04:05
003820fb xxxx 000102030405 xxxxxxxxxxxx xxxx xx xx xxxx xx xx xxxx xxxxxxxx xxxxxxxx xxxx xxxx

# dl_dst=10:20:30:40:50:60
003820f7 xxxx xxxxxxxxxxxx 102030405060 xxxx xx xx xxxx xx xx xxxx xxxxxxxx xxxxxxxx xxxx xxxx

# dl_vlan=291
003820fd xxxx xxxxxxxxxxxx xxxxxxxxxxxx 0123 xx xx xxxx xx xx xxxx xxxxxxxx xxxxxxxx xxxx xxxx

# dl_vlan_pcp=5
002820ff xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx 05 xx xxxx xx xx xxxx xxxxxxxx xxxxxxxx xxxx xxxx

# dl_vlan=291,dl_vlan_pcp=4
002820fd xxxx xxxxxxxxxxxx xxxxxxxxxxxx 0123 04 xx xxxx xx xx xxxx xxxxxxxx xxxxxxxx xxxx xxxx

# vlan_tci=0x0000
#  1: 38 -> 28
003820fd xxxx xxxxxxxxxxxx xxxxxxxxxxxx ffff xx xx xxxx xx xx xxxx xxxxxxxx xxxxxxxx xxxx xxxx

# vlan_tci=0x0000
# 20: 05 -> 00
002820fd xxxx xxxxxxxxxxxx xxxxxxxxxxxx ffff 05 xx xxxx xx xx xxxx xxxxxxxx xxxxxxxx xxxx xxxx

# dl_vlan=256,dl_vlan_pcp=7
# 18: f1 -> 01
# 20: ff -> 07
002820fd xxxx xxxxxxxxxxxx xxxxxxxxxxxx f100 ff xx xxxx xx xx xxxx xxxxxxxx xxxxxxxx xxxx xxxx

# dl_type=0x1234
003820ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 1234 xx xx xxxx xxxxxxxx xxxxxxxx xxxx xxxx

# ip,nw_proto=5
003820cf xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 05 xxxx xxxxxxxx xxxxxxxx xxxx xxxx

# dl_type=0x1234,nw_proto=5
# normal:  3: cf -> ef
# normal: 25: 05 -> 00
& ofp_util|INFO|normalization changed ofp_match, details:
& ofp_util|INFO| pre: dl_type=0x1234,nw_proto=5
& ofp_util|INFO|post: dl_type=0x1234
003820cf xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 1234 xx 05 xxxx xxxxxxxx xxxxxxxx xxxx xxxx

# ip,nw_tos=252
001820ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 fc xx xxxx xxxxxxxx xxxxxxxx xxxx xxxx

# arp,nw_tos=4
# 24: 05 -> 04
# normal:  1: 18 -> 38
# normal: 24: 04 -> 00
& ofp_util|INFO|normalization changed ofp_match, details:
& ofp_util|INFO| pre: arp,nw_tos=4
& ofp_util|INFO|post: arp
001820ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0806 05 xx xxxx xxxxxxxx xxxxxxxx xxxx xxxx

# ip,nw_tos=48
# 24: 31 -> 30
001820ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 31 xx xxxx xxxxxxxx xxxxxxxx xxxx xxxx

# arp,arp_op=2
003820cf xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0806 xx 02 xxxx xxxxxxxx xxxxxxxx xxxx xxxx

# ip,nw_src=192.168.128.85
003800ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx xx xxxx c0a88055 xxxxxxxx xxxx xxxx

# ip,nw_src=192.168.128.0/24
# 31: 55 -> 00
003808ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx xx xxxx c0a88055 xxxxxxxx xxxx xxxx

# ip,nw_dst=192.168.128.85
003020ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx xx xxxx xxxxxxxx c0a88055 xxxx xxxx

# ip,nw_dst=192.168.128.0/24
# 35: 55 -> 00
003220ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx xx xxxx xxxxxxxx c0a88055 xxxx xxxx

# arp,arp_spa=192.168.128.85
003800ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0806 xx xx xxxx c0a88055 xxxxxxxx xxxx xxxx

# arp,arp_spa=192.168.128.0/24
# 31: 55 -> 00
003808ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0806 xx xx xxxx c0a88055 xxxxxxxx xxxx xxxx

# arp,arp_tpa=192.168.128.85
003020ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0806 xx xx xxxx xxxxxxxx c0a88055 xxxx xxxx

# arp,arp_tpa=192.168.128.0/24
# 35: 55 -> 00
003220ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0806 xx xx xxxx xxxxxxxx c0a88055 xxxx xxxx

# dl_type=0x1234,nw_src=192.168.128.0/24
# 31: 55 -> 00
# normal:  2: 08 -> 20
# normal: 28: c0 -> 00
# normal: 29: a8 -> 00
# normal: 30: 80 -> 00
& ofp_util|INFO|normalization changed ofp_match, details:
& ofp_util|INFO| pre: dl_type=0x1234,nw_src=192.168.128.0/24
& ofp_util|INFO|post: dl_type=0x1234
003808ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 1234 xx xx xxxx c0a88055 xxxxxxxx xxxx xxxx

# dl_type=0x1234,nw_dst=192.168.128.0/24
# 35: 55 -> 00
# normal:  1: 32 -> 38
# normal: 32: c0 -> 00
# normal: 33: a8 -> 00
# normal: 34: 80 -> 00
& ofp_util|INFO|normalization changed ofp_match, details:
& ofp_util|INFO| pre: dl_type=0x1234,nw_dst=192.168.128.0/24
& ofp_util|INFO|post: dl_type=0x1234
003220ef xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 1234 xx xx xxxx xxxxxxxx c0a88055 xxxx xxxx

# tcp,tp_src=443
0038208f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 06 xxxx xxxxxxxx xxxxxxxx 01bb xxxx

# tcp,tp_dst=443
0038204f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 06 xxxx xxxxxxxx xxxxxxxx xxxx 01bb

# udp,tp_src=443
0038208f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 11 xxxx xxxxxxxx xxxxxxxx 01bb xxxx

# udp,tp_dst=443
0038204f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 11 xxxx xxxxxxxx xxxxxxxx xxxx 01bb

# sctp,tp_src=443
0038208f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 84 xxxx xxxxxxxx xxxxxxxx 01bb xxxx

# sctp,tp_dst=443
0038204f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 84 xxxx xxxxxxxx xxxxxxxx xxxx 01bb

# icmp,icmp_type=5
0038208f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 01 xxxx xxxxxxxx xxxxxxxx 0005 xxxx

# icmp,icmp_code=8
0038204f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 01 xxxx xxxxxxxx xxxxxxxx xxxx 0008

# ip,nw_proto=21,tp_src=443
# normal:  3: 8f -> cf
# normal: 36: 01 -> 00
# normal: 37: bb -> 00
& ofp_util|INFO|normalization changed ofp_match, details:
& ofp_util|INFO| pre: ip,nw_proto=21,tp_src=443
& ofp_util|INFO|post: ip,nw_proto=21
0038208f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 15 xxxx xxxxxxxx xxxxxxxx 01bb xxxx

# ip,nw_proto=21,tp_dst=443
# normal:  3: 4f -> cf
# normal: 38: 01 -> 00
# normal: 39: bb -> 00
0038204f xxxx xxxxxxxxxxxx xxxxxxxxxxxx xxxx xx xx 0800 xx 15 xxxx xxxxxxxx xxxxxxxx xxxx 01bb

_ATEOF

sed '/^[#&]/d' < test-data > input.txt
sed -n 's/^# //p; /^$/p' < test-data > expout
sed -n 's/^& //p' < test-data > experr



{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:1471: ovs-ofctl '-vPATTERN:console:%c|%p|%m' parse-ofp10-match < input.txt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-ofctl.at:1471"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' parse-ofp10-match < input.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:1471"
$at_failed && at_fn_log_failure  \
"input.txt" \
"expout" \
"experr"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_406
#AT_START_407
at_fn_group_banner 407 'ovs-ofctl.at:1476' \
  "ovs-ofctl parse-ofp11-match" "                    " 21
at_xfail=no
(
  $as_echo "407. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >test-data <<'_ATEOF'
# in_port=LOCAL
0000 0058 fffffffe 000003fe 000000000000ffffffffffff 000000000000ffffffffffff 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 00000000 00 000000 0000000000000000ffffffffffffffff

# bad ofp11_match: OFPBMC_BAD_VALUE
& ofp_util|WARN|port 305419896 is outside the supported range 0 through 65279 or 0xffffff00 through 0xffffffff
0000 0058 12345678 000003fe 000000000000ffffffffffff 000000000000ffffffffffff 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 00000000 00 000000 0000000000000000ffffffffffffffff

# dl_src=00:01:02:03:04:05
0000 0058 00000000 000003ff 000102030405000000000000 000000000000ffffffffffff 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 00000000 00 000000 0000000000000000ffffffffffffffff

# dl_src=55:55:55:55:55:55/55:55:55:55:55:55
0000 0058 00000000 000003ff 555555555555aaaaaaaaaaaa 000000000000ffffffffffff 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 00000000 00 000000 0000000000000000ffffffffffffffff

# dl_dst=00:01:02:03:04:05
0000 0058 00000000 000003ff 000000000000ffffffffffff 000102030405000000000000 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 00000000 00 000000 0000000000000000ffffffffffffffff

# dl_dst=01:00:00:00:00:00/01:00:00:00:00:00
0000 0058 00000000 000003ff 000000000000ffffffffffff 010000000000feffffffffff 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 00000000 00 000000 0000000000000000ffffffffffffffff

# dl_dst=00:01:02:03:04:05/fe:ff:ff:ff:ff:ff
0000 0058 00000000 000003ff 000000000000ffffffffffff 000102030405010000000000 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 00000000 00 000000 0000000000000000ffffffffffffffff

# dl_dst=55:55:55:55:55:55/55:55:55:55:55:55
0000 0058 00000000 000003ff 000000000000ffffffffffff 555555555555aaaaaaaaaaaa 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 00000000 00 000000 0000000000000000ffffffffffffffff

# in_port=1
# 11: fa -> fe
# 38: 03 -> 00
0000 0058 00000001 000003fa 000000000000ffffffffffff 000000000000ffffffffffff 0000 03 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 00000000 00 000000 0000000000000000ffffffffffffffff

# dl_vlan=291
0000 0058 00000000 000003fd 000000000000ffffffffffff 000000000000ffffffffffff 0123 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 00000000 00 000000 0000000000000000ffffffffffffffff

# vlan_tci=0x0000
0000 0058 00000000 000003fd 000000000000ffffffffffff 000000000000ffffffffffff ffff 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 00000000 00 000000 0000000000000000ffffffffffffffff

# vlan_tci=0x0000
# 11: f9 -> fd
# 38: 05 -> 00
0000 0058 00000000 000003f9 000000000000ffffffffffff 000000000000ffffffffffff ffff 05 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 00000000 00 000000 0000000000000000ffffffffffffffff

# vlan_tci=0x1000/0x1000
0000 0058 00000000 000003fd 000000000000ffffffffffff 000000000000ffffffffffff fffe 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 00000000 00 000000 0000000000000000ffffffffffffffff

# bad ofp11_match: OFPBMC_BAD_VALUE
0000 0058 00000000 000003fd 000000000000ffffffffffff 000000000000ffffffffffff 1234 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 00000000 00 000000 0000000000000000ffffffffffffffff

# dl_vlan_pcp=4
0000 0058 00000000 000003f9 000000000000ffffffffffff 000000000000ffffffffffff fffe 04 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 00000000 00 000000 0000000000000000ffffffffffffffff

# dl_vlan=10,dl_vlan_pcp=6
0000 0058 00000000 000003f9 000000000000ffffffffffff 000000000000ffffffffffff 000a 06 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 00000000 00 000000 0000000000000000ffffffffffffffff

# dl_type=0x1234
0000 0058 00000000 000003f7 000000000000ffffffffffff 000000000000ffffffffffff 0000 00 00 1234 00 00 00000000ffffffff 00000000ffffffff 0000 0000 00000000 00 000000 0000000000000000ffffffffffffffff

# ip,nw_tos=252
0000 0058 00000000 000003e7 000000000000ffffffffffff 000000000000ffffffffffff 0000 00 00 0800 fc 00 00000000ffffffff 00000000ffffffff 0000 0000 00000000 00 000000 0000000000000000ffffffffffffffff

# bad ofp11_match: OFPBMC_BAD_VALUE
0000 0058 00000000 000003e7 000000000000ffffffffffff 000000000000ffffffffffff 0000 00 00 0800 01 00 00000000ffffffff 00000000ffffffff 0000 0000 00000000 00 000000 0000000000000000ffffffffffffffff

# ip,nw_proto=5
0000 0058 00000000 000003d7 000000000000ffffffffffff 000000000000ffffffffffff 0000 00 00 0800 00 05 00000000ffffffff 00000000ffffffff 0000 0000 00000000 00 000000 0000000000000000ffffffffffffffff

# arp,arp_op=2
0000 0058 00000000 000003d7 000000000000ffffffffffff 000000000000ffffffffffff 0000 00 00 0806 00 02 00000000ffffffff 00000000ffffffff 0000 0000 00000000 00 000000 0000000000000000ffffffffffffffff

# ip,nw_src=192.168.128.0/24
0000 0058 00000000 000003f7 000000000000ffffffffffff 000000000000ffffffffffff 0000 00 00 0800 00 00 c0a88000000000ff 00000000ffffffff 0000 0000 00000000 00 000000 0000000000000000ffffffffffffffff

# ip,nw_src=128.160.128.0/165.165.165.165
# 44: c0 -> 80
# 45: a8 -> a0
0000 0058 00000000 000003f7 000000000000ffffffffffff 000000000000ffffffffffff 0000 00 00 0800 00 00 c0a880005a5a5a5a 00000000ffffffff 0000 0000 00000000 00 000000 0000000000000000ffffffffffffffff

# ip,nw_dst=192.168.128.0/24
0000 0058 00000000 000003f7 000000000000ffffffffffff 000000000000ffffffffffff 0000 00 00 0800 00 00 00000000ffffffff c0a88000000000ff 0000 0000 00000000 00 000000 0000000000000000ffffffffffffffff

# ip,nw_dst=128.160.128.0/165.165.165.165
# 52: c0 -> 80
# 53: a8 -> a0
0000 0058 00000000 000003f7 000000000000ffffffffffff 000000000000ffffffffffff 0000 00 00 0800 00 00 00000000ffffffff c0a880005a5a5a5a 0000 0000 00000000 00 000000 0000000000000000ffffffffffffffff

# arp,arp_spa=192.168.128.0/24
0000 0058 00000000 000003f7 000000000000ffffffffffff 000000000000ffffffffffff 0000 00 00 0806 00 00 c0a88000000000ff 00000000ffffffff 0000 0000 00000000 00 000000 0000000000000000ffffffffffffffff

# arp,arp_tpa=192.168.128.0/24
0000 0058 00000000 000003f7 000000000000ffffffffffff 000000000000ffffffffffff 0000 00 00 0806 00 00 00000000ffffffff c0a88000000000ff 0000 0000 00000000 00 000000 0000000000000000ffffffffffffffff

# tcp,tp_src=443
0000 0058 00000000 00000397 000000000000ffffffffffff 000000000000ffffffffffff 0000 00 00 0800 00 06 00000000ffffffff 00000000ffffffff 01bb 0000 00000000 00 000000 0000000000000000ffffffffffffffff

# tcp,tp_dst=443
0000 0058 00000000 00000357 000000000000ffffffffffff 000000000000ffffffffffff 0000 00 00 0800 00 06 00000000ffffffff 00000000ffffffff 0000 01bb 00000000 00 000000 0000000000000000ffffffffffffffff

# udp,tp_src=443
0000 0058 00000000 00000397 000000000000ffffffffffff 000000000000ffffffffffff 0000 00 00 0800 00 11 00000000ffffffff 00000000ffffffff 01bb 0000 00000000 00 000000 0000000000000000ffffffffffffffff

# icmp,icmp_type=5
0000 0058 00000000 00000397 000000000000ffffffffffff 000000000000ffffffffffff 0000 00 00 0800 00 01 00000000ffffffff 00000000ffffffff 0005 0000 00000000 00 000000 0000000000000000ffffffffffffffff

# icmp,icmp_code=8
0000 0058 00000000 00000357 000000000000ffffffffffff 000000000000ffffffffffff 0000 00 00 0800 00 01 00000000ffffffff 00000000ffffffff 0000 0008 00000000 00 000000 0000000000000000ffffffffffffffff

# udp,tp_src=443
0000 0058 00000000 00000397 000000000000ffffffffffff 000000000000ffffffffffff 0000 00 00 0800 00 11 00000000ffffffff 00000000ffffffff 01bb 0000 00000000 00 000000 0000000000000000ffffffffffffffff

# udp,tp_dst=443
0000 0058 00000000 00000357 000000000000ffffffffffff 000000000000ffffffffffff 0000 00 00 0800 00 11 00000000ffffffff 00000000ffffffff 0000 01bb 00000000 00 000000 0000000000000000ffffffffffffffff

# sctp
0000 0058 00000000 000003d7 000000000000ffffffffffff 000000000000ffffffffffff 0000 00 00 0800 00 84 00000000ffffffff 00000000ffffffff 0000 0000 00000000 00 000000 0000000000000000ffffffffffffffff

# sctp,tp_src=443
0000 0058 00000000 00000397 000000000000ffffffffffff 000000000000ffffffffffff 0000 00 00 0800 00 84 00000000ffffffff 00000000ffffffff 01bb 0000 00000000 00 000000 0000000000000000ffffffffffffffff

# sctp,tp_dst=443
0000 0058 00000000 00000357 000000000000ffffffffffff 000000000000ffffffffffff 0000 00 00 0800 00 84 00000000ffffffff 00000000ffffffff 0000 01bb 00000000 00 000000 0000000000000000ffffffffffffffff

# ip,nw_proto=21
# 11: 97 -> d7
# 60: 01 -> 00
# 61: bb -> 00
0000 0058 00000000 00000397 000000000000ffffffffffff 000000000000ffffffffffff 0000 00 00 0800 00 15 00000000ffffffff 00000000ffffffff 01bb 0000 00000000 00 000000 0000000000000000ffffffffffffffff

# ip,nw_proto=22
# 11: 57 -> d7
# 62: 01 -> 00
# 63: bb -> 00
0000 0058 00000000 00000357 000000000000ffffffffffff 000000000000ffffffffffff 0000 00 00 0800 00 16 00000000ffffffff 00000000ffffffff 0000 01bb 00000000 00 000000 0000000000000000ffffffffffffffff

# mpls,mpls_label=284280
# 64: 12 -> 00
# 65: 34 -> 04
0000 0058 00000000 000002f7 000000000000ffffffffffff 000000000000ffffffffffff 0000 00 00 8847 00 00 00000000ffffffff 00000000ffffffff 0000 0000 12345678 00 000000 0000000000000000ffffffffffffffff

# mplsm,mpls_tc=2
# 68: 5a -> 02
0000 0058 00000000 000001f7 000000000000ffffffffffff 000000000000ffffffffffff 0000 00 00 8848 00 00 00000000ffffffff 00000000ffffffff 0000 0000 00000000 5a 000000 0000000000000000ffffffffffffffff

# dl_type=0x1234
# 10: 00 -> 03
# 64: 12 -> 00
# 65: 34 -> 00
# 66: 56 -> 00
# 67: 78 -> 00
# 68: 5a -> 00
0000 0058 00000000 000000f7 000000000000ffffffffffff 000000000000ffffffffffff 0000 00 00 1234 00 00 00000000ffffffff 00000000ffffffff 0000 0000 12345678 5a 000000 0000000000000000ffffffffffffffff

# metadata=0x1234567890abcdef
0000 0058 00000000 000003ff 000000000000ffffffffffff 000000000000ffffffffffff 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 00000000 00 000000 1234567890abcdef0000000000000000

# metadata=0x5555555555555555/0x5555555555555555
0000 0058 00000000 000003ff 000000000000ffffffffffff 000000000000ffffffffffff 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 00000000 00 000000 5555555555555555aaaaaaaaaaaaaaaa

# metadata=0x1234000090ab0000/0xffff0000ffff0000
# 74: 56 -> 00
# 75: 78 -> 00
# 78: cd -> 00
# 79: ef -> 00
0000 0058 00000000 000003ff 000000000000ffffffffffff 000000000000ffffffffffff 0000 00 00 0000 00 00 00000000ffffffff 00000000ffffffff 0000 0000 00000000 00 000000 1234567890abcdef0000ffff0000ffff

_ATEOF

sed '/^[#&]/d' < test-data > input.txt
sed -n 's/^# //p; /^$/p' < test-data > expout
sed -n 's/^& //p' < test-data > experr



{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:1797: ovs-ofctl '-vPATTERN:console:%c|%p|%m' parse-ofp11-match < input.txt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-ofctl.at:1797"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' parse-ofp11-match < input.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:1797"
$at_failed && at_fn_log_failure  \
"input.txt" \
"expout" \
"experr"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_407
#AT_START_408
at_fn_group_banner 408 'ovs-ofctl.at:1802' \
  "ovs-ofctl parse-nx-match loose" "                 " 21
at_xfail=no
(
  $as_echo "408. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >nx-match.txt <<'_ATEOF'
NXM_OF_IN_PORT(0001), 01020304(1111/3333), NXM_OF_ETH_TYPE(0800)
NXM_OF_IN_PORT(0001), ffff020800002320(11112222), NXM_OF_ETH_TYPE(0800)
NXM_OF_IN_PORT(0001), ffff030800002320(1111/3333), NXM_OF_ETH_TYPE(0800)
_ATEOF


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:1810: ovs-ofctl --strict parse-nx-match < nx-match.txt"
at_fn_check_prepare_trace "ovs-ofctl.at:1810"
( $at_check_trace; ovs-ofctl --strict parse-nx-match < nx-match.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "nx_pull_match() returned error OFPBMC_BAD_FIELD
nx_pull_match() returned error OFPBMC_BAD_FIELD
nx_pull_match() returned error OFPBMC_BAD_FIELD
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:1810"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:1816: ovs-ofctl parse-nx-match < nx-match.txt"
at_fn_check_prepare_trace "ovs-ofctl.at:1816"
( $at_check_trace; ovs-ofctl parse-nx-match < nx-match.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXM_OF_IN_PORT(0001), NXM_OF_ETH_TYPE(0800)
NXM_OF_IN_PORT(0001), NXM_OF_ETH_TYPE(0800)
NXM_OF_IN_PORT(0001), NXM_OF_ETH_TYPE(0800)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:1816"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_408
#AT_START_409
at_fn_group_banner 409 'ovs-ofctl.at:1823' \
  "ovs-ofctl parse-oxm (OpenFlow 1.2)" "             " 21
at_xfail=no
(
  $as_echo "409. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >oxm.txt <<'_ATEOF'
<any>

# in port
OXM_OF_IN_PORT(00000000)
OXM_OF_IN_PORT(fffffffe)

# metadata
OXM_OF_METADATA(5a5a5a5a5a5a5a5a)
OXM_OF_METADATA_W(0000000000000000/00000000ffffffff)
OXM_OF_METADATA_W(1234567890abcdef/ffff0000ffff0000)
OXM_OF_METADATA_W(1234567890abcdef/ffffffffffffffff)
OXM_OF_METADATA_W(1234567890abcdef/0000000000000000)

# eth dst
OXM_OF_ETH_DST(0002e30f80a4)
OXM_OF_ETH_DST_W(010000000000/010000000000)
OXM_OF_ETH_DST_W(000000000000/010000000000)
OXM_OF_ETH_DST_W(ffffffffffff/010000000000)
OXM_OF_ETH_DST_W(0002e30f80a4/ffffffffffff)
OXM_OF_ETH_DST_W(0002e30f80a4/000000000000)
OXM_OF_ETH_DST_W(0002e30f80a4/feffffffffff)

# eth src
OXM_OF_ETH_SRC(020898456ddb)

# eth type
OXM_OF_ETH_TYPE(0800)
OXM_OF_ETH_TYPE(0800) OXM_OF_IN_PORT(00000012)

# vlan
OXM_OF_VLAN_VID(1009) OXM_OF_VLAN_VID(1009) # Duplicate Field
OXM_OF_VLAN_VID(f009)           # Bad Value
OXM_OF_VLAN_PCP(00)             # Bad Pre-Requisite
OXM_OF_VLAN_VID(0000)           # Packets without 802.1Q header or with VID=0
OXM_OF_VLAN_VID(1123)           # Packets with VID=123, any PCP
OXM_OF_VLAN_VID(1123) OXM_OF_VLAN_PCP(01) # Packets with VID=123, PCP=1.
OXM_OF_VLAN_VID(0123)           # Does not make sense (but supported anyway)
OXM_OF_VLAN_VID_W(0123/0123)      # Does not make sense (but supported anyway)
OXM_OF_VLAN_VID_W(1123/0123)      # Does not make sense (but supported anyway)
OXM_OF_VLAN_VID_W(0123/1123)      # Does not make sense (but supported anyway)
OXM_OF_VLAN_VID(0123) OXM_OF_VLAN_PCP(01)  #Bad Pre-Requisite
OXM_OF_VLAN_VID_W(1123/1fff)    # Packets with VID=123, any PCP.
OXM_OF_VLAN_VID_W(1123/ffff)    # Packets with VID=123, any PCP.
OXM_OF_VLAN_VID_W(0000/0000)    # Packets with or without 802.1Q header
OXM_OF_VLAN_VID_W(1103/1f0f),   # Packets with # VID=123 (masked)
OXM_OF_VLAN_VID_W(1103/1f0f), OXM_OF_VLAN_PCP(01)  # Packets with VID=123 (masked), any PCP.
OXM_OF_VLAN_VID_W(1000/1000)    # Packets with any VID, any PCP
OXM_OF_VLAN_VID_W(1000/1000), OXM_OF_VLAN_PCP(01)  # Packets with any VID, PCP=1.

# IP TOS
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_DSCP(f0)
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_DSCP(41)
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_DSCP(3f)
OXM_OF_IP_DSCP(3f)

# IP ECN
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_ECN(03)
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_ECN(06)
OXM_OF_IP_ECN(03)

# IP protocol
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(01)
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(05)
OXM_OF_IP_PROTO(05)

# IP source
OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_SRC(ac100014)
OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_SRC_W(C0a80000/FFFF0000)
OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_SRC_W(C0a80000/FFFFFFFF)
OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_SRC_W(00000000/00000000)
OXM_OF_ETH_TYPE(0806) OXM_OF_IPV4_SRC(ac100014)
OXM_OF_IPV4_SRC_W(C0D80000/FFFF0000)

# IP destination
OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_DST(ac100014)
OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_DST_W(C0a80000/FFFF0000)
OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_DST_W(C0a88012/FFFFFFFF)
OXM_OF_ETH_TYPE(0800) OXM_OF_IPV4_DST_W(00000000/00000000)
OXM_OF_IPV4_DST(ac100014)
OXM_OF_ETH_TYPE(0806) OXM_OF_IPV4_DST_W(C0D80000/FFFF0000)

# TCP source port
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_SRC(4231)
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_SRC_W(5050/F0F0)
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_SRC_W(5050/FFFF)
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_SRC_W(0000/0000)
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(07) OXM_OF_TCP_SRC(4231)

# TCP destination port
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_DST(4231)
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_DST_W(FDE0/FFF0)
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_DST_W(FDE0/FFFF)
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_TCP_DST_W(0000/0000)
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(07) OXM_OF_TCP_DST(4231)

# UDP source port
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_SRC(8732)
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_SRC_W(0132/01FF)
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_SRC_W(0132/FFFF)
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_SRC_W(0000/0000)
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_UDP_SRC(7823)

# UDP destination port
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_DST(1782)
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_DST_W(5005/F00F)
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_DST_W(5005/FFFF)
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(11) OXM_OF_UDP_DST_W(0000/0000)
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(02) OXM_OF_UDP_DST(1293)

# SCTP source port
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(84) OXM_OF_SCTP_SRC(8732)
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(84) OXM_OF_SCTP_SRC_W(0132/01FF)
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(84) OXM_OF_SCTP_SRC_W(0132/FFFF)
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(84) OXM_OF_SCTP_SRC_W(0000/0000)
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(06) OXM_OF_SCTP_SRC(7823)

# SCTP destination port
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(84) OXM_OF_SCTP_DST(1782)
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(84) OXM_OF_SCTP_DST_W(5005/F00F)
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(84) OXM_OF_SCTP_DST_W(5005/FFFF)
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(84) OXM_OF_SCTP_DST_W(0000/0000)
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(02) OXM_OF_SCTP_DST(1293)

# ICMP type
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(01) OXM_OF_ICMPV4_TYPE(12)
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(00) OXM_OF_ICMPV4_TYPE(10)

# ICMP code
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(01) OXM_OF_ICMPV4_CODE(12)
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(00) OXM_OF_ICMPV4_CODE(10)
OXM_OF_ETH_TYPE(0800) OXM_OF_ICMPV4_CODE(10)
OXM_OF_ICMPV4_CODE(00)

# ARP opcode
OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_OP(0001)
OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_OP(1111)
OXM_OF_ETH_TYPE(0000) OXM_OF_ARP_OP(0001)
OXM_OF_ARP_OP(0001)
OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_OP(0001) OXM_OF_ARP_OP(0001)

# ARP source protocol address
OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SPA(ac100014)
OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SPA_W(C0a81200/FFFFFF00)
OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SPA_W(C0a81234/FFFFFFFF)
OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SPA_W(00000000/00000000)
OXM_OF_ETH_TYPE(0800) OXM_OF_ARP_SPA(ac100014)
OXM_OF_ARP_SPA_W(C0D80000/FFFF0000)

# ARP destination protocol address
OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_TPA(ac100014)
OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_TPA_W(C0a81200/FFFFFF00)
OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_TPA_W(C0a812fe/FFFFFFFF)
OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_TPA_W(00000000/00000000)
OXM_OF_ETH_TYPE(0800) OXM_OF_ARP_TPA(ac100014)
OXM_OF_ARP_TPA_W(C0D80000/FFFF0000)

# ARP source hardware address
OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SHA(0002e30f80a4)
OXM_OF_ETH_TYPE(0800) OXM_OF_ARP_SHA(0002e30f80a4)
OXM_OF_ARP_SHA(0002e30f80a4)
OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SHA_W(0002e30f80a4/ffffffffffff)
OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SHA_W(000000000000/000000000000)
OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_SHA_W(000000000004/00000000000f)

# ARP destination hardware address
OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_THA(0002e30f80a4)
OXM_OF_ETH_TYPE(0800) OXM_OF_ARP_THA(0002e30f80a4)
OXM_OF_ARP_THA(0002e30f80a4)
OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_THA_W(0002e30f80a4/ffffffffffff)
OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_THA_W(000000000000/000000000000)
OXM_OF_ETH_TYPE(0806) OXM_OF_ARP_THA_W(000000000004/00000000000f)

# IPv6 source
OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_SRC(20010db83c4d00010002000300040005)
OXM_OF_ETH_TYPE(0800) OXM_OF_IPV6_SRC(20010db83c4d00010002000300040005)
OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffffffffffffffffffff)
OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_SRC_W(00000000000000000000000000000000/00000000000000000000000000000000)
OXM_OF_ETH_TYPE(0800) OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)

# IPv6 destination
OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_DST(20010db83c4d00010002000300040005)
OXM_OF_ETH_TYPE(0800) OXM_OF_IPV6_DST(20010db83c4d00010002000300040005)
OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffffffffffffffffffff)
OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_DST_W(00000000000000000000000000000000/00000000000000000000000000000000)
OXM_OF_ETH_TYPE(0800) OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)

# IPv6 Flow Label
OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL(1000000f)
OXM_OF_IPV6_FLABEL(0000000f)
OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL(0000000f)
OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(0000000f/0000000f)
OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(0000000f/000fffff)
OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(00000000/000ffff0)
OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(0000000f/100fffff)
OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(0000000f/ffffffff)
OXM_OF_ETH_TYPE(86dd) OXM_OF_IPV6_FLABEL_W(00000000/00000000)

# ND source hardware address
OXM_OF_ETH_TYPE(86dd) OXM_OF_IP_PROTO(3a) OXM_OF_ICMPV6_TYPE(87) OXM_OF_IPV6_ND_TARGET(20010db83c4d00010002000300040005) OXM_OF_IPV6_ND_SLL(0002e30f80a4)
OXM_OF_ETH_TYPE(86dd) OXM_OF_IP_PROTO(3a) OXM_OF_ICMPV6_TYPE(88) OXM_OF_IPV6_ND_TARGET(20010db83c4d00010002000300040005) OXM_OF_IPV6_ND_SLL(0002e30f80a4)
OXM_OF_ETH_TYPE(86dd) OXM_OF_IP_PROTO(3b) OXM_OF_ICMPV6_TYPE(87) OXM_OF_IPV6_ND_TARGET(20010db83c4d00010002000300040005) OXM_OF_IPV6_ND_SLL(0002e30f80a4)
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(3a) OXM_OF_ICMPV6_TYPE(87) OXM_OF_IPV6_ND_TARGET(20010db83c4d00010002000300040005) OXM_OF_IPV6_ND_SLL(0002e30f80a4)

# ND destination hardware address
OXM_OF_ETH_TYPE(86dd) OXM_OF_IP_PROTO(3a) OXM_OF_ICMPV6_TYPE(88) OXM_OF_IPV6_ND_TARGET(20010db83c4d00010002000300040005) OXM_OF_IPV6_ND_TLL(0002e30f80a4)
OXM_OF_ETH_TYPE(86dd) OXM_OF_IP_PROTO(3a) OXM_OF_ICMPV6_TYPE(87) OXM_OF_IPV6_ND_TARGET(20010db83c4d00010002000300040005) OXM_OF_IPV6_ND_TLL(0002e30f80a4)
OXM_OF_ETH_TYPE(86dd) OXM_OF_IP_PROTO(3b) OXM_OF_ICMPV6_TYPE(87) OXM_OF_IPV6_ND_TARGET(20010db83c4d00010002000300040005) OXM_OF_IPV6_ND_TLL(0002e30f80a4)
OXM_OF_ETH_TYPE(0800) OXM_OF_IP_PROTO(3a) OXM_OF_ICMPV6_TYPE(88) OXM_OF_IPV6_ND_TARGET(20010db83c4d00010002000300040005) OXM_OF_IPV6_ND_TLL(0002e30f80a4)

# Registers 0, 1, and 2.
NXM_NX_REG0(acebdf56)
NXM_NX_REG0_W(a0e0d050/f0f0f0f0)
NXM_NX_REG0(a0e0d050)
NXM_NX_REG1(acebdf56)
NXM_NX_REG0_W(a0e0d050/f0f0f0f0), NXM_NX_REG1_W(a0e0d050/f0f0f0f0)
NXM_NX_REG0_W(a0e0d050/f0f0f0f0), NXM_NX_REG1(a0e0d050)
NXM_NX_REG1_W(a0e0d050/f0f0f0f0), NXM_NX_REG2_W(a0e0d050/f0f0f0f0)
NXM_NX_REG1_W(a0e0d050/f0f0f0f0), NXM_NX_REG2(a0e0d050)

# Extended registers 0, 1, and 2.
# (For OpenFlow 1.2, OVS transforms these into its extension registers.)
OXM_OF_PKT_REG0_W(acebdf5600000000/ffffffff00000000)
OXM_OF_PKT_REG0_W(a0e0d05000000000/f0f0f0f000000000)
OXM_OF_PKT_REG0_W(a0e0d05000000000/ffffffff00000000)
OXM_OF_PKT_REG0_W(00000000acebdf56/00000000ffffffff)
OXM_OF_PKT_REG0_W(a0e0d050a0e0d050/f0f0f0f0f0f0f0f0)
OXM_OF_PKT_REG0_W(a0e0d050a0e0d050/f0f0f0f0ffffffff)
OXM_OF_PKT_REG0_W(00000000a0e0d050/00000000f0f0f0f0), OXM_OF_PKT_REG1_W(a0e0d05000000000/f0f0f0f000000000)
OXM_OF_PKT_REG0_W(00000000a0e0d050/00000000f0f0f0f0), OXM_OF_PKT_REG1_W(a0e0d05000000000/ffffffff00000000)

# Invalid field number.
01020304(1111/3333)

# Invalid field numbers (experimenter OXM).
ffff020800002320(11112222)
ffff030800002320(1111/3333)
_ATEOF

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2065: ovs-ofctl '-vPATTERN:console:%c|%p|%m' --strict parse-oxm OpenFlow12 < oxm.txt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-ofctl.at:2065"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' --strict parse-oxm OpenFlow12 < oxm.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo >>"$at_stdout"; $as_echo "<any>

# in port
OXM_OF_IN_PORT(00000000)
OXM_OF_IN_PORT(fffffffe)

# metadata
OXM_OF_METADATA(5a5a5a5a5a5a5a5a)
OXM_OF_METADATA_W(0000000000000000/00000000ffffffff)
nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
OXM_OF_METADATA(1234567890abcdef)
nx_pull_match() returned error OFPBMC_BAD_WILDCARDS

# eth dst
OXM_OF_ETH_DST(0002e30f80a4)
OXM_OF_ETH_DST_W(010000000000/010000000000)
OXM_OF_ETH_DST_W(000000000000/010000000000)
nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
OXM_OF_ETH_DST(0002e30f80a4)
nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
OXM_OF_ETH_DST_W(0002e30f80a4/feffffffffff)

# eth src
OXM_OF_ETH_SRC(020898456ddb)

# eth type
OXM_OF_ETH_TYPE(0800)
OXM_OF_IN_PORT(00000012), OXM_OF_ETH_TYPE(0800)

# vlan
nx_pull_match() returned error OFPBMC_DUP_FIELD
nx_pull_match() returned error OFPBMC_BAD_VALUE
nx_pull_match() returned error OFPBMC_BAD_PREREQ
OXM_OF_VLAN_VID(0000)
OXM_OF_VLAN_VID(1123)
OXM_OF_VLAN_VID(1123), OXM_OF_VLAN_PCP(01)
OXM_OF_VLAN_VID(0123)
OXM_OF_VLAN_VID_W(0123/0123)
nx_pull_match() returned error OFPBMC_BAD_WILDCARDS
OXM_OF_VLAN_VID_W(0123/1123)
nx_pull_match() returned error OFPBMC_BAD_PREREQ
OXM_OF_VLAN_VID(1123)
OXM_OF_VLAN_VID(1123)
OXM_OF_PACKET_TYPE(00000000)
OXM_OF_VLAN_VID_W(1103/1f0f)
OXM_OF_VLAN_VID_W(1103/1f0f), OXM_OF_VLAN_PCP(01)
OXM_OF_VLAN_VID_W(1000/1000)
OXM_OF_VLAN_VID_W(1000/1000), OXM_OF_VLAN_PCP(01)

# IP TOS
nx_pull_match() returned error OFPBMC_BAD_VALUE
nx_pull_match() returned error OFPBMC_BAD_VALUE
OXM_OF_ETH_TYPE(0800), OXM_OF_IP_DSCP(3f)
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# IP ECN
OXM_OF_ETH_TYPE(0800), OXM_OF_IP_ECN(03)
nx_pull_match() returned error OFPBMC_BAD_VALUE
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# IP protocol
OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(01)
OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(05)
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# IP source
OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_SRC(ac100014)
OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_SRC_W(c0a80000/ffff0000)
OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_SRC(c0a80000)
OXM_OF_ETH_TYPE(0800)
nx_pull_match() returned error OFPBMC_BAD_PREREQ
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# IP destination
OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_DST(ac100014)
OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_DST_W(c0a80000/ffff0000)
OXM_OF_ETH_TYPE(0800), OXM_OF_IPV4_DST(c0a88012)
OXM_OF_ETH_TYPE(0800)
nx_pull_match() returned error OFPBMC_BAD_PREREQ
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# TCP source port
OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_SRC(4231)
OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_SRC_W(5050/f0f0)
OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_SRC(5050)
OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06)
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# TCP destination port
OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_DST(4231)
OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_DST_W(fde0/fff0)
OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_DST(fde0)
OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06)
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# UDP source port
OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_SRC(8732)
OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_SRC_W(0132/01ff)
OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_SRC(0132)
OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11)
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# UDP destination port
OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_DST(1782)
OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_DST_W(5005/f00f)
OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11), OXM_OF_UDP_DST(5005)
OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(11)
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# SCTP source port
OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(84), OXM_OF_SCTP_SRC(8732)
OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(84), OXM_OF_SCTP_SRC_W(0132/01ff)
OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(84), OXM_OF_SCTP_SRC(0132)
OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(84)
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# SCTP destination port
OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(84), OXM_OF_SCTP_DST(1782)
OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(84), OXM_OF_SCTP_DST_W(5005/f00f)
OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(84), OXM_OF_SCTP_DST(5005)
OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(84)
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# ICMP type
OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(01), OXM_OF_ICMPV4_TYPE(12)
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# ICMP code
OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(01), OXM_OF_ICMPV4_CODE(12)
nx_pull_match() returned error OFPBMC_BAD_PREREQ
nx_pull_match() returned error OFPBMC_BAD_PREREQ
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# ARP opcode
OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_OP(0001)
nx_pull_match() returned error OFPBMC_BAD_VALUE
nx_pull_match() returned error OFPBMC_BAD_PREREQ
nx_pull_match() returned error OFPBMC_BAD_PREREQ
nx_pull_match() returned error OFPBMC_DUP_FIELD

# ARP source protocol address
OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SPA(ac100014)
OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SPA_W(c0a81200/ffffff00)
OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SPA(c0a81234)
OXM_OF_ETH_TYPE(0806)
nx_pull_match() returned error OFPBMC_BAD_PREREQ
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# ARP destination protocol address
OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_TPA(ac100014)
OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_TPA_W(c0a81200/ffffff00)
OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_TPA(c0a812fe)
OXM_OF_ETH_TYPE(0806)
nx_pull_match() returned error OFPBMC_BAD_PREREQ
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# ARP source hardware address
OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SHA(0002e30f80a4)
nx_pull_match() returned error OFPBMC_BAD_PREREQ
nx_pull_match() returned error OFPBMC_BAD_PREREQ
OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SHA(0002e30f80a4)
OXM_OF_ETH_TYPE(0806)
OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_SHA_W(000000000004/00000000000f)

# ARP destination hardware address
OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_THA(0002e30f80a4)
nx_pull_match() returned error OFPBMC_BAD_PREREQ
nx_pull_match() returned error OFPBMC_BAD_PREREQ
OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_THA(0002e30f80a4)
OXM_OF_ETH_TYPE(0806)
OXM_OF_ETH_TYPE(0806), OXM_OF_ARP_THA_W(000000000004/00000000000f)

# IPv6 source
OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_SRC(20010db83c4d00010002000300040005)
nx_pull_match() returned error OFPBMC_BAD_PREREQ
OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_SRC_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_SRC(20010db83c4d00010000000000000000)
OXM_OF_ETH_TYPE(86dd)
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# IPv6 destination
OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_DST(20010db83c4d00010002000300040005)
nx_pull_match() returned error OFPBMC_BAD_PREREQ
OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_DST_W(20010db83c4d00010000000000000000/ffffffffffffffff0000000000000000)
OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_DST(20010db83c4d00010000000000000000)
OXM_OF_ETH_TYPE(86dd)
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# IPv6 Flow Label
nx_pull_match() returned error OFPBMC_BAD_VALUE
nx_pull_match() returned error OFPBMC_BAD_PREREQ
OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL(0000000f)
OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL_W(0000000f/0000000f)
OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL(0000000f)
OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL_W(00000000/000ffff0)
OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL(0000000f)
OXM_OF_ETH_TYPE(86dd), OXM_OF_IPV6_FLABEL(0000000f)
OXM_OF_ETH_TYPE(86dd)

# ND source hardware address
OXM_OF_ETH_TYPE(86dd), OXM_OF_IP_PROTO(3a), OXM_OF_ICMPV6_TYPE(87), OXM_OF_IPV6_ND_TARGET(20010db83c4d00010002000300040005), OXM_OF_IPV6_ND_SLL(0002e30f80a4)
nx_pull_match() returned error OFPBMC_BAD_PREREQ
nx_pull_match() returned error OFPBMC_BAD_PREREQ
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# ND destination hardware address
OXM_OF_ETH_TYPE(86dd), OXM_OF_IP_PROTO(3a), OXM_OF_ICMPV6_TYPE(88), OXM_OF_IPV6_ND_TARGET(20010db83c4d00010002000300040005), OXM_OF_IPV6_ND_TLL(0002e30f80a4)
nx_pull_match() returned error OFPBMC_BAD_PREREQ
nx_pull_match() returned error OFPBMC_BAD_PREREQ
nx_pull_match() returned error OFPBMC_BAD_PREREQ

# Registers 0, 1, and 2.
NXM_NX_REG0(acebdf56)
NXM_NX_REG0_W(a0e0d050/f0f0f0f0)
NXM_NX_REG0(a0e0d050)
NXM_NX_REG1(acebdf56)
NXM_NX_REG0_W(a0e0d050/f0f0f0f0), NXM_NX_REG1_W(a0e0d050/f0f0f0f0)
NXM_NX_REG0_W(a0e0d050/f0f0f0f0), NXM_NX_REG1(a0e0d050)
NXM_NX_REG1_W(a0e0d050/f0f0f0f0), NXM_NX_REG2_W(a0e0d050/f0f0f0f0)
NXM_NX_REG1_W(a0e0d050/f0f0f0f0), NXM_NX_REG2(a0e0d050)

# Extended registers 0, 1, and 2.
# (For OpenFlow 1.2, OVS transforms these into its extension registers.)
NXM_NX_REG0(acebdf56)
NXM_NX_REG0_W(a0e0d050/f0f0f0f0)
NXM_NX_REG0(a0e0d050)
NXM_NX_REG1(acebdf56)
NXM_NX_REG0_W(a0e0d050/f0f0f0f0), NXM_NX_REG1_W(a0e0d050/f0f0f0f0)
NXM_NX_REG0_W(a0e0d050/f0f0f0f0), NXM_NX_REG1(a0e0d050)
NXM_NX_REG1_W(a0e0d050/f0f0f0f0), NXM_NX_REG2_W(a0e0d050/f0f0f0f0)
NXM_NX_REG1_W(a0e0d050/f0f0f0f0), NXM_NX_REG2(a0e0d050)

# Invalid field number.
nx_pull_match() returned error OFPBMC_BAD_FIELD

# Invalid field numbers (experimenter OXM).
nx_pull_match() returned error OFPBMC_BAD_FIELD
nx_pull_match() returned error OFPBMC_BAD_FIELD
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2065"
$at_failed && at_fn_log_failure
$at_traceon; }


# Check that at least the first warning made it.  (It's rate-limited
# so a variable number could show up, especially under valgrind etc.)
{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2309: grep '1-bits in value' stderr | sed 1q"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-ofctl.at:2309"
( $at_check_trace; grep '1-bits in value' stderr | sed 1q
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "nx_match|WARN|Rejecting NXM/OXM entry 0:32768:2:1:16 with 1-bits in value for bits wildcarded by the mask.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2309"
$at_failed && at_fn_log_failure
$at_traceon; }


# Check that there wasn't any other stderr output.
{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2314: grep -v '1-bits in value' stderr"
at_fn_check_prepare_trace "ovs-ofctl.at:2314"
( $at_check_trace; grep -v '1-bits in value' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-ofctl.at:2314"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_409
#AT_START_410
at_fn_group_banner 410 'ovs-ofctl.at:2317' \
  "ovs-ofctl parse-oxm (OpenFlow 1.3)" "             " 21
at_xfail=no
(
  $as_echo "410. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >oxm.txt <<'_ATEOF'
# actset_output
ONFOXM_ET_ACTSET_OUTPUT(00000000)
ONFOXM_ET_ACTSET_OUTPUT(fffffffe)
ONFOXM_ET_ACTSET_OUTPUT(fffffff7)
OXM_OF_ACTSET_OUTPUT(00000000)
OXM_OF_ACTSET_OUTPUT(fffffffe)
OXM_OF_ACTSET_OUTPUT(fffffff7)
_ATEOF

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2328: ovs-ofctl '-vPATTERN:console:%c|%p|%m' --strict parse-oxm OpenFlow13 < oxm.txt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-ofctl.at:2328"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' --strict parse-oxm OpenFlow13 < oxm.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "# actset_output
ONFOXM_ET_ACTSET_OUTPUT(00000000)
ONFOXM_ET_ACTSET_OUTPUT(fffffffe)
ONFOXM_ET_ACTSET_OUTPUT(fffffff7)
ONFOXM_ET_ACTSET_OUTPUT(00000000)
ONFOXM_ET_ACTSET_OUTPUT(fffffffe)
ONFOXM_ET_ACTSET_OUTPUT(fffffff7)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2328"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_410
#AT_START_411
at_fn_group_banner 411 'ovs-ofctl.at:2340' \
  "ovs-ofctl parse-oxm (OpenFlow 1.5)" "             " 21
at_xfail=no
(
  $as_echo "411. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >oxm.txt <<'_ATEOF'
# Extended registers 0 and 1.
OXM_OF_PKT_REG0_W(acebdf5600000000/ffffffff00000000)
OXM_OF_PKT_REG0_W(a0e0d05000000000/f0f0f0f000000000)
OXM_OF_PKT_REG0_W(a0e0d05000000000/ffffffff00000000)
OXM_OF_PKT_REG0_W(00000000acebdf56/00000000ffffffff)
OXM_OF_PKT_REG0_W(a0e0d050a0e0d050/f0f0f0f0f0f0f0f0)
OXM_OF_PKT_REG0_W(a0e0d050a0e0d050/f0f0f0f0ffffffff)
OXM_OF_PKT_REG0_W(00000000a0e0d050/00000000f0f0f0f0), OXM_OF_PKT_REG1_W(a0e0d05000000000/f0f0f0f000000000)
OXM_OF_PKT_REG0_W(00000000a0e0d050/00000000f0f0f0f0), OXM_OF_PKT_REG1_W(a0e0d05000000000/ffffffff00000000)

# Registers 0, 1, and 2.
# (OpenFlow 1.5 transforms these into the standard "xregs".)
NXM_NX_REG0(acebdf56)
NXM_NX_REG0_W(a0e0d050/f0f0f0f0)
NXM_NX_REG0(a0e0d050)
NXM_NX_REG1(acebdf56)
NXM_NX_REG0_W(a0e0d050/f0f0f0f0), NXM_NX_REG1_W(a0e0d050/f0f0f0f0)
NXM_NX_REG0_W(a0e0d050/f0f0f0f0), NXM_NX_REG1(a0e0d050)
NXM_NX_REG1_W(a0e0d050/f0f0f0f0), NXM_NX_REG2_W(a0e0d050/f0f0f0f0)
NXM_NX_REG1_W(a0e0d050/f0f0f0f0), NXM_NX_REG2(a0e0d050)

# actset_output
ONFOXM_ET_ACTSET_OUTPUT(00000000)
ONFOXM_ET_ACTSET_OUTPUT(fffffffe)
ONFOXM_ET_ACTSET_OUTPUT(fffffff7)
OXM_OF_ACTSET_OUTPUT(00000000)
OXM_OF_ACTSET_OUTPUT(fffffffe)
OXM_OF_ACTSET_OUTPUT(fffffff7)
_ATEOF

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2372: ovs-ofctl '-vPATTERN:console:%c|%p|%m' --strict parse-oxm OpenFlow15 < oxm.txt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-ofctl.at:2372"
( $at_check_trace; ovs-ofctl '-vPATTERN:console:%c|%p|%m' --strict parse-oxm OpenFlow15 < oxm.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "# Extended registers 0 and 1.
OXM_OF_PKT_REG0_W(acebdf5600000000/ffffffff00000000)
OXM_OF_PKT_REG0_W(a0e0d05000000000/f0f0f0f000000000)
OXM_OF_PKT_REG0_W(a0e0d05000000000/ffffffff00000000)
OXM_OF_PKT_REG0_W(00000000acebdf56/00000000ffffffff)
OXM_OF_PKT_REG0_W(a0e0d050a0e0d050/f0f0f0f0f0f0f0f0)
OXM_OF_PKT_REG0_W(a0e0d050a0e0d050/f0f0f0f0ffffffff)
OXM_OF_PKT_REG0_W(00000000a0e0d050/00000000f0f0f0f0), OXM_OF_PKT_REG1_W(a0e0d05000000000/f0f0f0f000000000)
OXM_OF_PKT_REG0_W(00000000a0e0d050/00000000f0f0f0f0), OXM_OF_PKT_REG1_W(a0e0d05000000000/ffffffff00000000)

# Registers 0, 1, and 2.
# (OpenFlow 1.5 transforms these into the standard \"xregs\".)
OXM_OF_PKT_REG0_W(acebdf5600000000/ffffffff00000000)
OXM_OF_PKT_REG0_W(a0e0d05000000000/f0f0f0f000000000)
OXM_OF_PKT_REG0_W(a0e0d05000000000/ffffffff00000000)
OXM_OF_PKT_REG0_W(00000000acebdf56/00000000ffffffff)
OXM_OF_PKT_REG0_W(a0e0d050a0e0d050/f0f0f0f0f0f0f0f0)
OXM_OF_PKT_REG0_W(a0e0d050a0e0d050/f0f0f0f0ffffffff)
OXM_OF_PKT_REG0_W(00000000a0e0d050/00000000f0f0f0f0), OXM_OF_PKT_REG1_W(a0e0d05000000000/f0f0f0f000000000)
OXM_OF_PKT_REG0_W(00000000a0e0d050/00000000f0f0f0f0), OXM_OF_PKT_REG1_W(a0e0d05000000000/ffffffff00000000)

# actset_output
OXM_OF_ACTSET_OUTPUT(00000000)
OXM_OF_ACTSET_OUTPUT(fffffffe)
OXM_OF_ACTSET_OUTPUT(fffffff7)
OXM_OF_ACTSET_OUTPUT(00000000)
OXM_OF_ACTSET_OUTPUT(fffffffe)
OXM_OF_ACTSET_OUTPUT(fffffff7)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2372"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_411
#AT_START_412
at_fn_group_banner 412 'ovs-ofctl.at:2405' \
  "ovs-ofctl parse-oxm loose" "                      " 21
at_xfail=no
(
  $as_echo "412. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >oxm.txt <<'_ATEOF'
OXM_OF_IN_PORT(00000001), 01020304(1111/3333), OXM_OF_ETH_TYPE(0800)
OXM_OF_IN_PORT(00000001), ffff020800002320(11112222), OXM_OF_ETH_TYPE(0800)
OXM_OF_IN_PORT(00000001), ffff030800002320(1111/3333), OXM_OF_ETH_TYPE(0800)
_ATEOF


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2413: ovs-ofctl --strict parse-oxm OpenFlow12 < oxm.txt"
at_fn_check_prepare_trace "ovs-ofctl.at:2413"
( $at_check_trace; ovs-ofctl --strict parse-oxm OpenFlow12 < oxm.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "nx_pull_match() returned error OFPBMC_BAD_FIELD
nx_pull_match() returned error OFPBMC_BAD_FIELD
nx_pull_match() returned error OFPBMC_BAD_FIELD
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2413"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2419: ovs-ofctl parse-oxm OpenFlow12 < oxm.txt"
at_fn_check_prepare_trace "ovs-ofctl.at:2419"
( $at_check_trace; ovs-ofctl parse-oxm OpenFlow12 < oxm.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OXM_OF_IN_PORT(00000001), OXM_OF_ETH_TYPE(0800)
OXM_OF_IN_PORT(00000001), OXM_OF_ETH_TYPE(0800)
OXM_OF_IN_PORT(00000001), OXM_OF_ETH_TYPE(0800)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2419"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_412
#AT_START_413
at_fn_group_banner 413 'ovs-ofctl.at:2426' \
  "experimenter OXM encoding" "                      " 21
at_xfail=no
(
  $as_echo "413. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

cat >oxm.txt <<'_ATEOF'
NXM_NX_DP_HASH(01234567)
NXOXM_ET_DP_HASH(01234567)

NXM_NX_DP_HASH_W(01234567/0fffffff)
NXOXM_ET_DP_HASH_W(01234567/0fffffff)
_ATEOF


# To allow for testing experimenter OXM, which doesn't really have many
# examples in the wild, we've defined a variant of NXM_NX_DP_HASH that uses
# the experimenter OXM mechanism, called NXOXM_ET_DP_HASH.  We've defined
# it as if it were introduced with OpenFlow 1.5, which gives us the
# opportunity to see that both forms are accepted in all OpenFlow versions
# but the experimenter form is used for encoding in OF1.5+.
#
# First verify that both forms are accepted and NXOXM_ET_DP_HASH is encoded
# in OF1.5.
{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2444: ovs-ofctl -m --strict parse-oxm OpenFlow15 < oxm.txt"
at_fn_check_prepare_trace "ovs-ofctl.at:2444"
( $at_check_trace; ovs-ofctl -m --strict parse-oxm OpenFlow15 < oxm.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXOXM_ET_DP_HASH(01234567)
00000000  00 01 00 10 ff ff 00 08-00 00 23 20 01 23 45 67
NXOXM_ET_DP_HASH(01234567)
00000000  00 01 00 10 ff ff 00 08-00 00 23 20 01 23 45 67

NXOXM_ET_DP_HASH_W(01234567/0fffffff)
00000000  00 01 00 14 ff ff 01 0c-00 00 23 20 01 23 45 67
00000010  0f ff ff ff 00 00 00 00
NXOXM_ET_DP_HASH_W(01234567/0fffffff)
00000000  00 01 00 14 ff ff 01 0c-00 00 23 20 01 23 45 67
00000010  0f ff ff ff 00 00 00 00
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2444"
$at_failed && at_fn_log_failure
$at_traceon; }


# Then verify that both forms are accepted and NXM_NX_DP_HASH is encoded
# in OF1.2.
{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2460: ovs-ofctl -m --strict parse-oxm OpenFlow12 < oxm.txt"
at_fn_check_prepare_trace "ovs-ofctl.at:2460"
( $at_check_trace; ovs-ofctl -m --strict parse-oxm OpenFlow12 < oxm.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXM_NX_DP_HASH(01234567)
00000000  00 01 00 0c 00 01 46 04-01 23 45 67 00 00 00 00
NXM_NX_DP_HASH(01234567)
00000000  00 01 00 0c 00 01 46 04-01 23 45 67 00 00 00 00

NXM_NX_DP_HASH_W(01234567/0fffffff)
00000000  00 01 00 10 00 01 47 08-01 23 45 67 0f ff ff ff
NXM_NX_DP_HASH_W(01234567/0fffffff)
00000000  00 01 00 10 00 01 47 08-01 23 45 67 0f ff ff ff
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2460"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_413
#AT_START_414
at_fn_group_banner 414 'ovs-ofctl.at:2473' \
  "check TCP flags expression in OXM and NXM" "      " 21
at_xfail=no
(
  $as_echo "414. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

# NXM/OXM input for matching on TCP flags.
tcp_flags='OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_FLAGS(0fff)'

# Check that marshaling into NXM gives all NXM headers.
{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2478: echo \"\$tcp_flags\" | ovs-ofctl parse-nxm"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-ofctl.at:2478"
( $at_check_trace; echo "$tcp_flags" | ovs-ofctl parse-nxm
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_NX_TCP_FLAGS(0fff)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2478"
$at_failed && at_fn_log_failure
$at_traceon; }


# Check that marshaling in OXM for OF1.2 gives OXM headers except for
# TCP flags, which didn't have an OXM definition.
{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2484: echo \"\$tcp_flags\" | ovs-ofctl parse-oxm OpenFlow12"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-ofctl.at:2484"
( $at_check_trace; echo "$tcp_flags" | ovs-ofctl parse-oxm OpenFlow12
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), NXM_NX_TCP_FLAGS(0fff)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2484"
$at_failed && at_fn_log_failure
$at_traceon; }


# Check that marshaling in OXM for OF1.3 and OF1.4 gives OXM headers,
# including the ONF extension for TCP flags introduced in OF1.3.
{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2490: echo \"\$tcp_flags\" | ovs-ofctl parse-oxm OpenFlow13"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-ofctl.at:2490"
( $at_check_trace; echo "$tcp_flags" | ovs-ofctl parse-oxm OpenFlow13
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), ONFOXM_ET_TCP_FLAGS(0fff)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2490"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2493: echo \"\$tcp_flags\" | ovs-ofctl parse-oxm OpenFlow14"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-ofctl.at:2493"
( $at_check_trace; echo "$tcp_flags" | ovs-ofctl parse-oxm OpenFlow14
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), ONFOXM_ET_TCP_FLAGS(0fff)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2493"
$at_failed && at_fn_log_failure
$at_traceon; }


# OpenFlow 1.5 added an OXM header for TCP flags:
{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2498: echo \"\$tcp_flags\" | ovs-ofctl parse-oxm OpenFlow15"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-ofctl.at:2498"
( $at_check_trace; echo "$tcp_flags" | ovs-ofctl parse-oxm OpenFlow15
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OXM_OF_ETH_TYPE(0800), OXM_OF_IP_PROTO(06), OXM_OF_TCP_FLAGS(0fff)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2498"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_414
#AT_START_415
at_fn_group_banner 415 'ovs-ofctl.at:2505' \
  "ovs-ofctl check-vlan" "                           " 21
at_xfail=no
(
  $as_echo "415. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2509: ovs-ofctl check-vlan 0000 0000"
at_fn_check_prepare_trace "ovs-ofctl.at:2509"
( $at_check_trace; ovs-ofctl check-vlan 0000 0000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " -> 0000/0000
NXM: <any> -> 0000/0000
OXM: <any> -> 0000/0000,--
OF1.0: 0000/1,00/1 -> 0000/0000
OF1.1: 0000/1,00/1 -> 0000/0000
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2509"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2518: ovs-ofctl check-vlan 0000 ffff"
at_fn_check_prepare_trace "ovs-ofctl.at:2518"
( $at_check_trace; ovs-ofctl check-vlan 0000 ffff
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "vlan_tci=0x0000 -> 0000/ffff
NXM: NXM_OF_VLAN_TCI(0000) -> 0000/ffff
OXM: OXM_OF_VLAN_VID(0000) -> 0000/1fff,--
OF1.0: ffff/0,00/0 -> 0000/ffff
OF1.1: ffff/0,00/1 -> 0000/ffff
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2518"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2527: ovs-ofctl check-vlan 1abc 1fff"
at_fn_check_prepare_trace "ovs-ofctl.at:2527"
( $at_check_trace; ovs-ofctl check-vlan 1abc 1fff
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dl_vlan=2748 -> 1abc/1fff
NXM: NXM_OF_VLAN_TCI_W(1abc/1fff) -> 1abc/1fff
OXM: OXM_OF_VLAN_VID(1abc) -> 1abc/1fff,--
OF1.0: 0abc/0,00/1 -> 1abc/1fff
OF1.1: 0abc/0,00/1 -> 1abc/1fff
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2527"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2536: ovs-ofctl check-vlan b000 f000"
at_fn_check_prepare_trace "ovs-ofctl.at:2536"
( $at_check_trace; ovs-ofctl check-vlan b000 f000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dl_vlan_pcp=5 -> b000/f000
NXM: NXM_OF_VLAN_TCI_W(b000/f000) -> b000/f000
OXM: OXM_OF_VLAN_VID_W(1000/1000), OXM_OF_VLAN_PCP(05) -> 1000/1000,05
OF1.0: 0000/1,05/0 -> b000/f000
OF1.1: fffe/0,05/0 -> b000/f000
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2536"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2545: ovs-ofctl check-vlan babc ffff"
at_fn_check_prepare_trace "ovs-ofctl.at:2545"
( $at_check_trace; ovs-ofctl check-vlan babc ffff
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dl_vlan=2748,dl_vlan_pcp=5 -> babc/ffff
NXM: NXM_OF_VLAN_TCI(babc) -> babc/ffff
OXM: OXM_OF_VLAN_VID(1abc), OXM_OF_VLAN_PCP(05) -> 1abc/1fff,05
OF1.0: 0abc/0,05/0 -> babc/ffff
OF1.1: 0abc/0,05/0 -> babc/ffff
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2545"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2554: ovs-ofctl check-vlan 0000 0fff"
at_fn_check_prepare_trace "ovs-ofctl.at:2554"
( $at_check_trace; ovs-ofctl check-vlan 0000 0fff
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "vlan_tci=0x0000/0x0fff -> 0000/0fff
NXM: NXM_OF_VLAN_TCI_W(0000/0fff) -> 0000/0fff
OXM: OXM_OF_VLAN_VID_W(0000/0fff) -> 0000/0fff,--
OF1.0: 0000/0,00/1 -> 1000/1fff
OF1.1: 0000/0,00/1 -> 1000/1fff
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2554"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2563: ovs-ofctl check-vlan 0000 f000"
at_fn_check_prepare_trace "ovs-ofctl.at:2563"
( $at_check_trace; ovs-ofctl check-vlan 0000 f000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "vlan_tci=0x0000/0xf000 -> 0000/f000
NXM: NXM_OF_VLAN_TCI_W(0000/f000) -> 0000/f000
OXM: OXM_OF_VLAN_VID_W(0000/1000) -> 0000/1000,--
OF1.0: ffff/0,00/0 -> 0000/ffff
OF1.1: ffff/0,00/1 -> 0000/ffff
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2563"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2572: ovs-ofctl check-vlan 0000 efff"
at_fn_check_prepare_trace "ovs-ofctl.at:2572"
( $at_check_trace; ovs-ofctl check-vlan 0000 efff
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "vlan_tci=0x0000/0xefff -> 0000/efff
NXM: NXM_OF_VLAN_TCI_W(0000/efff) -> 0000/efff
OXM: OXM_OF_VLAN_VID_W(0000/0fff) -> 0000/0fff,--
OF1.0: 0000/0,00/0 -> 1000/ffff
OF1.1: 0000/0,00/0 -> 1000/ffff
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2572"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2581: ovs-ofctl check-vlan 1001 1001"
at_fn_check_prepare_trace "ovs-ofctl.at:2581"
( $at_check_trace; ovs-ofctl check-vlan 1001 1001
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "vlan_tci=0x1001/0x1001 -> 1001/1001
NXM: NXM_OF_VLAN_TCI_W(1001/1001) -> 1001/1001
OXM: OXM_OF_VLAN_VID_W(1001/1001) -> 1001/1001,--
OF1.0: 0001/0,00/1 -> 1001/1fff
OF1.1: 0001/0,00/1 -> 1001/1fff
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2581"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2590: ovs-ofctl check-vlan 3000 3000"
at_fn_check_prepare_trace "ovs-ofctl.at:2590"
( $at_check_trace; ovs-ofctl check-vlan 3000 3000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "vlan_tci=0x3000/0x3000 -> 3000/3000
NXM: NXM_OF_VLAN_TCI_W(3000/3000) -> 3000/3000
OXM: OXM_OF_VLAN_VID_W(1000/1000), OXM_OF_VLAN_PCP(01) -> 1000/1000,01
OF1.0: 0000/1,01/0 -> 3000/f000
OF1.1: fffe/0,01/0 -> 3000/f000
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2590"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2597: "
at_fn_check_prepare_trace "ovs-ofctl.at:2597"
( $at_check_trace;
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2597"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_415
#AT_START_416
at_fn_group_banner 416 'ovs-ofctl.at:2602' \
  "ovs-ofctl -F option and NXM features" "           " 21
at_xfail=no
(
  $as_echo "416. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2603: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-ofctl.at:2603"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2603"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2603: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ovs-ofctl.at:2603"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2603"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2603: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:2603"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2603"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2603: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ovs-ofctl.at:2603"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2603"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2603: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ovs-ofctl.at:2603"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2603"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2603: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:2603"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2603"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2603: add_of_br 0  "
at_fn_check_prepare_trace "ovs-ofctl.at:2603"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2603"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2604: ovs-ofctl -F openflow10 add-flow br0 tun_id=123,actions=drop"
at_fn_check_prepare_trace "ovs-ofctl.at:2604"
( $at_check_trace; ovs-ofctl -F openflow10 add-flow br0 tun_id=123,actions=drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: none of the usable flow formats (NXM,OXM) is among the allowed flow formats (OpenFlow10)
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-ofctl.at:2604"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2607: ovs-ofctl -F openflow10 add-flow br0 metadata=123,actions=drop"
at_fn_check_prepare_trace "ovs-ofctl.at:2607"
( $at_check_trace; ovs-ofctl -F openflow10 add-flow br0 metadata=123,actions=drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: none of the usable flow formats (NXM,OXM,OpenFlow11) is among the allowed flow formats (OpenFlow10)
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-ofctl.at:2607"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2610: check_logs "
at_fn_check_prepare_trace "ovs-ofctl.at:2610"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2610"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2610: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovs-ofctl.at:2610"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2610"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2610: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovs-ofctl.at:2610"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2610"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-ofctl.at:2610: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-ofctl.at:2610: wait failed" >&5

    $as_echo "ovs-ofctl.at:2610" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-ofctl.at:2610"
fi

   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2610: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovs-ofctl.at:2610"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2610"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2610: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovs-ofctl.at:2610"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2610"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-ofctl.at:2610: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-ofctl.at:2610: wait failed" >&5

    $as_echo "ovs-ofctl.at:2610" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-ofctl.at:2610"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_416
#AT_START_417
at_fn_group_banner 417 'ovs-ofctl.at:2617' \
  "ovs-ofctl -F option with flow_mods" "             " 21
at_xfail=no
(
  $as_echo "417. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2618: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-ofctl.at:2618"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2618"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2618: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ovs-ofctl.at:2618"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2618"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2618: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:2618"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2618"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2618: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ovs-ofctl.at:2618"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2618"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2618: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ovs-ofctl.at:2618"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2618"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2618: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:2618"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2618"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2618: add_of_br 0  "
at_fn_check_prepare_trace "ovs-ofctl.at:2618"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2618"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2619: ovs-ofctl -F nxm add-flow br0 tun_id=0x12345678,actions=drop"
at_fn_check_prepare_trace "ovs-ofctl.at:2619"
( $at_check_trace; ovs-ofctl -F nxm add-flow br0 tun_id=0x12345678,actions=drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2619"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2620: ovs-ofctl dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-ofctl.at:2620"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW reply:
 tun_id=0x12345678 actions=drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2620"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2624: check_logs "
at_fn_check_prepare_trace "ovs-ofctl.at:2624"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2624"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2624: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovs-ofctl.at:2624"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2624"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2624: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovs-ofctl.at:2624"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2624"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-ofctl.at:2624: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-ofctl.at:2624: wait failed" >&5

    $as_echo "ovs-ofctl.at:2624" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-ofctl.at:2624"
fi

   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2624: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovs-ofctl.at:2624"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2624"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2624: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovs-ofctl.at:2624"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2624"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-ofctl.at:2624: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-ofctl.at:2624: wait failed" >&5

    $as_echo "ovs-ofctl.at:2624" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-ofctl.at:2624"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_417
#AT_START_418
at_fn_group_banner 418 'ovs-ofctl.at:2629' \
  "ovs-ofctl dump-flows honors -F option" "          " 21
at_xfail=no
(
  $as_echo "418. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2630: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-ofctl.at:2630"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2630"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2630: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ovs-ofctl.at:2630"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2630"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2630: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:2630"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2630"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2630: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ovs-ofctl.at:2630"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2630"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2630: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ovs-ofctl.at:2630"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2630"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2630: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:2630"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2630"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2630: add_of_br 0  "
at_fn_check_prepare_trace "ovs-ofctl.at:2630"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2630"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2631: ovs-ofctl add-flow br0 reg0=0x12345,actions=drop"
at_fn_check_prepare_trace "ovs-ofctl.at:2631"
( $at_check_trace; ovs-ofctl add-flow br0 reg0=0x12345,actions=drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2631"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2632: ovs-ofctl -F openflow10 dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-ofctl.at:2632"
( $at_check_trace; ovs-ofctl -F openflow10 dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW reply:
 actions=drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2632"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2636: check_logs "
at_fn_check_prepare_trace "ovs-ofctl.at:2636"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2636"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2636: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovs-ofctl.at:2636"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2636"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2636: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovs-ofctl.at:2636"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2636"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-ofctl.at:2636: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-ofctl.at:2636: wait failed" >&5

    $as_echo "ovs-ofctl.at:2636" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-ofctl.at:2636"
fi

   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2636: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovs-ofctl.at:2636"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2636"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2636: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovs-ofctl.at:2636"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2636"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-ofctl.at:2636: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-ofctl.at:2636: wait failed" >&5

    $as_echo "ovs-ofctl.at:2636" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-ofctl.at:2636"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_418
#AT_START_419
at_fn_group_banner 419 'ovs-ofctl.at:2641' \
  "ovs-ofctl dump-flows rejects bad -F option" "     " 21
at_xfail=no
(
  $as_echo "419. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2642: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-ofctl.at:2642"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2642"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2642: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ovs-ofctl.at:2642"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2642"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2642: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:2642"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2642"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2642: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ovs-ofctl.at:2642"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2642"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2642: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ovs-ofctl.at:2642"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2642"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2642: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:2642"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2642"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2642: add_of_br 0  "
at_fn_check_prepare_trace "ovs-ofctl.at:2642"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2642"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2643: ovs-ofctl -F openflow10 dump-flows unix:br0.mgmt reg0=0xabcdef"
at_fn_check_prepare_trace "ovs-ofctl.at:2643"
( $at_check_trace; ovs-ofctl -F openflow10 dump-flows unix:br0.mgmt reg0=0xabcdef
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: none of the usable flow formats (NXM,OXM) is among the allowed flow formats (OpenFlow10)
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-ofctl.at:2643"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2646: check_logs "
at_fn_check_prepare_trace "ovs-ofctl.at:2646"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2646"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2646: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovs-ofctl.at:2646"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2646"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2646: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovs-ofctl.at:2646"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2646"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-ofctl.at:2646: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-ofctl.at:2646: wait failed" >&5

    $as_echo "ovs-ofctl.at:2646" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-ofctl.at:2646"
fi

   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2646: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovs-ofctl.at:2646"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2646"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2646: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovs-ofctl.at:2646"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2646"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-ofctl.at:2646: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-ofctl.at:2646: wait failed" >&5

    $as_echo "ovs-ofctl.at:2646" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-ofctl.at:2646"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_419
#AT_START_420
at_fn_group_banner 420 'ovs-ofctl.at:2650' \
  "ovs-ofctl add-flow reports non-normalized flows" "" 21
at_xfail=no
(
  $as_echo "420. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2651: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-ofctl.at:2651"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2651"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2651: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ovs-ofctl.at:2651"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2651"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2651: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:2651"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2651"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2651: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ovs-ofctl.at:2651"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2651"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2651: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ovs-ofctl.at:2651"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2651"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2651: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:2651"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2651"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2651: add_of_br 0  "
at_fn_check_prepare_trace "ovs-ofctl.at:2651"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2651"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2652: ovs-ofctl -vPATTERN:ANY:'%c|%p|%m' add-flow br0 nw_src=1.2.3.4,actions=5"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-ofctl.at:2652"
( $at_check_trace; ovs-ofctl -vPATTERN:ANY:'%c|%p|%m' add-flow br0 nw_src=1.2.3.4,actions=5
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ofp_util|INFO|normalization changed ofp_match, details:
ofp_util|INFO| pre: nw_src=1.2.3.4
ofp_util|INFO|post: 
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2652"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2658: check_logs "
at_fn_check_prepare_trace "ovs-ofctl.at:2658"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2658"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2658: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovs-ofctl.at:2658"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2658"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2658: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovs-ofctl.at:2658"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2658"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-ofctl.at:2658: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-ofctl.at:2658: wait failed" >&5

    $as_echo "ovs-ofctl.at:2658" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-ofctl.at:2658"
fi

   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2658: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovs-ofctl.at:2658"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2658"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2658: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovs-ofctl.at:2658"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2658"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-ofctl.at:2658: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-ofctl.at:2658: wait failed" >&5

    $as_echo "ovs-ofctl.at:2658" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-ofctl.at:2658"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_420
#AT_START_421
at_fn_group_banner 421 'ovs-ofctl.at:2664' \
  "ovs-ofctl dump-flows with sorting" "              " 21
at_xfail=no
(
  $as_echo "421. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2665: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-ofctl.at:2665"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2665"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2665: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ovs-ofctl.at:2665"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2665"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2665: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:2665"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2665"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2665: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ovs-ofctl.at:2665"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2665"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2665: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ovs-ofctl.at:2665"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2665"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2665: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:2665"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2665"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2665: add_of_br 0  "
at_fn_check_prepare_trace "ovs-ofctl.at:2665"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2665"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



cat >allflows.txt <<'_ATEOF'

priority=4,in_port=23213 actions=output:42
priority=5,in_port=1029 actions=output:43
priority=7,in_port=1029 actions=output:43
priority=3,in_port=1028 actions=output:44
priority=1,in_port=1026 actions=output:45
priority=6,in_port=1027 actions=output:64
priority=2,in_port=1025 actions=output:47
priority=8,tcp,tp_src=5 actions=drop
priority=9,tcp,tp_src=6 actions=drop
priority=10,tun_metadata0=0xab actions=drop
priority=11,tun_metadata0=0xcd actions=drop
_ATEOF


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2681: ovs-ofctl add-tlv-map br0 \"{class=0xffff,type=0,len=4}->tun_metadata0\""
at_fn_check_prepare_trace "ovs-ofctl.at:2681"
( $at_check_trace; ovs-ofctl add-tlv-map br0 "{class=0xffff,type=0,len=4}->tun_metadata0"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2681"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2682: ovs-ofctl add-flows br0 allflows.txt
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:2682"
( $at_check_trace; ovs-ofctl add-flows br0 allflows.txt

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2682"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2685: ovs-ofctl --sort dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-ofctl.at:2685"
( $at_check_trace; ovs-ofctl --sort dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " priority=1,in_port=1026 actions=output:45
 priority=2,in_port=1025 actions=output:47
 priority=3,in_port=1028 actions=output:44
 priority=4,in_port=23213 actions=output:42
 priority=5,in_port=1029 actions=output:43
 priority=6,in_port=1027 actions=output:64
 priority=7,in_port=1029 actions=output:43
 priority=8,tcp,tp_src=5 actions=drop
 priority=9,tcp,tp_src=6 actions=drop
 priority=10,tun_metadata0=0xab actions=drop
 priority=11,tun_metadata0=0xcd actions=drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2685"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2698: ovs-ofctl --rsort dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-ofctl.at:2698"
( $at_check_trace; ovs-ofctl --rsort dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " priority=11,tun_metadata0=0xcd actions=drop
 priority=10,tun_metadata0=0xab actions=drop
 priority=9,tcp,tp_src=6 actions=drop
 priority=8,tcp,tp_src=5 actions=drop
 priority=7,in_port=1029 actions=output:43
 priority=6,in_port=1027 actions=output:64
 priority=5,in_port=1029 actions=output:43
 priority=4,in_port=23213 actions=output:42
 priority=3,in_port=1028 actions=output:44
 priority=2,in_port=1025 actions=output:47
 priority=1,in_port=1026 actions=output:45
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2698"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2711: ovs-ofctl --sort=in_port dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-ofctl.at:2711"
( $at_check_trace; ovs-ofctl --sort=in_port dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " priority=2,in_port=1025 actions=output:47
 priority=1,in_port=1026 actions=output:45
 priority=6,in_port=1027 actions=output:64
 priority=3,in_port=1028 actions=output:44
 priority=7,in_port=1029 actions=output:43
 priority=5,in_port=1029 actions=output:43
 priority=4,in_port=23213 actions=output:42
 priority=11,tun_metadata0=0xcd actions=drop
 priority=10,tun_metadata0=0xab actions=drop
 priority=9,tcp,tp_src=6 actions=drop
 priority=8,tcp,tp_src=5 actions=drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2711"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2724: ovs-ofctl --rsort=in_port dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-ofctl.at:2724"
( $at_check_trace; ovs-ofctl --rsort=in_port dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " priority=4,in_port=23213 actions=output:42
 priority=7,in_port=1029 actions=output:43
 priority=5,in_port=1029 actions=output:43
 priority=3,in_port=1028 actions=output:44
 priority=6,in_port=1027 actions=output:64
 priority=1,in_port=1026 actions=output:45
 priority=2,in_port=1025 actions=output:47
 priority=11,tun_metadata0=0xcd actions=drop
 priority=10,tun_metadata0=0xab actions=drop
 priority=9,tcp,tp_src=6 actions=drop
 priority=8,tcp,tp_src=5 actions=drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2724"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2737: ovs-ofctl --sort=tcp_src dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-ofctl.at:2737"
( $at_check_trace; ovs-ofctl --sort=tcp_src dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " priority=8,tcp,tp_src=5 actions=drop
 priority=9,tcp,tp_src=6 actions=drop
 priority=11,tun_metadata0=0xcd actions=drop
 priority=10,tun_metadata0=0xab actions=drop
 priority=7,in_port=1029 actions=output:43
 priority=6,in_port=1027 actions=output:64
 priority=5,in_port=1029 actions=output:43
 priority=4,in_port=23213 actions=output:42
 priority=3,in_port=1028 actions=output:44
 priority=2,in_port=1025 actions=output:47
 priority=1,in_port=1026 actions=output:45
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2737"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2750: ovs-ofctl --sort=in_port --sort=tcp_src --sort=tun_metadata0 dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-ofctl.at:2750"
( $at_check_trace; ovs-ofctl --sort=in_port --sort=tcp_src --sort=tun_metadata0 dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " priority=2,in_port=1025 actions=output:47
 priority=1,in_port=1026 actions=output:45
 priority=6,in_port=1027 actions=output:64
 priority=3,in_port=1028 actions=output:44
 priority=7,in_port=1029 actions=output:43
 priority=5,in_port=1029 actions=output:43
 priority=4,in_port=23213 actions=output:42
 priority=8,tcp,tp_src=5 actions=drop
 priority=9,tcp,tp_src=6 actions=drop
 priority=10,tun_metadata0=0xab actions=drop
 priority=11,tun_metadata0=0xcd actions=drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2750"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2764: check_logs "
at_fn_check_prepare_trace "ovs-ofctl.at:2764"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2764"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2764: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovs-ofctl.at:2764"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2764"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2764: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovs-ofctl.at:2764"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2764"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-ofctl.at:2764: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-ofctl.at:2764: wait failed" >&5

    $as_echo "ovs-ofctl.at:2764" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-ofctl.at:2764"
fi

   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2764: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovs-ofctl.at:2764"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2764"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2764: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovs-ofctl.at:2764"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2764"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-ofctl.at:2764: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-ofctl.at:2764: wait failed" >&5

    $as_echo "ovs-ofctl.at:2764" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-ofctl.at:2764"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_421
#AT_START_422
at_fn_group_banner 422 'ovs-ofctl.at:2767' \
  "ovs-ofctl dump-flows --names" "                   " 21
at_xfail=no
(
  $as_echo "422. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2769: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-ofctl.at:2769"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2769"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2769: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ovs-ofctl.at:2769"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2769"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2769: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:2769"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2769"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2769: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ovs-ofctl.at:2769"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2769"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2769: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ovs-ofctl.at:2769"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2769"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2769: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:2769"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2769"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2769: add_of_br 0 \\
    -- add-port br0 xyzzy -- set Interface xyzzy type=dummy -- \\
    -- add-port br0 x-y -- set Interface x-y type=dummy -- \\
    -- add-port br0 abc123 -- set Interface abc123 type=dummy -- \\
    -- add-port br0 reallyverylongportname -- set Interface reallyverylongportname type=dummy -- \\
    -- add-port br0 conflictinglongportname1 -- set Interface conflictinglongportname1 type=dummy -- \\
    -- add-port br0 conflictinglongportname2 -- set Interface conflictinglongportname2 type=dummy "
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:2769"
( $at_check_trace; add_of_br 0 \
    -- add-port br0 xyzzy -- set Interface xyzzy type=dummy -- \
    -- add-port br0 x-y -- set Interface x-y type=dummy -- \
    -- add-port br0 abc123 -- set Interface abc123 type=dummy -- \
    -- add-port br0 reallyverylongportname -- set Interface reallyverylongportname type=dummy -- \
    -- add-port br0 conflictinglongportname1 -- set Interface conflictinglongportname1 type=dummy -- \
    -- add-port br0 conflictinglongportname2 -- set Interface conflictinglongportname2 type=dummy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2769"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# These plain port names should be accepted.
{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2778: ovs-ofctl add-flow br0 in_port=xyzzy,actions=x-y,abc123"
at_fn_check_prepare_trace "ovs-ofctl.at:2778"
( $at_check_trace; ovs-ofctl add-flow br0 in_port=xyzzy,actions=x-y,abc123
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2778"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# reallyverylongportname is accepted truncated, but not in full.
{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2781: ovs-ofctl add-flow br0 in_port=reallyverylongp,actions=drop"
at_fn_check_prepare_trace "ovs-ofctl.at:2781"
( $at_check_trace; ovs-ofctl add-flow br0 in_port=reallyverylongp,actions=drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2781"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2782: ovs-ofctl add-flow br0 in_port=reallyverylongportname,actions=drop"
at_fn_check_prepare_trace "ovs-ofctl.at:2782"
( $at_check_trace; ovs-ofctl add-flow br0 in_port=reallyverylongportname,actions=drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: reallyverylongportname: invalid or unknown port for in_port
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-ofctl.at:2782"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# conflictinglongportname1 and 2 can't be accepted even truncated, since
# they conflict when truncated.
{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2788: ovs-ofctl add-flow br0 in_port=conflictinglongportname1,actions=drop"
at_fn_check_prepare_trace "ovs-ofctl.at:2788"
( $at_check_trace; ovs-ofctl add-flow br0 in_port=conflictinglongportname1,actions=drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: conflictinglongportname1: invalid or unknown port for in_port
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-ofctl.at:2788"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2790: ovs-ofctl add-flow br0 in_port=conflictinglongportname2,actions=drop"
at_fn_check_prepare_trace "ovs-ofctl.at:2790"
( $at_check_trace; ovs-ofctl add-flow br0 in_port=conflictinglongportname2,actions=drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: conflictinglongportname2: invalid or unknown port for in_port
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-ofctl.at:2790"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2792: ovs-ofctl add-flow br0 in_port=conflictinglong,actions=drop"
at_fn_check_prepare_trace "ovs-ofctl.at:2792"
( $at_check_trace; ovs-ofctl add-flow br0 in_port=conflictinglong,actions=drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: conflictinglong: invalid or unknown port for in_port
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-ofctl.at:2792"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Show that the port names get displayed properly and that port names that
# aren't alphanumeric get quoted.
{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2797: ovs-ofctl --names dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-ofctl.at:2797"
( $at_check_trace; ovs-ofctl --names dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " in_port=reallyverylongp actions=drop
 in_port=xyzzy actions=output:\"x-y\",output:abc123
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2797"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2801: check_logs "
at_fn_check_prepare_trace "ovs-ofctl.at:2801"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2801"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2801: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovs-ofctl.at:2801"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2801"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2801: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovs-ofctl.at:2801"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2801"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-ofctl.at:2801: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-ofctl.at:2801: wait failed" >&5

    $as_echo "ovs-ofctl.at:2801" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-ofctl.at:2801"
fi

   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2801: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovs-ofctl.at:2801"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2801"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2801: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovs-ofctl.at:2801"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2801"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-ofctl.at:2801: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-ofctl.at:2801: wait failed" >&5

    $as_echo "ovs-ofctl.at:2801" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-ofctl.at:2801"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_422
#AT_START_423
at_fn_group_banner 423 'ovs-ofctl.at:2804' \
  "ovs-ofctl diff-flows" "                           " 21
at_xfail=no
(
  $as_echo "423. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2805: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-ofctl.at:2805"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2805"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2805: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ovs-ofctl.at:2805"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2805"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2805: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:2805"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2805"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2805: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ovs-ofctl.at:2805"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2805"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2805: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ovs-ofctl.at:2805"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2805"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2805: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:2805"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2805"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2805: add_of_br 0  "
at_fn_check_prepare_trace "ovs-ofctl.at:2805"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2805"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Add tons of flows to br0.
for i in `seq 0 1023`; do echo "dl_vlan=$i,actions=drop"; done > add-flows.txt
{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2809: ovs-ofctl add-flows br0 add-flows.txt"
at_fn_check_prepare_trace "ovs-ofctl.at:2809"
( $at_check_trace; ovs-ofctl add-flows br0 add-flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2809"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Dump them and compare against what we expect by hand, then with diff-flows.
for i in `seq 0 1023`; do echo " dl_vlan=$i actions=drop"; done | sort > expout
{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2813: ovs-ofctl dump-flows br0 | ofctl_strip | sed '/NXST_FLOW/d' | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-ofctl.at:2813"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sed '/NXST_FLOW/d' | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2813"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2815: ovs-ofctl diff-flows br0 add-flows.txt"
at_fn_check_prepare_trace "ovs-ofctl.at:2815"
( $at_check_trace; ovs-ofctl diff-flows br0 add-flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2815"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Remove even-numbered flows, compare again.
for i in `seq 0 1023 2`; do echo "dl_vlan=$i"; done > del-flows.txt
{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2819: ovs-ofctl del-flows br0 - < del-flows.txt"
at_fn_check_prepare_trace "ovs-ofctl.at:2819"
( $at_check_trace; ovs-ofctl del-flows br0 - < del-flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2819"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

for i in `seq 0 1023 2`; do echo "+dl_vlan=$i actions=drop"; done | sort > expout
{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2821: ovs-ofctl diff-flows br0 add-flows.txt | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-ofctl.at:2821"
( $at_check_trace; ovs-ofctl diff-flows br0 add-flows.txt | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2821"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

for i in `seq 0 1023 2`; do echo "-dl_vlan=$i actions=drop"; done | sort > expout
{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2823: ovs-ofctl diff-flows add-flows.txt br0 | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-ofctl.at:2823"
( $at_check_trace; ovs-ofctl diff-flows add-flows.txt br0 | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2823"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2825: check_logs "
at_fn_check_prepare_trace "ovs-ofctl.at:2825"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2825"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2825: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovs-ofctl.at:2825"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2825"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2825: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovs-ofctl.at:2825"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2825"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-ofctl.at:2825: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-ofctl.at:2825: wait failed" >&5

    $as_echo "ovs-ofctl.at:2825" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-ofctl.at:2825"
fi

   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2825: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovs-ofctl.at:2825"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2825"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2825: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovs-ofctl.at:2825"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2825"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-ofctl.at:2825: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-ofctl.at:2825: wait failed" >&5

    $as_echo "ovs-ofctl.at:2825" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-ofctl.at:2825"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_423
#AT_START_424
at_fn_group_banner 424 'ovs-ofctl.at:2828' \
  "ovs-ofctl diff-flows - tunnel metadata" "         " 21
at_xfail=no
(
  $as_echo "424. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2829: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-ofctl.at:2829"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2829"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2829: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ovs-ofctl.at:2829"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2829"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2829: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:2829"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2829"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2829: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ovs-ofctl.at:2829"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2829"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2829: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ovs-ofctl.at:2829"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2829"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2829: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:2829"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2829"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2829: add_of_br 0  "
at_fn_check_prepare_trace "ovs-ofctl.at:2829"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2829"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2831: ovs-ofctl add-tlv-map br0 \"{class=0xffff,type=0,len=4}->tun_metadata0,{class=0xffff,type=1,len=8}->tun_metadata1\""
at_fn_check_prepare_trace "ovs-ofctl.at:2831"
( $at_check_trace; ovs-ofctl add-tlv-map br0 "{class=0xffff,type=0,len=4}->tun_metadata0,{class=0xffff,type=1,len=8}->tun_metadata1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2831"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Tunnel metadata requires dynamic allocation of space in the metadata table.
# To stress this, try flows with different sizes for metadata, in different
# orders, and interspersed with other fields to see if they still compare
# correctly.
cat >flows.txt <<'_ATEOF'
priority=0,tun_metadata0=0,actions=drop
priority=1,tun_metadata1=0xef/0xff,tun_metadata0=0xabcd,actions=drop
priority=2,tun_metadata0=0xffffffff,actions=drop
_ATEOF


cat >flows2.txt <<'_ATEOF'
priority=2,tun_metadata0=0xffffffff,actions=drop
priority=0,tun_metadata0=0,actions=drop
_ATEOF


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2848: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ovs-ofctl.at:2848"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2848"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2849: ovs-ofctl diff-flows br0 flows2.txt"
at_fn_check_prepare_trace "ovs-ofctl.at:2849"
( $at_check_trace; ovs-ofctl diff-flows br0 flows2.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "-priority=1,tun_metadata0=0xabcd,tun_metadata1=0xef/0xff actions=drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ovs-ofctl.at:2849"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2853: check_logs "
at_fn_check_prepare_trace "ovs-ofctl.at:2853"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2853"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2853: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovs-ofctl.at:2853"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2853"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2853: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovs-ofctl.at:2853"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2853"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-ofctl.at:2853: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-ofctl.at:2853: wait failed" >&5

    $as_echo "ovs-ofctl.at:2853" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-ofctl.at:2853"
fi

   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2853: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovs-ofctl.at:2853"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2853"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2853: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovs-ofctl.at:2853"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2853"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-ofctl.at:2853: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-ofctl.at:2853: wait failed" >&5

    $as_echo "ovs-ofctl.at:2853" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-ofctl.at:2853"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_424
#AT_START_425
at_fn_group_banner 425 'ovs-ofctl.at:2864' \
  "ovs-ofctl diff-flows - suppress false differences" "" 21
at_xfail=no
(
  $as_echo "425. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2865: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-ofctl.at:2865"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2865"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2865: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ovs-ofctl.at:2865"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2865"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2865: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:2865"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2865"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2865: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ovs-ofctl.at:2865"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2865"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2865: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ovs-ofctl.at:2865"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2865"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2865: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:2865"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2865"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2865: add_of_br 0  "
at_fn_check_prepare_trace "ovs-ofctl.at:2865"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2865"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
actions=resubmit(,1)
_ATEOF

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2868: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ovs-ofctl.at:2868"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2868"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2869: ovs-ofctl diff-flows br0 flows.txt"
at_fn_check_prepare_trace "ovs-ofctl.at:2869"
( $at_check_trace; ovs-ofctl diff-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2869"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2870: ovs-ofctl add-flow br0 idle_timeout=60,dl_vlan=9,actions=output:1"
at_fn_check_prepare_trace "ovs-ofctl.at:2870"
( $at_check_trace; ovs-ofctl add-flow br0 idle_timeout=60,dl_vlan=9,actions=output:1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2870"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2871: ovs-ofctl diff-flows br0 flows.txt"
at_fn_check_prepare_trace "ovs-ofctl.at:2871"
( $at_check_trace; ovs-ofctl diff-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "-dl_vlan=9 idle_timeout=60 actions=output:1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ovs-ofctl.at:2871"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2874: ovs-ofctl add-flow br0 hard_timeout=120,cookie=1234,dl_vlan=9,actions=output:1"
at_fn_check_prepare_trace "ovs-ofctl.at:2874"
( $at_check_trace; ovs-ofctl add-flow br0 hard_timeout=120,cookie=1234,dl_vlan=9,actions=output:1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2874"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2875: ovs-ofctl diff-flows flows.txt br0"
at_fn_check_prepare_trace "ovs-ofctl.at:2875"
( $at_check_trace; ovs-ofctl diff-flows flows.txt br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "+dl_vlan=9 cookie=0x4d2 hard_timeout=120 actions=output:1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ovs-ofctl.at:2875"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2878: check_logs "
at_fn_check_prepare_trace "ovs-ofctl.at:2878"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2878"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2878: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovs-ofctl.at:2878"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2878"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2878: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovs-ofctl.at:2878"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2878"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-ofctl.at:2878: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-ofctl.at:2878: wait failed" >&5

    $as_echo "ovs-ofctl.at:2878" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-ofctl.at:2878"
fi

   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2878: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovs-ofctl.at:2878"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2878"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2878: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovs-ofctl.at:2878"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2878"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-ofctl.at:2878: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-ofctl.at:2878: wait failed" >&5

    $as_echo "ovs-ofctl.at:2878" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-ofctl.at:2878"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_425
#AT_START_426
at_fn_group_banner 426 'ovs-ofctl.at:2881' \
  "ovs-ofctl -F and -O interaction" "                " 21
at_xfail=no
(
  $as_echo "426. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2882: ovs-ofctl -F oxm -O openflow10"
at_fn_check_prepare_trace "ovs-ofctl.at:2882"
( $at_check_trace; ovs-ofctl -F oxm -O openflow10
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: None of the enabled OpenFlow versions (OpenFlow10) supports any of the enabled flow formats (OXM).  (Use -O to enable additional OpenFlow versions or -F to enable additional flow formats.)
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-ofctl.at:2882"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2885: ovs-ofctl -F oxm -O openflow11"
at_fn_check_prepare_trace "ovs-ofctl.at:2885"
( $at_check_trace; ovs-ofctl -F oxm -O openflow11
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: None of the enabled OpenFlow versions (OpenFlow11) supports any of the enabled flow formats (OXM).  (Use -O to enable additional OpenFlow versions or -F to enable additional flow formats.)
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-ofctl.at:2885"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2888: ovs-ofctl -F oxm -O openflow10,openflow11"
at_fn_check_prepare_trace "ovs-ofctl.at:2888"
( $at_check_trace; ovs-ofctl -F oxm -O openflow10,openflow11
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: None of the enabled OpenFlow versions (OpenFlow10, OpenFlow11) supports any of the enabled flow formats (OXM).  (Use -O to enable additional OpenFlow versions or -F to enable additional flow formats.)
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-ofctl.at:2888"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2891: ovs-ofctl -F oxm -O openflow10,openflow12"
at_fn_check_prepare_trace "ovs-ofctl.at:2891"
( $at_check_trace; ovs-ofctl -F oxm -O openflow10,openflow12
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: missing command name; use --help for help
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-ofctl.at:2891"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2894: ovs-ofctl -F oxm -O openflow12"
at_fn_check_prepare_trace "ovs-ofctl.at:2894"
( $at_check_trace; ovs-ofctl -F oxm -O openflow12
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: missing command name; use --help for help
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-ofctl.at:2894"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2897: ovs-ofctl -F oxm -O openflow13"
at_fn_check_prepare_trace "ovs-ofctl.at:2897"
( $at_check_trace; ovs-ofctl -F oxm -O openflow13
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: missing command name; use --help for help
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-ofctl.at:2897"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_426
#AT_START_427
at_fn_group_banner 427 'ovs-ofctl.at:2902' \
  "ovs-ofctl ofp-parse" "                            " 21
at_xfail=no
(
  $as_echo "427. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

# Test the echo request/reply messages (0 payload).
{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2904: printf '\\1\\2\\0\\10\\0\\0\\0\\0\\1\\3\\0\\10\\0\\0\\0\\0' > binary_ofp_msg"
at_fn_check_prepare_trace "ovs-ofctl.at:2904"
( $at_check_trace; printf '\1\2\0\10\0\0\0\0\1\3\0\10\0\0\0\0' > binary_ofp_msg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2904"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2905: ovs-ofctl ofp-parse binary_ofp_msg"
at_fn_check_prepare_trace "ovs-ofctl.at:2905"
( $at_check_trace; ovs-ofctl ofp-parse binary_ofp_msg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ECHO_REQUEST (xid=0x0): 0 bytes of payload
OFPT_ECHO_REPLY (xid=0x0): 0 bytes of payload
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2905"
$at_failed && at_fn_log_failure
$at_traceon; }


# Test the hello (xid:1 3-byte payload).
{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2911: printf '\\1\\0\\0\\13\\0\\0\\0\\1\\101\\102\\103' > binary_ofp_msg"
at_fn_check_prepare_trace "ovs-ofctl.at:2911"
( $at_check_trace; printf '\1\0\0\13\0\0\0\1\101\102\103' > binary_ofp_msg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2911"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2912: ovs-ofctl ofp-parse - < binary_ofp_msg"
at_fn_check_prepare_trace "ovs-ofctl.at:2912"
( $at_check_trace; ovs-ofctl ofp-parse - < binary_ofp_msg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_HELLO (xid=0x1):
 version bitmap: 0x01
 unknown data in hello:
00000000  01 00 00 0b 00 00 00 01-41 42 43                |........ABC     |
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2912"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_427
#AT_START_428
at_fn_group_banner 428 'ovs-ofctl.at:2920' \
  "tcp flags - filtering" "                          " 21
at_xfail=no
(
  $as_echo "428. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2921: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-ofctl.at:2921"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2921"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2921: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ovs-ofctl.at:2921"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2921"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2921: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:2921"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2921"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2921: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ovs-ofctl.at:2921"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2921"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2921: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ovs-ofctl.at:2921"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2921"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2921: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:2921"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2921"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2921: add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1 \\
                    -- add-port br0 p2 -- set Interface p2 type=dummy ofport_request=2 "
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:2921"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1 \
                    -- add-port br0 p2 -- set Interface p2 type=dummy ofport_request=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2921"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
	in_port=1,tcp,tp_dst=80,tcp_flags=+syn-rst-ack-fin,action=2  # Allow outbound web traffic bare-SYN
	in_port=1,tcp,tp_dst=80,tcp_flags=+ack,action=2  # Allow outbound web traffic with ACK bit
	in_port=1,tcp,tp_dst=80,tcp_flags=+rst,action=2  # Allow outbound web traffic with RST bit
	in_port=2,tcp,tp_src=80,tcp_flags=+ack,action=1  # Allow inbound web traffic with ACK bit
	in_port=2,tcp,tp_src=80,tcp_flags=+rst,action=1  # Allow inbound web traffic with RST bit
	priority=0,in_port=1,action=drop  # Default drop outbound
	priority=0,in_port=2,action=drop  # Default drop inbound
_ATEOF


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2933: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ovs-ofctl.at:2933"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2933"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2935: ovs-ofctl add-flow br0 \"tcp,tcp_flags=+ack-ack,action=\""
at_fn_check_prepare_trace "ovs-ofctl.at:2935"
( $at_check_trace; ovs-ofctl add-flow br0 "tcp,tcp_flags=+ack-ack,action="
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: ack: Each TCP flag can be specified only once
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-ofctl.at:2935"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2939: ovs-appctl dpif/show | tail -n +4"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-ofctl.at:2939"
( $at_check_trace; ovs-appctl dpif/show | tail -n +4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "		p1 1/1: (dummy)
		p2 2/2: (dummy)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2939"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2945: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=80),tcp_flags(0x002)'"
at_fn_check_prepare_trace "ovs-ofctl.at:2945"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=80),tcp_flags(0x002)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2945"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2946: tail -1 stdout"
at_fn_check_prepare_trace "ovs-ofctl.at:2946"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2946"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2951: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=80),tcp_flags(0x110)'"
at_fn_check_prepare_trace "ovs-ofctl.at:2951"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=80),tcp_flags(0x110)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2951"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2952: tail -1 stdout"
at_fn_check_prepare_trace "ovs-ofctl.at:2952"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2952"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2957: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=80),tcp_flags(0x104)'"
at_fn_check_prepare_trace "ovs-ofctl.at:2957"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=80),tcp_flags(0x104)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2957"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2958: tail -1 stdout"
at_fn_check_prepare_trace "ovs-ofctl.at:2958"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2958"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2963: ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=50:54:00:00:00:07,dst=50:54:00:00:00:05),eth_type(0x0800),ipv4(src=192.168.0.2,dst=192.168.0.1,proto=6,tos=0,ttl=64,frag=no),tcp(src=80,dst=8),tcp_flags(0x010)'"
at_fn_check_prepare_trace "ovs-ofctl.at:2963"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=50:54:00:00:00:07,dst=50:54:00:00:00:05),eth_type(0x0800),ipv4(src=192.168.0.2,dst=192.168.0.1,proto=6,tos=0,ttl=64,frag=no),tcp(src=80,dst=8),tcp_flags(0x010)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2963"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2964: tail -1 stdout"
at_fn_check_prepare_trace "ovs-ofctl.at:2964"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2964"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2969: ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=50:54:00:00:00:07,dst=50:54:00:00:00:05),eth_type(0x0800),ipv4(src=192.168.0.2,dst=192.168.0.1,proto=6,tos=0,ttl=64,frag=no),tcp(src=80,dst=8),tcp_flags(0x014)'"
at_fn_check_prepare_trace "ovs-ofctl.at:2969"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=50:54:00:00:00:07,dst=50:54:00:00:00:05),eth_type(0x0800),ipv4(src=192.168.0.2,dst=192.168.0.1,proto=6,tos=0,ttl=64,frag=no),tcp(src=80,dst=8),tcp_flags(0x014)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2969"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2970: tail -1 stdout"
at_fn_check_prepare_trace "ovs-ofctl.at:2970"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2970"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2975: ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=50:54:00:00:00:07,dst=50:54:00:00:00:05),eth_type(0x0800),ipv4(src=192.168.0.2,dst=192.168.0.1,proto=6,tos=0,ttl=64,frag=no),tcp(src=80,dst=8),tcp_flags(0xfeb)'"
at_fn_check_prepare_trace "ovs-ofctl.at:2975"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=50:54:00:00:00:07,dst=50:54:00:00:00:05),eth_type(0x0800),ipv4(src=192.168.0.2,dst=192.168.0.1,proto=6,tos=0,ttl=64,frag=no),tcp(src=80,dst=8),tcp_flags(0xfeb)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2975"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2976: tail -1 stdout"
at_fn_check_prepare_trace "ovs-ofctl.at:2976"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2976"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2980: check_logs "
at_fn_check_prepare_trace "ovs-ofctl.at:2980"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2980"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2980: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovs-ofctl.at:2980"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2980"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2980: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovs-ofctl.at:2980"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2980"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-ofctl.at:2980: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-ofctl.at:2980: wait failed" >&5

    $as_echo "ovs-ofctl.at:2980" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-ofctl.at:2980"
fi

   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2980: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovs-ofctl.at:2980"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2980"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2980: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovs-ofctl.at:2980"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2980"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-ofctl.at:2980: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-ofctl.at:2980: wait failed" >&5

    $as_echo "ovs-ofctl.at:2980" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-ofctl.at:2980"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_428
#AT_START_429
at_fn_group_banner 429 'ovs-ofctl.at:2989' \
  "ovs-ofctl rule with importance" "                 " 21
at_xfail=no
(
  $as_echo "429. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2990: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-ofctl.at:2990"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2990"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2990: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ovs-ofctl.at:2990"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2990"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2990: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:2990"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2990"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2990: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ovs-ofctl.at:2990"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2990"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2990: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ovs-ofctl.at:2990"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2990"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2990: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:2990"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2990"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2990: add_of_br 0  "
at_fn_check_prepare_trace "ovs-ofctl.at:2990"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2990"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2992: ovs-ofctl -O OpenFlow14 add-flow br0 priority=21,importance=21,actions=normal"
at_fn_check_prepare_trace "ovs-ofctl.at:2992"
( $at_check_trace; ovs-ofctl -O OpenFlow14 add-flow br0 priority=21,importance=21,actions=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2992"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2993: ovs-ofctl add-flow br0 priority=22,importance=22,actions=normal"
at_fn_check_prepare_trace "ovs-ofctl.at:2993"
( $at_check_trace; ovs-ofctl add-flow br0 priority=22,importance=22,actions=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2993"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:2996: ovs-ofctl -O OpenFlow14 dump-flows br0 | ofctl_strip | sed '/ST_FLOW reply/d' | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-ofctl.at:2996"
( $at_check_trace; ovs-ofctl -O OpenFlow14 dump-flows br0 | ofctl_strip | sed '/ST_FLOW reply/d' | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " importance=21, priority=21 actions=NORMAL
 reset_counts priority=22 actions=NORMAL
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:2996"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3002: ovs-ofctl dump-flows br0 | ofctl_strip | sed '/ST_FLOW reply/d' | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-ofctl.at:3002"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sed '/ST_FLOW reply/d' | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " priority=21 actions=NORMAL
 priority=22 actions=NORMAL
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3002"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3007: check_logs "
at_fn_check_prepare_trace "ovs-ofctl.at:3007"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3007"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3007: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovs-ofctl.at:3007"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3007"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3007: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovs-ofctl.at:3007"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3007"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-ofctl.at:3007: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-ofctl.at:3007: wait failed" >&5

    $as_echo "ovs-ofctl.at:3007" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-ofctl.at:3007"
fi

   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3007: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovs-ofctl.at:3007"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3007"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3007: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovs-ofctl.at:3007"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3007"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-ofctl.at:3007: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-ofctl.at:3007: wait failed" >&5

    $as_echo "ovs-ofctl.at:3007" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-ofctl.at:3007"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_429
#AT_START_430
at_fn_group_banner 430 'ovs-ofctl.at:3016' \
  "ovs-ofctl replace-flows with importance" "        " 21
at_xfail=no
(
  $as_echo "430. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3017: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-ofctl.at:3017"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3017"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3017: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ovs-ofctl.at:3017"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3017"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3017: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:3017"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3017"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3017: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ovs-ofctl.at:3017"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3017"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3017: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ovs-ofctl.at:3017"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3017"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3017: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:3017"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3017"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3017: add_of_br 0  "
at_fn_check_prepare_trace "ovs-ofctl.at:3017"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3017"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



for i in 1 2 3 4 5 6 7 8; do echo "dl_vlan=$i,importance=$i,actions=drop"; done > add-flows.txt
{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3021: ovs-ofctl -O OpenFlow14 add-flows br0 add-flows.txt"
at_fn_check_prepare_trace "ovs-ofctl.at:3021"
( $at_check_trace; ovs-ofctl -O OpenFlow14 add-flows br0 add-flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3021"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


for i in 1 3 5 7; do echo " importance=`expr $i + 10`, dl_vlan=$i actions=drop"; done > replace-flows.txt
{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3025: ovs-ofctl -O OpenFlow14 replace-flows br0 replace-flows.txt"
at_fn_check_prepare_trace "ovs-ofctl.at:3025"
( $at_check_trace; ovs-ofctl -O OpenFlow14 replace-flows br0 replace-flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3025"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat replace-flows.txt > expout
{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3029: ovs-ofctl -O OpenFlow14 dump-flows br0 | ofctl_strip | sed '/OFPST_FLOW/d' | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-ofctl.at:3029"
( $at_check_trace; ovs-ofctl -O OpenFlow14 dump-flows br0 | ofctl_strip | sed '/OFPST_FLOW/d' | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3029"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3032: check_logs "
at_fn_check_prepare_trace "ovs-ofctl.at:3032"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3032"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3032: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovs-ofctl.at:3032"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3032"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3032: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovs-ofctl.at:3032"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3032"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-ofctl.at:3032: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-ofctl.at:3032: wait failed" >&5

    $as_echo "ovs-ofctl.at:3032" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-ofctl.at:3032"
fi

   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3032: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovs-ofctl.at:3032"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3032"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3032: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovs-ofctl.at:3032"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3032"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-ofctl.at:3032: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-ofctl.at:3032: wait failed" >&5

    $as_echo "ovs-ofctl.at:3032" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-ofctl.at:3032"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_430
#AT_START_431
at_fn_group_banner 431 'ovs-ofctl.at:3035' \
  "ovs-ofctl replace-flows with --bundle" "          " 21
at_xfail=no
(
  $as_echo "431. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3036: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-ofctl.at:3036"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3036"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3036: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ovs-ofctl.at:3036"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3036"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3036: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:3036"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3036"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3036: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ovs-ofctl.at:3036"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3036"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3036: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ovs-ofctl.at:3036"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3036"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3036: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:3036"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3036"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3036: add_of_br 0  "
at_fn_check_prepare_trace "ovs-ofctl.at:3036"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3036"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3038: ovs-appctl vlog/set vconn:dbg"
at_fn_check_prepare_trace "ovs-ofctl.at:3038"
( $at_check_trace; ovs-appctl vlog/set vconn:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3038"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


for i in 1 2 3 4 5 6 7 8; do echo "table=$i,dl_vlan=$i,importance=$i,actions=drop"; done > add-flows.txt
{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3042: ovs-ofctl --bundle --no-names add-flows br0 add-flows.txt"
at_fn_check_prepare_trace "ovs-ofctl.at:3042"
( $at_check_trace; ovs-ofctl --bundle --no-names add-flows br0 add-flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3042"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


for i in 1 3 5 7; do echo " table=$i, importance=`expr $i + 10`, dl_vlan=$i actions=drop"; done > replace-flows.txt
{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3046: ovs-ofctl --bundle --no-names replace-flows br0 replace-flows.txt"
at_fn_check_prepare_trace "ovs-ofctl.at:3046"
( $at_check_trace; ovs-ofctl --bundle --no-names replace-flows br0 replace-flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3046"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat replace-flows.txt > expout
{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3050: ovs-ofctl -O OpenFlow14 --no-names dump-flows br0 | ofctl_strip | sed '/OFPST_FLOW/d' | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-ofctl.at:3050"
( $at_check_trace; ovs-ofctl -O OpenFlow14 --no-names dump-flows br0 | ofctl_strip | sed '/OFPST_FLOW/d' | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3050"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Prevent race.
$as_echo "ovs-ofctl.at:3055: waiting until vconn_sub < ovs-vswitchd.log | test \`grep -- \"|vconn|DBG|unix: sent (Success): OFPST_FLOW reply\" | wc -l\` -ge 2..." >&5
ovs_wait_cond () {
    vconn_sub < ovs-vswitchd.log | test `grep -- "|vconn|DBG|unix: sent (Success): OFPST_FLOW reply" | wc -l` -ge 2
}
if ovs_wait; then :
else
    $as_echo "ovs-ofctl.at:3055: wait failed" >&5

    $as_echo "ovs-ofctl.at:3055" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-ofctl.at:3055"
fi

# AT_CHECK([sed -n "s/^.*\(|vconn|DBG|.*xid=.*:\).*$/\1/p" ovs-vswitchd.log], [0], [dnl
{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3057: print_vconn_debug | vconn_sub | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-ofctl.at:3057"
( $at_check_trace; print_vconn_debug | vconn_sub | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "vconn|DBG|unix: sent (Success): OFPT_HELLO (OF1.6):
 version bitmap: 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
vconn|DBG|unix: received: OFPT_HELLO (OF1.4):
 version bitmap: 0x05
vconn|DBG|unix: negotiated OpenFlow version 0x05 (we support version 0x07 and earlier, peer supports version 0x05)
vconn|DBG|unix: received: OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0 type=OPEN_REQUEST flags=atomic ordered
vconn|DBG|unix: sent (Success): OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0 type=OPEN_REPLY flags=0
vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.4): ADD table:1 dl_vlan=1 importance:1 actions=drop
vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.4): ADD table:2 dl_vlan=2 importance:2 actions=drop
vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.4): ADD table:3 dl_vlan=3 importance:3 actions=drop
vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.4): ADD table:4 dl_vlan=4 importance:4 actions=drop
vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.4): ADD table:5 dl_vlan=5 importance:5 actions=drop
vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.4): ADD table:6 dl_vlan=6 importance:6 actions=drop
vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.4): ADD table:7 dl_vlan=7 importance:7 actions=drop
vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.4): ADD table:8 dl_vlan=8 importance:8 actions=drop
vconn|DBG|unix: received: OFPT_BARRIER_REQUEST (OF1.4):
vconn|DBG|unix: sent (Success): OFPT_BARRIER_REPLY (OF1.4):
vconn|DBG|unix: received: OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0 type=COMMIT_REQUEST flags=atomic ordered
vconn|DBG|unix: sent (Success): OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0 type=COMMIT_REPLY flags=0
vconn|DBG|unix: sent (Success): OFPT_HELLO (OF1.6):
 version bitmap: 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
vconn|DBG|unix: received: OFPT_HELLO (OF1.4):
 version bitmap: 0x05
vconn|DBG|unix: negotiated OpenFlow version 0x05 (we support version 0x07 and earlier, peer supports version 0x05)
vconn|DBG|unix: received: OFPST_FLOW request (OF1.4):
vconn|DBG|unix: sent (Success): OFPST_FLOW reply (OF1.4):
 table=1, importance=1, dl_vlan=1 actions=drop
 table=2, importance=2, dl_vlan=2 actions=drop
 table=3, importance=3, dl_vlan=3 actions=drop
 table=4, importance=4, dl_vlan=4 actions=drop
 table=5, importance=5, dl_vlan=5 actions=drop
 table=6, importance=6, dl_vlan=6 actions=drop
 table=7, importance=7, dl_vlan=7 actions=drop
 table=8, importance=8, dl_vlan=8 actions=drop
vconn|DBG|unix: received: OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0 type=OPEN_REQUEST flags=atomic ordered
vconn|DBG|unix: sent (Success): OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0 type=OPEN_REPLY flags=0
vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.4): ADD table:1 dl_vlan=1 importance:11 actions=drop
vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.4): DEL_STRICT table:2 dl_vlan=2 actions=drop
vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.4): ADD table:3 dl_vlan=3 importance:13 actions=drop
vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.4): DEL_STRICT table:4 dl_vlan=4 actions=drop
vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.4): ADD table:5 dl_vlan=5 importance:15 actions=drop
vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.4): DEL_STRICT table:6 dl_vlan=6 actions=drop
vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.4): ADD table:7 dl_vlan=7 importance:17 actions=drop
vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.4): DEL_STRICT table:8 dl_vlan=8 actions=drop
vconn|DBG|unix: received: OFPT_BARRIER_REQUEST (OF1.4):
vconn|DBG|unix: sent (Success): OFPT_BARRIER_REPLY (OF1.4):
vconn|DBG|unix: received: OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0 type=COMMIT_REQUEST flags=atomic ordered
vconn|DBG|unix: sent (Success): OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0 type=COMMIT_REPLY flags=0
vconn|DBG|unix: sent (Success): OFPT_HELLO (OF1.6):
 version bitmap: 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
vconn|DBG|unix: received: OFPT_HELLO (OF1.4):
 version bitmap: 0x05
vconn|DBG|unix: negotiated OpenFlow version 0x05 (we support version 0x07 and earlier, peer supports version 0x05)
vconn|DBG|unix: received: OFPST_FLOW request (OF1.4):
vconn|DBG|unix: sent (Success): OFPST_FLOW reply (OF1.4):
 table=1, importance=11, dl_vlan=1 actions=drop
 table=3, importance=13, dl_vlan=3 actions=drop
 table=5, importance=15, dl_vlan=5 actions=drop
 table=7, importance=17, dl_vlan=7 actions=drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3057"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3159: check_logs "
at_fn_check_prepare_trace "ovs-ofctl.at:3159"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3159"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3159: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovs-ofctl.at:3159"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3159"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3159: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovs-ofctl.at:3159"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3159"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-ofctl.at:3159: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-ofctl.at:3159: wait failed" >&5

    $as_echo "ovs-ofctl.at:3159" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-ofctl.at:3159"
fi

   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3159: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovs-ofctl.at:3159"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3159"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3159: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovs-ofctl.at:3159"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3159"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-ofctl.at:3159: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-ofctl.at:3159: wait failed" >&5

    $as_echo "ovs-ofctl.at:3159" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-ofctl.at:3159"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_431
#AT_START_432
at_fn_group_banner 432 'ovs-ofctl.at:3163' \
  "ovs-ofctl ct-flush-zone" "                        " 21
at_xfail=no
(
  $as_echo "432. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3164: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-ofctl.at:3164"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3164"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3164: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ovs-ofctl.at:3164"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3164"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3164: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:3164"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3164"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3164: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ovs-ofctl.at:3164"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3164"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3164: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ovs-ofctl.at:3164"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3164"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3164: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-ofctl.at:3164"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3164"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3164: add_of_br 0  "
at_fn_check_prepare_trace "ovs-ofctl.at:3164"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3164"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3166: ovs-appctl vlog/set ct_dpif:dbg"
at_fn_check_prepare_trace "ovs-ofctl.at:3166"
( $at_check_trace; ovs-appctl vlog/set ct_dpif:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3166"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3167: ovs-ofctl ct-flush-zone br0 123"
at_fn_check_prepare_trace "ovs-ofctl.at:3167"
( $at_check_trace; ovs-ofctl ct-flush-zone br0 123
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3167"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


$as_echo "ovs-ofctl.at:3169: waiting until grep -q \"|ct_dpif|DBG|.*ct_flush:\" ovs-vswitchd.log..." >&5
ovs_wait_cond () {
    grep -q "|ct_dpif|DBG|.*ct_flush:" ovs-vswitchd.log
}
if ovs_wait; then :
else
    $as_echo "ovs-ofctl.at:3169: wait failed" >&5

    $as_echo "ovs-ofctl.at:3169" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-ofctl.at:3169"
fi

{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3170: grep -q \"ct_dpif|DBG|.*ct_flush: zone 123\" ovs-vswitchd.log"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-ofctl.at:3170"
( $at_check_trace; grep -q "ct_dpif|DBG|.*ct_flush: zone 123" ovs-vswitchd.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3170"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3172: check_logs "
at_fn_check_prepare_trace "ovs-ofctl.at:3172"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3172"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3172: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovs-ofctl.at:3172"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3172"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3172: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovs-ofctl.at:3172"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3172"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-ofctl.at:3172: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-ofctl.at:3172: wait failed" >&5

    $as_echo "ovs-ofctl.at:3172" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-ofctl.at:3172"
fi

   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3172: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovs-ofctl.at:3172"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3172"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-ofctl.at:3172: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovs-ofctl.at:3172"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-ofctl.at:3172"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-ofctl.at:3172: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-ofctl.at:3172: wait failed" >&5

    $as_echo "ovs-ofctl.at:3172" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-ofctl.at:3172"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_432
#AT_START_433
at_fn_group_banner 433 'odp.at:3' \
  "OVS datapath key parsing and formatting - valid forms" "" 22
at_xfail=no
(
  $as_echo "433. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

cat >odp-base.txt <<'_ATEOF'
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x1234)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=5,tos=0x80,ttl=128,frag=no)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=5,tos=0x81,ttl=128,frag=no)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=5,tos=0x80,ttl=128,frag=first)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=5,tos=0x80,ttl=128,frag=later)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=6,tos=0,ttl=128,frag=no),tcp(src=80,dst=8080)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=17,tos=0,ttl=128,frag=no),udp(src=81,dst=6632)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=1,tos=0,ttl=128,frag=no),icmp(type=1,code=2)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=10,tclass=0x70,hlimit=128,frag=no)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=10,tclass=0x71,hlimit=128,frag=no)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=10,tclass=0x70,hlimit=128,frag=first)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=10,tclass=0x70,hlimit=128,frag=later)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=6,tclass=0,hlimit=128,frag=no),tcp(src=80,dst=8080)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=17,tclass=0,hlimit=128,frag=no),udp(src=6630,dst=22)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=58,tclass=0,hlimit=128,frag=no),icmpv6(type=1,code=2)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=58,tclass=0,hlimit=128,frag=no),icmpv6(type=136,code=0),nd(target=::3,sll=00:05:06:07:08:09,tll=00:0a:0b:0c:0d:0e)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0806),arp(sip=1.2.3.4,tip=5.6.7.8,op=1,sha=00:0f:10:11:12:13,tha=00:14:15:16:17:18)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=58,tclass=0,hlimit=128,frag=no),icmpv6(type=136,code=0),nd(target=::3,sll=00:05:06:07:08:09,tll=00:0a:0b:0c:0d:0e)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x8847),mpls(label=100,tc=3,ttl=64,bos=1)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x8847),mpls(label=100,tc=7,ttl=100,bos=1)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x8847),mpls(label=100,tc=7,ttl=100,bos=0)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x8848),mpls(label=1000,tc=4,ttl=200,bos=1)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x8848),mpls(label=1000,tc=4,ttl=200,bos=0)
_ATEOF


(echo '# Valid forms without tun_id or VLAN header.'
 set 's/^/skb_priority(0),skb_mark(0),recirc_id(0),dp_hash(0),/' odp-base.txt

 set '
s/^/skb_priority(0),skb_mark(0),recirc_id(0),dp_hash(0),/
' odp-base.txt


 echo
 echo '# Valid forms with tunnel header.'
 sed 's/^/skb_priority(0),tunnel(tun_id=0x7f10354,src=10.10.10.10,dst=20.20.20.20,ttl=64,flags(csum|key)),skb_mark(0x1234),recirc_id(0),dp_hash(0),/' odp-base.txt

 echo
 echo '# Valid forms with VLAN header.'
 sed 's/^/skb_priority(0),skb_mark(0),recirc_id(0),dp_hash(0),/
s/\(eth([^)]*)\),*/\1,eth_type(0x8100),vlan(vid=99,pcp=7),encap(/
s/$/)/' odp-base.txt

 echo
 echo '# Valid forms with MPLS header.'
 sed 's/^/skb_priority(0),skb_mark(0),recirc_id(0),dp_hash(0),/
s/\(eth([^)]*),?\)/\1,eth_type(0x8847),mpls(label=100,tc=7,ttl=64,bos=1)/' odp-base.txt

 echo
 echo '# Valid forms with MPLS multicast header.'
 sed 's/^/skb_priority(0),skb_mark(0),recirc_id(0),dp_hash(0),/
s/\(eth([^)]*),?\)/\1,eth_type(0x8848),mpls(label=100,tc=7,ttl=64,bos=1)/' odp-base.txt

 echo
 echo '# Valid forms with tunnel and VLAN headers.'
 sed 's/^/skb_priority(0),tunnel(tun_id=0xfedcba9876543210,src=10.0.0.1,dst=10.0.0.2,tos=0x8,ttl=128,flags(key)),skb_mark(0),recirc_id(0),dp_hash(0),/
s/\(eth([^)]*)\),*/\1,eth_type(0x8100),vlan(vid=99,pcp=7),encap(/
s/$/)/' odp-base.txt

 echo
 echo '# Valid forms with QOS priority, tunnel, and VLAN headers.'
 sed 's/^/skb_priority(0x1234),tunnel(tun_id=0xfedcba9876543210,src=10.10.10.10,dst=20.20.20.20,tos=0x8,ttl=64,flags(key)),skb_mark(0),recirc_id(0),dp_hash(0),/
s/\(eth([^)]*)\),*/\1,eth_type(0x8100),vlan(vid=99,pcp=7),encap(/
s/$/)/' odp-base.txt

 echo
 echo '# Valid forms with conntrack fields.'
 sed 's/^/skb_priority(0),skb_mark(0),ct_mark(0x12345678),ct_label(0x1234567890abcdef1234567890abcdef),recirc_id(0),dp_hash(0),/' odp-base.txt

 echo
 echo '# Valid forms with IP first fragment.'
sed 's/^/skb_priority(0),skb_mark(0),recirc_id(0),dp_hash(0),/' odp-base.txt | sed -n 's/,frag=no),/,frag=first),/p'

 echo
 echo '# Valid forms with IP later fragment.'
sed 's/^/skb_priority(0),skb_mark(0),recirc_id(0),dp_hash(0),/' odp-base.txt | sed -n 's/,frag=no),.*/,frag=later)/p'
) > odp-in.txt


sed '/bos=0/{
s/^/ODP_FIT_TOO_LITTLE: /
}' < odp-in.txt > odp-out.txt

sed -i 's/\(skb_mark(0)\),\(ct\)/\1,ct_state(0),ct_zone(0),\2/' odp-out.txt
sed -i 's/\(skb_mark([^)]*)\),\(recirc\)/\1,ct_state(0),ct_zone(0),ct_mark(0),ct_label(0),\2/' odp-out.txt
sed -i 's/\(in_port(1)\),\(eth\)/\1,packet_type(ns=0,id=0),\2/' odp-out.txt

{ set +x
$as_echo "$at_srcdir/odp.at:99: ovstest test-odp parse-keys < odp-in.txt"
at_fn_check_prepare_trace "odp.at:99"
( $at_check_trace; ovstest test-odp parse-keys < odp-in.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "`cat odp-out.txt`
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/odp.at:99"
$at_failed && at_fn_log_failure  \
"odp-in.txt"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_433
#AT_START_434
at_fn_group_banner 434 'odp.at:103' \
  "OVS datapath wildcarded key parsing and formatting - valid forms" "" 22
at_xfail=no
(
  $as_echo "434. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

cat >odp-base.txt <<'_ATEOF'
in_port(1/0xff),eth(src=00:01:02:03:04:05/ff:ff:ff:ff:ff:f0,dst=10:11:12:13:14:15/ff:ff:ff:ff:ff:f0)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x1234/0xfff0)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41/255.255.255.0,dst=172.16.0.20/255.255.255.0,proto=5/0xf0,tos=0x80/0xf0,ttl=128/0xf0,frag=no)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=6,tos=0,ttl=128,frag=no),tcp(src=80/0xff00,dst=8080/0xff)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=17,tos=0,ttl=128,frag=no),udp(src=81/0xff00,dst=6632/0xff)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=17,tos=0,ttl=128,frag=no),udp(src=81/0xff,dst=6632/0xff00)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=1,tos=0,ttl=128,frag=no),icmp(type=1/0xf0,code=2)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1/::255,dst=::2/::255,label=0/0xf0,proto=10/0xf0,tclass=0x70/0xf0,hlimit=128/0xf0,frag=no)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=6,tclass=0,hlimit=128,frag=no),tcp(src=80/0xff00,dst=8080/0xff)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=17,tclass=0,hlimit=128,frag=no),udp(src=6630/0xff00,dst=22/0xff)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=58,tclass=0,hlimit=128,frag=no),icmpv6(type=1/0xf0,code=2)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=58,tclass=0,hlimit=128,frag=no),icmpv6(type=135,code=0),nd(target=::3/::250)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=58,tclass=0,hlimit=128,frag=no),icmpv6(type=135,code=0),nd(target=::3/::250,sll=00:05:06:07:08:09/ff:ff:ff:ff:ff:00)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=58,tclass=0,hlimit=128,frag=no),icmpv6(type=136,code=0),nd(target=::3/::250,tll=00:0a:0b:0c:0d:0e/ff:ff:ff:ff:ff:00)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=58,tclass=0,hlimit=128,frag=no),icmpv6(type=136,code=0),nd(target=::3/::250,sll=00:05:06:07:08:09/ff:ff:ff:ff:ff:00,tll=00:0a:0b:0c:0d:0e/ff:ff:ff:ff:ff:00)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0806),arp(sip=1.2.3.4/255.255.255.250,tip=5.6.7.8/255.255.255.250,op=1/0xf0,sha=00:0f:10:11:12:13/ff:ff:ff:ff:ff:00,tha=00:14:15:16:17:18/ff:ff:ff:ff:ff:00)
skb_mark(0x1234/0xfff0),in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=58,tclass=0,hlimit=128,frag=no),icmpv6(type=136,code=0),nd(target=::3,sll=00:05:06:07:08:09,tll=00:0a:0b:0c:0d:0e)
_ATEOF


(echo '# Valid forms without tun_id or VLAN header.'
 cat odp-base.txt

 echo
 echo '# Valid forms with tunnel header.'
 sed 's/^/tunnel(tun_id=0x7f10354\/0xff,src=10.10.10.10\/255.255.255.0,dst=20.20.20.20\/255.255.255.0,ttl=64,vxlan(gbp(id=10\/0xff,flags=0xb)),flags(oam|csum|key)),/' odp-base.txt

 echo
 echo '# Valid forms with tunnel header (wildcard flag).'
 sed 's/^/tunnel(tun_id=0x7f10354\/0xff,src=10.10.10.10\/255.255.255.0,dst=20.20.20.20\/255.255.255.0,ttl=64,flags(-df+csum+key)),/' odp-base.txt

 echo
 echo '# Valid forms with Geneve header.'
 sed 's/^/tunnel(tun_id=0x7f10354\/0xff,src=10.10.10.10\/255.255.255.0,dst=20.20.20.20\/255.255.255.0,ttl=64,geneve({class=0,type=0,len=4,0xa\/0xff}{class=0xffff,type=0x1,len=4,0xffffffff}),flags(csum|key)),/' odp-base.txt

 echo
 echo '# Valid forms with VLAN header.'
 sed 's/\(eth([^)]*)\),*/\1,eth_type(0x8100),vlan(vid=99,pcp=7),encap(/
s/$/)/' odp-base.txt

 echo
 echo '# Valid forms with MPLS header.'
 sed 's/\(eth([^)]*),?\)/\1,eth_type(0x8847),mpls(label=100\/0xff,tc=7\/7,ttl=64\/0xff,bos=1\/1)/' odp-base.txt

 echo
 echo '# Valid forms with QoS priority.'
 sed 's/^/skb_priority(0x1234\/0xff),/' odp-base.txt

 echo
 echo '# Valid forms with tunnel and VLAN headers.'
 sed 's/^/tunnel(tun_id=0xfedcba9876543210,src=10.0.0.1,dst=10.0.0.2,tos=0x8,ttl=128,flags(key)),/
s/\(eth([^)]*)\),*/\1,eth_type(0x8100),vlan(vid=99/0xff0,pcp=7/0xe),encap(/
s/$/)/' odp-base.txt

 echo
 echo '# Valid forms with QOS priority, tunnel, and VLAN headers.'
 sed 's/^/skb_priority(0x1234),tunnel(tun_id=0xfedcba9876543210,src=10.10.10.10,dst=20.20.20.20,tos=0x8,ttl=64,flags(key)),/
s/\(eth([^)]*)\),*/\1,eth_type(0x8100),vlan(vid=99,pcp=7),encap(/
s/$/)/' odp-base.txt

 echo
 echo '# Valid forms with conntrack fields.'
 sed 's/\(eth([^)]*)\),/\1,ct_state(+trk),ct_zone(0x5\/0xff),ct_mark(0x10305070\/0xf0f0f0f0),ct_label(0x1234567890abcdef1234567890abcdef\/0x102030405060708090a0b0c0d0e0f0),ct_tuple4(src=10.10.10.10,dst=20.20.20.20,proto=17,tp_src=1,tp_dst=2),/' odp-base.txt

 echo
 echo '# Valid forms with IP first fragment.'
sed -n 's/,frag=no),/,frag=first),/p' odp-base.txt

 echo
 echo '# Valid forms with IP later fragment.'
sed -n 's/,frag=no),.*/,frag=later)/p' odp-base.txt) > odp.txt

{ set +x
$as_echo "$at_srcdir/odp.at:177: ovstest test-odp parse-wc-keys < odp.txt"
at_fn_check_prepare_trace "odp.at:177"
( $at_check_trace; ovstest test-odp parse-wc-keys < odp.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "`cat odp.txt`
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/odp.at:177"
$at_failed && at_fn_log_failure  \
"odp.txt"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_434
#AT_START_435
at_fn_group_banner 435 'odp.at:181' \
  "OVS datapath wildcarded key filtering." "         " 22
at_xfail=no
(
  $as_echo "435. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

cat >odp-base.txt <<'_ATEOF'
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x1234/0xfff0)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41/255.255.255.0,dst=172.16.0.20/255.255.255.0,proto=5/0xf0,tos=0x80/0xf0,ttl=128/0xf0,frag=no)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=6,tos=0,ttl=128,frag=no),tcp(src=80/0xff00,dst=8080/0xff)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=17,tos=0,ttl=128,frag=no),udp(src=81/0xff00,dst=6632/0xff)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=17,tos=0,ttl=128,frag=no),udp(src=81/0xff,dst=6632/0xff00)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=1,tos=0,ttl=128,frag=no),icmp(type=1/0xf0,code=2/0xff)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1/::255,dst=::2/::255,label=0/0xf0,proto=10/0xf0,tclass=0x70/0xf0,hlimit=128/0xf0,frag=no)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=6,tclass=0,hlimit=128,frag=no),tcp(src=80/0xff00,dst=8080/0xff)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0806),arp(sip=1.2.3.4/255.255.255.250,tip=5.6.7.8/255.255.255.250,op=1/0xf0,sha=00:0f:10:11:12:13/ff:ff:ff:ff:ff:00,tha=00:14:15:16:17:18/ff:ff:ff:ff:ff:00)
_ATEOF

cat >odp-vlan-base.txt <<'_ATEOF'
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x8100),vlan(vid=99,pcp=7),encap(eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=6,tos=0,ttl=128,frag=no),tcp(src=80/0xff00,dst=8080/0xff))
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x8100),vlan(vid=100,pcp=7),encap(eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=6,tos=0,ttl=128,frag=no),tcp(src=80/0xff00,dst=8080/0xff))
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x8100),vlan(vid=99,pcp=7),encap(eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=17,tos=0,ttl=128,frag=no),udp(src=81/0xff00,dst=6632/0xff))
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x8100),vlan(vid=100,pcp=7),encap(eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=17,tos=0,ttl=128,frag=no),udp(src=81/0xff00,dst=6632/0xff))
_ATEOF

cat >odp-eth-type.txt <<'_ATEOF'
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x1234/0xfff0)
_ATEOF

cat >odp-vlan.txt <<'_ATEOF'
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x8100),vlan(vid=99,pcp=7),encap(eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=6,tos=0,ttl=128,frag=no),tcp(src=80/0xff00,dst=8080/0xff))
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x8100),vlan(vid=99,pcp=7),encap(eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=17,tos=0,ttl=128,frag=no),udp(src=81/0xff00,dst=6632/0xff))
_ATEOF

cat >odp-ipv4.txt <<'_ATEOF'
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41/255.255.255.0,dst=172.16.0.20/255.255.255.0,proto=5/0xf0,tos=0x80/0xf0,ttl=128/0xf0,frag=no)
_ATEOF

cat >odp-icmp.txt <<'_ATEOF'
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41/255.255.255.0,dst=172.16.0.20/255.255.255.0,proto=5/0xf0,tos=0x80/0xf0,ttl=128/0xf0,frag=no)
_ATEOF

cat >odp-arp.txt <<'_ATEOF'
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0806),arp(sip=1.2.3.4/255.255.255.250,tip=5.6.7.8/255.255.255.250,op=1/0xf0,sha=00:0f:10:11:12:13/ff:ff:ff:ff:ff:00,tha=00:14:15:16:17:18/ff:ff:ff:ff:ff:00)
_ATEOF

cat >odp-tcp.txt <<'_ATEOF'
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41/255.255.255.0,dst=172.16.0.20/255.255.255.0,proto=5/0xf0,tos=0x80/0xf0,ttl=128/0xf0,frag=no)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=6,tos=0,ttl=128,frag=no),tcp(src=80/0xff00,dst=8080/0xff)
_ATEOF

cat >odp-tcp6.txt <<'_ATEOF'
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1/::255,dst=::2/::255,label=0/0xf0,proto=10/0xf0,tclass=0x70/0xf0,hlimit=128/0xf0,frag=no)
in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=6,tclass=0,hlimit=128,frag=no),tcp(src=80/0xff00,dst=8080/0xff)
_ATEOF

{ set +x
$as_echo "$at_srcdir/odp.at:224: ovstest test-odp parse-filter filter='dl_type=0x1235' < odp-base.txt"
at_fn_check_prepare_trace "odp.at:224"
( $at_check_trace; ovstest test-odp parse-filter filter='dl_type=0x1235' < odp-base.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "`cat odp-eth-type.txt`
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/odp.at:224"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/odp.at:226: ovstest test-odp parse-filter filter='dl_vlan=99' < odp-vlan-base.txt"
at_fn_check_prepare_trace "odp.at:226"
( $at_check_trace; ovstest test-odp parse-filter filter='dl_vlan=99' < odp-vlan-base.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "`cat odp-vlan.txt`
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/odp.at:226"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/odp.at:228: ovstest test-odp parse-filter filter='dl_vlan=99,ip' < odp-vlan-base.txt"
at_fn_check_prepare_trace "odp.at:228"
( $at_check_trace; ovstest test-odp parse-filter filter='dl_vlan=99,ip' < odp-vlan-base.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "`cat odp-vlan.txt`
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/odp.at:228"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/odp.at:230: ovstest test-odp parse-filter filter='ip,nw_src=35.8.2.199' < odp-base.txt"
at_fn_check_prepare_trace "odp.at:230"
( $at_check_trace; ovstest test-odp parse-filter filter='ip,nw_src=35.8.2.199' < odp-base.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "`cat odp-ipv4.txt`
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/odp.at:230"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/odp.at:232: ovstest test-odp parse-filter filter='ip,nw_dst=172.16.0.199' < odp-base.txt"
at_fn_check_prepare_trace "odp.at:232"
( $at_check_trace; ovstest test-odp parse-filter filter='ip,nw_dst=172.16.0.199' < odp-base.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "`cat odp-ipv4.txt`
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/odp.at:232"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/odp.at:234: ovstest test-odp parse-filter filter='dl_type=0x0800,nw_src=35.8.2.199,nw_dst=172.16.0.199' < odp-base.txt"
at_fn_check_prepare_trace "odp.at:234"
( $at_check_trace; ovstest test-odp parse-filter filter='dl_type=0x0800,nw_src=35.8.2.199,nw_dst=172.16.0.199' < odp-base.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "`cat odp-ipv4.txt`
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/odp.at:234"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/odp.at:236: ovstest test-odp parse-filter filter='icmp,nw_src=35.8.2.199' < odp-base.txt"
at_fn_check_prepare_trace "odp.at:236"
( $at_check_trace; ovstest test-odp parse-filter filter='icmp,nw_src=35.8.2.199' < odp-base.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "`cat odp-icmp.txt`
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/odp.at:236"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/odp.at:238: ovstest test-odp parse-filter filter='arp,arp_spa=1.2.3.5' < odp-base.txt"
at_fn_check_prepare_trace "odp.at:238"
( $at_check_trace; ovstest test-odp parse-filter filter='arp,arp_spa=1.2.3.5' < odp-base.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "`cat odp-arp.txt`
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/odp.at:238"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/odp.at:240: ovstest test-odp parse-filter filter='tcp,tp_src=90' < odp-base.txt"
at_fn_check_prepare_trace "odp.at:240"
( $at_check_trace; ovstest test-odp parse-filter filter='tcp,tp_src=90' < odp-base.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "`cat odp-tcp.txt`
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/odp.at:240"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/odp.at:242: ovstest test-odp parse-filter filter='tcp6,tp_src=90' < odp-base.txt"
at_fn_check_prepare_trace "odp.at:242"
( $at_check_trace; ovstest test-odp parse-filter filter='tcp6,tp_src=90' < odp-base.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "`cat odp-tcp6.txt`
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/odp.at:242"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_435
#AT_START_436
at_fn_group_banner 436 'odp.at:246' \
  "OVS datapath actions parsing and formatting - valid forms" "" 22
at_xfail=no
(
  $as_echo "436. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

cat >actions.txt <<'_ATEOF'
1,2,3
userspace(pid=6633,sFlow(vid=9,pcp=7,output=10),actions)
userspace(pid=6633,sFlow(vid=9,pcp=7,output=10),actions,tunnel_out_port=10)
userspace(pid=9765,slow_path(0))
userspace(pid=9765,slow_path(0),tunnel_out_port=10)
userspace(pid=9765,slow_path(cfm))
userspace(pid=9765,slow_path(cfm),tunnel_out_port=10)
userspace(pid=1234567,userdata(0102030405060708090a0b0c0d0e0f),actions)
userspace(pid=1234567,userdata(0102030405060708090a0b0c0d0e0f),tunnel_out_port=10)
userspace(pid=6633,flow_sample(probability=123,collector_set_id=1234,obs_domain_id=2345,obs_point_id=3456,output_port=10))
userspace(pid=6633,flow_sample(probability=123,collector_set_id=1234,obs_domain_id=2345,obs_point_id=3456,output_port=10,ingress))
userspace(pid=6633,flow_sample(probability=123,collector_set_id=1234,obs_domain_id=2345,obs_point_id=3456,output_port=10),tunnel_out_port=10)
userspace(pid=6633,flow_sample(probability=123,collector_set_id=1234,obs_domain_id=2345,obs_point_id=3456,output_port=10,egress),tunnel_out_port=10)
userspace(pid=6633,ipfix(output_port=10))
userspace(pid=6633,ipfix(output_port=10),tunnel_out_port=10)
userspace(pid=6633,controller(reason=1,dont_send=0,continuation=1,recirc_id=4444,rule_cookie=0x5555,controller_id=0,max_len=65535))
userspace(pid=6633,controller(reason=1,dont_send=1,continuation=0,recirc_id=4444,rule_cookie=0x5555,controller_id=0,max_len=65535))
set(in_port(2))
set(eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15))
set(eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15/ff:ff:ff:00:00:00))
set(eth_type(0x1234))
set(ipv4(src=35.8.2.41,dst=172.16.0.20,proto=5,tos=0x80,ttl=128,frag=no))
set(ipv4(src=35.8.2.41,dst=172.16.0.20,proto=5,ttl=128,frag=no))
set(ipv4(src=35.8.2.41/255.255.255.0,dst=172.16.0.20,proto=5,tos=0x80,ttl=128,frag=no))
set(ipv4(src=35.8.2.41/255.255.255.0,tos=0x80,ttl=128,frag=no))
set(ipv4(tos=0/0x3))
set(ipv4(tos=0x80/0xfc))
set(ipv4(ttl=128,frag=no))
set(ipv4(frag=no))
set(tcp(src=80,dst=8080))
set(tcp(src=80/0xff00,dst=8080))
set(tcp(src=80))
set(tcp(dst=8080))
set(udp(src=81,dst=6632))
set(udp(src=81/0xff00,dst=6632))
set(udp(src=81))
set(udp(dst=6633))
set(sctp(src=82,dst=6633))
set(sctp(src=82/0xff00,dst=6633))
set(sctp(src=82))
set(sctp(dst=6632))
set(icmp(type=1,code=2))
set(ipv6(src=::1,dst=::2,label=0,proto=10,tclass=0x70,hlimit=128,frag=no))
set(ipv6(src=::1,dst=::2))
set(ipv6(label=0,proto=10,tclass=0x70,hlimit=128,frag=no))
set(ipv6(label=0,proto=10,hlimit=128))
set(ipv6(label=0/0xfff,proto=10,tclass=0x70/0x70))
set(ipv6(label=0))
set(icmpv6(type=1,code=2))
set(vlan(vid=5))
set(vlan(vid=3,pcp=5))
set(vlan(vid=3,pcp=5,cfi=0))
set(vlan(vid=5/0x3))
set(vlan(vid=5/0x1)),3
push_vlan(vid=12,pcp=0)
push_vlan(vid=13,pcp=5,cfi=0)
push_vlan(tpid=0x9100,vid=13,pcp=5)
push_vlan(tpid=0x9100,vid=13,pcp=5,cfi=0)
pop_vlan
sample(sample=9.7%,actions(1,2,3,push_vlan(vid=1,pcp=2)))
set(tunnel(tun_id=0xabcdef1234567890,src=1.1.1.1,dst=2.2.2.2,ttl=64,flags(df|csum|key)))
set(tunnel(tun_id=0xabcdef1234567890,src=1.1.1.1,dst=2.2.2.2,ttl=64,flags(key)))
tnl_pop(4)
tnl_push(tnl_port(4),header(size=42,type=3,eth(dst=f8:bc:12:44:34:b6,src=f8:bc:12:46:58:e0,dl_type=0x0800),ipv4(src=1.1.2.88,dst=1.1.2.92,proto=47,tos=0,ttl=64,frag=0x4000),gre((flags=0x2000,proto=0x6558),key=0x1e241)),out_port(1))
tnl_push(tnl_port(4),header(size=46,type=3,eth(dst=f8:bc:12:44:34:b6,src=f8:bc:12:46:58:e0,dl_type=0x0800),ipv4(src=1.1.2.88,dst=1.1.2.92,proto=47,tos=0,ttl=64,frag=0x4000),gre((flags=0xa000,proto=0x6558),csum=0x0,key=0x1e241)),out_port(1))
tnl_push(tnl_port(6),header(size=50,type=4,eth(dst=f8:bc:12:44:34:b6,src=f8:bc:12:46:58:e0,dl_type=0x0800),ipv4(src=1.1.2.88,dst=1.1.2.92,proto=17,tos=0,ttl=64,frag=0x4000),udp(src=0,dst=4789,csum=0x0),vxlan(flags=0x8000000,vni=0x1c7)),out_port(1))
tnl_push(tnl_port(6),header(size=50,type=5,eth(dst=f8:bc:12:44:34:b6,src=f8:bc:12:46:58:e0,dl_type=0x0800),ipv4(src=1.1.2.88,dst=1.1.2.92,proto=17,tos=0,ttl=64,frag=0x4000),udp(src=0,dst=6081,csum=0x0),geneve(oam,vni=0x1c7)),out_port(1))
tnl_push(tnl_port(6),header(size=58,type=5,eth(dst=f8:bc:12:44:34:b6,src=f8:bc:12:46:58:e0,dl_type=0x0800),ipv4(src=1.1.2.88,dst=1.1.2.92,proto=17,tos=0,ttl=64,frag=0x4000),udp(src=0,dst=6081,csum=0x0),geneve(crit,vni=0x1c7,options({class=0xffff,type=0x80,len=4,0xa}))),out_port(1))
tnl_push(tnl_port(6),header(size=50,type=5,eth(dst=f8:bc:12:44:34:b6,src=f8:bc:12:46:58:e0,dl_type=0x0800),ipv4(src=1.1.2.88,dst=1.1.2.92,proto=17,tos=0,ttl=64,frag=0x4000),udp(src=0,dst=6081,csum=0xffff),geneve(vni=0x1c7)),out_port(1))
tnl_push(tnl_port(4),header(size=62,type=3,eth(dst=f8:bc:12:44:34:b6,src=f8:bc:12:46:58:e0,dl_type=0x86dd),ipv6(src=2001:cafe::88,dst=2001:cafe::92,label=0,proto=47,tclass=0x0,hlimit=64),gre((flags=0x2000,proto=0x6558),key=0x1e241)),out_port(1))
tnl_push(tnl_port(4),header(size=66,type=3,eth(dst=f8:bc:12:44:34:b6,src=f8:bc:12:46:58:e0,dl_type=0x86dd),ipv6(src=2001:cafe::88,dst=2001:cafe::92,label=0,proto=47,tclass=0x0,hlimit=64),gre((flags=0xa000,proto=0x6558),csum=0x0,key=0x1e241)),out_port(1))
tnl_push(tnl_port(6),header(size=70,type=4,eth(dst=f8:bc:12:44:34:b6,src=f8:bc:12:46:58:e0,dl_type=0x86dd),ipv6(src=2001:cafe::88,dst=2001:cafe::92,label=0,proto=17,tclass=0x0,hlimit=64),udp(src=0,dst=4789,csum=0x0),vxlan(flags=0x8000000,vni=0x1c7)),out_port(1))
tnl_push(tnl_port(6),header(size=70,type=5,eth(dst=f8:bc:12:44:34:b6,src=f8:bc:12:46:58:e0,dl_type=0x86dd),ipv6(src=2001:cafe::88,dst=2001:cafe::92,label=0,proto=17,tclass=0x0,hlimit=64),udp(src=0,dst=6081,csum=0x0),geneve(oam,vni=0x1c7)),out_port(1))
tnl_push(tnl_port(6),header(size=78,type=5,eth(dst=f8:bc:12:44:34:b6,src=f8:bc:12:46:58:e0,dl_type=0x86dd),ipv6(src=2001:cafe::88,dst=2001:cafe::92,label=0,proto=17,tclass=0x0,hlimit=64),udp(src=0,dst=6081,csum=0x0),geneve(crit,vni=0x1c7,options({class=0xffff,type=0x80,len=4,0xa}))),out_port(1))
tnl_push(tnl_port(6),header(size=70,type=5,eth(dst=f8:bc:12:44:34:b6,src=f8:bc:12:46:58:e0,dl_type=0x86dd),ipv6(src=2001:cafe::88,dst=2001:cafe::92,label=0,proto=17,tclass=0x0,hlimit=64),udp(src=0,dst=6081,csum=0xffff),geneve(vni=0x1c7)),out_port(1))
ct
ct(commit)
ct(commit,zone=5)
ct(commit,mark=0xa0a0a0a0/0xfefefefe)
ct(commit,label=0x1234567890abcdef1234567890abcdef/0xf1f2f3f4f5f6f7f8f9f0fafbfcfdfeff)
ct(commit,helper=ftp)
ct(commit,helper=tftp)
ct(nat)
ct(commit,nat(src))
ct(commit,nat(dst))
ct(commit,nat(src=10.0.0.240,random))
ct(commit,nat(src=10.0.0.240:32768-65535,random))
ct(commit,nat(dst=10.0.0.128-10.0.0.254,hash))
ct(commit,nat(src=10.0.0.240-10.0.0.254:32768-65535,persistent))
ct(commit,nat(src=fe80::20c:29ff:fe88:a18b,random))
ct(commit,nat(src=fe80::20c:29ff:fe88:1-fe80::20c:29ff:fe88:a18b,random))
ct(commit,nat(src=[fe80::20c:29ff:fe88:1]-[fe80::20c:29ff:fe88:a18b]:255-4096,random))
ct(commit,helper=ftp,nat(src=10.1.1.240-10.1.1.255))
ct(force_commit)
ct(force_commit,zone=5)
ct(force_commit,mark=0xa0a0a0a0/0xfefefefe)
ct(force_commit,label=0x1234567890abcdef1234567890abcdef/0xf1f2f3f4f5f6f7f8f9f0fafbfcfdfeff)
ct(force_commit,helper=ftp)
ct(nat)
ct(force_commit,nat(src))
ct(force_commit,nat(dst))
ct(force_commit,nat(src=10.0.0.240,random))
ct(force_commit,nat(src=10.0.0.240:32768-65535,random))
ct(force_commit,nat(dst=10.0.0.128-10.0.0.254,hash))
ct(force_commit,nat(src=10.0.0.240-10.0.0.254:32768-65535,persistent))
ct(force_commit,nat(src=fe80::20c:29ff:fe88:a18b,random))
ct(force_commit,nat(src=fe80::20c:29ff:fe88:1-fe80::20c:29ff:fe88:a18b,random))
ct(force_commit,nat(src=[fe80::20c:29ff:fe88:1]-[fe80::20c:29ff:fe88:a18b]:255-4096,random))
ct(force_commit,helper=ftp,nat(src=10.1.1.240-10.1.1.255))
ct_clear
trunc(100)
clone(1)
clone(clone(push_vlan(vid=12,pcp=0),2),1)
_ATEOF

{ set +x
$as_echo "$at_srcdir/odp.at:362: ovstest test-odp parse-actions < actions.txt"
at_fn_check_prepare_trace "odp.at:362"
( $at_check_trace; ovstest test-odp parse-actions < actions.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "`cat actions.txt`
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/odp.at:362"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_436
#AT_START_437
at_fn_group_banner 437 'odp.at:367' \
  "OVS datapath actions parsing and formatting - invalid forms" "" 22
at_xfail=no
(
  $as_echo "437. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/odp.at:369: echo 'encap_nsh@:{@' | ovstest test-odp parse-actions
"
at_fn_check_prepare_notrace 'an embedded newline' "odp.at:369"
( $at_check_trace; echo 'encap_nsh@:{@' | ovstest test-odp parse-actions

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "odp_actions_from_string: error
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/odp.at:369"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_437
#AT_START_438
at_fn_group_banner 438 'mpls-xlate.at:3' \
  "MPLS xlate action" "                              " 23
at_xfail=no
(
  $as_echo "438. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/mpls-xlate.at:5: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "mpls-xlate.at:5"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:5"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/mpls-xlate.at:5: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "mpls-xlate.at:5"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:5"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/mpls-xlate.at:5: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "mpls-xlate.at:5"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:5"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/mpls-xlate.at:5: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "mpls-xlate.at:5"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:5"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/mpls-xlate.at:5: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "mpls-xlate.at:5"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:5"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/mpls-xlate.at:5: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "mpls-xlate.at:5"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:5"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/mpls-xlate.at:5: add_of_br 0 add-port br0 p0 -- set Interface p0 type=dummy ofport_request=1 -- \\
   add-port br0 p1 -- set Interface p1 type=patch \\
                                       options:peer=p2 ofport_request=2 -- \\
   add-br br1 -- \\
   set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \\
   set bridge br1 datapath-type=dummy other-config:datapath-id=1234 \\
                  fail-mode=secure -- \\
   add-port br1 p2 -- set Interface p2 type=patch \\
                                       options:peer=p1 "
at_fn_check_prepare_notrace 'an embedded newline' "mpls-xlate.at:5"
( $at_check_trace; add_of_br 0 add-port br0 p0 -- set Interface p0 type=dummy ofport_request=1 -- \
   add-port br0 p1 -- set Interface p1 type=patch \
                                       options:peer=p2 ofport_request=2 -- \
   add-br br1 -- \
   set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \
   set bridge br1 datapath-type=dummy other-config:datapath-id=1234 \
                  fail-mode=secure -- \
   add-port br1 p2 -- set Interface p2 type=patch \
                                       options:peer=p1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:5"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:16: ovs-appctl dpif/show"
at_fn_check_prepare_trace "mpls-xlate.at:16"
( $at_check_trace; ovs-appctl dpif/show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dummy@ovs-dummy: hit:0 missed:0
	br0:
		br0 65534/100: (dummy-internal)
		p0 1/1: (dummy)
		p1 2/none: (patch: peer=p2)
	br1:
		br1 65534/101: (dummy-internal)
		p2 1/none: (patch: peer=p1)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:16"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:28: ovs-ofctl -O OpenFlow13 add-group br0 group_id=1232,type=select,bucket=output:LOCAL"
at_fn_check_prepare_trace "mpls-xlate.at:28"
( $at_check_trace; ovs-ofctl -O OpenFlow13 add-group br0 group_id=1232,type=select,bucket=output:LOCAL
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:28"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:29: ovs-ofctl -O OpenFlow13 add-group br0 group_id=1233,type=all,bucket=output:LOCAL"
at_fn_check_prepare_trace "mpls-xlate.at:29"
( $at_check_trace; ovs-ofctl -O OpenFlow13 add-group br0 group_id=1233,type=all,bucket=output:LOCAL
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:29"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:30: ovs-ofctl -O OpenFlow13 add-group br0 group_id=1234,type=all,bucket=dec_ttl,output:LOCAL"
at_fn_check_prepare_trace "mpls-xlate.at:30"
( $at_check_trace; ovs-ofctl -O OpenFlow13 add-group br0 group_id=1234,type=all,bucket=dec_ttl,output:LOCAL
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:30"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:31: ovs-ofctl -O OpenFlow13 add-flow br0 in_port=local,dl_type=0x0800,action=push_mpls:0x8847,set_field:10-\\>mpls_label,output:1"
at_fn_check_prepare_trace "mpls-xlate.at:31"
( $at_check_trace; ovs-ofctl -O OpenFlow13 add-flow br0 in_port=local,dl_type=0x0800,action=push_mpls:0x8847,set_field:10-\>mpls_label,output:1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:31"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:32: ovs-ofctl -O OpenFlow13 add-flow br0 dl_type=0x8847,in_port=1,mpls_label=20,action=pop_mpls:0x0800,output:LOCAL"
at_fn_check_prepare_trace "mpls-xlate.at:32"
( $at_check_trace; ovs-ofctl -O OpenFlow13 add-flow br0 dl_type=0x8847,in_port=1,mpls_label=20,action=pop_mpls:0x0800,output:LOCAL
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:32"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:33: ovs-ofctl -O OpenFlow13 add-flow br0 dl_type=0x8847,in_port=1,mpls_label=21,action=pop_mpls:0x0800,dec_ttl,output:LOCAL"
at_fn_check_prepare_trace "mpls-xlate.at:33"
( $at_check_trace; ovs-ofctl -O OpenFlow13 add-flow br0 dl_type=0x8847,in_port=1,mpls_label=21,action=pop_mpls:0x0800,dec_ttl,output:LOCAL
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:33"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:34: ovs-ofctl -O OpenFlow13 add-flow br0 dl_type=0x8847,in_port=1,mpls_label=22,action=pop_mpls:0x0800,group:1232"
at_fn_check_prepare_trace "mpls-xlate.at:34"
( $at_check_trace; ovs-ofctl -O OpenFlow13 add-flow br0 dl_type=0x8847,in_port=1,mpls_label=22,action=pop_mpls:0x0800,group:1232
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:34"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:35: ovs-ofctl -O OpenFlow13 add-flow br0 dl_type=0x8847,in_port=1,mpls_label=23,action=pop_mpls:0x0800,group:1233"
at_fn_check_prepare_trace "mpls-xlate.at:35"
( $at_check_trace; ovs-ofctl -O OpenFlow13 add-flow br0 dl_type=0x8847,in_port=1,mpls_label=23,action=pop_mpls:0x0800,group:1233
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:35"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:36: ovs-ofctl -O OpenFlow13 add-flow br0 dl_type=0x8847,in_port=1,mpls_label=24,action=pop_mpls:0x0800,group:1234"
at_fn_check_prepare_trace "mpls-xlate.at:36"
( $at_check_trace; ovs-ofctl -O OpenFlow13 add-flow br0 dl_type=0x8847,in_port=1,mpls_label=24,action=pop_mpls:0x0800,group:1234
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:36"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:37: ovs-ofctl -O OpenFlow13 add-flow br0 dl_type=0x8847,in_port=1,mpls_label=25,action=pop_mpls:0x0800,output:2"
at_fn_check_prepare_trace "mpls-xlate.at:37"
( $at_check_trace; ovs-ofctl -O OpenFlow13 add-flow br0 dl_type=0x8847,in_port=1,mpls_label=25,action=pop_mpls:0x0800,output:2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:37"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:39: ovs-ofctl -O OpenFlow13 add-flow br1 in_port=1,action=output:LOCAL"
at_fn_check_prepare_trace "mpls-xlate.at:39"
( $at_check_trace; ovs-ofctl -O OpenFlow13 add-flow br1 in_port=1,action=output:LOCAL
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:39"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/stop

{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:46: ovs-appctl ofproto/trace ovs-dummy 'in_port(100),eth(src=f8:bc:12:44:34:b6,dst=f8:bc:12:46:58:e0),eth_type(0x0800),ipv4(src=1.1.2.92,dst=1.1.2.88,proto=17,tos=0,ttl=64,frag=no),udp(src=7777,dst=80)'"
at_fn_check_prepare_trace "mpls-xlate.at:46"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(100),eth(src=f8:bc:12:44:34:b6,dst=f8:bc:12:46:58:e0),eth_type(0x0800),ipv4(src=1.1.2.92,dst=1.1.2.88,proto=17,tos=0,ttl=64,frag=no),udp(src=7777,dst=80)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:46"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:47: tail -1 stdout"
at_fn_check_prepare_trace "mpls-xlate.at:47"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: push_mpls(label=10,tc=0,ttl=64,bos=1,eth_type=0x8847),1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:47"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:52: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=f8:bc:12:44:34:b6,dst=f8:bc:12:46:58:e0),eth_type(0x8847),mpls(label=20,tc=0,ttl=64,bos=1)'"
at_fn_check_prepare_trace "mpls-xlate.at:52"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=f8:bc:12:44:34:b6,dst=f8:bc:12:46:58:e0),eth_type(0x8847),mpls(label=20,tc=0,ttl=64,bos=1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:52"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:53: tail -1 stdout"
at_fn_check_prepare_trace "mpls-xlate.at:53"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: pop_mpls(eth_type=0x800),100
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:53"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:58: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=f8:bc:12:44:34:b6,dst=f8:bc:12:46:58:e0),eth_type(0x8847),mpls(label=21,tc=0,ttl=64,bos=1)'"
at_fn_check_prepare_trace "mpls-xlate.at:58"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=f8:bc:12:44:34:b6,dst=f8:bc:12:46:58:e0),eth_type(0x8847),mpls(label=21,tc=0,ttl=64,bos=1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:58"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:59: tail -1 stdout"
at_fn_check_prepare_trace "mpls-xlate.at:59"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: pop_mpls(eth_type=0x800),recirc(0x1)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:59"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:63: ovs-appctl ofproto/trace ovs-dummy 'recirc_id(1),in_port(1),eth(src=f8:bc:12:44:34:b6,dst=f8:bc:12:46:58:e0),eth_type(0x0800),ipv4(src=1.1.2.92,dst=1.1.2.88,proto=47,tos=0,ttl=64,frag=no)'"
at_fn_check_prepare_trace "mpls-xlate.at:63"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'recirc_id(1),in_port(1),eth(src=f8:bc:12:44:34:b6,dst=f8:bc:12:46:58:e0),eth_type(0x0800),ipv4(src=1.1.2.92,dst=1.1.2.88,proto=47,tos=0,ttl=64,frag=no)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:63"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:64: tail -1 stdout"
at_fn_check_prepare_trace "mpls-xlate.at:64"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: set(ipv4(ttl=63)),100
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:64"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:69: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=f8:bc:12:44:34:b6,dst=f8:bc:12:46:58:e0),eth_type(0x8847),mpls(label=22,tc=0,ttl=64,bos=1)'"
at_fn_check_prepare_trace "mpls-xlate.at:69"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=f8:bc:12:44:34:b6,dst=f8:bc:12:46:58:e0),eth_type(0x8847),mpls(label=22,tc=0,ttl=64,bos=1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:69"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:70: tail -1 stdout"
at_fn_check_prepare_trace "mpls-xlate.at:70"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: pop_mpls(eth_type=0x800),recirc(0x2)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:70"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:74: ovs-appctl ofproto/trace ovs-dummy 'recirc_id(2),in_port(1),eth(src=f8:bc:12:44:34:b6,dst=f8:bc:12:46:58:e0),eth_type(0x0800),ipv4(src=1.1.2.92,dst=1.1.2.88,proto=47,tos=0,ttl=64,frag=no)'"
at_fn_check_prepare_trace "mpls-xlate.at:74"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'recirc_id(2),in_port(1),eth(src=f8:bc:12:44:34:b6,dst=f8:bc:12:46:58:e0),eth_type(0x0800),ipv4(src=1.1.2.92,dst=1.1.2.88,proto=47,tos=0,ttl=64,frag=no)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:74"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:75: tail -1 stdout"
at_fn_check_prepare_trace "mpls-xlate.at:75"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 100
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:75"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:80: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=f8:bc:12:44:34:b6,dst=f8:bc:12:46:58:e0),eth_type(0x8847),mpls(label=23,tc=0,ttl=64,bos=1)'"
at_fn_check_prepare_trace "mpls-xlate.at:80"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=f8:bc:12:44:34:b6,dst=f8:bc:12:46:58:e0),eth_type(0x8847),mpls(label=23,tc=0,ttl=64,bos=1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:80"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:81: tail -1 stdout"
at_fn_check_prepare_trace "mpls-xlate.at:81"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: pop_mpls(eth_type=0x800),100
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:81"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:86: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=f8:bc:12:44:34:b6,dst=f8:bc:12:46:58:e0),eth_type(0x8847),mpls(label=24,tc=0,ttl=64,bos=1)'"
at_fn_check_prepare_trace "mpls-xlate.at:86"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=f8:bc:12:44:34:b6,dst=f8:bc:12:46:58:e0),eth_type(0x8847),mpls(label=24,tc=0,ttl=64,bos=1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:86"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:87: tail -1 stdout"
at_fn_check_prepare_trace "mpls-xlate.at:87"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: pop_mpls(eth_type=0x800),recirc(0x3)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:87"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:91: ovs-appctl ofproto/trace ovs-dummy 'recirc_id(3),in_port(1),eth(src=f8:bc:12:44:34:b6,dst=f8:bc:12:46:58:e0),eth_type(0x0800),ipv4(src=1.1.2.92,dst=1.1.2.88,proto=47,tos=0,ttl=64,frag=no)'"
at_fn_check_prepare_trace "mpls-xlate.at:91"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'recirc_id(3),in_port(1),eth(src=f8:bc:12:44:34:b6,dst=f8:bc:12:46:58:e0),eth_type(0x0800),ipv4(src=1.1.2.92,dst=1.1.2.88,proto=47,tos=0,ttl=64,frag=no)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:91"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:92: tail -1 stdout"
at_fn_check_prepare_trace "mpls-xlate.at:92"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: set(ipv4(ttl=63)),100
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:92"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:97: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=f8:bc:12:44:34:b6,dst=f8:bc:12:46:58:e0),eth_type(0x8847),mpls(label=25,tc=0,ttl=64,bos=1)'"
at_fn_check_prepare_trace "mpls-xlate.at:97"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=f8:bc:12:44:34:b6,dst=f8:bc:12:46:58:e0),eth_type(0x8847),mpls(label=25,tc=0,ttl=64,bos=1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:97"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:98: tail -1 stdout"
at_fn_check_prepare_trace "mpls-xlate.at:98"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: pop_mpls(eth_type=0x800),recirc(0x4)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:98"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:102: ovs-appctl ofproto/trace ovs-dummy 'recirc_id(4),in_port(1),eth(src=f8:bc:12:44:34:b6,dst=f8:bc:12:46:58:e0),eth_type(0x0800),ipv4(src=1.1.2.92,dst=1.1.2.88,proto=47,tos=0,ttl=64,frag=no)'"
at_fn_check_prepare_trace "mpls-xlate.at:102"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'recirc_id(4),in_port(1),eth(src=f8:bc:12:44:34:b6,dst=f8:bc:12:46:58:e0),eth_type(0x0800),ipv4(src=1.1.2.92,dst=1.1.2.88,proto=47,tos=0,ttl=64,frag=no)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:102"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:103: tail -1 stdout"
at_fn_check_prepare_trace "mpls-xlate.at:103"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 101
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:103"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:108: ovs-ofctl del-flows br0"
at_fn_check_prepare_trace "mpls-xlate.at:108"
( $at_check_trace; ovs-ofctl del-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:108"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:110: ovs-ofctl -O OpenFlow13 add-flow br0 in_port=local,dl_type=0x0800,action=push_mpls:0x8847,set_field:10-\\>mpls_label,push_mpls:0x8847,set_field:20-\\>mpls_label,output:1"
at_fn_check_prepare_trace "mpls-xlate.at:110"
( $at_check_trace; ovs-ofctl -O OpenFlow13 add-flow br0 in_port=local,dl_type=0x0800,action=push_mpls:0x8847,set_field:10-\>mpls_label,push_mpls:0x8847,set_field:20-\>mpls_label,output:1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:110"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# The resubmits will be executed after recirculation, which preserves the
# register values.
{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:113: ovs-ofctl -O OpenFlow13 add-flow br0 cookie=0xa,table=0,dl_type=0x8847,in_port=1,mpls_label=60,action=set_field:10-\\>reg0,pop_mpls:0x8847,goto_table:1"
at_fn_check_prepare_trace "mpls-xlate.at:113"
( $at_check_trace; ovs-ofctl -O OpenFlow13 add-flow br0 cookie=0xa,table=0,dl_type=0x8847,in_port=1,mpls_label=60,action=set_field:10-\>reg0,pop_mpls:0x8847,goto_table:1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:113"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# The pop_mpls below recirculates from within a resubmit
# After recirculation the (restored) register value is moved to IP ttl.
{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:116: ovs-ofctl -O OpenFlow13 add-flow br0 cookie=0xb,table=1,dl_type=0x8847,in_port=1,mpls_label=50,action=push:NXM_NX_REG0[0..7],pop_mpls:0x0800,set_field:0-\\>nw_ttl,pop:NXM_NX_REG1[0..7],move:NXM_NX_REG1[0..7]-\\>NXM_NX_IP_TTL[],output:LOCAL"
at_fn_check_prepare_trace "mpls-xlate.at:116"
( $at_check_trace; ovs-ofctl -O OpenFlow13 add-flow br0 cookie=0xb,table=1,dl_type=0x8847,in_port=1,mpls_label=50,action=push:NXM_NX_REG0[0..7],pop_mpls:0x0800,set_field:0-\>nw_ttl,pop:NXM_NX_REG1[0..7],move:NXM_NX_REG1[0..7]-\>NXM_NX_IP_TTL[],output:LOCAL
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:116"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:119: ovs-appctl ofproto/trace ovs-dummy 'in_port(100),eth(src=f8:bc:12:44:34:b6,dst=f8:bc:12:46:58:e0),eth_type(0x0800),ipv4(src=1.1.2.92,dst=1.1.2.88,proto=47,tos=0,ttl=64,frag=no)'"
at_fn_check_prepare_trace "mpls-xlate.at:119"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(100),eth(src=f8:bc:12:44:34:b6,dst=f8:bc:12:46:58:e0),eth_type(0x0800),ipv4(src=1.1.2.92,dst=1.1.2.88,proto=47,tos=0,ttl=64,frag=no)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:119"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:120: tail -1 stdout"
at_fn_check_prepare_trace "mpls-xlate.at:120"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: push_mpls(label=10,tc=0,ttl=64,bos=1,eth_type=0x8847),push_mpls(label=20,tc=0,ttl=64,bos=0,eth_type=0x8847),1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:120"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:125: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=f8:bc:12:44:34:b6,dst=f8:bc:12:46:58:e0),eth_type(0x8847),mpls(label=60,tc=0,ttl=64,bos=0,label=50,tc=0,ttl=64,bos=1)'"
at_fn_check_prepare_trace "mpls-xlate.at:125"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=f8:bc:12:44:34:b6,dst=f8:bc:12:46:58:e0),eth_type(0x8847),mpls(label=60,tc=0,ttl=64,bos=0,label=50,tc=0,ttl=64,bos=1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:125"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:126: tail -1 stdout"
at_fn_check_prepare_trace "mpls-xlate.at:126"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: pop_mpls(eth_type=0x8847),pop_mpls(eth_type=0x800),recirc(0x5)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:126"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:130: ovs-appctl ofproto/trace ovs-dummy 'recirc_id(5),in_port(1),eth(src=f8:bc:12:44:34:b6,dst=f8:bc:12:46:58:e0),eth_type(0x0800),ipv4(src=1.1.2.92,dst=1.1.2.88,proto=47,tos=0,ttl=64,frag=no)'"
at_fn_check_prepare_trace "mpls-xlate.at:130"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'recirc_id(5),in_port(1),eth(src=f8:bc:12:44:34:b6,dst=f8:bc:12:46:58:e0),eth_type(0x0800),ipv4(src=1.1.2.92,dst=1.1.2.88,proto=47,tos=0,ttl=64,frag=no)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:130"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:131: tail -1 stdout"
at_fn_check_prepare_trace "mpls-xlate.at:131"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: set(ipv4(ttl=10)),100
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:131"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:135: check_logs "
at_fn_check_prepare_trace "mpls-xlate.at:135"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:135"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/mpls-xlate.at:135: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "mpls-xlate.at:135"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:135"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/mpls-xlate.at:135: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "mpls-xlate.at:135"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:135"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "mpls-xlate.at:135: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "mpls-xlate.at:135: wait failed" >&5

    $as_echo "mpls-xlate.at:135" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/mpls-xlate.at:135"
fi

   { set +x
$as_echo "$at_srcdir/mpls-xlate.at:135: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "mpls-xlate.at:135"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:135"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/mpls-xlate.at:135: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "mpls-xlate.at:135"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:135"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "mpls-xlate.at:135: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "mpls-xlate.at:135: wait failed" >&5

    $as_echo "mpls-xlate.at:135" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/mpls-xlate.at:135"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_438
#AT_START_439
at_fn_group_banner 439 'mpls-xlate.at:138' \
  "MPLS xlate action - patch-port" "                 " 23
at_xfail=no
(
  $as_echo "439. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/mpls-xlate.at:140: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "mpls-xlate.at:140"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:140"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/mpls-xlate.at:140: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "mpls-xlate.at:140"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:140"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/mpls-xlate.at:140: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "mpls-xlate.at:140"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:140"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/mpls-xlate.at:140: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "mpls-xlate.at:140"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:140"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/mpls-xlate.at:140: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "mpls-xlate.at:140"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:140"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/mpls-xlate.at:140: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "mpls-xlate.at:140"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:140"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/mpls-xlate.at:140: add_of_br 0 add-port br0 p0 -- set Interface p0 type=dummy ofport_request=1 -- \\
   add-port br0 p1 -- set Interface p1 type=patch \\
                                       options:peer=p2 ofport_request=2 -- \\
   add-br br1 -- \\
   set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \\
   set bridge br1 datapath-type=dummy other-config:datapath-id=1234 \\
                  fail-mode=secure -- \\
   add-port br1 p2 -- set Interface p2 type=patch \\
                                       options:peer=p1 -- \\
   add-port br1 p3 -- set Interface p3 type=dummy ofport_request=3 "
at_fn_check_prepare_notrace 'an embedded newline' "mpls-xlate.at:140"
( $at_check_trace; add_of_br 0 add-port br0 p0 -- set Interface p0 type=dummy ofport_request=1 -- \
   add-port br0 p1 -- set Interface p1 type=patch \
                                       options:peer=p2 ofport_request=2 -- \
   add-br br1 -- \
   set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \
   set bridge br1 datapath-type=dummy other-config:datapath-id=1234 \
                  fail-mode=secure -- \
   add-port br1 p2 -- set Interface p2 type=patch \
                                       options:peer=p1 -- \
   add-port br1 p3 -- set Interface p3 type=dummy ofport_request=3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:140"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:152: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg ofproto_dpif_upcall:dbg"
at_fn_check_prepare_trace "mpls-xlate.at:152"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg ofproto_dpif_upcall:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:152"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:154: ovs-appctl dpif/show"
at_fn_check_prepare_trace "mpls-xlate.at:154"
( $at_check_trace; ovs-appctl dpif/show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dummy@ovs-dummy: hit:0 missed:0
	br0:
		br0 65534/100: (dummy-internal)
		p0 1/1: (dummy)
		p1 2/none: (patch: peer=p2)
	br1:
		br1 65534/101: (dummy-internal)
		p2 1/none: (patch: peer=p1)
		p3 3/3: (dummy)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:154"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:167: ovs-ofctl del-flows br0"
at_fn_check_prepare_trace "mpls-xlate.at:167"
( $at_check_trace; ovs-ofctl del-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:167"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:169: ovs-ofctl -O OpenFlow13 add-flow br0 in_port=local,ip,actions=2,1,1"
at_fn_check_prepare_trace "mpls-xlate.at:169"
( $at_check_trace; ovs-ofctl -O OpenFlow13 add-flow br0 in_port=local,ip,actions=2,1,1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:169"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:171: ovs-ofctl -O OpenFlow13 add-flow br1 in_port=1,ip,actions=dec_ttl,push_mpls:0x8847,3"
at_fn_check_prepare_trace "mpls-xlate.at:171"
( $at_check_trace; ovs-ofctl -O OpenFlow13 add-flow br1 in_port=1,ip,actions=dec_ttl,push_mpls:0x8847,3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:171"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:174: ovs-appctl ofproto/trace ovs-dummy 'in_port(100),eth(src=f8:bc:12:44:34:b6,dst=f8:bc:12:46:58:e0),eth_type(0x0800),ipv4(src=10.1.1.22,dst=10.0.0.3,proto=6,tos=0,ttl=64,frag=no),tcp(src=53295,dst=8080)'"
at_fn_check_prepare_trace "mpls-xlate.at:174"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(100),eth(src=f8:bc:12:44:34:b6,dst=f8:bc:12:46:58:e0),eth_type(0x0800),ipv4(src=10.1.1.22,dst=10.0.0.3,proto=6,tos=0,ttl=64,frag=no),tcp(src=53295,dst=8080)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:174"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:175: tail -1 stdout"
at_fn_check_prepare_trace "mpls-xlate.at:175"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: set(ipv4(ttl=63)),push_mpls(label=0,tc=0,ttl=63,bos=1,eth_type=0x8847),3,pop_mpls(eth_type=0x800),set(ipv4(tos=0/0xfc,ttl=64)),1,1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:175"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:179: check_logs "
at_fn_check_prepare_trace "mpls-xlate.at:179"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:179"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/mpls-xlate.at:179: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "mpls-xlate.at:179"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:179"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/mpls-xlate.at:179: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "mpls-xlate.at:179"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:179"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "mpls-xlate.at:179: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "mpls-xlate.at:179: wait failed" >&5

    $as_echo "mpls-xlate.at:179" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/mpls-xlate.at:179"
fi

   { set +x
$as_echo "$at_srcdir/mpls-xlate.at:179: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "mpls-xlate.at:179"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:179"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/mpls-xlate.at:179: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "mpls-xlate.at:179"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:179"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "mpls-xlate.at:179: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "mpls-xlate.at:179: wait failed" >&5

    $as_echo "mpls-xlate.at:179" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/mpls-xlate.at:179"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_439
#AT_START_440
at_fn_group_banner 440 'mpls-xlate.at:182' \
  "MPLS xlate action - group bucket" "               " 23
at_xfail=no
(
  $as_echo "440. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/mpls-xlate.at:184: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "mpls-xlate.at:184"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:184"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/mpls-xlate.at:184: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "mpls-xlate.at:184"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:184"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/mpls-xlate.at:184: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "mpls-xlate.at:184"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:184"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/mpls-xlate.at:184: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "mpls-xlate.at:184"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:184"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/mpls-xlate.at:184: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "mpls-xlate.at:184"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:184"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/mpls-xlate.at:184: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "mpls-xlate.at:184"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:184"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/mpls-xlate.at:184: add_of_br 0  "
at_fn_check_prepare_trace "mpls-xlate.at:184"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:184"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1

{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:187: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg ofproto_dpif_upcall:dbg"
at_fn_check_prepare_trace "mpls-xlate.at:187"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg ofproto_dpif_upcall:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:187"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:189: ovs-ofctl del-flows br0"
at_fn_check_prepare_trace "mpls-xlate.at:189"
( $at_check_trace; ovs-ofctl del-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:189"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:190: ovs-ofctl -O OpenFlow13 add-group br0 'group_id=1234,type=all,bucket=push_mpls:0x8847,output:1'"
at_fn_check_prepare_trace "mpls-xlate.at:190"
( $at_check_trace; ovs-ofctl -O OpenFlow13 add-group br0 'group_id=1234,type=all,bucket=push_mpls:0x8847,output:1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:190"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:191: ovs-ofctl -O OpenFlow13 add-flow br0 in_port=local,ip,actions=group:1234,output:1,output:1"
at_fn_check_prepare_trace "mpls-xlate.at:191"
( $at_check_trace; ovs-ofctl -O OpenFlow13 add-flow br0 in_port=local,ip,actions=group:1234,output:1,output:1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:194: ovs-appctl ofproto/trace ovs-dummy 'in_port(100),eth(src=f8:bc:12:44:34:b6,dst=f8:bc:12:46:58:e0),eth_type(0x0800),ipv4(src=10.1.1.22,dst=10.0.0.3,proto=6,tos=0,ttl=64,frag=no),tcp(src=53295,dst=8080)'"
at_fn_check_prepare_trace "mpls-xlate.at:194"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(100),eth(src=f8:bc:12:44:34:b6,dst=f8:bc:12:46:58:e0),eth_type(0x0800),ipv4(src=10.1.1.22,dst=10.0.0.3,proto=6,tos=0,ttl=64,frag=no),tcp(src=53295,dst=8080)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:194"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:195: tail -1 stdout"
at_fn_check_prepare_trace "mpls-xlate.at:195"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: push_mpls(label=0,tc=0,ttl=64,bos=1,eth_type=0x8847),1,pop_mpls(eth_type=0x800),1,1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:195"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mpls-xlate.at:199: check_logs "
at_fn_check_prepare_trace "mpls-xlate.at:199"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:199"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/mpls-xlate.at:199: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "mpls-xlate.at:199"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:199"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/mpls-xlate.at:199: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "mpls-xlate.at:199"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:199"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "mpls-xlate.at:199: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "mpls-xlate.at:199: wait failed" >&5

    $as_echo "mpls-xlate.at:199" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/mpls-xlate.at:199"
fi

   { set +x
$as_echo "$at_srcdir/mpls-xlate.at:199: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "mpls-xlate.at:199"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:199"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/mpls-xlate.at:199: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "mpls-xlate.at:199"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mpls-xlate.at:199"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "mpls-xlate.at:199: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "mpls-xlate.at:199: wait failed" >&5

    $as_echo "mpls-xlate.at:199" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/mpls-xlate.at:199"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_440
#AT_START_441
at_fn_group_banner 441 'multipath.at:10' \
  "modulo_n multipath link selection" "              " 24
at_xfail=no
(
  $as_echo "441. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/multipath.at:11: ovstest test-multipath 'eth_src,50,modulo_n,1,0,NXM_NX_REG0[]'"
at_fn_check_prepare_trace "multipath.at:11"
( $at_check_trace; ovstest test-multipath 'eth_src,50,modulo_n,1,0,NXM_NX_REG0[]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/multipath.at:11"
$at_failed && at_fn_log_failure
$at_traceon; }

# 1 ->  2: disruption=0.50 (perfect=0.50); stddev/expected=0.0000
# 2 ->  3: disruption=0.66 (perfect=0.33); stddev/expected=0.0023
# 3 ->  4: disruption=0.75 (perfect=0.25); stddev/expected=0.0061
# 4 ->  5: disruption=0.80 (perfect=0.20); stddev/expected=0.0082
# 5 ->  6: disruption=0.83 (perfect=0.17); stddev/expected=0.0083
# 6 ->  7: disruption=0.86 (perfect=0.14); stddev/expected=0.0061
# 7 ->  8: disruption=0.88 (perfect=0.12); stddev/expected=0.0103
# 8 ->  9: disruption=0.89 (perfect=0.11); stddev/expected=0.0129
# 9 -> 10: disruption=0.90 (perfect=0.10); stddev/expected=0.0091
#10 -> 11: disruption=0.91 (perfect=0.09); stddev/expected=0.0114
#11 -> 12: disruption=0.91 (perfect=0.08); stddev/expected=0.0073
#12 -> 13: disruption=0.92 (perfect=0.08); stddev/expected=0.0165
#13 -> 14: disruption=0.93 (perfect=0.07); stddev/expected=0.0149
#14 -> 15: disruption=0.93 (perfect=0.07); stddev/expected=0.0127
#15 -> 16: disruption=0.94 (perfect=0.06); stddev/expected=0.0142
#16 -> 17: disruption=0.94 (perfect=0.06); stddev/expected=0.0098
#17 -> 18: disruption=0.94 (perfect=0.06); stddev/expected=0.0159
#18 -> 19: disruption=0.95 (perfect=0.05); stddev/expected=0.0121
#19 -> 20: disruption=0.95 (perfect=0.05); stddev/expected=0.0195
#20 -> 21: disruption=0.95 (perfect=0.05); stddev/expected=0.0120
#21 -> 22: disruption=0.95 (perfect=0.05); stddev/expected=0.0181
#22 -> 23: disruption=0.96 (perfect=0.04); stddev/expected=0.0222
#23 -> 24: disruption=0.96 (perfect=0.04); stddev/expected=0.0164
#24 -> 25: disruption=0.96 (perfect=0.04); stddev/expected=0.0146
#25 -> 26: disruption=0.96 (perfect=0.04); stddev/expected=0.0175
#26 -> 27: disruption=0.96 (perfect=0.04); stddev/expected=0.0231
#27 -> 28: disruption=0.96 (perfect=0.04); stddev/expected=0.0172
#28 -> 29: disruption=0.97 (perfect=0.03); stddev/expected=0.0211
#29 -> 30: disruption=0.97 (perfect=0.03); stddev/expected=0.0213
#30 -> 31: disruption=0.97 (perfect=0.03); stddev/expected=0.0253
#31 -> 32: disruption=0.97 (perfect=0.03); stddev/expected=0.0208
#32 -> 33: disruption=0.97 (perfect=0.03); stddev/expected=0.0223
#33 -> 34: disruption=0.97 (perfect=0.03); stddev/expected=0.0215
#34 -> 35: disruption=0.97 (perfect=0.03); stddev/expected=0.0201
#35 -> 36: disruption=0.97 (perfect=0.03); stddev/expected=0.0220
#36 -> 37: disruption=0.97 (perfect=0.03); stddev/expected=0.0221
#37 -> 38: disruption=0.97 (perfect=0.03); stddev/expected=0.0201
#38 -> 39: disruption=0.97 (perfect=0.03); stddev/expected=0.0215
#39 -> 40: disruption=0.97 (perfect=0.03); stddev/expected=0.0271
#40 -> 41: disruption=0.98 (perfect=0.02); stddev/expected=0.0272
#41 -> 42: disruption=0.98 (perfect=0.02); stddev/expected=0.0208
#42 -> 43: disruption=0.98 (perfect=0.02); stddev/expected=0.0226
#43 -> 44: disruption=0.98 (perfect=0.02); stddev/expected=0.0264
#44 -> 45: disruption=0.98 (perfect=0.02); stddev/expected=0.0233
#45 -> 46: disruption=0.98 (perfect=0.02); stddev/expected=0.0285
#46 -> 47: disruption=0.98 (perfect=0.02); stddev/expected=0.0246
#47 -> 48: disruption=0.98 (perfect=0.02); stddev/expected=0.0282
#48 -> 49: disruption=0.98 (perfect=0.02); stddev/expected=0.0233
#49 -> 50: disruption=0.98 (perfect=0.02); stddev/expected=0.0197
#50 -> 51: disruption=0.98 (perfect=0.02); stddev/expected=0.0317
#51 -> 52: disruption=0.98 (perfect=0.02); stddev/expected=0.0283
#52 -> 53: disruption=0.98 (perfect=0.02); stddev/expected=0.0282
#53 -> 54: disruption=0.98 (perfect=0.02); stddev/expected=0.0273
#54 -> 55: disruption=0.98 (perfect=0.02); stddev/expected=0.0283
#55 -> 56: disruption=0.98 (perfect=0.02); stddev/expected=0.0288
#56 -> 57: disruption=0.98 (perfect=0.02); stddev/expected=0.0263
#57 -> 58: disruption=0.98 (perfect=0.02); stddev/expected=0.0339
#58 -> 59: disruption=0.98 (perfect=0.02); stddev/expected=0.0262
#59 -> 60: disruption=0.98 (perfect=0.02); stddev/expected=0.0309
#60 -> 61: disruption=0.98 (perfect=0.02); stddev/expected=0.0285
#61 -> 62: disruption=0.98 (perfect=0.02); stddev/expected=0.0288
#62 -> 63: disruption=0.98 (perfect=0.02); stddev/expected=0.0298
#63 -> 64: disruption=0.98 (perfect=0.02); stddev/expected=0.0277
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_441
#AT_START_442
at_fn_group_banner 442 'multipath.at:78' \
  "hash_threshold multipath link selection" "        " 24
at_xfail=no
(
  $as_echo "442. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/multipath.at:79: ovstest test-multipath 'eth_src,50,hash_threshold,1,0,NXM_NX_REG0[]'"
at_fn_check_prepare_trace "multipath.at:79"
( $at_check_trace; ovstest test-multipath 'eth_src,50,hash_threshold,1,0,NXM_NX_REG0[]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/multipath.at:79"
$at_failed && at_fn_log_failure
$at_traceon; }

# 1 ->  2: disruption=0.50 (perfect=0.50); stddev/expected=0.0000
# 2 ->  3: disruption=0.50 (perfect=0.33); stddev/expected=0.0056
# 3 ->  4: disruption=0.50 (perfect=0.25); stddev/expected=0.0050
# 4 ->  5: disruption=0.50 (perfect=0.20); stddev/expected=0.0074
# 5 ->  6: disruption=0.50 (perfect=0.17); stddev/expected=0.0031
# 6 ->  7: disruption=0.50 (perfect=0.14); stddev/expected=0.0078
# 7 ->  8: disruption=0.50 (perfect=0.12); stddev/expected=0.0085
# 8 ->  9: disruption=0.50 (perfect=0.11); stddev/expected=0.0093
# 9 -> 10: disruption=0.50 (perfect=0.10); stddev/expected=0.0083
#10 -> 11: disruption=0.51 (perfect=0.09); stddev/expected=0.0110
#11 -> 12: disruption=0.50 (perfect=0.08); stddev/expected=0.0124
#12 -> 13: disruption=0.50 (perfect=0.08); stddev/expected=0.0143
#13 -> 14: disruption=0.50 (perfect=0.07); stddev/expected=0.0148
#14 -> 15: disruption=0.50 (perfect=0.07); stddev/expected=0.0099
#15 -> 16: disruption=0.50 (perfect=0.06); stddev/expected=0.0166
#16 -> 17: disruption=0.50 (perfect=0.06); stddev/expected=0.0099
#17 -> 18: disruption=0.50 (perfect=0.06); stddev/expected=0.0194
#18 -> 19: disruption=0.50 (perfect=0.05); stddev/expected=0.0169
#19 -> 20: disruption=0.50 (perfect=0.05); stddev/expected=0.0169
#20 -> 21: disruption=0.50 (perfect=0.05); stddev/expected=0.0185
#21 -> 22: disruption=0.50 (perfect=0.05); stddev/expected=0.0160
#22 -> 23: disruption=0.50 (perfect=0.04); stddev/expected=0.0236
#23 -> 24: disruption=0.50 (perfect=0.04); stddev/expected=0.0147
#24 -> 25: disruption=0.50 (perfect=0.04); stddev/expected=0.0195
#25 -> 26: disruption=0.50 (perfect=0.04); stddev/expected=0.0199
#26 -> 27: disruption=0.50 (perfect=0.04); stddev/expected=0.0227
#27 -> 28: disruption=0.50 (perfect=0.04); stddev/expected=0.0198
#28 -> 29: disruption=0.50 (perfect=0.03); stddev/expected=0.0216
#29 -> 30: disruption=0.50 (perfect=0.03); stddev/expected=0.0233
#30 -> 31: disruption=0.50 (perfect=0.03); stddev/expected=0.0266
#31 -> 32: disruption=0.51 (perfect=0.03); stddev/expected=0.0238
#32 -> 33: disruption=0.50 (perfect=0.03); stddev/expected=0.0194
#33 -> 34: disruption=0.50 (perfect=0.03); stddev/expected=0.0173
#34 -> 35: disruption=0.50 (perfect=0.03); stddev/expected=0.0223
#35 -> 36: disruption=0.50 (perfect=0.03); stddev/expected=0.0220
#36 -> 37: disruption=0.50 (perfect=0.03); stddev/expected=0.0237
#37 -> 38: disruption=0.50 (perfect=0.03); stddev/expected=0.0237
#38 -> 39: disruption=0.50 (perfect=0.03); stddev/expected=0.0251
#39 -> 40: disruption=0.50 (perfect=0.03); stddev/expected=0.0212
#40 -> 41: disruption=0.50 (perfect=0.02); stddev/expected=0.0267
#41 -> 42: disruption=0.50 (perfect=0.02); stddev/expected=0.0242
#42 -> 43: disruption=0.50 (perfect=0.02); stddev/expected=0.0222
#43 -> 44: disruption=0.50 (perfect=0.02); stddev/expected=0.0244
#44 -> 45: disruption=0.50 (perfect=0.02); stddev/expected=0.0231
#45 -> 46: disruption=0.50 (perfect=0.02); stddev/expected=0.0299
#46 -> 47: disruption=0.50 (perfect=0.02); stddev/expected=0.0263
#47 -> 48: disruption=0.50 (perfect=0.02); stddev/expected=0.0307
#48 -> 49: disruption=0.50 (perfect=0.02); stddev/expected=0.0253
#49 -> 50: disruption=0.50 (perfect=0.02); stddev/expected=0.0228
#50 -> 51: disruption=0.50 (perfect=0.02); stddev/expected=0.0273
#51 -> 52: disruption=0.50 (perfect=0.02); stddev/expected=0.0243
#52 -> 53: disruption=0.50 (perfect=0.02); stddev/expected=0.0268
#53 -> 54: disruption=0.50 (perfect=0.02); stddev/expected=0.0251
#54 -> 55: disruption=0.50 (perfect=0.02); stddev/expected=0.0297
#55 -> 56: disruption=0.50 (perfect=0.02); stddev/expected=0.0287
#56 -> 57: disruption=0.50 (perfect=0.02); stddev/expected=0.0299
#57 -> 58: disruption=0.50 (perfect=0.02); stddev/expected=0.0272
#58 -> 59: disruption=0.50 (perfect=0.02); stddev/expected=0.0295
#59 -> 60: disruption=0.50 (perfect=0.02); stddev/expected=0.0312
#60 -> 61: disruption=0.50 (perfect=0.02); stddev/expected=0.0361
#61 -> 62: disruption=0.50 (perfect=0.02); stddev/expected=0.0308
#62 -> 63: disruption=0.50 (perfect=0.02); stddev/expected=0.0283
#63 -> 64: disruption=0.50 (perfect=0.02); stddev/expected=0.0325
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_442
#AT_START_443
at_fn_group_banner 443 'multipath.at:146' \
  "hrw multipath link selection" "                   " 24
at_xfail=no
(
  $as_echo "443. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/multipath.at:147: ovstest test-multipath 'eth_src,50,hrw,1,0,NXM_NX_REG0[]'"
at_fn_check_prepare_trace "multipath.at:147"
( $at_check_trace; ovstest test-multipath 'eth_src,50,hrw,1,0,NXM_NX_REG0[]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/multipath.at:147"
$at_failed && at_fn_log_failure
$at_traceon; }

# 1 ->  2: disruption=0.50 (perfect=0.50); stddev/expected=0.0000
# 2 ->  3: disruption=0.33 (perfect=0.33); stddev/expected=0.0033
# 3 ->  4: disruption=0.25 (perfect=0.25); stddev/expected=0.0076
# 4 ->  5: disruption=0.20 (perfect=0.20); stddev/expected=0.0059
# 5 ->  6: disruption=0.17 (perfect=0.17); stddev/expected=0.0030
# 6 ->  7: disruption=0.14 (perfect=0.14); stddev/expected=0.0124
# 7 ->  8: disruption=0.13 (perfect=0.12); stddev/expected=0.0072
# 8 ->  9: disruption=0.11 (perfect=0.11); stddev/expected=0.0074
# 9 -> 10: disruption=0.10 (perfect=0.10); stddev/expected=0.0161
#10 -> 11: disruption=0.09 (perfect=0.09); stddev/expected=0.0055
#11 -> 12: disruption=0.08 (perfect=0.08); stddev/expected=0.0092
#12 -> 13: disruption=0.08 (perfect=0.08); stddev/expected=0.0134
#13 -> 14: disruption=0.07 (perfect=0.07); stddev/expected=0.0124
#14 -> 15: disruption=0.07 (perfect=0.07); stddev/expected=0.0156
#15 -> 16: disruption=0.06 (perfect=0.06); stddev/expected=0.0182
#16 -> 17: disruption=0.06 (perfect=0.06); stddev/expected=0.0150
#17 -> 18: disruption=0.06 (perfect=0.06); stddev/expected=0.0109
#18 -> 19: disruption=0.05 (perfect=0.05); stddev/expected=0.0162
#19 -> 20: disruption=0.05 (perfect=0.05); stddev/expected=0.0149
#20 -> 21: disruption=0.05 (perfect=0.05); stddev/expected=0.0148
#21 -> 22: disruption=0.05 (perfect=0.05); stddev/expected=0.0230
#22 -> 23: disruption=0.04 (perfect=0.04); stddev/expected=0.0208
#23 -> 24: disruption=0.04 (perfect=0.04); stddev/expected=0.0210
#24 -> 25: disruption=0.04 (perfect=0.04); stddev/expected=0.0228
#25 -> 26: disruption=0.04 (perfect=0.04); stddev/expected=0.0155
#26 -> 27: disruption=0.04 (perfect=0.04); stddev/expected=0.0208
#27 -> 28: disruption=0.04 (perfect=0.04); stddev/expected=0.0218
#28 -> 29: disruption=0.03 (perfect=0.03); stddev/expected=0.0193
#29 -> 30: disruption=0.03 (perfect=0.03); stddev/expected=0.0169
#30 -> 31: disruption=0.03 (perfect=0.03); stddev/expected=0.0163
#31 -> 32: disruption=0.03 (perfect=0.03); stddev/expected=0.0192
#32 -> 33: disruption=0.03 (perfect=0.03); stddev/expected=0.0212
#33 -> 34: disruption=0.03 (perfect=0.03); stddev/expected=0.0240
#34 -> 35: disruption=0.03 (perfect=0.03); stddev/expected=0.0227
#35 -> 36: disruption=0.03 (perfect=0.03); stddev/expected=0.0230
#36 -> 37: disruption=0.03 (perfect=0.03); stddev/expected=0.0183
#37 -> 38: disruption=0.03 (perfect=0.03); stddev/expected=0.0227
#38 -> 39: disruption=0.03 (perfect=0.03); stddev/expected=0.0255
#39 -> 40: disruption=0.03 (perfect=0.03); stddev/expected=0.0247
#40 -> 41: disruption=0.02 (perfect=0.02); stddev/expected=0.0228
#41 -> 42: disruption=0.02 (perfect=0.02); stddev/expected=0.0247
#42 -> 43: disruption=0.02 (perfect=0.02); stddev/expected=0.0265
#43 -> 44: disruption=0.02 (perfect=0.02); stddev/expected=0.0250
#44 -> 45: disruption=0.02 (perfect=0.02); stddev/expected=0.0258
#45 -> 46: disruption=0.02 (perfect=0.02); stddev/expected=0.0196
#46 -> 47: disruption=0.02 (perfect=0.02); stddev/expected=0.0235
#47 -> 48: disruption=0.02 (perfect=0.02); stddev/expected=0.0314
#48 -> 49: disruption=0.02 (perfect=0.02); stddev/expected=0.0293
#49 -> 50: disruption=0.02 (perfect=0.02); stddev/expected=0.0241
#50 -> 51: disruption=0.02 (perfect=0.02); stddev/expected=0.0291
#51 -> 52: disruption=0.02 (perfect=0.02); stddev/expected=0.0304
#52 -> 53: disruption=0.02 (perfect=0.02); stddev/expected=0.0307
#53 -> 54: disruption=0.02 (perfect=0.02); stddev/expected=0.0250
#54 -> 55: disruption=0.02 (perfect=0.02); stddev/expected=0.0290
#55 -> 56: disruption=0.02 (perfect=0.02); stddev/expected=0.0284
#56 -> 57: disruption=0.02 (perfect=0.02); stddev/expected=0.0272
#57 -> 58: disruption=0.02 (perfect=0.02); stddev/expected=0.0272
#58 -> 59: disruption=0.02 (perfect=0.02); stddev/expected=0.0304
#59 -> 60: disruption=0.02 (perfect=0.02); stddev/expected=0.0345
#60 -> 61: disruption=0.02 (perfect=0.02); stddev/expected=0.0251
#61 -> 62: disruption=0.02 (perfect=0.02); stddev/expected=0.0249
#62 -> 63: disruption=0.02 (perfect=0.02); stddev/expected=0.0285
#63 -> 64: disruption=0.02 (perfect=0.02); stddev/expected=0.0285
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_443
#AT_START_444
at_fn_group_banner 444 'multipath.at:214' \
  "iter_hash multipath link selection" "             " 24
at_xfail=no
(
  $as_echo "444. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/multipath.at:215: ovstest test-multipath 'eth_src,50,iter_hash,1,0,NXM_NX_REG0[]'"
at_fn_check_prepare_trace "multipath.at:215"
( $at_check_trace; ovstest test-multipath 'eth_src,50,iter_hash,1,0,NXM_NX_REG0[]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/multipath.at:215"
$at_failed && at_fn_log_failure
$at_traceon; }

# 1 ->  2: disruption=0.50 (perfect=0.50); stddev/expected=0.0000
# 2 ->  3: disruption=0.42 (perfect=0.33); stddev/expected=0.0034
# 3 ->  4: disruption=0.25 (perfect=0.25); stddev/expected=0.0082
# 4 ->  5: disruption=0.42 (perfect=0.20); stddev/expected=0.0073
# 5 ->  6: disruption=0.17 (perfect=0.17); stddev/expected=0.0040
# 6 ->  7: disruption=0.14 (perfect=0.14); stddev/expected=0.0069
# 7 ->  8: disruption=0.13 (perfect=0.12); stddev/expected=0.0131
# 8 ->  9: disruption=0.45 (perfect=0.11); stddev/expected=0.0093
# 9 -> 10: disruption=0.10 (perfect=0.10); stddev/expected=0.0127
#10 -> 11: disruption=0.09 (perfect=0.09); stddev/expected=0.0134
#11 -> 12: disruption=0.08 (perfect=0.08); stddev/expected=0.0101
#12 -> 13: disruption=0.08 (perfect=0.08); stddev/expected=0.0127
#13 -> 14: disruption=0.07 (perfect=0.07); stddev/expected=0.0115
#14 -> 15: disruption=0.07 (perfect=0.07); stddev/expected=0.0100
#15 -> 16: disruption=0.06 (perfect=0.06); stddev/expected=0.0111
#16 -> 17: disruption=0.47 (perfect=0.06); stddev/expected=0.0137
#17 -> 18: disruption=0.05 (perfect=0.06); stddev/expected=0.0204
#18 -> 19: disruption=0.05 (perfect=0.05); stddev/expected=0.0082
#19 -> 20: disruption=0.05 (perfect=0.05); stddev/expected=0.0124
#20 -> 21: disruption=0.05 (perfect=0.05); stddev/expected=0.0203
#21 -> 22: disruption=0.05 (perfect=0.05); stddev/expected=0.0196
#22 -> 23: disruption=0.04 (perfect=0.04); stddev/expected=0.0183
#23 -> 24: disruption=0.04 (perfect=0.04); stddev/expected=0.0212
#24 -> 25: disruption=0.04 (perfect=0.04); stddev/expected=0.0176
#25 -> 26: disruption=0.04 (perfect=0.04); stddev/expected=0.0173
#26 -> 27: disruption=0.04 (perfect=0.04); stddev/expected=0.0159
#27 -> 28: disruption=0.03 (perfect=0.04); stddev/expected=0.0168
#28 -> 29: disruption=0.03 (perfect=0.03); stddev/expected=0.0190
#29 -> 30: disruption=0.03 (perfect=0.03); stddev/expected=0.0305
#30 -> 31: disruption=0.03 (perfect=0.03); stddev/expected=0.0282
#31 -> 32: disruption=0.03 (perfect=0.03); stddev/expected=0.0255
#32 -> 33: disruption=0.49 (perfect=0.03); stddev/expected=0.0220
#33 -> 34: disruption=0.03 (perfect=0.03); stddev/expected=0.0188
#34 -> 35: disruption=0.03 (perfect=0.03); stddev/expected=0.0203
#35 -> 36: disruption=0.03 (perfect=0.03); stddev/expected=0.0207
#36 -> 37: disruption=0.03 (perfect=0.03); stddev/expected=0.0261
#37 -> 38: disruption=0.03 (perfect=0.03); stddev/expected=0.0226
#38 -> 39: disruption=0.03 (perfect=0.03); stddev/expected=0.0233
#39 -> 40: disruption=0.03 (perfect=0.03); stddev/expected=0.0161
#40 -> 41: disruption=0.03 (perfect=0.02); stddev/expected=0.0303
#41 -> 42: disruption=0.02 (perfect=0.02); stddev/expected=0.0249
#42 -> 43: disruption=0.02 (perfect=0.02); stddev/expected=0.0262
#43 -> 44: disruption=0.02 (perfect=0.02); stddev/expected=0.0260
#44 -> 45: disruption=0.02 (perfect=0.02); stddev/expected=0.0266
#45 -> 46: disruption=0.02 (perfect=0.02); stddev/expected=0.0287
#46 -> 47: disruption=0.02 (perfect=0.02); stddev/expected=0.0213
#47 -> 48: disruption=0.02 (perfect=0.02); stddev/expected=0.0301
#48 -> 49: disruption=0.02 (perfect=0.02); stddev/expected=0.0230
#49 -> 50: disruption=0.02 (perfect=0.02); stddev/expected=0.0248
#50 -> 51: disruption=0.02 (perfect=0.02); stddev/expected=0.0203
#51 -> 52: disruption=0.02 (perfect=0.02); stddev/expected=0.0235
#52 -> 53: disruption=0.02 (perfect=0.02); stddev/expected=0.0340
#53 -> 54: disruption=0.02 (perfect=0.02); stddev/expected=0.0264
#54 -> 55: disruption=0.02 (perfect=0.02); stddev/expected=0.0292
#55 -> 56: disruption=0.02 (perfect=0.02); stddev/expected=0.0246
#56 -> 57: disruption=0.02 (perfect=0.02); stddev/expected=0.0270
#57 -> 58: disruption=0.02 (perfect=0.02); stddev/expected=0.0299
#58 -> 59: disruption=0.02 (perfect=0.02); stddev/expected=0.0307
#59 -> 60: disruption=0.02 (perfect=0.02); stddev/expected=0.0275
#60 -> 61: disruption=0.02 (perfect=0.02); stddev/expected=0.0289
#61 -> 62: disruption=0.02 (perfect=0.02); stddev/expected=0.0292
#62 -> 63: disruption=0.02 (perfect=0.02); stddev/expected=0.0292
#63 -> 64: disruption=0.02 (perfect=0.02); stddev/expected=0.0307
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_444
#AT_START_445
at_fn_group_banner 445 'multipath.at:282' \
  "multipath action missing argument" "              " 24
at_xfail=no
(
  $as_echo "445. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/multipath.at:283: ovs-ofctl parse-flow actions=multipath"
at_fn_check_prepare_trace "multipath.at:283"
( $at_check_trace; ovs-ofctl parse-flow actions=multipath
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: : not enough arguments to multipath action
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/multipath.at:283"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_445
#AT_START_446
at_fn_group_banner 446 'multipath.at:288' \
  "multipath action bad fields" "                    " 24
at_xfail=no
(
  $as_echo "446. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/multipath.at:289: ovs-ofctl parse-flow 'actions=multipath(xyzzy,50,modulo_n,1,0,NXM_NX_REG0[])'"
at_fn_check_prepare_trace "multipath.at:289"
( $at_check_trace; ovs-ofctl parse-flow 'actions=multipath(xyzzy,50,modulo_n,1,0,NXM_NX_REG0[])'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: xyzzy,50,modulo_n,1,0,NXM_NX_REG0[]: unknown fields \`xyzzy'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/multipath.at:289"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_446
#AT_START_447
at_fn_group_banner 447 'multipath.at:294' \
  "multipath action bad algorithm" "                 " 24
at_xfail=no
(
  $as_echo "447. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/multipath.at:295: ovs-ofctl parse-flow 'actions=multipath(eth_src,50,fubar,1,0,NXM_NX_REG0[])'"
at_fn_check_prepare_trace "multipath.at:295"
( $at_check_trace; ovs-ofctl parse-flow 'actions=multipath(eth_src,50,fubar,1,0,NXM_NX_REG0[])'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: eth_src,50,fubar,1,0,NXM_NX_REG0[]: unknown algorithm \`fubar'
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/multipath.at:295"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_447
#AT_START_448
at_fn_group_banner 448 'multipath.at:300' \
  "multipath action bad n_links" "                   " 24
at_xfail=no
(
  $as_echo "448. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/multipath.at:301: ovs-ofctl parse-flow 'actions=multipath(eth_src,50,modulo_n,0,0,NXM_NX_REG0[])'"
at_fn_check_prepare_trace "multipath.at:301"
( $at_check_trace; ovs-ofctl parse-flow 'actions=multipath(eth_src,50,modulo_n,0,0,NXM_NX_REG0[])'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: eth_src,50,modulo_n,0,0,NXM_NX_REG0[]: n_links 0 is not in valid range 1 to 65536
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/multipath.at:301"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_448
#AT_START_449
at_fn_group_banner 449 'multipath.at:306' \
  "multipath action destination too narrow" "        " 24
at_xfail=no
(
  $as_echo "449. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/multipath.at:307: ovs-ofctl parse-flow 'actions=multipath(eth_src,50,modulo_n,1024,0,NXM_NX_REG0[0..7])'"
at_fn_check_prepare_trace "multipath.at:307"
( $at_check_trace; ovs-ofctl parse-flow 'actions=multipath(eth_src,50,modulo_n,1024,0,NXM_NX_REG0[0..7])'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: eth_src,50,modulo_n,1024,0,NXM_NX_REG0[0..7]: 8-bit destination field has 256 possible values, less than specified n_links 1024
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/multipath.at:307"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_449
#AT_START_450
at_fn_group_banner 450 'learn.at:3' \
  "learning action - parsing and formatting" "       " 25
at_xfail=no
(
  $as_echo "450. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

cat >flows.txt <<'_ATEOF'

actions=learn()
actions=learn(send_flow_rem)
actions=learn(delete_learned)
actions=learn(send_flow_rem,delete_learned)
actions=learn(NXM_OF_VLAN_TCI[0..11], NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[], output:NXM_OF_IN_PORT[], load:10->NXM_NX_REG0[5..10])
actions=learn(table=1,idle_timeout=10, hard_timeout=20, fin_idle_timeout=5, fin_hard_timeout=10, priority=10, cookie=0xfedcba9876543210, in_port=99,eth_dst=eth_src,load:in_port->reg1[16..31])
actions=learn(limit=4096)
actions=learn(limit=4096,result_dst=reg0[0])
_ATEOF

{ set +x
$as_echo "$at_srcdir/learn.at:14: ovs-ofctl parse-flows flows.txt"
at_fn_check_prepare_trace "learn.at:14"
( $at_check_trace; ovs-ofctl parse-flows flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "usable protocols: any
chosen protocol: OpenFlow10-table_id
OFPT_FLOW_MOD (xid=0x1): ADD actions=learn(table=1)
OFPT_FLOW_MOD (xid=0x2): ADD actions=learn(table=1,send_flow_rem)
OFPT_FLOW_MOD (xid=0x3): ADD actions=learn(table=1,delete_learned)
OFPT_FLOW_MOD (xid=0x4): ADD actions=learn(table=1,send_flow_rem,delete_learned)
OFPT_FLOW_MOD (xid=0x5): ADD actions=learn(table=1,NXM_OF_VLAN_TCI[0..11],NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[],output:NXM_OF_IN_PORT[],load:0xa->NXM_NX_REG0[5..10])
OFPT_FLOW_MOD (xid=0x6): ADD actions=learn(table=1,idle_timeout=10,hard_timeout=20,fin_idle_timeout=5,fin_hard_timeout=10,priority=10,cookie=0xfedcba9876543210,in_port=99,NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[],load:NXM_OF_IN_PORT[]->NXM_NX_REG1[16..31])
OFPT_FLOW_MOD (xid=0x7): ADD actions=learn(table=1,limit=4096)
OFPT_FLOW_MOD (xid=0x8): ADD actions=learn(table=1,limit=4096,result_dst=NXM_NX_REG0[0])
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:14"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_450
#AT_START_451
at_fn_group_banner 451 'learn.at:28' \
  "learning action - parsing and formatting - illegal in_port_oxm" "" 25
at_xfail=no
(
  $as_echo "451. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/learn.at:29: ovs-ofctl parse-flow 'actions=learn(table=1, in_port_oxm=123456)'"
at_fn_check_prepare_trace "learn.at:29"
( $at_check_trace; ovs-ofctl parse-flow 'actions=learn(table=1, in_port_oxm=123456)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/learn.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/learn.at:31: sed -e 's/.*|ofp_util|WARN|//' < stderr"
at_fn_check_prepare_notrace 'a shell pipeline' "learn.at:31"
( $at_check_trace; sed -e 's/.*|ofp_util|WARN|//' < stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "port 123456 is outside the supported range 0 through ffff or 0xffffff00 through 0xffffffff
ovs-ofctl: table=1, in_port_oxm=123456: in_port_oxm value 123456 cannot be parsed as a subfield (123456: unknown field \`123456') or an immediate value (123456: port value out of range for in_port_oxm)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:31"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_451
#AT_START_452
at_fn_group_banner 452 'learn.at:37' \
  "learning action - parsing and formatting - OXM" " " 25
at_xfail=no
(
  $as_echo "452. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

cat >flows.txt <<'_ATEOF'

actions=learn(output:OXM_OF_IN_PORT[])
actions=learn(table=1, in_port=1, load:OXM_OF_IN_PORT[]->NXM_NX_REG1[], load:0xfffffffe->OXM_OF_IN_PORT[])
_ATEOF

{ set +x
$as_echo "$at_srcdir/learn.at:42: ovs-ofctl -O OpenFlow12 parse-flows flows.txt"
at_fn_check_prepare_trace "learn.at:42"
( $at_check_trace; ovs-ofctl -O OpenFlow12 parse-flows flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "usable protocols: any
chosen protocol: OXM-OpenFlow12
OFPT_FLOW_MOD (OF1.2) (xid=0x1): ADD actions=learn(table=1,output:OXM_OF_IN_PORT[])
OFPT_FLOW_MOD (OF1.2) (xid=0x2): ADD actions=learn(table=1,in_port=1,load:OXM_OF_IN_PORT[]->NXM_NX_REG1[],load:0xfffffffe->OXM_OF_IN_PORT[])
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:42"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_452
#AT_START_453
at_fn_group_banner 453 'learn.at:50' \
  "learning action - examples" "                     " 25
at_xfail=no
(
  $as_echo "453. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

cat >flows.txt <<'_ATEOF'

# These are the examples from ofp-actions.c.
actions=learn(in_port=99,NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[], load:NXM_OF_IN_PORT[]->NXM_NX_REG1[16..31])
actions=learn(NXM_OF_VLAN_TCI[0..11], NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[],output:NXM_OF_IN_PORT[])
table=0 actions=learn(table=1,hard_timeout=10, NXM_OF_VLAN_TCI[0..11],output:NXM_OF_IN_PORT[]), resubmit(,1)
table=1 priority=0 actions=flood
_ATEOF

{ set +x
$as_echo "$at_srcdir/learn.at:58: ovs-ofctl parse-flows flows.txt"
at_fn_check_prepare_trace "learn.at:58"
( $at_check_trace; ovs-ofctl parse-flows flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "usable protocols: OXM,OpenFlow10+table_id,NXM+table_id,OpenFlow11
chosen protocol: OpenFlow10+table_id
OFPT_FLOW_MOD (xid=0x1): ADD table:255 actions=learn(table=1,in_port=99,NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[],load:NXM_OF_IN_PORT[]->NXM_NX_REG1[16..31])
OFPT_FLOW_MOD (xid=0x2): ADD table:255 actions=learn(table=1,NXM_OF_VLAN_TCI[0..11],NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[],output:NXM_OF_IN_PORT[])
OFPT_FLOW_MOD (xid=0x3): ADD actions=learn(table=1,hard_timeout=10,NXM_OF_VLAN_TCI[0..11],output:NXM_OF_IN_PORT[]),resubmit(,1)
OFPT_FLOW_MOD (xid=0x4): ADD table:1 priority=0 actions=FLOOD
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:58"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_453
#AT_START_454
at_fn_group_banner 454 'learn.at:68' \
  "learning action - satisfied prerequisites" "      " 25
at_xfail=no
(
  $as_echo "454. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

cat >flows.txt <<'_ATEOF'
actions=learn(eth_type=0x800,load:5->NXM_OF_IP_DST[])
ip,actions=learn(load:NXM_OF_IP_DST[]->NXM_NX_REG1[])
ip,actions=learn(eth_type=0x800,OXM_OF_IPV4_DST[])
_ATEOF

{ set +x
$as_echo "$at_srcdir/learn.at:74: ovs-ofctl parse-flows flows.txt"
at_fn_check_prepare_trace "learn.at:74"
( $at_check_trace; ovs-ofctl parse-flows flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "usable protocols: any
chosen protocol: OpenFlow10-table_id
OFPT_FLOW_MOD (xid=0x1): ADD actions=learn(table=1,eth_type=0x800,load:0x5->NXM_OF_IP_DST[])
OFPT_FLOW_MOD (xid=0x2): ADD ip actions=learn(table=1,load:NXM_OF_IP_DST[]->NXM_NX_REG1[])
OFPT_FLOW_MOD (xid=0x3): ADD ip actions=learn(table=1,eth_type=0x800,NXM_OF_IP_DST[])
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:74"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_454
#AT_START_455
at_fn_group_banner 455 'learn.at:83' \
  "learning action - invalid prerequisites" "        " 25
at_xfail=no
(
  $as_echo "455. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/learn.at:84: ovs-ofctl parse-flow 'actions=learn(load:5->NXM_OF_IP_DST[])'"
at_fn_check_prepare_trace "learn.at:84"
( $at_check_trace; ovs-ofctl parse-flow 'actions=learn(load:5->NXM_OF_IP_DST[])'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/learn.at:84"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/learn.at:86: sed -e 's/.*|meta_flow|WARN|//' < stderr"
at_fn_check_prepare_notrace 'a shell pipeline' "learn.at:86"
( $at_check_trace; sed -e 's/.*|meta_flow|WARN|//' < stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "destination field ip_dst lacks correct prerequisites
ovs-ofctl: actions are invalid with specified match (OFPBAC_MATCH_INCONSISTENT)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:86"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/learn.at:90: ovs-ofctl parse-flow 'actions=learn(load:NXM_OF_IP_DST[]->NXM_NX_REG1[])'"
at_fn_check_prepare_trace "learn.at:90"
( $at_check_trace; ovs-ofctl parse-flow 'actions=learn(load:NXM_OF_IP_DST[]->NXM_NX_REG1[])'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/learn.at:90"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/learn.at:92: sed -e 's/.*|meta_flow|WARN|//' < stderr"
at_fn_check_prepare_notrace 'a shell pipeline' "learn.at:92"
( $at_check_trace; sed -e 's/.*|meta_flow|WARN|//' < stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "source field ip_dst lacks correct prerequisites
ovs-ofctl: actions are invalid with specified match (OFPBAC_MATCH_INCONSISTENT)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:92"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_455
#AT_START_456
at_fn_group_banner 456 'learn.at:98' \
  "learning action - too-long immediate value" "     " 25
at_xfail=no
(
  $as_echo "456. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/learn.at:100: ovs-ofctl parse-flow 'actions=learn(load:0x1fedbca9876543210fedbca9876543210->NXM_NX_IPV6_DST[])'"
at_fn_check_prepare_trace "learn.at:100"
( $at_check_trace; ovs-ofctl parse-flow 'actions=learn(load:0x1fedbca9876543210fedbca9876543210->NXM_NX_IPV6_DST[])'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: 0x1fedbca9876543210fedbca9876543210->NXM_NX_IPV6_DST[]: value does not fit into 128 bits
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/learn.at:100"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/learn.at:105: ovs-ofctl parse-flow 'actions=learn(load:0xfedbca9876543210fedbca9876543210->NXM_NX_IPV6_DST[])'"
at_fn_check_prepare_trace "learn.at:105"
( $at_check_trace; ovs-ofctl parse-flow 'actions=learn(load:0xfedbca9876543210fedbca9876543210->NXM_NX_IPV6_DST[])'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/learn.at:105"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/learn.at:106: sed -e 's/.*|meta_flow|WARN|//' < stderr"
at_fn_check_prepare_notrace 'a shell pipeline' "learn.at:106"
( $at_check_trace; sed -e 's/.*|meta_flow|WARN|//' < stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "destination field ipv6_dst lacks correct prerequisites
ovs-ofctl: actions are invalid with specified match (OFPBAC_MATCH_INCONSISTENT)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:106"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_456
#AT_START_457
at_fn_group_banner 457 'learn.at:112' \
  "learning action - standard VLAN+MAC learning" "   " 25
at_xfail=no
(
  $as_echo "457. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/learn.at:113: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "learn.at:113"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:113"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/learn.at:113: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "learn.at:113"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:113"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/learn.at:113: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "learn.at:113"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:113"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/learn.at:113: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "learn.at:113"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:113"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/learn.at:113: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "learn.at:113"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:113"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/learn.at:113: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "learn.at:113"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:113"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/learn.at:113: add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1 -- \\
   add-port br0 p2 -- set Interface p2 type=dummy ofport_request=2 -- \\
   add-port br0 p3 -- set Interface p3 type=dummy ofport_request=3 "
at_fn_check_prepare_notrace 'an embedded newline' "learn.at:113"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1 -- \
   add-port br0 p2 -- set Interface p2 type=dummy ofport_request=2 -- \
   add-port br0 p3 -- set Interface p3 type=dummy ofport_request=3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:113"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Set up flow table for VLAN+MAC learning.
cat >flows.txt <<'_ATEOF'

table=0 actions=learn(table=1, hard_timeout=60, NXM_OF_VLAN_TCI[0..11], NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[], output:NXM_OF_IN_PORT[]), resubmit(,1)
table=1 priority=0 actions=flood
_ATEOF

{ set +x
$as_echo "$at_srcdir/learn.at:122: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "learn.at:122"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:122"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Trace an ARP packet arriving on port 3, to create a MAC learning entry.
flow="in_port(3),eth(src=50:54:00:00:00:05,dst=ff:ff:ff:ff:ff:ff),eth_type(0x0806),arp(sip=192.168.0.1,tip=192.168.0.2,op=1,sha=50:54:00:00:00:05,tha=00:00:00:00:00:00)"
{ set +x
$as_echo "$at_srcdir/learn.at:126: ovs-appctl ofproto/trace ovs-dummy \"\$flow\" -generate"
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\" -generate" "learn.at:126"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow" -generate
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:126"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

actual=`tail -1 stdout | sed 's/Datapath actions: //'`

expected="1,2,100"
{ set +x
$as_echo "$at_srcdir/learn.at:130: ovs-dpctl normalize-actions \"\$flow\" \"\$expected\""
at_fn_check_prepare_dynamic "ovs-dpctl normalize-actions \"$flow\" \"$expected\"" "learn.at:130"
( $at_check_trace; ovs-dpctl normalize-actions "$flow" "$expected"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:130"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

mv stdout expout
{ set +x
$as_echo "$at_srcdir/learn.at:132: ovs-dpctl normalize-actions \"\$flow\" \"\$actual\""
at_fn_check_prepare_dynamic "ovs-dpctl normalize-actions \"$flow\" \"$actual\"" "learn.at:132"
( $at_check_trace; ovs-dpctl normalize-actions "$flow" "$actual"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:132"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Check for the MAC learning entry.
{ set +x
$as_echo "$at_srcdir/learn.at:135: ovs-ofctl dump-flows br0 table=1 --no-stats --sort"
at_fn_check_prepare_trace "learn.at:135"
( $at_check_trace; ovs-ofctl dump-flows br0 table=1 --no-stats --sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " table=1, priority=0 actions=FLOOD
 table=1, hard_timeout=60, vlan_tci=0x0000/0x0fff,dl_dst=50:54:00:00:00:05 actions=output:3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:135"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Trace a packet arrival destined for the learned MAC.
# (This will also learn a MAC.)
{ set +x
$as_echo "$at_srcdir/learn.at:142: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:06,dst=50:54:00:00:00:05),eth_type(0x0806),arp(sip=192.168.0.2,tip=192.168.0.1,op=2,sha=50:54:00:00:00:06,tha=50:54:00:00:00:05)' -generate"
at_fn_check_prepare_trace "learn.at:142"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:06,dst=50:54:00:00:00:05),eth_type(0x0806),arp(sip=192.168.0.2,tip=192.168.0.1,op=2,sha=50:54:00:00:00:06,tha=50:54:00:00:00:05)' -generate
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:142"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/learn.at:143: tail -1 stdout"
at_fn_check_prepare_trace "learn.at:143"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:143"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Check for both MAC learning entries.
{ set +x
$as_echo "$at_srcdir/learn.at:147: ovs-ofctl dump-flows br0 table=1 --no-stats | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "learn.at:147"
( $at_check_trace; ovs-ofctl dump-flows br0 table=1 --no-stats | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " table=1, hard_timeout=60, vlan_tci=0x0000/0x0fff,dl_dst=50:54:00:00:00:05 actions=output:3
 table=1, hard_timeout=60, vlan_tci=0x0000/0x0fff,dl_dst=50:54:00:00:00:06 actions=output:1
 table=1, priority=0 actions=FLOOD
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:147"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Trace a packet arrival that updates the first learned MAC entry.
flow="in_port(2),eth(src=50:54:00:00:00:05,dst=ff:ff:ff:ff:ff:ff),eth_type(0x0806),arp(sip=192.168.0.1,tip=192.168.0.2,op=1,sha=50:54:00:00:00:05,tha=00:00:00:00:00:00)"
{ set +x
$as_echo "$at_srcdir/learn.at:155: ovs-appctl ofproto/trace ovs-dummy \"\$flow\" -generate"
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\" -generate" "learn.at:155"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow" -generate
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:155"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

actual=`tail -1 stdout | sed 's/Datapath actions: //'`

expected="1,3,100"
{ set +x
$as_echo "$at_srcdir/learn.at:159: ovs-dpctl normalize-actions \"\$flow\" \"\$expected\""
at_fn_check_prepare_dynamic "ovs-dpctl normalize-actions \"$flow\" \"$expected\"" "learn.at:159"
( $at_check_trace; ovs-dpctl normalize-actions "$flow" "$expected"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:159"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

mv stdout expout
{ set +x
$as_echo "$at_srcdir/learn.at:161: ovs-dpctl normalize-actions \"\$flow\" \"\$actual\""
at_fn_check_prepare_dynamic "ovs-dpctl normalize-actions \"$flow\" \"$actual\"" "learn.at:161"
( $at_check_trace; ovs-dpctl normalize-actions "$flow" "$actual"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:161"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Check that the MAC learning entry was updated.
{ set +x
$as_echo "$at_srcdir/learn.at:164: ovs-ofctl dump-flows br0 table=1 --no-stats | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "learn.at:164"
( $at_check_trace; ovs-ofctl dump-flows br0 table=1 --no-stats | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " table=1, hard_timeout=60, vlan_tci=0x0000/0x0fff,dl_dst=50:54:00:00:00:05 actions=output:2
 table=1, hard_timeout=60, vlan_tci=0x0000/0x0fff,dl_dst=50:54:00:00:00:06 actions=output:1
 table=1, priority=0 actions=FLOOD
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:164"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/learn.at:169: check_logs "
at_fn_check_prepare_trace "learn.at:169"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:169"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/learn.at:169: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "learn.at:169"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:169"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/learn.at:169: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "learn.at:169"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:169"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "learn.at:169: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "learn.at:169: wait failed" >&5

    $as_echo "learn.at:169" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/learn.at:169"
fi

   { set +x
$as_echo "$at_srcdir/learn.at:169: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "learn.at:169"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:169"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/learn.at:169: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "learn.at:169"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:169"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "learn.at:169: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "learn.at:169: wait failed" >&5

    $as_echo "learn.at:169" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/learn.at:169"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_457
#AT_START_458
at_fn_group_banner 458 'learn.at:178' \
  "learning action - learn refreshes hard_age" "     " 25
at_xfail=no
(
  $as_echo "458. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/learn.at:179: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "learn.at:179"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:179"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/learn.at:179: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "learn.at:179"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:179"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/learn.at:179: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "learn.at:179"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:179"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/learn.at:179: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "learn.at:179"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:179"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/learn.at:179: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "learn.at:179"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:179"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/learn.at:179: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "learn.at:179"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:179"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/learn.at:179: add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1 -- \\
   add-port br0 p2 -- set Interface p2 type=dummy ofport_request=2 -- \\
   add-port br0 p3 -- set Interface p3 type=dummy ofport_request=3 "
at_fn_check_prepare_notrace 'an embedded newline' "learn.at:179"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1 -- \
   add-port br0 p2 -- set Interface p2 type=dummy ofport_request=2 -- \
   add-port br0 p3 -- set Interface p3 type=dummy ofport_request=3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:179"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



ovs-appctl time/stop

# Set up flow table for MAC learning.
cat >flows.txt <<'_ATEOF'

table=0 actions=learn(table=1, hard_timeout=10, NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[], output:NXM_OF_IN_PORT[]), resubmit(,1)
table=1 priority=0 actions=flood
_ATEOF

{ set +x
$as_echo "$at_srcdir/learn.at:191: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "learn.at:191"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Trace an ICMP packet arriving on port 3, to create a MAC learning entry.
flow="in_port(3),eth(src=50:54:00:00:00:07,dst=50:54:00:00:00:05),eth_type(0x0800),ipv4(src=192.168.0.2,dst=192.168.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=0,code=0)"
{ set +x
$as_echo "$at_srcdir/learn.at:195: ovs-appctl ofproto/trace ovs-dummy \"\$flow\" -generate"
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\" -generate" "learn.at:195"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow" -generate
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:195"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

actual=`tail -1 stdout | sed 's/Datapath actions: //'`

expected="1,2,100"
{ set +x
$as_echo "$at_srcdir/learn.at:199: ovs-dpctl normalize-actions \"\$flow\" \"\$expected\""
at_fn_check_prepare_dynamic "ovs-dpctl normalize-actions \"$flow\" \"$expected\"" "learn.at:199"
( $at_check_trace; ovs-dpctl normalize-actions "$flow" "$expected"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:199"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

mv stdout expout
{ set +x
$as_echo "$at_srcdir/learn.at:201: ovs-dpctl normalize-actions \"\$flow\" \"\$actual\""
at_fn_check_prepare_dynamic "ovs-dpctl normalize-actions \"$flow\" \"$actual\"" "learn.at:201"
( $at_check_trace; ovs-dpctl normalize-actions "$flow" "$actual"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:201"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Check that the MAC learning entry appeared.
{ set +x
$as_echo "$at_srcdir/learn.at:204: ovs-ofctl dump-flows br0 table=1 --no-stats | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "learn.at:204"
( $at_check_trace; ovs-ofctl dump-flows br0 table=1 --no-stats | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " table=1, hard_timeout=10, dl_dst=50:54:00:00:00:07 actions=output:3
 table=1, priority=0 actions=FLOOD
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:204"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# For 25 seconds, make sure that the MAC learning entry doesn't
# disappear as long as we refresh it every second.
for i in 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; do
    ovs-appctl time/warp 1000
    { set +x
$as_echo "$at_srcdir/learn.at:213: ovs-appctl ofproto/trace ovs-dummy \"\$flow\" -generate"
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\" -generate" "learn.at:213"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow" -generate
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:213"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


    # Check that the entry is there.
    { set +x
$as_echo "$at_srcdir/learn.at:216: ovs-ofctl dump-flows br0 table=1"
at_fn_check_prepare_trace "learn.at:216"
( $at_check_trace; ovs-ofctl dump-flows br0 table=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:216"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/learn.at:217: ofctl_strip < stdout | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "learn.at:217"
( $at_check_trace; ofctl_strip < stdout | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " table=1, hard_timeout=10, dl_dst=50:54:00:00:00:07 actions=output:3
 table=1, priority=0 actions=FLOOD
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:217"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


    if test $i != 1; then
        # Check that hard_age has appeared.  We need to do this separately
        # from the above check because ofctl_strip removes it.  dump-flows
        # only prints hard_age when it is different from the flow's duration
        # (that is, the number of seconds from the time it was created),
        # so we only check for it after we've refreshed the flow once.
        { set +x
$as_echo "$at_srcdir/learn.at:229: grep dl_dst=50:54:00:00:00:07 stdout | grep -c hard_age"
at_fn_check_prepare_notrace 'a shell pipeline' "learn.at:229"
( $at_check_trace; grep dl_dst=50:54:00:00:00:07 stdout | grep -c hard_age
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:229"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    fi
done

# Make sure that 15 seconds without refreshing makes the flow time out.
ovs-appctl time/warp 15000 5000
sleep 1
{ set +x
$as_echo "$at_srcdir/learn.at:238: ovs-ofctl dump-flows br0 table=1 --no-stats | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "learn.at:238"
( $at_check_trace; ovs-ofctl dump-flows br0 table=1 --no-stats | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " table=1, priority=0 actions=FLOOD
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:238"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/learn.at:241: check_logs "
at_fn_check_prepare_trace "learn.at:241"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:241"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/learn.at:241: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "learn.at:241"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:241"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/learn.at:241: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "learn.at:241"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:241"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "learn.at:241: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "learn.at:241: wait failed" >&5

    $as_echo "learn.at:241" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/learn.at:241"
fi

   { set +x
$as_echo "$at_srcdir/learn.at:241: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "learn.at:241"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:241"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/learn.at:241: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "learn.at:241"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:241"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "learn.at:241: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "learn.at:241: wait failed" >&5

    $as_echo "learn.at:241" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/learn.at:241"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_458
#AT_START_459
at_fn_group_banner 459 'learn.at:244' \
  "learning action - TCPv4 port learning" "          " 25
at_xfail=no
(
  $as_echo "459. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/learn.at:245: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "learn.at:245"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:245"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/learn.at:245: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "learn.at:245"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:245"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/learn.at:245: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "learn.at:245"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:245"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/learn.at:245: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "learn.at:245"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:245"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/learn.at:245: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "learn.at:245"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:245"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/learn.at:245: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "learn.at:245"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:245"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/learn.at:245: add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy -- \\
   add-port br0 p2 -- set Interface p2 type=dummy -- \\
   add-port br0 p3 -- set Interface p3 type=dummy "
at_fn_check_prepare_notrace 'an embedded newline' "learn.at:245"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy -- \
   add-port br0 p2 -- set Interface p2 type=dummy -- \
   add-port br0 p3 -- set Interface p3 type=dummy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:245"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Set up flow table for TCPv4 port learning.
{ set +x
$as_echo "$at_srcdir/learn.at:250: ovs-ofctl add-flow br0 'table=0 tcp actions=learn(table=1, hard_timeout=60, eth_type=0x800, nw_proto=6, NXM_OF_IP_SRC[]=NXM_OF_IP_DST[], NXM_OF_IP_DST[]=NXM_OF_IP_SRC[], NXM_OF_TCP_SRC[]=NXM_OF_TCP_DST[], NXM_OF_TCP_DST[]=NXM_OF_TCP_SRC[]), flood'"
at_fn_check_prepare_trace "learn.at:250"
( $at_check_trace; ovs-ofctl add-flow br0 'table=0 tcp actions=learn(table=1, hard_timeout=60, eth_type=0x800, nw_proto=6, NXM_OF_IP_SRC[]=NXM_OF_IP_DST[], NXM_OF_IP_DST[]=NXM_OF_IP_SRC[], NXM_OF_TCP_SRC[]=NXM_OF_TCP_DST[], NXM_OF_TCP_DST[]=NXM_OF_TCP_SRC[]), flood'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:250"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Trace a TCPv4 packet arriving on port 3.
flow="in_port(3),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:06),eth_type(0x0800),ipv4(src=192.168.0.2,dst=192.168.0.1,proto=6,tos=0,ttl=64,frag=no),tcp(src=40000,dst=80)"
{ set +x
$as_echo "$at_srcdir/learn.at:254: ovs-appctl ofproto/trace ovs-dummy \"\$flow\" -generate"
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\" -generate" "learn.at:254"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow" -generate
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:254"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

actual=`tail -1 stdout | sed 's/Datapath actions: //'`

expected="1,2,100"
{ set +x
$as_echo "$at_srcdir/learn.at:258: ovs-dpctl normalize-actions \"\$flow\" \"\$expected\""
at_fn_check_prepare_dynamic "ovs-dpctl normalize-actions \"$flow\" \"$expected\"" "learn.at:258"
( $at_check_trace; ovs-dpctl normalize-actions "$flow" "$expected"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:258"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

mv stdout expout
{ set +x
$as_echo "$at_srcdir/learn.at:260: ovs-dpctl normalize-actions \"\$flow\" \"\$actual\""
at_fn_check_prepare_dynamic "ovs-dpctl normalize-actions \"$flow\" \"$actual\"" "learn.at:260"
( $at_check_trace; ovs-dpctl normalize-actions "$flow" "$actual"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:260"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Check for the learning entry.
{ set +x
$as_echo "$at_srcdir/learn.at:263: ovs-ofctl dump-flows br0 table=1 --no-stats | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "learn.at:263"
( $at_check_trace; ovs-ofctl dump-flows br0 table=1 --no-stats | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " table=1, hard_timeout=60, tcp,nw_src=192.168.0.1,nw_dst=192.168.0.2,tp_src=80,tp_dst=40000 actions=drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/learn.at:266: check_logs "
at_fn_check_prepare_trace "learn.at:266"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:266"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/learn.at:266: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "learn.at:266"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:266"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/learn.at:266: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "learn.at:266"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:266"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "learn.at:266: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "learn.at:266: wait failed" >&5

    $as_echo "learn.at:266" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/learn.at:266"
fi

   { set +x
$as_echo "$at_srcdir/learn.at:266: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "learn.at:266"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:266"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/learn.at:266: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "learn.at:266"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:266"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "learn.at:266: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "learn.at:266: wait failed" >&5

    $as_echo "learn.at:266" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/learn.at:266"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_459
#AT_START_460
at_fn_group_banner 460 'learn.at:269' \
  "learning action - TCPv6 port learning" "          " 25
at_xfail=no
(
  $as_echo "460. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/learn.at:270: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "learn.at:270"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:270"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/learn.at:270: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "learn.at:270"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:270"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/learn.at:270: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "learn.at:270"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:270"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/learn.at:270: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "learn.at:270"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:270"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/learn.at:270: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "learn.at:270"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:270"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/learn.at:270: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "learn.at:270"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:270"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/learn.at:270: add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy -- \\
   add-port br0 p2 -- set Interface p2 type=dummy -- \\
   add-port br0 p3 -- set Interface p3 type=dummy "
at_fn_check_prepare_notrace 'an embedded newline' "learn.at:270"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy -- \
   add-port br0 p2 -- set Interface p2 type=dummy -- \
   add-port br0 p3 -- set Interface p3 type=dummy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:270"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Set up flow table for TCPv6 port learning.
# Also add a 128-bit-wide "load" action and a 128-bit literal match to check
# that they work.
{ set +x
$as_echo "$at_srcdir/learn.at:277: ovs-ofctl add-flow br0 'table=0 tcp6 actions=learn(table=1, hard_timeout=60, eth_type=0x86dd, nw_proto=6, NXM_NX_IPV6_SRC[]=NXM_NX_IPV6_DST[], ipv6_dst=2001:0db8:85a3:0000:0000:8a2e:0370:7334, NXM_OF_TCP_SRC[]=NXM_OF_TCP_DST[], NXM_OF_TCP_DST[]=NXM_OF_TCP_SRC[], load(0x20010db885a308d313198a2e03707348->NXM_NX_IPV6_DST[])), flood'"
at_fn_check_prepare_trace "learn.at:277"
( $at_check_trace; ovs-ofctl add-flow br0 'table=0 tcp6 actions=learn(table=1, hard_timeout=60, eth_type=0x86dd, nw_proto=6, NXM_NX_IPV6_SRC[]=NXM_NX_IPV6_DST[], ipv6_dst=2001:0db8:85a3:0000:0000:8a2e:0370:7334, NXM_OF_TCP_SRC[]=NXM_OF_TCP_DST[], NXM_OF_TCP_DST[]=NXM_OF_TCP_SRC[], load(0x20010db885a308d313198a2e03707348->NXM_NX_IPV6_DST[])), flood'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:277"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Trace a TCPv6 packet arriving on port 3.
flow="in_port(3),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:06),eth_type(0x86dd),ipv6(src=fec0::2,dst=fec0::1,label=0,proto=6,tclass=0,hlimit=255,frag=no),tcp(src=40000,dst=80)"
{ set +x
$as_echo "$at_srcdir/learn.at:281: ovs-appctl ofproto/trace ovs-dummy \"\$flow\" -generate"
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\" -generate" "learn.at:281"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow" -generate
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:281"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

actual=`tail -1 stdout | sed 's/Datapath actions: //'`

expected="1,2,100"
{ set +x
$as_echo "$at_srcdir/learn.at:285: ovs-dpctl normalize-actions \"\$flow\" \"\$expected\""
at_fn_check_prepare_dynamic "ovs-dpctl normalize-actions \"$flow\" \"$expected\"" "learn.at:285"
( $at_check_trace; ovs-dpctl normalize-actions "$flow" "$expected"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:285"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

mv stdout expout
{ set +x
$as_echo "$at_srcdir/learn.at:287: ovs-dpctl normalize-actions \"\$flow\" \"\$actual\""
at_fn_check_prepare_dynamic "ovs-dpctl normalize-actions \"$flow\" \"$actual\"" "learn.at:287"
( $at_check_trace; ovs-dpctl normalize-actions "$flow" "$actual"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:287"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Check for the learning entry.
{ set +x
$as_echo "$at_srcdir/learn.at:290: ovs-ofctl dump-flows br0 --no-stats | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "learn.at:290"
( $at_check_trace; ovs-ofctl dump-flows br0 --no-stats | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " table=1, hard_timeout=60, tcp6,ipv6_src=fec0::1,ipv6_dst=2001:db8:85a3::8a2e:370:7334,tp_src=80,tp_dst=40000 actions=load:0x13198a2e03707348->NXM_NX_IPV6_DST[0..63],load:0x20010db885a308d3->NXM_NX_IPV6_DST[64..127]
 tcp6 actions=learn(table=1,hard_timeout=60,eth_type=0x86dd,nw_proto=6,NXM_NX_IPV6_SRC[]=NXM_NX_IPV6_DST[],ipv6_dst=2001:db8:85a3::8a2e:370:7334,NXM_OF_TCP_SRC[]=NXM_OF_TCP_DST[],NXM_OF_TCP_DST[]=NXM_OF_TCP_SRC[],load:0x20010db885a308d313198a2e03707348->NXM_NX_IPV6_DST[]),FLOOD
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:290"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/learn.at:294: check_logs "
at_fn_check_prepare_trace "learn.at:294"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:294"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/learn.at:294: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "learn.at:294"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:294"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/learn.at:294: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "learn.at:294"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:294"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "learn.at:294: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "learn.at:294: wait failed" >&5

    $as_echo "learn.at:294" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/learn.at:294"
fi

   { set +x
$as_echo "$at_srcdir/learn.at:294: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "learn.at:294"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:294"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/learn.at:294: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "learn.at:294"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:294"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "learn.at:294: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "learn.at:294: wait failed" >&5

    $as_echo "learn.at:294" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/learn.at:294"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_460
#AT_START_461
at_fn_group_banner 461 'learn.at:300' \
  "learning action - self-modifying flow" "          " 25
at_xfail=no
(
  $as_echo "461. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/learn.at:301: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "learn.at:301"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:301"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/learn.at:301: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "learn.at:301"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:301"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/learn.at:301: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "learn.at:301"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:301"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/learn.at:301: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "learn.at:301"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:301"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/learn.at:301: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "learn.at:301"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:301"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/learn.at:301: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "learn.at:301"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:301"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/learn.at:301: add_of_br 0  "
at_fn_check_prepare_trace "learn.at:301"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:301"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3

ovs-appctl time/stop
# Set up flow table for TCPv4 port learning.
{ set +x
$as_echo "$at_srcdir/learn.at:306: ovs-ofctl add-flow br0 'actions=load:3->NXM_NX_REG0[0..15],learn(table=0,priority=65535,NXM_OF_ETH_SRC[],NXM_OF_VLAN_TCI[0..11],output:NXM_NX_REG0[0..15]),output:2'"
at_fn_check_prepare_trace "learn.at:306"
( $at_check_trace; ovs-ofctl add-flow br0 'actions=load:3->NXM_NX_REG0[0..15],learn(table=0,priority=65535,NXM_OF_ETH_SRC[],NXM_OF_VLAN_TCI[0..11],output:NXM_NX_REG0[0..15]),output:2'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:306"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Trace some packets arriving.  The particular packets don't matter.
for i in 1 2 3 4 5 6 7 8 9 10; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'
    ovs-appctl time/warp 10
    if [ $i -eq 1 ]; then
        sleep 1
    fi
done

# Check for the learning entry.
ovs-appctl time/warp 1000
{ set +x
$as_echo "$at_srcdir/learn.at:319: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "learn.at:319"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " n_packets=1, n_bytes=54, actions=load:0x3->NXM_NX_REG0[0..15],learn(table=0,priority=65535,NXM_OF_ETH_SRC[],NXM_OF_VLAN_TCI[0..11],output:NXM_NX_REG0[0..15]),output:2
 n_packets=9, n_bytes=486, priority=65535,vlan_tci=0x0000/0x0fff,dl_src=50:54:00:00:00:05 actions=output:3
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:319"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Check that the first packet went out port 2 and the rest out port 3.
{ set +x
$as_echo "$at_srcdir/learn.at:326: (ovs-ofctl dump-ports br0 2; ovs-ofctl dump-ports br0 3) | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "learn.at:326"
( $at_check_trace; (ovs-ofctl dump-ports br0 2; ovs-ofctl dump-ports br0 3) | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_PORT reply: 1 ports
  port  2: rx pkts=0, bytes=0, drop=?, errs=?, frame=?, over=?, crc=?
           tx pkts=1, bytes=54, drop=?, errs=?, coll=?
OFPST_PORT reply: 1 ports
  port  3: rx pkts=0, bytes=0, drop=?, errs=?, frame=?, over=?, crc=?
           tx pkts=9, bytes=486, drop=?, errs=?, coll=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:326"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/learn.at:336: check_logs "
at_fn_check_prepare_trace "learn.at:336"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:336"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/learn.at:336: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "learn.at:336"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:336"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/learn.at:336: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "learn.at:336"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:336"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "learn.at:336: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "learn.at:336: wait failed" >&5

    $as_echo "learn.at:336" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/learn.at:336"
fi

   { set +x
$as_echo "$at_srcdir/learn.at:336: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "learn.at:336"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:336"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/learn.at:336: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "learn.at:336"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:336"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "learn.at:336: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "learn.at:336: wait failed" >&5

    $as_echo "learn.at:336" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/learn.at:336"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_461
#AT_START_462
at_fn_group_banner 462 'learn.at:342' \
  "learning action - self-modifying flow with idle_timeout" "" 25
at_xfail=no
(
  $as_echo "462. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/learn.at:343: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "learn.at:343"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:343"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/learn.at:343: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "learn.at:343"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:343"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/learn.at:343: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "learn.at:343"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:343"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/learn.at:343: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "learn.at:343"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:343"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/learn.at:343: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "learn.at:343"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:343"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/learn.at:343: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "learn.at:343"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:343"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/learn.at:343: add_of_br 0  "
at_fn_check_prepare_trace "learn.at:343"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:343"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3

ovs-appctl time/stop
# Set up flow table for TCPv4 port learning.
{ set +x
$as_echo "$at_srcdir/learn.at:348: ovs-ofctl add-flow br0 'actions=load:3->NXM_NX_REG0[0..15],learn(table=0,idle_timeout=5,priority=65535,NXM_OF_ETH_SRC[],NXM_OF_VLAN_TCI[0..11],output:NXM_NX_REG0[0..15]),output:2'"
at_fn_check_prepare_trace "learn.at:348"
( $at_check_trace; ovs-ofctl add-flow br0 'actions=load:3->NXM_NX_REG0[0..15],learn(table=0,idle_timeout=5,priority=65535,NXM_OF_ETH_SRC[],NXM_OF_VLAN_TCI[0..11],output:NXM_NX_REG0[0..15]),output:2'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:348"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Trace some packets arriving.  The particular packets don't matter.
for i in `seq 1 10`; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'
    ovs-appctl time/warp 10
    if [ $i -eq 1 ]; then
        sleep 1
    fi
done

# Trace some packets arriving.  This is is a different flow from the previous.
# Note that we advance time by 1 second between each packet here.
for i in `seq 1 10`; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:06,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'
    ovs-appctl time/warp 1000
    # Note: netdev-dummy/receive merely queues the packet.
    # We need to wait for other thread to process the packet
    # and update the flow's 'used' for the packet.
    # (i % 3 == 0) below is somehow arbitrary but chosen to ensure
    # that we update the flow's 'used' frequently enough to prevent
    # idle_timeout.
    if [ $i -eq 1 -o $((i % 3)) -eq 0 ]; then
        sleep 1
    fi
done

# Check that the first packet of each flow went out port 2 and the rest out
# port 3.
{ set +x
$as_echo "$at_srcdir/learn.at:377: (ovs-ofctl dump-ports br0 2; ovs-ofctl dump-ports br0 3) | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "learn.at:377"
( $at_check_trace; (ovs-ofctl dump-ports br0 2; ovs-ofctl dump-ports br0 3) | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_PORT reply: 1 ports
  port  2: rx pkts=0, bytes=0, drop=?, errs=?, frame=?, over=?, crc=?
           tx pkts=2, bytes=108, drop=?, errs=?, coll=?
OFPST_PORT reply: 1 ports
  port  3: rx pkts=0, bytes=0, drop=?, errs=?, frame=?, over=?, crc=?
           tx pkts=18, bytes=972, drop=?, errs=?, coll=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:377"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Check for the learning entry.
ovs-appctl time/warp 1000
{ set +x
$as_echo "$at_srcdir/learn.at:389: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "learn.at:389"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " n_packets=2, n_bytes=108, actions=load:0x3->NXM_NX_REG0[0..15],learn(table=0,idle_timeout=5,priority=65535,NXM_OF_ETH_SRC[],NXM_OF_VLAN_TCI[0..11],output:NXM_NX_REG0[0..15]),output:2
 n_packets=9, n_bytes=486, idle_timeout=5, priority=65535,vlan_tci=0x0000/0x0fff,dl_src=50:54:00:00:00:06 actions=output:3
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:389"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/learn.at:394: check_logs "
at_fn_check_prepare_trace "learn.at:394"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:394"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/learn.at:394: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "learn.at:394"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:394"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/learn.at:394: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "learn.at:394"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:394"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "learn.at:394: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "learn.at:394: wait failed" >&5

    $as_echo "learn.at:394" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/learn.at:394"
fi

   { set +x
$as_echo "$at_srcdir/learn.at:394: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "learn.at:394"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:394"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/learn.at:394: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "learn.at:394"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:394"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "learn.at:394: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "learn.at:394: wait failed" >&5

    $as_echo "learn.at:394" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/learn.at:394"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_462
#AT_START_463
at_fn_group_banner 463 'learn.at:400' \
  "learning action - self-modifying flow with hard_timeout" "" 25
at_xfail=no
(
  $as_echo "463. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/learn.at:401: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "learn.at:401"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:401"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/learn.at:401: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "learn.at:401"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:401"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/learn.at:401: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "learn.at:401"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:401"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/learn.at:401: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "learn.at:401"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:401"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/learn.at:401: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "learn.at:401"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:401"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/learn.at:401: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "learn.at:401"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:401"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/learn.at:401: add_of_br 0  "
at_fn_check_prepare_trace "learn.at:401"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:401"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3

ovs-appctl time/stop
# Set up flow table for TCPv4 port learning.
{ set +x
$as_echo "$at_srcdir/learn.at:406: ovs-ofctl add-flow br0 'actions=load:3->NXM_NX_REG0[0..15],learn(table=0,hard_timeout=10,priority=65535,NXM_OF_ETH_SRC[],NXM_OF_VLAN_TCI[0..11],output:NXM_NX_REG0[0..15]),output:2'"
at_fn_check_prepare_trace "learn.at:406"
( $at_check_trace; ovs-ofctl add-flow br0 'actions=load:3->NXM_NX_REG0[0..15],learn(table=0,hard_timeout=10,priority=65535,NXM_OF_ETH_SRC[],NXM_OF_VLAN_TCI[0..11],output:NXM_NX_REG0[0..15]),output:2'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:406"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Trace some packets arriving.  The particular packets don't matter.
for i in `seq 1 10`; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'
    if [ $i -eq 1 ]; then
        sleep 1
    fi
    ovs-appctl time/warp 10
done

# Check that the first packet of each flow went out port 2 and the rest out
# port 3.
{ set +x
$as_echo "$at_srcdir/learn.at:419: (ovs-ofctl dump-ports br0 2; ovs-ofctl dump-ports br0 3) | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "learn.at:419"
( $at_check_trace; (ovs-ofctl dump-ports br0 2; ovs-ofctl dump-ports br0 3) | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_PORT reply: 1 ports
  port  2: rx pkts=0, bytes=0, drop=?, errs=?, frame=?, over=?, crc=?
           tx pkts=1, bytes=54, drop=?, errs=?, coll=?
OFPST_PORT reply: 1 ports
  port  3: rx pkts=0, bytes=0, drop=?, errs=?, frame=?, over=?, crc=?
           tx pkts=9, bytes=486, drop=?, errs=?, coll=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:419"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Trace some packets arriving.  This is is a different flow from the previous.
# Note that we advance time by 2 second between each packet here.
for i in `seq 1 10`; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:06,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'
    # Note: hard_timeout should fire immediately after #6 packet.
    # #7 packet re-install the flow and the following 3 packets
    # (#8, #9, #10) use the flow.
    # it's difficult to predict the exact timing of rule expiry
    # because it's affected by flow dumper thread via udpif_dump_seq.
    # hard_timeout value for this test was chosen to overcome the uncertainty.
    #
    # receive #1  learn, install flow with hard_timeout=10
    #  sleep to ensure the flow installation
    #  (warp, timeout left 8s)
    # receive #2   the learned flow
    #  (warp, timeout left 6s)
    # receive #3
    #  (warp, timeout left 4s)
    # receive #4
    #  (warp, timeout left 2s)
    # receive #5
    #  (warp, timeout left 0s)
    #  NOTE: OVS does not consider this expired yet.  cf. rule_expire()
    # receive #6
    #  (warp, timeout left -2s)
    #  sleep to ensure flow expiration
    # receive #7  learn, install flow with hard_timeout=10
    #  sleep to ensure the flow installation
    #  (warp, timeout left 8s)
    # receive #8
    #  (warp, timeout left 6s)
    # receive #9
    #  (warp, timeout left 4s)
    # receive #10
    #  (warp, timeout left 2s)
    if [ $i -eq 1 -o $i -eq 7 ]; then
        sleep 1
    fi
    ovs-appctl time/warp 2000
    if [ $i -eq 6 ]; then
        sleep 1
    fi
done

# Check that the first packet of each flow went out port 2 and the rest out
# port 3.
{ set +x
$as_echo "$at_srcdir/learn.at:475: (ovs-ofctl dump-ports br0 2; ovs-ofctl dump-ports br0 3) | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "learn.at:475"
( $at_check_trace; (ovs-ofctl dump-ports br0 2; ovs-ofctl dump-ports br0 3) | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_PORT reply: 1 ports
  port  2: rx pkts=0, bytes=0, drop=?, errs=?, frame=?, over=?, crc=?
           tx pkts=3, bytes=162, drop=?, errs=?, coll=?
OFPST_PORT reply: 1 ports
  port  3: rx pkts=0, bytes=0, drop=?, errs=?, frame=?, over=?, crc=?
           tx pkts=17, bytes=918, drop=?, errs=?, coll=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:475"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Check for the learning entry.
ovs-appctl time/warp 1000
sleep 1
{ set +x
$as_echo "$at_srcdir/learn.at:488: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "learn.at:488"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " n_packets=3, n_bytes=162, actions=load:0x3->NXM_NX_REG0[0..15],learn(table=0,hard_timeout=10,priority=65535,NXM_OF_ETH_SRC[],NXM_OF_VLAN_TCI[0..11],output:NXM_NX_REG0[0..15]),output:2
 n_packets=3, n_bytes=162, hard_timeout=10, priority=65535,vlan_tci=0x0000/0x0fff,dl_src=50:54:00:00:00:06 actions=output:3
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:488"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/learn.at:493: check_logs "
at_fn_check_prepare_trace "learn.at:493"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:493"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/learn.at:493: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "learn.at:493"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:493"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/learn.at:493: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "learn.at:493"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:493"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "learn.at:493: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "learn.at:493: wait failed" >&5

    $as_echo "learn.at:493" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/learn.at:493"
fi

   { set +x
$as_echo "$at_srcdir/learn.at:493: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "learn.at:493"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:493"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/learn.at:493: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "learn.at:493"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:493"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "learn.at:493: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "learn.at:493: wait failed" >&5

    $as_echo "learn.at:493" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/learn.at:493"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_463
#AT_START_464
at_fn_group_banner 464 'learn.at:496' \
  "learning action - fin_timeout feature" "          " 25
at_xfail=no
(
  $as_echo "464. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

# This is a totally artificial use of the "learn" action.  The only purpose
# is to check that specifying fin_idle_timeout or fin_hard_timeout causes
# a corresponding fin_timeout action to end up in the learned flows.
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/learn.at:500: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "learn.at:500"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:500"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/learn.at:500: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "learn.at:500"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:500"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/learn.at:500: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "learn.at:500"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:500"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/learn.at:500: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "learn.at:500"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:500"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/learn.at:500: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "learn.at:500"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:500"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/learn.at:500: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "learn.at:500"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:500"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/learn.at:500: add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1 "
at_fn_check_prepare_trace "learn.at:500"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:500"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/learn.at:502: ovs-ofctl add-flow br0 'actions=learn(fin_hard_timeout=10, fin_idle_timeout=5, NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[], output:NXM_OF_IN_PORT[])'"
at_fn_check_prepare_trace "learn.at:502"
( $at_check_trace; ovs-ofctl add-flow br0 'actions=learn(fin_hard_timeout=10, fin_idle_timeout=5, NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[], output:NXM_OF_IN_PORT[])'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:502"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/learn.at:503: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=ff:ff:ff:ff:ff:ff),eth_type(0x0806),arp(sip=192.168.0.1,tip=192.168.0.2,op=1,sha=50:54:00:00:00:05,tha=00:00:00:00:00:00)' -generate"
at_fn_check_prepare_trace "learn.at:503"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=ff:ff:ff:ff:ff:ff),eth_type(0x0806),arp(sip=192.168.0.1,tip=192.168.0.2,op=1,sha=50:54:00:00:00:05,tha=00:00:00:00:00:00)' -generate
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:503"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/learn.at:504: ovs-ofctl dump-flows br0 table=1 --no-stats"
at_fn_check_prepare_trace "learn.at:504"
( $at_check_trace; ovs-ofctl dump-flows br0 table=1 --no-stats
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " table=1, dl_dst=50:54:00:00:00:05 actions=fin_timeout(idle_timeout=5,hard_timeout=10),output:1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:504"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/learn.at:507: check_logs "
at_fn_check_prepare_trace "learn.at:507"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:507"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/learn.at:507: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "learn.at:507"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:507"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/learn.at:507: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "learn.at:507"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:507"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "learn.at:507: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "learn.at:507: wait failed" >&5

    $as_echo "learn.at:507" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/learn.at:507"
fi

   { set +x
$as_echo "$at_srcdir/learn.at:507: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "learn.at:507"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:507"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/learn.at:507: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "learn.at:507"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:507"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "learn.at:507: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "learn.at:507: wait failed" >&5

    $as_echo "learn.at:507" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/learn.at:507"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_464
#AT_START_465
at_fn_group_banner 465 'learn.at:510' \
  "learning action - delete_learned feature" "       " 25
at_xfail=no
(
  $as_echo "465. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/learn.at:511: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "learn.at:511"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:511"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/learn.at:511: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "learn.at:511"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:511"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/learn.at:511: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "learn.at:511"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:511"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/learn.at:511: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "learn.at:511"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:511"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/learn.at:511: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "learn.at:511"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:511"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/learn.at:511: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "learn.at:511"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:511"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/learn.at:511: add_of_br 0  "
at_fn_check_prepare_trace "learn.at:511"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:511"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Add some initial flows and check that it was successful.
cat >flows.txt <<'_ATEOF'
                       reg0=0x1 actions=learn(delete_learned,cookie=0x123)
                       reg0=0x2 actions=learn(delete_learned,cookie=0x123)
cookie=0x123, table=1, reg0=0x3 actions=drop
cookie=0x123, table=1, reg0=0x4 actions=drop
cookie=0x123, table=2, reg0=0x5 actions=drop
cookie=0x234, table=1, reg0=0x6 actions=drop
_ATEOF

{ set +x
$as_echo "$at_srcdir/learn.at:522: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "learn.at:522"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:522"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/learn.at:523: ovs-ofctl dump-flows br0 --no-stats | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "learn.at:523"
( $at_check_trace; ovs-ofctl dump-flows br0 --no-stats | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x123, table=1, reg0=0x3 actions=drop
 cookie=0x123, table=1, reg0=0x4 actions=drop
 cookie=0x123, table=2, reg0=0x5 actions=drop
 cookie=0x234, table=1, reg0=0x6 actions=drop
 reg0=0x1 actions=learn(table=1,delete_learned,cookie=0x123)
 reg0=0x2 actions=learn(table=1,delete_learned,cookie=0x123)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:523"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Delete one of the learn actions.  The learned flows should stay, since there
# is another learn action with the identical target.
{ set +x
$as_echo "$at_srcdir/learn.at:534: ovs-ofctl del-flows br0 'table=0 reg0=1'"
at_fn_check_prepare_trace "learn.at:534"
( $at_check_trace; ovs-ofctl del-flows br0 'table=0 reg0=1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:534"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/learn.at:535: ovs-ofctl dump-flows br0 --no-stats | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "learn.at:535"
( $at_check_trace; ovs-ofctl dump-flows br0 --no-stats | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x123, table=1, reg0=0x3 actions=drop
 cookie=0x123, table=1, reg0=0x4 actions=drop
 cookie=0x123, table=2, reg0=0x5 actions=drop
 cookie=0x234, table=1, reg0=0x6 actions=drop
 reg0=0x2 actions=learn(table=1,delete_learned,cookie=0x123)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:535"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Change the flow with the learn action by adding a second action.  The learned
# flows should stay because the learn action is still there.
{ set +x
$as_echo "$at_srcdir/learn.at:545: ovs-ofctl mod-flows br0 'table=0 reg0=2 actions=output:1,learn(delete_learned,cookie=0x123)'"
at_fn_check_prepare_trace "learn.at:545"
( $at_check_trace; ovs-ofctl mod-flows br0 'table=0 reg0=2 actions=output:1,learn(delete_learned,cookie=0x123)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:545"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/learn.at:546: ovs-ofctl dump-flows br0 --no-stats | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "learn.at:546"
( $at_check_trace; ovs-ofctl dump-flows br0 --no-stats | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x123, table=1, reg0=0x3 actions=drop
 cookie=0x123, table=1, reg0=0x4 actions=drop
 cookie=0x123, table=2, reg0=0x5 actions=drop
 cookie=0x234, table=1, reg0=0x6 actions=drop
 reg0=0x2 actions=output:1,learn(table=1,delete_learned,cookie=0x123)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:546"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Change the flow with the learn action by replacing its learn action by one
# with a different target.  The (previous) learned flows disappear.
{ set +x
$as_echo "$at_srcdir/learn.at:556: ovs-ofctl mod-flows br0 'table=0 reg0=2 actions=learn(delete_learned,cookie=0x234)'"
at_fn_check_prepare_trace "learn.at:556"
( $at_check_trace; ovs-ofctl mod-flows br0 'table=0 reg0=2 actions=learn(delete_learned,cookie=0x234)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:556"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/learn.at:557: ovs-ofctl dump-flows br0 --no-stats | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "learn.at:557"
( $at_check_trace; ovs-ofctl dump-flows br0 --no-stats | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x123, table=2, reg0=0x5 actions=drop
 cookie=0x234, table=1, reg0=0x6 actions=drop
 reg0=0x2 actions=learn(table=1,delete_learned,cookie=0x234)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:557"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Use add-flow to replace the flow with the learn action by one with the
# same learn action and an extra action.  The (new) learned flow remains.
{ set +x
$as_echo "$at_srcdir/learn.at:565: ovs-ofctl add-flow br0 'table=0 reg0=2 actions=learn(delete_learned,cookie=0x234),output:2'"
at_fn_check_prepare_trace "learn.at:565"
( $at_check_trace; ovs-ofctl add-flow br0 'table=0 reg0=2 actions=learn(delete_learned,cookie=0x234),output:2'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:565"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/learn.at:566: ovs-ofctl dump-flows br0 --no-stats | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "learn.at:566"
( $at_check_trace; ovs-ofctl dump-flows br0 --no-stats | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x123, table=2, reg0=0x5 actions=drop
 cookie=0x234, table=1, reg0=0x6 actions=drop
 reg0=0x2 actions=learn(table=1,delete_learned,cookie=0x234),output:2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:566"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Delete the flow with the learn action.  The learned flow disappears too.
{ set +x
$as_echo "$at_srcdir/learn.at:573: ovs-ofctl del-flows br0 table=0"
at_fn_check_prepare_trace "learn.at:573"
( $at_check_trace; ovs-ofctl del-flows br0 table=0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:573"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/learn.at:574: ovs-ofctl dump-flows br0 --no-stats | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "learn.at:574"
( $at_check_trace; ovs-ofctl dump-flows br0 --no-stats | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x123, table=2, reg0=0x5 actions=drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:574"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Add a new set of flows to check on a corner case: the learned flows
# contain their own learn actions which cascade to further deletions.
# This can't happen if the learned flows were actually created by a
# learn action, since the learn action has very restricted action
# support, but there's no restriction that the deleted flows were
# created by a learn action.
cat >flows.txt <<'_ATEOF'
                       reg0=0x1 actions=learn(table=1,delete_learned,cookie=0x123)
                       reg0=0x2 actions=learn(table=2,delete_learned,cookie=0x234)
cookie=0x123, table=1, reg0=0x3 actions=learn(table=3,delete_learned,cookie=0x345)
cookie=0x234, table=2, reg0=0x3 actions=learn(table=4,delete_learned,cookie=0x456)
cookie=0x345, table=3, reg0=0x4 actions=learn(table=5,delete_learned,cookie=0x567)
cookie=0x456, table=4, reg0=0x5 actions=learn(table=5,delete_learned,cookie=0x567)
cookie=0x567, table=5, reg0=0x6 actions=drop
cookie=0x567, table=5, reg0=0x7 actions=drop
cookie=0x567, table=5, reg0=0x8 actions=drop
_ATEOF

{ set +x
$as_echo "$at_srcdir/learn.at:595: ovs-ofctl del-flows br0"
at_fn_check_prepare_trace "learn.at:595"
( $at_check_trace; ovs-ofctl del-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:595"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/learn.at:596: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "learn.at:596"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:596"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/learn.at:597: ovs-ofctl dump-flows br0 --no-stats | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "learn.at:597"
( $at_check_trace; ovs-ofctl dump-flows br0 --no-stats | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x123, table=1, reg0=0x3 actions=learn(table=3,delete_learned,cookie=0x345)
 cookie=0x234, table=2, reg0=0x3 actions=learn(table=4,delete_learned,cookie=0x456)
 cookie=0x345, table=3, reg0=0x4 actions=learn(table=5,delete_learned,cookie=0x567)
 cookie=0x456, table=4, reg0=0x5 actions=learn(table=5,delete_learned,cookie=0x567)
 cookie=0x567, table=5, reg0=0x6 actions=drop
 cookie=0x567, table=5, reg0=0x7 actions=drop
 cookie=0x567, table=5, reg0=0x8 actions=drop
 reg0=0x1 actions=learn(table=1,delete_learned,cookie=0x123)
 reg0=0x2 actions=learn(table=2,delete_learned,cookie=0x234)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:597"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Deleting the flow with reg0=1 should cascade to delete a few levels
# of learned flows, but the ones with cookie=0x567 stick around
# because of the flow with cookie=0x456.
{ set +x
$as_echo "$at_srcdir/learn.at:612: ovs-ofctl del-flows br0 'table=0 reg0=1'"
at_fn_check_prepare_trace "learn.at:612"
( $at_check_trace; ovs-ofctl del-flows br0 'table=0 reg0=1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:612"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/learn.at:613: ovs-ofctl dump-flows br0 --no-stats | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "learn.at:613"
( $at_check_trace; ovs-ofctl dump-flows br0 --no-stats | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x234, table=2, reg0=0x3 actions=learn(table=4,delete_learned,cookie=0x456)
 cookie=0x456, table=4, reg0=0x5 actions=learn(table=5,delete_learned,cookie=0x567)
 cookie=0x567, table=5, reg0=0x6 actions=drop
 cookie=0x567, table=5, reg0=0x7 actions=drop
 cookie=0x567, table=5, reg0=0x8 actions=drop
 reg0=0x2 actions=learn(table=2,delete_learned,cookie=0x234)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:613"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Deleting the flow with reg0=2 should cascade to delete all the rest:
{ set +x
$as_echo "$at_srcdir/learn.at:623: ovs-ofctl del-flows br0 'table=0 reg0=2'"
at_fn_check_prepare_trace "learn.at:623"
( $at_check_trace; ovs-ofctl del-flows br0 'table=0 reg0=2'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:623"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/learn.at:624: ovs-ofctl dump-flows br0 --no-stats | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "learn.at:624"
( $at_check_trace; ovs-ofctl dump-flows br0 --no-stats | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:624"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/learn.at:625: check_logs "
at_fn_check_prepare_trace "learn.at:625"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:625"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/learn.at:625: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "learn.at:625"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:625"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/learn.at:625: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "learn.at:625"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:625"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "learn.at:625: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "learn.at:625: wait failed" >&5

    $as_echo "learn.at:625" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/learn.at:625"
fi

   { set +x
$as_echo "$at_srcdir/learn.at:625: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "learn.at:625"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:625"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/learn.at:625: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "learn.at:625"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:625"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "learn.at:625: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "learn.at:625: wait failed" >&5

    $as_echo "learn.at:625" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/learn.at:625"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_465
#AT_START_466
at_fn_group_banner 466 'learn.at:628' \
  "learning action - limit" "                        " 25
at_xfail=no
(
  $as_echo "466. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/learn.at:629: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "learn.at:629"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:629"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/learn.at:629: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "learn.at:629"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:629"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/learn.at:629: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "learn.at:629"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:629"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/learn.at:629: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "learn.at:629"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:629"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/learn.at:629: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "learn.at:629"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:629"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/learn.at:629: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "learn.at:629"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:629"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/learn.at:629: add_of_br 0  "
at_fn_check_prepare_trace "learn.at:629"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:629"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/learn.at:630: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "learn.at:630"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:630"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

add_of_ports br0 1 2
cat >flows.txt <<'_ATEOF'
table=0 in_port=1 actions=learn(table=1,dl_dst=dl_src,cookie=0x1,limit=1),2
_ATEOF

{ set +x
$as_echo "$at_srcdir/learn.at:635: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "learn.at:635"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:635"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/learn.at:636: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:01,dst=50:54:00:00:00:ff),eth_type(0x1234)'"
at_fn_check_prepare_trace "learn.at:636"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:01,dst=50:54:00:00:00:ff),eth_type(0x1234)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:636"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/learn.at:637: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:02,dst=50:54:00:00:00:ff),eth_type(0x1234)'"
at_fn_check_prepare_trace "learn.at:637"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:02,dst=50:54:00:00:00:ff),eth_type(0x1234)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:637"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


$as_echo "learn.at:639: waiting until ovs-ofctl dump-ports br0 2 | grep -o 'tx pkts=2' >/dev/null..." >&5
ovs_wait_cond () {
    ovs-ofctl dump-ports br0 2 | grep -o 'tx pkts=2' >/dev/null
}
if ovs_wait; then :
else
    $as_echo "learn.at:639: wait failed" >&5

    $as_echo "learn.at:639" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/learn.at:639"
fi


{ set +x
$as_echo "$at_srcdir/learn.at:641: ovs-ofctl dump-flows br0 table=1 --no-stats"
at_fn_check_prepare_trace "learn.at:641"
( $at_check_trace; ovs-ofctl dump-flows br0 table=1 --no-stats
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x1, table=1, dl_dst=50:54:00:00:00:01 actions=drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:641"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/learn.at:646: ovs-ofctl del-flows br0 table=1"
at_fn_check_prepare_trace "learn.at:646"
( $at_check_trace; ovs-ofctl del-flows br0 table=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:646"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/learn.at:648: ovs-ofctl dump-flows br0 table=1 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "learn.at:648"
( $at_check_trace; ovs-ofctl dump-flows br0 table=1 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:648"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl revalidator/wait

{ set +x
$as_echo "$at_srcdir/learn.at:654: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:02,dst=50:54:00:00:00:ff),eth_type(0x1234)'"
at_fn_check_prepare_trace "learn.at:654"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:02,dst=50:54:00:00:00:ff),eth_type(0x1234)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:654"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/learn.at:655: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:01,dst=50:54:00:00:00:ff),eth_type(0x1234)'"
at_fn_check_prepare_trace "learn.at:655"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:01,dst=50:54:00:00:00:ff),eth_type(0x1234)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:655"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


$as_echo "learn.at:657: waiting until ovs-ofctl dump-ports br0 2 | grep -o 'tx pkts=4' >/dev/null..." >&5
ovs_wait_cond () {
    ovs-ofctl dump-ports br0 2 | grep -o 'tx pkts=4' >/dev/null
}
if ovs_wait; then :
else
    $as_echo "learn.at:657: wait failed" >&5

    $as_echo "learn.at:657" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/learn.at:657"
fi


{ set +x
$as_echo "$at_srcdir/learn.at:659: ovs-ofctl dump-flows br0 table=1 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "learn.at:659"
( $at_check_trace; ovs-ofctl dump-flows br0 table=1 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x1, table=1, dl_dst=50:54:00:00:00:02 actions=drop
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:659"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/learn.at:664: check_logs "
at_fn_check_prepare_trace "learn.at:664"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:664"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/learn.at:664: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "learn.at:664"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:664"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/learn.at:664: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "learn.at:664"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:664"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "learn.at:664: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "learn.at:664: wait failed" >&5

    $as_echo "learn.at:664" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/learn.at:664"
fi

   { set +x
$as_echo "$at_srcdir/learn.at:664: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "learn.at:664"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:664"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/learn.at:664: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "learn.at:664"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:664"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "learn.at:664: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "learn.at:664: wait failed" >&5

    $as_echo "learn.at:664" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/learn.at:664"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_466
#AT_START_467
at_fn_group_banner 467 'learn.at:667' \
  "learning action - limit result_dst" "             " 25
at_xfail=no
(
  $as_echo "467. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/learn.at:668: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "learn.at:668"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:668"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/learn.at:668: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "learn.at:668"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:668"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/learn.at:668: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "learn.at:668"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:668"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/learn.at:668: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "learn.at:668"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:668"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/learn.at:668: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "learn.at:668"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:668"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/learn.at:668: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "learn.at:668"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:668"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/learn.at:668: add_of_br 0  "
at_fn_check_prepare_trace "learn.at:668"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:668"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/learn.at:669: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "learn.at:669"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:669"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

add_of_ports br0 1
cat >flows.txt <<'_ATEOF'
table=0 in_port=1 actions=learn(table=1,dl_dst=dl_src,cookie=0x1,limit=1,result_dst=reg0[0]),controller
_ATEOF

{ set +x
$as_echo "$at_srcdir/learn.at:674: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "learn.at:674"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:674"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/learn.at:677: ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "learn.at:677"
( $at_check_trace; ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:677"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/learn.at:679: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:01,dst=50:54:00:00:00:ff),eth_type(0x1234)'"
at_fn_check_prepare_trace "learn.at:679"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:01,dst=50:54:00:00:00:ff),eth_type(0x1234)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:679"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/learn.at:680: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:02,dst=50:54:00:00:00:ff),eth_type(0x1234)'"
at_fn_check_prepare_trace "learn.at:680"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:02,dst=50:54:00:00:00:ff),eth_type(0x1234)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:680"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


$as_echo "learn.at:682: waiting until test \`wc -l < ofctl_monitor.log\` -ge 4..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 4
}
if ovs_wait; then :
else
    $as_echo "learn.at:682: wait failed" >&5

    $as_echo "learn.at:682" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/learn.at:682"
fi

$as_echo "learn.at:683: waiting until ovs-appctl -t ovs-ofctl exit..." >&5
ovs_wait_cond () {
    ovs-appctl -t ovs-ofctl exit
}
if ovs_wait; then :
else
    $as_echo "learn.at:683: wait failed" >&5

    $as_echo "learn.at:683" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/learn.at:683"
fi


{ set +x
$as_echo "$at_srcdir/learn.at:685: cat ofctl_monitor.log"
at_fn_check_prepare_trace "learn.at:685"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0x0 total_len=14 reg0=0x1,in_port=1 (via action) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=50:54:00:00:00:01,dl_dst=50:54:00:00:00:ff,dl_type=0x1234
NXT_PACKET_IN (xid=0x0): cookie=0x0 total_len=14 in_port=1 (via action) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=50:54:00:00:00:02,dl_dst=50:54:00:00:00:ff,dl_type=0x1234
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:685"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/learn.at:692: ovs-ofctl dump-flows br0 table=1 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "learn.at:692"
( $at_check_trace; ovs-ofctl dump-flows br0 table=1 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x1, table=1, dl_dst=50:54:00:00:00:01 actions=drop
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:692"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/learn.at:697: check_logs "
at_fn_check_prepare_trace "learn.at:697"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:697"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/learn.at:697: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "learn.at:697"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:697"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/learn.at:697: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "learn.at:697"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:697"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "learn.at:697: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "learn.at:697: wait failed" >&5

    $as_echo "learn.at:697" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/learn.at:697"
fi

   { set +x
$as_echo "$at_srcdir/learn.at:697: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "learn.at:697"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:697"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/learn.at:697: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "learn.at:697"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:697"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "learn.at:697: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "learn.at:697: wait failed" >&5

    $as_echo "learn.at:697" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/learn.at:697"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_467
#AT_START_468
at_fn_group_banner 468 'learn.at:700' \
  "learning action - different limits" "             " 25
at_xfail=no
(
  $as_echo "468. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/learn.at:701: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "learn.at:701"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:701"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/learn.at:701: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "learn.at:701"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:701"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/learn.at:701: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "learn.at:701"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:701"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/learn.at:701: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "learn.at:701"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:701"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/learn.at:701: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "learn.at:701"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:701"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/learn.at:701: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "learn.at:701"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:701"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/learn.at:701: add_of_br 0  "
at_fn_check_prepare_trace "learn.at:701"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:701"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/learn.at:702: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "learn.at:702"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:702"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

add_of_ports br0 1 2 3
cat >flows.txt <<'_ATEOF'
table=0 in_port=1 udp,actions=learn(table=11,dl_type=0x0800,nw_proto=17,udp_src=udp_dst,limit=1,result_dst=reg0[0]),resubmit(,1)
table=0 in_port=2 udp,actions=learn(table=12,dl_type=0x0800,nw_proto=17,udp_src=udp_dst,limit=10,result_dst=reg0[0]),resubmit(,1)
table=0 in_port=3 udp,actions=learn(table=13,dl_type=0x0800,nw_proto=17,udp_src=udp_dst,limit=20,result_dst=reg0[0]),resubmit(,1)
table=1 cookie=1,reg0=1,in_port=1 actions=drop
table=1 cookie=2,reg0=1,in_port=2 actions=drop
table=1 cookie=3,reg0=1,in_port=3 actions=drop
table=1 cookie=1,reg0=0,in_port=1 actions=drop
table=1 cookie=2,reg0=0,in_port=2 actions=drop
table=1 cookie=3,reg0=0,in_port=3 actions=drop
_ATEOF

{ set +x
$as_echo "$at_srcdir/learn.at:721: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "learn.at:721"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:721"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


for i in `seq 1001 1030`; do
    ovs-appctl netdev-dummy/receive p1 "in_port(1),eth(src=50:54:00:00:00:01,dst=50:54:00:00:00:ff),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=17,tos=0,ttl=64,frag=no),udp(src=1,dst=$i)"
    ovs-appctl netdev-dummy/receive p2 "in_port(2),eth(src=50:54:00:00:00:01,dst=50:54:00:00:00:ff),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=17,tos=0,ttl=64,frag=no),udp(src=1,dst=$i)"
    ovs-appctl netdev-dummy/receive p3 "in_port(3),eth(src=50:54:00:00:00:01,dst=50:54:00:00:00:ff),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=17,tos=0,ttl=64,frag=no),udp(src=1,dst=$i)"
done

{ set +x
$as_echo "$at_srcdir/learn.at:730: ovs-ofctl dump-flows br0 table=1,reg0=1 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "learn.at:730"
( $at_check_trace; ovs-ofctl dump-flows br0 table=1,reg0=1 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x1, table=1, n_packets=1, n_bytes=42, reg0=0x1,in_port=1 actions=drop
 cookie=0x2, table=1, n_packets=10, n_bytes=420, reg0=0x1,in_port=2 actions=drop
 cookie=0x3, table=1, n_packets=20, n_bytes=840, reg0=0x1,in_port=3 actions=drop
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:730"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/learn.at:738: ovs-ofctl dump-flows br0 table=1,reg0=0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "learn.at:738"
( $at_check_trace; ovs-ofctl dump-flows br0 table=1,reg0=0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x1, table=1, n_packets=29, n_bytes=1218, reg0=0,in_port=1 actions=drop
 cookie=0x2, table=1, n_packets=20, n_bytes=840, reg0=0,in_port=2 actions=drop
 cookie=0x3, table=1, n_packets=10, n_bytes=420, reg0=0,in_port=3 actions=drop
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:738"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/learn.at:747: ovs-ofctl dump-flows br0 table=13 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "learn.at:747"
( $at_check_trace; ovs-ofctl dump-flows br0 table=13 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " table=13, udp,tp_src=1001 actions=drop
 table=13, udp,tp_src=1002 actions=drop
 table=13, udp,tp_src=1003 actions=drop
 table=13, udp,tp_src=1004 actions=drop
 table=13, udp,tp_src=1005 actions=drop
 table=13, udp,tp_src=1006 actions=drop
 table=13, udp,tp_src=1007 actions=drop
 table=13, udp,tp_src=1008 actions=drop
 table=13, udp,tp_src=1009 actions=drop
 table=13, udp,tp_src=1010 actions=drop
 table=13, udp,tp_src=1011 actions=drop
 table=13, udp,tp_src=1012 actions=drop
 table=13, udp,tp_src=1013 actions=drop
 table=13, udp,tp_src=1014 actions=drop
 table=13, udp,tp_src=1015 actions=drop
 table=13, udp,tp_src=1016 actions=drop
 table=13, udp,tp_src=1017 actions=drop
 table=13, udp,tp_src=1018 actions=drop
 table=13, udp,tp_src=1019 actions=drop
 table=13, udp,tp_src=1020 actions=drop
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:747"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/learn.at:771: ovs-ofctl dump-flows br0 table=12 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "learn.at:771"
( $at_check_trace; ovs-ofctl dump-flows br0 table=12 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " table=12, udp,tp_src=1001 actions=drop
 table=12, udp,tp_src=1002 actions=drop
 table=12, udp,tp_src=1003 actions=drop
 table=12, udp,tp_src=1004 actions=drop
 table=12, udp,tp_src=1005 actions=drop
 table=12, udp,tp_src=1006 actions=drop
 table=12, udp,tp_src=1007 actions=drop
 table=12, udp,tp_src=1008 actions=drop
 table=12, udp,tp_src=1009 actions=drop
 table=12, udp,tp_src=1010 actions=drop
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:771"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/learn.at:785: ovs-ofctl dump-flows br0 table=11 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "learn.at:785"
( $at_check_trace; ovs-ofctl dump-flows br0 table=11 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " table=11, udp,tp_src=1001 actions=drop
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:785"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/learn.at:790: ovs-vsctl del-br br0"
at_fn_check_prepare_trace "learn.at:790"
( $at_check_trace; ovs-vsctl del-br br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:790"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 500
ovs-appctl time/warp 500
ovs-appctl time/warp 500
ovs-appctl time/warp 500

{ set +x
$as_echo "$at_srcdir/learn.at:797: ovs-vsctl add-br br1 -- set b br1 datapath_type=dummy"
at_fn_check_prepare_trace "learn.at:797"
( $at_check_trace; ovs-vsctl add-br br1 -- set b br1 datapath_type=dummy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:797"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/learn.at:799: check_logs "
at_fn_check_prepare_trace "learn.at:799"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:799"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/learn.at:799: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "learn.at:799"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:799"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/learn.at:799: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "learn.at:799"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:799"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "learn.at:799: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "learn.at:799: wait failed" >&5

    $as_echo "learn.at:799" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/learn.at:799"
fi

   { set +x
$as_echo "$at_srcdir/learn.at:799: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "learn.at:799"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:799"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/learn.at:799: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "learn.at:799"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/learn.at:799"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "learn.at:799: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "learn.at:799: wait failed" >&5

    $as_echo "learn.at:799" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/learn.at:799"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_468
#AT_START_469
at_fn_group_banner 469 'vconn.at:20' \
  "unix vconn - refuse connection" "                 " 26
at_xfail=no
(
  $as_echo "469. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


      { set +x
$as_echo "$at_srcdir/vconn.at:20: ovstest test-vconn refuse-connection unix"
at_fn_check_prepare_trace "vconn.at:20"
( $at_check_trace; ovstest test-vconn refuse-connection unix
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vconn.at:20"
$at_failed && at_fn_log_failure
$at_traceon; }

        set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_469
#AT_START_470
at_fn_group_banner 470 'vconn.at:20' \
  "unix vconn - accept then close" "                 " 26
at_xfail=no
(
  $as_echo "470. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


      { set +x
$as_echo "$at_srcdir/vconn.at:20: ovstest test-vconn accept-then-close unix"
at_fn_check_prepare_trace "vconn.at:20"
( $at_check_trace; ovstest test-vconn accept-then-close unix
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vconn.at:20"
$at_failed && at_fn_log_failure
$at_traceon; }

        set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_470
#AT_START_471
at_fn_group_banner 471 'vconn.at:20' \
  "unix vconn - read hello" "                        " 26
at_xfail=no
(
  $as_echo "471. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


      { set +x
$as_echo "$at_srcdir/vconn.at:20: ovstest test-vconn read-hello unix"
at_fn_check_prepare_trace "vconn.at:20"
( $at_check_trace; ovstest test-vconn read-hello unix
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vconn.at:20"
$at_failed && at_fn_log_failure
$at_traceon; }

        set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_471
#AT_START_472
at_fn_group_banner 472 'vconn.at:20' \
  "unix vconn - send plain hello" "                  " 26
at_xfail=no
(
  $as_echo "472. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


      { set +x
$as_echo "$at_srcdir/vconn.at:20: ovstest test-vconn send-plain-hello unix"
at_fn_check_prepare_trace "vconn.at:20"
( $at_check_trace; ovstest test-vconn send-plain-hello unix
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vconn.at:20"
$at_failed && at_fn_log_failure
$at_traceon; }

        set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_472
#AT_START_473
at_fn_group_banner 473 'vconn.at:20' \
  "unix vconn - send long hello" "                   " 26
at_xfail=no
(
  $as_echo "473. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


      { set +x
$as_echo "$at_srcdir/vconn.at:20: ovstest test-vconn send-long-hello unix"
at_fn_check_prepare_trace "vconn.at:20"
( $at_check_trace; ovstest test-vconn send-long-hello unix
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vconn.at:20"
$at_failed && at_fn_log_failure
$at_traceon; }

        set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_473
#AT_START_474
at_fn_group_banner 474 'vconn.at:20' \
  "unix vconn - send echo hello" "                   " 26
at_xfail=no
(
  $as_echo "474. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


      { set +x
$as_echo "$at_srcdir/vconn.at:20: ovstest test-vconn send-echo-hello unix"
at_fn_check_prepare_trace "vconn.at:20"
( $at_check_trace; ovstest test-vconn send-echo-hello unix
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vconn.at:20"
$at_failed && at_fn_log_failure
$at_traceon; }

        set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_474
#AT_START_475
at_fn_group_banner 475 'vconn.at:20' \
  "unix vconn - send short hello" "                  " 26
at_xfail=no
(
  $as_echo "475. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


      { set +x
$as_echo "$at_srcdir/vconn.at:20: ovstest test-vconn send-short-hello unix"
at_fn_check_prepare_trace "vconn.at:20"
( $at_check_trace; ovstest test-vconn send-short-hello unix
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vconn.at:20"
$at_failed && at_fn_log_failure
$at_traceon; }

        set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_475
#AT_START_476
at_fn_group_banner 476 'vconn.at:20' \
  "unix vconn - send invalid version hello" "        " 26
at_xfail=no
(
  $as_echo "476. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


      { set +x
$as_echo "$at_srcdir/vconn.at:20: ovstest test-vconn send-invalid-version-hello unix"
at_fn_check_prepare_trace "vconn.at:20"
( $at_check_trace; ovstest test-vconn send-invalid-version-hello unix
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vconn.at:20"
$at_failed && at_fn_log_failure
$at_traceon; }

        set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_476
#AT_START_477
at_fn_group_banner 477 'vconn.at:21' \
  "tcp vconn - refuse connection" "                  " 27
at_xfail=no
(
  $as_echo "477. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


      { set +x
$as_echo "$at_srcdir/vconn.at:21: ovstest test-vconn refuse-connection tcp"
at_fn_check_prepare_trace "vconn.at:21"
( $at_check_trace; ovstest test-vconn refuse-connection tcp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vconn.at:21"
$at_failed && at_fn_log_failure
$at_traceon; }

        set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_477
#AT_START_478
at_fn_group_banner 478 'vconn.at:21' \
  "tcp vconn - accept then close" "                  " 27
at_xfail=no
(
  $as_echo "478. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


      { set +x
$as_echo "$at_srcdir/vconn.at:21: ovstest test-vconn accept-then-close tcp"
at_fn_check_prepare_trace "vconn.at:21"
( $at_check_trace; ovstest test-vconn accept-then-close tcp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vconn.at:21"
$at_failed && at_fn_log_failure
$at_traceon; }

        set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_478
#AT_START_479
at_fn_group_banner 479 'vconn.at:21' \
  "tcp vconn - read hello" "                         " 27
at_xfail=no
(
  $as_echo "479. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


      { set +x
$as_echo "$at_srcdir/vconn.at:21: ovstest test-vconn read-hello tcp"
at_fn_check_prepare_trace "vconn.at:21"
( $at_check_trace; ovstest test-vconn read-hello tcp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vconn.at:21"
$at_failed && at_fn_log_failure
$at_traceon; }

        set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_479
#AT_START_480
at_fn_group_banner 480 'vconn.at:21' \
  "tcp vconn - send plain hello" "                   " 27
at_xfail=no
(
  $as_echo "480. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


      { set +x
$as_echo "$at_srcdir/vconn.at:21: ovstest test-vconn send-plain-hello tcp"
at_fn_check_prepare_trace "vconn.at:21"
( $at_check_trace; ovstest test-vconn send-plain-hello tcp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vconn.at:21"
$at_failed && at_fn_log_failure
$at_traceon; }

        set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_480
#AT_START_481
at_fn_group_banner 481 'vconn.at:21' \
  "tcp vconn - send long hello" "                    " 27
at_xfail=no
(
  $as_echo "481. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


      { set +x
$as_echo "$at_srcdir/vconn.at:21: ovstest test-vconn send-long-hello tcp"
at_fn_check_prepare_trace "vconn.at:21"
( $at_check_trace; ovstest test-vconn send-long-hello tcp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vconn.at:21"
$at_failed && at_fn_log_failure
$at_traceon; }

        set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_481
#AT_START_482
at_fn_group_banner 482 'vconn.at:21' \
  "tcp vconn - send echo hello" "                    " 27
at_xfail=no
(
  $as_echo "482. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


      { set +x
$as_echo "$at_srcdir/vconn.at:21: ovstest test-vconn send-echo-hello tcp"
at_fn_check_prepare_trace "vconn.at:21"
( $at_check_trace; ovstest test-vconn send-echo-hello tcp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vconn.at:21"
$at_failed && at_fn_log_failure
$at_traceon; }

        set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_482
#AT_START_483
at_fn_group_banner 483 'vconn.at:21' \
  "tcp vconn - send short hello" "                   " 27
at_xfail=no
(
  $as_echo "483. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


      { set +x
$as_echo "$at_srcdir/vconn.at:21: ovstest test-vconn send-short-hello tcp"
at_fn_check_prepare_trace "vconn.at:21"
( $at_check_trace; ovstest test-vconn send-short-hello tcp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vconn.at:21"
$at_failed && at_fn_log_failure
$at_traceon; }

        set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_483
#AT_START_484
at_fn_group_banner 484 'vconn.at:21' \
  "tcp vconn - send invalid version hello" "         " 27
at_xfail=no
(
  $as_echo "484. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


      { set +x
$as_echo "$at_srcdir/vconn.at:21: ovstest test-vconn send-invalid-version-hello tcp"
at_fn_check_prepare_trace "vconn.at:21"
( $at_check_trace; ovstest test-vconn send-invalid-version-hello tcp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vconn.at:21"
$at_failed && at_fn_log_failure
$at_traceon; }

        set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_484
#AT_START_485
at_fn_group_banner 485 'vconn.at:22' \
  "ssl vconn - refuse connection" "                  " 28
at_xfail=no
(
  $as_echo "485. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


        $as_echo "vconn.at:22" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/vconn.at:22"
        { set +x
$as_echo "$at_srcdir/vconn.at:22: cp \$abs_top_builddir/tests/testpki*.pem ."
at_fn_check_prepare_dynamic "cp $abs_top_builddir/tests/testpki*.pem ." "vconn.at:22"
( $at_check_trace; cp $abs_top_builddir/tests/testpki*.pem .
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vconn.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }

      { set +x
$as_echo "$at_srcdir/vconn.at:22: ovstest test-vconn refuse-connection ssl"
at_fn_check_prepare_trace "vconn.at:22"
( $at_check_trace; ovstest test-vconn refuse-connection ssl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vconn.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }

        set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_485
#AT_START_486
at_fn_group_banner 486 'vconn.at:22' \
  "ssl vconn - accept then close" "                  " 28
at_xfail=no
(
  $as_echo "486. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


        $as_echo "vconn.at:22" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/vconn.at:22"
        { set +x
$as_echo "$at_srcdir/vconn.at:22: cp \$abs_top_builddir/tests/testpki*.pem ."
at_fn_check_prepare_dynamic "cp $abs_top_builddir/tests/testpki*.pem ." "vconn.at:22"
( $at_check_trace; cp $abs_top_builddir/tests/testpki*.pem .
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vconn.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }

      { set +x
$as_echo "$at_srcdir/vconn.at:22: ovstest test-vconn accept-then-close ssl"
at_fn_check_prepare_trace "vconn.at:22"
( $at_check_trace; ovstest test-vconn accept-then-close ssl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vconn.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }

        set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_486
#AT_START_487
at_fn_group_banner 487 'vconn.at:22' \
  "ssl vconn - read hello" "                         " 28
at_xfail=no
(
  $as_echo "487. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


        $as_echo "vconn.at:22" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/vconn.at:22"
        { set +x
$as_echo "$at_srcdir/vconn.at:22: cp \$abs_top_builddir/tests/testpki*.pem ."
at_fn_check_prepare_dynamic "cp $abs_top_builddir/tests/testpki*.pem ." "vconn.at:22"
( $at_check_trace; cp $abs_top_builddir/tests/testpki*.pem .
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vconn.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }

      { set +x
$as_echo "$at_srcdir/vconn.at:22: ovstest test-vconn read-hello ssl"
at_fn_check_prepare_trace "vconn.at:22"
( $at_check_trace; ovstest test-vconn read-hello ssl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vconn.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }

        set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_487
#AT_START_488
at_fn_group_banner 488 'vconn.at:22' \
  "ssl vconn - send plain hello" "                   " 28
at_xfail=no
(
  $as_echo "488. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


        $as_echo "vconn.at:22" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/vconn.at:22"
        { set +x
$as_echo "$at_srcdir/vconn.at:22: cp \$abs_top_builddir/tests/testpki*.pem ."
at_fn_check_prepare_dynamic "cp $abs_top_builddir/tests/testpki*.pem ." "vconn.at:22"
( $at_check_trace; cp $abs_top_builddir/tests/testpki*.pem .
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vconn.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }

      { set +x
$as_echo "$at_srcdir/vconn.at:22: ovstest test-vconn send-plain-hello ssl"
at_fn_check_prepare_trace "vconn.at:22"
( $at_check_trace; ovstest test-vconn send-plain-hello ssl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vconn.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }

        set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_488
#AT_START_489
at_fn_group_banner 489 'vconn.at:22' \
  "ssl vconn - send long hello" "                    " 28
at_xfail=no
(
  $as_echo "489. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


        $as_echo "vconn.at:22" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/vconn.at:22"
        { set +x
$as_echo "$at_srcdir/vconn.at:22: cp \$abs_top_builddir/tests/testpki*.pem ."
at_fn_check_prepare_dynamic "cp $abs_top_builddir/tests/testpki*.pem ." "vconn.at:22"
( $at_check_trace; cp $abs_top_builddir/tests/testpki*.pem .
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vconn.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }

      { set +x
$as_echo "$at_srcdir/vconn.at:22: ovstest test-vconn send-long-hello ssl"
at_fn_check_prepare_trace "vconn.at:22"
( $at_check_trace; ovstest test-vconn send-long-hello ssl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vconn.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }

        set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_489
#AT_START_490
at_fn_group_banner 490 'vconn.at:22' \
  "ssl vconn - send echo hello" "                    " 28
at_xfail=no
(
  $as_echo "490. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


        $as_echo "vconn.at:22" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/vconn.at:22"
        { set +x
$as_echo "$at_srcdir/vconn.at:22: cp \$abs_top_builddir/tests/testpki*.pem ."
at_fn_check_prepare_dynamic "cp $abs_top_builddir/tests/testpki*.pem ." "vconn.at:22"
( $at_check_trace; cp $abs_top_builddir/tests/testpki*.pem .
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vconn.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }

      { set +x
$as_echo "$at_srcdir/vconn.at:22: ovstest test-vconn send-echo-hello ssl"
at_fn_check_prepare_trace "vconn.at:22"
( $at_check_trace; ovstest test-vconn send-echo-hello ssl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vconn.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }

        set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_490
#AT_START_491
at_fn_group_banner 491 'vconn.at:22' \
  "ssl vconn - send short hello" "                   " 28
at_xfail=no
(
  $as_echo "491. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


        $as_echo "vconn.at:22" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/vconn.at:22"
        { set +x
$as_echo "$at_srcdir/vconn.at:22: cp \$abs_top_builddir/tests/testpki*.pem ."
at_fn_check_prepare_dynamic "cp $abs_top_builddir/tests/testpki*.pem ." "vconn.at:22"
( $at_check_trace; cp $abs_top_builddir/tests/testpki*.pem .
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vconn.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }

      { set +x
$as_echo "$at_srcdir/vconn.at:22: ovstest test-vconn send-short-hello ssl"
at_fn_check_prepare_trace "vconn.at:22"
( $at_check_trace; ovstest test-vconn send-short-hello ssl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vconn.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }

        set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_491
#AT_START_492
at_fn_group_banner 492 'vconn.at:22' \
  "ssl vconn - send invalid version hello" "         " 28
at_xfail=no
(
  $as_echo "492. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


        $as_echo "vconn.at:22" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/vconn.at:22"
        { set +x
$as_echo "$at_srcdir/vconn.at:22: cp \$abs_top_builddir/tests/testpki*.pem ."
at_fn_check_prepare_dynamic "cp $abs_top_builddir/tests/testpki*.pem ." "vconn.at:22"
( $at_check_trace; cp $abs_top_builddir/tests/testpki*.pem .
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vconn.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }

      { set +x
$as_echo "$at_srcdir/vconn.at:22: ovstest test-vconn send-invalid-version-hello ssl"
at_fn_check_prepare_trace "vconn.at:22"
( $at_check_trace; ovstest test-vconn send-invalid-version-hello ssl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vconn.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }

        set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_492
#AT_START_493
at_fn_group_banner 493 'file_name.at:13' \
  "components of \"/usr/lib\" are \"/usr\", \"lib\"" "     " 29
at_xfail=no
(
  $as_echo "493. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "file_name.at:13" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/file_name.at:13"

   { set +x
$as_echo "$at_srcdir/file_name.at:13: ovstest test-util file_name \"/usr/lib\""
at_fn_check_prepare_trace "file_name.at:13"
( $at_check_trace; ovstest test-util file_name "/usr/lib"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "/usr
lib
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/file_name.at:13"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_493
#AT_START_494
at_fn_group_banner 494 'file_name.at:14' \
  "components of \"/usr/\" are \"/\", \"usr\"" "           " 29
at_xfail=no
(
  $as_echo "494. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "file_name.at:14" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/file_name.at:14"

   { set +x
$as_echo "$at_srcdir/file_name.at:14: ovstest test-util file_name \"/usr/\""
at_fn_check_prepare_trace "file_name.at:14"
( $at_check_trace; ovstest test-util file_name "/usr/"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "/
usr
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/file_name.at:14"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_494
#AT_START_495
at_fn_group_banner 495 'file_name.at:15' \
  "components of \"usr\" are \".\", \"usr\"" "             " 29
at_xfail=no
(
  $as_echo "495. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "file_name.at:15" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/file_name.at:15"

   { set +x
$as_echo "$at_srcdir/file_name.at:15: ovstest test-util file_name \"usr\""
at_fn_check_prepare_trace "file_name.at:15"
( $at_check_trace; ovstest test-util file_name "usr"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo ".
usr
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/file_name.at:15"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_495
#AT_START_496
at_fn_group_banner 496 'file_name.at:16' \
  "components of \"/\" are \"/\", \"/\"" "                 " 29
at_xfail=no
(
  $as_echo "496. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "file_name.at:16" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/file_name.at:16"

   { set +x
$as_echo "$at_srcdir/file_name.at:16: ovstest test-util file_name \"/\""
at_fn_check_prepare_trace "file_name.at:16"
( $at_check_trace; ovstest test-util file_name "/"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "/
/
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/file_name.at:16"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_496
#AT_START_497
at_fn_group_banner 497 'file_name.at:17' \
  "components of \".\" are \".\", \".\"" "                 " 29
at_xfail=no
(
  $as_echo "497. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "file_name.at:17" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/file_name.at:17"

   { set +x
$as_echo "$at_srcdir/file_name.at:17: ovstest test-util file_name \".\""
at_fn_check_prepare_trace "file_name.at:17"
( $at_check_trace; ovstest test-util file_name "."
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo ".
.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/file_name.at:17"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_497
#AT_START_498
at_fn_group_banner 498 'file_name.at:18' \
  "components of \"..\" are \".\", \"..\"" "               " 29
at_xfail=no
(
  $as_echo "498. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "file_name.at:18" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/file_name.at:18"

   { set +x
$as_echo "$at_srcdir/file_name.at:18: ovstest test-util file_name \"..\""
at_fn_check_prepare_trace "file_name.at:18"
( $at_check_trace; ovstest test-util file_name ".."
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo ".
..
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/file_name.at:18"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_498
#AT_START_499
at_fn_group_banner 499 'file_name.at:19' \
  "components of \"//\" are \"//\", \"//\"" "              " 29
at_xfail=no
(
  $as_echo "499. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "file_name.at:19" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/file_name.at:19"

   { set +x
$as_echo "$at_srcdir/file_name.at:19: ovstest test-util file_name \"//\""
at_fn_check_prepare_trace "file_name.at:19"
( $at_check_trace; ovstest test-util file_name "//"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "//
//
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/file_name.at:19"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_499
#AT_START_500
at_fn_group_banner 500 'file_name.at:20' \
  "components of \"//foo\" are \"//\", \"foo\"" "          " 29
at_xfail=no
(
  $as_echo "500. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "file_name.at:20" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/file_name.at:20"

   { set +x
$as_echo "$at_srcdir/file_name.at:20: ovstest test-util file_name \"//foo\""
at_fn_check_prepare_trace "file_name.at:20"
( $at_check_trace; ovstest test-util file_name "//foo"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "//
foo
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/file_name.at:20"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_500
#AT_START_501
at_fn_group_banner 501 'file_name.at:21' \
  "components of \"\" are \".\", \".\"" "                  " 29
at_xfail=no
(
  $as_echo "501. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "file_name.at:21" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/file_name.at:21"

   { set +x
$as_echo "$at_srcdir/file_name.at:21: ovstest test-util file_name \"\""
at_fn_check_prepare_trace "file_name.at:21"
( $at_check_trace; ovstest test-util file_name ""
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo ".
.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/file_name.at:21"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_501
#AT_START_502
at_fn_group_banner 502 'file_name.at:24' \
  "components of \"dir/file\" are \"dir\", \"file\"" "     " 29
at_xfail=no
(
  $as_echo "502. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "file_name.at:24" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/file_name.at:24"

   { set +x
$as_echo "$at_srcdir/file_name.at:24: ovstest test-util file_name \"dir/file\""
at_fn_check_prepare_trace "file_name.at:24"
( $at_check_trace; ovstest test-util file_name "dir/file"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dir
file
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/file_name.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_502
#AT_START_503
at_fn_group_banner 503 'file_name.at:25' \
  "components of \"dir/file/\" are \"dir\", \"file\"" "    " 29
at_xfail=no
(
  $as_echo "503. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "file_name.at:25" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/file_name.at:25"

   { set +x
$as_echo "$at_srcdir/file_name.at:25: ovstest test-util file_name \"dir/file/\""
at_fn_check_prepare_trace "file_name.at:25"
( $at_check_trace; ovstest test-util file_name "dir/file/"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dir
file
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/file_name.at:25"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_503
#AT_START_504
at_fn_group_banner 504 'file_name.at:26' \
  "components of \"dir/file//\" are \"dir\", \"file\"" "   " 29
at_xfail=no
(
  $as_echo "504. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "file_name.at:26" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/file_name.at:26"

   { set +x
$as_echo "$at_srcdir/file_name.at:26: ovstest test-util file_name \"dir/file//\""
at_fn_check_prepare_trace "file_name.at:26"
( $at_check_trace; ovstest test-util file_name "dir/file//"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dir
file
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/file_name.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_504
#AT_START_505
at_fn_group_banner 505 'file_name.at:27' \
  "components of \"///foo\" are \"/\", \"foo\"" "          " 29
at_xfail=no
(
  $as_echo "505. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "file_name.at:27" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/file_name.at:27"

   { set +x
$as_echo "$at_srcdir/file_name.at:27: ovstest test-util file_name \"///foo\""
at_fn_check_prepare_trace "file_name.at:27"
( $at_check_trace; ovstest test-util file_name "///foo"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "/
foo
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/file_name.at:27"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_505
#AT_START_506
at_fn_group_banner 506 'file_name.at:37' \
  "follow_symlinks - relative symlinks" "            " 30
at_xfail=no
(
  $as_echo "506. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

: > target
ln -s target source
$as_echo "file_name.at:40" >"$at_check_line_file"
(test ! -h source) \
  && at_fn_check_skip 77 "$at_srcdir/file_name.at:40"
echo "check source -> target"
   { set +x
$as_echo "$at_srcdir/file_name.at:41: ovstest test-util follow-symlinks \"source\""
at_fn_check_prepare_trace "file_name.at:41"
( $at_check_trace; ovstest test-util follow-symlinks "source"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "target
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/file_name.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   echo

mkdir dir
ln -s target2 dir/source2
echo "check dir/source2 -> dir/target2"
   { set +x
$as_echo "$at_srcdir/file_name.at:45: ovstest test-util follow-symlinks \"dir/source2\""
at_fn_check_prepare_trace "file_name.at:45"
( $at_check_trace; ovstest test-util follow-symlinks "dir/source2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dir/target2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/file_name.at:45"
$at_failed && at_fn_log_failure
$at_traceon; }

   echo

mkdir dir/dir2
ln -s dir/b a
ln -s c dir/b
ln -s dir2/d dir/c
echo "check a -> dir/dir2/d"
   { set +x
$as_echo "$at_srcdir/file_name.at:51: ovstest test-util follow-symlinks \"a\""
at_fn_check_prepare_trace "file_name.at:51"
( $at_check_trace; ovstest test-util follow-symlinks "a"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dir/dir2/d
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/file_name.at:51"
$at_failed && at_fn_log_failure
$at_traceon; }

   echo
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_506
#AT_START_507
at_fn_group_banner 507 'file_name.at:54' \
  "follow_symlinks - absolute symlinks" "            " 30
at_xfail=no
(
  $as_echo "507. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

: > target
ln -s "`pwd`/target" source
$as_echo "file_name.at:57" >"$at_check_line_file"
(test ! -h source) \
  && at_fn_check_skip 77 "$at_srcdir/file_name.at:57"
echo "check source -> `pwd`/target"
   { set +x
$as_echo "$at_srcdir/file_name.at:58: ovstest test-util follow-symlinks \"source\""
at_fn_check_prepare_trace "file_name.at:58"
( $at_check_trace; ovstest test-util follow-symlinks "source"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "`pwd`/target
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/file_name.at:58"
$at_failed && at_fn_log_failure
$at_traceon; }

   echo

mkdir dir
ln -s "`pwd`/dir/target2" dir/source2
echo "check dir/source2 -> `pwd`/dir/target2"
   { set +x
$as_echo "$at_srcdir/file_name.at:62: ovstest test-util follow-symlinks \"dir/source2\""
at_fn_check_prepare_trace "file_name.at:62"
( $at_check_trace; ovstest test-util follow-symlinks "dir/source2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "`pwd`/dir/target2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/file_name.at:62"
$at_failed && at_fn_log_failure
$at_traceon; }

   echo

mkdir dir/dir2
ln -s "`pwd`/dir/b" a
ln -s "`pwd`/dir/c" dir/b
ln -s "`pwd`/dir/dir2/d" dir/c
echo "check a -> `pwd`/dir/dir2/d"
   { set +x
$as_echo "$at_srcdir/file_name.at:68: ovstest test-util follow-symlinks \"a\""
at_fn_check_prepare_trace "file_name.at:68"
( $at_check_trace; ovstest test-util follow-symlinks "a"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "`pwd`/dir/dir2/d
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/file_name.at:68"
$at_failed && at_fn_log_failure
$at_traceon; }

   echo
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_507
#AT_START_508
at_fn_group_banner 508 'file_name.at:71' \
  "follow_symlinks - symlinks to directories" "      " 30
at_xfail=no
(
  $as_echo "508. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

mkdir target
ln -s target source
$as_echo "file_name.at:74" >"$at_check_line_file"
(test ! -h source) \
  && at_fn_check_skip 77 "$at_srcdir/file_name.at:74"
ln -s target/ source2
echo "check source -> target"
   { set +x
$as_echo "$at_srcdir/file_name.at:76: ovstest test-util follow-symlinks \"source\""
at_fn_check_prepare_trace "file_name.at:76"
( $at_check_trace; ovstest test-util follow-symlinks "source"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "target
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/file_name.at:76"
$at_failed && at_fn_log_failure
$at_traceon; }

   echo
echo "check source2 -> target/"
   { set +x
$as_echo "$at_srcdir/file_name.at:77: ovstest test-util follow-symlinks \"source2\""
at_fn_check_prepare_trace "file_name.at:77"
( $at_check_trace; ovstest test-util follow-symlinks "source2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "target/
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/file_name.at:77"
$at_failed && at_fn_log_failure
$at_traceon; }

   echo

# follow_symlinks() doesn't expand symlinks in the middle of a name.
: > source/x
echo "check source/x -> source/x"
   { set +x
$as_echo "$at_srcdir/file_name.at:81: ovstest test-util follow-symlinks \"source/x\""
at_fn_check_prepare_trace "file_name.at:81"
( $at_check_trace; ovstest test-util follow-symlinks "source/x"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "source/x
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/file_name.at:81"
$at_failed && at_fn_log_failure
$at_traceon; }

   echo
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_508
#AT_START_509
at_fn_group_banner 509 'file_name.at:84' \
  "follow_symlinks - nonexistent targets" "          " 30
at_xfail=no
(
  $as_echo "509. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

ln -s target source
$as_echo "file_name.at:86" >"$at_check_line_file"
(test ! -h source) \
  && at_fn_check_skip 77 "$at_srcdir/file_name.at:86"
echo "check source -> target"
   { set +x
$as_echo "$at_srcdir/file_name.at:87: ovstest test-util follow-symlinks \"source\""
at_fn_check_prepare_trace "file_name.at:87"
( $at_check_trace; ovstest test-util follow-symlinks "source"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "target
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/file_name.at:87"
$at_failed && at_fn_log_failure
$at_traceon; }

   echo
echo "check target -> target"
   { set +x
$as_echo "$at_srcdir/file_name.at:88: ovstest test-util follow-symlinks \"target\""
at_fn_check_prepare_trace "file_name.at:88"
( $at_check_trace; ovstest test-util follow-symlinks "target"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "target
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/file_name.at:88"
$at_failed && at_fn_log_failure
$at_traceon; }

   echo
echo "check target -> target"
   { set +x
$as_echo "$at_srcdir/file_name.at:89: ovstest test-util follow-symlinks \"target\""
at_fn_check_prepare_trace "file_name.at:89"
( $at_check_trace; ovstest test-util follow-symlinks "target"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "target
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/file_name.at:89"
$at_failed && at_fn_log_failure
$at_traceon; }

   echo
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_509
#AT_START_510
at_fn_group_banner 510 'file_name.at:92' \
  "follow_symlinks - regular files" "                " 30
at_xfail=no
(
  $as_echo "510. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

touch x
echo "check x -> x"
   { set +x
$as_echo "$at_srcdir/file_name.at:94: ovstest test-util follow-symlinks \"x\""
at_fn_check_prepare_trace "file_name.at:94"
( $at_check_trace; ovstest test-util follow-symlinks "x"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "x
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/file_name.at:94"
$at_failed && at_fn_log_failure
$at_traceon; }

   echo
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_510
#AT_START_511
at_fn_group_banner 511 'file_name.at:97' \
  "follow_symlinks - device targets" "               " 30
at_xfail=no
(
  $as_echo "511. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "file_name.at:98" >"$at_check_line_file"
(test ! -e /dev/null) \
  && at_fn_check_skip 77 "$at_srcdir/file_name.at:98"
$as_echo "file_name.at:99" >"$at_check_line_file"
(test ! -e /dev/full) \
  && at_fn_check_skip 77 "$at_srcdir/file_name.at:99"
ln -s /dev/null x
ln -s /dev/full y
echo "check x -> /dev/null"
   { set +x
$as_echo "$at_srcdir/file_name.at:102: ovstest test-util follow-symlinks \"x\""
at_fn_check_prepare_trace "file_name.at:102"
( $at_check_trace; ovstest test-util follow-symlinks "x"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "/dev/null
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/file_name.at:102"
$at_failed && at_fn_log_failure
$at_traceon; }

   echo
echo "check y -> /dev/full"
   { set +x
$as_echo "$at_srcdir/file_name.at:103: ovstest test-util follow-symlinks \"y\""
at_fn_check_prepare_trace "file_name.at:103"
( $at_check_trace; ovstest test-util follow-symlinks "y"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "/dev/full
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/file_name.at:103"
$at_failed && at_fn_log_failure
$at_traceon; }

   echo
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_511
#AT_START_512
at_fn_group_banner 512 'file_name.at:106' \
  "follow_symlinks - nonexistent files" "            " 30
at_xfail=no
(
  $as_echo "512. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "file_name.at:107" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/file_name.at:107"
echo "check nonexistent -> nonexistent"
   { set +x
$as_echo "$at_srcdir/file_name.at:108: ovstest test-util follow-symlinks \"nonexistent\""
at_fn_check_prepare_trace "file_name.at:108"
( $at_check_trace; ovstest test-util follow-symlinks "nonexistent"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "nonexistent
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/file_name.at:108"
$at_failed && at_fn_log_failure
$at_traceon; }

   echo
echo "check a/b/c -> a/b/c"
   { set +x
$as_echo "$at_srcdir/file_name.at:109: ovstest test-util follow-symlinks \"a/b/c\""
at_fn_check_prepare_trace "file_name.at:109"
( $at_check_trace; ovstest test-util follow-symlinks "a/b/c"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a/b/c
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/file_name.at:109"
$at_failed && at_fn_log_failure
$at_traceon; }

   echo
echo "check /a/b/c -> /a/b/c"
   { set +x
$as_echo "$at_srcdir/file_name.at:110: ovstest test-util follow-symlinks \"/a/b/c\""
at_fn_check_prepare_trace "file_name.at:110"
( $at_check_trace; ovstest test-util follow-symlinks "/a/b/c"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "/a/b/c
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/file_name.at:110"
$at_failed && at_fn_log_failure
$at_traceon; }

   echo
echo "check //a/b/c -> //a/b/c"
   { set +x
$as_echo "$at_srcdir/file_name.at:111: ovstest test-util follow-symlinks \"//a/b/c\""
at_fn_check_prepare_trace "file_name.at:111"
( $at_check_trace; ovstest test-util follow-symlinks "//a/b/c"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "//a/b/c
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/file_name.at:111"
$at_failed && at_fn_log_failure
$at_traceon; }

   echo
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_512
#AT_START_513
at_fn_group_banner 513 'file_name.at:114' \
  "follow_symlinks - symlink loop" "                 " 30
at_xfail=no
(
  $as_echo "513. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

ln -s a b
$as_echo "file_name.at:116" >"$at_check_line_file"
(test ! -h b) \
  && at_fn_check_skip 77 "$at_srcdir/file_name.at:116"
ln -s b a
$as_echo "file_name.at:118" >"$at_check_line_file"
(test ! -h a) \
  && at_fn_check_skip 77 "$at_srcdir/file_name.at:118"

{ set +x
$as_echo "$at_srcdir/file_name.at:120: ovstest test-util follow-symlinks a"
at_fn_check_prepare_trace "file_name.at:120"
( $at_check_trace; ovstest test-util follow-symlinks a
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/file_name.at:120"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/file_name.at:122: sed 's/^[^|]*|//' stderr"
at_fn_check_prepare_notrace 'a shell pipeline' "file_name.at:122"
( $at_check_trace; sed 's/^[^|]*|//' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "00001|util|WARN|a: too many levels of symlinks
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/file_name.at:122"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_513
#AT_START_514
at_fn_group_banner 514 'aes128.at:10' \
  "wikipedia test vector 1" "                        " 31
at_xfail=no
(
  $as_echo "514. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/aes128.at:10: ovstest test-aes128 00010203050607080a0b0c0d0f101112 506812a45f08c889b97f5980038b8359"
at_fn_check_prepare_trace "aes128.at:10"
( $at_check_trace; ovstest test-aes128 00010203050607080a0b0c0d0f101112 506812a45f08c889b97f5980038b8359
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "d8f532538289ef7d06b506a4fd5be9c9
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/aes128.at:10"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_514
#AT_START_515
at_fn_group_banner 515 'aes128.at:16' \
  "wikipedia test vector 2" "                        " 31
at_xfail=no
(
  $as_echo "515. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/aes128.at:16: ovstest test-aes128 95A8EE8E89979B9EFDCBC6EB9797528D 4ec137a426dabf8aa0beb8bc0c2b89d6"
at_fn_check_prepare_trace "aes128.at:16"
( $at_check_trace; ovstest test-aes128 95A8EE8E89979B9EFDCBC6EB9797528D 4ec137a426dabf8aa0beb8bc0c2b89d6
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "d9b65d1232ba0199cdbd487b2a1fd646
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/aes128.at:16"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_515
#AT_START_516
at_fn_group_banner 516 'aes128.at:22' \
  "NIST KAT ECBKeySbox128e vector 0" "               " 31
at_xfail=no
(
  $as_echo "516. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/aes128.at:22: ovstest test-aes128 10a58869d74be5a374cf867cfb473859 00000000000000000000000000000000"
at_fn_check_prepare_trace "aes128.at:22"
( $at_check_trace; ovstest test-aes128 10a58869d74be5a374cf867cfb473859 00000000000000000000000000000000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "6d251e6944b051e04eaa6fb4dbf78465
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/aes128.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_516
#AT_START_517
at_fn_group_banner 517 'aes128.at:28' \
  "NIST KAT ECBKeySbox128e vector 1" "               " 31
at_xfail=no
(
  $as_echo "517. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/aes128.at:28: ovstest test-aes128 caea65cdbb75e9169ecd22ebe6e54675 00000000000000000000000000000000"
at_fn_check_prepare_trace "aes128.at:28"
( $at_check_trace; ovstest test-aes128 caea65cdbb75e9169ecd22ebe6e54675 00000000000000000000000000000000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "6e29201190152df4ee058139def610bb
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/aes128.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_517
#AT_START_518
at_fn_group_banner 518 'aes128.at:34' \
  "NIST KAT ECBKeySbox128e vector 2" "               " 31
at_xfail=no
(
  $as_echo "518. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/aes128.at:34: ovstest test-aes128 a2e2fa9baf7d20822ca9f0542f764a41 00000000000000000000000000000000"
at_fn_check_prepare_trace "aes128.at:34"
( $at_check_trace; ovstest test-aes128 a2e2fa9baf7d20822ca9f0542f764a41 00000000000000000000000000000000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "c3b44b95d9d2f25670eee9a0de099fa3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/aes128.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_518
#AT_START_519
at_fn_group_banner 519 'aes128.at:40' \
  "NIST KAT ECBKeySbox128e vector 3" "               " 31
at_xfail=no
(
  $as_echo "519. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/aes128.at:40: ovstest test-aes128 b6364ac4e1de1e285eaf144a2415f7a0 00000000000000000000000000000000"
at_fn_check_prepare_trace "aes128.at:40"
( $at_check_trace; ovstest test-aes128 b6364ac4e1de1e285eaf144a2415f7a0 00000000000000000000000000000000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "5d9b05578fc944b3cf1ccf0e746cd581
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/aes128.at:40"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_519
#AT_START_520
at_fn_group_banner 520 'aes128.at:46' \
  "NIST KAT ECBKeySbox128e vector 4" "               " 31
at_xfail=no
(
  $as_echo "520. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/aes128.at:46: ovstest test-aes128 64cf9c7abc50b888af65f49d521944b2 00000000000000000000000000000000"
at_fn_check_prepare_trace "aes128.at:46"
( $at_check_trace; ovstest test-aes128 64cf9c7abc50b888af65f49d521944b2 00000000000000000000000000000000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "f7efc89d5dba578104016ce5ad659c05
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/aes128.at:46"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_520
#AT_START_521
at_fn_group_banner 521 'aes128.at:52' \
  "NIST KAT ECBKeySbox128e vector 5" "               " 31
at_xfail=no
(
  $as_echo "521. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/aes128.at:52: ovstest test-aes128 47d6742eefcc0465dc96355e851b64d9 00000000000000000000000000000000"
at_fn_check_prepare_trace "aes128.at:52"
( $at_check_trace; ovstest test-aes128 47d6742eefcc0465dc96355e851b64d9 00000000000000000000000000000000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0306194f666d183624aa230a8b264ae7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/aes128.at:52"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_521
#AT_START_522
at_fn_group_banner 522 'aes128.at:58' \
  "NIST KAT ECBKeySbox128e vector 6" "               " 31
at_xfail=no
(
  $as_echo "522. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/aes128.at:58: ovstest test-aes128 3eb39790678c56bee34bbcdeccf6cdb5 00000000000000000000000000000000"
at_fn_check_prepare_trace "aes128.at:58"
( $at_check_trace; ovstest test-aes128 3eb39790678c56bee34bbcdeccf6cdb5 00000000000000000000000000000000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "858075d536d79ccee571f7d7204b1f67
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/aes128.at:58"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_522
#AT_START_523
at_fn_group_banner 523 'aes128.at:64' \
  "NIST KAT ECBKeySbox128e vector 7" "               " 31
at_xfail=no
(
  $as_echo "523. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/aes128.at:64: ovstest test-aes128 64110a924f0743d500ccadae72c13427 00000000000000000000000000000000"
at_fn_check_prepare_trace "aes128.at:64"
( $at_check_trace; ovstest test-aes128 64110a924f0743d500ccadae72c13427 00000000000000000000000000000000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "35870c6a57e9e92314bcb8087cde72ce
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/aes128.at:64"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_523
#AT_START_524
at_fn_group_banner 524 'aes128.at:70' \
  "NIST KAT ECBKeySbox128e vector 8" "               " 31
at_xfail=no
(
  $as_echo "524. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/aes128.at:70: ovstest test-aes128 18d8126516f8a12ab1a36d9f04d68e51 00000000000000000000000000000000"
at_fn_check_prepare_trace "aes128.at:70"
( $at_check_trace; ovstest test-aes128 18d8126516f8a12ab1a36d9f04d68e51 00000000000000000000000000000000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "6c68e9be5ec41e22c825b7c7affb4363
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/aes128.at:70"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_524
#AT_START_525
at_fn_group_banner 525 'aes128.at:76' \
  "NIST KAT ECBKeySbox128e vector 9" "               " 31
at_xfail=no
(
  $as_echo "525. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/aes128.at:76: ovstest test-aes128 f530357968578480b398a3c251cd1093 00000000000000000000000000000000"
at_fn_check_prepare_trace "aes128.at:76"
( $at_check_trace; ovstest test-aes128 f530357968578480b398a3c251cd1093 00000000000000000000000000000000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "f5df39990fc688f1b07224cc03e86cea
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/aes128.at:76"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_525
#AT_START_526
at_fn_group_banner 526 'aes128.at:82' \
  "NIST KAT ECBKeySbox128e vector 10" "              " 31
at_xfail=no
(
  $as_echo "526. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/aes128.at:82: ovstest test-aes128 da84367f325d42d601b4326964802e8e 00000000000000000000000000000000"
at_fn_check_prepare_trace "aes128.at:82"
( $at_check_trace; ovstest test-aes128 da84367f325d42d601b4326964802e8e 00000000000000000000000000000000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "bba071bcb470f8f6586e5d3add18bc66
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/aes128.at:82"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_526
#AT_START_527
at_fn_group_banner 527 'aes128.at:88' \
  "NIST KAT ECBKeySbox128e vector 11" "              " 31
at_xfail=no
(
  $as_echo "527. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/aes128.at:88: ovstest test-aes128 e37b1c6aa2846f6fdb413f238b089f23 00000000000000000000000000000000"
at_fn_check_prepare_trace "aes128.at:88"
( $at_check_trace; ovstest test-aes128 e37b1c6aa2846f6fdb413f238b089f23 00000000000000000000000000000000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "43c9f7e62f5d288bb27aa40ef8fe1ea8
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/aes128.at:88"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_527
#AT_START_528
at_fn_group_banner 528 'aes128.at:94' \
  "NIST KAT ECBKeySbox128e vector 12" "              " 31
at_xfail=no
(
  $as_echo "528. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/aes128.at:94: ovstest test-aes128 6c002b682483e0cabcc731c253be5674 00000000000000000000000000000000"
at_fn_check_prepare_trace "aes128.at:94"
( $at_check_trace; ovstest test-aes128 6c002b682483e0cabcc731c253be5674 00000000000000000000000000000000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "3580d19cff44f1014a7c966a69059de5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/aes128.at:94"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_528
#AT_START_529
at_fn_group_banner 529 'aes128.at:100' \
  "NIST KAT ECBKeySbox128e vector 13" "              " 31
at_xfail=no
(
  $as_echo "529. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/aes128.at:100: ovstest test-aes128 143ae8ed6555aba96110ab58893a8ae1 00000000000000000000000000000000"
at_fn_check_prepare_trace "aes128.at:100"
( $at_check_trace; ovstest test-aes128 143ae8ed6555aba96110ab58893a8ae1 00000000000000000000000000000000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "806da864dd29d48deafbe764f8202aef
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/aes128.at:100"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_529
#AT_START_530
at_fn_group_banner 530 'aes128.at:106' \
  "NIST KAT ECBKeySbox128e vector 14" "              " 31
at_xfail=no
(
  $as_echo "530. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/aes128.at:106: ovstest test-aes128 b69418a85332240dc82492353956ae0c 00000000000000000000000000000000"
at_fn_check_prepare_trace "aes128.at:106"
( $at_check_trace; ovstest test-aes128 b69418a85332240dc82492353956ae0c 00000000000000000000000000000000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a303d940ded8f0baff6f75414cac5243
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/aes128.at:106"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_530
#AT_START_531
at_fn_group_banner 531 'aes128.at:112' \
  "NIST KAT ECBKeySbox128e vector 15" "              " 31
at_xfail=no
(
  $as_echo "531. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/aes128.at:112: ovstest test-aes128 71b5c08a1993e1362e4d0ce9b22b78d5 00000000000000000000000000000000"
at_fn_check_prepare_trace "aes128.at:112"
( $at_check_trace; ovstest test-aes128 71b5c08a1993e1362e4d0ce9b22b78d5 00000000000000000000000000000000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "c2dabd117f8a3ecabfbb11d12194d9d0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/aes128.at:112"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_531
#AT_START_532
at_fn_group_banner 532 'aes128.at:118' \
  "NIST KAT ECBKeySbox128e vector 16" "              " 31
at_xfail=no
(
  $as_echo "532. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/aes128.at:118: ovstest test-aes128 e234cdca2606b81f29408d5f6da21206 00000000000000000000000000000000"
at_fn_check_prepare_trace "aes128.at:118"
( $at_check_trace; ovstest test-aes128 e234cdca2606b81f29408d5f6da21206 00000000000000000000000000000000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "fff60a4740086b3b9c56195b98d91a7b
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/aes128.at:118"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_532
#AT_START_533
at_fn_group_banner 533 'aes128.at:124' \
  "NIST KAT ECBKeySbox128e vector 17" "              " 31
at_xfail=no
(
  $as_echo "533. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/aes128.at:124: ovstest test-aes128 13237c49074a3da078dc1d828bb78c6f 00000000000000000000000000000000"
at_fn_check_prepare_trace "aes128.at:124"
( $at_check_trace; ovstest test-aes128 13237c49074a3da078dc1d828bb78c6f 00000000000000000000000000000000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "8146a08e2357f0caa30ca8c94d1a0544
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/aes128.at:124"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_533
#AT_START_534
at_fn_group_banner 534 'aes128.at:130' \
  "NIST KAT ECBKeySbox128e vector 18" "              " 31
at_xfail=no
(
  $as_echo "534. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/aes128.at:130: ovstest test-aes128 3071a2a48fe6cbd04f1a129098e308f8 00000000000000000000000000000000"
at_fn_check_prepare_trace "aes128.at:130"
( $at_check_trace; ovstest test-aes128 3071a2a48fe6cbd04f1a129098e308f8 00000000000000000000000000000000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "4b98e06d356deb07ebb824e5713f7be3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/aes128.at:130"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_534
#AT_START_535
at_fn_group_banner 535 'aes128.at:136' \
  "NIST KAT ECBKeySbox128e vector 19" "              " 31
at_xfail=no
(
  $as_echo "535. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/aes128.at:136: ovstest test-aes128 90f42ec0f68385f2ffc5dfc03a654dce 00000000000000000000000000000000"
at_fn_check_prepare_trace "aes128.at:136"
( $at_check_trace; ovstest test-aes128 90f42ec0f68385f2ffc5dfc03a654dce 00000000000000000000000000000000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "7a20a53d460fc9ce0423a7a0764c6cf2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/aes128.at:136"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_535
#AT_START_536
at_fn_group_banner 536 'aes128.at:142' \
  "NIST KAT ECBKeySbox128e vector 20" "              " 31
at_xfail=no
(
  $as_echo "536. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/aes128.at:142: ovstest test-aes128 febd9a24d8b65c1c787d50a4ed3619a9 00000000000000000000000000000000"
at_fn_check_prepare_trace "aes128.at:142"
( $at_check_trace; ovstest test-aes128 febd9a24d8b65c1c787d50a4ed3619a9 00000000000000000000000000000000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "f4a70d8af877f9b02b4c40df57d45b17
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/aes128.at:142"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_536
#AT_START_537
at_fn_group_banner 537 'unixctl-py.at:20' \
  "unixctl ovs-vswitchd exit - Python2" "            " 32
at_xfail=no
(
  $as_echo "537. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "unixctl-py.at:20" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/unixctl-py.at:20"

      touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:20: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "unixctl-py.at:20"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:20"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/unixctl-py.at:20: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "unixctl-py.at:20"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:20"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:20: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "unixctl-py.at:20"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:20"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/unixctl-py.at:20: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "unixctl-py.at:20"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:20"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/unixctl-py.at:20: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "unixctl-py.at:20"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:20"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:20: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "unixctl-py.at:20"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:20"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/unixctl-py.at:20: add_of_br 0  "
at_fn_check_prepare_trace "unixctl-py.at:20"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:20"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/unixctl-py.at:20: \$PYTHON \$srcdir/appctl.py --timeout 20 -t ovs-vswitchd exit"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/appctl.py --timeout 20 -t ovs-vswitchd exit" "unixctl-py.at:20"
( $at_check_trace; $PYTHON $srcdir/appctl.py --timeout 20 -t ovs-vswitchd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:20"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "unixctl-py.at:20: waiting while test -s ovs-vswitchd.pid..." >&5
ovs_wait_cond () {
    if test -s ovs-vswitchd.pid; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "unixctl-py.at:20: wait failed" >&5

    $as_echo "unixctl-py.at:20" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/unixctl-py.at:20"
fi


   { set +x
$as_echo "$at_srcdir/unixctl-py.at:20: \$PYTHON \$srcdir/appctl.py --timeout 20 -t ovsdb-server exit"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/appctl.py --timeout 20 -t ovsdb-server exit" "unixctl-py.at:20"
( $at_check_trace; $PYTHON $srcdir/appctl.py --timeout 20 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:20"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "unixctl-py.at:20: waiting while test -s ovsdb-server.pid..." >&5
ovs_wait_cond () {
    if test -s ovsdb-server.pid; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "unixctl-py.at:20: wait failed" >&5

    $as_echo "unixctl-py.at:20" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/unixctl-py.at:20"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_537
#AT_START_538
at_fn_group_banner 538 'unixctl-py.at:21' \
  "unixctl ovs-vswitchd exit - Python3" "            " 32
at_xfail=no
(
  $as_echo "538. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "unixctl-py.at:21" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/unixctl-py.at:21"

      touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:21: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "unixctl-py.at:21"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:21"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/unixctl-py.at:21: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "unixctl-py.at:21"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:21"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:21: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "unixctl-py.at:21"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:21"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/unixctl-py.at:21: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "unixctl-py.at:21"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:21"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/unixctl-py.at:21: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "unixctl-py.at:21"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:21"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:21: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "unixctl-py.at:21"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:21"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/unixctl-py.at:21: add_of_br 0  "
at_fn_check_prepare_trace "unixctl-py.at:21"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:21"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/unixctl-py.at:21: \$PYTHON3 \$srcdir/appctl.py --timeout 20 -t ovs-vswitchd exit"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/appctl.py --timeout 20 -t ovs-vswitchd exit" "unixctl-py.at:21"
( $at_check_trace; $PYTHON3 $srcdir/appctl.py --timeout 20 -t ovs-vswitchd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:21"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "unixctl-py.at:21: waiting while test -s ovs-vswitchd.pid..." >&5
ovs_wait_cond () {
    if test -s ovs-vswitchd.pid; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "unixctl-py.at:21: wait failed" >&5

    $as_echo "unixctl-py.at:21" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/unixctl-py.at:21"
fi


   { set +x
$as_echo "$at_srcdir/unixctl-py.at:21: \$PYTHON3 \$srcdir/appctl.py --timeout 20 -t ovsdb-server exit"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/appctl.py --timeout 20 -t ovsdb-server exit" "unixctl-py.at:21"
( $at_check_trace; $PYTHON3 $srcdir/appctl.py --timeout 20 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:21"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "unixctl-py.at:21: waiting while test -s ovsdb-server.pid..." >&5
ovs_wait_cond () {
    if test -s ovsdb-server.pid; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "unixctl-py.at:21: wait failed" >&5

    $as_echo "unixctl-py.at:21" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/unixctl-py.at:21"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_538
#AT_START_539
at_fn_group_banner 539 'unixctl-py.at:38' \
  "unixctl ovs-vswitchd list-commands - Python2" "   " 32
at_xfail=no
(
  $as_echo "539. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "unixctl-py.at:38" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/unixctl-py.at:38"
      touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:38: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "unixctl-py.at:38"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:38"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/unixctl-py.at:38: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "unixctl-py.at:38"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:38"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:38: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "unixctl-py.at:38"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:38"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/unixctl-py.at:38: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "unixctl-py.at:38"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:38"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/unixctl-py.at:38: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "unixctl-py.at:38"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:38"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:38: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "unixctl-py.at:38"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:38"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/unixctl-py.at:38: add_of_br 0  "
at_fn_check_prepare_trace "unixctl-py.at:38"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:38"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/unixctl-py.at:38: ovs-appctl --timeout 20 list-commands"
at_fn_check_prepare_trace "unixctl-py.at:38"
( $at_check_trace; ovs-appctl --timeout 20 list-commands
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:38"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:38: head -1 stdout"
at_fn_check_prepare_trace "unixctl-py.at:38"
( $at_check_trace; head -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "The available commands are:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:38"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   mv stdout expout
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:38: \$PYTHON \$srcdir/appctl.py --timeout 20 list-commands"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/appctl.py --timeout 20 list-commands" "unixctl-py.at:38"
( $at_check_trace; $PYTHON $srcdir/appctl.py --timeout 20 list-commands
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:38"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/unixctl-py.at:38: check_logs "
at_fn_check_prepare_trace "unixctl-py.at:38"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:38"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:38: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "unixctl-py.at:38"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:38"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:38: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "unixctl-py.at:38"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:38"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "unixctl-py.at:38: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "unixctl-py.at:38: wait failed" >&5

    $as_echo "unixctl-py.at:38" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/unixctl-py.at:38"
fi

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:38: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "unixctl-py.at:38"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:38"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:38: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "unixctl-py.at:38"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:38"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "unixctl-py.at:38: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "unixctl-py.at:38: wait failed" >&5

    $as_echo "unixctl-py.at:38" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/unixctl-py.at:38"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_539
#AT_START_540
at_fn_group_banner 540 'unixctl-py.at:39' \
  "unixctl ovs-vswitchd list-commands - Python3" "   " 32
at_xfail=no
(
  $as_echo "540. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "unixctl-py.at:39" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/unixctl-py.at:39"
      touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:39: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "unixctl-py.at:39"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:39"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/unixctl-py.at:39: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "unixctl-py.at:39"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:39"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:39: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "unixctl-py.at:39"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:39"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/unixctl-py.at:39: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "unixctl-py.at:39"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:39"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/unixctl-py.at:39: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "unixctl-py.at:39"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:39"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:39: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "unixctl-py.at:39"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:39"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/unixctl-py.at:39: add_of_br 0  "
at_fn_check_prepare_trace "unixctl-py.at:39"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:39"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/unixctl-py.at:39: ovs-appctl --timeout 20 list-commands"
at_fn_check_prepare_trace "unixctl-py.at:39"
( $at_check_trace; ovs-appctl --timeout 20 list-commands
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:39"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:39: head -1 stdout"
at_fn_check_prepare_trace "unixctl-py.at:39"
( $at_check_trace; head -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "The available commands are:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:39"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   mv stdout expout
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:39: \$PYTHON3 \$srcdir/appctl.py --timeout 20 list-commands"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/appctl.py --timeout 20 list-commands" "unixctl-py.at:39"
( $at_check_trace; $PYTHON3 $srcdir/appctl.py --timeout 20 list-commands
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:39"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/unixctl-py.at:39: check_logs "
at_fn_check_prepare_trace "unixctl-py.at:39"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:39"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:39: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "unixctl-py.at:39"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:39"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:39: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "unixctl-py.at:39"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:39"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "unixctl-py.at:39: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "unixctl-py.at:39: wait failed" >&5

    $as_echo "unixctl-py.at:39" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/unixctl-py.at:39"
fi

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:39: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "unixctl-py.at:39"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:39"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:39: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "unixctl-py.at:39"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:39"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "unixctl-py.at:39: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "unixctl-py.at:39: wait failed" >&5

    $as_echo "unixctl-py.at:39" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/unixctl-py.at:39"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_540
#AT_START_541
at_fn_group_banner 541 'unixctl-py.at:84' \
  "unixctl ovs-vswitchd arguments - Python2" "       " 32
at_xfail=no
(
  $as_echo "541. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "unixctl-py.at:84" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/unixctl-py.at:84"
      touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:84: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "unixctl-py.at:84"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:84"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/unixctl-py.at:84: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "unixctl-py.at:84"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:84"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:84: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "unixctl-py.at:84"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:84"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/unixctl-py.at:84: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "unixctl-py.at:84"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:84"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/unixctl-py.at:84: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "unixctl-py.at:84"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:84"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:84: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "unixctl-py.at:84"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:84"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/unixctl-py.at:84: add_of_br 0  "
at_fn_check_prepare_trace "unixctl-py.at:84"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:84"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/unixctl-py.at:84: ovs-appctl --timeout 20 bond/hash"
at_fn_check_prepare_trace "unixctl-py.at:84"
( $at_check_trace; ovs-appctl --timeout 20 bond/hash
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/unixctl-py.at:84"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:84: head -1 stderr"
at_fn_check_prepare_trace "unixctl-py.at:84"
( $at_check_trace; head -1 stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"bond/hash\" command requires at least 1 arguments
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:84"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   sed 's/ovs-appctl/appctl.py/' stderr > experr
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:84: \$PYTHON \$srcdir/appctl.py --timeout 20 bond/hash"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/appctl.py --timeout 20 bond/hash" "unixctl-py.at:84"
( $at_check_trace; $PYTHON $srcdir/appctl.py --timeout 20 bond/hash
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/unixctl-py.at:84"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/unixctl-py.at:84: ovs-appctl --timeout 20 bond/hash mac"
at_fn_check_prepare_trace "unixctl-py.at:84"
( $at_check_trace; ovs-appctl --timeout 20 bond/hash mac
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/unixctl-py.at:84"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:84: head -1 stderr"
at_fn_check_prepare_trace "unixctl-py.at:84"
( $at_check_trace; head -1 stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "invalid mac
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:84"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   sed 's/ovs-appctl/appctl.py/' stderr > experr
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:84: \$PYTHON \$srcdir/appctl.py --timeout 20 bond/hash mac"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/appctl.py --timeout 20 bond/hash mac" "unixctl-py.at:84"
( $at_check_trace; $PYTHON $srcdir/appctl.py --timeout 20 bond/hash mac
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/unixctl-py.at:84"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/unixctl-py.at:84: ovs-appctl --timeout 20 bond/hash mac vlan"
at_fn_check_prepare_trace "unixctl-py.at:84"
( $at_check_trace; ovs-appctl --timeout 20 bond/hash mac vlan
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/unixctl-py.at:84"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:84: head -1 stderr"
at_fn_check_prepare_trace "unixctl-py.at:84"
( $at_check_trace; head -1 stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "invalid vlan
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:84"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   sed 's/ovs-appctl/appctl.py/' stderr > experr
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:84: \$PYTHON \$srcdir/appctl.py --timeout 20 bond/hash mac vlan"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/appctl.py --timeout 20 bond/hash mac vlan" "unixctl-py.at:84"
( $at_check_trace; $PYTHON $srcdir/appctl.py --timeout 20 bond/hash mac vlan
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/unixctl-py.at:84"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/unixctl-py.at:84: ovs-appctl --timeout 20 bond/hash mac vlan basis"
at_fn_check_prepare_trace "unixctl-py.at:84"
( $at_check_trace; ovs-appctl --timeout 20 bond/hash mac vlan basis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/unixctl-py.at:84"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:84: head -1 stderr"
at_fn_check_prepare_trace "unixctl-py.at:84"
( $at_check_trace; head -1 stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "invalid vlan
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:84"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   sed 's/ovs-appctl/appctl.py/' stderr > experr
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:84: \$PYTHON \$srcdir/appctl.py --timeout 20 bond/hash vlan basis"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/appctl.py --timeout 20 bond/hash vlan basis" "unixctl-py.at:84"
( $at_check_trace; $PYTHON $srcdir/appctl.py --timeout 20 bond/hash vlan basis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/unixctl-py.at:84"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/unixctl-py.at:84: ovs-appctl --timeout 20 bond/hash mac vlan basis extra"
at_fn_check_prepare_trace "unixctl-py.at:84"
( $at_check_trace; ovs-appctl --timeout 20 bond/hash mac vlan basis extra
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/unixctl-py.at:84"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:84: head -1 stderr"
at_fn_check_prepare_trace "unixctl-py.at:84"
( $at_check_trace; head -1 stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"bond/hash\" command takes at most 3 arguments
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:84"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   sed 's/ovs-appctl/appctl.py/' stderr > experr
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:84: \$PYTHON \$srcdir/appctl.py --timeout 20 bond/hash mac vlan basis extra"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/appctl.py --timeout 20 bond/hash mac vlan basis extra" "unixctl-py.at:84"
( $at_check_trace; $PYTHON $srcdir/appctl.py --timeout 20 bond/hash mac vlan basis extra
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/unixctl-py.at:84"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/unixctl-py.at:84: check_logs "
at_fn_check_prepare_trace "unixctl-py.at:84"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:84"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:84: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "unixctl-py.at:84"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:84"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:84: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "unixctl-py.at:84"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:84"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "unixctl-py.at:84: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "unixctl-py.at:84: wait failed" >&5

    $as_echo "unixctl-py.at:84" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/unixctl-py.at:84"
fi

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:84: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "unixctl-py.at:84"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:84"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:84: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "unixctl-py.at:84"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:84"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "unixctl-py.at:84: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "unixctl-py.at:84: wait failed" >&5

    $as_echo "unixctl-py.at:84" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/unixctl-py.at:84"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_541
#AT_START_542
at_fn_group_banner 542 'unixctl-py.at:85' \
  "unixctl ovs-vswitchd arguments - Python3" "       " 32
at_xfail=no
(
  $as_echo "542. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "unixctl-py.at:85" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/unixctl-py.at:85"
      touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:85: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "unixctl-py.at:85"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:85"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/unixctl-py.at:85: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "unixctl-py.at:85"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:85"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:85: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "unixctl-py.at:85"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:85"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/unixctl-py.at:85: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "unixctl-py.at:85"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:85"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/unixctl-py.at:85: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "unixctl-py.at:85"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:85"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:85: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "unixctl-py.at:85"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:85"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/unixctl-py.at:85: add_of_br 0  "
at_fn_check_prepare_trace "unixctl-py.at:85"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:85"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/unixctl-py.at:85: ovs-appctl --timeout 20 bond/hash"
at_fn_check_prepare_trace "unixctl-py.at:85"
( $at_check_trace; ovs-appctl --timeout 20 bond/hash
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/unixctl-py.at:85"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:85: head -1 stderr"
at_fn_check_prepare_trace "unixctl-py.at:85"
( $at_check_trace; head -1 stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"bond/hash\" command requires at least 1 arguments
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:85"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   sed 's/ovs-appctl/appctl.py/' stderr > experr
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:85: \$PYTHON3 \$srcdir/appctl.py --timeout 20 bond/hash"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/appctl.py --timeout 20 bond/hash" "unixctl-py.at:85"
( $at_check_trace; $PYTHON3 $srcdir/appctl.py --timeout 20 bond/hash
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/unixctl-py.at:85"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/unixctl-py.at:85: ovs-appctl --timeout 20 bond/hash mac"
at_fn_check_prepare_trace "unixctl-py.at:85"
( $at_check_trace; ovs-appctl --timeout 20 bond/hash mac
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/unixctl-py.at:85"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:85: head -1 stderr"
at_fn_check_prepare_trace "unixctl-py.at:85"
( $at_check_trace; head -1 stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "invalid mac
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:85"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   sed 's/ovs-appctl/appctl.py/' stderr > experr
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:85: \$PYTHON3 \$srcdir/appctl.py --timeout 20 bond/hash mac"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/appctl.py --timeout 20 bond/hash mac" "unixctl-py.at:85"
( $at_check_trace; $PYTHON3 $srcdir/appctl.py --timeout 20 bond/hash mac
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/unixctl-py.at:85"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/unixctl-py.at:85: ovs-appctl --timeout 20 bond/hash mac vlan"
at_fn_check_prepare_trace "unixctl-py.at:85"
( $at_check_trace; ovs-appctl --timeout 20 bond/hash mac vlan
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/unixctl-py.at:85"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:85: head -1 stderr"
at_fn_check_prepare_trace "unixctl-py.at:85"
( $at_check_trace; head -1 stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "invalid vlan
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:85"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   sed 's/ovs-appctl/appctl.py/' stderr > experr
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:85: \$PYTHON3 \$srcdir/appctl.py --timeout 20 bond/hash mac vlan"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/appctl.py --timeout 20 bond/hash mac vlan" "unixctl-py.at:85"
( $at_check_trace; $PYTHON3 $srcdir/appctl.py --timeout 20 bond/hash mac vlan
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/unixctl-py.at:85"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/unixctl-py.at:85: ovs-appctl --timeout 20 bond/hash mac vlan basis"
at_fn_check_prepare_trace "unixctl-py.at:85"
( $at_check_trace; ovs-appctl --timeout 20 bond/hash mac vlan basis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/unixctl-py.at:85"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:85: head -1 stderr"
at_fn_check_prepare_trace "unixctl-py.at:85"
( $at_check_trace; head -1 stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "invalid vlan
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:85"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   sed 's/ovs-appctl/appctl.py/' stderr > experr
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:85: \$PYTHON3 \$srcdir/appctl.py --timeout 20 bond/hash vlan basis"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/appctl.py --timeout 20 bond/hash vlan basis" "unixctl-py.at:85"
( $at_check_trace; $PYTHON3 $srcdir/appctl.py --timeout 20 bond/hash vlan basis
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/unixctl-py.at:85"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/unixctl-py.at:85: ovs-appctl --timeout 20 bond/hash mac vlan basis extra"
at_fn_check_prepare_trace "unixctl-py.at:85"
( $at_check_trace; ovs-appctl --timeout 20 bond/hash mac vlan basis extra
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/unixctl-py.at:85"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:85: head -1 stderr"
at_fn_check_prepare_trace "unixctl-py.at:85"
( $at_check_trace; head -1 stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"bond/hash\" command takes at most 3 arguments
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:85"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   sed 's/ovs-appctl/appctl.py/' stderr > experr
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:85: \$PYTHON3 \$srcdir/appctl.py --timeout 20 bond/hash mac vlan basis extra"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/appctl.py --timeout 20 bond/hash mac vlan basis extra" "unixctl-py.at:85"
( $at_check_trace; $PYTHON3 $srcdir/appctl.py --timeout 20 bond/hash mac vlan basis extra
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/unixctl-py.at:85"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/unixctl-py.at:85: check_logs "
at_fn_check_prepare_trace "unixctl-py.at:85"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:85"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:85: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "unixctl-py.at:85"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:85"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:85: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "unixctl-py.at:85"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:85"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "unixctl-py.at:85: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "unixctl-py.at:85: wait failed" >&5

    $as_echo "unixctl-py.at:85" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/unixctl-py.at:85"
fi

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:85: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "unixctl-py.at:85"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:85"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:85: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "unixctl-py.at:85"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:85"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "unixctl-py.at:85: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "unixctl-py.at:85: wait failed" >&5

    $as_echo "unixctl-py.at:85" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/unixctl-py.at:85"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_542
#AT_START_543
at_fn_group_banner 543 'unixctl-py.at:109' \
  "unixctl bad target - Python2" "                   " 32
at_xfail=no
(
  $as_echo "543. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "unixctl-py.at:109" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/unixctl-py.at:109"

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:109: \$PYTHON \$srcdir/appctl.py --timeout 20 -t bogus doit"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/appctl.py --timeout 20 -t bogus doit" "unixctl-py.at:109"
( $at_check_trace; $PYTHON $srcdir/appctl.py --timeout 20 -t bogus doit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/unixctl-py.at:109"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:109: tail -1 stderr"
at_fn_check_prepare_trace "unixctl-py.at:109"
( $at_check_trace; tail -1 stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "appctl.py: cannot read pidfile \"`pwd`/bogus.pid\" (No such file or directory)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:109"
$at_failed && at_fn_log_failure
$at_traceon; }

   if test "$IS_WIN32" = "no"; then
     { set +x
$as_echo "$at_srcdir/unixctl-py.at:109: \$PYTHON \$srcdir/appctl.py --timeout 20 -t /bogus/path.pid doit"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/appctl.py --timeout 20 -t /bogus/path.pid doit" "unixctl-py.at:109"
( $at_check_trace; $PYTHON $srcdir/appctl.py --timeout 20 -t /bogus/path.pid doit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/unixctl-py.at:109"
$at_failed && at_fn_log_failure
$at_traceon; }

     { set +x
$as_echo "$at_srcdir/unixctl-py.at:109: tail -1 stderr"
at_fn_check_prepare_trace "unixctl-py.at:109"
( $at_check_trace; tail -1 stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "appctl.py: cannot connect to \"/bogus/path.pid\" (No such file or directory)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:109"
$at_failed && at_fn_log_failure
$at_traceon; }

   else
     { set +x
$as_echo "$at_srcdir/unixctl-py.at:109: \$PYTHON \$srcdir/appctl.py --timeout 20 -t c:/bogus/path.pid doit"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/appctl.py --timeout 20 -t c:/bogus/path.pid doit" "unixctl-py.at:109"
( $at_check_trace; $PYTHON $srcdir/appctl.py --timeout 20 -t c:/bogus/path.pid doit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/unixctl-py.at:109"
$at_failed && at_fn_log_failure
$at_traceon; }

     { set +x
$as_echo "$at_srcdir/unixctl-py.at:109: tail -1 stderr"
at_fn_check_prepare_trace "unixctl-py.at:109"
( $at_check_trace; tail -1 stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "appctl.py: cannot connect to \"c:/bogus/path.pid\" (No such file or directory)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:109"
$at_failed && at_fn_log_failure
$at_traceon; }

   fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_543
#AT_START_544
at_fn_group_banner 544 'unixctl-py.at:110' \
  "unixctl bad target - Python3" "                   " 32
at_xfail=no
(
  $as_echo "544. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "unixctl-py.at:110" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/unixctl-py.at:110"

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:110: \$PYTHON3 \$srcdir/appctl.py --timeout 20 -t bogus doit"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/appctl.py --timeout 20 -t bogus doit" "unixctl-py.at:110"
( $at_check_trace; $PYTHON3 $srcdir/appctl.py --timeout 20 -t bogus doit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/unixctl-py.at:110"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:110: tail -1 stderr"
at_fn_check_prepare_trace "unixctl-py.at:110"
( $at_check_trace; tail -1 stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "appctl.py: cannot read pidfile \"`pwd`/bogus.pid\" (No such file or directory)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:110"
$at_failed && at_fn_log_failure
$at_traceon; }

   if test "$IS_WIN32" = "no"; then
     { set +x
$as_echo "$at_srcdir/unixctl-py.at:110: \$PYTHON3 \$srcdir/appctl.py --timeout 20 -t /bogus/path.pid doit"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/appctl.py --timeout 20 -t /bogus/path.pid doit" "unixctl-py.at:110"
( $at_check_trace; $PYTHON3 $srcdir/appctl.py --timeout 20 -t /bogus/path.pid doit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/unixctl-py.at:110"
$at_failed && at_fn_log_failure
$at_traceon; }

     { set +x
$as_echo "$at_srcdir/unixctl-py.at:110: tail -1 stderr"
at_fn_check_prepare_trace "unixctl-py.at:110"
( $at_check_trace; tail -1 stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "appctl.py: cannot connect to \"/bogus/path.pid\" (No such file or directory)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:110"
$at_failed && at_fn_log_failure
$at_traceon; }

   else
     { set +x
$as_echo "$at_srcdir/unixctl-py.at:110: \$PYTHON3 \$srcdir/appctl.py --timeout 20 -t c:/bogus/path.pid doit"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/appctl.py --timeout 20 -t c:/bogus/path.pid doit" "unixctl-py.at:110"
( $at_check_trace; $PYTHON3 $srcdir/appctl.py --timeout 20 -t c:/bogus/path.pid doit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/unixctl-py.at:110"
$at_failed && at_fn_log_failure
$at_traceon; }

     { set +x
$as_echo "$at_srcdir/unixctl-py.at:110: tail -1 stderr"
at_fn_check_prepare_trace "unixctl-py.at:110"
( $at_check_trace; tail -1 stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "appctl.py: cannot connect to \"c:/bogus/path.pid\" (No such file or directory)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:110"
$at_failed && at_fn_log_failure
$at_traceon; }

   fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_544
#AT_START_545
at_fn_group_banner 545 'unixctl-py.at:183' \
  "unixctl server - Python2" "                       " 32
at_xfail=no
(
  $as_echo "545. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "unixctl-py.at:183" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/unixctl-py.at:183"
   on_exit 'kill `cat test-unixctl.py.pid`'

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:183: \$PYTHON \$srcdir/test-unixctl.py --log-file --pidfile --detach"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-unixctl.py --log-file --pidfile --detach" "unixctl-py.at:183"
( $at_check_trace; $PYTHON $srcdir/test-unixctl.py --log-file --pidfile --detach
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:183"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/unixctl-py.at:183: ovs-appctl --timeout 20 -t test-unixctl.py help"
at_fn_check_prepare_trace "unixctl-py.at:183"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py help
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:183"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:183: cat stdout"
at_fn_check_prepare_trace "unixctl-py.at:183"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "The available commands are:
  block
  echo                    [arg ...]
  echo_error              [arg ...]
  exit
  help
  log                     [arg ...]
  version
  vlog/close
  vlog/list
  vlog/reopen
  vlog/set                spec
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:183"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }

   mv stdout expout
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:183: \$PYTHON \$srcdir/appctl.py --timeout 20 -t test-unixctl.py help"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/appctl.py --timeout 20 -t test-unixctl.py help" "unixctl-py.at:183"
( $at_check_trace; $PYTHON $srcdir/appctl.py --timeout 20 -t test-unixctl.py help
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:183"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/unixctl-py.at:183: ovs-vsctl --version | sed 's/ovs-vsctl/test-unixctl.py/' | head -1 > expout"
at_fn_check_prepare_notrace 'a shell pipeline' "unixctl-py.at:183"
( $at_check_trace; ovs-vsctl --version | sed 's/ovs-vsctl/test-unixctl.py/' | head -1 > expout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:183"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:183: ovs-appctl --timeout 20 -t test-unixctl.py version"
at_fn_check_prepare_trace "unixctl-py.at:183"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py version
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:183"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:183: \$PYTHON \$srcdir/appctl.py --timeout 20 -t test-unixctl.py version"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/appctl.py --timeout 20 -t test-unixctl.py version" "unixctl-py.at:183"
( $at_check_trace; $PYTHON $srcdir/appctl.py --timeout 20 -t test-unixctl.py version
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:183"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/unixctl-py.at:183: ovs-appctl --timeout 20 -t test-unixctl.py echo robot ninja"
at_fn_check_prepare_trace "unixctl-py.at:183"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py echo robot ninja
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:183"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:183: cat stdout | sed -e \"s/u'/'/g\""
at_fn_check_prepare_notrace 'a shell pipeline' "unixctl-py.at:183"
( $at_check_trace; cat stdout | sed -e "s/u'/'/g"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "['robot', 'ninja']
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:183"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }

   mv stdout expout
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:183: \$PYTHON \$srcdir/appctl.py --timeout 20 -t test-unixctl.py echo robot ninja"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/appctl.py --timeout 20 -t test-unixctl.py echo robot ninja" "unixctl-py.at:183"
( $at_check_trace; $PYTHON $srcdir/appctl.py --timeout 20 -t test-unixctl.py echo robot ninja
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:183"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/unixctl-py.at:183: ovs-appctl --timeout 20 -t test-unixctl.py echo_error robot ninja"
at_fn_check_prepare_trace "unixctl-py.at:183"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py echo_error robot ninja
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/unixctl-py.at:183"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:183: cat stderr | sed -e \"s/u'/'/g\""
at_fn_check_prepare_notrace 'a shell pipeline' "unixctl-py.at:183"
( $at_check_trace; cat stderr | sed -e "s/u'/'/g"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "['robot', 'ninja']
ovs-appctl: test-unixctl.py: server returned an error
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:183"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }

   sed 's/ovs-appctl/appctl.py/' stderr > experr
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:183: \$PYTHON \$srcdir/appctl.py --timeout 20 -t test-unixctl.py echo_error robot ninja"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/appctl.py --timeout 20 -t test-unixctl.py echo_error robot ninja" "unixctl-py.at:183"
( $at_check_trace; $PYTHON $srcdir/appctl.py --timeout 20 -t test-unixctl.py echo_error robot ninja
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/unixctl-py.at:183"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/unixctl-py.at:183: ovs-appctl --timeout 20 -t test-unixctl.py echo"
at_fn_check_prepare_trace "unixctl-py.at:183"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py echo
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/unixctl-py.at:183"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:183: cat stderr"
at_fn_check_prepare_trace "unixctl-py.at:183"
( $at_check_trace; cat stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"echo\" command requires at least 1 arguments
ovs-appctl: test-unixctl.py: server returned an error
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:183"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }

   sed 's/ovs-appctl/appctl.py/' stderr > experr
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:183: \$PYTHON \$srcdir/appctl.py --timeout 20 -t test-unixctl.py echo"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/appctl.py --timeout 20 -t test-unixctl.py echo" "unixctl-py.at:183"
( $at_check_trace; $PYTHON $srcdir/appctl.py --timeout 20 -t test-unixctl.py echo
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/unixctl-py.at:183"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/unixctl-py.at:183: ovs-appctl --timeout 20 -t test-unixctl.py echo robot ninja pirates"
at_fn_check_prepare_trace "unixctl-py.at:183"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py echo robot ninja pirates
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/unixctl-py.at:183"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:183: cat stderr"
at_fn_check_prepare_trace "unixctl-py.at:183"
( $at_check_trace; cat stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"echo\" command takes at most 2 arguments
ovs-appctl: test-unixctl.py: server returned an error
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:183"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }

   sed 's/ovs-appctl/appctl.py/' stderr > experr
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:183: \$PYTHON \$srcdir/appctl.py --timeout 20 -t test-unixctl.py echo robot ninja pirates"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/appctl.py --timeout 20 -t test-unixctl.py echo robot ninja pirates" "unixctl-py.at:183"
( $at_check_trace; $PYTHON $srcdir/appctl.py --timeout 20 -t test-unixctl.py echo robot ninja pirates
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/unixctl-py.at:183"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/unixctl-py.at:183: ovs-appctl --timeout 20 -t test-unixctl.py bogus"
at_fn_check_prepare_trace "unixctl-py.at:183"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py bogus
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/unixctl-py.at:183"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:183: cat stderr"
at_fn_check_prepare_trace "unixctl-py.at:183"
( $at_check_trace; cat stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"bogus\" is not a valid command
ovs-appctl: test-unixctl.py: server returned an error
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:183"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }

   sed 's/ovs-appctl/appctl.py/' stderr > experr
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:183: \$PYTHON \$srcdir/appctl.py --timeout 20 -t test-unixctl.py bogus"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/appctl.py --timeout 20 -t test-unixctl.py bogus" "unixctl-py.at:183"
( $at_check_trace; $PYTHON $srcdir/appctl.py --timeout 20 -t test-unixctl.py bogus
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/unixctl-py.at:183"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/unixctl-py.at:183: ovs-appctl --timeout 20 -t test-unixctl.py exit"
at_fn_check_prepare_trace "unixctl-py.at:183"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:183"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_545
#AT_START_546
at_fn_group_banner 546 'unixctl-py.at:184' \
  "unixctl server - Python3" "                       " 32
at_xfail=no
(
  $as_echo "546. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "unixctl-py.at:184" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/unixctl-py.at:184"
   on_exit 'kill `cat test-unixctl.py.pid`'

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:184: \$PYTHON3 \$srcdir/test-unixctl.py --log-file --pidfile --detach"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-unixctl.py --log-file --pidfile --detach" "unixctl-py.at:184"
( $at_check_trace; $PYTHON3 $srcdir/test-unixctl.py --log-file --pidfile --detach
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:184"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/unixctl-py.at:184: ovs-appctl --timeout 20 -t test-unixctl.py help"
at_fn_check_prepare_trace "unixctl-py.at:184"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py help
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:184"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:184: cat stdout"
at_fn_check_prepare_trace "unixctl-py.at:184"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "The available commands are:
  block
  echo                    [arg ...]
  echo_error              [arg ...]
  exit
  help
  log                     [arg ...]
  version
  vlog/close
  vlog/list
  vlog/reopen
  vlog/set                spec
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:184"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }

   mv stdout expout
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:184: \$PYTHON3 \$srcdir/appctl.py --timeout 20 -t test-unixctl.py help"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/appctl.py --timeout 20 -t test-unixctl.py help" "unixctl-py.at:184"
( $at_check_trace; $PYTHON3 $srcdir/appctl.py --timeout 20 -t test-unixctl.py help
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:184"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/unixctl-py.at:184: ovs-vsctl --version | sed 's/ovs-vsctl/test-unixctl.py/' | head -1 > expout"
at_fn_check_prepare_notrace 'a shell pipeline' "unixctl-py.at:184"
( $at_check_trace; ovs-vsctl --version | sed 's/ovs-vsctl/test-unixctl.py/' | head -1 > expout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:184"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:184: ovs-appctl --timeout 20 -t test-unixctl.py version"
at_fn_check_prepare_trace "unixctl-py.at:184"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py version
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:184"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:184: \$PYTHON3 \$srcdir/appctl.py --timeout 20 -t test-unixctl.py version"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/appctl.py --timeout 20 -t test-unixctl.py version" "unixctl-py.at:184"
( $at_check_trace; $PYTHON3 $srcdir/appctl.py --timeout 20 -t test-unixctl.py version
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:184"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/unixctl-py.at:184: ovs-appctl --timeout 20 -t test-unixctl.py echo robot ninja"
at_fn_check_prepare_trace "unixctl-py.at:184"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py echo robot ninja
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:184"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:184: cat stdout | sed -e \"s/u'/'/g\""
at_fn_check_prepare_notrace 'a shell pipeline' "unixctl-py.at:184"
( $at_check_trace; cat stdout | sed -e "s/u'/'/g"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "['robot', 'ninja']
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:184"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }

   mv stdout expout
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:184: \$PYTHON3 \$srcdir/appctl.py --timeout 20 -t test-unixctl.py echo robot ninja"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/appctl.py --timeout 20 -t test-unixctl.py echo robot ninja" "unixctl-py.at:184"
( $at_check_trace; $PYTHON3 $srcdir/appctl.py --timeout 20 -t test-unixctl.py echo robot ninja
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:184"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/unixctl-py.at:184: ovs-appctl --timeout 20 -t test-unixctl.py echo_error robot ninja"
at_fn_check_prepare_trace "unixctl-py.at:184"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py echo_error robot ninja
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/unixctl-py.at:184"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:184: cat stderr | sed -e \"s/u'/'/g\""
at_fn_check_prepare_notrace 'a shell pipeline' "unixctl-py.at:184"
( $at_check_trace; cat stderr | sed -e "s/u'/'/g"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "['robot', 'ninja']
ovs-appctl: test-unixctl.py: server returned an error
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:184"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }

   sed 's/ovs-appctl/appctl.py/' stderr > experr
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:184: \$PYTHON3 \$srcdir/appctl.py --timeout 20 -t test-unixctl.py echo_error robot ninja"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/appctl.py --timeout 20 -t test-unixctl.py echo_error robot ninja" "unixctl-py.at:184"
( $at_check_trace; $PYTHON3 $srcdir/appctl.py --timeout 20 -t test-unixctl.py echo_error robot ninja
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/unixctl-py.at:184"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/unixctl-py.at:184: ovs-appctl --timeout 20 -t test-unixctl.py echo"
at_fn_check_prepare_trace "unixctl-py.at:184"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py echo
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/unixctl-py.at:184"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:184: cat stderr"
at_fn_check_prepare_trace "unixctl-py.at:184"
( $at_check_trace; cat stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"echo\" command requires at least 1 arguments
ovs-appctl: test-unixctl.py: server returned an error
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:184"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }

   sed 's/ovs-appctl/appctl.py/' stderr > experr
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:184: \$PYTHON3 \$srcdir/appctl.py --timeout 20 -t test-unixctl.py echo"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/appctl.py --timeout 20 -t test-unixctl.py echo" "unixctl-py.at:184"
( $at_check_trace; $PYTHON3 $srcdir/appctl.py --timeout 20 -t test-unixctl.py echo
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/unixctl-py.at:184"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/unixctl-py.at:184: ovs-appctl --timeout 20 -t test-unixctl.py echo robot ninja pirates"
at_fn_check_prepare_trace "unixctl-py.at:184"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py echo robot ninja pirates
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/unixctl-py.at:184"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:184: cat stderr"
at_fn_check_prepare_trace "unixctl-py.at:184"
( $at_check_trace; cat stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"echo\" command takes at most 2 arguments
ovs-appctl: test-unixctl.py: server returned an error
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:184"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }

   sed 's/ovs-appctl/appctl.py/' stderr > experr
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:184: \$PYTHON3 \$srcdir/appctl.py --timeout 20 -t test-unixctl.py echo robot ninja pirates"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/appctl.py --timeout 20 -t test-unixctl.py echo robot ninja pirates" "unixctl-py.at:184"
( $at_check_trace; $PYTHON3 $srcdir/appctl.py --timeout 20 -t test-unixctl.py echo robot ninja pirates
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/unixctl-py.at:184"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/unixctl-py.at:184: ovs-appctl --timeout 20 -t test-unixctl.py bogus"
at_fn_check_prepare_trace "unixctl-py.at:184"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py bogus
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/unixctl-py.at:184"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/unixctl-py.at:184: cat stderr"
at_fn_check_prepare_trace "unixctl-py.at:184"
( $at_check_trace; cat stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"bogus\" is not a valid command
ovs-appctl: test-unixctl.py: server returned an error
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:184"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }

   sed 's/ovs-appctl/appctl.py/' stderr > experr
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:184: \$PYTHON3 \$srcdir/appctl.py --timeout 20 -t test-unixctl.py bogus"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/appctl.py --timeout 20 -t test-unixctl.py bogus" "unixctl-py.at:184"
( $at_check_trace; $PYTHON3 $srcdir/appctl.py --timeout 20 -t test-unixctl.py bogus
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/unixctl-py.at:184"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/unixctl-py.at:184: ovs-appctl --timeout 20 -t test-unixctl.py exit"
at_fn_check_prepare_trace "unixctl-py.at:184"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/unixctl-py.at:184"
$at_failed && at_fn_log_failure  \
"`pwd`/test-unixctl.py.log"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_546
#AT_START_547
at_fn_group_banner 547 'unixctl-py.at:192' \
  "unixctl server errors - Python2" "                " 32
at_xfail=no
(
  $as_echo "547. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "unixctl-py.at:192" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/unixctl-py.at:192"
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:192: \$PYTHON \$srcdir/test-unixctl.py --unixctl \"\`pwd\`\"/bogus/path"
at_fn_check_prepare_notrace 'a `...` command substitution' "unixctl-py.at:192"
( $at_check_trace; $PYTHON $srcdir/test-unixctl.py --unixctl "`pwd`"/bogus/path
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/unixctl-py.at:192"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_547
#AT_START_548
at_fn_group_banner 548 'unixctl-py.at:193' \
  "unixctl server errors - Python3" "                " 32
at_xfail=no
(
  $as_echo "548. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "unixctl-py.at:193" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/unixctl-py.at:193"
   { set +x
$as_echo "$at_srcdir/unixctl-py.at:193: \$PYTHON3 \$srcdir/test-unixctl.py --unixctl \"\`pwd\`\"/bogus/path"
at_fn_check_prepare_notrace 'a `...` command substitution' "unixctl-py.at:193"
( $at_check_trace; $PYTHON3 $srcdir/test-unixctl.py --unixctl "`pwd`"/bogus/path
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/unixctl-py.at:193"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_548
#AT_START_549
at_fn_group_banner 549 'uuid.at:15' \
  "UUID generation, parsing, serialization" "        " 33
at_xfail=no
(
  $as_echo "549. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/uuid.at:17:
  uuids=
  for i in 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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 ; do
     # Generate random UUID and check that it is in the expected format.
     uuid=\`ovstest test-uuid\`
     if expr \"\$uuid\" : '[0-9a-f]\\{8\\}-[0-9a-f]\\{4\\}-4[0-9a-f]\\{3\\}-[89ab][0-9a-f]\\{3\\}-[0-9a-f]\\{12\\}\$' > /dev/null
   then
      :
   else
     echo \"\$uuid: not a random UUID\"
     exit 1
   fi

     # Verify that \$uuid does not duplicate any UUID generated so far.
     case \$uuids in
       *\$uuid*)
         echo \"\$uuid: generated duplicate UUID\"
         exit 1
     esac
     uuids=\"\$uuids \$uuid\"

     # Verify that test-uuid parses and re-serializes this UUID correctly.
     serialized=\`ovstest test-uuid \$uuid\`
     if test \"\$uuid\" != \"\$serialized\"; then
       echo \"\$uuid: test-uuid serialized this as \$serialized\"
       exit 1
     fi
   done"
at_fn_check_prepare_notrace 'a `...` command substitution' "uuid.at:17"
( $at_check_trace;
  uuids=
  for i in 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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 ; do
     # Generate random UUID and check that it is in the expected format.
     uuid=`ovstest test-uuid`
     if expr "$uuid" : '[0-9a-f]\{8\}-[0-9a-f]\{4\}-4[0-9a-f]\{3\}-[89ab][0-9a-f]\{3\}-[0-9a-f]\{12\}$' > /dev/null
   then
      :
   else
     echo "$uuid: not a random UUID"
     exit 1
   fi

     # Verify that $uuid does not duplicate any UUID generated so far.
     case $uuids in
       *$uuid*)
         echo "$uuid: generated duplicate UUID"
         exit 1
     esac
     uuids="$uuids $uuid"

     # Verify that test-uuid parses and re-serializes this UUID correctly.
     serialized=`ovstest test-uuid $uuid`
     if test "$uuid" != "$serialized"; then
       echo "$uuid: test-uuid serialized this as $serialized"
       exit 1
     fi
   done
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/uuid.at:17"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_549
#AT_START_550
at_fn_group_banner 550 'json.at:83' \
  "empty array - C" "                                " 34
at_xfail=no
(
  $as_echo "550. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:83: printf %s \" [   ] \" > input"
at_fn_check_prepare_trace "json.at:83"
( $at_check_trace; printf %s " [   ] " > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:83"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:83: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:83"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:83"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:83: cat stdout"
at_fn_check_prepare_trace "json.at:83"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:83"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_550
#AT_START_551
at_fn_group_banner 551 'json.at:83' \
  "empty array - Python2" "                          " 34
at_xfail=no
(
  $as_echo "551. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:83" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:83"
   { set +x
$as_echo "$at_srcdir/json.at:83: printf %s \" [   ] \" > input"
at_fn_check_prepare_trace "json.at:83"
( $at_check_trace; printf %s " [   ] " > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:83"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:83: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:83"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:83"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:83: cat stdout"
at_fn_check_prepare_trace "json.at:83"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:83"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_551
#AT_START_552
at_fn_group_banner 552 'json.at:83' \
  "empty array - Python3" "                          " 34
at_xfail=no
(
  $as_echo "552. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:83" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:83"
   { set +x
$as_echo "$at_srcdir/json.at:83: printf %s \" [   ] \" > input"
at_fn_check_prepare_trace "json.at:83"
( $at_check_trace; printf %s " [   ] " > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:83"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:83: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:83"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:83"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:83: cat stdout"
at_fn_check_prepare_trace "json.at:83"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:83"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_552
#AT_START_553
at_fn_group_banner 553 'json.at:84' \
  "single-element array - C" "                       " 34
at_xfail=no
(
  $as_echo "553. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:84: printf %s \" [ 1 ] \" > input"
at_fn_check_prepare_trace "json.at:84"
( $at_check_trace; printf %s " [ 1 ] " > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:84"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:84: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:84"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:84"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:84: cat stdout"
at_fn_check_prepare_trace "json.at:84"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[1]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:84"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_553
#AT_START_554
at_fn_group_banner 554 'json.at:84' \
  "single-element array - Python2" "                 " 34
at_xfail=no
(
  $as_echo "554. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:84" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:84"
   { set +x
$as_echo "$at_srcdir/json.at:84: printf %s \" [ 1 ] \" > input"
at_fn_check_prepare_trace "json.at:84"
( $at_check_trace; printf %s " [ 1 ] " > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:84"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:84: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:84"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:84"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:84: cat stdout"
at_fn_check_prepare_trace "json.at:84"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[1]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:84"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_554
#AT_START_555
at_fn_group_banner 555 'json.at:84' \
  "single-element array - Python3" "                 " 34
at_xfail=no
(
  $as_echo "555. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:84" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:84"
   { set +x
$as_echo "$at_srcdir/json.at:84: printf %s \" [ 1 ] \" > input"
at_fn_check_prepare_trace "json.at:84"
( $at_check_trace; printf %s " [ 1 ] " > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:84"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:84: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:84"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:84"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:84: cat stdout"
at_fn_check_prepare_trace "json.at:84"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[1]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:84"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_555
#AT_START_556
at_fn_group_banner 556 'json.at:85' \
  "2-element array - C" "                            " 34
at_xfail=no
(
  $as_echo "556. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:85: printf %s \" [ 1, 2 ] \" > input"
at_fn_check_prepare_trace "json.at:85"
( $at_check_trace; printf %s " [ 1, 2 ] " > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:85"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:85: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:85"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:85"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:85: cat stdout"
at_fn_check_prepare_trace "json.at:85"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[1,2]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:85"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_556
#AT_START_557
at_fn_group_banner 557 'json.at:85' \
  "2-element array - Python2" "                      " 34
at_xfail=no
(
  $as_echo "557. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:85" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:85"
   { set +x
$as_echo "$at_srcdir/json.at:85: printf %s \" [ 1, 2 ] \" > input"
at_fn_check_prepare_trace "json.at:85"
( $at_check_trace; printf %s " [ 1, 2 ] " > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:85"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:85: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:85"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:85"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:85: cat stdout"
at_fn_check_prepare_trace "json.at:85"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[1,2]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:85"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_557
#AT_START_558
at_fn_group_banner 558 'json.at:85' \
  "2-element array - Python3" "                      " 34
at_xfail=no
(
  $as_echo "558. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:85" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:85"
   { set +x
$as_echo "$at_srcdir/json.at:85: printf %s \" [ 1, 2 ] \" > input"
at_fn_check_prepare_trace "json.at:85"
( $at_check_trace; printf %s " [ 1, 2 ] " > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:85"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:85: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:85"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:85"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:85: cat stdout"
at_fn_check_prepare_trace "json.at:85"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[1,2]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:85"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_558
#AT_START_559
at_fn_group_banner 559 'json.at:86' \
  "many-element array - C" "                         " 34
at_xfail=no
(
  $as_echo "559. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:86: printf %s \" [ 1, 2, 3, 4, 5 ] \" > input"
at_fn_check_prepare_trace "json.at:86"
( $at_check_trace; printf %s " [ 1, 2, 3, 4, 5 ] " > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:86"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:86: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:86"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:86"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:86: cat stdout"
at_fn_check_prepare_trace "json.at:86"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[1,2,3,4,5]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:86"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_559
#AT_START_560
at_fn_group_banner 560 'json.at:86' \
  "many-element array - Python2" "                   " 34
at_xfail=no
(
  $as_echo "560. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:86" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:86"
   { set +x
$as_echo "$at_srcdir/json.at:86: printf %s \" [ 1, 2, 3, 4, 5 ] \" > input"
at_fn_check_prepare_trace "json.at:86"
( $at_check_trace; printf %s " [ 1, 2, 3, 4, 5 ] " > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:86"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:86: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:86"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:86"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:86: cat stdout"
at_fn_check_prepare_trace "json.at:86"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[1,2,3,4,5]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:86"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_560
#AT_START_561
at_fn_group_banner 561 'json.at:86' \
  "many-element array - Python3" "                   " 34
at_xfail=no
(
  $as_echo "561. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:86" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:86"
   { set +x
$as_echo "$at_srcdir/json.at:86: printf %s \" [ 1, 2, 3, 4, 5 ] \" > input"
at_fn_check_prepare_trace "json.at:86"
( $at_check_trace; printf %s " [ 1, 2, 3, 4, 5 ] " > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:86"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:86: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:86"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:86"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:86: cat stdout"
at_fn_check_prepare_trace "json.at:86"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[1,2,3,4,5]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:86"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_561
#AT_START_562
at_fn_group_banner 562 'json.at:89' \
  "missing comma - C" "                              " 34
at_xfail=no
(
  $as_echo "562. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:89: printf %s \" [ 1, 2, 3 4, 5 ] \" > input"
at_fn_check_prepare_trace "json.at:89"
( $at_check_trace; printf %s " [ 1, 2, 3 4, 5 ] " > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:89"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:89: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:89"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:89"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:89: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:89"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: syntax error expecting ']' or ','
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:89"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_562
#AT_START_563
at_fn_group_banner 563 'json.at:89' \
  "missing comma - Python2" "                        " 34
at_xfail=no
(
  $as_echo "563. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:89" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:89"
   { set +x
$as_echo "$at_srcdir/json.at:89: printf %s \" [ 1, 2, 3 4, 5 ] \" > input"
at_fn_check_prepare_trace "json.at:89"
( $at_check_trace; printf %s " [ 1, 2, 3 4, 5 ] " > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:89"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:89: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:89"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:89"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:89: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:89"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: syntax error expecting ']' or ','
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:89"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_563
#AT_START_564
at_fn_group_banner 564 'json.at:89' \
  "missing comma - Python3" "                        " 34
at_xfail=no
(
  $as_echo "564. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:89" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:89"
   { set +x
$as_echo "$at_srcdir/json.at:89: printf %s \" [ 1, 2, 3 4, 5 ] \" > input"
at_fn_check_prepare_trace "json.at:89"
( $at_check_trace; printf %s " [ 1, 2, 3 4, 5 ] " > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:89"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:89: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:89"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:89"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:89: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:89"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: syntax error expecting ']' or ','
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:89"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_564
#AT_START_565
at_fn_group_banner 565 'json.at:91' \
  "trailing comma not allowed - C" "                 " 34
at_xfail=no
(
  $as_echo "565. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:91: printf %s \"[1,2,]\" > input"
at_fn_check_prepare_trace "json.at:91"
( $at_check_trace; printf %s "[1,2,]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:91"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:91: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:91"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:91"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:91: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:91"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: syntax error expecting value
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:91"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_565
#AT_START_566
at_fn_group_banner 566 'json.at:91' \
  "trailing comma not allowed - Python2" "           " 34
at_xfail=no
(
  $as_echo "566. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:91" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:91"
   { set +x
$as_echo "$at_srcdir/json.at:91: printf %s \"[1,2,]\" > input"
at_fn_check_prepare_trace "json.at:91"
( $at_check_trace; printf %s "[1,2,]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:91"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:91: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:91"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:91"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:91: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:91"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: syntax error expecting value
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:91"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_566
#AT_START_567
at_fn_group_banner 567 'json.at:91' \
  "trailing comma not allowed - Python3" "           " 34
at_xfail=no
(
  $as_echo "567. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:91" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:91"
   { set +x
$as_echo "$at_srcdir/json.at:91: printf %s \"[1,2,]\" > input"
at_fn_check_prepare_trace "json.at:91"
( $at_check_trace; printf %s "[1,2,]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:91"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:91: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:91"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:91"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:91: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:91"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: syntax error expecting value
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:91"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_567
#AT_START_568
at_fn_group_banner 568 'json.at:93' \
  "doubled comma not allowed - C" "                  " 34
at_xfail=no
(
  $as_echo "568. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:93: printf %s \"[1,,2]\" > input"
at_fn_check_prepare_trace "json.at:93"
( $at_check_trace; printf %s "[1,,2]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:93"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:93: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:93"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:93"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:93: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:93"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: syntax error expecting value
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:93"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_568
#AT_START_569
at_fn_group_banner 569 'json.at:93' \
  "doubled comma not allowed - Python2" "            " 34
at_xfail=no
(
  $as_echo "569. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:93" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:93"
   { set +x
$as_echo "$at_srcdir/json.at:93: printf %s \"[1,,2]\" > input"
at_fn_check_prepare_trace "json.at:93"
( $at_check_trace; printf %s "[1,,2]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:93"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:93: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:93"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:93"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:93: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:93"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: syntax error expecting value
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:93"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_569
#AT_START_570
at_fn_group_banner 570 'json.at:93' \
  "doubled comma not allowed - Python3" "            " 34
at_xfail=no
(
  $as_echo "570. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:93" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:93"
   { set +x
$as_echo "$at_srcdir/json.at:93: printf %s \"[1,,2]\" > input"
at_fn_check_prepare_trace "json.at:93"
( $at_check_trace; printf %s "[1,,2]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:93"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:93: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:93"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:93"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:93: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:93"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: syntax error expecting value
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:93"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_570
#AT_START_571
at_fn_group_banner 571 'json.at:98' \
  "empty string - C" "                               " 35
at_xfail=no
(
  $as_echo "571. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:98: printf %s \"[ \\\"\\\" ]\" > input"
at_fn_check_prepare_trace "json.at:98"
( $at_check_trace; printf %s "[ \"\" ]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:98"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:98: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:98"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:98"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:98: cat stdout"
at_fn_check_prepare_trace "json.at:98"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"\"]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:98"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_571
#AT_START_572
at_fn_group_banner 572 'json.at:98' \
  "empty string - Python2" "                         " 35
at_xfail=no
(
  $as_echo "572. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:98" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:98"
   { set +x
$as_echo "$at_srcdir/json.at:98: printf %s \"[ \\\"\\\" ]\" > input"
at_fn_check_prepare_trace "json.at:98"
( $at_check_trace; printf %s "[ \"\" ]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:98"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:98: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:98"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:98"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:98: cat stdout"
at_fn_check_prepare_trace "json.at:98"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"\"]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:98"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_572
#AT_START_573
at_fn_group_banner 573 'json.at:98' \
  "empty string - Python3" "                         " 35
at_xfail=no
(
  $as_echo "573. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:98" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:98"
   { set +x
$as_echo "$at_srcdir/json.at:98: printf %s \"[ \\\"\\\" ]\" > input"
at_fn_check_prepare_trace "json.at:98"
( $at_check_trace; printf %s "[ \"\" ]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:98"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:98: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:98"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:98"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:98: cat stdout"
at_fn_check_prepare_trace "json.at:98"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"\"]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:98"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_573
#AT_START_574
at_fn_group_banner 574 'json.at:99' \
  "1-character strings - C" "                        " 35
at_xfail=no
(
  $as_echo "574. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:99: printf %s \"[ \\\"a\\\", \\\"b\\\", \\\"c\\\" ]\" > input"
at_fn_check_prepare_trace "json.at:99"
( $at_check_trace; printf %s "[ \"a\", \"b\", \"c\" ]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:99"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:99: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:99"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:99"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:99: cat stdout"
at_fn_check_prepare_trace "json.at:99"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"a\",\"b\",\"c\"]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:99"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_574
#AT_START_575
at_fn_group_banner 575 'json.at:99' \
  "1-character strings - Python2" "                  " 35
at_xfail=no
(
  $as_echo "575. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:99" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:99"
   { set +x
$as_echo "$at_srcdir/json.at:99: printf %s \"[ \\\"a\\\", \\\"b\\\", \\\"c\\\" ]\" > input"
at_fn_check_prepare_trace "json.at:99"
( $at_check_trace; printf %s "[ \"a\", \"b\", \"c\" ]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:99"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:99: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:99"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:99"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:99: cat stdout"
at_fn_check_prepare_trace "json.at:99"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"a\",\"b\",\"c\"]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:99"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_575
#AT_START_576
at_fn_group_banner 576 'json.at:99' \
  "1-character strings - Python3" "                  " 35
at_xfail=no
(
  $as_echo "576. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:99" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:99"
   { set +x
$as_echo "$at_srcdir/json.at:99: printf %s \"[ \\\"a\\\", \\\"b\\\", \\\"c\\\" ]\" > input"
at_fn_check_prepare_trace "json.at:99"
( $at_check_trace; printf %s "[ \"a\", \"b\", \"c\" ]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:99"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:99: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:99"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:99"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:99: cat stdout"
at_fn_check_prepare_trace "json.at:99"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"a\",\"b\",\"c\"]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:99"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_576
#AT_START_577
at_fn_group_banner 577 'json.at:102' \
  "escape sequences - C" "                           " 35
at_xfail=no
(
  $as_echo "577. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:102: printf %s \"[ \\\" \\\\\\\" \\\\\\\\ \\\\/ \\\\b \\\\f \\\\n \\\\r \\\\t\\\" ]\" > input"
at_fn_check_prepare_trace "json.at:102"
( $at_check_trace; printf %s "[ \" \\\" \\\\ \\/ \\b \\f \\n \\r \\t\" ]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:102"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:102: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:102"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:102"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:102: cat stdout"
at_fn_check_prepare_trace "json.at:102"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\" \\\" \\\\ / \\b \\f \\n \\r \\t\"]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:102"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_577
#AT_START_578
at_fn_group_banner 578 'json.at:102' \
  "escape sequences - Python2" "                     " 35
at_xfail=no
(
  $as_echo "578. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:102" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:102"
   { set +x
$as_echo "$at_srcdir/json.at:102: printf %s \"[ \\\" \\\\\\\" \\\\\\\\ \\\\/ \\\\b \\\\f \\\\n \\\\r \\\\t\\\" ]\" > input"
at_fn_check_prepare_trace "json.at:102"
( $at_check_trace; printf %s "[ \" \\\" \\\\ \\/ \\b \\f \\n \\r \\t\" ]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:102"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:102: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:102"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:102"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:102: cat stdout"
at_fn_check_prepare_trace "json.at:102"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\" \\\" \\\\ / \\b \\f \\n \\r \\t\"]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:102"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_578
#AT_START_579
at_fn_group_banner 579 'json.at:102' \
  "escape sequences - Python3" "                     " 35
at_xfail=no
(
  $as_echo "579. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:102" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:102"
   { set +x
$as_echo "$at_srcdir/json.at:102: printf %s \"[ \\\" \\\\\\\" \\\\\\\\ \\\\/ \\\\b \\\\f \\\\n \\\\r \\\\t\\\" ]\" > input"
at_fn_check_prepare_trace "json.at:102"
( $at_check_trace; printf %s "[ \" \\\" \\\\ \\/ \\b \\f \\n \\r \\t\" ]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:102"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:102: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:102"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:102"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:102: cat stdout"
at_fn_check_prepare_trace "json.at:102"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\" \\\" \\\\ / \\b \\f \\n \\r \\t\"]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:102"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_579
#AT_START_580
at_fn_group_banner 580 'json.at:105' \
  "Unicode escape sequences - C" "                   " 35
at_xfail=no
(
  $as_echo "580. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:105: printf %s \"[ \\\" \\\\u0022 \\\\u005c \\\\u002F \\\\u0008 \\\\u000c \\\\u000A \\\\u000d \\\\u0009\\\" ]\" > input"
at_fn_check_prepare_trace "json.at:105"
( $at_check_trace; printf %s "[ \" \\u0022 \\u005c \\u002F \\u0008 \\u000c \\u000A \\u000d \\u0009\" ]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:105"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:105: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:105"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:105"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:105: cat stdout"
at_fn_check_prepare_trace "json.at:105"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\" \\\" \\\\ / \\b \\f \\n \\r \\t\"]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:105"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_580
#AT_START_581
at_fn_group_banner 581 'json.at:105' \
  "Unicode escape sequences - Python2" "             " 35
at_xfail=no
(
  $as_echo "581. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:105" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:105"
   { set +x
$as_echo "$at_srcdir/json.at:105: printf %s \"[ \\\" \\\\u0022 \\\\u005c \\\\u002F \\\\u0008 \\\\u000c \\\\u000A \\\\u000d \\\\u0009\\\" ]\" > input"
at_fn_check_prepare_trace "json.at:105"
( $at_check_trace; printf %s "[ \" \\u0022 \\u005c \\u002F \\u0008 \\u000c \\u000A \\u000d \\u0009\" ]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:105"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:105: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:105"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:105"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:105: cat stdout"
at_fn_check_prepare_trace "json.at:105"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\" \\\" \\\\ / \\b \\f \\n \\r \\t\"]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:105"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_581
#AT_START_582
at_fn_group_banner 582 'json.at:105' \
  "Unicode escape sequences - Python3" "             " 35
at_xfail=no
(
  $as_echo "582. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:105" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:105"
   { set +x
$as_echo "$at_srcdir/json.at:105: printf %s \"[ \\\" \\\\u0022 \\\\u005c \\\\u002F \\\\u0008 \\\\u000c \\\\u000A \\\\u000d \\\\u0009\\\" ]\" > input"
at_fn_check_prepare_trace "json.at:105"
( $at_check_trace; printf %s "[ \" \\u0022 \\u005c \\u002F \\u0008 \\u000c \\u000A \\u000d \\u0009\" ]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:105"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:105: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:105"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:105"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:105: cat stdout"
at_fn_check_prepare_trace "json.at:105"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\" \\\" \\\\ / \\b \\f \\n \\r \\t\"]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:105"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_582
#AT_START_583
at_fn_group_banner 583 'json.at:108' \
  "surrogate pairs - C" "                            " 35
at_xfail=no
(
  $as_echo "583. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:108: printf %s \"[\\\"\\\\ud834\\\\udd1e\\\"]\" > input"
at_fn_check_prepare_trace "json.at:108"
( $at_check_trace; printf %s "[\"\\ud834\\udd1e\"]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:108"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:108: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:108"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:108"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:108: cat stdout"
at_fn_check_prepare_trace "json.at:108"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"𝄞\"]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:108"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_583
#AT_START_584
at_fn_group_banner 584 'json.at:111' \
  "surrogate pairs - Python" "                       " 35
at_xfail=no
      $PYTHON -c "exit(len(u'\U00010800'))"; test $? -ne 1 && at_xfail=yes
(
  $as_echo "584. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:111" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:111"

   { set +x
$as_echo "$at_srcdir/json.at:111: printf %s \"[\\\"\\\\ud834\\\\udd1e\\\"]\" > input"
at_fn_check_prepare_trace "json.at:111"
( $at_check_trace; printf %s "[\"\\ud834\\udd1e\"]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:111"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:111: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:111"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:111"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:111: cat stdout"
at_fn_check_prepare_trace "json.at:111"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"𝄞\"]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:111"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_584
#AT_START_585
at_fn_group_banner 585 'json.at:114' \
  "a string by itself is not valid JSON - C" "       " 35
at_xfail=no
(
  $as_echo "585. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:114: printf %s \"\\\"xxx\\\"\" > input"
at_fn_check_prepare_trace "json.at:114"
( $at_check_trace; printf %s "\"xxx\"" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:114"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:114: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:114"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:114"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:114: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:114"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: syntax error at beginning of input
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:114"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_585
#AT_START_586
at_fn_group_banner 586 'json.at:114' \
  "a string by itself is not valid JSON - Python2" " " 35
at_xfail=no
(
  $as_echo "586. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:114" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:114"
   { set +x
$as_echo "$at_srcdir/json.at:114: printf %s \"\\\"xxx\\\"\" > input"
at_fn_check_prepare_trace "json.at:114"
( $at_check_trace; printf %s "\"xxx\"" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:114"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:114: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:114"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:114"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:114: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:114"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: syntax error at beginning of input
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:114"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_586
#AT_START_587
at_fn_group_banner 587 'json.at:114' \
  "a string by itself is not valid JSON - Python3" " " 35
at_xfail=no
(
  $as_echo "587. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:114" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:114"
   { set +x
$as_echo "$at_srcdir/json.at:114: printf %s \"\\\"xxx\\\"\" > input"
at_fn_check_prepare_trace "json.at:114"
( $at_check_trace; printf %s "\"xxx\"" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:114"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:114: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:114"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:114"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:114: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:114"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: syntax error at beginning of input
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:114"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_587
#AT_START_588
at_fn_group_banner 588 'json.at:116' \
  "end of line in quoted string - C" "               " 35
at_xfail=no
(
  $as_echo "588. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:116: printf %s \"[\\\"xxx
\\\"]\" > input"
at_fn_check_prepare_notrace 'an embedded newline' "json.at:116"
( $at_check_trace; printf %s "[\"xxx
\"]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:116"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:116: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:116"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:116"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:116: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:116"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: U+000A must be escaped in quoted string
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:116"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_588
#AT_START_589
at_fn_group_banner 589 'json.at:116' \
  "end of line in quoted string - Python2" "         " 35
at_xfail=no
(
  $as_echo "589. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:116" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:116"
   { set +x
$as_echo "$at_srcdir/json.at:116: printf %s \"[\\\"xxx
\\\"]\" > input"
at_fn_check_prepare_notrace 'an embedded newline' "json.at:116"
( $at_check_trace; printf %s "[\"xxx
\"]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:116"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:116: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:116"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:116"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:116: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:116"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: U+000A must be escaped in quoted string
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:116"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_589
#AT_START_590
at_fn_group_banner 590 'json.at:116' \
  "end of line in quoted string - Python3" "         " 35
at_xfail=no
(
  $as_echo "590. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:116" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:116"
   { set +x
$as_echo "$at_srcdir/json.at:116: printf %s \"[\\\"xxx
\\\"]\" > input"
at_fn_check_prepare_notrace 'an embedded newline' "json.at:116"
( $at_check_trace; printf %s "[\"xxx
\"]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:116"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:116: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:116"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:116"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:116: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:116"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: U+000A must be escaped in quoted string
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:116"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_590
#AT_START_591
at_fn_group_banner 591 'json.at:120' \
  "formfeed in quoted string - C" "                  " 35
at_xfail=no
(
  $as_echo "591. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:120: printf %s \"[\\\"xxx\\\"]\" > input"
at_fn_check_prepare_trace "json.at:120"
( $at_check_trace; printf %s "[\"xxx\"]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:120"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:120: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:120"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:120"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:120: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:120"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: U+000C must be escaped in quoted string
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:120"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_591
#AT_START_592
at_fn_group_banner 592 'json.at:120' \
  "formfeed in quoted string - Python2" "            " 35
at_xfail=no
(
  $as_echo "592. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:120" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:120"
   { set +x
$as_echo "$at_srcdir/json.at:120: printf %s \"[\\\"xxx\\\"]\" > input"
at_fn_check_prepare_trace "json.at:120"
( $at_check_trace; printf %s "[\"xxx\"]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:120"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:120: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:120"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:120"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:120: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:120"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: U+000C must be escaped in quoted string
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:120"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_592
#AT_START_593
at_fn_group_banner 593 'json.at:120' \
  "formfeed in quoted string - Python3" "            " 35
at_xfail=no
(
  $as_echo "593. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:120" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:120"
   { set +x
$as_echo "$at_srcdir/json.at:120: printf %s \"[\\\"xxx\\\"]\" > input"
at_fn_check_prepare_trace "json.at:120"
( $at_check_trace; printf %s "[\"xxx\"]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:120"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:120: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:120"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:120"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:120: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:120"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: U+000C must be escaped in quoted string
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:120"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_593
#AT_START_594
at_fn_group_banner 594 'json.at:123' \
  "bad escape in quoted string - C" "                " 35
at_xfail=no
(
  $as_echo "594. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:123: printf %s \"[\\\"\\\\x12\\\"]\" > input"
at_fn_check_prepare_trace "json.at:123"
( $at_check_trace; printf %s "[\"\\x12\"]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:123"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:123: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:123"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:123"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:123: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:123"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: bad escape \\x
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:123"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_594
#AT_START_595
at_fn_group_banner 595 'json.at:123' \
  "bad escape in quoted string - Python2" "          " 35
at_xfail=no
(
  $as_echo "595. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:123" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:123"
   { set +x
$as_echo "$at_srcdir/json.at:123: printf %s \"[\\\"\\\\x12\\\"]\" > input"
at_fn_check_prepare_trace "json.at:123"
( $at_check_trace; printf %s "[\"\\x12\"]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:123"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:123: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:123"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:123"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:123: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:123"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: bad escape \\x
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:123"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_595
#AT_START_596
at_fn_group_banner 596 'json.at:123' \
  "bad escape in quoted string - Python3" "          " 35
at_xfail=no
(
  $as_echo "596. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:123" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:123"
   { set +x
$as_echo "$at_srcdir/json.at:123: printf %s \"[\\\"\\\\x12\\\"]\" > input"
at_fn_check_prepare_trace "json.at:123"
( $at_check_trace; printf %s "[\"\\x12\"]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:123"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:123: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:123"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:123"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:123: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:123"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: bad escape \\x
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:123"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_596
#AT_START_597
at_fn_group_banner 597 'json.at:126' \
  "\\u must be followed by 4 hex digits (1) - C" "    " 35
at_xfail=no
(
  $as_echo "597. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:126: printf %s \"[\\\"\\\\u1x\\\"]\" > input"
at_fn_check_prepare_trace "json.at:126"
( $at_check_trace; printf %s "[\"\\u1x\"]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:126"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:126: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:126"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:126"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:126: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:126"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: quoted string ends within \\u escape
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:126"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_597
#AT_START_598
at_fn_group_banner 598 'json.at:126' \
  "\\u must be followed by 4 hex digits (1) - Python2" "" 35
at_xfail=no
(
  $as_echo "598. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:126" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:126"
   { set +x
$as_echo "$at_srcdir/json.at:126: printf %s \"[\\\"\\\\u1x\\\"]\" > input"
at_fn_check_prepare_trace "json.at:126"
( $at_check_trace; printf %s "[\"\\u1x\"]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:126"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:126: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:126"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:126"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:126: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:126"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: quoted string ends within \\u escape
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:126"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_598
#AT_START_599
at_fn_group_banner 599 'json.at:126' \
  "\\u must be followed by 4 hex digits (1) - Python3" "" 35
at_xfail=no
(
  $as_echo "599. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:126" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:126"
   { set +x
$as_echo "$at_srcdir/json.at:126: printf %s \"[\\\"\\\\u1x\\\"]\" > input"
at_fn_check_prepare_trace "json.at:126"
( $at_check_trace; printf %s "[\"\\u1x\"]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:126"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:126: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:126"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:126"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:126: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:126"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: quoted string ends within \\u escape
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:126"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_599
#AT_START_600
at_fn_group_banner 600 'json.at:129' \
  "\\u must be followed by 4 hex digits (2) - C" "    " 35
at_xfail=no
(
  $as_echo "600. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:129: printf %s \"[\\\"\\\\u1xyz\\\"]\" > input"
at_fn_check_prepare_trace "json.at:129"
( $at_check_trace; printf %s "[\"\\u1xyz\"]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:129"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:129: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:129"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:129"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:129: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:129"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: malformed \\u escape
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:129"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_600
#AT_START_601
at_fn_group_banner 601 'json.at:129' \
  "\\u must be followed by 4 hex digits (2) - Python2" "" 35
at_xfail=no
(
  $as_echo "601. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:129" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:129"
   { set +x
$as_echo "$at_srcdir/json.at:129: printf %s \"[\\\"\\\\u1xyz\\\"]\" > input"
at_fn_check_prepare_trace "json.at:129"
( $at_check_trace; printf %s "[\"\\u1xyz\"]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:129"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:129: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:129"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:129"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:129: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:129"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: malformed \\u escape
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:129"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_601
#AT_START_602
at_fn_group_banner 602 'json.at:129' \
  "\\u must be followed by 4 hex digits (2) - Python3" "" 35
at_xfail=no
(
  $as_echo "602. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:129" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:129"
   { set +x
$as_echo "$at_srcdir/json.at:129: printf %s \"[\\\"\\\\u1xyz\\\"]\" > input"
at_fn_check_prepare_trace "json.at:129"
( $at_check_trace; printf %s "[\"\\u1xyz\"]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:129"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:129: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:129"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:129"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:129: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:129"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: malformed \\u escape
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:129"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_602
#AT_START_603
at_fn_group_banner 603 'json.at:132' \
  "isolated leading surrogate not allowed - C" "     " 35
at_xfail=no
(
  $as_echo "603. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:132: printf %s \"[\\\"\\\\ud834xxx\\\"]\" > input"
at_fn_check_prepare_trace "json.at:132"
( $at_check_trace; printf %s "[\"\\ud834xxx\"]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:132"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:132: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:132"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:132"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:132: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:132"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: malformed escaped surrogate pair
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:132"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_603
#AT_START_604
at_fn_group_banner 604 'json.at:132' \
  "isolated leading surrogate not allowed - Python2" "" 35
at_xfail=no
(
  $as_echo "604. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:132" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:132"
   { set +x
$as_echo "$at_srcdir/json.at:132: printf %s \"[\\\"\\\\ud834xxx\\\"]\" > input"
at_fn_check_prepare_trace "json.at:132"
( $at_check_trace; printf %s "[\"\\ud834xxx\"]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:132"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:132: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:132"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:132"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:132: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:132"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: malformed escaped surrogate pair
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:132"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_604
#AT_START_605
at_fn_group_banner 605 'json.at:132' \
  "isolated leading surrogate not allowed - Python3" "" 35
at_xfail=no
(
  $as_echo "605. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:132" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:132"
   { set +x
$as_echo "$at_srcdir/json.at:132: printf %s \"[\\\"\\\\ud834xxx\\\"]\" > input"
at_fn_check_prepare_trace "json.at:132"
( $at_check_trace; printf %s "[\"\\ud834xxx\"]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:132"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:132: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:132"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:132"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:132: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:132"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: malformed escaped surrogate pair
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:132"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_605
#AT_START_606
at_fn_group_banner 606 'json.at:135' \
  "surrogatess must paired properly - C" "           " 35
at_xfail=no
(
  $as_echo "606. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:135: printf %s \"[\\\"\\\\ud834\\\\u1234\\\"]\" > input"
at_fn_check_prepare_trace "json.at:135"
( $at_check_trace; printf %s "[\"\\ud834\\u1234\"]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:135"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:135: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:135"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:135"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:135: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:135"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: second half of escaped surrogate pair is not trailing surrogate
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:135"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_606
#AT_START_607
at_fn_group_banner 607 'json.at:135' \
  "surrogatess must paired properly - Python2" "     " 35
at_xfail=no
(
  $as_echo "607. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:135" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:135"
   { set +x
$as_echo "$at_srcdir/json.at:135: printf %s \"[\\\"\\\\ud834\\\\u1234\\\"]\" > input"
at_fn_check_prepare_trace "json.at:135"
( $at_check_trace; printf %s "[\"\\ud834\\u1234\"]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:135"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:135: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:135"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:135"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:135: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:135"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: second half of escaped surrogate pair is not trailing surrogate
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:135"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_607
#AT_START_608
at_fn_group_banner 608 'json.at:135' \
  "surrogatess must paired properly - Python3" "     " 35
at_xfail=no
(
  $as_echo "608. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:135" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:135"
   { set +x
$as_echo "$at_srcdir/json.at:135: printf %s \"[\\\"\\\\ud834\\\\u1234\\\"]\" > input"
at_fn_check_prepare_trace "json.at:135"
( $at_check_trace; printf %s "[\"\\ud834\\u1234\"]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:135"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:135: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:135"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:135"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:135: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:135"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: second half of escaped surrogate pair is not trailing surrogate
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:135"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_608
#AT_START_609
at_fn_group_banner 609 'json.at:138' \
  "null bytes not allowed - C" "                     " 35
at_xfail=no
(
  $as_echo "609. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:138: printf %s \"[\\\"\\\\u0000\\\"]\" > input"
at_fn_check_prepare_trace "json.at:138"
( $at_check_trace; printf %s "[\"\\u0000\"]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:138"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:138: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:138"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:138"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:138: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:138"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: null bytes not supported in quoted strings
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:138"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_609
#AT_START_610
at_fn_group_banner 610 'json.at:138' \
  "null bytes not allowed - Python2" "               " 35
at_xfail=no
(
  $as_echo "610. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:138" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:138"
   { set +x
$as_echo "$at_srcdir/json.at:138: printf %s \"[\\\"\\\\u0000\\\"]\" > input"
at_fn_check_prepare_trace "json.at:138"
( $at_check_trace; printf %s "[\"\\u0000\"]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:138"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:138: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:138"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:138"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:138: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:138"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: null bytes not supported in quoted strings
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:138"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_610
#AT_START_611
at_fn_group_banner 611 'json.at:138' \
  "null bytes not allowed - Python3" "               " 35
at_xfail=no
(
  $as_echo "611. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:138" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:138"
   { set +x
$as_echo "$at_srcdir/json.at:138: printf %s \"[\\\"\\\\u0000\\\"]\" > input"
at_fn_check_prepare_trace "json.at:138"
( $at_check_trace; printf %s "[\"\\u0000\"]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:138"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:138: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:138"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:138"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:138: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:138"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: null bytes not supported in quoted strings
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:138"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_611
#AT_START_612
at_fn_group_banner 612 'json.at:142' \
  "properly quoted backslash at end of string - C" " " 35
at_xfail=no
(
  $as_echo "612. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:142: printf %s \"[\\\"\\\\\\\\\\\"]\" > input"
at_fn_check_prepare_trace "json.at:142"
( $at_check_trace; printf %s "[\"\\\\\"]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:142"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:142: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:142"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:142"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:142: cat stdout"
at_fn_check_prepare_trace "json.at:142"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"\\\\\"]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:142"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_612
#AT_START_613
at_fn_group_banner 613 'json.at:142' \
  "properly quoted backslash at end of string - Python2" "" 35
at_xfail=no
(
  $as_echo "613. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:142" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:142"
   { set +x
$as_echo "$at_srcdir/json.at:142: printf %s \"[\\\"\\\\\\\\\\\"]\" > input"
at_fn_check_prepare_trace "json.at:142"
( $at_check_trace; printf %s "[\"\\\\\"]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:142"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:142: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:142"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:142"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:142: cat stdout"
at_fn_check_prepare_trace "json.at:142"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"\\\\\"]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:142"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_613
#AT_START_614
at_fn_group_banner 614 'json.at:142' \
  "properly quoted backslash at end of string - Python3" "" 35
at_xfail=no
(
  $as_echo "614. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:142" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:142"
   { set +x
$as_echo "$at_srcdir/json.at:142: printf %s \"[\\\"\\\\\\\\\\\"]\" > input"
at_fn_check_prepare_trace "json.at:142"
( $at_check_trace; printf %s "[\"\\\\\"]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:142"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:142: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:142"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:142"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:142: cat stdout"
at_fn_check_prepare_trace "json.at:142"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"\\\\\"]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:142"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_614
#AT_START_615
at_fn_group_banner 615 'json.at:145' \
  "stray backslash at end of string - C" "           " 35
at_xfail=no
(
  $as_echo "615. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:145: printf %s \"[\\\"abcd\\\\\\\"]\" > input"
at_fn_check_prepare_trace "json.at:145"
( $at_check_trace; printf %s "[\"abcd\\\"]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:145"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:145: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:145"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:145"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:145: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:145"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: unexpected end of input in quoted string
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:145"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_615
#AT_START_616
at_fn_group_banner 616 'json.at:145' \
  "stray backslash at end of string - Python2" "     " 35
at_xfail=no
(
  $as_echo "616. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:145" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:145"
   { set +x
$as_echo "$at_srcdir/json.at:145: printf %s \"[\\\"abcd\\\\\\\"]\" > input"
at_fn_check_prepare_trace "json.at:145"
( $at_check_trace; printf %s "[\"abcd\\\"]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:145"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:145: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:145"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:145"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:145: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:145"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: unexpected end of input in quoted string
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:145"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_616
#AT_START_617
at_fn_group_banner 617 'json.at:145' \
  "stray backslash at end of string - Python3" "     " 35
at_xfail=no
(
  $as_echo "617. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:145" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:145"
   { set +x
$as_echo "$at_srcdir/json.at:145: printf %s \"[\\\"abcd\\\\\\\"]\" > input"
at_fn_check_prepare_trace "json.at:145"
( $at_check_trace; printf %s "[\"abcd\\\"]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:145"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:145: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:145"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:145"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:145: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:145"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: unexpected end of input in quoted string
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:145"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_617
#AT_START_618
at_fn_group_banner 618 'json.at:149' \
  "end of input in quoted string - C" "              " 35
at_xfail=no
(
  $as_echo "618. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/json.at:151: printf '\"xxx' | ovstest test-json -"
at_fn_check_prepare_notrace 'a shell pipeline' "json.at:151"
( $at_check_trace; printf '"xxx' | ovstest test-json -
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: line 0, column 4, byte 4: unexpected end of input in quoted string
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/json.at:151"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_618
#AT_START_619
at_fn_group_banner 619 'json.at:156' \
  "end of input in quoted string - Python" "         " 35
at_xfail=no
(
  $as_echo "619. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


$as_echo "json.at:158" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:158"
{ set +x
$as_echo "$at_srcdir/json.at:159: printf '\"xxx' > input
\$PYTHON \$srcdir/test-json.py input"
at_fn_check_prepare_notrace 'an embedded newline' "json.at:159"
( $at_check_trace; printf '"xxx' > input
$PYTHON $srcdir/test-json.py input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: line 0, column 4, byte 4: unexpected end of input in quoted string
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/json.at:159"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_619
#AT_START_620
at_fn_group_banner 620 'json.at:167' \
  "empty object - C" "                               " 36
at_xfail=no
(
  $as_echo "620. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:167: printf %s \"{ }\" > input"
at_fn_check_prepare_trace "json.at:167"
( $at_check_trace; printf %s "{ }" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:167"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:167: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:167"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:167"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:167: cat stdout"
at_fn_check_prepare_trace "json.at:167"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:167"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_620
#AT_START_621
at_fn_group_banner 621 'json.at:167' \
  "empty object - Python2" "                         " 36
at_xfail=no
(
  $as_echo "621. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:167" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:167"
   { set +x
$as_echo "$at_srcdir/json.at:167: printf %s \"{ }\" > input"
at_fn_check_prepare_trace "json.at:167"
( $at_check_trace; printf %s "{ }" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:167"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:167: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:167"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:167"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:167: cat stdout"
at_fn_check_prepare_trace "json.at:167"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:167"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_621
#AT_START_622
at_fn_group_banner 622 'json.at:167' \
  "empty object - Python3" "                         " 36
at_xfail=no
(
  $as_echo "622. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:167" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:167"
   { set +x
$as_echo "$at_srcdir/json.at:167: printf %s \"{ }\" > input"
at_fn_check_prepare_trace "json.at:167"
( $at_check_trace; printf %s "{ }" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:167"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:167: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:167"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:167"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:167: cat stdout"
at_fn_check_prepare_trace "json.at:167"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:167"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_622
#AT_START_623
at_fn_group_banner 623 'json.at:168' \
  "simple object - C" "                              " 36
at_xfail=no
(
  $as_echo "623. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:168: printf %s \"{\\\"b\\\": 2, \\\"a\\\": 1, \\\"c\\\": 3}\" > input"
at_fn_check_prepare_trace "json.at:168"
( $at_check_trace; printf %s "{\"b\": 2, \"a\": 1, \"c\": 3}" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:168"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:168: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:168"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:168"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:168: cat stdout"
at_fn_check_prepare_trace "json.at:168"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"a\":1,\"b\":2,\"c\":3}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:168"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_623
#AT_START_624
at_fn_group_banner 624 'json.at:168' \
  "simple object - Python2" "                        " 36
at_xfail=no
(
  $as_echo "624. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:168" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:168"
   { set +x
$as_echo "$at_srcdir/json.at:168: printf %s \"{\\\"b\\\": 2, \\\"a\\\": 1, \\\"c\\\": 3}\" > input"
at_fn_check_prepare_trace "json.at:168"
( $at_check_trace; printf %s "{\"b\": 2, \"a\": 1, \"c\": 3}" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:168"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:168: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:168"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:168"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:168: cat stdout"
at_fn_check_prepare_trace "json.at:168"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"a\":1,\"b\":2,\"c\":3}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:168"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_624
#AT_START_625
at_fn_group_banner 625 'json.at:168' \
  "simple object - Python3" "                        " 36
at_xfail=no
(
  $as_echo "625. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:168" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:168"
   { set +x
$as_echo "$at_srcdir/json.at:168: printf %s \"{\\\"b\\\": 2, \\\"a\\\": 1, \\\"c\\\": 3}\" > input"
at_fn_check_prepare_trace "json.at:168"
( $at_check_trace; printf %s "{\"b\": 2, \"a\": 1, \"c\": 3}" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:168"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:168: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:168"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:168"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:168: cat stdout"
at_fn_check_prepare_trace "json.at:168"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"a\":1,\"b\":2,\"c\":3}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:168"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_625
#AT_START_626
at_fn_group_banner 626 'json.at:171' \
  "bad value - C" "                                  " 36
at_xfail=no
(
  $as_echo "626. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:171: printf %s \"{\\\"a\\\": }, \\\"b\\\": 2\" > input"
at_fn_check_prepare_trace "json.at:171"
( $at_check_trace; printf %s "{\"a\": }, \"b\": 2" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:171: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:171"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:171"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:171: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:171"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: syntax error expecting value
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:171"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_626
#AT_START_627
at_fn_group_banner 627 'json.at:171' \
  "bad value - Python2" "                            " 36
at_xfail=no
(
  $as_echo "627. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:171" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:171"
   { set +x
$as_echo "$at_srcdir/json.at:171: printf %s \"{\\\"a\\\": }, \\\"b\\\": 2\" > input"
at_fn_check_prepare_trace "json.at:171"
( $at_check_trace; printf %s "{\"a\": }, \"b\": 2" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:171: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:171"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:171"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:171: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:171"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: syntax error expecting value
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:171"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_627
#AT_START_628
at_fn_group_banner 628 'json.at:171' \
  "bad value - Python3" "                            " 36
at_xfail=no
(
  $as_echo "628. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:171" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:171"
   { set +x
$as_echo "$at_srcdir/json.at:171: printf %s \"{\\\"a\\\": }, \\\"b\\\": 2\" > input"
at_fn_check_prepare_trace "json.at:171"
( $at_check_trace; printf %s "{\"a\": }, \"b\": 2" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:171: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:171"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:171"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:171: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:171"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: syntax error expecting value
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:171"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_628
#AT_START_629
at_fn_group_banner 629 'json.at:173' \
  "missing colon - C" "                              " 36
at_xfail=no
(
  $as_echo "629. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:173: printf %s \"{\\\"b\\\": 2, \\\"a\\\" 1, \\\"c\\\": 3}\" > input"
at_fn_check_prepare_trace "json.at:173"
( $at_check_trace; printf %s "{\"b\": 2, \"a\" 1, \"c\": 3}" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:173"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:173: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:173"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:173"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:173: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:173"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: syntax error parsing object expecting ':'
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:173"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_629
#AT_START_630
at_fn_group_banner 630 'json.at:173' \
  "missing colon - Python2" "                        " 36
at_xfail=no
(
  $as_echo "630. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:173" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:173"
   { set +x
$as_echo "$at_srcdir/json.at:173: printf %s \"{\\\"b\\\": 2, \\\"a\\\" 1, \\\"c\\\": 3}\" > input"
at_fn_check_prepare_trace "json.at:173"
( $at_check_trace; printf %s "{\"b\": 2, \"a\" 1, \"c\": 3}" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:173"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:173: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:173"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:173"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:173: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:173"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: syntax error parsing object expecting ':'
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:173"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_630
#AT_START_631
at_fn_group_banner 631 'json.at:173' \
  "missing colon - Python3" "                        " 36
at_xfail=no
(
  $as_echo "631. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:173" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:173"
   { set +x
$as_echo "$at_srcdir/json.at:173: printf %s \"{\\\"b\\\": 2, \\\"a\\\" 1, \\\"c\\\": 3}\" > input"
at_fn_check_prepare_trace "json.at:173"
( $at_check_trace; printf %s "{\"b\": 2, \"a\" 1, \"c\": 3}" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:173"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:173: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:173"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:173"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:173: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:173"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: syntax error parsing object expecting ':'
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:173"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_631
#AT_START_632
at_fn_group_banner 632 'json.at:175' \
  "missing comma - C" "                              " 36
at_xfail=no
(
  $as_echo "632. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:175: printf %s \"{\\\"b\\\": 2 \\\"a\\\" 1, \\\"c\\\": 3}\" > input"
at_fn_check_prepare_trace "json.at:175"
( $at_check_trace; printf %s "{\"b\": 2 \"a\" 1, \"c\": 3}" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:175"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:175: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:175"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:175"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:175: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:175"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: syntax error expecting '}' or ','
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:175"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_632
#AT_START_633
at_fn_group_banner 633 'json.at:175' \
  "missing comma - Python2" "                        " 36
at_xfail=no
(
  $as_echo "633. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:175" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:175"
   { set +x
$as_echo "$at_srcdir/json.at:175: printf %s \"{\\\"b\\\": 2 \\\"a\\\" 1, \\\"c\\\": 3}\" > input"
at_fn_check_prepare_trace "json.at:175"
( $at_check_trace; printf %s "{\"b\": 2 \"a\" 1, \"c\": 3}" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:175"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:175: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:175"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:175"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:175: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:175"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: syntax error expecting '}' or ','
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:175"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_633
#AT_START_634
at_fn_group_banner 634 'json.at:175' \
  "missing comma - Python3" "                        " 36
at_xfail=no
(
  $as_echo "634. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:175" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:175"
   { set +x
$as_echo "$at_srcdir/json.at:175: printf %s \"{\\\"b\\\": 2 \\\"a\\\" 1, \\\"c\\\": 3}\" > input"
at_fn_check_prepare_trace "json.at:175"
( $at_check_trace; printf %s "{\"b\": 2 \"a\" 1, \"c\": 3}" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:175"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:175: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:175"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:175"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:175: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:175"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: syntax error expecting '}' or ','
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:175"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_634
#AT_START_635
at_fn_group_banner 635 'json.at:177' \
  "trailing comma not allowed - C" "                 " 36
at_xfail=no
(
  $as_echo "635. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:177: printf %s \"{\\\"b\\\": 2, \\\"a\\\": 1, \\\"c\\\": 3, }\" > input"
at_fn_check_prepare_trace "json.at:177"
( $at_check_trace; printf %s "{\"b\": 2, \"a\": 1, \"c\": 3, }" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:177"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:177: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:177"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:177"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:177: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:177"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: syntax error parsing object expecting string
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:177"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_635
#AT_START_636
at_fn_group_banner 636 'json.at:177' \
  "trailing comma not allowed - Python2" "           " 36
at_xfail=no
(
  $as_echo "636. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:177" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:177"
   { set +x
$as_echo "$at_srcdir/json.at:177: printf %s \"{\\\"b\\\": 2, \\\"a\\\": 1, \\\"c\\\": 3, }\" > input"
at_fn_check_prepare_trace "json.at:177"
( $at_check_trace; printf %s "{\"b\": 2, \"a\": 1, \"c\": 3, }" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:177"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:177: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:177"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:177"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:177: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:177"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: syntax error parsing object expecting string
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:177"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_636
#AT_START_637
at_fn_group_banner 637 'json.at:177' \
  "trailing comma not allowed - Python3" "           " 36
at_xfail=no
(
  $as_echo "637. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:177" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:177"
   { set +x
$as_echo "$at_srcdir/json.at:177: printf %s \"{\\\"b\\\": 2, \\\"a\\\": 1, \\\"c\\\": 3, }\" > input"
at_fn_check_prepare_trace "json.at:177"
( $at_check_trace; printf %s "{\"b\": 2, \"a\": 1, \"c\": 3, }" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:177"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:177: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:177"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:177"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:177: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:177"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: syntax error parsing object expecting string
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:177"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_637
#AT_START_638
at_fn_group_banner 638 'json.at:180' \
  "doubled comma not allowed - C" "                  " 36
at_xfail=no
(
  $as_echo "638. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:180: printf %s \"{\\\"b\\\": 2, \\\"a\\\": 1,, \\\"c\\\": 3}\" > input"
at_fn_check_prepare_trace "json.at:180"
( $at_check_trace; printf %s "{\"b\": 2, \"a\": 1,, \"c\": 3}" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:180"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:180: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:180"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:180"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:180: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:180"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: syntax error parsing object expecting string
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:180"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_638
#AT_START_639
at_fn_group_banner 639 'json.at:180' \
  "doubled comma not allowed - Python2" "            " 36
at_xfail=no
(
  $as_echo "639. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:180" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:180"
   { set +x
$as_echo "$at_srcdir/json.at:180: printf %s \"{\\\"b\\\": 2, \\\"a\\\": 1,, \\\"c\\\": 3}\" > input"
at_fn_check_prepare_trace "json.at:180"
( $at_check_trace; printf %s "{\"b\": 2, \"a\": 1,, \"c\": 3}" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:180"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:180: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:180"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:180"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:180: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:180"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: syntax error parsing object expecting string
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:180"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_639
#AT_START_640
at_fn_group_banner 640 'json.at:180' \
  "doubled comma not allowed - Python3" "            " 36
at_xfail=no
(
  $as_echo "640. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:180" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:180"
   { set +x
$as_echo "$at_srcdir/json.at:180: printf %s \"{\\\"b\\\": 2, \\\"a\\\": 1,, \\\"c\\\": 3}\" > input"
at_fn_check_prepare_trace "json.at:180"
( $at_check_trace; printf %s "{\"b\": 2, \"a\": 1,, \"c\": 3}" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:180"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:180: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:180"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:180"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:180: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:180"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: syntax error parsing object expecting string
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:180"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_640
#AT_START_641
at_fn_group_banner 641 'json.at:183' \
  "names must be strings - C" "                      " 36
at_xfail=no
(
  $as_echo "641. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:183: printf %s \"{1: 2}\" > input"
at_fn_check_prepare_trace "json.at:183"
( $at_check_trace; printf %s "{1: 2}" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:183"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:183: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:183"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:183"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:183: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:183"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: syntax error parsing object expecting string
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:183"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_641
#AT_START_642
at_fn_group_banner 642 'json.at:183' \
  "names must be strings - Python2" "                " 36
at_xfail=no
(
  $as_echo "642. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:183" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:183"
   { set +x
$as_echo "$at_srcdir/json.at:183: printf %s \"{1: 2}\" > input"
at_fn_check_prepare_trace "json.at:183"
( $at_check_trace; printf %s "{1: 2}" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:183"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:183: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:183"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:183"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:183: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:183"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: syntax error parsing object expecting string
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:183"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_642
#AT_START_643
at_fn_group_banner 643 'json.at:183' \
  "names must be strings - Python3" "                " 36
at_xfail=no
(
  $as_echo "643. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:183" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:183"
   { set +x
$as_echo "$at_srcdir/json.at:183: printf %s \"{1: 2}\" > input"
at_fn_check_prepare_trace "json.at:183"
( $at_check_trace; printf %s "{1: 2}" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:183"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:183: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:183"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:183"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:183: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:183"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: syntax error parsing object expecting string
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:183"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_643
#AT_START_644
at_fn_group_banner 644 'json.at:189' \
  "null - C" "                                       " 37
at_xfail=no
(
  $as_echo "644. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:189: printf %s \"[ null ]\" > input"
at_fn_check_prepare_trace "json.at:189"
( $at_check_trace; printf %s "[ null ]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:189"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:189: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:189"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:189"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:189: cat stdout"
at_fn_check_prepare_trace "json.at:189"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[null]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:189"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_644
#AT_START_645
at_fn_group_banner 645 'json.at:189' \
  "null - Python2" "                                 " 37
at_xfail=no
(
  $as_echo "645. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:189" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:189"
   { set +x
$as_echo "$at_srcdir/json.at:189: printf %s \"[ null ]\" > input"
at_fn_check_prepare_trace "json.at:189"
( $at_check_trace; printf %s "[ null ]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:189"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:189: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:189"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:189"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:189: cat stdout"
at_fn_check_prepare_trace "json.at:189"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[null]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:189"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_645
#AT_START_646
at_fn_group_banner 646 'json.at:189' \
  "null - Python3" "                                 " 37
at_xfail=no
(
  $as_echo "646. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:189" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:189"
   { set +x
$as_echo "$at_srcdir/json.at:189: printf %s \"[ null ]\" > input"
at_fn_check_prepare_trace "json.at:189"
( $at_check_trace; printf %s "[ null ]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:189"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:189: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:189"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:189"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:189: cat stdout"
at_fn_check_prepare_trace "json.at:189"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[null]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:189"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_646
#AT_START_647
at_fn_group_banner 647 'json.at:190' \
  "false - C" "                                      " 37
at_xfail=no
(
  $as_echo "647. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:190: printf %s \"[ false ]\" > input"
at_fn_check_prepare_trace "json.at:190"
( $at_check_trace; printf %s "[ false ]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:190"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:190: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:190"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:190"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:190: cat stdout"
at_fn_check_prepare_trace "json.at:190"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[false]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:190"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_647
#AT_START_648
at_fn_group_banner 648 'json.at:190' \
  "false - Python2" "                                " 37
at_xfail=no
(
  $as_echo "648. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:190" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:190"
   { set +x
$as_echo "$at_srcdir/json.at:190: printf %s \"[ false ]\" > input"
at_fn_check_prepare_trace "json.at:190"
( $at_check_trace; printf %s "[ false ]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:190"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:190: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:190"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:190"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:190: cat stdout"
at_fn_check_prepare_trace "json.at:190"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[false]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:190"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_648
#AT_START_649
at_fn_group_banner 649 'json.at:190' \
  "false - Python3" "                                " 37
at_xfail=no
(
  $as_echo "649. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:190" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:190"
   { set +x
$as_echo "$at_srcdir/json.at:190: printf %s \"[ false ]\" > input"
at_fn_check_prepare_trace "json.at:190"
( $at_check_trace; printf %s "[ false ]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:190"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:190: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:190"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:190"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:190: cat stdout"
at_fn_check_prepare_trace "json.at:190"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[false]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:190"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_649
#AT_START_650
at_fn_group_banner 650 'json.at:191' \
  "true - C" "                                       " 37
at_xfail=no
(
  $as_echo "650. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:191: printf %s \"[ true ]\" > input"
at_fn_check_prepare_trace "json.at:191"
( $at_check_trace; printf %s "[ true ]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:191"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:191: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:191"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:191"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:191: cat stdout"
at_fn_check_prepare_trace "json.at:191"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[true]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:191"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_650
#AT_START_651
at_fn_group_banner 651 'json.at:191' \
  "true - Python2" "                                 " 37
at_xfail=no
(
  $as_echo "651. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:191" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:191"
   { set +x
$as_echo "$at_srcdir/json.at:191: printf %s \"[ true ]\" > input"
at_fn_check_prepare_trace "json.at:191"
( $at_check_trace; printf %s "[ true ]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:191"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:191: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:191"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:191"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:191: cat stdout"
at_fn_check_prepare_trace "json.at:191"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[true]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:191"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_651
#AT_START_652
at_fn_group_banner 652 'json.at:191' \
  "true - Python3" "                                 " 37
at_xfail=no
(
  $as_echo "652. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:191" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:191"
   { set +x
$as_echo "$at_srcdir/json.at:191: printf %s \"[ true ]\" > input"
at_fn_check_prepare_trace "json.at:191"
( $at_check_trace; printf %s "[ true ]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:191"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:191: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:191"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:191"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:191: cat stdout"
at_fn_check_prepare_trace "json.at:191"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[true]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:191"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_652
#AT_START_653
at_fn_group_banner 653 'json.at:192' \
  "a literal by itself is not valid JSON - C" "      " 37
at_xfail=no
(
  $as_echo "653. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:192: printf %s \"null\" > input"
at_fn_check_prepare_trace "json.at:192"
( $at_check_trace; printf %s "null" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:192"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:192: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:192"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:192"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:192: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:192"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: syntax error at beginning of input
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:192"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_653
#AT_START_654
at_fn_group_banner 654 'json.at:192' \
  "a literal by itself is not valid JSON - Python2" "" 37
at_xfail=no
(
  $as_echo "654. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:192" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:192"
   { set +x
$as_echo "$at_srcdir/json.at:192: printf %s \"null\" > input"
at_fn_check_prepare_trace "json.at:192"
( $at_check_trace; printf %s "null" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:192"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:192: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:192"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:192"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:192: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:192"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: syntax error at beginning of input
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:192"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_654
#AT_START_655
at_fn_group_banner 655 'json.at:192' \
  "a literal by itself is not valid JSON - Python3" "" 37
at_xfail=no
(
  $as_echo "655. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:192" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:192"
   { set +x
$as_echo "$at_srcdir/json.at:192: printf %s \"null\" > input"
at_fn_check_prepare_trace "json.at:192"
( $at_check_trace; printf %s "null" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:192"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:192: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:192"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:192"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:192: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:192"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: syntax error at beginning of input
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:192"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_655
#AT_START_656
at_fn_group_banner 656 'json.at:194' \
  "nullify is invalid - C" "                         " 37
at_xfail=no
(
  $as_echo "656. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:194: printf %s \"[ nullify ]\" > input"
at_fn_check_prepare_trace "json.at:194"
( $at_check_trace; printf %s "[ nullify ]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:194"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:194: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:194"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:194"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:194: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:194"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: invalid keyword 'nullify'
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:194"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_656
#AT_START_657
at_fn_group_banner 657 'json.at:194' \
  "nullify is invalid - Python2" "                   " 37
at_xfail=no
(
  $as_echo "657. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:194" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:194"
   { set +x
$as_echo "$at_srcdir/json.at:194: printf %s \"[ nullify ]\" > input"
at_fn_check_prepare_trace "json.at:194"
( $at_check_trace; printf %s "[ nullify ]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:194"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:194: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:194"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:194"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:194: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:194"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: invalid keyword 'nullify'
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:194"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_657
#AT_START_658
at_fn_group_banner 658 'json.at:194' \
  "nullify is invalid - Python3" "                   " 37
at_xfail=no
(
  $as_echo "658. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:194" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:194"
   { set +x
$as_echo "$at_srcdir/json.at:194: printf %s \"[ nullify ]\" > input"
at_fn_check_prepare_trace "json.at:194"
( $at_check_trace; printf %s "[ nullify ]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:194"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:194: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:194"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:194"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:194: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:194"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: invalid keyword 'nullify'
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:194"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_658
#AT_START_659
at_fn_group_banner 659 'json.at:196' \
  "nubs is invalid - C" "                            " 37
at_xfail=no
(
  $as_echo "659. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:196: printf %s \"[ nubs ]\" > input"
at_fn_check_prepare_trace "json.at:196"
( $at_check_trace; printf %s "[ nubs ]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:196"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:196: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:196"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:196"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:196: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:196"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: invalid keyword 'nubs'
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:196"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_659
#AT_START_660
at_fn_group_banner 660 'json.at:196' \
  "nubs is invalid - Python2" "                      " 37
at_xfail=no
(
  $as_echo "660. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:196" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:196"
   { set +x
$as_echo "$at_srcdir/json.at:196: printf %s \"[ nubs ]\" > input"
at_fn_check_prepare_trace "json.at:196"
( $at_check_trace; printf %s "[ nubs ]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:196"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:196: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:196"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:196"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:196: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:196"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: invalid keyword 'nubs'
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:196"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_660
#AT_START_661
at_fn_group_banner 661 'json.at:196' \
  "nubs is invalid - Python3" "                      " 37
at_xfail=no
(
  $as_echo "661. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:196" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:196"
   { set +x
$as_echo "$at_srcdir/json.at:196: printf %s \"[ nubs ]\" > input"
at_fn_check_prepare_trace "json.at:196"
( $at_check_trace; printf %s "[ nubs ]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:196"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:196: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:196"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:196"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:196: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:196"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: invalid keyword 'nubs'
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:196"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_661
#AT_START_662
at_fn_group_banner 662 'json.at:198' \
  "xxx is invalid - C" "                             " 37
at_xfail=no
(
  $as_echo "662. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:198: printf %s \"[ xxx ]\" > input"
at_fn_check_prepare_trace "json.at:198"
( $at_check_trace; printf %s "[ xxx ]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:198"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:198: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:198"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:198"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:198: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:198"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: invalid keyword 'xxx'
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:198"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_662
#AT_START_663
at_fn_group_banner 663 'json.at:198' \
  "xxx is invalid - Python2" "                       " 37
at_xfail=no
(
  $as_echo "663. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:198" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:198"
   { set +x
$as_echo "$at_srcdir/json.at:198: printf %s \"[ xxx ]\" > input"
at_fn_check_prepare_trace "json.at:198"
( $at_check_trace; printf %s "[ xxx ]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:198"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:198: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:198"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:198"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:198: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:198"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: invalid keyword 'xxx'
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:198"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_663
#AT_START_664
at_fn_group_banner 664 'json.at:198' \
  "xxx is invalid - Python3" "                       " 37
at_xfail=no
(
  $as_echo "664. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:198" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:198"
   { set +x
$as_echo "$at_srcdir/json.at:198: printf %s \"[ xxx ]\" > input"
at_fn_check_prepare_trace "json.at:198"
( $at_check_trace; printf %s "[ xxx ]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:198"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:198: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:198"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:198"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:198: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:198"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: invalid keyword 'xxx'
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:198"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_664
#AT_START_665
at_fn_group_banner 665 'json.at:203' \
  "integers expressed as reals - C" "                " 38
at_xfail=no
(
  $as_echo "665. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:203: printf %s \"[1.0000000000,
     2.00000000000000000000000000000000000,
     2e5,
     2.1234e4,
     2.1230e3,
     0e-10000,
     0e10000]\" > input"
at_fn_check_prepare_notrace 'an embedded newline' "json.at:203"
( $at_check_trace; printf %s "[1.0000000000,
     2.00000000000000000000000000000000000,
     2e5,
     2.1234e4,
     2.1230e3,
     0e-10000,
     0e10000]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:203"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:203: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:203"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:203"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:203: cat stdout"
at_fn_check_prepare_trace "json.at:203"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[1,2,200000,21234,2123,0,0]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:203"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_665
#AT_START_666
at_fn_group_banner 666 'json.at:203' \
  "integers expressed as reals - Python2" "          " 38
at_xfail=no
(
  $as_echo "666. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:203" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:203"
   { set +x
$as_echo "$at_srcdir/json.at:203: printf %s \"[1.0000000000,
     2.00000000000000000000000000000000000,
     2e5,
     2.1234e4,
     2.1230e3,
     0e-10000,
     0e10000]\" > input"
at_fn_check_prepare_notrace 'an embedded newline' "json.at:203"
( $at_check_trace; printf %s "[1.0000000000,
     2.00000000000000000000000000000000000,
     2e5,
     2.1234e4,
     2.1230e3,
     0e-10000,
     0e10000]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:203"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:203: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:203"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:203"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:203: cat stdout"
at_fn_check_prepare_trace "json.at:203"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[1,2,200000,21234,2123,0,0]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:203"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_666
#AT_START_667
at_fn_group_banner 667 'json.at:203' \
  "integers expressed as reals - Python3" "          " 38
at_xfail=no
(
  $as_echo "667. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:203" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:203"
   { set +x
$as_echo "$at_srcdir/json.at:203: printf %s \"[1.0000000000,
     2.00000000000000000000000000000000000,
     2e5,
     2.1234e4,
     2.1230e3,
     0e-10000,
     0e10000]\" > input"
at_fn_check_prepare_notrace 'an embedded newline' "json.at:203"
( $at_check_trace; printf %s "[1.0000000000,
     2.00000000000000000000000000000000000,
     2e5,
     2.1234e4,
     2.1230e3,
     0e-10000,
     0e10000]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:203"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:203: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:203"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:203"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:203: cat stdout"
at_fn_check_prepare_trace "json.at:203"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[1,2,200000,21234,2123,0,0]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:203"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_667
#AT_START_668
at_fn_group_banner 668 'json.at:213' \
  "large integers - C" "                             " 38
at_xfail=no
(
  $as_echo "668. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:213: printf %s \"[9223372036854775807, -9223372036854775808]\" > input"
at_fn_check_prepare_trace "json.at:213"
( $at_check_trace; printf %s "[9223372036854775807, -9223372036854775808]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:213"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:213: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:213"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:213"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:213: cat stdout"
at_fn_check_prepare_trace "json.at:213"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[9223372036854775807,-9223372036854775808]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:213"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_668
#AT_START_669
at_fn_group_banner 669 'json.at:213' \
  "large integers - Python2" "                       " 38
at_xfail=no
(
  $as_echo "669. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:213" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:213"
   { set +x
$as_echo "$at_srcdir/json.at:213: printf %s \"[9223372036854775807, -9223372036854775808]\" > input"
at_fn_check_prepare_trace "json.at:213"
( $at_check_trace; printf %s "[9223372036854775807, -9223372036854775808]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:213"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:213: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:213"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:213"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:213: cat stdout"
at_fn_check_prepare_trace "json.at:213"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[9223372036854775807,-9223372036854775808]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:213"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_669
#AT_START_670
at_fn_group_banner 670 'json.at:213' \
  "large integers - Python3" "                       " 38
at_xfail=no
(
  $as_echo "670. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:213" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:213"
   { set +x
$as_echo "$at_srcdir/json.at:213: printf %s \"[9223372036854775807, -9223372036854775808]\" > input"
at_fn_check_prepare_trace "json.at:213"
( $at_check_trace; printf %s "[9223372036854775807, -9223372036854775808]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:213"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:213: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:213"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:213"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:213: cat stdout"
at_fn_check_prepare_trace "json.at:213"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[9223372036854775807,-9223372036854775808]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:213"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_670
#AT_START_671
at_fn_group_banner 671 'json.at:217' \
  "large integers expressed as reals - C" "          " 38
at_xfail=no
(
  $as_echo "671. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:217: printf %s \"[9223372036854775807.0, -9223372036854775808.0,
     92233720.36854775807e11, -9.223372036854775808e18]\" > input"
at_fn_check_prepare_notrace 'an embedded newline' "json.at:217"
( $at_check_trace; printf %s "[9223372036854775807.0, -9223372036854775808.0,
     92233720.36854775807e11, -9.223372036854775808e18]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:217"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:217: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:217"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:217"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:217: cat stdout"
at_fn_check_prepare_trace "json.at:217"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[9223372036854775807,-9223372036854775808,9223372036854775807,-9223372036854775808]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:217"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_671
#AT_START_672
at_fn_group_banner 672 'json.at:217' \
  "large integers expressed as reals - Python2" "    " 38
at_xfail=no
(
  $as_echo "672. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:217" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:217"
   { set +x
$as_echo "$at_srcdir/json.at:217: printf %s \"[9223372036854775807.0, -9223372036854775808.0,
     92233720.36854775807e11, -9.223372036854775808e18]\" > input"
at_fn_check_prepare_notrace 'an embedded newline' "json.at:217"
( $at_check_trace; printf %s "[9223372036854775807.0, -9223372036854775808.0,
     92233720.36854775807e11, -9.223372036854775808e18]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:217"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:217: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:217"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:217"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:217: cat stdout"
at_fn_check_prepare_trace "json.at:217"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[9223372036854775807,-9223372036854775808,9223372036854775807,-9223372036854775808]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:217"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_672
#AT_START_673
at_fn_group_banner 673 'json.at:217' \
  "large integers expressed as reals - Python3" "    " 38
at_xfail=no
(
  $as_echo "673. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:217" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:217"
   { set +x
$as_echo "$at_srcdir/json.at:217: printf %s \"[9223372036854775807.0, -9223372036854775808.0,
     92233720.36854775807e11, -9.223372036854775808e18]\" > input"
at_fn_check_prepare_notrace 'an embedded newline' "json.at:217"
( $at_check_trace; printf %s "[9223372036854775807.0, -9223372036854775808.0,
     92233720.36854775807e11, -9.223372036854775808e18]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:217"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:217: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:217"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:217"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:217: cat stdout"
at_fn_check_prepare_trace "json.at:217"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[9223372036854775807,-9223372036854775808,9223372036854775807,-9223372036854775808]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:217"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_673
#AT_START_674
at_fn_group_banner 674 'json.at:225' \
  "C - large integers that overflow to reals" "      " 38
at_xfail=no
(
  $as_echo "674. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:225: printf %s \"[9223372036854775807000, -92233720368547758080000]\" > input"
at_fn_check_prepare_trace "json.at:225"
( $at_check_trace; printf %s "[9223372036854775807000, -92233720368547758080000]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:225"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:225: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:225"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:225"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:225: cat stdout"
at_fn_check_prepare_trace "json.at:225"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[9.22337203685478e+21,-9.22337203685478e+22]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:225"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_674
#AT_START_675
at_fn_group_banner 675 'json.at:229' \
  "large integers that overflow to reals - Python2" "" 38
at_xfail=no
(
  $as_echo "675. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:229" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:229"
   { set +x
$as_echo "$at_srcdir/json.at:229: printf %s \"[9223372036854775807000, -92233720368547758080000]\" > input"
at_fn_check_prepare_trace "json.at:229"
( $at_check_trace; printf %s "[9223372036854775807000, -92233720368547758080000]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:229"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:229: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:229"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:229"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:229: cat stdout"
at_fn_check_prepare_trace "json.at:229"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[9.223372036854776e+21,-9.223372036854776e+22]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:229"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_675
#AT_START_676
at_fn_group_banner 676 'json.at:229' \
  "large integers that overflow to reals - Python3" "" 38
at_xfail=no
(
  $as_echo "676. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:229" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:229"
   { set +x
$as_echo "$at_srcdir/json.at:229: printf %s \"[9223372036854775807000, -92233720368547758080000]\" > input"
at_fn_check_prepare_trace "json.at:229"
( $at_check_trace; printf %s "[9223372036854775807000, -92233720368547758080000]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:229"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:229: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:229"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:229"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:229: cat stdout"
at_fn_check_prepare_trace "json.at:229"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[9.223372036854776e+21,-9.223372036854776e+22]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:229"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_676
#AT_START_677
at_fn_group_banner 677 'json.at:234' \
  "negative zero - C" "                              " 38
at_xfail=no
(
  $as_echo "677. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:234: printf %s \"[-0, -0.0, 1e-9999, -1e-9999]\" > input"
at_fn_check_prepare_trace "json.at:234"
( $at_check_trace; printf %s "[-0, -0.0, 1e-9999, -1e-9999]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:234"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:234: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:234"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:234"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:234: cat stdout"
at_fn_check_prepare_trace "json.at:234"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[0,0,0,0]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:234"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_677
#AT_START_678
at_fn_group_banner 678 'json.at:234' \
  "negative zero - Python2" "                        " 38
at_xfail=no
(
  $as_echo "678. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:234" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:234"
   { set +x
$as_echo "$at_srcdir/json.at:234: printf %s \"[-0, -0.0, 1e-9999, -1e-9999]\" > input"
at_fn_check_prepare_trace "json.at:234"
( $at_check_trace; printf %s "[-0, -0.0, 1e-9999, -1e-9999]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:234"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:234: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:234"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:234"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:234: cat stdout"
at_fn_check_prepare_trace "json.at:234"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[0,0,0,0]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:234"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_678
#AT_START_679
at_fn_group_banner 679 'json.at:234' \
  "negative zero - Python3" "                        " 38
at_xfail=no
(
  $as_echo "679. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:234" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:234"
   { set +x
$as_echo "$at_srcdir/json.at:234: printf %s \"[-0, -0.0, 1e-9999, -1e-9999]\" > input"
at_fn_check_prepare_trace "json.at:234"
( $at_check_trace; printf %s "[-0, -0.0, 1e-9999, -1e-9999]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:234"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:234: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:234"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:234"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:234: cat stdout"
at_fn_check_prepare_trace "json.at:234"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[0,0,0,0]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:234"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_679
#AT_START_680
at_fn_group_banner 680 'json.at:239' \
  "reals - C" "                                      " 38
at_xfail=no
(
  $as_echo "680. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:239: printf %s \"[0.0, 1.0, 2.0, 3.0, 3.5, 81.250]\" > input"
at_fn_check_prepare_trace "json.at:239"
( $at_check_trace; printf %s "[0.0, 1.0, 2.0, 3.0, 3.5, 81.250]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:239"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:239: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:239"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:239"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:239: cat stdout"
at_fn_check_prepare_trace "json.at:239"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[0,1,2,3,3.5,81.25]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:239"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_680
#AT_START_681
at_fn_group_banner 681 'json.at:239' \
  "reals - Python2" "                                " 38
at_xfail=no
(
  $as_echo "681. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:239" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:239"
   { set +x
$as_echo "$at_srcdir/json.at:239: printf %s \"[0.0, 1.0, 2.0, 3.0, 3.5, 81.250]\" > input"
at_fn_check_prepare_trace "json.at:239"
( $at_check_trace; printf %s "[0.0, 1.0, 2.0, 3.0, 3.5, 81.250]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:239"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:239: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:239"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:239"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:239: cat stdout"
at_fn_check_prepare_trace "json.at:239"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[0,1,2,3,3.5,81.25]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:239"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_681
#AT_START_682
at_fn_group_banner 682 'json.at:239' \
  "reals - Python3" "                                " 38
at_xfail=no
(
  $as_echo "682. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:239" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:239"
   { set +x
$as_echo "$at_srcdir/json.at:239: printf %s \"[0.0, 1.0, 2.0, 3.0, 3.5, 81.250]\" > input"
at_fn_check_prepare_trace "json.at:239"
( $at_check_trace; printf %s "[0.0, 1.0, 2.0, 3.0, 3.5, 81.250]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:239"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:239: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:239"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:239"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:239: cat stdout"
at_fn_check_prepare_trace "json.at:239"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[0,1,2,3,3.5,81.25]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:239"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_682
#AT_START_683
at_fn_group_banner 683 'json.at:243' \
  "scientific notation - C" "                        " 38
at_xfail=no
(
  $as_echo "683. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:243: printf %s \"[1e3, 1E3, 2.5E2, 1e+3, 125e-3, 3.125e-2, 3125e-05, 1.525878906e-5]\" > input"
at_fn_check_prepare_trace "json.at:243"
( $at_check_trace; printf %s "[1e3, 1E3, 2.5E2, 1e+3, 125e-3, 3.125e-2, 3125e-05, 1.525878906e-5]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:243"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:243: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:243"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:243"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:243: cat stdout"
at_fn_check_prepare_trace "json.at:243"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[1000,1000,250,1000,0.125,0.03125,0.03125,1.525878906e-05]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:243"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_683
#AT_START_684
at_fn_group_banner 684 'json.at:243' \
  "scientific notation - Python2" "                  " 38
at_xfail=no
(
  $as_echo "684. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:243" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:243"
   { set +x
$as_echo "$at_srcdir/json.at:243: printf %s \"[1e3, 1E3, 2.5E2, 1e+3, 125e-3, 3.125e-2, 3125e-05, 1.525878906e-5]\" > input"
at_fn_check_prepare_trace "json.at:243"
( $at_check_trace; printf %s "[1e3, 1E3, 2.5E2, 1e+3, 125e-3, 3.125e-2, 3125e-05, 1.525878906e-5]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:243"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:243: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:243"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:243"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:243: cat stdout"
at_fn_check_prepare_trace "json.at:243"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[1000,1000,250,1000,0.125,0.03125,0.03125,1.525878906e-05]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:243"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_684
#AT_START_685
at_fn_group_banner 685 'json.at:243' \
  "scientific notation - Python3" "                  " 38
at_xfail=no
(
  $as_echo "685. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:243" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:243"
   { set +x
$as_echo "$at_srcdir/json.at:243: printf %s \"[1e3, 1E3, 2.5E2, 1e+3, 125e-3, 3.125e-2, 3125e-05, 1.525878906e-5]\" > input"
at_fn_check_prepare_trace "json.at:243"
( $at_check_trace; printf %s "[1e3, 1E3, 2.5E2, 1e+3, 125e-3, 3.125e-2, 3125e-05, 1.525878906e-5]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:243"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:243: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:243"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:243"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:243: cat stdout"
at_fn_check_prepare_trace "json.at:243"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[1000,1000,250,1000,0.125,0.03125,0.03125,1.525878906e-05]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:243"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_685
#AT_START_686
at_fn_group_banner 686 'json.at:250' \
  "C - +/- DBL_MAX" "                                " 38
at_xfail=no
(
  $as_echo "686. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:250: printf %s \"[1.7976931348623157e+308, -1.7976931348623157e+308]\" > input"
at_fn_check_prepare_trace "json.at:250"
( $at_check_trace; printf %s "[1.7976931348623157e+308, -1.7976931348623157e+308]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:250"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:250: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:250"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:250"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:250: cat stdout"
at_fn_check_prepare_trace "json.at:250"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[1.79769313486232e+308,-1.79769313486232e+308]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:250"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_686
#AT_START_687
at_fn_group_banner 687 'json.at:254' \
  "+/- DBL_MAX - Python2" "                          " 38
at_xfail=no
(
  $as_echo "687. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:254" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:254"
   { set +x
$as_echo "$at_srcdir/json.at:254: printf %s \"[1.7976931348623157e+308, -1.7976931348623157e+308]\" > input"
at_fn_check_prepare_trace "json.at:254"
( $at_check_trace; printf %s "[1.7976931348623157e+308, -1.7976931348623157e+308]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:254"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:254: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:254"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:254"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:254: cat stdout"
at_fn_check_prepare_trace "json.at:254"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[1.7976931348623157e+308,-1.7976931348623157e+308]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:254"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_687
#AT_START_688
at_fn_group_banner 688 'json.at:254' \
  "+/- DBL_MAX - Python3" "                          " 38
at_xfail=no
(
  $as_echo "688. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:254" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:254"
   { set +x
$as_echo "$at_srcdir/json.at:254: printf %s \"[1.7976931348623157e+308, -1.7976931348623157e+308]\" > input"
at_fn_check_prepare_trace "json.at:254"
( $at_check_trace; printf %s "[1.7976931348623157e+308, -1.7976931348623157e+308]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:254"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:254: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:254"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:254"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:254: cat stdout"
at_fn_check_prepare_trace "json.at:254"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[1.7976931348623157e+308,-1.7976931348623157e+308]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:254"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_688
#AT_START_689
at_fn_group_banner 689 'json.at:259' \
  "negative reals - C" "                             " 38
at_xfail=no
(
  $as_echo "689. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:259: printf %s \"[-0, -1.0, -2.0, -3.0, -3.5, -8.1250]\" > input"
at_fn_check_prepare_trace "json.at:259"
( $at_check_trace; printf %s "[-0, -1.0, -2.0, -3.0, -3.5, -8.1250]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:259"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:259: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:259"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:259"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:259: cat stdout"
at_fn_check_prepare_trace "json.at:259"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[0,-1,-2,-3,-3.5,-8.125]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:259"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_689
#AT_START_690
at_fn_group_banner 690 'json.at:259' \
  "negative reals - Python2" "                       " 38
at_xfail=no
(
  $as_echo "690. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:259" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:259"
   { set +x
$as_echo "$at_srcdir/json.at:259: printf %s \"[-0, -1.0, -2.0, -3.0, -3.5, -8.1250]\" > input"
at_fn_check_prepare_trace "json.at:259"
( $at_check_trace; printf %s "[-0, -1.0, -2.0, -3.0, -3.5, -8.1250]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:259"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:259: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:259"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:259"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:259: cat stdout"
at_fn_check_prepare_trace "json.at:259"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[0,-1,-2,-3,-3.5,-8.125]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:259"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_690
#AT_START_691
at_fn_group_banner 691 'json.at:259' \
  "negative reals - Python3" "                       " 38
at_xfail=no
(
  $as_echo "691. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:259" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:259"
   { set +x
$as_echo "$at_srcdir/json.at:259: printf %s \"[-0, -1.0, -2.0, -3.0, -3.5, -8.1250]\" > input"
at_fn_check_prepare_trace "json.at:259"
( $at_check_trace; printf %s "[-0, -1.0, -2.0, -3.0, -3.5, -8.1250]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:259"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:259: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:259"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:259"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:259: cat stdout"
at_fn_check_prepare_trace "json.at:259"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[0,-1,-2,-3,-3.5,-8.125]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:259"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_691
#AT_START_692
at_fn_group_banner 692 'json.at:263' \
  "negative scientific notation - C" "               " 38
at_xfail=no
(
  $as_echo "692. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:263: printf %s \"[-1e3, -1E3, -2.5E2, -1e+3, -125e-3, -3.125e-2, -3125e-05, -1.525878906e-5]\" > input"
at_fn_check_prepare_trace "json.at:263"
( $at_check_trace; printf %s "[-1e3, -1E3, -2.5E2, -1e+3, -125e-3, -3.125e-2, -3125e-05, -1.525878906e-5]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:263"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:263: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:263"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:263"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:263: cat stdout"
at_fn_check_prepare_trace "json.at:263"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[-1000,-1000,-250,-1000,-0.125,-0.03125,-0.03125,-1.525878906e-05]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:263"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_692
#AT_START_693
at_fn_group_banner 693 'json.at:263' \
  "negative scientific notation - Python2" "         " 38
at_xfail=no
(
  $as_echo "693. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:263" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:263"
   { set +x
$as_echo "$at_srcdir/json.at:263: printf %s \"[-1e3, -1E3, -2.5E2, -1e+3, -125e-3, -3.125e-2, -3125e-05, -1.525878906e-5]\" > input"
at_fn_check_prepare_trace "json.at:263"
( $at_check_trace; printf %s "[-1e3, -1E3, -2.5E2, -1e+3, -125e-3, -3.125e-2, -3125e-05, -1.525878906e-5]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:263"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:263: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:263"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:263"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:263: cat stdout"
at_fn_check_prepare_trace "json.at:263"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[-1000,-1000,-250,-1000,-0.125,-0.03125,-0.03125,-1.525878906e-05]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:263"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_693
#AT_START_694
at_fn_group_banner 694 'json.at:263' \
  "negative scientific notation - Python3" "         " 38
at_xfail=no
(
  $as_echo "694. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:263" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:263"
   { set +x
$as_echo "$at_srcdir/json.at:263: printf %s \"[-1e3, -1E3, -2.5E2, -1e+3, -125e-3, -3.125e-2, -3125e-05, -1.525878906e-5]\" > input"
at_fn_check_prepare_trace "json.at:263"
( $at_check_trace; printf %s "[-1e3, -1E3, -2.5E2, -1e+3, -125e-3, -3.125e-2, -3125e-05, -1.525878906e-5]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:263"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:263: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:263"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:263"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:263: cat stdout"
at_fn_check_prepare_trace "json.at:263"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[-1000,-1000,-250,-1000,-0.125,-0.03125,-0.03125,-1.525878906e-05]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:263"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_694
#AT_START_695
at_fn_group_banner 695 'json.at:267' \
  "1e-9999 underflows to 0 - C" "                    " 38
at_xfail=no
(
  $as_echo "695. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:267: printf %s \"[1e-9999]\" > input"
at_fn_check_prepare_trace "json.at:267"
( $at_check_trace; printf %s "[1e-9999]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:267"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:267: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:267"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:267"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:267: cat stdout"
at_fn_check_prepare_trace "json.at:267"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[0]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:267"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_695
#AT_START_696
at_fn_group_banner 696 'json.at:267' \
  "1e-9999 underflows to 0 - Python2" "              " 38
at_xfail=no
(
  $as_echo "696. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:267" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:267"
   { set +x
$as_echo "$at_srcdir/json.at:267: printf %s \"[1e-9999]\" > input"
at_fn_check_prepare_trace "json.at:267"
( $at_check_trace; printf %s "[1e-9999]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:267"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:267: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:267"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:267"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:267: cat stdout"
at_fn_check_prepare_trace "json.at:267"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[0]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:267"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_696
#AT_START_697
at_fn_group_banner 697 'json.at:267' \
  "1e-9999 underflows to 0 - Python3" "              " 38
at_xfail=no
(
  $as_echo "697. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:267" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:267"
   { set +x
$as_echo "$at_srcdir/json.at:267: printf %s \"[1e-9999]\" > input"
at_fn_check_prepare_trace "json.at:267"
( $at_check_trace; printf %s "[1e-9999]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:267"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:267: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:267"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:267"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:267: cat stdout"
at_fn_check_prepare_trace "json.at:267"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[0]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:267"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_697
#AT_START_698
at_fn_group_banner 698 'json.at:271' \
  "a number by itself is not valid JSON - C" "       " 38
at_xfail=no
(
  $as_echo "698. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:271: printf %s \"1\" > input"
at_fn_check_prepare_trace "json.at:271"
( $at_check_trace; printf %s "1" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:271"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:271: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:271"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:271"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:271: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:271"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: syntax error at beginning of input
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:271"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_698
#AT_START_699
at_fn_group_banner 699 'json.at:271' \
  "a number by itself is not valid JSON - Python2" " " 38
at_xfail=no
(
  $as_echo "699. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:271" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:271"
   { set +x
$as_echo "$at_srcdir/json.at:271: printf %s \"1\" > input"
at_fn_check_prepare_trace "json.at:271"
( $at_check_trace; printf %s "1" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:271"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:271: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:271"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:271"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:271: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:271"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: syntax error at beginning of input
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:271"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_699
#AT_START_700
at_fn_group_banner 700 'json.at:271' \
  "a number by itself is not valid JSON - Python3" " " 38
at_xfail=no
(
  $as_echo "700. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:271" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:271"
   { set +x
$as_echo "$at_srcdir/json.at:271: printf %s \"1\" > input"
at_fn_check_prepare_trace "json.at:271"
( $at_check_trace; printf %s "1" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:271"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:271: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:271"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:271"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:271: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:271"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: syntax error at beginning of input
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:271"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_700
#AT_START_701
at_fn_group_banner 701 'json.at:273' \
  "leading zeros not allowed - C" "                  " 38
at_xfail=no
(
  $as_echo "701. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:273: printf %s \"[0123]\" > input"
at_fn_check_prepare_trace "json.at:273"
( $at_check_trace; printf %s "[0123]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:273"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:273: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:273"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:273"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:273: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:273"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: leading zeros not allowed
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:273"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_701
#AT_START_702
at_fn_group_banner 702 'json.at:273' \
  "leading zeros not allowed - Python2" "            " 38
at_xfail=no
(
  $as_echo "702. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:273" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:273"
   { set +x
$as_echo "$at_srcdir/json.at:273: printf %s \"[0123]\" > input"
at_fn_check_prepare_trace "json.at:273"
( $at_check_trace; printf %s "[0123]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:273"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:273: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:273"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:273"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:273: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:273"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: leading zeros not allowed
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:273"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_702
#AT_START_703
at_fn_group_banner 703 'json.at:273' \
  "leading zeros not allowed - Python3" "            " 38
at_xfail=no
(
  $as_echo "703. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:273" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:273"
   { set +x
$as_echo "$at_srcdir/json.at:273: printf %s \"[0123]\" > input"
at_fn_check_prepare_trace "json.at:273"
( $at_check_trace; printf %s "[0123]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:273"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:273: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:273"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:273"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:273: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:273"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: leading zeros not allowed
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:273"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_703
#AT_START_704
at_fn_group_banner 704 'json.at:277' \
  "1e9999 is too big - C" "                          " 38
at_xfail=no
(
  $as_echo "704. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:277: printf %s \"[1e9999]\" > input"
at_fn_check_prepare_trace "json.at:277"
( $at_check_trace; printf %s "[1e9999]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:277"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:277: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:277"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:277"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:277: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:277"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: number outside valid range
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:277"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_704
#AT_START_705
at_fn_group_banner 705 'json.at:277' \
  "1e9999 is too big - Python2" "                    " 38
at_xfail=no
(
  $as_echo "705. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:277" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:277"
   { set +x
$as_echo "$at_srcdir/json.at:277: printf %s \"[1e9999]\" > input"
at_fn_check_prepare_trace "json.at:277"
( $at_check_trace; printf %s "[1e9999]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:277"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:277: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:277"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:277"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:277: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:277"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: number outside valid range
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:277"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_705
#AT_START_706
at_fn_group_banner 706 'json.at:277' \
  "1e9999 is too big - Python3" "                    " 38
at_xfail=no
(
  $as_echo "706. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:277" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:277"
   { set +x
$as_echo "$at_srcdir/json.at:277: printf %s \"[1e9999]\" > input"
at_fn_check_prepare_trace "json.at:277"
( $at_check_trace; printf %s "[1e9999]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:277"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:277: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:277"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:277"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:277: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:277"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: number outside valid range
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:277"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_706
#AT_START_707
at_fn_group_banner 707 'json.at:281' \
  "exponent bigger than INT_MAX - C" "               " 38
at_xfail=no
(
  $as_echo "707. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:281: printf %s \"[1e9999999999999999999]\" > input"
at_fn_check_prepare_trace "json.at:281"
( $at_check_trace; printf %s "[1e9999999999999999999]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:281"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:281: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:281"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:281"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:281: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:281"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: exponent outside valid range
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:281"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_707
#AT_START_708
at_fn_group_banner 708 'json.at:281' \
  "exponent bigger than INT_MAX - Python2" "         " 38
at_xfail=no
(
  $as_echo "708. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:281" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:281"
   { set +x
$as_echo "$at_srcdir/json.at:281: printf %s \"[1e9999999999999999999]\" > input"
at_fn_check_prepare_trace "json.at:281"
( $at_check_trace; printf %s "[1e9999999999999999999]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:281"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:281: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:281"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:281"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:281: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:281"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: exponent outside valid range
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:281"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_708
#AT_START_709
at_fn_group_banner 709 'json.at:281' \
  "exponent bigger than INT_MAX - Python3" "         " 38
at_xfail=no
(
  $as_echo "709. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:281" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:281"
   { set +x
$as_echo "$at_srcdir/json.at:281: printf %s \"[1e9999999999999999999]\" > input"
at_fn_check_prepare_trace "json.at:281"
( $at_check_trace; printf %s "[1e9999999999999999999]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:281"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:281: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:281"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:281"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:281: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:281"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: exponent outside valid range
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:281"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_709
#AT_START_710
at_fn_group_banner 710 'json.at:285' \
  "decimal point must be followed by digit - C" "    " 38
at_xfail=no
(
  $as_echo "710. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:285: printf %s \"[1.]\" > input"
at_fn_check_prepare_trace "json.at:285"
( $at_check_trace; printf %s "[1.]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:285"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:285: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:285"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:285"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:285: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:285"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: decimal point must be followed by digit
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:285"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_710
#AT_START_711
at_fn_group_banner 711 'json.at:285' \
  "decimal point must be followed by digit - Python2" "" 38
at_xfail=no
(
  $as_echo "711. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:285" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:285"
   { set +x
$as_echo "$at_srcdir/json.at:285: printf %s \"[1.]\" > input"
at_fn_check_prepare_trace "json.at:285"
( $at_check_trace; printf %s "[1.]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:285"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:285: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:285"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:285"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:285: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:285"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: decimal point must be followed by digit
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:285"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_711
#AT_START_712
at_fn_group_banner 712 'json.at:285' \
  "decimal point must be followed by digit - Python3" "" 38
at_xfail=no
(
  $as_echo "712. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:285" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:285"
   { set +x
$as_echo "$at_srcdir/json.at:285: printf %s \"[1.]\" > input"
at_fn_check_prepare_trace "json.at:285"
( $at_check_trace; printf %s "[1.]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:285"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:285: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:285"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:285"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:285: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:285"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: decimal point must be followed by digit
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:285"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_712
#AT_START_713
at_fn_group_banner 713 'json.at:289' \
  "exponent must contain at least one digit (1) - C" "" 38
at_xfail=no
(
  $as_echo "713. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:289: printf %s \"[1e]\" > input"
at_fn_check_prepare_trace "json.at:289"
( $at_check_trace; printf %s "[1e]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:289"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:289: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:289"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:289"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:289: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:289"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: exponent must contain at least one digit
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:289"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_713
#AT_START_714
at_fn_group_banner 714 'json.at:289' \
  "exponent must contain at least one digit (1) - Python2" "" 38
at_xfail=no
(
  $as_echo "714. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:289" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:289"
   { set +x
$as_echo "$at_srcdir/json.at:289: printf %s \"[1e]\" > input"
at_fn_check_prepare_trace "json.at:289"
( $at_check_trace; printf %s "[1e]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:289"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:289: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:289"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:289"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:289: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:289"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: exponent must contain at least one digit
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:289"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_714
#AT_START_715
at_fn_group_banner 715 'json.at:289' \
  "exponent must contain at least one digit (1) - Python3" "" 38
at_xfail=no
(
  $as_echo "715. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:289" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:289"
   { set +x
$as_echo "$at_srcdir/json.at:289: printf %s \"[1e]\" > input"
at_fn_check_prepare_trace "json.at:289"
( $at_check_trace; printf %s "[1e]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:289"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:289: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:289"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:289"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:289: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:289"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: exponent must contain at least one digit
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:289"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_715
#AT_START_716
at_fn_group_banner 716 'json.at:293' \
  "exponent must contain at least one digit (2) - C" "" 38
at_xfail=no
(
  $as_echo "716. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:293: printf %s \"[1e+]\" > input"
at_fn_check_prepare_trace "json.at:293"
( $at_check_trace; printf %s "[1e+]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:293"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:293: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:293"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:293"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:293: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:293"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: exponent must contain at least one digit
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:293"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_716
#AT_START_717
at_fn_group_banner 717 'json.at:293' \
  "exponent must contain at least one digit (2) - Python2" "" 38
at_xfail=no
(
  $as_echo "717. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:293" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:293"
   { set +x
$as_echo "$at_srcdir/json.at:293: printf %s \"[1e+]\" > input"
at_fn_check_prepare_trace "json.at:293"
( $at_check_trace; printf %s "[1e+]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:293"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:293: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:293"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:293"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:293: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:293"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: exponent must contain at least one digit
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:293"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_717
#AT_START_718
at_fn_group_banner 718 'json.at:293' \
  "exponent must contain at least one digit (2) - Python3" "" 38
at_xfail=no
(
  $as_echo "718. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:293" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:293"
   { set +x
$as_echo "$at_srcdir/json.at:293: printf %s \"[1e+]\" > input"
at_fn_check_prepare_trace "json.at:293"
( $at_check_trace; printf %s "[1e+]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:293"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:293: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:293"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:293"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:293: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:293"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: exponent must contain at least one digit
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:293"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_718
#AT_START_719
at_fn_group_banner 719 'json.at:297' \
  "exponent must contain at least one digit (3) - C" "" 38
at_xfail=no
(
  $as_echo "719. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:297: printf %s \"[1e-]\" > input"
at_fn_check_prepare_trace "json.at:297"
( $at_check_trace; printf %s "[1e-]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:297"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:297: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:297"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:297"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:297: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:297"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: exponent must contain at least one digit
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:297"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_719
#AT_START_720
at_fn_group_banner 720 'json.at:297' \
  "exponent must contain at least one digit (3) - Python2" "" 38
at_xfail=no
(
  $as_echo "720. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:297" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:297"
   { set +x
$as_echo "$at_srcdir/json.at:297: printf %s \"[1e-]\" > input"
at_fn_check_prepare_trace "json.at:297"
( $at_check_trace; printf %s "[1e-]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:297"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:297: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:297"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:297"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:297: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:297"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: exponent must contain at least one digit
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:297"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_720
#AT_START_721
at_fn_group_banner 721 'json.at:297' \
  "exponent must contain at least one digit (3) - Python3" "" 38
at_xfail=no
(
  $as_echo "721. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:297" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:297"
   { set +x
$as_echo "$at_srcdir/json.at:297: printf %s \"[1e-]\" > input"
at_fn_check_prepare_trace "json.at:297"
( $at_check_trace; printf %s "[1e-]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:297"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:297: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:297"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:297"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:297: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:297"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: exponent must contain at least one digit
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:297"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_721
#AT_START_722
at_fn_group_banner 722 'json.at:304' \
  "RFC 4267 object example - C" "                    " 39
at_xfail=no
(
  $as_echo "722. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:304: printf %s \"{
   \\\"Image\\\": {
       \\\"Width\\\":  800,
       \\\"Height\\\": 600,
       \\\"Title\\\":  \\\"View from 15th Floor\\\",
       \\\"Thumbnail\\\": {
           \\\"Url\\\":    \\\"http://www.example.com/image/481989943\\\",
           \\\"Height\\\": 125,
           \\\"Width\\\":  \\\"100\\\"
       },
       \\\"IDs\\\": [116, 943, 234, 38793]
     }
}\" > input"
at_fn_check_prepare_notrace 'an embedded newline' "json.at:304"
( $at_check_trace; printf %s "{
   \"Image\": {
       \"Width\":  800,
       \"Height\": 600,
       \"Title\":  \"View from 15th Floor\",
       \"Thumbnail\": {
           \"Url\":    \"http://www.example.com/image/481989943\",
           \"Height\": 125,
           \"Width\":  \"100\"
       },
       \"IDs\": [116, 943, 234, 38793]
     }
}" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:304"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:304: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:304"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:304"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:304: cat stdout"
at_fn_check_prepare_trace "json.at:304"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"Image\":{\"Height\":600,\"IDs\":[116,943,234,38793],\"Thumbnail\":{\"Height\":125,\"Url\":\"http://www.example.com/image/481989943\",\"Width\":\"100\"},\"Title\":\"View from 15th Floor\",\"Width\":800}}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:304"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_722
#AT_START_723
at_fn_group_banner 723 'json.at:304' \
  "RFC 4267 object example - Python2" "              " 39
at_xfail=no
(
  $as_echo "723. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:304" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:304"
   { set +x
$as_echo "$at_srcdir/json.at:304: printf %s \"{
   \\\"Image\\\": {
       \\\"Width\\\":  800,
       \\\"Height\\\": 600,
       \\\"Title\\\":  \\\"View from 15th Floor\\\",
       \\\"Thumbnail\\\": {
           \\\"Url\\\":    \\\"http://www.example.com/image/481989943\\\",
           \\\"Height\\\": 125,
           \\\"Width\\\":  \\\"100\\\"
       },
       \\\"IDs\\\": [116, 943, 234, 38793]
     }
}\" > input"
at_fn_check_prepare_notrace 'an embedded newline' "json.at:304"
( $at_check_trace; printf %s "{
   \"Image\": {
       \"Width\":  800,
       \"Height\": 600,
       \"Title\":  \"View from 15th Floor\",
       \"Thumbnail\": {
           \"Url\":    \"http://www.example.com/image/481989943\",
           \"Height\": 125,
           \"Width\":  \"100\"
       },
       \"IDs\": [116, 943, 234, 38793]
     }
}" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:304"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:304: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:304"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:304"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:304: cat stdout"
at_fn_check_prepare_trace "json.at:304"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"Image\":{\"Height\":600,\"IDs\":[116,943,234,38793],\"Thumbnail\":{\"Height\":125,\"Url\":\"http://www.example.com/image/481989943\",\"Width\":\"100\"},\"Title\":\"View from 15th Floor\",\"Width\":800}}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:304"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_723
#AT_START_724
at_fn_group_banner 724 'json.at:304' \
  "RFC 4267 object example - Python3" "              " 39
at_xfail=no
(
  $as_echo "724. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:304" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:304"
   { set +x
$as_echo "$at_srcdir/json.at:304: printf %s \"{
   \\\"Image\\\": {
       \\\"Width\\\":  800,
       \\\"Height\\\": 600,
       \\\"Title\\\":  \\\"View from 15th Floor\\\",
       \\\"Thumbnail\\\": {
           \\\"Url\\\":    \\\"http://www.example.com/image/481989943\\\",
           \\\"Height\\\": 125,
           \\\"Width\\\":  \\\"100\\\"
       },
       \\\"IDs\\\": [116, 943, 234, 38793]
     }
}\" > input"
at_fn_check_prepare_notrace 'an embedded newline' "json.at:304"
( $at_check_trace; printf %s "{
   \"Image\": {
       \"Width\":  800,
       \"Height\": 600,
       \"Title\":  \"View from 15th Floor\",
       \"Thumbnail\": {
           \"Url\":    \"http://www.example.com/image/481989943\",
           \"Height\": 125,
           \"Width\":  \"100\"
       },
       \"IDs\": [116, 943, 234, 38793]
     }
}" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:304"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:304: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:304"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:304"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:304: cat stdout"
at_fn_check_prepare_trace "json.at:304"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"Image\":{\"Height\":600,\"IDs\":[116,943,234,38793],\"Thumbnail\":{\"Height\":125,\"Url\":\"http://www.example.com/image/481989943\",\"Width\":\"100\"},\"Title\":\"View from 15th Floor\",\"Width\":800}}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:304"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_724
#AT_START_725
at_fn_group_banner 725 'json.at:320' \
  "RFC 4267 array example - C" "                     " 39
at_xfail=no
(
  $as_echo "725. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:320: printf %s \"[
   {
      \\\"precision\\\": \\\"zip\\\",
      \\\"Latitude\\\":  37.7668,
      \\\"Longitude\\\": -122.3959,
      \\\"Address\\\":   \\\"\\\",
      \\\"City\\\":      \\\"SAN FRANCISCO\\\",
      \\\"State\\\":     \\\"CA\\\",
      \\\"Zip\\\":       \\\"94107\\\",
      \\\"Country\\\":   \\\"US\\\"
   },
   {
      \\\"precision\\\": \\\"zip\\\",
      \\\"Latitude\\\":  37.371991,
      \\\"Longitude\\\": -122.026020,
      \\\"Address\\\":   \\\"\\\",
      \\\"City\\\":      \\\"SUNNYVALE\\\",
      \\\"State\\\":     \\\"CA\\\",
      \\\"Zip\\\":       \\\"94085\\\",
      \\\"Country\\\":   \\\"US\\\"
   }
]\" > input"
at_fn_check_prepare_notrace 'an embedded newline' "json.at:320"
( $at_check_trace; printf %s "[
   {
      \"precision\": \"zip\",
      \"Latitude\":  37.7668,
      \"Longitude\": -122.3959,
      \"Address\":   \"\",
      \"City\":      \"SAN FRANCISCO\",
      \"State\":     \"CA\",
      \"Zip\":       \"94107\",
      \"Country\":   \"US\"
   },
   {
      \"precision\": \"zip\",
      \"Latitude\":  37.371991,
      \"Longitude\": -122.026020,
      \"Address\":   \"\",
      \"City\":      \"SUNNYVALE\",
      \"State\":     \"CA\",
      \"Zip\":       \"94085\",
      \"Country\":   \"US\"
   }
]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:320"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:320: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:320"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:320"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:320: cat stdout"
at_fn_check_prepare_trace "json.at:320"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"Address\":\"\",\"City\":\"SAN FRANCISCO\",\"Country\":\"US\",\"Latitude\":37.7668,\"Longitude\":-122.3959,\"State\":\"CA\",\"Zip\":\"94107\",\"precision\":\"zip\"},{\"Address\":\"\",\"City\":\"SUNNYVALE\",\"Country\":\"US\",\"Latitude\":37.371991,\"Longitude\":-122.02602,\"State\":\"CA\",\"Zip\":\"94085\",\"precision\":\"zip\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:320"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_725
#AT_START_726
at_fn_group_banner 726 'json.at:320' \
  "RFC 4267 array example - Python2" "               " 39
at_xfail=no
(
  $as_echo "726. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:320" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:320"
   { set +x
$as_echo "$at_srcdir/json.at:320: printf %s \"[
   {
      \\\"precision\\\": \\\"zip\\\",
      \\\"Latitude\\\":  37.7668,
      \\\"Longitude\\\": -122.3959,
      \\\"Address\\\":   \\\"\\\",
      \\\"City\\\":      \\\"SAN FRANCISCO\\\",
      \\\"State\\\":     \\\"CA\\\",
      \\\"Zip\\\":       \\\"94107\\\",
      \\\"Country\\\":   \\\"US\\\"
   },
   {
      \\\"precision\\\": \\\"zip\\\",
      \\\"Latitude\\\":  37.371991,
      \\\"Longitude\\\": -122.026020,
      \\\"Address\\\":   \\\"\\\",
      \\\"City\\\":      \\\"SUNNYVALE\\\",
      \\\"State\\\":     \\\"CA\\\",
      \\\"Zip\\\":       \\\"94085\\\",
      \\\"Country\\\":   \\\"US\\\"
   }
]\" > input"
at_fn_check_prepare_notrace 'an embedded newline' "json.at:320"
( $at_check_trace; printf %s "[
   {
      \"precision\": \"zip\",
      \"Latitude\":  37.7668,
      \"Longitude\": -122.3959,
      \"Address\":   \"\",
      \"City\":      \"SAN FRANCISCO\",
      \"State\":     \"CA\",
      \"Zip\":       \"94107\",
      \"Country\":   \"US\"
   },
   {
      \"precision\": \"zip\",
      \"Latitude\":  37.371991,
      \"Longitude\": -122.026020,
      \"Address\":   \"\",
      \"City\":      \"SUNNYVALE\",
      \"State\":     \"CA\",
      \"Zip\":       \"94085\",
      \"Country\":   \"US\"
   }
]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:320"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:320: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:320"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:320"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:320: cat stdout"
at_fn_check_prepare_trace "json.at:320"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"Address\":\"\",\"City\":\"SAN FRANCISCO\",\"Country\":\"US\",\"Latitude\":37.7668,\"Longitude\":-122.3959,\"State\":\"CA\",\"Zip\":\"94107\",\"precision\":\"zip\"},{\"Address\":\"\",\"City\":\"SUNNYVALE\",\"Country\":\"US\",\"Latitude\":37.371991,\"Longitude\":-122.02602,\"State\":\"CA\",\"Zip\":\"94085\",\"precision\":\"zip\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:320"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_726
#AT_START_727
at_fn_group_banner 727 'json.at:320' \
  "RFC 4267 array example - Python3" "               " 39
at_xfail=no
(
  $as_echo "727. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:320" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:320"
   { set +x
$as_echo "$at_srcdir/json.at:320: printf %s \"[
   {
      \\\"precision\\\": \\\"zip\\\",
      \\\"Latitude\\\":  37.7668,
      \\\"Longitude\\\": -122.3959,
      \\\"Address\\\":   \\\"\\\",
      \\\"City\\\":      \\\"SAN FRANCISCO\\\",
      \\\"State\\\":     \\\"CA\\\",
      \\\"Zip\\\":       \\\"94107\\\",
      \\\"Country\\\":   \\\"US\\\"
   },
   {
      \\\"precision\\\": \\\"zip\\\",
      \\\"Latitude\\\":  37.371991,
      \\\"Longitude\\\": -122.026020,
      \\\"Address\\\":   \\\"\\\",
      \\\"City\\\":      \\\"SUNNYVALE\\\",
      \\\"State\\\":     \\\"CA\\\",
      \\\"Zip\\\":       \\\"94085\\\",
      \\\"Country\\\":   \\\"US\\\"
   }
]\" > input"
at_fn_check_prepare_notrace 'an embedded newline' "json.at:320"
( $at_check_trace; printf %s "[
   {
      \"precision\": \"zip\",
      \"Latitude\":  37.7668,
      \"Longitude\": -122.3959,
      \"Address\":   \"\",
      \"City\":      \"SAN FRANCISCO\",
      \"State\":     \"CA\",
      \"Zip\":       \"94107\",
      \"Country\":   \"US\"
   },
   {
      \"precision\": \"zip\",
      \"Latitude\":  37.371991,
      \"Longitude\": -122.026020,
      \"Address\":   \"\",
      \"City\":      \"SUNNYVALE\",
      \"State\":     \"CA\",
      \"Zip\":       \"94085\",
      \"Country\":   \"US\"
   }
]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:320"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:320: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:320"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:320"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:320: cat stdout"
at_fn_check_prepare_trace "json.at:320"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"Address\":\"\",\"City\":\"SAN FRANCISCO\",\"Country\":\"US\",\"Latitude\":37.7668,\"Longitude\":-122.3959,\"State\":\"CA\",\"Zip\":\"94107\",\"precision\":\"zip\"},{\"Address\":\"\",\"City\":\"SUNNYVALE\",\"Country\":\"US\",\"Latitude\":37.371991,\"Longitude\":-122.02602,\"State\":\"CA\",\"Zip\":\"94085\",\"precision\":\"zip\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:320"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_727
#AT_START_728
at_fn_group_banner 728 'json.at:347' \
  "trailing garbage - C" "                           " 40
at_xfail=no
(
  $as_echo "728. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:347: printf %s \"[1]null\" > input"
at_fn_check_prepare_trace "json.at:347"
( $at_check_trace; printf %s "[1]null" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:347"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:347: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:347"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:347"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:347: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:347"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: trailing garbage at end of input
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:347"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_728
#AT_START_729
at_fn_group_banner 729 'json.at:347' \
  "trailing garbage - Python2" "                     " 40
at_xfail=no
(
  $as_echo "729. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:347" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:347"
   { set +x
$as_echo "$at_srcdir/json.at:347: printf %s \"[1]null\" > input"
at_fn_check_prepare_trace "json.at:347"
( $at_check_trace; printf %s "[1]null" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:347"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:347: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:347"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:347"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:347: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:347"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: trailing garbage at end of input
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:347"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_729
#AT_START_730
at_fn_group_banner 730 'json.at:347' \
  "trailing garbage - Python3" "                     " 40
at_xfail=no
(
  $as_echo "730. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:347" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:347"
   { set +x
$as_echo "$at_srcdir/json.at:347: printf %s \"[1]null\" > input"
at_fn_check_prepare_trace "json.at:347"
( $at_check_trace; printf %s "[1]null" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:347"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:347: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:347"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:347"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:347: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:347"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: trailing garbage at end of input
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:347"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_730
#AT_START_731
at_fn_group_banner 731 'json.at:349' \
  "formfeeds are not valid white space - C" "        " 40
at_xfail=no
(
  $as_echo "731. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:349: printf %s \"[]\" > input"
at_fn_check_prepare_trace "json.at:349"
( $at_check_trace; printf %s "[]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:349"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:349: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:349"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:349"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:349: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:349"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: invalid character U+000c
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:349"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_731
#AT_START_732
at_fn_group_banner 732 'json.at:349' \
  "formfeeds are not valid white space - Python2" "  " 40
at_xfail=no
(
  $as_echo "732. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:349" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:349"
   { set +x
$as_echo "$at_srcdir/json.at:349: printf %s \"[]\" > input"
at_fn_check_prepare_trace "json.at:349"
( $at_check_trace; printf %s "[]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:349"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:349: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:349"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:349"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:349: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:349"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: invalid character U+000c
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:349"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_732
#AT_START_733
at_fn_group_banner 733 'json.at:349' \
  "formfeeds are not valid white space - Python3" "  " 40
at_xfail=no
(
  $as_echo "733. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:349" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:349"
   { set +x
$as_echo "$at_srcdir/json.at:349: printf %s \"[]\" > input"
at_fn_check_prepare_trace "json.at:349"
( $at_check_trace; printf %s "[]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:349"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:349: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:349"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:349"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:349: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:349"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: invalid character U+000c
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:349"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_733
#AT_START_734
at_fn_group_banner 734 'json.at:351' \
  "';' is not a valid token - C" "                   " 40
at_xfail=no
(
  $as_echo "734. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:351: printf %s \";\" > input"
at_fn_check_prepare_trace "json.at:351"
( $at_check_trace; printf %s ";" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:351"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:351: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:351"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:351"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:351: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:351"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: invalid character ';'
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:351"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_734
#AT_START_735
at_fn_group_banner 735 'json.at:351' \
  "';' is not a valid token - Python2" "             " 40
at_xfail=no
(
  $as_echo "735. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:351" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:351"
   { set +x
$as_echo "$at_srcdir/json.at:351: printf %s \";\" > input"
at_fn_check_prepare_trace "json.at:351"
( $at_check_trace; printf %s ";" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:351"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:351: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:351"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:351"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:351: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:351"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: invalid character ';'
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:351"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_735
#AT_START_736
at_fn_group_banner 736 'json.at:351' \
  "';' is not a valid token - Python3" "             " 40
at_xfail=no
(
  $as_echo "736. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:351" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:351"
   { set +x
$as_echo "$at_srcdir/json.at:351: printf %s \";\" > input"
at_fn_check_prepare_trace "json.at:351"
( $at_check_trace; printf %s ";" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:351"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:351: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:351"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:351"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:351: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:351"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: invalid character ';'
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:351"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_736
#AT_START_737
at_fn_group_banner 737 'json.at:353' \
  "arrays nesting too deep - C" "                    " 40
at_xfail=no
(
  $as_echo "737. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:353: printf %s \"[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[                     ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]\" > input"
at_fn_check_prepare_trace "json.at:353"
( $at_check_trace; printf %s "[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[                     ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:353"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:353: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:353"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:353"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:353: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:353"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: input exceeds maximum nesting depth 1000
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:353"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_737
#AT_START_738
at_fn_group_banner 738 'json.at:353' \
  "arrays nesting too deep - Python2" "              " 40
at_xfail=no
(
  $as_echo "738. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:353" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:353"
   { set +x
$as_echo "$at_srcdir/json.at:353: printf %s \"[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[                     ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]\" > input"
at_fn_check_prepare_trace "json.at:353"
( $at_check_trace; printf %s "[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[                     ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:353"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:353: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:353"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:353"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:353: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:353"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: input exceeds maximum nesting depth 1000
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:353"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_738
#AT_START_739
at_fn_group_banner 739 'json.at:353' \
  "arrays nesting too deep - Python3" "              " 40
at_xfail=no
(
  $as_echo "739. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:353" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:353"
   { set +x
$as_echo "$at_srcdir/json.at:353: printf %s \"[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[                     ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]\" > input"
at_fn_check_prepare_trace "json.at:353"
( $at_check_trace; printf %s "[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[                     ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:353"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:353: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:353"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:353"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:353: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:353"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: input exceeds maximum nesting depth 1000
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:353"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_739
#AT_START_740
at_fn_group_banner 740 'json.at:357' \
  "objects nesting too deep - C" "                   " 40
at_xfail=no
(
  $as_echo "740. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:357: printf %s \"{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":                     }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}\" > input"
at_fn_check_prepare_trace "json.at:357"
( $at_check_trace; printf %s "{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":                     }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:357"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:357: ovstest test-json  input"
at_fn_check_prepare_trace "json.at:357"
( $at_check_trace; ovstest test-json  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:357"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:357: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:357"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: input exceeds maximum nesting depth 1000
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:357"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_740
#AT_START_741
at_fn_group_banner 741 'json.at:357' \
  "objects nesting too deep - Python2" "             " 40
at_xfail=no
(
  $as_echo "741. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:357" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:357"
   { set +x
$as_echo "$at_srcdir/json.at:357: printf %s \"{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":                     }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}\" > input"
at_fn_check_prepare_trace "json.at:357"
( $at_check_trace; printf %s "{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":                     }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:357"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:357: \$PYTHON \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py  input" "json.at:357"
( $at_check_trace; $PYTHON $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:357"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:357: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:357"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: input exceeds maximum nesting depth 1000
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:357"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_741
#AT_START_742
at_fn_group_banner 742 'json.at:357' \
  "objects nesting too deep - Python3" "             " 40
at_xfail=no
(
  $as_echo "742. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:357" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:357"
   { set +x
$as_echo "$at_srcdir/json.at:357: printf %s \"{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":{\\\"x\\\":                     }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}\" > input"
at_fn_check_prepare_trace "json.at:357"
( $at_check_trace; printf %s "{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":{\"x\":                     }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:357"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:357: \$PYTHON3 \$srcdir/test-json.py  input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py  input" "json.at:357"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py  input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:357"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:357: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:357"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: input exceeds maximum nesting depth 1000
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:357"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_742
#AT_START_743
at_fn_group_banner 743 'json.at:362' \
  "input may not be empty" "                         " 40
at_xfail=no
(
  $as_echo "743. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/json.at:364: ovstest test-json /dev/null"
at_fn_check_prepare_trace "json.at:364"
( $at_check_trace; ovstest test-json /dev/null
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "error: line 0, column 0, byte 0: empty input stream
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/json.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_743
#AT_START_744
at_fn_group_banner 744 'json.at:370' \
  "multiple adjacent objects - C" "                  " 41
at_xfail=no
(
  $as_echo "744. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:370: printf %s \"{}{}{}\" > input"
at_fn_check_prepare_trace "json.at:370"
( $at_check_trace; printf %s "{}{}{}" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:370"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:370: ovstest test-json --multiple input"
at_fn_check_prepare_trace "json.at:370"
( $at_check_trace; ovstest test-json --multiple input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:370"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:370: cat stdout"
at_fn_check_prepare_trace "json.at:370"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{}
{}
{}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:370"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_744
#AT_START_745
at_fn_group_banner 745 'json.at:370' \
  "multiple adjacent objects - Python2" "            " 41
at_xfail=no
(
  $as_echo "745. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:370" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:370"
   { set +x
$as_echo "$at_srcdir/json.at:370: printf %s \"{}{}{}\" > input"
at_fn_check_prepare_trace "json.at:370"
( $at_check_trace; printf %s "{}{}{}" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:370"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:370: \$PYTHON \$srcdir/test-json.py --multiple input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py --multiple input" "json.at:370"
( $at_check_trace; $PYTHON $srcdir/test-json.py --multiple input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:370"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:370: cat stdout"
at_fn_check_prepare_trace "json.at:370"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{}
{}
{}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:370"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_745
#AT_START_746
at_fn_group_banner 746 'json.at:370' \
  "multiple adjacent objects - Python3" "            " 41
at_xfail=no
(
  $as_echo "746. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:370" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:370"
   { set +x
$as_echo "$at_srcdir/json.at:370: printf %s \"{}{}{}\" > input"
at_fn_check_prepare_trace "json.at:370"
( $at_check_trace; printf %s "{}{}{}" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:370"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:370: \$PYTHON3 \$srcdir/test-json.py --multiple input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py --multiple input" "json.at:370"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py --multiple input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:370"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:370: cat stdout"
at_fn_check_prepare_trace "json.at:370"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{}
{}
{}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:370"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_746
#AT_START_747
at_fn_group_banner 747 'json.at:375' \
  "multiple space-separated objects - C" "           " 41
at_xfail=no
(
  $as_echo "747. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:375: printf %s \"{}  {}  {}\" > input"
at_fn_check_prepare_trace "json.at:375"
( $at_check_trace; printf %s "{}  {}  {}" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:375"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:375: ovstest test-json --multiple input"
at_fn_check_prepare_trace "json.at:375"
( $at_check_trace; ovstest test-json --multiple input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:375"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:375: cat stdout"
at_fn_check_prepare_trace "json.at:375"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{}
{}
{}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:375"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_747
#AT_START_748
at_fn_group_banner 748 'json.at:375' \
  "multiple space-separated objects - Python2" "     " 41
at_xfail=no
(
  $as_echo "748. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:375" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:375"
   { set +x
$as_echo "$at_srcdir/json.at:375: printf %s \"{}  {}  {}\" > input"
at_fn_check_prepare_trace "json.at:375"
( $at_check_trace; printf %s "{}  {}  {}" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:375"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:375: \$PYTHON \$srcdir/test-json.py --multiple input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py --multiple input" "json.at:375"
( $at_check_trace; $PYTHON $srcdir/test-json.py --multiple input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:375"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:375: cat stdout"
at_fn_check_prepare_trace "json.at:375"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{}
{}
{}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:375"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_748
#AT_START_749
at_fn_group_banner 749 'json.at:375' \
  "multiple space-separated objects - Python3" "     " 41
at_xfail=no
(
  $as_echo "749. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:375" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:375"
   { set +x
$as_echo "$at_srcdir/json.at:375: printf %s \"{}  {}  {}\" > input"
at_fn_check_prepare_trace "json.at:375"
( $at_check_trace; printf %s "{}  {}  {}" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:375"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:375: \$PYTHON3 \$srcdir/test-json.py --multiple input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py --multiple input" "json.at:375"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py --multiple input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:375"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:375: cat stdout"
at_fn_check_prepare_trace "json.at:375"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{}
{}
{}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:375"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_749
#AT_START_750
at_fn_group_banner 750 'json.at:380' \
  "multiple objects on separate lines - C" "         " 41
at_xfail=no
(
  $as_echo "750. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:380: printf %s \"{}
{}
{}\" > input"
at_fn_check_prepare_notrace 'an embedded newline' "json.at:380"
( $at_check_trace; printf %s "{}
{}
{}" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:380"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:380: ovstest test-json --multiple input"
at_fn_check_prepare_trace "json.at:380"
( $at_check_trace; ovstest test-json --multiple input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:380"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:380: cat stdout"
at_fn_check_prepare_trace "json.at:380"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{}
{}
{}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:380"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_750
#AT_START_751
at_fn_group_banner 751 'json.at:380' \
  "multiple objects on separate lines - Python2" "   " 41
at_xfail=no
(
  $as_echo "751. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:380" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:380"
   { set +x
$as_echo "$at_srcdir/json.at:380: printf %s \"{}
{}
{}\" > input"
at_fn_check_prepare_notrace 'an embedded newline' "json.at:380"
( $at_check_trace; printf %s "{}
{}
{}" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:380"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:380: \$PYTHON \$srcdir/test-json.py --multiple input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py --multiple input" "json.at:380"
( $at_check_trace; $PYTHON $srcdir/test-json.py --multiple input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:380"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:380: cat stdout"
at_fn_check_prepare_trace "json.at:380"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{}
{}
{}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:380"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_751
#AT_START_752
at_fn_group_banner 752 'json.at:380' \
  "multiple objects on separate lines - Python3" "   " 41
at_xfail=no
(
  $as_echo "752. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:380" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:380"
   { set +x
$as_echo "$at_srcdir/json.at:380: printf %s \"{}
{}
{}\" > input"
at_fn_check_prepare_notrace 'an embedded newline' "json.at:380"
( $at_check_trace; printf %s "{}
{}
{}" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:380"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:380: \$PYTHON3 \$srcdir/test-json.py --multiple input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py --multiple input" "json.at:380"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py --multiple input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:380"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:380: cat stdout"
at_fn_check_prepare_trace "json.at:380"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{}
{}
{}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:380"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_752
#AT_START_753
at_fn_group_banner 753 'json.at:387' \
  "multiple objects and arrays - C" "                " 41
at_xfail=no
(
  $as_echo "753. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:387: printf %s \"{}[]{}[]\" > input"
at_fn_check_prepare_trace "json.at:387"
( $at_check_trace; printf %s "{}[]{}[]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:387"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:387: ovstest test-json --multiple input"
at_fn_check_prepare_trace "json.at:387"
( $at_check_trace; ovstest test-json --multiple input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:387"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:387: cat stdout"
at_fn_check_prepare_trace "json.at:387"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{}
[]
{}
[]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:387"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_753
#AT_START_754
at_fn_group_banner 754 'json.at:387' \
  "multiple objects and arrays - Python2" "          " 41
at_xfail=no
(
  $as_echo "754. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:387" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:387"
   { set +x
$as_echo "$at_srcdir/json.at:387: printf %s \"{}[]{}[]\" > input"
at_fn_check_prepare_trace "json.at:387"
( $at_check_trace; printf %s "{}[]{}[]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:387"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:387: \$PYTHON \$srcdir/test-json.py --multiple input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py --multiple input" "json.at:387"
( $at_check_trace; $PYTHON $srcdir/test-json.py --multiple input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:387"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:387: cat stdout"
at_fn_check_prepare_trace "json.at:387"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{}
[]
{}
[]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:387"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_754
#AT_START_755
at_fn_group_banner 755 'json.at:387' \
  "multiple objects and arrays - Python3" "          " 41
at_xfail=no
(
  $as_echo "755. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:387" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:387"
   { set +x
$as_echo "$at_srcdir/json.at:387: printf %s \"{}[]{}[]\" > input"
at_fn_check_prepare_trace "json.at:387"
( $at_check_trace; printf %s "{}[]{}[]" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:387"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:387: \$PYTHON3 \$srcdir/test-json.py --multiple input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py --multiple input" "json.at:387"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py --multiple input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/json.at:387"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:387: cat stdout"
at_fn_check_prepare_trace "json.at:387"
( $at_check_trace; cat stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{}
[]
{}
[]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:387"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_755
#AT_START_756
at_fn_group_banner 756 'json.at:393' \
  "garbage between multiple objects - C" "           " 41
at_xfail=no
(
  $as_echo "756. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:393: printf %s \"{}x{}\" > input"
at_fn_check_prepare_trace "json.at:393"
( $at_check_trace; printf %s "{}x{}" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:393"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:393: ovstest test-json --multiple input"
at_fn_check_prepare_trace "json.at:393"
( $at_check_trace; ovstest test-json --multiple input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:393"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:393: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:393"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{}
error: invalid keyword 'x'
{}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:393"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_756
#AT_START_757
at_fn_group_banner 757 'json.at:393' \
  "garbage between multiple objects - Python2" "     " 41
at_xfail=no
(
  $as_echo "757. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:393" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:393"
   { set +x
$as_echo "$at_srcdir/json.at:393: printf %s \"{}x{}\" > input"
at_fn_check_prepare_trace "json.at:393"
( $at_check_trace; printf %s "{}x{}" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:393"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:393: \$PYTHON \$srcdir/test-json.py --multiple input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py --multiple input" "json.at:393"
( $at_check_trace; $PYTHON $srcdir/test-json.py --multiple input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:393"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:393: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:393"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{}
error: invalid keyword 'x'
{}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:393"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_757
#AT_START_758
at_fn_group_banner 758 'json.at:393' \
  "garbage between multiple objects - Python3" "     " 41
at_xfail=no
(
  $as_echo "758. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:393" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:393"
   { set +x
$as_echo "$at_srcdir/json.at:393: printf %s \"{}x{}\" > input"
at_fn_check_prepare_trace "json.at:393"
( $at_check_trace; printf %s "{}x{}" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:393"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:393: \$PYTHON3 \$srcdir/test-json.py --multiple input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py --multiple input" "json.at:393"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py --multiple input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:393"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:393: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:393"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{}
error: invalid keyword 'x'
{}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:393"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_758
#AT_START_759
at_fn_group_banner 759 'json.at:397' \
  "garbage after multiple objects - C" "             " 41
at_xfail=no
(
  $as_echo "759. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/json.at:397: printf %s \"{}{}x\" > input"
at_fn_check_prepare_trace "json.at:397"
( $at_check_trace; printf %s "{}{}x" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:397"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:397: ovstest test-json --multiple input"
at_fn_check_prepare_trace "json.at:397"
( $at_check_trace; ovstest test-json --multiple input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:397"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:397: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:397"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{}
{}
error: invalid keyword 'x'
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:397"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_759
#AT_START_760
at_fn_group_banner 760 'json.at:397' \
  "garbage after multiple objects - Python2" "       " 41
at_xfail=no
(
  $as_echo "760. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:397" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:397"
   { set +x
$as_echo "$at_srcdir/json.at:397: printf %s \"{}{}x\" > input"
at_fn_check_prepare_trace "json.at:397"
( $at_check_trace; printf %s "{}{}x" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:397"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:397: \$PYTHON \$srcdir/test-json.py --multiple input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-json.py --multiple input" "json.at:397"
( $at_check_trace; $PYTHON $srcdir/test-json.py --multiple input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:397"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:397: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:397"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{}
{}
error: invalid keyword 'x'
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:397"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_760
#AT_START_761
at_fn_group_banner 761 'json.at:397' \
  "garbage after multiple objects - Python3" "       " 41
at_xfail=no
(
  $as_echo "761. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "json.at:397" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/json.at:397"
   { set +x
$as_echo "$at_srcdir/json.at:397: printf %s \"{}{}x\" > input"
at_fn_check_prepare_trace "json.at:397"
( $at_check_trace; printf %s "{}{}x" > input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:397"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/json.at:397: \$PYTHON3 \$srcdir/test-json.py --multiple input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-json.py --multiple input" "json.at:397"
( $at_check_trace; $PYTHON3 $srcdir/test-json.py --multiple input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/json.at:397"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/json.at:397: sed 's/^error: [^:]*:/error:/' < stdout"
at_fn_check_prepare_trace "json.at:397"
( $at_check_trace; sed 's/^error: [^:]*:/error:/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{}
{}
error: invalid keyword 'x'
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/json.at:397"
$at_failed && at_fn_log_failure  \
"input"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_761
#AT_START_762
at_fn_group_banner 762 'jsonrpc.at:3' \
  "JSON-RPC request and successful reply" "          " 42
at_xfail=no
(
  $as_echo "762. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/jsonrpc.at:4: ovstest test-jsonrpc --detach --no-chdir --pidfile listen punix:socket"
at_fn_check_prepare_trace "jsonrpc.at:4"
( $at_check_trace; ovstest test-jsonrpc --detach --no-chdir --pidfile listen punix:socket
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/jsonrpc.at:4"
$at_failed && at_fn_log_failure
$at_traceon; }

on_exit 'kill `cat test-jsonrpc.pid`'
{ set +x
$as_echo "$at_srcdir/jsonrpc.at:6: ovstest test-jsonrpc request unix:socket echo '[{\"a\": \"b\", \"x\": null}]'"
at_fn_check_prepare_trace "jsonrpc.at:6"
( $at_check_trace; ovstest test-jsonrpc request unix:socket echo '[{"a": "b", "x": null}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"error\":null,\"id\":0,\"result\":[{\"a\":\"b\",\"x\":null}]}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/jsonrpc.at:6"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_762
#AT_START_763
at_fn_group_banner 763 'jsonrpc.at:12' \
  "JSON-RPC request and error reply" "               " 42
at_xfail=no
(
  $as_echo "763. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/jsonrpc.at:13: ovstest test-jsonrpc --detach --no-chdir --pidfile listen punix:socket"
at_fn_check_prepare_trace "jsonrpc.at:13"
( $at_check_trace; ovstest test-jsonrpc --detach --no-chdir --pidfile listen punix:socket
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/jsonrpc.at:13"
$at_failed && at_fn_log_failure
$at_traceon; }

on_exit 'kill `cat test-jsonrpc.pid`'
{ set +x
$as_echo "$at_srcdir/jsonrpc.at:15: ovstest test-jsonrpc request unix:socket bad-request '[]'"
at_fn_check_prepare_trace "jsonrpc.at:15"
( $at_check_trace; ovstest test-jsonrpc request unix:socket bad-request '[]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"error\":{\"error\":\"unknown method\"},\"id\":0,\"result\":null}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/jsonrpc.at:15"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_763
#AT_START_764
at_fn_group_banner 764 'jsonrpc.at:21' \
  "JSON-RPC notification" "                          " 42
at_xfail=no
(
  $as_echo "764. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/jsonrpc.at:22: ovstest test-jsonrpc --detach --no-chdir --pidfile listen punix:socket"
at_fn_check_prepare_trace "jsonrpc.at:22"
( $at_check_trace; ovstest test-jsonrpc --detach --no-chdir --pidfile listen punix:socket
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/jsonrpc.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }

on_exit 'kill `cat test-jsonrpc.pid`'
# Check that the pidfile got created.
{ set +x
$as_echo "$at_srcdir/jsonrpc.at:25: test -e test-jsonrpc.pid"
at_fn_check_prepare_trace "jsonrpc.at:25"
( $at_check_trace; test -e test-jsonrpc.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/jsonrpc.at:25"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/jsonrpc.at:26: ovstest test-jsonrpc notify unix:socket shutdown '[]'"
at_fn_check_prepare_trace "jsonrpc.at:26"
( $at_check_trace; ovstest test-jsonrpc notify unix:socket shutdown '[]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/jsonrpc.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }

# Wait for test-jsonrpc to die, based on its pidfile disappearing
$as_echo "jsonrpc.at:28: waiting while test -e test-jsonrpc.pid..." >&5
ovs_wait_cond () {
    if test -e test-jsonrpc.pid; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "jsonrpc.at:28: wait failed" >&5

    $as_echo "jsonrpc.at:28" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/jsonrpc.at:28"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_764
#AT_START_765
at_fn_group_banner 765 'jsonrpc-py.at:15' \
  "JSON-RPC request and successful reply - Python2" "" 43
at_xfail=no
(
  $as_echo "765. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "jsonrpc-py.at:15" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/jsonrpc-py.at:15"

   { set +x
$as_echo "$at_srcdir/jsonrpc-py.at:15: \$PYTHON \$srcdir/test-jsonrpc.py --pidfile --detach listen punix:socket"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-jsonrpc.py --pidfile --detach listen punix:socket" "jsonrpc-py.at:15"
( $at_check_trace; $PYTHON $srcdir/test-jsonrpc.py --pidfile --detach listen punix:socket
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/jsonrpc-py.at:15"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat test-jsonrpc.py.pid`'
   { set +x
$as_echo "$at_srcdir/jsonrpc-py.at:15: \$PYTHON \$srcdir/test-jsonrpc.py request unix:socket echo '[{\"a\": \"b\", \"x\": null}]'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-jsonrpc.py request unix:socket echo '[{\"a\": \"b\", \"x\": null}]'" "jsonrpc-py.at:15"
( $at_check_trace; $PYTHON $srcdir/test-jsonrpc.py request unix:socket echo '[{"a": "b", "x": null}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"error\":null,\"id\":0,\"result\":[{\"a\":\"b\",\"x\":null}]}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/jsonrpc-py.at:15"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_765
#AT_START_766
at_fn_group_banner 766 'jsonrpc-py.at:16' \
  "JSON-RPC request and successful reply - Python3" "" 43
at_xfail=no
(
  $as_echo "766. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "jsonrpc-py.at:16" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/jsonrpc-py.at:16"

   { set +x
$as_echo "$at_srcdir/jsonrpc-py.at:16: \$PYTHON \$srcdir/test-jsonrpc.py --pidfile --detach listen punix:socket"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-jsonrpc.py --pidfile --detach listen punix:socket" "jsonrpc-py.at:16"
( $at_check_trace; $PYTHON $srcdir/test-jsonrpc.py --pidfile --detach listen punix:socket
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/jsonrpc-py.at:16"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat test-jsonrpc.py.pid`'
   { set +x
$as_echo "$at_srcdir/jsonrpc-py.at:16: \$PYTHON3 \$srcdir/test-jsonrpc.py request unix:socket echo '[{\"a\": \"b\", \"x\": null}]'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-jsonrpc.py request unix:socket echo '[{\"a\": \"b\", \"x\": null}]'" "jsonrpc-py.at:16"
( $at_check_trace; $PYTHON3 $srcdir/test-jsonrpc.py request unix:socket echo '[{"a": "b", "x": null}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"error\":null,\"id\":0,\"result\":[{\"a\":\"b\",\"x\":null}]}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/jsonrpc-py.at:16"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_766
#AT_START_767
at_fn_group_banner 767 'jsonrpc-py.at:30' \
  "JSON-RPC request and error reply - Python2" "     " 43
at_xfail=no
(
  $as_echo "767. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "jsonrpc-py.at:30" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/jsonrpc-py.at:30"

   { set +x
$as_echo "$at_srcdir/jsonrpc-py.at:30: \$PYTHON \$srcdir/test-jsonrpc.py --pidfile --detach listen punix:socket"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-jsonrpc.py --pidfile --detach listen punix:socket" "jsonrpc-py.at:30"
( $at_check_trace; $PYTHON $srcdir/test-jsonrpc.py --pidfile --detach listen punix:socket
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/jsonrpc-py.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat test-jsonrpc.py.pid`'
   { set +x
$as_echo "$at_srcdir/jsonrpc-py.at:30: \$PYTHON \$srcdir/test-jsonrpc.py request unix:socket bad-request '[]'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-jsonrpc.py request unix:socket bad-request '[]'" "jsonrpc-py.at:30"
( $at_check_trace; $PYTHON $srcdir/test-jsonrpc.py request unix:socket bad-request '[]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"error\":{\"error\":\"unknown method\"},\"id\":0,\"result\":null}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/jsonrpc-py.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_767
#AT_START_768
at_fn_group_banner 768 'jsonrpc-py.at:31' \
  "JSON-RPC request and error reply - Python3" "     " 43
at_xfail=no
(
  $as_echo "768. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "jsonrpc-py.at:31" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/jsonrpc-py.at:31"

   { set +x
$as_echo "$at_srcdir/jsonrpc-py.at:31: \$PYTHON \$srcdir/test-jsonrpc.py --pidfile --detach listen punix:socket"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-jsonrpc.py --pidfile --detach listen punix:socket" "jsonrpc-py.at:31"
( $at_check_trace; $PYTHON $srcdir/test-jsonrpc.py --pidfile --detach listen punix:socket
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/jsonrpc-py.at:31"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat test-jsonrpc.py.pid`'
   { set +x
$as_echo "$at_srcdir/jsonrpc-py.at:31: \$PYTHON3 \$srcdir/test-jsonrpc.py request unix:socket bad-request '[]'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-jsonrpc.py request unix:socket bad-request '[]'" "jsonrpc-py.at:31"
( $at_check_trace; $PYTHON3 $srcdir/test-jsonrpc.py request unix:socket bad-request '[]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"error\":{\"error\":\"unknown method\"},\"id\":0,\"result\":null}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/jsonrpc-py.at:31"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_768
#AT_START_769
at_fn_group_banner 769 'jsonrpc-py.at:45' \
  "JSON-RPC notification - Python2" "                " 43
at_xfail=no
(
  $as_echo "769. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "jsonrpc-py.at:45" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/jsonrpc-py.at:45"

   { set +x
$as_echo "$at_srcdir/jsonrpc-py.at:45: \$PYTHON \$srcdir/test-jsonrpc.py --pidfile --detach listen punix:socket"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-jsonrpc.py --pidfile --detach listen punix:socket" "jsonrpc-py.at:45"
( $at_check_trace; $PYTHON $srcdir/test-jsonrpc.py --pidfile --detach listen punix:socket
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/jsonrpc-py.at:45"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat test-jsonrpc.py.pid`'
   { set +x
$as_echo "$at_srcdir/jsonrpc-py.at:45: test -e test-jsonrpc.py.pid"
at_fn_check_prepare_trace "jsonrpc-py.at:45"
( $at_check_trace; test -e test-jsonrpc.py.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/jsonrpc-py.at:45"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/jsonrpc-py.at:45: \$PYTHON \$srcdir/test-jsonrpc.py notify unix:socket shutdown '[]'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-jsonrpc.py notify unix:socket shutdown '[]'" "jsonrpc-py.at:45"
( $at_check_trace; $PYTHON $srcdir/test-jsonrpc.py notify unix:socket shutdown '[]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/jsonrpc-py.at:45"
$at_failed && at_fn_log_failure
$at_traceon; }

   # Wait for test-jsonrpc to die, based on its pidfile disappearing
   $as_echo "jsonrpc-py.at:45: waiting while test -e test-jsonrpc.py.pid..." >&5
ovs_wait_cond () {
    if test -e test-jsonrpc.py.pid; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "jsonrpc-py.at:45: wait failed" >&5

    $as_echo "jsonrpc-py.at:45" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/jsonrpc-py.at:45"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_769
#AT_START_770
at_fn_group_banner 770 'jsonrpc-py.at:46' \
  "JSON-RPC notification - Python3" "                " 43
at_xfail=no
(
  $as_echo "770. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "jsonrpc-py.at:46" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/jsonrpc-py.at:46"

   { set +x
$as_echo "$at_srcdir/jsonrpc-py.at:46: \$PYTHON3 \$srcdir/test-jsonrpc.py --pidfile --detach listen punix:socket"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-jsonrpc.py --pidfile --detach listen punix:socket" "jsonrpc-py.at:46"
( $at_check_trace; $PYTHON3 $srcdir/test-jsonrpc.py --pidfile --detach listen punix:socket
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/jsonrpc-py.at:46"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat test-jsonrpc.py.pid`'
   { set +x
$as_echo "$at_srcdir/jsonrpc-py.at:46: test -e test-jsonrpc.py.pid"
at_fn_check_prepare_trace "jsonrpc-py.at:46"
( $at_check_trace; test -e test-jsonrpc.py.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/jsonrpc-py.at:46"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/jsonrpc-py.at:46: \$PYTHON3 \$srcdir/test-jsonrpc.py notify unix:socket shutdown '[]'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-jsonrpc.py notify unix:socket shutdown '[]'" "jsonrpc-py.at:46"
( $at_check_trace; $PYTHON3 $srcdir/test-jsonrpc.py notify unix:socket shutdown '[]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/jsonrpc-py.at:46"
$at_failed && at_fn_log_failure
$at_traceon; }

   # Wait for test-jsonrpc to die, based on its pidfile disappearing
   $as_echo "jsonrpc-py.at:46: waiting while test -e test-jsonrpc.py.pid..." >&5
ovs_wait_cond () {
    if test -e test-jsonrpc.py.pid; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "jsonrpc-py.at:46: wait failed" >&5

    $as_echo "jsonrpc-py.at:46" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/jsonrpc-py.at:46"
fi

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

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/tunnel.at:4: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "tunnel.at:4"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:4"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:4: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "tunnel.at:4"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:4"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:4: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:4"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:4"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/tunnel.at:4: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "tunnel.at:4"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:4"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:4: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "tunnel.at:4"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:4"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:4: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:4"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:4"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/tunnel.at:4: add_of_br 0 add-port br0 p1 -- set Interface p1 type=gre \\
                    options:remote_ip=1.1.1.1 ofport_request=1\\
                    -- add-port br0 p2 -- set Interface p2 type=gre \\
                    options:local_ip=2.2.2.2 options:remote_ip=1.1.1.1 \\
                    ofport_request=2 \\
                    -- add-port br0 p3 -- set Interface p3 type=gre \\
                    options:remote_ip=2.2.2.2 ofport_request=3 "
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:4"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=gre \
                    options:remote_ip=1.1.1.1 ofport_request=1\
                    -- add-port br0 p2 -- set Interface p2 type=gre \
                    options:local_ip=2.2.2.2 options:remote_ip=1.1.1.1 \
                    ofport_request=2 \
                    -- add-port br0 p3 -- set Interface p3 type=gre \
                    options:remote_ip=2.2.2.2 ofport_request=3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:4"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
actions=IN_PORT
_ATEOF

{ set +x
$as_echo "$at_srcdir/tunnel.at:14: ovs-appctl dpif/set-dp-features br0 tnl_push_pop false"
at_fn_check_prepare_trace "tunnel.at:14"
( $at_check_trace; ovs-appctl dpif/set-dp-features br0 tnl_push_pop false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:14"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/tunnel.at:16: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "tunnel.at:16"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:16"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:18: ovs-appctl dpif/show | tail -n +3"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel.at:18"
( $at_check_trace; ovs-appctl dpif/show | tail -n +3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "		br0 65534/100: (dummy-internal)
		p1 1/1: (gre: remote_ip=1.1.1.1)
		p2 2/1: (gre: local_ip=2.2.2.2, remote_ip=1.1.1.1)
		p3 3/1: (gre: remote_ip=2.2.2.2)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:18"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:26: ovs-appctl ofproto/trace ovs-dummy 'tunnel(src=1.1.1.1,dst=1.2.3.4,ttl=64,flags()),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'"
at_fn_check_prepare_trace "tunnel.at:26"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'tunnel(src=1.1.1.1,dst=1.2.3.4,ttl=64,flags()),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:26"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:27: tail -1 stdout"
at_fn_check_prepare_trace "tunnel.at:27"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: set(tunnel(dst=1.1.1.1,ttl=64,flags(df))),1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:27"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:32: ovs-appctl ofproto/trace ovs-dummy 'tunnel(src=1.1.1.1,dst=2.2.2.2,ttl=64,flags()),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'"
at_fn_check_prepare_trace "tunnel.at:32"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'tunnel(src=1.1.1.1,dst=2.2.2.2,ttl=64,flags()),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:32"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:33: tail -1 stdout"
at_fn_check_prepare_trace "tunnel.at:33"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: set(tunnel(src=2.2.2.2,dst=1.1.1.1,ttl=64,flags(df))),1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:33"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:38: ovs-vsctl set Interface p2 type=gre options:local_ip=2.2.2.3 \\
          options:df_default=false options:ttl=1 options:csum=true \\
          -- set Interface p3 type=vxlan"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:38"
( $at_check_trace; ovs-vsctl set Interface p2 type=gre options:local_ip=2.2.2.3 \
          options:df_default=false options:ttl=1 options:csum=true \
          -- set Interface p3 type=vxlan
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:38"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:41: ovs-appctl dpif/show | tail -n +3"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel.at:41"
( $at_check_trace; ovs-appctl dpif/show | tail -n +3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "		br0 65534/100: (dummy-internal)
		p1 1/1: (gre: remote_ip=1.1.1.1)
		p2 2/1: (gre: csum=true, df_default=false, local_ip=2.2.2.3, remote_ip=1.1.1.1, ttl=1)
		p3 3/4789: (vxlan: remote_ip=2.2.2.2)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:41"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:47: ovs-appctl ofproto/trace ovs-dummy 'tunnel(src=1.1.1.1,dst=2.2.2.2,ttl=64,flags()),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'"
at_fn_check_prepare_trace "tunnel.at:47"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'tunnel(src=1.1.1.1,dst=2.2.2.2,ttl=64,flags()),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:47"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:48: tail -1 stdout"
at_fn_check_prepare_trace "tunnel.at:48"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: set(tunnel(dst=1.1.1.1,ttl=64,flags(df))),1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:48"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:51: ovs-appctl ofproto/trace ovs-dummy 'tunnel(src=1.1.1.1,dst=2.2.2.3,ttl=64,flags()),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'"
at_fn_check_prepare_trace "tunnel.at:51"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'tunnel(src=1.1.1.1,dst=2.2.2.3,ttl=64,flags()),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:51"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:52: tail -1 stdout"
at_fn_check_prepare_trace "tunnel.at:52"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: set(tunnel(src=2.2.2.3,dst=1.1.1.1,ttl=1,flags(csum))),1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:52"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:57: ovs-appctl ofproto/trace ovs-dummy 'tunnel(src=5.5.5.5,dst=6.6.6.6,ttl=64,flags()),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'"
at_fn_check_prepare_trace "tunnel.at:57"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'tunnel(src=5.5.5.5,dst=6.6.6.6,ttl=64,flags()),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "Invalid datapath flow
ovs-appctl: ovs-vswitchd: server returned an error
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 2 $at_status "$at_srcdir/tunnel.at:57"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:62: check_logs \"/receive tunnel port not found/d\""
at_fn_check_prepare_trace "tunnel.at:62"
( $at_check_trace; check_logs "/receive tunnel port not found/d"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:62"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/tunnel.at:62: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "tunnel.at:62"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:62"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:62: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "tunnel.at:62"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:62"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:62: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:62: wait failed" >&5

    $as_echo "tunnel.at:62" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:62"
fi

   { set +x
$as_echo "$at_srcdir/tunnel.at:62: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "tunnel.at:62"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:62"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:62: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "tunnel.at:62"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:62"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:62: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:62: wait failed" >&5

    $as_echo "tunnel.at:62" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:62"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_771
#AT_START_772
at_fn_group_banner 772 'tunnel.at:65' \
  "tunnel - ECN decapsulation" "                     " 44
at_xfail=no
(
  $as_echo "772. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/tunnel.at:66: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "tunnel.at:66"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:66"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:66: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "tunnel.at:66"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:66"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:66: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:66"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:66"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/tunnel.at:66: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "tunnel.at:66"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:66"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:66: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "tunnel.at:66"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:66"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:66: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:66"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:66"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/tunnel.at:66: add_of_br 0 add-port br0 p1 -- set Interface p1 type=gre \\
                    options:remote_ip=1.1.1.1 ofport_request=1 \\
                    -- add-port br0 p2 -- set Interface p2 type=dummy \\
                    ofport_request=2 "
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:66"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=gre \
                    options:remote_ip=1.1.1.1 ofport_request=1 \
                    -- add-port br0 p2 -- set Interface p2 type=dummy \
                    ofport_request=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:66"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
actions=2
_ATEOF


{ set +x
$as_echo "$at_srcdir/tunnel.at:74: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "tunnel.at:74"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:74"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:76: ovs-appctl dpif/show | tail -n +3"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel.at:76"
( $at_check_trace; ovs-appctl dpif/show | tail -n +3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "		br0 65534/100: (dummy-internal)
		p1 1/1: (gre: remote_ip=1.1.1.1)
		p2 2/2: (dummy)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:76"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:83: ovs-appctl ofproto/trace ovs-dummy 'tunnel(src=1.1.1.1,dst=2.2.2.2,tos=0x3,ttl=64,flags()),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=3,ttl=64,frag=no),tcp(src=8,dst=9)'"
at_fn_check_prepare_trace "tunnel.at:83"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'tunnel(src=1.1.1.1,dst=2.2.2.2,tos=0x3,ttl=64,flags()),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=3,ttl=64,frag=no),tcp(src=8,dst=9)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:83"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:84: tail -2 stdout"
at_fn_check_prepare_trace "tunnel.at:84"
( $at_check_trace; tail -2 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Megaflow: recirc_id=0,eth,ip,tun_id=0,tun_src=1.1.1.1,tun_dst=2.2.2.2,tun_tos=3,tun_flags=-df-csum-key,in_port=1,nw_ecn=3,nw_frag=no
Datapath actions: 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:84"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:90: ovs-appctl ofproto/trace ovs-dummy 'tunnel(src=1.1.1.1,dst=2.2.2.2,tos=0x3,ttl=64,flags()),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=1,ttl=64,frag=no),tcp(src=8,dst=9)'"
at_fn_check_prepare_trace "tunnel.at:90"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'tunnel(src=1.1.1.1,dst=2.2.2.2,tos=0x3,ttl=64,flags()),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=1,ttl=64,frag=no),tcp(src=8,dst=9)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:90"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:91: tail -2 stdout"
at_fn_check_prepare_trace "tunnel.at:91"
( $at_check_trace; tail -2 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Megaflow: recirc_id=0,eth,ip,tun_id=0,tun_src=1.1.1.1,tun_dst=2.2.2.2,tun_tos=3,tun_flags=-df-csum-key,in_port=1,nw_ecn=1,nw_frag=no
Datapath actions: set(ipv4(tos=0x3/0x3)),2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:91"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:97: ovs-appctl ofproto/trace ovs-dummy 'tunnel(src=1.1.1.1,dst=2.2.2.2,tos=0x3,ttl=64,flags()),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=2,ttl=64,frag=no),tcp(src=8,dst=9)'"
at_fn_check_prepare_trace "tunnel.at:97"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'tunnel(src=1.1.1.1,dst=2.2.2.2,tos=0x3,ttl=64,flags()),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=2,ttl=64,frag=no),tcp(src=8,dst=9)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:97"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:98: tail -2 stdout"
at_fn_check_prepare_trace "tunnel.at:98"
( $at_check_trace; tail -2 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Megaflow: recirc_id=0,eth,ip,tun_id=0,tun_src=1.1.1.1,tun_dst=2.2.2.2,tun_tos=3,tun_flags=-df-csum-key,in_port=1,nw_ecn=2,nw_frag=no
Datapath actions: set(ipv4(tos=0x3/0x3)),2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:98"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:104: ovs-appctl ofproto/trace ovs-dummy 'tunnel(src=1.1.1.1,dst=2.2.2.2,tos=0x3,ttl=64,flags()),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'"
at_fn_check_prepare_trace "tunnel.at:104"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'tunnel(src=1.1.1.1,dst=2.2.2.2,tos=0x3,ttl=64,flags()),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:104"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:105: tail -2 stdout"
at_fn_check_prepare_trace "tunnel.at:105"
( $at_check_trace; tail -2 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Megaflow: recirc_id=0,eth,ip,tun_id=0,tun_src=1.1.1.1,tun_dst=2.2.2.2,tun_tos=3,tun_flags=-df-csum-key,in_port=1,nw_ecn=0,nw_frag=no
Datapath actions: drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:105"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:109: check_logs \"/dropping tunnel packet marked ECN CE but is not ECN capable/d\""
at_fn_check_prepare_trace "tunnel.at:109"
( $at_check_trace; check_logs "/dropping tunnel packet marked ECN CE but is not ECN capable/d"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:109"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/tunnel.at:109: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "tunnel.at:109"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:109"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:109: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "tunnel.at:109"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:109"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:109: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:109: wait failed" >&5

    $as_echo "tunnel.at:109" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:109"
fi

   { set +x
$as_echo "$at_srcdir/tunnel.at:109: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "tunnel.at:109"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:109"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:109: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "tunnel.at:109"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:109"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:109: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:109: wait failed" >&5

    $as_echo "tunnel.at:109" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:109"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_772
#AT_START_773
at_fn_group_banner 773 'tunnel.at:112' \
  "tunnel - output" "                                " 44
at_xfail=no
(
  $as_echo "773. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/tunnel.at:113: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "tunnel.at:113"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:113"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:113: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "tunnel.at:113"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:113"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:113: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:113"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:113"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/tunnel.at:113: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "tunnel.at:113"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:113"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:113: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "tunnel.at:113"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:113"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:113: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:113"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:113"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/tunnel.at:113: add_of_br 0 add-port br0 p1 -- set Interface p1 type=gre \\
                    options:remote_ip=1.1.1.1 options:local_ip=2.2.2.2 \\
                    options:key=5 ofport_request=1\\
                    -- add-port br0 p2 -- set Interface p2 type=dummy \\
                    ofport_request=2 "
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:113"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=gre \
                    options:remote_ip=1.1.1.1 options:local_ip=2.2.2.2 \
                    options:key=5 ofport_request=1\
                    -- add-port br0 p2 -- set Interface p2 type=dummy \
                    ofport_request=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:113"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
actions=output:1
_ATEOF


{ set +x
$as_echo "$at_srcdir/tunnel.at:122: ovs-appctl dpif/set-dp-features br0 tnl_push_pop false"
at_fn_check_prepare_trace "tunnel.at:122"
( $at_check_trace; ovs-appctl dpif/set-dp-features br0 tnl_push_pop false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:122"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:123: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "tunnel.at:123"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:123"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:125: ovs-appctl dpif/show | tail -n +3"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel.at:125"
( $at_check_trace; ovs-appctl dpif/show | tail -n +3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "		br0 65534/100: (dummy-internal)
		p1 1/1: (gre: key=5, local_ip=2.2.2.2, remote_ip=1.1.1.1)
		p2 2/2: (dummy)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:125"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:132: ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=4,ttl=128,frag=no),tcp(src=8,dst=9)'"
at_fn_check_prepare_trace "tunnel.at:132"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=4,ttl=128,frag=no),tcp(src=8,dst=9)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:132"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:133: tail -1 stdout"
at_fn_check_prepare_trace "tunnel.at:133"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: set(tunnel(tun_id=0x5,src=2.2.2.2,dst=1.1.1.1,ttl=64,flags(df|key))),1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:133"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:138: ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=1,ttl=64,frag=no),tcp(src=8,dst=9)'"
at_fn_check_prepare_trace "tunnel.at:138"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=1,ttl=64,frag=no),tcp(src=8,dst=9)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:138"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:139: tail -1 stdout"
at_fn_check_prepare_trace "tunnel.at:139"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: set(tunnel(tun_id=0x5,src=2.2.2.2,dst=1.1.1.1,tos=0x1,ttl=64,flags(df|key))),1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:139"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:142: check_logs "
at_fn_check_prepare_trace "tunnel.at:142"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:142"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/tunnel.at:142: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "tunnel.at:142"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:142"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:142: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "tunnel.at:142"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:142"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:142: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:142: wait failed" >&5

    $as_echo "tunnel.at:142" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:142"
fi

   { set +x
$as_echo "$at_srcdir/tunnel.at:142: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "tunnel.at:142"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:142"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:142: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "tunnel.at:142"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:142"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:142: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:142: wait failed" >&5

    $as_echo "tunnel.at:142" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:142"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_773
#AT_START_774
at_fn_group_banner 774 'tunnel.at:145' \
  "tunnel - unencrypted tunnel and not setting skb_mark" "" 44
at_xfail=no
(
  $as_echo "774. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/tunnel.at:146: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "tunnel.at:146"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:146"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:146: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "tunnel.at:146"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:146"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:146: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:146"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:146"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/tunnel.at:146: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "tunnel.at:146"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:146"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:146: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "tunnel.at:146"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:146"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:146: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:146"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:146"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/tunnel.at:146: add_of_br 0 add-port br0 p1 -- set Interface p1 type=gre \\
                    options:remote_ip=1.1.1.1 options:local_ip=2.2.2.2 \\
                    options:key=5 ofport_request=1\\
                    -- add-port br0 p2 -- set Interface p2 type=dummy \\
                    ofport_request=2 ofport_request=2 "
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:146"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=gre \
                    options:remote_ip=1.1.1.1 options:local_ip=2.2.2.2 \
                    options:key=5 ofport_request=1\
                    -- add-port br0 p2 -- set Interface p2 type=dummy \
                    ofport_request=2 ofport_request=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:146"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
actions=output:1
_ATEOF

{ set +x
$as_echo "$at_srcdir/tunnel.at:154: ovs-appctl dpif/set-dp-features br0 tnl_push_pop false"
at_fn_check_prepare_trace "tunnel.at:154"
( $at_check_trace; ovs-appctl dpif/set-dp-features br0 tnl_push_pop false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:154"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:155: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "tunnel.at:155"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:155"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:156: ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=4,ttl=128,frag=no),tcp(src=8,dst=9)'"
at_fn_check_prepare_trace "tunnel.at:156"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=4,ttl=128,frag=no),tcp(src=8,dst=9)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:156"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:157: tail -1 stdout"
at_fn_check_prepare_trace "tunnel.at:157"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: set(tunnel(tun_id=0x5,src=2.2.2.2,dst=1.1.1.1,ttl=64,flags(df|key))),1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:157"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:160: check_logs "
at_fn_check_prepare_trace "tunnel.at:160"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:160"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/tunnel.at:160: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "tunnel.at:160"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:160"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:160: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "tunnel.at:160"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:160"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:160: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:160: wait failed" >&5

    $as_echo "tunnel.at:160" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:160"
fi

   { set +x
$as_echo "$at_srcdir/tunnel.at:160: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "tunnel.at:160"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:160"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:160: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "tunnel.at:160"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:160"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:160: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:160: wait failed" >&5

    $as_echo "tunnel.at:160" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:160"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_774
#AT_START_775
at_fn_group_banner 775 'tunnel.at:163' \
  "tunnel - unencrypted tunnel and setting skb_mark to 1" "" 44
at_xfail=no
(
  $as_echo "775. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/tunnel.at:164: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "tunnel.at:164"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:164"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:164: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "tunnel.at:164"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:164"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:164: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:164"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:164"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/tunnel.at:164: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "tunnel.at:164"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:164"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:164: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "tunnel.at:164"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:164"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:164: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:164"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:164"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/tunnel.at:164: add_of_br 0 add-port br0 p1 -- set Interface p1 type=gre \\
                    options:remote_ip=1.1.1.1 options:local_ip=2.2.2.2 \\
                    options:key=5 ofport_request=1\\
                    -- add-port br0 p2 -- set Interface p2 type=dummy \\
                    ofport_request=2 ofport_request=2 "
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:164"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=gre \
                    options:remote_ip=1.1.1.1 options:local_ip=2.2.2.2 \
                    options:key=5 ofport_request=1\
                    -- add-port br0 p2 -- set Interface p2 type=dummy \
                    ofport_request=2 ofport_request=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:164"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
actions=load:0x1->NXM_NX_PKT_MARK[],output:1
_ATEOF

{ set +x
$as_echo "$at_srcdir/tunnel.at:172: ovs-appctl dpif/set-dp-features br0 tnl_push_pop false"
at_fn_check_prepare_trace "tunnel.at:172"
( $at_check_trace; ovs-appctl dpif/set-dp-features br0 tnl_push_pop false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:172"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:173: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "tunnel.at:173"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:173"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:174: ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=4,ttl=128,frag=no),tcp(src=8,dst=9)'"
at_fn_check_prepare_trace "tunnel.at:174"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=4,ttl=128,frag=no),tcp(src=8,dst=9)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:174"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:175: tail -1 stdout"
at_fn_check_prepare_trace "tunnel.at:175"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: set(tunnel(tun_id=0x5,src=2.2.2.2,dst=1.1.1.1,ttl=64,flags(df|key))),set(skb_mark(0x1)),1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:175"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:178: check_logs "
at_fn_check_prepare_trace "tunnel.at:178"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:178"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/tunnel.at:178: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "tunnel.at:178"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:178"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:178: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "tunnel.at:178"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:178"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:178: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:178: wait failed" >&5

    $as_echo "tunnel.at:178" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:178"
fi

   { set +x
$as_echo "$at_srcdir/tunnel.at:178: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "tunnel.at:178"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:178"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:178: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "tunnel.at:178"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:178"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:178: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:178: wait failed" >&5

    $as_echo "tunnel.at:178" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:178"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_775
#AT_START_776
at_fn_group_banner 776 'tunnel.at:181' \
  "tunnel - unencrypted tunnel and setting skb_mark to 2" "" 44
at_xfail=no
(
  $as_echo "776. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/tunnel.at:182: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "tunnel.at:182"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:182"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:182: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "tunnel.at:182"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:182"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:182: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:182"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:182"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/tunnel.at:182: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "tunnel.at:182"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:182"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:182: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "tunnel.at:182"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:182"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:182: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:182"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:182"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/tunnel.at:182: add_of_br 0 add-port br0 p1 -- set Interface p1 type=gre \\
                    options:remote_ip=1.1.1.1 options:local_ip=2.2.2.2 \\
                    options:key=5 ofport_request=1\\
                    -- add-port br0 p2 -- set Interface p2 type=dummy \\
                    ofport_request=2 ofport_request=2 "
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:182"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=gre \
                    options:remote_ip=1.1.1.1 options:local_ip=2.2.2.2 \
                    options:key=5 ofport_request=1\
                    -- add-port br0 p2 -- set Interface p2 type=dummy \
                    ofport_request=2 ofport_request=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:182"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
actions=load:0x2->NXM_NX_PKT_MARK[],output:1
_ATEOF

{ set +x
$as_echo "$at_srcdir/tunnel.at:190: ovs-appctl dpif/set-dp-features br0 tnl_push_pop false"
at_fn_check_prepare_trace "tunnel.at:190"
( $at_check_trace; ovs-appctl dpif/set-dp-features br0 tnl_push_pop false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:190"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:191: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "tunnel.at:191"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:192: ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=4,ttl=128,frag=no),tcp(src=8,dst=9)'"
at_fn_check_prepare_trace "tunnel.at:192"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=4,ttl=128,frag=no),tcp(src=8,dst=9)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:192"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:193: tail -1 stdout"
at_fn_check_prepare_trace "tunnel.at:193"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: set(tunnel(tun_id=0x5,src=2.2.2.2,dst=1.1.1.1,ttl=64,flags(df|key))),set(skb_mark(0x2)),1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:193"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:196: check_logs "
at_fn_check_prepare_trace "tunnel.at:196"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:196"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/tunnel.at:196: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "tunnel.at:196"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:196"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:196: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "tunnel.at:196"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:196"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:196: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:196: wait failed" >&5

    $as_echo "tunnel.at:196" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:196"
fi

   { set +x
$as_echo "$at_srcdir/tunnel.at:196: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "tunnel.at:196"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:196"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:196: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "tunnel.at:196"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:196"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:196: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:196: wait failed" >&5

    $as_echo "tunnel.at:196" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:196"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_776
#AT_START_777
at_fn_group_banner 777 'tunnel.at:199' \
  "tunnel - ToS and TTL inheritance" "               " 44
at_xfail=no
(
  $as_echo "777. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/tunnel.at:200: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "tunnel.at:200"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:200"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:200: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "tunnel.at:200"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:200"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:200: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:200"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:200"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/tunnel.at:200: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "tunnel.at:200"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:200"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:200: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "tunnel.at:200"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:200"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:200: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:200"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:200"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/tunnel.at:200: add_of_br 0 add-port br0 p1 -- set Interface p1 type=gre \\
                    options:remote_ip=1.1.1.1 options:tos=inherit \\
                    options:ttl=inherit ofport_request=1 \\
                    -- add-port br0 p2 -- set Interface p2 type=dummy \\
                    ofport_request=2 ofport_request=2 "
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:200"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=gre \
                    options:remote_ip=1.1.1.1 options:tos=inherit \
                    options:ttl=inherit ofport_request=1 \
                    -- add-port br0 p2 -- set Interface p2 type=dummy \
                    ofport_request=2 ofport_request=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:200"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
actions=output:1
_ATEOF


{ set +x
$as_echo "$at_srcdir/tunnel.at:209: ovs-appctl dpif/set-dp-features br0 tnl_push_pop false"
at_fn_check_prepare_trace "tunnel.at:209"
( $at_check_trace; ovs-appctl dpif/set-dp-features br0 tnl_push_pop false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:209"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:210: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "tunnel.at:210"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:210"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:212: ovs-appctl dpif/show | tail -n +3"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel.at:212"
( $at_check_trace; ovs-appctl dpif/show | tail -n +3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "		br0 65534/100: (dummy-internal)
		p1 1/1: (gre: remote_ip=1.1.1.1, tos=inherit, ttl=inherit)
		p2 2/2: (dummy)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:212"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:219: ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=4,ttl=128,frag=no),tcp(src=8,dst=9)'"
at_fn_check_prepare_trace "tunnel.at:219"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=4,ttl=128,frag=no),tcp(src=8,dst=9)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:219"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:220: tail -1 stdout"
at_fn_check_prepare_trace "tunnel.at:220"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: set(tunnel(dst=1.1.1.1,tos=0x4,ttl=128,flags(df))),1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:220"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:225: ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=5,ttl=128,frag=no),tcp(src=8,dst=9)'"
at_fn_check_prepare_trace "tunnel.at:225"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=5,ttl=128,frag=no),tcp(src=8,dst=9)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:225"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:226: tail -1 stdout"
at_fn_check_prepare_trace "tunnel.at:226"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: set(tunnel(dst=1.1.1.1,tos=0x5,ttl=128,flags(df))),1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:226"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:231: ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0806),arp(sip=1.2.3.4,tip=5.6.7.8,op=1,sha=00:0f:10:11:12:13,tha=00:14:15:16:17:18)'"
at_fn_check_prepare_trace "tunnel.at:231"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0806),arp(sip=1.2.3.4,tip=5.6.7.8,op=1,sha=00:0f:10:11:12:13,tha=00:14:15:16:17:18)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:231"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:232: tail -1 stdout"
at_fn_check_prepare_trace "tunnel.at:232"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: set(tunnel(dst=1.1.1.1,ttl=64,flags(df))),1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:232"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:235: check_logs "
at_fn_check_prepare_trace "tunnel.at:235"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:235"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/tunnel.at:235: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "tunnel.at:235"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:235"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:235: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "tunnel.at:235"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:235"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:235: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:235: wait failed" >&5

    $as_echo "tunnel.at:235" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:235"
fi

   { set +x
$as_echo "$at_srcdir/tunnel.at:235: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "tunnel.at:235"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:235"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:235: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "tunnel.at:235"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:235"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:235: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:235: wait failed" >&5

    $as_echo "tunnel.at:235" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:235"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_777
#AT_START_778
at_fn_group_banner 778 'tunnel.at:238' \
  "tunnel - set_tunnel" "                            " 44
at_xfail=no
(
  $as_echo "778. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/tunnel.at:239: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "tunnel.at:239"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:239"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:239: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "tunnel.at:239"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:239"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:239: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:239"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:239"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/tunnel.at:239: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "tunnel.at:239"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:239"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:239: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "tunnel.at:239"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:239"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:239: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:239"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:239"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/tunnel.at:239: add_of_br 0     add-port br0 p1 -- set Interface p1 type=gre options:key=flow \\
        options:remote_ip=1.1.1.1 ofport_request=1 \\
    -- add-port br0 p2 -- set Interface p2 type=gre options:key=flow \\
        options:remote_ip=2.2.2.2 ofport_request=2 \\
    -- add-port br0 p3 -- set Interface p3 type=gre options:key=flow \\
        options:remote_ip=3.3.3.3 ofport_request=3 \\
    -- add-port br0 p4 -- set Interface p4 type=gre options:key=flow \\
        options:remote_ip=4.4.4.4 ofport_request=4 "
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:239"
( $at_check_trace; add_of_br 0     add-port br0 p1 -- set Interface p1 type=gre options:key=flow \
        options:remote_ip=1.1.1.1 ofport_request=1 \
    -- add-port br0 p2 -- set Interface p2 type=gre options:key=flow \
        options:remote_ip=2.2.2.2 ofport_request=2 \
    -- add-port br0 p3 -- set Interface p3 type=gre options:key=flow \
        options:remote_ip=3.3.3.3 ofport_request=3 \
    -- add-port br0 p4 -- set Interface p4 type=gre options:key=flow \
        options:remote_ip=4.4.4.4 ofport_request=4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:239"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
actions=set_tunnel:1,output:1,set_tunnel:2,output:2,set_tunnel:3,output:3,set_tunnel:5,output:4
_ATEOF


{ set +x
$as_echo "$at_srcdir/tunnel.at:252: ovs-appctl dpif/set-dp-features br0 tnl_push_pop false"
at_fn_check_prepare_trace "tunnel.at:252"
( $at_check_trace; ovs-appctl dpif/set-dp-features br0 tnl_push_pop false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:252"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:253: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "tunnel.at:253"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:253"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:255: ovs-appctl dpif/show | tail -n +3"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel.at:255"
( $at_check_trace; ovs-appctl dpif/show | tail -n +3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "		br0 65534/100: (dummy-internal)
		p1 1/1: (gre: key=flow, remote_ip=1.1.1.1)
		p2 2/1: (gre: key=flow, remote_ip=2.2.2.2)
		p3 3/1: (gre: key=flow, remote_ip=3.3.3.3)
		p4 4/1: (gre: key=flow, remote_ip=4.4.4.4)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:255"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:263: ovs-appctl ofproto/trace ovs-dummy 'in_port(100),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "tunnel.at:263"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(100),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:264: tail -1 stdout"
at_fn_check_prepare_trace "tunnel.at:264"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: set(tunnel(tun_id=0x1,dst=1.1.1.1,ttl=64,flags(df|key))),1,set(tunnel(tun_id=0x2,dst=2.2.2.2,ttl=64,flags(df|key))),1,set(tunnel(tun_id=0x3,dst=3.3.3.3,ttl=64,flags(df|key))),1,set(tunnel(tun_id=0x5,dst=4.4.4.4,ttl=64,flags(df|key))),1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:264"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:270: check_logs "
at_fn_check_prepare_trace "tunnel.at:270"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:270"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/tunnel.at:270: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "tunnel.at:270"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:270"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:270: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "tunnel.at:270"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:270"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:270: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:270: wait failed" >&5

    $as_echo "tunnel.at:270" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:270"
fi

   { set +x
$as_echo "$at_srcdir/tunnel.at:270: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "tunnel.at:270"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:270"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:270: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "tunnel.at:270"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:270"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:270: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:270: wait failed" >&5

    $as_echo "tunnel.at:270" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:270"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_778
#AT_START_779
at_fn_group_banner 779 'tunnel.at:273' \
  "tunnel - key" "                                   " 44
at_xfail=no
(
  $as_echo "779. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/tunnel.at:274: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "tunnel.at:274"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:274"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:274: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "tunnel.at:274"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:274"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:274: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:274"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:274"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/tunnel.at:274: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "tunnel.at:274"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:274"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:274: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "tunnel.at:274"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:274"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:274: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:274"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:274"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/tunnel.at:274: add_of_br 0     add-port br0 p1 -- set Interface p1 type=gre options:key=1 \\
        options:remote_ip=1.1.1.1 ofport_request=1 \\
    -- add-port br0 p2 -- set Interface p2 type=gre options:in_key=2 \\
        options:out_key=3 options:remote_ip=1.1.1.1 ofport_request=2 \\
    -- add-port br0 p3 -- set Interface p3 type=gre options:out_key=5 \\
        options:remote_ip=1.1.1.1 ofport_request=3 "
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:274"
( $at_check_trace; add_of_br 0     add-port br0 p1 -- set Interface p1 type=gre options:key=1 \
        options:remote_ip=1.1.1.1 ofport_request=1 \
    -- add-port br0 p2 -- set Interface p2 type=gre options:in_key=2 \
        options:out_key=3 options:remote_ip=1.1.1.1 ofport_request=2 \
    -- add-port br0 p3 -- set Interface p3 type=gre options:out_key=5 \
        options:remote_ip=1.1.1.1 ofport_request=3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:274"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
actions=IN_PORT,output:1,output:2,output:3
_ATEOF


{ set +x
$as_echo "$at_srcdir/tunnel.at:285: ovs-appctl dpif/set-dp-features br0 tnl_push_pop false"
at_fn_check_prepare_trace "tunnel.at:285"
( $at_check_trace; ovs-appctl dpif/set-dp-features br0 tnl_push_pop false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:285"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:286: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "tunnel.at:286"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:286"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:288: ovs-appctl dpif/show | tail -n +3"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel.at:288"
( $at_check_trace; ovs-appctl dpif/show | tail -n +3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "		br0 65534/100: (dummy-internal)
		p1 1/1: (gre: key=1, remote_ip=1.1.1.1)
		p2 2/1: (gre: in_key=2, out_key=3, remote_ip=1.1.1.1)
		p3 3/1: (gre: out_key=5, remote_ip=1.1.1.1)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:288"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:295: ovs-appctl ofproto/trace ovs-dummy 'tunnel(tun_id=0x1,src=1.1.1.1,dst=2.2.2.2,ttl=64,flags(key)),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'"
at_fn_check_prepare_trace "tunnel.at:295"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'tunnel(tun_id=0x1,src=1.1.1.1,dst=2.2.2.2,ttl=64,flags(key)),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:295"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:296: tail -1 stdout"
at_fn_check_prepare_trace "tunnel.at:296"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: set(tunnel(tun_id=0x1,dst=1.1.1.1,ttl=64,flags(df|key))),1,set(tunnel(tun_id=0x3,dst=1.1.1.1,ttl=64,flags(df|key))),1,set(tunnel(tun_id=0x5,dst=1.1.1.1,ttl=64,flags(df|key))),1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:296"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:302: ovs-appctl ofproto/trace ovs-dummy 'tunnel(tun_id=0x2,src=1.1.1.1,dst=2.2.2.2,ttl=64,flags(key)),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'"
at_fn_check_prepare_trace "tunnel.at:302"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'tunnel(tun_id=0x2,src=1.1.1.1,dst=2.2.2.2,ttl=64,flags(key)),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:302"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:303: tail -1 stdout"
at_fn_check_prepare_trace "tunnel.at:303"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: set(tunnel(tun_id=0x3,dst=1.1.1.1,ttl=64,flags(df|key))),1,set(tunnel(tun_id=0x1,dst=1.1.1.1,ttl=64,flags(df|key))),1,set(tunnel(tun_id=0x5,dst=1.1.1.1,ttl=64,flags(df|key))),1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:303"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:309: ovs-appctl ofproto/trace ovs-dummy 'tunnel(src=1.1.1.1,dst=2.2.2.2,ttl=64,flags()),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'"
at_fn_check_prepare_trace "tunnel.at:309"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'tunnel(src=1.1.1.1,dst=2.2.2.2,ttl=64,flags()),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:309"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:310: tail -1 stdout"
at_fn_check_prepare_trace "tunnel.at:310"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: set(tunnel(tun_id=0x5,dst=1.1.1.1,ttl=64,flags(df|key))),1,set(tunnel(tun_id=0x1,dst=1.1.1.1,ttl=64,flags(df|key))),1,set(tunnel(tun_id=0x3,dst=1.1.1.1,ttl=64,flags(df|key))),1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:310"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:316: ovs-appctl ofproto/trace ovs-dummy 'tunnel(tun_id=0xf,src=1.1.1.1,dst=2.2.2.2,ttl=64,flags(key)),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'"
at_fn_check_prepare_trace "tunnel.at:316"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'tunnel(tun_id=0xf,src=1.1.1.1,dst=2.2.2.2,ttl=64,flags(key)),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "Invalid datapath flow
ovs-appctl: ovs-vswitchd: server returned an error
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 2 $at_status "$at_srcdir/tunnel.at:316"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:320: check_logs \"/receive tunnel port not found/d\""
at_fn_check_prepare_trace "tunnel.at:320"
( $at_check_trace; check_logs "/receive tunnel port not found/d"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:320"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/tunnel.at:320: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "tunnel.at:320"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:320"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:320: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "tunnel.at:320"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:320"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:320: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:320: wait failed" >&5

    $as_echo "tunnel.at:320" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:320"
fi

   { set +x
$as_echo "$at_srcdir/tunnel.at:320: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "tunnel.at:320"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:320"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:320: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "tunnel.at:320"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:320"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:320: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:320: wait failed" >&5

    $as_echo "tunnel.at:320" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:320"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_779
#AT_START_780
at_fn_group_banner 780 'tunnel.at:323' \
  "tunnel - key match" "                             " 44
at_xfail=no
(
  $as_echo "780. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/tunnel.at:324: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "tunnel.at:324"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:324"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:324: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "tunnel.at:324"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:324"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:324: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:324"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:324"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/tunnel.at:324: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "tunnel.at:324"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:324"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:324: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "tunnel.at:324"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:324"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:324: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:324"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:324"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/tunnel.at:324: add_of_br 0     add-port br0 p1 -- set Interface p1 type=gre options:key=flow \\
        options:remote_ip=1.1.1.1 ofport_request=1 \\
    -- add-port br0 p2 -- set Interface p2 type=gre options:key=3 \\
        options:remote_ip=3.3.3.3 ofport_request=2 \\
    -- add-port br0 p3 -- set Interface p3 type=dummy ofport_request=3 \\
    -- add-port br0 p4 -- set Interface p4 type=dummy ofport_request=4 \\
    -- add-port br0 p5 -- set Interface p5 type=dummy ofport_request=5 "
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:324"
( $at_check_trace; add_of_br 0     add-port br0 p1 -- set Interface p1 type=gre options:key=flow \
        options:remote_ip=1.1.1.1 ofport_request=1 \
    -- add-port br0 p2 -- set Interface p2 type=gre options:key=3 \
        options:remote_ip=3.3.3.3 ofport_request=2 \
    -- add-port br0 p3 -- set Interface p3 type=dummy ofport_request=3 \
    -- add-port br0 p4 -- set Interface p4 type=dummy ofport_request=4 \
    -- add-port br0 p5 -- set Interface p5 type=dummy ofport_request=5
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:324"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
tun_id=2,actions=output:3
tun_id=3,actions=output:4,set_tunnel:2,resubmit:99,set_tunnel:4,output:2,resubmit:99
tun_id=4,actions=output:5
_ATEOF


{ set +x
$as_echo "$at_srcdir/tunnel.at:338: ovs-appctl dpif/set-dp-features br0 tnl_push_pop false"
at_fn_check_prepare_trace "tunnel.at:338"
( $at_check_trace; ovs-appctl dpif/set-dp-features br0 tnl_push_pop false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:338"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:339: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "tunnel.at:339"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:339"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:341: ovs-appctl dpif/show | tail -n +3"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel.at:341"
( $at_check_trace; ovs-appctl dpif/show | tail -n +3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "		br0 65534/100: (dummy-internal)
		p1 1/1: (gre: key=flow, remote_ip=1.1.1.1)
		p2 2/1: (gre: key=3, remote_ip=3.3.3.3)
		p3 3/3: (dummy)
		p4 4/4: (dummy)
		p5 5/5: (dummy)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:341"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:350: ovs-appctl ofproto/trace ovs-dummy 'tunnel(tun_id=0x2,src=1.1.1.1,dst=2.2.2.2,ttl=64,flags(key)),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'"
at_fn_check_prepare_trace "tunnel.at:350"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'tunnel(tun_id=0x2,src=1.1.1.1,dst=2.2.2.2,ttl=64,flags(key)),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:350"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:351: tail -1 stdout"
at_fn_check_prepare_trace "tunnel.at:351"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:351"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:355: ovs-appctl ofproto/trace ovs-dummy 'tunnel(tun_id=0x3,src=1.1.1.1,dst=2.2.2.2,ttl=64,flags(key)),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'"
at_fn_check_prepare_trace "tunnel.at:355"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'tunnel(tun_id=0x3,src=1.1.1.1,dst=2.2.2.2,ttl=64,flags(key)),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:355"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:356: tail -1 stdout"
at_fn_check_prepare_trace "tunnel.at:356"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 4,3,set(tunnel(tun_id=0x3,dst=3.3.3.3,ttl=64,flags(df|key))),1,5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:356"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:360: ovs-appctl ofproto/trace ovs-dummy 'tunnel(tun_id=0x3,src=3.3.3.3,dst=2.2.2.2,ttl=64,flags(key)),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'"
at_fn_check_prepare_trace "tunnel.at:360"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'tunnel(tun_id=0x3,src=3.3.3.3,dst=2.2.2.2,ttl=64,flags(key)),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:360"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:361: tail -1 stdout"
at_fn_check_prepare_trace "tunnel.at:361"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 4,3,5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:361"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:365: ovs-appctl ofproto/trace ovs-dummy 'tunnel(tun_id=0x0,src=1.1.1.1,dst=2.2.2.2,ttl=64,flags(key)),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'"
at_fn_check_prepare_trace "tunnel.at:365"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'tunnel(tun_id=0x0,src=1.1.1.1,dst=2.2.2.2,ttl=64,flags(key)),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:365"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:366: tail -1 stdout"
at_fn_check_prepare_trace "tunnel.at:366"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:366"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:370: check_logs "
at_fn_check_prepare_trace "tunnel.at:370"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:370"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/tunnel.at:370: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "tunnel.at:370"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:370"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:370: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "tunnel.at:370"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:370"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:370: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:370: wait failed" >&5

    $as_echo "tunnel.at:370" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:370"
fi

   { set +x
$as_echo "$at_srcdir/tunnel.at:370: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "tunnel.at:370"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:370"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:370: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "tunnel.at:370"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:370"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:370: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:370: wait failed" >&5

    $as_echo "tunnel.at:370" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:370"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_780
#AT_START_781
at_fn_group_banner 781 'tunnel.at:373' \
  "tunnel - Geneve" "                                " 44
at_xfail=no
(
  $as_echo "781. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/tunnel.at:374: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "tunnel.at:374"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:374"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:374: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "tunnel.at:374"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:374"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:374: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:374"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:374"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/tunnel.at:374: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "tunnel.at:374"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:374"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:374: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "tunnel.at:374"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:374"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:374: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:374"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:374"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/tunnel.at:374: add_of_br 0 add-port br0 p1 -- set Interface p1 type=geneve \\
                    options:remote_ip=1.1.1.1 ofport_request=1 options:dst_port=5000 "
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:374"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=geneve \
                    options:remote_ip=1.1.1.1 ofport_request=1 options:dst_port=5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:374"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/tunnel.at:377: ovs-appctl dpif/show | tail -n +3"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel.at:377"
( $at_check_trace; ovs-appctl dpif/show | tail -n +3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "		br0 65534/100: (dummy-internal)
		p1 1/5000: (geneve: dst_port=5000, remote_ip=1.1.1.1)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:377"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:382: check_logs "
at_fn_check_prepare_trace "tunnel.at:382"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:382"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/tunnel.at:382: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "tunnel.at:382"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:382"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:382: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "tunnel.at:382"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:382"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:382: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:382: wait failed" >&5

    $as_echo "tunnel.at:382" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:382"
fi

   { set +x
$as_echo "$at_srcdir/tunnel.at:382: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "tunnel.at:382"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:382"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:382: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "tunnel.at:382"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:382"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:382: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:382: wait failed" >&5

    $as_echo "tunnel.at:382" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:382"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_781
#AT_START_782
at_fn_group_banner 782 'tunnel.at:385' \
  "tunnel - VXLAN" "                                 " 44
at_xfail=no
(
  $as_echo "782. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/tunnel.at:386: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "tunnel.at:386"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:386"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:386: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "tunnel.at:386"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:386"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:386: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:386"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:386"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/tunnel.at:386: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "tunnel.at:386"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:386"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:386: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "tunnel.at:386"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:386"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:386: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:386"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:386"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/tunnel.at:386: add_of_br 0 add-port br0 p1 -- set Interface p1 type=vxlan \\
                    options:remote_ip=1.1.1.1 ofport_request=1 "
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:386"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=vxlan \
                    options:remote_ip=1.1.1.1 ofport_request=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:386"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/tunnel.at:389: ovs-appctl dpif/show | tail -n +3"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel.at:389"
( $at_check_trace; ovs-appctl dpif/show | tail -n +3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "		br0 65534/100: (dummy-internal)
		p1 1/4789: (vxlan: remote_ip=1.1.1.1)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:389"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:394: check_logs "
at_fn_check_prepare_trace "tunnel.at:394"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:394"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/tunnel.at:394: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "tunnel.at:394"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:394"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:394: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "tunnel.at:394"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:394"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:394: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:394: wait failed" >&5

    $as_echo "tunnel.at:394" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:394"
fi

   { set +x
$as_echo "$at_srcdir/tunnel.at:394: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "tunnel.at:394"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:394"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:394: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "tunnel.at:394"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:394"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:394: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:394: wait failed" >&5

    $as_echo "tunnel.at:394" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:394"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_782
#AT_START_783
at_fn_group_banner 783 'tunnel.at:397' \
  "tunnel - LISP" "                                  " 44
at_xfail=no
(
  $as_echo "783. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/tunnel.at:398: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "tunnel.at:398"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:398"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:398: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "tunnel.at:398"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:398"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:398: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:398"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:398"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/tunnel.at:398: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "tunnel.at:398"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:398"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:398: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "tunnel.at:398"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:398"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:398: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:398"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:398"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/tunnel.at:398: add_of_br 0 add-port br0 p1 -- set Interface p1 type=lisp \\
                    options:remote_ip=1.1.1.1 ofport_request=1 "
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:398"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=lisp \
                    options:remote_ip=1.1.1.1 ofport_request=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:398"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/tunnel.at:401: ovs-appctl dpif/show | tail -n +3"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel.at:401"
( $at_check_trace; ovs-appctl dpif/show | tail -n +3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "		br0 65534/100: (dummy-internal)
		p1 1/4341: (lisp: remote_ip=1.1.1.1)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:401"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:406: check_logs "
at_fn_check_prepare_trace "tunnel.at:406"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:406"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/tunnel.at:406: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "tunnel.at:406"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:406"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:406: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "tunnel.at:406"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:406"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:406: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:406: wait failed" >&5

    $as_echo "tunnel.at:406" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:406"
fi

   { set +x
$as_echo "$at_srcdir/tunnel.at:406: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "tunnel.at:406"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:406"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:406: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "tunnel.at:406"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:406"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:406: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:406: wait failed" >&5

    $as_echo "tunnel.at:406" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:406"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_783
#AT_START_784
at_fn_group_banner 784 'tunnel.at:409' \
  "tunnel - different VXLAN UDP port" "              " 44
at_xfail=no
(
  $as_echo "784. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/tunnel.at:410: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "tunnel.at:410"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:410"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:410: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "tunnel.at:410"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:410"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:410: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:410"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:410"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/tunnel.at:410: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "tunnel.at:410"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:410"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:410: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "tunnel.at:410"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:410"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:410: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:410"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:410"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/tunnel.at:410: add_of_br 0 add-port br0 p1 -- set Interface p1 type=vxlan \\
                    options:remote_ip=1.1.1.1 ofport_request=1 options:dst_port=4341 "
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:410"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=vxlan \
                    options:remote_ip=1.1.1.1 ofport_request=1 options:dst_port=4341
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:410"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/tunnel.at:413: ovs-appctl dpif/show | tail -n +3"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel.at:413"
( $at_check_trace; ovs-appctl dpif/show | tail -n +3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "		br0 65534/100: (dummy-internal)
		p1 1/4341: (vxlan: dst_port=4341, remote_ip=1.1.1.1)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:413"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/tunnel.at:420: ovs-vsctl -- set Interface p1 options:dst_port=5000"
at_fn_check_prepare_trace "tunnel.at:420"
( $at_check_trace; ovs-vsctl -- set Interface p1 options:dst_port=5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:420"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:422: ovs-appctl dpif/show | tail -n +3"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel.at:422"
( $at_check_trace; ovs-appctl dpif/show | tail -n +3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "		br0 65534/100: (dummy-internal)
		p1 1/5000: (vxlan: dst_port=5000, remote_ip=1.1.1.1)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:422"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/tunnel.at:429: ovs-vsctl -- set Interface p1 options:dst_port=4789"
at_fn_check_prepare_trace "tunnel.at:429"
( $at_check_trace; ovs-vsctl -- set Interface p1 options:dst_port=4789
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:429"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:431: ovs-appctl dpif/show | tail -n +3"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel.at:431"
( $at_check_trace; ovs-appctl dpif/show | tail -n +3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "		br0 65534/100: (dummy-internal)
		p1 1/4789: (vxlan: remote_ip=1.1.1.1)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:431"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:435: check_logs "
at_fn_check_prepare_trace "tunnel.at:435"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:435"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/tunnel.at:435: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "tunnel.at:435"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:435"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:435: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "tunnel.at:435"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:435"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:435: wait failed" >&5

    $as_echo "tunnel.at:435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:435"
fi

   { set +x
$as_echo "$at_srcdir/tunnel.at:435: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "tunnel.at:435"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:435"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:435: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "tunnel.at:435"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:435"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:435: wait failed" >&5

    $as_echo "tunnel.at:435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:435"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_784
#AT_START_785
at_fn_group_banner 785 'tunnel.at:438' \
  "ofproto-dpif - set_field - tun_src/tun_dst/tun_id" "" 44
at_xfail=no
(
  $as_echo "785. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/tunnel.at:439: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "tunnel.at:439"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:439"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:439: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "tunnel.at:439"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:439"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:439: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:439"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:439"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/tunnel.at:439: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "tunnel.at:439"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:439"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:439: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "tunnel.at:439"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:439"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:439: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:439"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:439"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/tunnel.at:439: add_of_br 0     add-port br0 p1 -- set Interface p1 type=gre options:key=flow \\
        options:remote_ip=1.1.1.1 ofport_request=1 \\
    -- add-port br0 p2 -- set Interface p2 type=gre options:key=flow \\
        options:remote_ip=flow ofport_request=2 \\
    -- add-port br0 p3 -- set Interface p3 type=gre options:key=flow \\
        options:remote_ip=flow options:local_ip=flow ofport_request=3 \\
    -- add-port br0 p4 -- set Interface p4 type=gre options:key=3 \\
        options:remote_ip=flow ofport_request=4 \\
    -- add-port br0 p5 -- set Interface p5 type=gre options:key=flow \\
        options:remote_ip=5.5.5.5 ofport_request=5 "
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:439"
( $at_check_trace; add_of_br 0     add-port br0 p1 -- set Interface p1 type=gre options:key=flow \
        options:remote_ip=1.1.1.1 ofport_request=1 \
    -- add-port br0 p2 -- set Interface p2 type=gre options:key=flow \
        options:remote_ip=flow ofport_request=2 \
    -- add-port br0 p3 -- set Interface p3 type=gre options:key=flow \
        options:remote_ip=flow options:local_ip=flow ofport_request=3 \
    -- add-port br0 p4 -- set Interface p4 type=gre options:key=3 \
        options:remote_ip=flow ofport_request=4 \
    -- add-port br0 p5 -- set Interface p5 type=gre options:key=flow \
        options:remote_ip=5.5.5.5 ofport_request=5
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:439"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/tunnel.at:451: ovs-appctl dpif/set-dp-features br0 tnl_push_pop false"
at_fn_check_prepare_trace "tunnel.at:451"
( $at_check_trace; ovs-appctl dpif/set-dp-features br0 tnl_push_pop false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:451"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 90
cat >flows.txt <<'_ATEOF'
in_port=90 actions=resubmit:1,resubmit:2,resubmit:3,resubmit:4,resubmit:5
in_port=1 actions=set_field:42->tun_id,output:1
in_port=2 actions=set_field:3.3.3.3->tun_dst,output:2
in_port=3 actions=set_field:1.1.1.1->tun_src,set_field:4.4.4.4->tun_dst,output:3
in_port=4 actions=set_field:2.2.2.2->tun_dst,output:4
in_port=5 actions=set_field:5->tun_id
_ATEOF

{ set +x
$as_echo "$at_srcdir/tunnel.at:461: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "tunnel.at:461"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:461"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:462: ovs-appctl ofproto/trace ovs-dummy 'in_port(90),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "tunnel.at:462"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(90),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:462"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:463: tail -1 stdout"
at_fn_check_prepare_trace "tunnel.at:463"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: set(tunnel(tun_id=0x2a,dst=1.1.1.1,ttl=64,flags(df|key))),1,set(tunnel(tun_id=0x2a,dst=3.3.3.3,ttl=64,flags(df|key))),1,set(tunnel(tun_id=0x2a,src=1.1.1.1,dst=4.4.4.4,ttl=64,flags(df|key))),1,set(tunnel(tun_id=0x3,dst=2.2.2.2,ttl=64,flags(df|key))),1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:463"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:466: check_logs "
at_fn_check_prepare_trace "tunnel.at:466"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:466"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/tunnel.at:466: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "tunnel.at:466"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:466"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:466: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "tunnel.at:466"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:466"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:466: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:466: wait failed" >&5

    $as_echo "tunnel.at:466" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:466"
fi

   { set +x
$as_echo "$at_srcdir/tunnel.at:466: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "tunnel.at:466"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:466"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:466: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "tunnel.at:466"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:466"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:466: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:466: wait failed" >&5

    $as_echo "tunnel.at:466" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:466"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_785
#AT_START_786
at_fn_group_banner 786 'tunnel.at:469' \
  "tunnel - Geneve metadata" "                       " 44
at_xfail=no
(
  $as_echo "786. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/tunnel.at:470: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "tunnel.at:470"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:470"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:470: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "tunnel.at:470"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:470"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:470: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:470"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:470"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/tunnel.at:470: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "tunnel.at:470"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:470"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:470: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "tunnel.at:470"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:470"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:470: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:470"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:470"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/tunnel.at:470: add_of_br 0 add-port br0 p1 -- set Interface p1 type=geneve \\
                    options:remote_ip=1.1.1.1 ofport_request=1 \\
                    -- add-port br0 p2 -- set Interface p2 type=dummy \\
                    ofport_request=2 ofport_request=2 "
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:470"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=geneve \
                    options:remote_ip=1.1.1.1 ofport_request=1 \
                    -- add-port br0 p2 -- set Interface p2 type=dummy \
                    ofport_request=2 ofport_request=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:470"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:474: ovs-appctl dpif/set-dp-features br0 tnl_push_pop false"
at_fn_check_prepare_trace "tunnel.at:474"
( $at_check_trace; ovs-appctl dpif/set-dp-features br0 tnl_push_pop false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:474"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/tunnel.at:476: ovs-ofctl add-tlv-map br0 \"{class=0xffff,type=0,len=4}->tun_metadata0,{class=0xffff,type=1,len=8}->tun_metadata1\""
at_fn_check_prepare_trace "tunnel.at:476"
( $at_check_trace; ovs-ofctl add-tlv-map br0 "{class=0xffff,type=0,len=4}->tun_metadata0,{class=0xffff,type=1,len=8}->tun_metadata1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:476"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
in_port=2,actions=set_field:0xa->tun_metadata0,set_field:0x1234567890abcdef->tun_metadata1,1
tun_metadata0=0xb/0xf,actions=2
_ATEOF

{ set +x
$as_echo "$at_srcdir/tunnel.at:482: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "tunnel.at:482"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:482"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:485: ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "tunnel.at:485"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:485"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:486: tail -1 stdout"
at_fn_check_prepare_trace "tunnel.at:486"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: set(tunnel(dst=1.1.1.1,ttl=64,tp_dst=6081,geneve({class=0xffff,type=0,len=4,0xa}{class=0xffff,type=0x1,len=8,0x1234567890abcdef}),flags(df))),6081
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:486"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:491: ovs-appctl ofproto/trace ovs-dummy 'recirc_id(0),tunnel(tun_id=0x0,src=1.1.1.1,dst=1.1.1.2,ttl=64,geneve({class=0xffff,type=0,len=4,0xb}),flags(df|key)),in_port(6081),skb_mark(0),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(frag=no)'"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel.at:491"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'recirc_id(0),tunnel(tun_id=0x0,src=1.1.1.1,dst=1.1.1.2,ttl=64,geneve({class=0xffff,type=0,len=4,0xb}),flags(df|key)),in_port(6081),skb_mark(0),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(frag=no)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:491"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:492: tail -2 stdout"
at_fn_check_prepare_trace "tunnel.at:492"
( $at_check_trace; tail -2 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Megaflow: recirc_id=0,eth,ip,tun_id=0,tun_src=1.1.1.1,tun_dst=1.1.1.2,tun_tos=0,tun_flags=+df-csum+key,tun_metadata0=0xb/0xf,in_port=1,nw_frag=no
Datapath actions: 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:492"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:498: ovs-appctl ofproto/trace ovs-dummy 'recirc_id(0),tunnel(tun_id=0x0,src=1.1.1.1,dst=1.1.1.2,ttl=64,geneve({class=0xffff,type=0,len=4,0xb}{class=0xffff,type=2,len=4,0xc}),flags(df|key)),in_port(6081),skb_mark(0),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(frag=no)'"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel.at:498"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'recirc_id(0),tunnel(tun_id=0x0,src=1.1.1.1,dst=1.1.1.2,ttl=64,geneve({class=0xffff,type=0,len=4,0xb}{class=0xffff,type=2,len=4,0xc}),flags(df|key)),in_port(6081),skb_mark(0),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(frag=no)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:498"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:499: tail -2 stdout"
at_fn_check_prepare_trace "tunnel.at:499"
( $at_check_trace; tail -2 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Megaflow: recirc_id=0,eth,ip,tun_id=0,tun_src=1.1.1.1,tun_dst=1.1.1.2,tun_tos=0,tun_flags=+df-csum+key,tun_metadata0=0xb/0xf,in_port=1,nw_frag=no
Datapath actions: 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:499"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:505: ovs-ofctl del-flows br0"
at_fn_check_prepare_trace "tunnel.at:505"
( $at_check_trace; ovs-ofctl del-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:505"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:506: ovs-ofctl add-tlv-map br0 \"{class=0xffff,type=2,len=124}->tun_metadata2,{class=0xffff,type=3,len=124}->tun_metadata3\""
at_fn_check_prepare_trace "tunnel.at:506"
( $at_check_trace; ovs-ofctl add-tlv-map br0 "{class=0xffff,type=2,len=124}->tun_metadata2,{class=0xffff,type=3,len=124}->tun_metadata3"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "OFPT_ERROR (xid=0x4): NXTTMFC_TABLE_FULL
NXT_TLV_TABLE_MOD (xid=0x4):
 ADD mapping table:
 class	type	length	match field
 -----	----	------	-----------
 0xffff	0x2	124	tun_metadata2
 0xffff	0x3	124	tun_metadata3
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/tunnel.at:506"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:516: ovs-ofctl add-flow br0 \"tun_metadata0,tun_metadata0,actions=drop\""
at_fn_check_prepare_trace "tunnel.at:516"
( $at_check_trace; ovs-ofctl add-flow br0 "tun_metadata0,tun_metadata0,actions=drop"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: field tun_metadata0 set multiple times
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/tunnel.at:516"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:520: ovs-ofctl add-flow br0 \"tun_metadata0=0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef,tun_metadata1=0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef,tun_metadata2=0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef,tun_metadata3=0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef,tun_metadata4=0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef,actions=drop\""
at_fn_check_prepare_trace "tunnel.at:520"
( $at_check_trace; ovs-ofctl add-flow br0 "tun_metadata0=0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef,tun_metadata1=0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef,tun_metadata2=0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef,tun_metadata3=0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef,tun_metadata4=0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef,actions=drop"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: field tun_metadata4 exceeds maximum size for tunnel metadata (used 320, max 256)
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/tunnel.at:520"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:525: ovs-ofctl add-tlv-map br0 \"{class=0xffff,type=2,len=124}->tun_metadata2\""
at_fn_check_prepare_trace "tunnel.at:525"
( $at_check_trace; ovs-ofctl add-tlv-map br0 "{class=0xffff,type=2,len=124}->tun_metadata2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:525"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:526: ovs-ofctl add-tlv-map br0 \"{class=0xffff,type=3,len=4}->tun_metadata3\""
at_fn_check_prepare_trace "tunnel.at:526"
( $at_check_trace; ovs-ofctl add-tlv-map br0 "{class=0xffff,type=3,len=4}->tun_metadata3"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:526"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:527: ovs-ofctl add-tlv-map br0 \"{class=0xffff,type=4,len=112}->tun_metadata4\""
at_fn_check_prepare_trace "tunnel.at:527"
( $at_check_trace; ovs-ofctl add-tlv-map br0 "{class=0xffff,type=4,len=112}->tun_metadata4"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:527"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:528: ovs-ofctl del-tlv-map br0 \"{class=0xffff,type=3,len=4}->tun_metadata3\""
at_fn_check_prepare_trace "tunnel.at:528"
( $at_check_trace; ovs-ofctl del-tlv-map br0 "{class=0xffff,type=3,len=4}->tun_metadata3"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:528"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:529: ovs-ofctl add-tlv-map br0 \"{class=0xffff,type=3,len=8}->tun_metadata3\""
at_fn_check_prepare_trace "tunnel.at:529"
( $at_check_trace; ovs-ofctl add-tlv-map br0 "{class=0xffff,type=3,len=8}->tun_metadata3"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:529"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:531: ovs-ofctl add-flow br0 tun_metadata3=0x1234567890abcdef,actions=2"
at_fn_check_prepare_trace "tunnel.at:531"
( $at_check_trace; ovs-ofctl add-flow br0 tun_metadata3=0x1234567890abcdef,actions=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:531"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:532: ovs-appctl ofproto/trace ovs-dummy 'recirc_id(0),tunnel(tun_id=0x0,src=1.1.1.1,dst=1.1.1.2,ttl=64,geneve({class=0xffff,type=3,len=8,0x1234567890abcdef}),flags(df|key)),in_port(6081),skb_mark(0),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(frag=no)'"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel.at:532"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'recirc_id(0),tunnel(tun_id=0x0,src=1.1.1.1,dst=1.1.1.2,ttl=64,geneve({class=0xffff,type=3,len=8,0x1234567890abcdef}),flags(df|key)),in_port(6081),skb_mark(0),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(frag=no)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:532"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:533: tail -2 stdout"
at_fn_check_prepare_trace "tunnel.at:533"
( $at_check_trace; tail -2 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Megaflow: recirc_id=0,eth,ip,tun_id=0,tun_src=1.1.1.1,tun_dst=1.1.1.2,tun_tos=0,tun_flags=+df-csum+key,tun_metadata3=0x1234567890abcdef,in_port=1,nw_frag=no
Datapath actions: 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:533"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:538: ovs-ofctl dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel.at:538"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW reply:
 tun_metadata3=0x1234567890abcdef actions=output:2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:538"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:545: ovs-ofctl del-tlv-map br0"
at_fn_check_prepare_trace "tunnel.at:545"
( $at_check_trace; ovs-ofctl del-tlv-map br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "OFPT_ERROR (xid=0x4): NXTTMFC_INVALID_TLV_DEL
NXT_TLV_TABLE_MOD (xid=0x4):
 CLEAR
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/tunnel.at:545"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:551: ovs-ofctl del-flows br0"
at_fn_check_prepare_trace "tunnel.at:551"
( $at_check_trace; ovs-ofctl del-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:551"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:552: ovs-ofctl del-tlv-map br0"
at_fn_check_prepare_trace "tunnel.at:552"
( $at_check_trace; ovs-ofctl del-tlv-map br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:552"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:555: ovs-ofctl add-tlv-map br0 \"{class=0xffff,type=1,len=4}->tun_metadata0\""
at_fn_check_prepare_trace "tunnel.at:555"
( $at_check_trace; ovs-ofctl add-tlv-map br0 "{class=0xffff,type=1,len=4}->tun_metadata0"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:555"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:556: ovs-ofctl add-tlv-map br0 \"{class=0xffff,type=2,len=4}->tun_metadata1\""
at_fn_check_prepare_trace "tunnel.at:556"
( $at_check_trace; ovs-ofctl add-tlv-map br0 "{class=0xffff,type=2,len=4}->tun_metadata1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:556"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:557: ovs-ofctl add-tlv-map br0 \"{class=0xffff,type=3,len=4}->tun_metadata2\""
at_fn_check_prepare_trace "tunnel.at:557"
( $at_check_trace; ovs-ofctl add-tlv-map br0 "{class=0xffff,type=3,len=4}->tun_metadata2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:557"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:559: ovs-ofctl add-flow br0 \"in_port=1 actions=multipath(eth_src,50,modulo_n,1,0,tun_metadata0[0..31])\""
at_fn_check_prepare_trace "tunnel.at:559"
( $at_check_trace; ovs-ofctl add-flow br0 "in_port=1 actions=multipath(eth_src,50,modulo_n,1,0,tun_metadata0[0..31])"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:559"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:560: ovs-ofctl add-flow br0 \"in_port=2 actions=push:tun_metadata1[0..31],clone(move:tun_metadata2[0..31]->reg0[0..31])\""
at_fn_check_prepare_trace "tunnel.at:560"
( $at_check_trace; ovs-ofctl add-flow br0 "in_port=2 actions=push:tun_metadata1[0..31],clone(move:tun_metadata2[0..31]->reg0[0..31])"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:560"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:562: ovs-ofctl add-flow br0 \"in_port=1 actions=output:4\""
at_fn_check_prepare_trace "tunnel.at:562"
( $at_check_trace; ovs-ofctl add-flow br0 "in_port=1 actions=output:4"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:562"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:563: ovs-ofctl del-tlv-map br0 \"{class=0xffff,type=3,len=4}->tun_metadata0\""
at_fn_check_prepare_trace "tunnel.at:563"
( $at_check_trace; ovs-ofctl del-tlv-map br0 "{class=0xffff,type=3,len=4}->tun_metadata0"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:563"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:565: ovs-ofctl add-flow br0 \"in_port=2 actions=push:tun_metadata2[0..31]\""
at_fn_check_prepare_trace "tunnel.at:565"
( $at_check_trace; ovs-ofctl add-flow br0 "in_port=2 actions=push:tun_metadata2[0..31]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:565"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:566: ovs-ofctl del-tlv-map br0 \"{class=0xffff,type=2,len=4}->tun_metadata1\""
at_fn_check_prepare_trace "tunnel.at:566"
( $at_check_trace; ovs-ofctl del-tlv-map br0 "{class=0xffff,type=2,len=4}->tun_metadata1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:566"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:567: ovs-ofctl del-tlv-map br0 \"{class=0xffff,type=3,len=4}->tun_metadata2\""
at_fn_check_prepare_trace "tunnel.at:567"
( $at_check_trace; ovs-ofctl del-tlv-map br0 "{class=0xffff,type=3,len=4}->tun_metadata2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "OFPT_ERROR (xid=0x4): NXTTMFC_INVALID_TLV_DEL
NXT_TLV_TABLE_MOD (xid=0x4):
 DEL mapping table:
 class	type	length	match field
 -----	----	------	-----------
 0xffff	0x3	4	tun_metadata2
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/tunnel.at:567"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:576: ovs-ofctl del-flows br0"
at_fn_check_prepare_trace "tunnel.at:576"
( $at_check_trace; ovs-ofctl del-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:576"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:577: ovs-ofctl del-tlv-map br0"
at_fn_check_prepare_trace "tunnel.at:577"
( $at_check_trace; ovs-ofctl del-tlv-map br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:577"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:580: ovs-ofctl add-tlv-map br0 \"{class=0xffff,type=1,len=4}->tun_metadata1\""
at_fn_check_prepare_trace "tunnel.at:580"
( $at_check_trace; ovs-ofctl add-tlv-map br0 "{class=0xffff,type=1,len=4}->tun_metadata1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:580"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:581: ovs-ofctl add-tlv-map br0 \"{class=0xffff,type=2,len=4}->tun_metadata2\""
at_fn_check_prepare_trace "tunnel.at:581"
( $at_check_trace; ovs-ofctl add-tlv-map br0 "{class=0xffff,type=2,len=4}->tun_metadata2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:581"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:582: ovs-ofctl add-flow br0 \"in_port=2, eth_src=00:00:00:00:00:01 actions=learn(tun_metadata1[0..31]=reg1, output:NXM_OF_IN_PORT[])\""
at_fn_check_prepare_trace "tunnel.at:582"
( $at_check_trace; ovs-ofctl add-flow br0 "in_port=2, eth_src=00:00:00:00:00:01 actions=learn(tun_metadata1[0..31]=reg1, output:NXM_OF_IN_PORT[])"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:582"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:583: ovs-ofctl add-flow br0 \"in_port=2, eth_src=00:00:00:00:00:02 actions=learn(reg1[0..31]=0xFF, load:reg1[0..31]->tun_metadata2[0..31])\""
at_fn_check_prepare_trace "tunnel.at:583"
( $at_check_trace; ovs-ofctl add-flow br0 "in_port=2, eth_src=00:00:00:00:00:02 actions=learn(reg1[0..31]=0xFF, load:reg1[0..31]->tun_metadata2[0..31])"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:583"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

flow1="in_port(2),eth(src=00:00:00:00:00:01,dst=ff:ff:ff:ff:ff:ff),eth_type(0x0800)"
flow2="in_port(2),eth(src=00:00:00:00:00:02,dst=ff:ff:ff:ff:ff:ff),eth_type(0x0800)"
{ set +x
$as_echo "$at_srcdir/tunnel.at:586: ovs-appctl ofproto/trace ovs-dummy \"\$flow1\" -generate"
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow1\" -generate" "tunnel.at:586"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow1" -generate
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:586"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:587: ovs-appctl ofproto/trace ovs-dummy \"\$flow2\" -generate"
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow2\" -generate" "tunnel.at:587"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow2" -generate
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:587"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:590: ovs-ofctl del-flows br0 \"in_port=2\""
at_fn_check_prepare_trace "tunnel.at:590"
( $at_check_trace; ovs-ofctl del-flows br0 "in_port=2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:590"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:592: ovs-ofctl del-tlv-map br0 \"{class=0xffff,type=1,len=4}->tun_metadata1\""
at_fn_check_prepare_trace "tunnel.at:592"
( $at_check_trace; ovs-ofctl del-tlv-map br0 "{class=0xffff,type=1,len=4}->tun_metadata1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "OFPT_ERROR (xid=0x4): NXTTMFC_INVALID_TLV_DEL
NXT_TLV_TABLE_MOD (xid=0x4):
 DEL mapping table:
 class	type	length	match field
 -----	----	------	-----------
 0xffff	0x1	4	tun_metadata1
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/tunnel.at:592"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:600: ovs-ofctl del-flows br0 \"tun_metadata1\""
at_fn_check_prepare_trace "tunnel.at:600"
( $at_check_trace; ovs-ofctl del-flows br0 "tun_metadata1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:600"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:601: ovs-ofctl del-tlv-map br0 \"{class=0xffff,type=1,len=4}->tun_metadata1\""
at_fn_check_prepare_trace "tunnel.at:601"
( $at_check_trace; ovs-ofctl del-tlv-map br0 "{class=0xffff,type=1,len=4}->tun_metadata1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:601"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:603: ovs-ofctl del-tlv-map br0 \"{class=0xffff,type=2,len=4}->tun_metadata2\""
at_fn_check_prepare_trace "tunnel.at:603"
( $at_check_trace; ovs-ofctl del-tlv-map br0 "{class=0xffff,type=2,len=4}->tun_metadata2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "OFPT_ERROR (xid=0x4): NXTTMFC_INVALID_TLV_DEL
NXT_TLV_TABLE_MOD (xid=0x4):
 DEL mapping table:
 class	type	length	match field
 -----	----	------	-----------
 0xffff	0x2	4	tun_metadata2
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/tunnel.at:603"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:611: ovs-ofctl del-flows br0 \"reg1=0xFF\""
at_fn_check_prepare_trace "tunnel.at:611"
( $at_check_trace; ovs-ofctl del-flows br0 "reg1=0xFF"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:611"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:612: ovs-ofctl del-tlv-map br0"
at_fn_check_prepare_trace "tunnel.at:612"
( $at_check_trace; ovs-ofctl del-tlv-map br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:612"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:614: check_logs "
at_fn_check_prepare_trace "tunnel.at:614"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:614"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/tunnel.at:614: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "tunnel.at:614"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:614"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:614: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "tunnel.at:614"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:614"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:614: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:614: wait failed" >&5

    $as_echo "tunnel.at:614" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:614"
fi

   { set +x
$as_echo "$at_srcdir/tunnel.at:614: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "tunnel.at:614"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:614"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:614: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "tunnel.at:614"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:614"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:614: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:614: wait failed" >&5

    $as_echo "tunnel.at:614" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:614"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_786
#AT_START_787
at_fn_group_banner 787 'tunnel.at:617' \
  "tunnel - Geneve option present" "                 " 44
at_xfail=no
(
  $as_echo "787. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/tunnel.at:618: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "tunnel.at:618"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:618"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:618: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "tunnel.at:618"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:618"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:618: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:618"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:618"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/tunnel.at:618: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "tunnel.at:618"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:618"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:618: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "tunnel.at:618"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:618"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:618: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:618"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:618"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/tunnel.at:618: add_of_br 0 add-port br0 p1 -- set Interface p1 type=geneve \\
                    options:remote_ip=1.1.1.1 ofport_request=1 \\
                    -- add-port br0 p2 -- set Interface p2 type=dummy \\
                    ofport_request=2 ofport_request=2 "
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:618"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=geneve \
                    options:remote_ip=1.1.1.1 ofport_request=1 \
                    -- add-port br0 p2 -- set Interface p2 type=dummy \
                    ofport_request=2 ofport_request=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:618"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:622: ovs-appctl dpif/set-dp-features br0 tnl_push_pop false"
at_fn_check_prepare_trace "tunnel.at:622"
( $at_check_trace; ovs-appctl dpif/set-dp-features br0 tnl_push_pop false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:622"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/tunnel.at:624: ovs-ofctl add-tlv-map br0 \"{class=0xffff,type=0,len=4}->tun_metadata0,{class=0xffff,type=1,len=0}->tun_metadata1,{class=0xffff,type=2,len=4}->tun_metadata2\""
at_fn_check_prepare_trace "tunnel.at:624"
( $at_check_trace; ovs-ofctl add-tlv-map br0 "{class=0xffff,type=0,len=4}->tun_metadata0,{class=0xffff,type=1,len=0}->tun_metadata1,{class=0xffff,type=2,len=4}->tun_metadata2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:624"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
priority=1,tun_metadata0,actions=2
priority=2,tun_metadata1=0,actions=IN_PORT
priority=3,tun_metadata2=0,actions=drop
_ATEOF

{ set +x
$as_echo "$at_srcdir/tunnel.at:631: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "tunnel.at:631"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:631"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:633: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel.at:633"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " priority=1,tun_metadata0 actions=output:2
 priority=2,tun_metadata1 actions=IN_PORT
 priority=3,tun_metadata2=0 actions=drop
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:633"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:641: ovs-appctl ofproto/trace ovs-dummy 'recirc_id(0),tunnel(tun_id=0x0,src=1.1.1.1,dst=1.1.1.2,ttl=64,geneve({class=0xffff,type=0,len=4,0x12345678}),flags(df|key)),in_port(6081),skb_mark(0),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(frag=no)'"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel.at:641"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'recirc_id(0),tunnel(tun_id=0x0,src=1.1.1.1,dst=1.1.1.2,ttl=64,geneve({class=0xffff,type=0,len=4,0x12345678}),flags(df|key)),in_port(6081),skb_mark(0),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(frag=no)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:641"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:642: tail -2 stdout"
at_fn_check_prepare_trace "tunnel.at:642"
( $at_check_trace; tail -2 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Megaflow: recirc_id=0,eth,ip,tun_id=0,tun_src=1.1.1.1,tun_dst=1.1.1.2,tun_tos=0,tun_flags=+df-csum+key,tun_metadata0,tun_metadata1=NP,tun_metadata2=NP,in_port=1,nw_frag=no
Datapath actions: 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:642"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:647: ovs-appctl ofproto/trace ovs-dummy 'recirc_id(0),tunnel(tun_id=0x0,src=1.1.1.1,dst=1.1.1.2,ttl=64,geneve({class=0xffff,type=1,len=0}),flags(df|key)),in_port(6081),skb_mark(0),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(frag=no)'"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel.at:647"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'recirc_id(0),tunnel(tun_id=0x0,src=1.1.1.1,dst=1.1.1.2,ttl=64,geneve({class=0xffff,type=1,len=0}),flags(df|key)),in_port(6081),skb_mark(0),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(frag=no)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:647"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:648: tail -2 stdout"
at_fn_check_prepare_trace "tunnel.at:648"
( $at_check_trace; tail -2 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Megaflow: recirc_id=0,eth,ip,tun_id=0,tun_src=1.1.1.1,tun_dst=1.1.1.2,tun_tos=0,tun_flags=+df-csum+key,tun_metadata1,tun_metadata2=NP,in_port=1,nw_ecn=0,nw_frag=no
Datapath actions: set(tunnel(dst=1.1.1.1,ttl=64,tp_dst=6081,geneve({class=0xffff,type=0x1,len=0}),flags(df))),6081
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:648"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:653: check_logs "
at_fn_check_prepare_trace "tunnel.at:653"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:653"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/tunnel.at:653: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "tunnel.at:653"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:653"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:653: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "tunnel.at:653"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:653"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:653: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:653: wait failed" >&5

    $as_echo "tunnel.at:653" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:653"
fi

   { set +x
$as_echo "$at_srcdir/tunnel.at:653: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "tunnel.at:653"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:653"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:653: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "tunnel.at:653"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:653"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:653: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:653: wait failed" >&5

    $as_echo "tunnel.at:653" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:653"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_787
#AT_START_788
at_fn_group_banner 788 'tunnel.at:656' \
  "tunnel - concomitant IPv6 and IPv4 tunnels" "     " 44
at_xfail=no
(
  $as_echo "788. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/tunnel.at:657: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "tunnel.at:657"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:657"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:657: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "tunnel.at:657"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:657"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:657: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:657"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:657"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/tunnel.at:657: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "tunnel.at:657"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:657"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:657: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "tunnel.at:657"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:657"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:657: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:657"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:657"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/tunnel.at:657: add_of_br 0 add-port br0 p1 -- set Interface p1 type=vxlan \\
                    options:remote_ip=1.1.1.1 ofport_request=1 \\
                    -- add-port br0 p2 -- set Interface p2 type=vxlan \\
                    options:remote_ip=2001:cafe::1 ofport_request=2 "
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:657"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=vxlan \
                    options:remote_ip=1.1.1.1 ofport_request=1 \
                    -- add-port br0 p2 -- set Interface p2 type=vxlan \
                    options:remote_ip=2001:cafe::1 ofport_request=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:657"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
in_port=1,actions=2
in_port=2,actions=1
_ATEOF

{ set +x
$as_echo "$at_srcdir/tunnel.at:665: ovs-appctl dpif/set-dp-features br0 tnl_push_pop false"
at_fn_check_prepare_trace "tunnel.at:665"
( $at_check_trace; ovs-appctl dpif/set-dp-features br0 tnl_push_pop false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:665"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/tunnel.at:667: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "tunnel.at:667"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:667"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:669: ovs-appctl ofproto/trace ovs-dummy 'tunnel(tun_id=0,src=1.1.1.1,dst=1.1.1.2,ttl=64),in_port(4789)'"
at_fn_check_prepare_trace "tunnel.at:669"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'tunnel(tun_id=0,src=1.1.1.1,dst=1.1.1.2,ttl=64),in_port(4789)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:669"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:670: tail -1 stdout"
at_fn_check_prepare_trace "tunnel.at:670"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: set(tunnel(ipv6_dst=2001:cafe::1,ttl=64,tp_dst=4789,flags(df))),4789
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:670"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:674: ovs-appctl ofproto/trace ovs-dummy 'tunnel(tun_id=0x0,ipv6_src=2001:cafe::1,ipv6_dst=2001:cafe::2,ttl=64),in_port(4789)'"
at_fn_check_prepare_trace "tunnel.at:674"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'tunnel(tun_id=0x0,ipv6_src=2001:cafe::1,ipv6_dst=2001:cafe::2,ttl=64),in_port(4789)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:674"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:675: tail -1 stdout"
at_fn_check_prepare_trace "tunnel.at:675"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: set(tunnel(dst=1.1.1.1,ttl=64,tp_dst=4789,flags(df))),4789
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:675"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/tunnel.at:680: check_logs "
at_fn_check_prepare_trace "tunnel.at:680"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:680"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/tunnel.at:680: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "tunnel.at:680"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:680"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:680: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "tunnel.at:680"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:680"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:680: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:680: wait failed" >&5

    $as_echo "tunnel.at:680" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:680"
fi

   { set +x
$as_echo "$at_srcdir/tunnel.at:680: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "tunnel.at:680"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:680"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:680: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "tunnel.at:680"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:680"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:680: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:680: wait failed" >&5

    $as_echo "tunnel.at:680" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:680"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_788
#AT_START_789
at_fn_group_banner 789 'tunnel.at:683' \
  "tunnel - Mix Geneve/GRE options" "                " 44
at_xfail=no
(
  $as_echo "789. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/tunnel.at:684: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "tunnel.at:684"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:684"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:684: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "tunnel.at:684"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:684"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:684: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:684"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:684"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/tunnel.at:684: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "tunnel.at:684"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:684"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel.at:684: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "tunnel.at:684"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:684"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel.at:684: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:684"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:684"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/tunnel.at:684: add_of_br 0 add-port br0 p1 -- set Interface p1 type=geneve \\
                    options:remote_ip=1.1.1.1 options:csum=true ofport_request=1 \\
                    -- add-port br0 p2 -- set Interface p2 type=dummy \\
                    ofport_request=2 ofport_request=2 \\
                    -- add-port br0 p3 -- set Interface p3 type=gre \\
                    options:remote_ip=2.2.2.2 options:csum=false options:key=123 ofport_request=3 "
at_fn_check_prepare_notrace 'an embedded newline' "tunnel.at:684"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=geneve \
                    options:remote_ip=1.1.1.1 options:csum=true ofport_request=1 \
                    -- add-port br0 p2 -- set Interface p2 type=dummy \
                    ofport_request=2 ofport_request=2 \
                    -- add-port br0 p3 -- set Interface p3 type=gre \
                    options:remote_ip=2.2.2.2 options:csum=false options:key=123 ofport_request=3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:684"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:690: ovs-appctl dpif/set-dp-features br0 tnl_push_pop false"
at_fn_check_prepare_trace "tunnel.at:690"
( $at_check_trace; ovs-appctl dpif/set-dp-features br0 tnl_push_pop false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:690"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



cat >flows.txt <<'_ATEOF'
priority=1,in_port=1,actions=3
_ATEOF

{ set +x
$as_echo "$at_srcdir/tunnel.at:695: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "tunnel.at:695"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:695"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:697: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel.at:697"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " priority=1,in_port=1 actions=output:3
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:697"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:705: ovs-appctl ofproto/trace ovs-dummy 'recirc_id(0),tunnel(tun_id=0x0,src=1.1.1.1,dst=1.1.1.2,ttl=64,geneve({class=0xffff,type=0,len=4,0x12345678}),flags(csum|key)),in_port(6081),skb_mark(0),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(frag=no)'"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel.at:705"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'recirc_id(0),tunnel(tun_id=0x0,src=1.1.1.1,dst=1.1.1.2,ttl=64,geneve({class=0xffff,type=0,len=4,0x12345678}),flags(csum|key)),in_port(6081),skb_mark(0),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(frag=no)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:705"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:706: tail -2 stdout"
at_fn_check_prepare_trace "tunnel.at:706"
( $at_check_trace; tail -2 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Megaflow: recirc_id=0,eth,ip,tun_id=0,tun_src=1.1.1.1,tun_dst=1.1.1.2,tun_tos=0,tun_flags=-df+csum+key,in_port=1,nw_ecn=0,nw_frag=no
Datapath actions: set(tunnel(tun_id=0x7b,dst=2.2.2.2,ttl=64,flags(df|key))),1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:706"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:711: ovs-ofctl add-tlv-map br0 \"{class=0xffff,type=0,len=4}->tun_metadata0\""
at_fn_check_prepare_trace "tunnel.at:711"
( $at_check_trace; ovs-ofctl add-tlv-map br0 "{class=0xffff,type=0,len=4}->tun_metadata0"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:711"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:712: ovs-ofctl del-flows br0"
at_fn_check_prepare_trace "tunnel.at:712"
( $at_check_trace; ovs-ofctl del-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:712"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows2.txt <<'_ATEOF'
priority=1,in_port=1,tun_metadata0=0x123, actions=3
_ATEOF

{ set +x
$as_echo "$at_srcdir/tunnel.at:717: ovs-ofctl add-flows br0 flows2.txt"
at_fn_check_prepare_trace "tunnel.at:717"
( $at_check_trace; ovs-ofctl add-flows br0 flows2.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:717"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel.at:719: ovs-appctl ofproto/trace ovs-dummy 'recirc_id(0),tunnel(tun_id=0x0,src=1.1.1.1,dst=1.1.1.2,ttl=64,geneve({class=0xffff,type=0,len=4,0x123}),flags(csum|key)),in_port(6081),skb_mark(0),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(frag=no)'"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel.at:719"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'recirc_id(0),tunnel(tun_id=0x0,src=1.1.1.1,dst=1.1.1.2,ttl=64,geneve({class=0xffff,type=0,len=4,0x123}),flags(csum|key)),in_port(6081),skb_mark(0),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(frag=no)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:719"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel.at:720: tail -2 stdout"
at_fn_check_prepare_trace "tunnel.at:720"
( $at_check_trace; tail -2 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Megaflow: recirc_id=0,eth,ip,tun_id=0,tun_src=1.1.1.1,tun_dst=1.1.1.2,tun_tos=0,tun_flags=-df+csum+key,tun_metadata0=0x123,in_port=1,nw_ecn=0,nw_frag=no
Datapath actions: set(tunnel(tun_id=0x7b,dst=2.2.2.2,ttl=64,flags(df|key))),1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:720"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/tunnel.at:729: check_logs "
at_fn_check_prepare_trace "tunnel.at:729"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:729"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/tunnel.at:729: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "tunnel.at:729"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:729"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:729: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "tunnel.at:729"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:729"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:729: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:729: wait failed" >&5

    $as_echo "tunnel.at:729" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:729"
fi

   { set +x
$as_echo "$at_srcdir/tunnel.at:729: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "tunnel.at:729"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:729"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/tunnel.at:729: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "tunnel.at:729"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel.at:729"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel.at:729: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel.at:729: wait failed" >&5

    $as_echo "tunnel.at:729" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel.at:729"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_789
#AT_START_790
at_fn_group_banner 790 'tunnel-push-pop.at:3' \
  "tunnel_push_pop - action" "                       " 45
at_xfail=no
(
  $as_echo "790. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:5: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "tunnel-push-pop.at:5"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:5"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:5: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "tunnel-push-pop.at:5"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:5"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:5: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel-push-pop.at:5"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:5"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:5: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "tunnel-push-pop.at:5"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:5"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:5: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "tunnel-push-pop.at:5"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:5"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:5: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel-push-pop.at:5"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:5"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:5: add_of_br 0 add-port br0 p0 -- set Interface p0 type=dummy ofport_request=1 other-config:hwaddr=aa:55:aa:55:00:00 "
at_fn_check_prepare_trace "tunnel-push-pop.at:5"
( $at_check_trace; add_of_br 0 add-port br0 p0 -- set Interface p0 type=dummy ofport_request=1 other-config:hwaddr=aa:55:aa:55:00:00
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:5"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:6: ovs-vsctl add-br int-br -- set bridge int-br datapath_type=dummy"
at_fn_check_prepare_trace "tunnel-push-pop.at:6"
( $at_check_trace; ovs-vsctl add-br int-br -- set bridge int-br datapath_type=dummy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:6"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:7: ovs-vsctl add-port int-br t2 -- set Interface t2 type=vxlan \\
                       options:remote_ip=1.1.2.92 options:key=123 ofport_request=2\\
                    -- add-port int-br t1 -- set Interface t1 type=gre \\
                       options:remote_ip=1.1.2.92 options:key=456 ofport_request=3\\
                    -- add-port int-br t3 -- set Interface t3 type=vxlan \\
                       options:remote_ip=1.1.2.93 options:out_key=flow options:csum=true ofport_request=4\\
                    -- add-port int-br t4 -- set Interface t4 type=geneve \\
                       options:remote_ip=flow options:key=123 ofport_request=5\\
                    -- add-port int-br t5 -- set Interface t5 type=geneve \\
                       options:remote_ip=1.1.2.93 options:out_key=flow options:egress_pkt_mark=1234 ofport_request=6\\
                    -- add-port int-br t6 -- set Interface t6 type=gre \\
                       options:remote_ip=1.1.2.92 options:key=456 options:packet_type=legacy_l3 ofport_request=7\\
                    -- add-port int-br t7 -- set Interface t7 type=vxlan \\
                       options:remote_ip=1.1.2.92 options:key=345 options:exts=gpe ofport_request=8\\
                       "
at_fn_check_prepare_notrace 'an embedded newline' "tunnel-push-pop.at:7"
( $at_check_trace; ovs-vsctl add-port int-br t2 -- set Interface t2 type=vxlan \
                       options:remote_ip=1.1.2.92 options:key=123 ofport_request=2\
                    -- add-port int-br t1 -- set Interface t1 type=gre \
                       options:remote_ip=1.1.2.92 options:key=456 ofport_request=3\
                    -- add-port int-br t3 -- set Interface t3 type=vxlan \
                       options:remote_ip=1.1.2.93 options:out_key=flow options:csum=true ofport_request=4\
                    -- add-port int-br t4 -- set Interface t4 type=geneve \
                       options:remote_ip=flow options:key=123 ofport_request=5\
                    -- add-port int-br t5 -- set Interface t5 type=geneve \
                       options:remote_ip=1.1.2.93 options:out_key=flow options:egress_pkt_mark=1234 ofport_request=6\
                    -- add-port int-br t6 -- set Interface t6 type=gre \
                       options:remote_ip=1.1.2.92 options:key=456 options:packet_type=legacy_l3 ofport_request=7\
                    -- add-port int-br t7 -- set Interface t7 type=vxlan \
                       options:remote_ip=1.1.2.92 options:key=345 options:exts=gpe ofport_request=8\

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:7"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:23: ovs-appctl dpif/show"
at_fn_check_prepare_trace "tunnel-push-pop.at:23"
( $at_check_trace; ovs-appctl dpif/show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dummy@ovs-dummy: hit:0 missed:0
	br0:
		br0 65534/100: (dummy-internal)
		p0 1/1: (dummy)
	int-br:
		int-br 65534/2: (dummy-internal)
		t1 3/3: (gre: key=456, remote_ip=1.1.2.92)
		t2 2/4789: (vxlan: key=123, remote_ip=1.1.2.92)
		t3 4/4789: (vxlan: csum=true, out_key=flow, remote_ip=1.1.2.93)
		t4 5/6081: (geneve: key=123, remote_ip=flow)
		t5 6/6081: (geneve: egress_pkt_mark=1234, out_key=flow, remote_ip=1.1.2.93)
		t6 7/3: (gre: key=456, packet_type=legacy_l3, remote_ip=1.1.2.92)
		t7 8/4789: (vxlan: key=345, remote_ip=1.1.2.92)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:23"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:41: ovs-appctl netdev-dummy/ip4addr br0 1.1.2.88/24"
at_fn_check_prepare_trace "tunnel-push-pop.at:41"
( $at_check_trace; ovs-appctl netdev-dummy/ip4addr br0 1.1.2.88/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:41"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:43: ovs-appctl netdev-dummy/ip6addr br0 2001:cafe::88/24"
at_fn_check_prepare_trace "tunnel-push-pop.at:43"
( $at_check_trace; ovs-appctl netdev-dummy/ip6addr br0 2001:cafe::88/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:43"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:46: ovs-appctl ovs/route/add 1.1.2.92/24 br0"
at_fn_check_prepare_trace "tunnel-push-pop.at:46"
( $at_check_trace; ovs-appctl ovs/route/add 1.1.2.92/24 br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:46"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:49: ovs-appctl ovs/route/add 1.1.2.92/24 br0 pkt_mark=1234"
at_fn_check_prepare_trace "tunnel-push-pop.at:49"
( $at_check_trace; ovs-appctl ovs/route/add 1.1.2.92/24 br0 pkt_mark=1234
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:49"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:52: ovs-ofctl add-flow br0 action=normal"
at_fn_check_prepare_trace "tunnel-push-pop.at:52"
( $at_check_trace; ovs-ofctl add-flow br0 action=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:52"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:55: ovs-vsctl -- set Interface p0 options:pcap=p0.pcap"
at_fn_check_prepare_trace "tunnel-push-pop.at:55"
( $at_check_trace; ovs-vsctl -- set Interface p0 options:pcap=p0.pcap
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:55"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:57: ovs-appctl netdev-dummy/receive int-br 'in_port(2),eth(src=aa:55:aa:55:00:00,dst=f8:bc:12:ff:ff:ff),eth_type(0x0800),ipv4(src=1.1.3.92,dst=1.1.3.88,proto=1,tos=0,ttl=64,frag=no),icmp(type=0,code=0)'"
at_fn_check_prepare_trace "tunnel-push-pop.at:57"
( $at_check_trace; ovs-appctl netdev-dummy/receive int-br 'in_port(2),eth(src=aa:55:aa:55:00:00,dst=f8:bc:12:ff:ff:ff),eth_type(0x0800),ipv4(src=1.1.3.92,dst=1.1.3.88,proto=1,tos=0,ttl=64,frag=no),icmp(type=0,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:57"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


$as_echo "tunnel-push-pop.at:61: waiting until test \`ovs-pcap p0.pcap | sort | uniq | wc -l\` -ge 2..." >&5
ovs_wait_cond () {
    test `ovs-pcap p0.pcap | sort | uniq | wc -l` -ge 2
}
if ovs_wait; then :
else
    $as_echo "tunnel-push-pop.at:61: wait failed" >&5

    $as_echo "tunnel-push-pop.at:61" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel-push-pop.at:61"
fi


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:63: ovs-pcap p0.pcap > p0.pcap.txt 2>&1"
at_fn_check_prepare_trace "tunnel-push-pop.at:63"
( $at_check_trace; ovs-pcap p0.pcap > p0.pcap.txt 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:63"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:65: cat p0.pcap.txt | grep 101025c | uniq"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel-push-pop.at:65"
( $at_check_trace; cat p0.pcap.txt | grep 101025c | uniq
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ffffffffffffaa55aa55000008060001080006040001aa55aa550000010102580000000000000101025c
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:65"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:68: cat p0.pcap.txt | grep 101025d | uniq"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel-push-pop.at:68"
( $at_check_trace; cat p0.pcap.txt | grep 101025d | uniq
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ffffffffffffaa55aa55000008060001080006040001aa55aa550000010102580000000000000101025d
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:68"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:73: ovs-appctl netdev-dummy/receive br0 'recirc_id(0),in_port(100),eth(src=f8:bc:12:44:34:b6,dst=ff:ff:ff:ff:ff:ff),eth_type(0x0806),arp(sip=1.1.2.92,tip=1.1.2.88,op=2,sha=f8:bc:12:44:34:b6,tha=00:00:00:00:00:00)'"
at_fn_check_prepare_trace "tunnel-push-pop.at:73"
( $at_check_trace; ovs-appctl netdev-dummy/receive br0 'recirc_id(0),in_port(100),eth(src=f8:bc:12:44:34:b6,dst=ff:ff:ff:ff:ff:ff),eth_type(0x0806),arp(sip=1.1.2.92,tip=1.1.2.88,op=2,sha=f8:bc:12:44:34:b6,tha=00:00:00:00:00:00)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:73"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:74: ovs-appctl netdev-dummy/receive br0 'recirc_id(0),in_port(100),eth(src=f8:bc:12:44:34:b7,dst=ff:ff:ff:ff:ff:ff),eth_type(0x0806),arp(sip=1.1.2.93,tip=1.1.2.88,op=2,sha=f8:bc:12:44:34:b7,tha=00:00:00:00:00:00)'"
at_fn_check_prepare_trace "tunnel-push-pop.at:74"
( $at_check_trace; ovs-appctl netdev-dummy/receive br0 'recirc_id(0),in_port(100),eth(src=f8:bc:12:44:34:b7,dst=ff:ff:ff:ff:ff:ff),eth_type(0x0806),arp(sip=1.1.2.93,tip=1.1.2.88,op=2,sha=f8:bc:12:44:34:b7,tha=00:00:00:00:00:00)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:74"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:76: ovs-appctl tnl/neigh/show | tail -n+3 | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel-push-pop.at:76"
( $at_check_trace; ovs-appctl tnl/neigh/show | tail -n+3 | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1.1.2.92                                      f8:bc:12:44:34:b6   br0
1.1.2.93                                      f8:bc:12:44:34:b7   br0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:76"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:81: ovs-appctl tnl/ports/show |sort"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel-push-pop.at:81"
( $at_check_trace; ovs-appctl tnl/ports/show |sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Listening ports:
genev_sys_6081 (6081) ref_cnt=2
gre_sys (3) ref_cnt=2
vxlan_sys_4789 (4789) ref_cnt=3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:81"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:89: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:00),eth_type(0x0800),ipv4(src=1.1.2.92,dst=1.1.2.88,proto=17,tos=0,ttl=64,frag=no),udp(src=51283,dst=4789)'"
at_fn_check_prepare_trace "tunnel-push-pop.at:89"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:00),eth_type(0x0800),ipv4(src=1.1.2.92,dst=1.1.2.88,proto=17,tos=0,ttl=64,frag=no),udp(src=51283,dst=4789)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:89"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:90: tail -1 stdout"
at_fn_check_prepare_trace "tunnel-push-pop.at:90"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: tnl_pop(4789)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:90"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:95: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:00),eth_type(0x0800),ipv4(src=1.1.2.92,dst=1.1.2.88,proto=47,tos=0,ttl=64,frag=no)'"
at_fn_check_prepare_trace "tunnel-push-pop.at:95"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:00),eth_type(0x0800),ipv4(src=1.1.2.92,dst=1.1.2.88,proto=47,tos=0,ttl=64,frag=no)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:95"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:96: tail -1 stdout"
at_fn_check_prepare_trace "tunnel-push-pop.at:96"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: tnl_pop(3)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:96"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:101: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:00),eth_type(0x0800),ipv4(src=1.1.2.92,dst=1.1.2.88,proto=17,tos=0,ttl=64,frag=no),udp(src=51283,dst=6081)'"
at_fn_check_prepare_trace "tunnel-push-pop.at:101"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:00),eth_type(0x0800),ipv4(src=1.1.2.92,dst=1.1.2.88,proto=17,tos=0,ttl=64,frag=no),udp(src=51283,dst=6081)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:101"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:102: tail -1 stdout"
at_fn_check_prepare_trace "tunnel-push-pop.at:102"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: tnl_pop(6081)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:102"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:107: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:00),eth_type(0x0800),ipv4(src=1.1.2.96,dst=1.1.2.88,proto=17,tos=0,ttl=64,frag=no),udp(src=51283,dst=6081)'"
at_fn_check_prepare_trace "tunnel-push-pop.at:107"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:00),eth_type(0x0800),ipv4(src=1.1.2.96,dst=1.1.2.88,proto=17,tos=0,ttl=64,frag=no),udp(src=51283,dst=6081)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:108: tail -1 stdout"
at_fn_check_prepare_trace "tunnel-push-pop.at:108"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: tnl_pop(6081)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:108"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:113: ovs-ofctl add-flow int-br action=2"
at_fn_check_prepare_trace "tunnel-push-pop.at:113"
( $at_check_trace; ovs-ofctl add-flow int-br action=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:113"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:114: ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:00),eth_type(0x0800),ipv4(src=1.1.3.88,dst=1.1.3.112,proto=47,tos=0,ttl=64,frag=no)'"
at_fn_check_prepare_trace "tunnel-push-pop.at:114"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:00),eth_type(0x0800),ipv4(src=1.1.3.88,dst=1.1.3.112,proto=47,tos=0,ttl=64,frag=no)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:114"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:115: tail -1 stdout"
at_fn_check_prepare_trace "tunnel-push-pop.at:115"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: tnl_push(tnl_port(4789),header(size=50,type=4,eth(dst=f8:bc:12:44:34:b6,src=aa:55:aa:55:00:00,dl_type=0x0800),ipv4(src=1.1.2.88,dst=1.1.2.92,proto=17,tos=0,ttl=64,frag=0x4000),udp(src=0,dst=4789,csum=0x0),vxlan(flags=0x8000000,vni=0x7b)),out_port(100))
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:115"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:120: ovs-ofctl add-flow int-br action=8"
at_fn_check_prepare_trace "tunnel-push-pop.at:120"
( $at_check_trace; ovs-ofctl add-flow int-br action=8
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:120"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:121: ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:01),eth_type(0x0800),ipv4(src=1.1.3.88,dst=1.1.3.112,proto=47,tos=0,ttl=64,frag=no)'"
at_fn_check_prepare_trace "tunnel-push-pop.at:121"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:01),eth_type(0x0800),ipv4(src=1.1.3.88,dst=1.1.3.112,proto=47,tos=0,ttl=64,frag=no)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:121"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:122: tail -1 stdout"
at_fn_check_prepare_trace "tunnel-push-pop.at:122"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: tnl_push(tnl_port(4789),header(size=50,type=4,eth(dst=f8:bc:12:44:34:b6,src=aa:55:aa:55:00:00,dl_type=0x0800),ipv4(src=1.1.2.88,dst=1.1.2.92,proto=17,tos=0,ttl=64,frag=0x4000),udp(src=0,dst=4789,csum=0x0),vxlan(flags=0xc000003,vni=0x159)),out_port(100))
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:122"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:127: ovs-ofctl add-flow int-br \"actions=set_tunnel:124,4\""
at_fn_check_prepare_trace "tunnel-push-pop.at:127"
( $at_check_trace; ovs-ofctl add-flow int-br "actions=set_tunnel:124,4"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:127"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:128: ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:00),eth_type(0x0800),ipv4(src=1.1.3.88,dst=1.1.3.112,proto=47,tos=0,ttl=64,frag=no)'"
at_fn_check_prepare_trace "tunnel-push-pop.at:128"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:00),eth_type(0x0800),ipv4(src=1.1.3.88,dst=1.1.3.112,proto=47,tos=0,ttl=64,frag=no)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:128"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:129: tail -1 stdout"
at_fn_check_prepare_trace "tunnel-push-pop.at:129"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: tnl_push(tnl_port(4789),header(size=50,type=4,eth(dst=f8:bc:12:44:34:b7,src=aa:55:aa:55:00:00,dl_type=0x0800),ipv4(src=1.1.2.88,dst=1.1.2.93,proto=17,tos=0,ttl=64,frag=0x4000),udp(src=0,dst=4789,csum=0xffff),vxlan(flags=0x8000000,vni=0x7c)),out_port(100))
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:129"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:134: ovs-ofctl add-flow int-br action=3"
at_fn_check_prepare_trace "tunnel-push-pop.at:134"
( $at_check_trace; ovs-ofctl add-flow int-br action=3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:134"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:135: ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:00),eth_type(0x0800),ipv4(src=1.1.3.88,dst=1.1.3.112,proto=47,tos=0,ttl=64,frag=no)'"
at_fn_check_prepare_trace "tunnel-push-pop.at:135"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:00),eth_type(0x0800),ipv4(src=1.1.3.88,dst=1.1.3.112,proto=47,tos=0,ttl=64,frag=no)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:135"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:136: tail -1 stdout"
at_fn_check_prepare_trace "tunnel-push-pop.at:136"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: tnl_push(tnl_port(3),header(size=42,type=3,eth(dst=f8:bc:12:44:34:b6,src=aa:55:aa:55:00:00,dl_type=0x0800),ipv4(src=1.1.2.88,dst=1.1.2.92,proto=47,tos=0,ttl=64,frag=0x4000),gre((flags=0x2000,proto=0x6558),key=0x1c8)),out_port(100))
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:136"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:141: ovs-ofctl add-flow int-br action=7"
at_fn_check_prepare_trace "tunnel-push-pop.at:141"
( $at_check_trace; ovs-ofctl add-flow int-br action=7
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:141"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:142: ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:01),eth_type(0x0800),ipv4(src=1.1.3.88,dst=1.1.3.112,proto=47,tos=0,ttl=64,frag=no)'"
at_fn_check_prepare_trace "tunnel-push-pop.at:142"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:01),eth_type(0x0800),ipv4(src=1.1.3.88,dst=1.1.3.112,proto=47,tos=0,ttl=64,frag=no)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:142"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:143: tail -1 stdout"
at_fn_check_prepare_trace "tunnel-push-pop.at:143"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: pop_eth,tnl_push(tnl_port(3),header(size=42,type=3,eth(dst=f8:bc:12:44:34:b6,src=aa:55:aa:55:00:00,dl_type=0x0800),ipv4(src=1.1.2.88,dst=1.1.2.92,proto=47,tos=0,ttl=64,frag=0x4000),gre((flags=0x2000,proto=0x800),key=0x1c8)),out_port(100))
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:143"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:148: ovs-ofctl add-flow int-br \"actions=set_field:1.1.2.92->tun_dst,5\""
at_fn_check_prepare_trace "tunnel-push-pop.at:148"
( $at_check_trace; ovs-ofctl add-flow int-br "actions=set_field:1.1.2.92->tun_dst,5"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:148"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:149: ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:00),eth_type(0x0800),ipv4(src=1.1.3.88,dst=1.1.3.112,proto=47,tos=0,ttl=64,frag=no)'"
at_fn_check_prepare_trace "tunnel-push-pop.at:149"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:00),eth_type(0x0800),ipv4(src=1.1.3.88,dst=1.1.3.112,proto=47,tos=0,ttl=64,frag=no)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:149"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:150: tail -1 stdout"
at_fn_check_prepare_trace "tunnel-push-pop.at:150"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: tnl_push(tnl_port(6081),header(size=50,type=5,eth(dst=f8:bc:12:44:34:b6,src=aa:55:aa:55:00:00,dl_type=0x0800),ipv4(src=1.1.2.88,dst=1.1.2.92,proto=17,tos=0,ttl=64,frag=0x4000),udp(src=0,dst=6081,csum=0x0),geneve(vni=0x7b)),out_port(100))
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:150"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:155: ovs-ofctl add-flow int-br \"actions=set_tunnel:234,6\""
at_fn_check_prepare_trace "tunnel-push-pop.at:155"
( $at_check_trace; ovs-ofctl add-flow int-br "actions=set_tunnel:234,6"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:155"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:156: ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:00),eth_type(0x0800),ipv4(src=1.1.3.88,dst=1.1.3.112,proto=47,tos=0,ttl=64,frag=no)'"
at_fn_check_prepare_trace "tunnel-push-pop.at:156"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:00),eth_type(0x0800),ipv4(src=1.1.3.88,dst=1.1.3.112,proto=47,tos=0,ttl=64,frag=no)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:156"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:157: tail -1 stdout"
at_fn_check_prepare_trace "tunnel-push-pop.at:157"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: set(skb_mark(0x4d2)),tnl_push(tnl_port(6081),header(size=50,type=5,eth(dst=f8:bc:12:44:34:b7,src=aa:55:aa:55:00:00,dl_type=0x0800),ipv4(src=1.1.2.88,dst=1.1.2.93,proto=17,tos=0,ttl=64,frag=0x4000),udp(src=0,dst=6081,csum=0x0),geneve(vni=0xea)),out_port(100))
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:157"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:162: ovs-ofctl add-tlv-map int-br \"{class=0xffff,type=0x80,len=4}->tun_metadata0\""
at_fn_check_prepare_trace "tunnel-push-pop.at:162"
( $at_check_trace; ovs-ofctl add-tlv-map int-br "{class=0xffff,type=0x80,len=4}->tun_metadata0"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:162"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:163: ovs-ofctl add-flow int-br \"actions=set_field:1.1.2.92->tun_dst,set_field:0xa->tun_metadata0,5\""
at_fn_check_prepare_trace "tunnel-push-pop.at:163"
( $at_check_trace; ovs-ofctl add-flow int-br "actions=set_field:1.1.2.92->tun_dst,set_field:0xa->tun_metadata0,5"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:163"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:164: ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:00),eth_type(0x0800),ipv4(src=1.1.3.88,dst=1.1.3.112,proto=47,tos=0,ttl=64,frag=no)'"
at_fn_check_prepare_trace "tunnel-push-pop.at:164"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:00),eth_type(0x0800),ipv4(src=1.1.3.88,dst=1.1.3.112,proto=47,tos=0,ttl=64,frag=no)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:164"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:165: tail -1 stdout"
at_fn_check_prepare_trace "tunnel-push-pop.at:165"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: tnl_push(tnl_port(6081),header(size=58,type=5,eth(dst=f8:bc:12:44:34:b6,src=aa:55:aa:55:00:00,dl_type=0x0800),ipv4(src=1.1.2.88,dst=1.1.2.92,proto=17,tos=0,ttl=64,frag=0x4000),udp(src=0,dst=6081,csum=0x0),geneve(crit,vni=0x7b,options({class=0xffff,type=0x80,len=4,0xa}))),out_port(100))
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:165"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:170: ovs-appctl netdev-dummy/receive p0 'aa55aa550000001b213cab6408004500007e79464000402fba550101025c0101025820006558000001c8fe71d883724fbeb6f4e1494a080045000054ba200000400184861e0000011e00000200004227e75400030af3195500000000f265010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637'"
at_fn_check_prepare_trace "tunnel-push-pop.at:170"
( $at_check_trace; ovs-appctl netdev-dummy/receive p0 'aa55aa550000001b213cab6408004500007e79464000402fba550101025c0101025820006558000001c8fe71d883724fbeb6f4e1494a080045000054ba200000400184861e0000011e00000200004227e75400030af3195500000000f265010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:170"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:171: ovs-appctl netdev-dummy/receive p0 'aa55aa550000001b213cab6408004500007e79464000402fba550101025c0101025820006558000001c8fe71d883724fbeb6f4e1494a080045000054ba200000400184861e0000011e00000200004227e75400030af3195500000000f265010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637'"
at_fn_check_prepare_trace "tunnel-push-pop.at:171"
( $at_check_trace; ovs-appctl netdev-dummy/receive p0 'aa55aa550000001b213cab6408004500007e79464000402fba550101025c0101025820006558000001c8fe71d883724fbeb6f4e1494a080045000054ba200000400184861e0000011e00000200004227e75400030af3195500000000f265010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:171"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:172: ovs-appctl netdev-dummy/receive p0 'aa55aa550000001b213cab6408004500007e79464000402fba550101025c0101025820006558000001c8fe71d883724fbeb6f4e1494a080045000054ba200000400184861e0000011e00000200004227e75400030af3195500000000f265010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637'"
at_fn_check_prepare_trace "tunnel-push-pop.at:172"
( $at_check_trace; ovs-appctl netdev-dummy/receive p0 'aa55aa550000001b213cab6408004500007e79464000402fba550101025c0101025820006558000001c8fe71d883724fbeb6f4e1494a080045000054ba200000400184861e0000011e00000200004227e75400030af3195500000000f265010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:172"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 1000

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:175: ovs-ofctl dump-ports int-br | grep 'port  3'"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel-push-pop.at:175"
( $at_check_trace; ovs-ofctl dump-ports int-br | grep 'port  3'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "  port  3: rx pkts=3, bytes=294, drop=?, errs=?, frame=?, over=?, crc=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:175"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:180: ovs-appctl netdev-dummy/receive p0 'aa55aa550000001b213cab6408004500007079464000402fba630101025c0101025820000800000001c845000054ba200000400184861e0000011e00000200004227e75400030af3195500000000f265010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637'"
at_fn_check_prepare_trace "tunnel-push-pop.at:180"
( $at_check_trace; ovs-appctl netdev-dummy/receive p0 'aa55aa550000001b213cab6408004500007079464000402fba630101025c0101025820000800000001c845000054ba200000400184861e0000011e00000200004227e75400030af3195500000000f265010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:180"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:181: ovs-appctl netdev-dummy/receive p0 'aa55aa550000001b213cab6408004500007079464000402fba630101025c0101025820000800000001c845000054ba200000400184861e0000011e00000200004227e75400030af3195500000000f265010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637'"
at_fn_check_prepare_trace "tunnel-push-pop.at:181"
( $at_check_trace; ovs-appctl netdev-dummy/receive p0 'aa55aa550000001b213cab6408004500007079464000402fba630101025c0101025820000800000001c845000054ba200000400184861e0000011e00000200004227e75400030af3195500000000f265010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:181"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:182: ovs-appctl netdev-dummy/receive p0 'aa55aa550000001b213cab6408004500007079464000402fba630101025c0101025820000800000001c845000054ba200000400184861e0000011e00000200004227e75400030af3195500000000f265010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637'"
at_fn_check_prepare_trace "tunnel-push-pop.at:182"
( $at_check_trace; ovs-appctl netdev-dummy/receive p0 'aa55aa550000001b213cab6408004500007079464000402fba630101025c0101025820000800000001c845000054ba200000400184861e0000011e00000200004227e75400030af3195500000000f265010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:182"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 1000
ovs-appctl time/warp 1000

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:186: ovs-ofctl dump-ports int-br | grep 'port  7'"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel-push-pop.at:186"
( $at_check_trace; ovs-ofctl dump-ports int-br | grep 'port  7'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "  port  7: rx pkts=3, bytes=252, drop=?, errs=?, frame=?, over=?, crc=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:186"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:191: ovs-appctl netdev-dummy/receive p0 'aa55aa550000001b213cab6408004500007e79464000402fba550101025c0101025820000800000001c8fe71d883724fbeb6f4e1494a080045000054ba200000400184861e0000011e00000200004227e75400030af3195500000000f265010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637'"
at_fn_check_prepare_trace "tunnel-push-pop.at:191"
( $at_check_trace; ovs-appctl netdev-dummy/receive p0 'aa55aa550000001b213cab6408004500007e79464000402fba550101025c0101025820000800000001c8fe71d883724fbeb6f4e1494a080045000054ba200000400184861e0000011e00000200004227e75400030af3195500000000f265010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:193: ovs-ofctl dump-ports int-br | grep 'port  [37]' | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel-push-pop.at:193"
( $at_check_trace; ovs-ofctl dump-ports int-br | grep 'port  [37]' | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "  port  3: rx pkts=3, bytes=294, drop=?, errs=?, frame=?, over=?, crc=?
  port  7: rx pkts=3, bytes=252, drop=?, errs=?, frame=?, over=?, crc=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:193"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:200: ovs-ofctl monitor int-br 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "tunnel-push-pop.at:200"
( $at_check_trace; ovs-ofctl monitor int-br 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:200"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:202: ovs-ofctl del-flows int-br"
at_fn_check_prepare_trace "tunnel-push-pop.at:202"
( $at_check_trace; ovs-ofctl del-flows int-br
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:202"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:203: ovs-ofctl add-flow int-br \"tun_metadata0=0xa/0xf,actions=5,controller\""
at_fn_check_prepare_trace "tunnel-push-pop.at:203"
( $at_check_trace; ovs-ofctl add-flow int-br "tun_metadata0=0xa/0xf,actions=5,controller"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:203"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:204: ovs-appctl netdev-dummy/receive p0 'aa55aa550000001b213cab64080045000096794640004011ba5b0101025c01010258308817c1008200000400655800007b00ffff80010000000affff00010000000bfe71d883724fbeb6f4e1494a080045000054ba200000400184861e0000011e00000200004227e75400030af3195500000000f265010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637'"
at_fn_check_prepare_trace "tunnel-push-pop.at:204"
( $at_check_trace; ovs-appctl netdev-dummy/receive p0 'aa55aa550000001b213cab64080045000096794640004011ba5b0101025c01010258308817c1008200000400655800007b00ffff80010000000affff00010000000bfe71d883724fbeb6f4e1494a080045000054ba200000400184861e0000011e00000200004227e75400030af3195500000000f265010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:204"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


$as_echo "tunnel-push-pop.at:206: waiting until test \`wc -l < ofctl_monitor.log\` -ge 2..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 2
}
if ovs_wait; then :
else
    $as_echo "tunnel-push-pop.at:206: wait failed" >&5

    $as_echo "tunnel-push-pop.at:206" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel-push-pop.at:206"
fi

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:207: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "tunnel-push-pop.at:207"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:207"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:207: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "tunnel-push-pop.at:207"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:207"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "tunnel-push-pop.at:207: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel-push-pop.at:207: wait failed" >&5

    $as_echo "tunnel-push-pop.at:207" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel-push-pop.at:207"
fi


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:209: cat ofctl_monitor.log"
at_fn_check_prepare_trace "tunnel-push-pop.at:209"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN2 (xid=0x0): cookie=0x0 total_len=98 tun_id=0x7b,tun_src=1.1.2.92,tun_dst=1.1.2.88,tun_metadata0=0xa,in_port=5 (via action) data_len=98 (unbuffered)
icmp,vlan_tci=0x0000,dl_src=be:b6:f4:e1:49:4a,dl_dst=fe:71:d8:83:72:4f,nw_src=30.0.0.1,nw_dst=30.0.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,icmp_type=0,icmp_code=0 icmp_csum:4227
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:209"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:214: ovs-ofctl dump-ports int-br | grep 'port  5'"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel-push-pop.at:214"
( $at_check_trace; ovs-ofctl dump-ports int-br | grep 'port  5'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "  port  5: rx pkts=1, bytes=98, drop=?, errs=?, frame=?, over=?, crc=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:214"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:217: ovs-appctl dpif/dump-flows int-br | grep 'in_port(6081)'"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel-push-pop.at:217"
( $at_check_trace; ovs-appctl dpif/dump-flows int-br | grep 'in_port(6081)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "tunnel(tun_id=0x7b,src=1.1.2.92,dst=1.1.2.88,geneve({class=0xffff,type=0x80,len=4,0xa/0xf}{class=0xffff,type=0,len=4}),flags(-df-csum+key)),recirc_id(0),in_port(6081),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), packets:0, bytes:0, used:never, actions:userspace(pid=0,controller(reason=1,dont_send=0,continuation=0,recirc_id=3,rule_cookie=0,controller_id=0,max_len=65535))
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:217"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


ovs-appctl time/warp 10000

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:223: ovs-vsctl del-port int-br t3 \\
                    -- del-port int-br t5 \\
                    -- set Interface t1 type=vxlan \\
                    -- set Interface t2 options:dst_port=4790 \\
                       "
at_fn_check_prepare_notrace 'an embedded newline' "tunnel-push-pop.at:223"
( $at_check_trace; ovs-vsctl del-port int-br t3 \
                    -- del-port int-br t5 \
                    -- set Interface t1 type=vxlan \
                    -- set Interface t2 options:dst_port=4790 \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:223"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:230: ovs-appctl tnl/ports/show |sort"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel-push-pop.at:230"
( $at_check_trace; ovs-appctl tnl/ports/show |sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Listening ports:
genev_sys_6081 (6081) ref_cnt=1
gre_sys (3) ref_cnt=1
vxlan_sys_4789 (4789) ref_cnt=2
vxlan_sys_4790 (4790) ref_cnt=1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:230"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:238: ovs-vsctl del-port int-br t1 \\
                    -- del-port int-br t2 \\
                    -- del-port int-br t4 \\
                    -- del-port int-br t6 \\
                    -- del-port int-br t7 \\
                       "
at_fn_check_prepare_notrace 'an embedded newline' "tunnel-push-pop.at:238"
( $at_check_trace; ovs-vsctl del-port int-br t1 \
                    -- del-port int-br t2 \
                    -- del-port int-br t4 \
                    -- del-port int-br t6 \
                    -- del-port int-br t7 \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:238"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:246: ovs-appctl tnl/ports/show |sort"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel-push-pop.at:246"
( $at_check_trace; ovs-appctl tnl/ports/show |sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Listening ports:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:246"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:250: check_logs "
at_fn_check_prepare_trace "tunnel-push-pop.at:250"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:250"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:250: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "tunnel-push-pop.at:250"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:250"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:250: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "tunnel-push-pop.at:250"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:250"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "tunnel-push-pop.at:250: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel-push-pop.at:250: wait failed" >&5

    $as_echo "tunnel-push-pop.at:250" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel-push-pop.at:250"
fi

   { set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:250: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "tunnel-push-pop.at:250"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:250"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:250: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "tunnel-push-pop.at:250"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:250"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "tunnel-push-pop.at:250: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel-push-pop.at:250: wait failed" >&5

    $as_echo "tunnel-push-pop.at:250" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel-push-pop.at:250"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_790
#AT_START_791
at_fn_group_banner 791 'tunnel-push-pop.at:253' \
  "tunnel_push_pop - packet_out" "                   " 45
at_xfail=no
(
  $as_echo "791. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:255: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "tunnel-push-pop.at:255"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:255"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:255: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "tunnel-push-pop.at:255"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:255"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:255: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel-push-pop.at:255"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:255"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:255: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "tunnel-push-pop.at:255"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:255"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:255: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "tunnel-push-pop.at:255"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:255"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:255: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel-push-pop.at:255"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:255"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:255: add_of_br 0 add-port br0 p0 -- set Interface p0 type=dummy ofport_request=1 other-config:hwaddr=aa:55:aa:55:00:00 "
at_fn_check_prepare_trace "tunnel-push-pop.at:255"
( $at_check_trace; add_of_br 0 add-port br0 p0 -- set Interface p0 type=dummy ofport_request=1 other-config:hwaddr=aa:55:aa:55:00:00
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:255"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:256: ovs-appctl vlog/set dpif_netdev:dbg"
at_fn_check_prepare_trace "tunnel-push-pop.at:256"
( $at_check_trace; ovs-appctl vlog/set dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:256"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:257: ovs-vsctl add-br int-br -- set bridge int-br datapath_type=dummy"
at_fn_check_prepare_trace "tunnel-push-pop.at:257"
( $at_check_trace; ovs-vsctl add-br int-br -- set bridge int-br datapath_type=dummy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:257"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:258: ovs-vsctl add-port int-br t2 -- set Interface t2 type=geneve \\
                       options:remote_ip=1.1.2.92 options:key=123 ofport_request=2 \\
                       "
at_fn_check_prepare_notrace 'an embedded newline' "tunnel-push-pop.at:258"
( $at_check_trace; ovs-vsctl add-port int-br t2 -- set Interface t2 type=geneve \
                       options:remote_ip=1.1.2.92 options:key=123 ofport_request=2 \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:258"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:264: ovs-appctl netdev-dummy/ip4addr br0 1.1.2.88/24"
at_fn_check_prepare_trace "tunnel-push-pop.at:264"
( $at_check_trace; ovs-appctl netdev-dummy/ip4addr br0 1.1.2.88/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:264"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:267: ovs-appctl ovs/route/add 1.1.2.92/24 br0"
at_fn_check_prepare_trace "tunnel-push-pop.at:267"
( $at_check_trace; ovs-appctl ovs/route/add 1.1.2.92/24 br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:267"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:270: ovs-ofctl add-flow br0 action=normal"
at_fn_check_prepare_trace "tunnel-push-pop.at:270"
( $at_check_trace; ovs-ofctl add-flow br0 action=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:270"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:275: ovs-appctl netdev-dummy/receive p0 'recirc_id(0),in_port(2),eth(src=f8:bc:12:44:34:b6,dst=ff:ff:ff:ff:ff:ff),eth_type(0x0806),arp(sip=1.1.2.92,tip=1.1.2.88,op=2,sha=f8:bc:12:44:34:b6,tha=00:00:00:00:00:00)'"
at_fn_check_prepare_trace "tunnel-push-pop.at:275"
( $at_check_trace; ovs-appctl netdev-dummy/receive p0 'recirc_id(0),in_port(2),eth(src=f8:bc:12:44:34:b6,dst=ff:ff:ff:ff:ff:ff),eth_type(0x0806),arp(sip=1.1.2.92,tip=1.1.2.88,op=2,sha=f8:bc:12:44:34:b6,tha=00:00:00:00:00:00)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:275"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:277: ovs-vsctl -- set Interface p0 options:tx_pcap=p0.pcap"
at_fn_check_prepare_trace "tunnel-push-pop.at:277"
( $at_check_trace; ovs-vsctl -- set Interface p0 options:tx_pcap=p0.pcap
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:277"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:280: ovs-ofctl add-flow int-br \"in_port=LOCAL,actions=output:2\""
at_fn_check_prepare_trace "tunnel-push-pop.at:280"
( $at_check_trace; ovs-ofctl add-flow int-br "in_port=LOCAL,actions=output:2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:280"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:281: ovs-appctl netdev-dummy/receive int-br '50540000000a5054000000091234'"
at_fn_check_prepare_trace "tunnel-push-pop.at:281"
( $at_check_trace; ovs-appctl netdev-dummy/receive int-br '50540000000a5054000000091234'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:281"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

$as_echo "tunnel-push-pop.at:282: waiting until test \`ovs-pcap p0.pcap | grep 50540000000a5054000000091234 | wc -l\` -ge 1..." >&5
ovs_wait_cond () {
    test `ovs-pcap p0.pcap | grep 50540000000a5054000000091234 | wc -l` -ge 1
}
if ovs_wait; then :
else
    $as_echo "tunnel-push-pop.at:282: wait failed" >&5

    $as_echo "tunnel-push-pop.at:282" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel-push-pop.at:282"
fi


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:285: ovs-ofctl -O OpenFlow13 packet-out int-br CONTROLLER \"output:2\" '50540000000a5054000000091235'"
at_fn_check_prepare_trace "tunnel-push-pop.at:285"
( $at_check_trace; ovs-ofctl -O OpenFlow13 packet-out int-br CONTROLLER "output:2" '50540000000a5054000000091235'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:285"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

$as_echo "tunnel-push-pop.at:286: waiting until test \`ovs-pcap p0.pcap | grep 50540000000a5054000000091235 | wc -l\` -ge 1..." >&5
ovs_wait_cond () {
    test `ovs-pcap p0.pcap | grep 50540000000a5054000000091235 | wc -l` -ge 1
}
if ovs_wait; then :
else
    $as_echo "tunnel-push-pop.at:286: wait failed" >&5

    $as_echo "tunnel-push-pop.at:286" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel-push-pop.at:286"
fi


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:288: check_logs "
at_fn_check_prepare_trace "tunnel-push-pop.at:288"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:288"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:288: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "tunnel-push-pop.at:288"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:288"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:288: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "tunnel-push-pop.at:288"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:288"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel-push-pop.at:288: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel-push-pop.at:288: wait failed" >&5

    $as_echo "tunnel-push-pop.at:288" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel-push-pop.at:288"
fi

   { set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:288: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "tunnel-push-pop.at:288"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:288"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:288: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "tunnel-push-pop.at:288"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:288"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel-push-pop.at:288: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel-push-pop.at:288: wait failed" >&5

    $as_echo "tunnel-push-pop.at:288" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel-push-pop.at:288"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_791
#AT_START_792
at_fn_group_banner 792 'tunnel-push-pop.at:291' \
  "tunnel_push_pop - underlay bridge match" "        " 45
at_xfail=no
(
  $as_echo "792. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:293: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "tunnel-push-pop.at:293"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:293"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:293: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "tunnel-push-pop.at:293"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:293"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:293: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel-push-pop.at:293"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:293"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:293: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "tunnel-push-pop.at:293"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:293"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:293: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "tunnel-push-pop.at:293"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:293"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:293: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel-push-pop.at:293"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:293"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:293: add_of_br 0 add-port br0 p0 -- set Interface p0 type=dummy ofport_request=1 other-config:hwaddr=aa:55:aa:55:00:00 "
at_fn_check_prepare_trace "tunnel-push-pop.at:293"
( $at_check_trace; add_of_br 0 add-port br0 p0 -- set Interface p0 type=dummy ofport_request=1 other-config:hwaddr=aa:55:aa:55:00:00
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:293"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:294: ovs-vsctl add-br int-br -- set bridge int-br datapath_type=dummy"
at_fn_check_prepare_trace "tunnel-push-pop.at:294"
( $at_check_trace; ovs-vsctl add-br int-br -- set bridge int-br datapath_type=dummy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:294"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:295: ovs-vsctl add-port int-br t1 -- set Interface t1 type=gre \\
                       options:remote_ip=1.1.2.92 options:key=456 ofport_request=3"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel-push-pop.at:295"
( $at_check_trace; ovs-vsctl add-port int-br t1 -- set Interface t1 type=gre \
                       options:remote_ip=1.1.2.92 options:key=456 ofport_request=3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:295"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:298: ovs-appctl dpif/show"
at_fn_check_prepare_trace "tunnel-push-pop.at:298"
( $at_check_trace; ovs-appctl dpif/show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dummy@ovs-dummy: hit:0 missed:0
	br0:
		br0 65534/100: (dummy-internal)
		p0 1/1: (dummy)
	int-br:
		int-br 65534/2: (dummy-internal)
		t1 3/3: (gre: key=456, remote_ip=1.1.2.92)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:298"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:308: ovs-appctl netdev-dummy/ip4addr br0 1.1.2.88/24"
at_fn_check_prepare_trace "tunnel-push-pop.at:308"
( $at_check_trace; ovs-appctl netdev-dummy/ip4addr br0 1.1.2.88/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:308"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:310: ovs-appctl ovs/route/add 1.1.2.92/24 br0"
at_fn_check_prepare_trace "tunnel-push-pop.at:310"
( $at_check_trace; ovs-appctl ovs/route/add 1.1.2.92/24 br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:310"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:312: ovs-ofctl add-flow br0 'arp,priority=1,action=normal'"
at_fn_check_prepare_trace "tunnel-push-pop.at:312"
( $at_check_trace; ovs-ofctl add-flow br0 'arp,priority=1,action=normal'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:312"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:315: ovs-appctl netdev-dummy/receive br0 'recirc_id(0),in_port(100),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:00),eth_type(0x0806),arp(sip=1.1.2.92,tip=1.1.2.88,op=2,sha=f8:bc:12:44:34:b6,tha=00:00:00:00:00:00)'"
at_fn_check_prepare_trace "tunnel-push-pop.at:315"
( $at_check_trace; ovs-appctl netdev-dummy/receive br0 'recirc_id(0),in_port(100),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:00),eth_type(0x0806),arp(sip=1.1.2.92,tip=1.1.2.88,op=2,sha=f8:bc:12:44:34:b6,tha=00:00:00:00:00:00)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:315"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:317: ovs-appctl tnl/neigh/show | tail -n+3 | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel-push-pop.at:317"
( $at_check_trace; ovs-appctl tnl/neigh/show | tail -n+3 | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1.1.2.92                                      f8:bc:12:44:34:b6   br0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:317"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:321: ovs-ofctl add-flow br0 'ip,ip_proto=47,nw_tos=0,eth_src=aa:55:aa:55:00:00,eth_dst=f8:bc:12:44:34:b6,ip_src=1.1.2.88,ip_dst=1.1.2.92,priority=99,action=normal'"
at_fn_check_prepare_trace "tunnel-push-pop.at:321"
( $at_check_trace; ovs-ofctl add-flow br0 'ip,ip_proto=47,nw_tos=0,eth_src=aa:55:aa:55:00:00,eth_dst=f8:bc:12:44:34:b6,ip_src=1.1.2.88,ip_dst=1.1.2.92,priority=99,action=normal'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:321"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:324: ovs-ofctl add-flow int-br action=3"
at_fn_check_prepare_trace "tunnel-push-pop.at:324"
( $at_check_trace; ovs-ofctl add-flow int-br action=3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:324"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:326: ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:00),eth_type(0x0800),ipv4(src=1.1.3.88,dst=1.1.3.112,proto=17,tos=0,ttl=64,frag=no),udp(src=51283,dst=4789)'"
at_fn_check_prepare_trace "tunnel-push-pop.at:326"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:00),eth_type(0x0800),ipv4(src=1.1.3.88,dst=1.1.3.112,proto=17,tos=0,ttl=64,frag=no),udp(src=51283,dst=4789)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:326"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:327: tail -1 stdout"
at_fn_check_prepare_trace "tunnel-push-pop.at:327"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: tnl_push(tnl_port(3),header(size=42,type=3,eth(dst=f8:bc:12:44:34:b6,src=aa:55:aa:55:00:00,dl_type=0x0800),ipv4(src=1.1.2.88,dst=1.1.2.92,proto=47,tos=0,ttl=64,frag=0x4000),gre((flags=0x2000,proto=0x6558),key=0x1c8)),out_port(100))
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:327"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:332: ovs-appctl netdev-dummy/receive int-br '50540000000a5054000000091234'"
at_fn_check_prepare_trace "tunnel-push-pop.at:332"
( $at_check_trace; ovs-appctl netdev-dummy/receive int-br '50540000000a5054000000091234'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:332"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:333: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel-push-pop.at:333"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " n_packets=1, n_bytes=42, priority=1,arp actions=NORMAL
 n_packets=1, n_bytes=56, priority=99,ip,dl_src=aa:55:aa:55:00:00,dl_dst=f8:bc:12:44:34:b6,nw_src=1.1.2.88,nw_dst=1.1.2.92,nw_proto=47,nw_tos=0 actions=NORMAL
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:333"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:339: check_logs "
at_fn_check_prepare_trace "tunnel-push-pop.at:339"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:339"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:339: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "tunnel-push-pop.at:339"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:339"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:339: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "tunnel-push-pop.at:339"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:339"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel-push-pop.at:339: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel-push-pop.at:339: wait failed" >&5

    $as_echo "tunnel-push-pop.at:339" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel-push-pop.at:339"
fi

   { set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:339: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "tunnel-push-pop.at:339"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:339"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/tunnel-push-pop.at:339: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "tunnel-push-pop.at:339"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop.at:339"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "tunnel-push-pop.at:339: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel-push-pop.at:339: wait failed" >&5

    $as_echo "tunnel-push-pop.at:339" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel-push-pop.at:339"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_792
#AT_START_793
at_fn_group_banner 793 'tunnel-push-pop-ipv6.at:3' \
  "tunnel_push_pop_ipv6 - action" "                  " 46
at_xfail=no
(
  $as_echo "793. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:5: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "tunnel-push-pop-ipv6.at:5"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:5"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:5: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "tunnel-push-pop-ipv6.at:5"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:5"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:5: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel-push-pop-ipv6.at:5"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:5"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:5: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:5"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:5"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:5: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:5"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:5"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:5: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "tunnel-push-pop-ipv6.at:5"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:5"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:5: add_of_br 0 add-port br0 p0 -- set Interface p0 type=dummy ofport_request=1 other-config:hwaddr=aa:55:aa:55:00:00 "
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:5"
( $at_check_trace; add_of_br 0 add-port br0 p0 -- set Interface p0 type=dummy ofport_request=1 other-config:hwaddr=aa:55:aa:55:00:00
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:5"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:6: ovs-vsctl add-br int-br -- set bridge int-br datapath_type=dummy"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:6"
( $at_check_trace; ovs-vsctl add-br int-br -- set bridge int-br datapath_type=dummy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:6"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:7: ovs-vsctl add-port int-br t2 -- set Interface t2 type=vxlan \\
                       options:remote_ip=2001:cafe::92 options:key=123 ofport_request=2\\
                    -- add-port int-br t1 -- set Interface t1 type=gre \\
                       options:remote_ip=2001:cafe::92 options:key=456 ofport_request=3\\
                    -- add-port int-br t3 -- set Interface t3 type=vxlan \\
                       options:remote_ip=2001:cafe::93 options:out_key=flow options:csum=true ofport_request=4\\
                    -- add-port int-br t4 -- set Interface t4 type=geneve \\
                       options:remote_ip=flow options:key=123 ofport_request=5\\
                    -- add-port int-br t5 -- set Interface t5 type=gre \\
                       options:remote_ip=2001:cafe::92 options:key=455 options:packet_type=legacy_l3 ofport_request=6\\
                       "
at_fn_check_prepare_notrace 'an embedded newline' "tunnel-push-pop-ipv6.at:7"
( $at_check_trace; ovs-vsctl add-port int-br t2 -- set Interface t2 type=vxlan \
                       options:remote_ip=2001:cafe::92 options:key=123 ofport_request=2\
                    -- add-port int-br t1 -- set Interface t1 type=gre \
                       options:remote_ip=2001:cafe::92 options:key=456 ofport_request=3\
                    -- add-port int-br t3 -- set Interface t3 type=vxlan \
                       options:remote_ip=2001:cafe::93 options:out_key=flow options:csum=true ofport_request=4\
                    -- add-port int-br t4 -- set Interface t4 type=geneve \
                       options:remote_ip=flow options:key=123 ofport_request=5\
                    -- add-port int-br t5 -- set Interface t5 type=gre \
                       options:remote_ip=2001:cafe::92 options:key=455 options:packet_type=legacy_l3 ofport_request=6\

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:7"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:19: ovs-appctl dpif/show"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:19"
( $at_check_trace; ovs-appctl dpif/show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dummy@ovs-dummy: hit:0 missed:0
	br0:
		br0 65534/100: (dummy-internal)
		p0 1/1: (dummy)
	int-br:
		int-br 65534/2: (dummy-internal)
		t1 3/3: (gre: key=456, remote_ip=2001:cafe::92)
		t2 2/4789: (vxlan: key=123, remote_ip=2001:cafe::92)
		t3 4/4789: (vxlan: csum=true, out_key=flow, remote_ip=2001:cafe::93)
		t4 5/6081: (geneve: key=123, remote_ip=flow)
		t5 6/3: (gre: key=455, packet_type=legacy_l3, remote_ip=2001:cafe::92)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:19"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:35: ovs-appctl netdev-dummy/ip6addr br0 2001:cafe::88/24"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:35"
( $at_check_trace; ovs-appctl netdev-dummy/ip6addr br0 2001:cafe::88/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:35"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:37: ovs-appctl netdev-dummy/ip4addr br0 1.1.2.88/24"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:37"
( $at_check_trace; ovs-appctl netdev-dummy/ip4addr br0 1.1.2.88/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:37"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:39: ovs-appctl ovs/route/add 2001:cafe::92/24 br0"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:39"
( $at_check_trace; ovs-appctl ovs/route/add 2001:cafe::92/24 br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:39"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:42: ovs-ofctl add-flow br0 action=normal"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:42"
( $at_check_trace; ovs-ofctl add-flow br0 action=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:42"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:45: ovs-vsctl -- set Interface p0 options:pcap=p0.pcap"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:45"
( $at_check_trace; ovs-vsctl -- set Interface p0 options:pcap=p0.pcap
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:45"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:47: ovs-appctl netdev-dummy/receive int-br 'in_port(2),eth(src=aa:55:aa:55:00:00,dst=f8:bc:12:ff:ff:ff),eth_type(0x0800),ipv4(src=1.1.3.92,dst=1.1.3.88,proto=1,tos=0,ttl=64,frag=no),icmp(type=0,code=0)'"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:47"
( $at_check_trace; ovs-appctl netdev-dummy/receive int-br 'in_port(2),eth(src=aa:55:aa:55:00:00,dst=f8:bc:12:ff:ff:ff),eth_type(0x0800),ipv4(src=1.1.3.92,dst=1.1.3.88,proto=1,tos=0,ttl=64,frag=no),icmp(type=0,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:47"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:48: ovs-pcap p0.pcap > p0.pcap.txt 2>&1"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:48"
( $at_check_trace; ovs-pcap p0.pcap > p0.pcap.txt 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:48"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:50: cat p0.pcap.txt | grep 92aa55aa55000086dd6000000000203aff2001cafe | uniq"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel-push-pop-ipv6.at:50"
( $at_check_trace; cat p0.pcap.txt | grep 92aa55aa55000086dd6000000000203aff2001cafe | uniq
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "3333ff000092aa55aa55000086dd6000000000203aff2001cafe000000000000000000000088ff0200000000000000000001ff00009287004d48000000002001cafe0000000000000000000000920101aa55aa550000
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:50"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:53: cat p0.pcap.txt | grep 93aa55aa55000086dd6000000000203aff2001cafe | uniq"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel-push-pop-ipv6.at:53"
( $at_check_trace; cat p0.pcap.txt | grep 93aa55aa55000086dd6000000000203aff2001cafe | uniq
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "3333ff000093aa55aa55000086dd6000000000203aff2001cafe000000000000000000000088ff0200000000000000000001ff00009387004d46000000002001cafe0000000000000000000000930101aa55aa550000
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:53"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:58: ovs-appctl netdev-dummy/receive br0 'in_port(100),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:00),eth_type(0x86dd),ipv6(src=2001:cafe::92,dst=2001:cafe::94,label=0,proto=58,tclass=0,hlimit=255,frag=no),icmpv6(type=136,code=0),nd(target=2001:cafe::92,sll=00:00:00:00:00:00,tll=f8:bc:12:44:34:b6)'"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:58"
( $at_check_trace; ovs-appctl netdev-dummy/receive br0 'in_port(100),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:00),eth_type(0x86dd),ipv6(src=2001:cafe::92,dst=2001:cafe::94,label=0,proto=58,tclass=0,hlimit=255,frag=no),icmpv6(type=136,code=0),nd(target=2001:cafe::92,sll=00:00:00:00:00:00,tll=f8:bc:12:44:34:b6)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:58"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:60: ovs-appctl netdev-dummy/receive br0 'in_port(100),eth(src=f8:bc:12:44:34:b7,dst=aa:55:aa:55:00:00),eth_type(0x86dd),ipv6(src=2001:cafe::93,dst=2001:cafe::94,label=0,proto=58,tclass=0,hlimit=255,frag=no),icmpv6(type=136,code=0),nd(target=2001:cafe::93,sll=00:00:00:00:00:00,tll=f8:bc:12:44:34:b7)'"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:60"
( $at_check_trace; ovs-appctl netdev-dummy/receive br0 'in_port(100),eth(src=f8:bc:12:44:34:b7,dst=aa:55:aa:55:00:00),eth_type(0x86dd),ipv6(src=2001:cafe::93,dst=2001:cafe::94,label=0,proto=58,tclass=0,hlimit=255,frag=no),icmpv6(type=136,code=0),nd(target=2001:cafe::93,sll=00:00:00:00:00:00,tll=f8:bc:12:44:34:b7)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:60"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:62: ovs-appctl tnl/arp/show | tail -n+3 | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel-push-pop-ipv6.at:62"
( $at_check_trace; ovs-appctl tnl/arp/show | tail -n+3 | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "2001:cafe::92                                 f8:bc:12:44:34:b6   br0
2001:cafe::93                                 f8:bc:12:44:34:b7   br0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:62"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:67: ovs-appctl tnl/ports/show |sort"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel-push-pop-ipv6.at:67"
( $at_check_trace; ovs-appctl tnl/ports/show |sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Listening ports:
genev_sys_6081 (6081) ref_cnt=1
gre_sys (3) ref_cnt=2
vxlan_sys_4789 (4789) ref_cnt=2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:67"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:75: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:00),eth_type(0x86dd),ipv6(src=2001:cafe::92,dst=2001:cafe::88,label=0,proto=17,tclass=0x0,hlimit=64),udp(src=51283,dst=4789)'"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:75"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:00),eth_type(0x86dd),ipv6(src=2001:cafe::92,dst=2001:cafe::88,label=0,proto=17,tclass=0x0,hlimit=64),udp(src=51283,dst=4789)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:75"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:76: tail -1 stdout"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:76"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: tnl_pop(4789)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:76"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:81: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:00),eth_type(0x86dd),ipv6(src=2001:cafe::92,dst=2001:cafe::88,label=0,proto=47,tclass=0x0,hlimit=64)'"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:81"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:00),eth_type(0x86dd),ipv6(src=2001:cafe::92,dst=2001:cafe::88,label=0,proto=47,tclass=0x0,hlimit=64)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:81"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:82: tail -1 stdout"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:82"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: tnl_pop(3)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:82"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:87: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:00),eth_type(0x86dd),ipv6(src=2001:cafe::92,dst=2001:cafe::88,label=0,proto=17,tclass=0x0,hlimit=64),udp(src=51283,dst=6081)'"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:87"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:00),eth_type(0x86dd),ipv6(src=2001:cafe::92,dst=2001:cafe::88,label=0,proto=17,tclass=0x0,hlimit=64),udp(src=51283,dst=6081)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:87"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:88: tail -1 stdout"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:88"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: tnl_pop(6081)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:88"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:93: ovs-ofctl add-flow int-br action=2"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:93"
( $at_check_trace; ovs-ofctl add-flow int-br action=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:93"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:94: ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:01),eth_type(0x0800),ipv4(src=1.1.3.88,dst=1.1.3.112,proto=47,tos=0,ttl=64,frag=no)'"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:94"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:01),eth_type(0x0800),ipv4(src=1.1.3.88,dst=1.1.3.112,proto=47,tos=0,ttl=64,frag=no)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:94"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:95: tail -1 stdout"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:95"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: tnl_push(tnl_port(4789),header(size=70,type=4,eth(dst=f8:bc:12:44:34:b6,src=aa:55:aa:55:00:00,dl_type=0x86dd),ipv6(src=2001:cafe::88,dst=2001:cafe::92,label=0,proto=17,tclass=0x0,hlimit=64),udp(src=0,dst=4789,csum=0xffff),vxlan(flags=0x8000000,vni=0x7b)),out_port(100))
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:95"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:100: ovs-ofctl add-flow int-br \"actions=set_tunnel:124,4\""
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:100"
( $at_check_trace; ovs-ofctl add-flow int-br "actions=set_tunnel:124,4"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:100"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:101: ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:01),eth_type(0x0800),ipv4(src=1.1.3.88,dst=1.1.3.112,proto=47,tos=0,ttl=64,frag=no)'"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:101"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:01),eth_type(0x0800),ipv4(src=1.1.3.88,dst=1.1.3.112,proto=47,tos=0,ttl=64,frag=no)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:101"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:102: tail -1 stdout"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:102"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: tnl_push(tnl_port(4789),header(size=70,type=4,eth(dst=f8:bc:12:44:34:b7,src=aa:55:aa:55:00:00,dl_type=0x86dd),ipv6(src=2001:cafe::88,dst=2001:cafe::93,label=0,proto=17,tclass=0x0,hlimit=64),udp(src=0,dst=4789,csum=0xffff),vxlan(flags=0x8000000,vni=0x7c)),out_port(100))
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:102"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:107: ovs-ofctl add-flow int-br action=3"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:107"
( $at_check_trace; ovs-ofctl add-flow int-br action=3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:108: ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:01),eth_type(0x0800),ipv4(src=1.1.3.88,dst=1.1.3.112,proto=47,tos=0,ttl=64,frag=no)'"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:108"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:01),eth_type(0x0800),ipv4(src=1.1.3.88,dst=1.1.3.112,proto=47,tos=0,ttl=64,frag=no)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:108"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:109: tail -1 stdout"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:109"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: tnl_push(tnl_port(3),header(size=62,type=3,eth(dst=f8:bc:12:44:34:b6,src=aa:55:aa:55:00:00,dl_type=0x86dd),ipv6(src=2001:cafe::88,dst=2001:cafe::92,label=0,proto=47,tclass=0x0,hlimit=64),gre((flags=0x2000,proto=0x6558),key=0x1c8)),out_port(100))
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:109"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:114: ovs-ofctl add-flow int-br \"actions=set_field:2001:cafe::92->tun_ipv6_dst,5\""
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:114"
( $at_check_trace; ovs-ofctl add-flow int-br "actions=set_field:2001:cafe::92->tun_ipv6_dst,5"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:114"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:115: ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:01),eth_type(0x0800),ipv4(src=1.1.3.88,dst=1.1.3.112,proto=47,tos=0,ttl=64,frag=no)'"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:115"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:01),eth_type(0x0800),ipv4(src=1.1.3.88,dst=1.1.3.112,proto=47,tos=0,ttl=64,frag=no)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:115"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:116: tail -1 stdout"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:116"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: tnl_push(tnl_port(6081),header(size=70,type=5,eth(dst=f8:bc:12:44:34:b6,src=aa:55:aa:55:00:00,dl_type=0x86dd),ipv6(src=2001:cafe::88,dst=2001:cafe::92,label=0,proto=17,tclass=0x0,hlimit=64),udp(src=0,dst=6081,csum=0xffff),geneve(vni=0x7b)),out_port(100))
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:116"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:121: ovs-ofctl add-tlv-map int-br \"{class=0xffff,type=0x80,len=4}->tun_metadata0\""
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:121"
( $at_check_trace; ovs-ofctl add-tlv-map int-br "{class=0xffff,type=0x80,len=4}->tun_metadata0"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:121"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:122: ovs-ofctl add-flow int-br \"actions=set_field:2001:cafe::92->tun_ipv6_dst,set_field:0xa->tun_metadata0,5\""
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:122"
( $at_check_trace; ovs-ofctl add-flow int-br "actions=set_field:2001:cafe::92->tun_ipv6_dst,set_field:0xa->tun_metadata0,5"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:122"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:123: ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:01),eth_type(0x0800),ipv4(src=1.1.3.88,dst=1.1.3.112,proto=47,tos=0,ttl=64,frag=no)'"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:123"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:01),eth_type(0x0800),ipv4(src=1.1.3.88,dst=1.1.3.112,proto=47,tos=0,ttl=64,frag=no)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:123"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:124: tail -1 stdout"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:124"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: tnl_push(tnl_port(6081),header(size=78,type=5,eth(dst=f8:bc:12:44:34:b6,src=aa:55:aa:55:00:00,dl_type=0x86dd),ipv6(src=2001:cafe::88,dst=2001:cafe::92,label=0,proto=17,tclass=0x0,hlimit=64),udp(src=0,dst=6081,csum=0xffff),geneve(crit,vni=0x7b,options({class=0xffff,type=0x80,len=4,0xa}))),out_port(100))
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:124"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:129: ovs-appctl netdev-dummy/receive p0 'aa55aa550000001b213cab6486dd60000000006a2f402001cafe0000000000000000000000922001cafe00000000000000000000008820006558000001c8fe71d883724fbeb6f4e1494a080045000054ba200000400184861e0000011e00000200004227e75400030af3195500000000f265010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637'"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:129"
( $at_check_trace; ovs-appctl netdev-dummy/receive p0 'aa55aa550000001b213cab6486dd60000000006a2f402001cafe0000000000000000000000922001cafe00000000000000000000008820006558000001c8fe71d883724fbeb6f4e1494a080045000054ba200000400184861e0000011e00000200004227e75400030af3195500000000f265010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:129"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:130: ovs-appctl netdev-dummy/receive p0 'aa55aa550000001b213cab6486dd60000000006a2f402001cafe0000000000000000000000922001cafe00000000000000000000008820006558000001c8fe71d883724fbeb6f4e1494a080045000054ba200000400184861e0000011e00000200004227e75400030af3195500000000f265010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637'"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:130"
( $at_check_trace; ovs-appctl netdev-dummy/receive p0 'aa55aa550000001b213cab6486dd60000000006a2f402001cafe0000000000000000000000922001cafe00000000000000000000008820006558000001c8fe71d883724fbeb6f4e1494a080045000054ba200000400184861e0000011e00000200004227e75400030af3195500000000f265010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:130"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 1000

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:133: ovs-ofctl dump-ports int-br | grep 'port  3'"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel-push-pop-ipv6.at:133"
( $at_check_trace; ovs-ofctl dump-ports int-br | grep 'port  3'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "  port  3: rx pkts=2, bytes=196, drop=?, errs=?, frame=?, over=?, crc=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:133"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:138: ovs-appctl netdev-dummy/receive p0 'aa55aa550000001b213cab6486dd60000000005a2f402001cafe0000000000000000000000922001cafe00000000000000000000008820000800000001c745000054ba200000400184861e0000011e00000200004227e75400030af3195500000000f265010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637'"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:138"
( $at_check_trace; ovs-appctl netdev-dummy/receive p0 'aa55aa550000001b213cab6486dd60000000005a2f402001cafe0000000000000000000000922001cafe00000000000000000000008820000800000001c745000054ba200000400184861e0000011e00000200004227e75400030af3195500000000f265010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:138"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:139: ovs-appctl netdev-dummy/receive p0 'aa55aa550000001b213cab6486dd60000000005a2f402001cafe0000000000000000000000922001cafe00000000000000000000008820000800000001c745000054ba200000400184861e0000011e00000200004227e75400030af3195500000000f265010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637'"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:139"
( $at_check_trace; ovs-appctl netdev-dummy/receive p0 'aa55aa550000001b213cab6486dd60000000005a2f402001cafe0000000000000000000000922001cafe00000000000000000000008820000800000001c745000054ba200000400184861e0000011e00000200004227e75400030af3195500000000f265010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:139"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 1000
ovs-appctl time/warp 1000

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:143: ovs-ofctl dump-ports int-br | grep 'port  6'"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel-push-pop-ipv6.at:143"
( $at_check_trace; ovs-ofctl dump-ports int-br | grep 'port  6'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "  port  6: rx pkts=2, bytes=168, drop=?, errs=?, frame=?, over=?, crc=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:143"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:149: ovs-ofctl monitor int-br 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:149"
( $at_check_trace; ovs-ofctl monitor int-br 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:149"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:151: ovs-ofctl del-flows int-br"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:151"
( $at_check_trace; ovs-ofctl del-flows int-br
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:151"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:152: ovs-ofctl add-flow int-br \"tun_metadata0=0xa/0xf,actions=5,controller\""
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:152"
( $at_check_trace; ovs-ofctl add-flow int-br "tun_metadata0=0xa/0xf,actions=5,controller"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:152"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:153: ovs-appctl netdev-dummy/receive p0 'aa55aa550000001b213cab6486dd60000000008211402001cafe0000000000000000000000922001cafe000000000000000000000088308817c1008200000400655800007b00ffff80010000000affff00010000000bfe71d883724fbeb6f4e1494a080045000054ba200000400184861e0000011e00000200004227e75400030af3195500000000f265010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637'"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:153"
( $at_check_trace; ovs-appctl netdev-dummy/receive p0 'aa55aa550000001b213cab6486dd60000000008211402001cafe0000000000000000000000922001cafe000000000000000000000088308817c1008200000400655800007b00ffff80010000000affff00010000000bfe71d883724fbeb6f4e1494a080045000054ba200000400184861e0000011e00000200004227e75400030af3195500000000f265010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:153"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


$as_echo "tunnel-push-pop-ipv6.at:155: waiting until test \`wc -l < ofctl_monitor.log\` -ge 2..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 2
}
if ovs_wait; then :
else
    $as_echo "tunnel-push-pop-ipv6.at:155: wait failed" >&5

    $as_echo "tunnel-push-pop-ipv6.at:155" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel-push-pop-ipv6.at:155"
fi

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:156: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "tunnel-push-pop-ipv6.at:156"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:156"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:156: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:156"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:156"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "tunnel-push-pop-ipv6.at:156: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel-push-pop-ipv6.at:156: wait failed" >&5

    $as_echo "tunnel-push-pop-ipv6.at:156" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel-push-pop-ipv6.at:156"
fi


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:158: cat ofctl_monitor.log"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:158"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN2 (xid=0x0): cookie=0x0 total_len=98 tun_id=0x7b,tun_ipv6_src=2001:cafe::92,tun_ipv6_dst=2001:cafe::88,tun_metadata0=0xa,in_port=5 (via action) data_len=98 (unbuffered)
icmp,vlan_tci=0x0000,dl_src=be:b6:f4:e1:49:4a,dl_dst=fe:71:d8:83:72:4f,nw_src=30.0.0.1,nw_dst=30.0.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,icmp_type=0,icmp_code=0 icmp_csum:4227
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:158"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:163: ovs-ofctl dump-ports int-br | grep 'port  5'"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel-push-pop-ipv6.at:163"
( $at_check_trace; ovs-ofctl dump-ports int-br | grep 'port  5'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "  port  5: rx pkts=1, bytes=98, drop=?, errs=?, frame=?, over=?, crc=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:163"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:166: ovs-appctl dpif/dump-flows int-br | grep 'in_port(6081)'"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel-push-pop-ipv6.at:166"
( $at_check_trace; ovs-appctl dpif/dump-flows int-br | grep 'in_port(6081)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "tunnel(tun_id=0x7b,ipv6_src=2001:cafe::92,ipv6_dst=2001:cafe::88,geneve({class=0xffff,type=0x80,len=4,0xa/0xf}{class=0xffff,type=0,len=4}),flags(-df-csum+key)),recirc_id(0),in_port(6081),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), packets:0, bytes:0, used:never, actions:userspace(pid=0,controller(reason=1,dont_send=0,continuation=0,recirc_id=3,rule_cookie=0,controller_id=0,max_len=65535))
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:166"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


ovs-appctl time/warp 10000

{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:172: ovs-vsctl del-port int-br t3 \\
                    -- set Interface t1 type=vxlan \\
                    -- set Interface t2 options:dst_port=4790 \\
                       "
at_fn_check_prepare_notrace 'an embedded newline' "tunnel-push-pop-ipv6.at:172"
( $at_check_trace; ovs-vsctl del-port int-br t3 \
                    -- set Interface t1 type=vxlan \
                    -- set Interface t2 options:dst_port=4790 \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:172"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:178: ovs-appctl tnl/ports/show |sort"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel-push-pop-ipv6.at:178"
( $at_check_trace; ovs-appctl tnl/ports/show |sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Listening ports:
genev_sys_6081 (6081) ref_cnt=1
gre_sys (3) ref_cnt=1
vxlan_sys_4789 (4789) ref_cnt=1
vxlan_sys_4790 (4790) ref_cnt=1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:178"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:186: ovs-vsctl del-port int-br t1 \\
                    -- del-port int-br t2 \\
                    -- del-port int-br t4 \\
                    -- del-port int-br t5 \\
                       "
at_fn_check_prepare_notrace 'an embedded newline' "tunnel-push-pop-ipv6.at:186"
( $at_check_trace; ovs-vsctl del-port int-br t1 \
                    -- del-port int-br t2 \
                    -- del-port int-br t4 \
                    -- del-port int-br t5 \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:186"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:193: ovs-appctl tnl/ports/show |sort"
at_fn_check_prepare_notrace 'a shell pipeline' "tunnel-push-pop-ipv6.at:193"
( $at_check_trace; ovs-appctl tnl/ports/show |sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Listening ports:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:193"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:197: check_logs "
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:197"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:197"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:197: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "tunnel-push-pop-ipv6.at:197"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:197"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:197: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:197"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:197"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "tunnel-push-pop-ipv6.at:197: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel-push-pop-ipv6.at:197: wait failed" >&5

    $as_echo "tunnel-push-pop-ipv6.at:197" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel-push-pop-ipv6.at:197"
fi

   { set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:197: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "tunnel-push-pop-ipv6.at:197"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:197"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/tunnel-push-pop-ipv6.at:197: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "tunnel-push-pop-ipv6.at:197"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/tunnel-push-pop-ipv6.at:197"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "tunnel-push-pop-ipv6.at:197: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "tunnel-push-pop-ipv6.at:197: wait failed" >&5

    $as_echo "tunnel-push-pop-ipv6.at:197" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/tunnel-push-pop-ipv6.at:197"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_793
#AT_START_794
at_fn_group_banner 794 'ovs-router.at:3' \
  "appctl - route/add with gateway" "                " 47
at_xfail=no
(
  $as_echo "794. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ovs-router.at:5: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-router.at:5"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:5"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-router.at:5: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ovs-router.at:5"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:5"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-router.at:5: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-router.at:5"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:5"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovs-router.at:5: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ovs-router.at:5"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:5"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-router.at:5: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ovs-router.at:5"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:5"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-router.at:5: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-router.at:5"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:5"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovs-router.at:5: add_of_br 0 add-port br0 p2 -- set Interface p2 type=gre \\
			options:local_ip=2.2.2.2 options:remote_ip=1.1.1.1 \\
			-- add-port br0 p1  -- set interface p1 type=dummy "
at_fn_check_prepare_notrace 'an embedded newline' "ovs-router.at:5"
( $at_check_trace; add_of_br 0 add-port br0 p2 -- set Interface p2 type=gre \
			options:local_ip=2.2.2.2 options:remote_ip=1.1.1.1 \
			-- add-port br0 p1  -- set interface p1 type=dummy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:5"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-router.at:8: ovs-appctl netdev-dummy/ip4addr br0 2.2.2.2/24"
at_fn_check_prepare_trace "ovs-router.at:8"
( $at_check_trace; ovs-appctl netdev-dummy/ip4addr br0 2.2.2.2/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:8"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-router.at:10: ovs-appctl ovs/route/add 1.1.1.0/24 br0 2.2.2.10"
at_fn_check_prepare_trace "ovs-router.at:10"
( $at_check_trace; ovs-appctl ovs/route/add 1.1.1.0/24 br0 2.2.2.10
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:10"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-router.at:12: check_logs "
at_fn_check_prepare_trace "ovs-router.at:12"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:12"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-router.at:12: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovs-router.at:12"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:12"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovs-router.at:12: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovs-router.at:12"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:12"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-router.at:12: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-router.at:12: wait failed" >&5

    $as_echo "ovs-router.at:12" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-router.at:12"
fi

   { set +x
$as_echo "$at_srcdir/ovs-router.at:12: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovs-router.at:12"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:12"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-router.at:12: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovs-router.at:12"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:12"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-router.at:12: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-router.at:12: wait failed" >&5

    $as_echo "ovs-router.at:12" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-router.at:12"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_794
#AT_START_795
at_fn_group_banner 795 'ovs-router.at:15' \
  "appctl - route/lookup" "                          " 47
at_xfail=no
(
  $as_echo "795. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ovs-router.at:17: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-router.at:17"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:17"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-router.at:17: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ovs-router.at:17"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:17"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-router.at:17: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-router.at:17"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:17"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovs-router.at:17: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ovs-router.at:17"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:17"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-router.at:17: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ovs-router.at:17"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:17"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-router.at:17: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-router.at:17"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:17"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovs-router.at:17: add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy "
at_fn_check_prepare_trace "ovs-router.at:17"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:17"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-router.at:18: ovs-appctl netdev-dummy/ip4addr br0 192.0.2.1/24"
at_fn_check_prepare_trace "ovs-router.at:18"
( $at_check_trace; ovs-appctl netdev-dummy/ip4addr br0 192.0.2.1/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:18"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-router.at:20: ovs-appctl ovs/route/add 198.51.100.0/24 br0 192.0.2.254"
at_fn_check_prepare_trace "ovs-router.at:20"
( $at_check_trace; ovs-appctl ovs/route/add 198.51.100.0/24 br0 192.0.2.254
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:20"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-router.at:22: ovs-appctl ovs/route/add 192.0.2.1/24 br0 pkt_mark=123"
at_fn_check_prepare_trace "ovs-router.at:22"
( $at_check_trace; ovs-appctl ovs/route/add 192.0.2.1/24 br0 pkt_mark=123
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:22"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-router.at:25: ovs-appctl ovs/route/add 198.51.100.200/24 br0 192.0.2.250 pkt_mark=1234"
at_fn_check_prepare_trace "ovs-router.at:25"
( $at_check_trace; ovs-appctl ovs/route/add 198.51.100.200/24 br0 192.0.2.250 pkt_mark=1234
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:25"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-router.at:28: ovs-appctl ovs/route/show | grep User | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-router.at:28"
( $at_check_trace; ovs-appctl ovs/route/show | grep User | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "User: 192.0.2.0/24 MARK 123 dev br0 SRC 192.0.2.1
User: 198.51.100.0/24 MARK 1234 dev br0 GW 192.0.2.250 SRC 192.0.2.1
User: 198.51.100.0/24 dev br0 GW 192.0.2.254 SRC 192.0.2.1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:28"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-router.at:33: ovs-appctl ovs/route/lookup 198.51.100.1"
at_fn_check_prepare_trace "ovs-router.at:33"
( $at_check_trace; ovs-appctl ovs/route/lookup 198.51.100.1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "src 192.0.2.1
gateway 192.0.2.254
dev br0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:33"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-router.at:38: ovs-appctl ovs/route/lookup 198.51.100.1 pkt_mark=1234"
at_fn_check_prepare_trace "ovs-router.at:38"
( $at_check_trace; ovs-appctl ovs/route/lookup 198.51.100.1 pkt_mark=1234
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "src 192.0.2.1
gateway 192.0.2.250
dev br0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:38"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-router.at:42: ovs-appctl ovs/route/del 198.51.100.0/24 pkt_mark=1234"
at_fn_check_prepare_trace "ovs-router.at:42"
( $at_check_trace; ovs-appctl ovs/route/del 198.51.100.0/24 pkt_mark=1234
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:42"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-router.at:44: ovs-appctl ovs/route/show | grep User | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-router.at:44"
( $at_check_trace; ovs-appctl ovs/route/show | grep User | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "User: 192.0.2.0/24 MARK 123 dev br0 SRC 192.0.2.1
User: 198.51.100.0/24 dev br0 GW 192.0.2.254 SRC 192.0.2.1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:44"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-router.at:48: check_logs "
at_fn_check_prepare_trace "ovs-router.at:48"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:48"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-router.at:48: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovs-router.at:48"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:48"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovs-router.at:48: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovs-router.at:48"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:48"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-router.at:48: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-router.at:48: wait failed" >&5

    $as_echo "ovs-router.at:48" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-router.at:48"
fi

   { set +x
$as_echo "$at_srcdir/ovs-router.at:48: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovs-router.at:48"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:48"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-router.at:48: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovs-router.at:48"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:48"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-router.at:48: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-router.at:48: wait failed" >&5

    $as_echo "ovs-router.at:48" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-router.at:48"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_795
#AT_START_796
at_fn_group_banner 796 'ovs-router.at:51' \
  "appctl - route/lookup6" "                         " 47
at_xfail=no
(
  $as_echo "796. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ovs-router.at:53: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-router.at:53"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:53"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-router.at:53: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ovs-router.at:53"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:53"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-router.at:53: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-router.at:53"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:53"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovs-router.at:53: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ovs-router.at:53"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:53"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-router.at:53: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ovs-router.at:53"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:53"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-router.at:53: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-router.at:53"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:53"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovs-router.at:53: add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy "
at_fn_check_prepare_trace "ovs-router.at:53"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:53"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-router.at:54: ovs-appctl netdev-dummy/ip6addr br0 2001:db8:cafe::1/64"
at_fn_check_prepare_trace "ovs-router.at:54"
( $at_check_trace; ovs-appctl netdev-dummy/ip6addr br0 2001:db8:cafe::1/64
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:54"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-router.at:56: ovs-appctl ovs/route/add 2001:db8:babe::/64 br0 2001:db8:cafe::2"
at_fn_check_prepare_trace "ovs-router.at:56"
( $at_check_trace; ovs-appctl ovs/route/add 2001:db8:babe::/64 br0 2001:db8:cafe::2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:56"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-router.at:58: ovs-appctl ovs/route/add 2001:db8:babe::/64 br0 2001:db8:cafe::3 pkt_mark=321"
at_fn_check_prepare_trace "ovs-router.at:58"
( $at_check_trace; ovs-appctl ovs/route/add 2001:db8:babe::/64 br0 2001:db8:cafe::3 pkt_mark=321
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:58"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-router.at:61: ovs-appctl ovs/route/show | grep User | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-router.at:61"
( $at_check_trace; ovs-appctl ovs/route/show | grep User | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "User: 2001:db8:babe::/64 MARK 321 dev br0 GW 2001:db8:cafe::3 SRC 2001:db8:cafe::1
User: 2001:db8:babe::/64 dev br0 GW 2001:db8:cafe::2 SRC 2001:db8:cafe::1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:61"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-router.at:66: ovs-appctl ovs/route/lookup 2001:db8:babe::1eaf"
at_fn_check_prepare_trace "ovs-router.at:66"
( $at_check_trace; ovs-appctl ovs/route/lookup 2001:db8:babe::1eaf
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "src 2001:db8:cafe::1
gateway 2001:db8:cafe::2
dev br0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:66"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-router.at:71: ovs-appctl ovs/route/lookup 2001:db8:babe::1eaf pkt_mark=321"
at_fn_check_prepare_trace "ovs-router.at:71"
( $at_check_trace; ovs-appctl ovs/route/lookup 2001:db8:babe::1eaf pkt_mark=321
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "src 2001:db8:cafe::1
gateway 2001:db8:cafe::3
dev br0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:71"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-router.at:76: ovs-appctl ovs/route/del 2001:db8:babe::/64 pkt_mark=321"
at_fn_check_prepare_trace "ovs-router.at:76"
( $at_check_trace; ovs-appctl ovs/route/del 2001:db8:babe::/64 pkt_mark=321
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:76"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-router.at:78: ovs-appctl ovs/route/show | grep User | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-router.at:78"
( $at_check_trace; ovs-appctl ovs/route/show | grep User | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "User: 2001:db8:babe::/64 dev br0 GW 2001:db8:cafe::2 SRC 2001:db8:cafe::1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:78"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-router.at:82: check_logs "
at_fn_check_prepare_trace "ovs-router.at:82"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:82"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-router.at:82: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovs-router.at:82"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:82"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovs-router.at:82: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovs-router.at:82"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:82"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-router.at:82: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-router.at:82: wait failed" >&5

    $as_echo "ovs-router.at:82" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-router.at:82"
fi

   { set +x
$as_echo "$at_srcdir/ovs-router.at:82: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovs-router.at:82"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:82"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-router.at:82: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovs-router.at:82"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-router.at:82"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-router.at:82: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-router.at:82: wait failed" >&5

    $as_echo "ovs-router.at:82" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-router.at:82"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_796
#AT_START_797
at_fn_group_banner 797 'lockfile.at:15' \
  "lock and unlock" "                                " 48
at_xfail=no
(
  $as_echo "797. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



   { set +x
$as_echo "$at_srcdir/lockfile.at:15: ovstest test-lockfile lock_and_unlock"
at_fn_check_prepare_trace "lockfile.at:15"
( $at_check_trace; ovstest test-lockfile lock_and_unlock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo >>"$at_stdout"; $as_echo "lock_and_unlock: success (0 children)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lockfile.at:15"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/lockfile.at:15: sed 's/pid [0-9]*/pid <pid>/' stderr"
at_fn_check_prepare_trace "lockfile.at:15"
( $at_check_trace; sed 's/pid [0-9]*/pid <pid>/' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lockfile.at:15"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_797
#AT_START_798
at_fn_group_banner 798 'lockfile.at:17' \
  "lock and unlock twice" "                          " 48
at_xfail=no
(
  $as_echo "798. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



   { set +x
$as_echo "$at_srcdir/lockfile.at:17: ovstest test-lockfile lock_and_unlock_twice"
at_fn_check_prepare_trace "lockfile.at:17"
( $at_check_trace; ovstest test-lockfile lock_and_unlock_twice
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo >>"$at_stdout"; $as_echo "lock_and_unlock_twice: success (0 children)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lockfile.at:17"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/lockfile.at:17: sed 's/pid [0-9]*/pid <pid>/' stderr"
at_fn_check_prepare_trace "lockfile.at:17"
( $at_check_trace; sed 's/pid [0-9]*/pid <pid>/' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lockfile.at:17"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_798
#AT_START_799
at_fn_group_banner 799 'lockfile.at:19' \
  "lock blocks same process" "                       " 48
at_xfail=no
(
  $as_echo "799. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



   { set +x
$as_echo "$at_srcdir/lockfile.at:19: ovstest test-lockfile lock_blocks_same_process"
at_fn_check_prepare_trace "lockfile.at:19"
( $at_check_trace; ovstest test-lockfile lock_blocks_same_process
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo >>"$at_stdout"; $as_echo "lock_blocks_same_process: success (0 children)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lockfile.at:19"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/lockfile.at:19: sed 's/pid [0-9]*/pid <pid>/' stderr"
at_fn_check_prepare_trace "lockfile.at:19"
( $at_check_trace; sed 's/pid [0-9]*/pid <pid>/' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "lockfile|WARN|.file.~lock~: cannot lock file because this process has already locked it
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lockfile.at:19"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_799
#AT_START_800
at_fn_group_banner 800 'lockfile.at:23' \
  "lock blocks same process twice" "                 " 48
at_xfail=no
(
  $as_echo "800. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



   { set +x
$as_echo "$at_srcdir/lockfile.at:23: ovstest test-lockfile lock_blocks_same_process_twice"
at_fn_check_prepare_trace "lockfile.at:23"
( $at_check_trace; ovstest test-lockfile lock_blocks_same_process_twice
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo >>"$at_stdout"; $as_echo "lock_blocks_same_process_twice: success (0 children)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lockfile.at:23"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/lockfile.at:23: sed 's/pid [0-9]*/pid <pid>/' stderr"
at_fn_check_prepare_trace "lockfile.at:23"
( $at_check_trace; sed 's/pid [0-9]*/pid <pid>/' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "lockfile|WARN|.file.~lock~: cannot lock file because this process has already locked it
lockfile|WARN|.file.~lock~: cannot lock file because this process has already locked it
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lockfile.at:23"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_800
#AT_START_801
at_fn_group_banner 801 'lockfile.at:28' \
  "lock blocks other process" "                      " 48
at_xfail=no
(
  $as_echo "801. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "lockfile.at:28" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/lockfile.at:28"

   { set +x
$as_echo "$at_srcdir/lockfile.at:28: ovstest test-lockfile lock_blocks_other_process"
at_fn_check_prepare_trace "lockfile.at:28"
( $at_check_trace; ovstest test-lockfile lock_blocks_other_process
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo >>"$at_stdout"; $as_echo "lock_blocks_other_process: success (1 child)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lockfile.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/lockfile.at:28: sed 's/pid [0-9]*/pid <pid>/' stderr"
at_fn_check_prepare_trace "lockfile.at:28"
( $at_check_trace; sed 's/pid [0-9]*/pid <pid>/' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "lockfile|WARN|.file.~lock~: child does not inherit lock
lockfile|WARN|.file.~lock~: cannot lock file because it is already locked by pid <pid>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lockfile.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_801
#AT_START_802
at_fn_group_banner 802 'lockfile.at:33' \
  "lock twice blocks other process" "                " 48
at_xfail=no
(
  $as_echo "802. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "lockfile.at:33" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/lockfile.at:33"

   { set +x
$as_echo "$at_srcdir/lockfile.at:33: ovstest test-lockfile lock_twice_blocks_other_process"
at_fn_check_prepare_trace "lockfile.at:33"
( $at_check_trace; ovstest test-lockfile lock_twice_blocks_other_process
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo >>"$at_stdout"; $as_echo "lock_twice_blocks_other_process: success (1 child)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lockfile.at:33"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/lockfile.at:33: sed 's/pid [0-9]*/pid <pid>/' stderr"
at_fn_check_prepare_trace "lockfile.at:33"
( $at_check_trace; sed 's/pid [0-9]*/pid <pid>/' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "lockfile|WARN|.file.~lock~: cannot lock file because this process has already locked it
lockfile|WARN|.file.~lock~: child does not inherit lock
lockfile|WARN|.file.~lock~: cannot lock file because it is already locked by pid <pid>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lockfile.at:33"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_802
#AT_START_803
at_fn_group_banner 803 'lockfile.at:39' \
  "lock and unlock allows other process" "           " 48
at_xfail=no
(
  $as_echo "803. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "lockfile.at:39" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/lockfile.at:39"

   { set +x
$as_echo "$at_srcdir/lockfile.at:39: ovstest test-lockfile lock_and_unlock_allows_other_process"
at_fn_check_prepare_trace "lockfile.at:39"
( $at_check_trace; ovstest test-lockfile lock_and_unlock_allows_other_process
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo >>"$at_stdout"; $as_echo "lock_and_unlock_allows_other_process: success (1 child)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lockfile.at:39"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/lockfile.at:39: sed 's/pid [0-9]*/pid <pid>/' stderr"
at_fn_check_prepare_trace "lockfile.at:39"
( $at_check_trace; sed 's/pid [0-9]*/pid <pid>/' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lockfile.at:39"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_803
#AT_START_804
at_fn_group_banner 804 'lockfile.at:41' \
  "lock multiple" "                                  " 48
at_xfail=no
(
  $as_echo "804. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



   { set +x
$as_echo "$at_srcdir/lockfile.at:41: ovstest test-lockfile lock_multiple"
at_fn_check_prepare_trace "lockfile.at:41"
( $at_check_trace; ovstest test-lockfile lock_multiple
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo >>"$at_stdout"; $as_echo "lock_multiple: success (0 children)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lockfile.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/lockfile.at:41: sed 's/pid [0-9]*/pid <pid>/' stderr"
at_fn_check_prepare_trace "lockfile.at:41"
( $at_check_trace; sed 's/pid [0-9]*/pid <pid>/' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "lockfile|WARN|.a.~lock~: cannot lock file because this process has already locked it
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lockfile.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_804
#AT_START_805
at_fn_group_banner 805 'lockfile.at:45' \
  "lock symlink" "                                   " 48
at_xfail=no
(
  $as_echo "805. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "lockfile.at:45" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/lockfile.at:45"

   { set +x
$as_echo "$at_srcdir/lockfile.at:45: ovstest test-lockfile lock_symlink"
at_fn_check_prepare_trace "lockfile.at:45"
( $at_check_trace; ovstest test-lockfile lock_symlink
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo >>"$at_stdout"; $as_echo "lock_symlink: success (0 children)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lockfile.at:45"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/lockfile.at:45: sed 's/pid [0-9]*/pid <pid>/' stderr"
at_fn_check_prepare_trace "lockfile.at:45"
( $at_check_trace; sed 's/pid [0-9]*/pid <pid>/' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "lockfile|WARN|.a.~lock~: cannot lock file because this process has already locked it
lockfile|WARN|.b.~lock~: cannot lock file because this process has already locked it
lockfile|WARN|.b.~lock~: cannot lock file because this process has already locked it
lockfile|WARN|.a.~lock~: cannot lock file because this process has already locked it
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lockfile.at:45"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_805
#AT_START_806
at_fn_group_banner 806 'lockfile.at:52' \
  "lock symlink to dir" "                            " 48
at_xfail=no
(
  $as_echo "806. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "lockfile.at:52" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/lockfile.at:52"

   { set +x
$as_echo "$at_srcdir/lockfile.at:52: ovstest test-lockfile lock_symlink_to_dir"
at_fn_check_prepare_trace "lockfile.at:52"
( $at_check_trace; ovstest test-lockfile lock_symlink_to_dir
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo >>"$at_stdout"; $as_echo "lock_symlink_to_dir: success (0 children)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lockfile.at:52"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/lockfile.at:52: sed 's/pid [0-9]*/pid <pid>/' stderr"
at_fn_check_prepare_trace "lockfile.at:52"
( $at_check_trace; sed 's/pid [0-9]*/pid <pid>/' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "lockfile|WARN|dir/.b.~lock~: cannot lock file because this process has already locked it
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lockfile.at:52"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_806
#AT_START_807
at_fn_group_banner 807 'reconnect.at:32' \
  "nothing happens if not enabled - C" "             " 49
at_xfail=no
(
  $as_echo "807. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



   cat >input <<'_ATEOF'
run
timeout
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:32: ovstest test-reconnect < input"
at_fn_check_prepare_trace "reconnect.at:32"
( $at_check_trace; ovstest test-reconnect < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
run
timeout
  no timeout
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_807
#AT_START_808
at_fn_group_banner 808 'reconnect.at:32' \
  "nothing happens if not enabled - Python2" "       " 49
at_xfail=no
(
  $as_echo "808. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "reconnect.at:32" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/reconnect.at:32"

   cat >input <<'_ATEOF'
run
timeout
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:32: \$PYTHON \$srcdir/test-reconnect.py < input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-reconnect.py < input" "reconnect.at:32"
( $at_check_trace; $PYTHON $srcdir/test-reconnect.py < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
run
timeout
  no timeout
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_808
#AT_START_809
at_fn_group_banner 809 'reconnect.at:32' \
  "nothing happens if not enabled - Python3" "       " 49
at_xfail=no
(
  $as_echo "809. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "reconnect.at:32" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/reconnect.at:32"

   cat >input <<'_ATEOF'
run
timeout
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:32: \$PYTHON3 \$srcdir/test-reconnect.py < input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-reconnect.py < input" "reconnect.at:32"
( $at_check_trace; $PYTHON3 $srcdir/test-reconnect.py < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
run
timeout
  no timeout
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_809
#AT_START_810
at_fn_group_banner 810 'reconnect.at:43' \
  "quick connect, idle disconnect - C" "             " 49
at_xfail=no
(
  $as_echo "810. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



   cat >input <<'_ATEOF'
enable

# Connection succeeds.
run
connected

# Send inactivity probe.
timeout
run

# Idle timeout kills connection.
timeout
run
disconnected
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:43: ovstest test-reconnect < input"
at_fn_check_prepare_trace "reconnect.at:43"
( $at_check_trace; ovstest test-reconnect < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
enable
  in BACKOFF for 0 ms (0 ms backoff)

# Connection succeeds.
run
  should connect
connected
  in ACTIVE for 0 ms (0 ms backoff)
  created 1000, last activity 1000, last connected 1000
  1 successful connections out of 1 attempts, seqno 1
  connected
  last connected 0 ms ago, connected 0 ms total

# Send inactivity probe.
timeout
  advance 5000 ms

### t=6000 ###
  in ACTIVE for 5000 ms (0 ms backoff)
run
  should send probe
  in IDLE for 0 ms (0 ms backoff)

# Idle timeout kills connection.
timeout
  advance 5000 ms

### t=11000 ###
  in IDLE for 5000 ms (0 ms backoff)
run
  should disconnect
disconnected
  in BACKOFF for 0 ms (1000 ms backoff)
  1 successful connections out of 1 attempts, seqno 2
  disconnected
  disconnected at 11000 ms (0 ms ago)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:43"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_810
#AT_START_811
at_fn_group_banner 811 'reconnect.at:43' \
  "quick connect, idle disconnect - Python2" "       " 49
at_xfail=no
(
  $as_echo "811. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "reconnect.at:43" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/reconnect.at:43"

   cat >input <<'_ATEOF'
enable

# Connection succeeds.
run
connected

# Send inactivity probe.
timeout
run

# Idle timeout kills connection.
timeout
run
disconnected
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:43: \$PYTHON \$srcdir/test-reconnect.py < input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-reconnect.py < input" "reconnect.at:43"
( $at_check_trace; $PYTHON $srcdir/test-reconnect.py < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
enable
  in BACKOFF for 0 ms (0 ms backoff)

# Connection succeeds.
run
  should connect
connected
  in ACTIVE for 0 ms (0 ms backoff)
  created 1000, last activity 1000, last connected 1000
  1 successful connections out of 1 attempts, seqno 1
  connected
  last connected 0 ms ago, connected 0 ms total

# Send inactivity probe.
timeout
  advance 5000 ms

### t=6000 ###
  in ACTIVE for 5000 ms (0 ms backoff)
run
  should send probe
  in IDLE for 0 ms (0 ms backoff)

# Idle timeout kills connection.
timeout
  advance 5000 ms

### t=11000 ###
  in IDLE for 5000 ms (0 ms backoff)
run
  should disconnect
disconnected
  in BACKOFF for 0 ms (1000 ms backoff)
  1 successful connections out of 1 attempts, seqno 2
  disconnected
  disconnected at 11000 ms (0 ms ago)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:43"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_811
#AT_START_812
at_fn_group_banner 812 'reconnect.at:43' \
  "quick connect, idle disconnect - Python3" "       " 49
at_xfail=no
(
  $as_echo "812. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "reconnect.at:43" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/reconnect.at:43"

   cat >input <<'_ATEOF'
enable

# Connection succeeds.
run
connected

# Send inactivity probe.
timeout
run

# Idle timeout kills connection.
timeout
run
disconnected
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:43: \$PYTHON3 \$srcdir/test-reconnect.py < input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-reconnect.py < input" "reconnect.at:43"
( $at_check_trace; $PYTHON3 $srcdir/test-reconnect.py < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
enable
  in BACKOFF for 0 ms (0 ms backoff)

# Connection succeeds.
run
  should connect
connected
  in ACTIVE for 0 ms (0 ms backoff)
  created 1000, last activity 1000, last connected 1000
  1 successful connections out of 1 attempts, seqno 1
  connected
  last connected 0 ms ago, connected 0 ms total

# Send inactivity probe.
timeout
  advance 5000 ms

### t=6000 ###
  in ACTIVE for 5000 ms (0 ms backoff)
run
  should send probe
  in IDLE for 0 ms (0 ms backoff)

# Idle timeout kills connection.
timeout
  advance 5000 ms

### t=11000 ###
  in IDLE for 5000 ms (0 ms backoff)
run
  should disconnect
disconnected
  in BACKOFF for 0 ms (1000 ms backoff)
  1 successful connections out of 1 attempts, seqno 2
  disconnected
  disconnected at 11000 ms (0 ms ago)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:43"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_812
#AT_START_813
at_fn_group_banner 813 'reconnect.at:99' \
  "slow connect, idle disconnect - C" "              " 49
at_xfail=no
(
  $as_echo "813. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



   cat >input <<'_ATEOF'
enable

# Start connecting.
run
connecting

# Connect after 500 ms.
advance 500
run
connected

# Send inactivity probe.
timeout
run

# Idle timeout kills connection.
timeout
run
disconnected
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:99: ovstest test-reconnect < input"
at_fn_check_prepare_trace "reconnect.at:99"
( $at_check_trace; ovstest test-reconnect < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
enable
  in BACKOFF for 0 ms (0 ms backoff)

# Start connecting.
run
  should connect
connecting
  in CONNECTING for 0 ms (0 ms backoff)

# Connect after 500 ms.
advance 500

### t=1500 ###
  in CONNECTING for 500 ms (0 ms backoff)
run
connected
  in ACTIVE for 0 ms (0 ms backoff)
  created 1000, last activity 1000, last connected 1500
  1 successful connections out of 1 attempts, seqno 1
  connected
  last connected 0 ms ago, connected 0 ms total

# Send inactivity probe.
timeout
  advance 5000 ms

### t=6500 ###
  in ACTIVE for 5000 ms (0 ms backoff)
run
  should send probe
  in IDLE for 0 ms (0 ms backoff)

# Idle timeout kills connection.
timeout
  advance 5000 ms

### t=11500 ###
  in IDLE for 5000 ms (0 ms backoff)
run
  should disconnect
disconnected
  in BACKOFF for 0 ms (1000 ms backoff)
  1 successful connections out of 1 attempts, seqno 2
  disconnected
  disconnected at 11500 ms (0 ms ago)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:99"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_813
#AT_START_814
at_fn_group_banner 814 'reconnect.at:99' \
  "slow connect, idle disconnect - Python2" "        " 49
at_xfail=no
(
  $as_echo "814. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "reconnect.at:99" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/reconnect.at:99"

   cat >input <<'_ATEOF'
enable

# Start connecting.
run
connecting

# Connect after 500 ms.
advance 500
run
connected

# Send inactivity probe.
timeout
run

# Idle timeout kills connection.
timeout
run
disconnected
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:99: \$PYTHON \$srcdir/test-reconnect.py < input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-reconnect.py < input" "reconnect.at:99"
( $at_check_trace; $PYTHON $srcdir/test-reconnect.py < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
enable
  in BACKOFF for 0 ms (0 ms backoff)

# Start connecting.
run
  should connect
connecting
  in CONNECTING for 0 ms (0 ms backoff)

# Connect after 500 ms.
advance 500

### t=1500 ###
  in CONNECTING for 500 ms (0 ms backoff)
run
connected
  in ACTIVE for 0 ms (0 ms backoff)
  created 1000, last activity 1000, last connected 1500
  1 successful connections out of 1 attempts, seqno 1
  connected
  last connected 0 ms ago, connected 0 ms total

# Send inactivity probe.
timeout
  advance 5000 ms

### t=6500 ###
  in ACTIVE for 5000 ms (0 ms backoff)
run
  should send probe
  in IDLE for 0 ms (0 ms backoff)

# Idle timeout kills connection.
timeout
  advance 5000 ms

### t=11500 ###
  in IDLE for 5000 ms (0 ms backoff)
run
  should disconnect
disconnected
  in BACKOFF for 0 ms (1000 ms backoff)
  1 successful connections out of 1 attempts, seqno 2
  disconnected
  disconnected at 11500 ms (0 ms ago)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:99"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_814
#AT_START_815
at_fn_group_banner 815 'reconnect.at:99' \
  "slow connect, idle disconnect - Python3" "        " 49
at_xfail=no
(
  $as_echo "815. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "reconnect.at:99" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/reconnect.at:99"

   cat >input <<'_ATEOF'
enable

# Start connecting.
run
connecting

# Connect after 500 ms.
advance 500
run
connected

# Send inactivity probe.
timeout
run

# Idle timeout kills connection.
timeout
run
disconnected
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:99: \$PYTHON3 \$srcdir/test-reconnect.py < input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-reconnect.py < input" "reconnect.at:99"
( $at_check_trace; $PYTHON3 $srcdir/test-reconnect.py < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
enable
  in BACKOFF for 0 ms (0 ms backoff)

# Start connecting.
run
  should connect
connecting
  in CONNECTING for 0 ms (0 ms backoff)

# Connect after 500 ms.
advance 500

### t=1500 ###
  in CONNECTING for 500 ms (0 ms backoff)
run
connected
  in ACTIVE for 0 ms (0 ms backoff)
  created 1000, last activity 1000, last connected 1500
  1 successful connections out of 1 attempts, seqno 1
  connected
  last connected 0 ms ago, connected 0 ms total

# Send inactivity probe.
timeout
  advance 5000 ms

### t=6500 ###
  in ACTIVE for 5000 ms (0 ms backoff)
run
  should send probe
  in IDLE for 0 ms (0 ms backoff)

# Idle timeout kills connection.
timeout
  advance 5000 ms

### t=11500 ###
  in IDLE for 5000 ms (0 ms backoff)
run
  should disconnect
disconnected
  in BACKOFF for 0 ms (1000 ms backoff)
  1 successful connections out of 1 attempts, seqno 2
  disconnected
  disconnected at 11500 ms (0 ms ago)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:99"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_815
#AT_START_816
at_fn_group_banner 816 'reconnect.at:169' \
  "connect backs off - C" "                          " 49
at_xfail=no
(
  $as_echo "816. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



   cat >input <<'_ATEOF'
enable

# First connection attempt fails after 1000 ms.
run
connecting
run
timeout
run
connect-failed

# Back off for 1000 ms.
timeout
run

# Second connection attempt fails after 1000 ms.
connecting
timeout
run
connect-failed

# Back off for 2000 ms.
timeout
run

# Third connection attempt fails after 2000 ms.
connecting
timeout
run
connect-failed

# Back off for 4000 ms.
timeout
run

# Third connection attempt fails after 4000 ms.
connecting
timeout
run
connect-failed

# Back off for 8000 ms.
timeout
run

# Third connection attempt fails after 8000 ms.
connecting
timeout
run
connect-failed

# Back off for 8000 ms.
timeout
run

# Fourth connection attempt fails after 8000 ms.
connecting
timeout
run
connect-failed
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:169: ovstest test-reconnect < input"
at_fn_check_prepare_trace "reconnect.at:169"
( $at_check_trace; ovstest test-reconnect < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
enable
  in BACKOFF for 0 ms (0 ms backoff)

# First connection attempt fails after 1000 ms.
run
  should connect
connecting
  in CONNECTING for 0 ms (0 ms backoff)
run
timeout
  advance 1000 ms

### t=2000 ###
  in CONNECTING for 1000 ms (0 ms backoff)
run
  should disconnect
connect-failed
  in BACKOFF for 0 ms (1000 ms backoff)
  0 successful connections out of 1 attempts, seqno 0

# Back off for 1000 ms.
timeout
  advance 1000 ms

### t=3000 ###
  in BACKOFF for 1000 ms (1000 ms backoff)
run
  should connect

# Second connection attempt fails after 1000 ms.
connecting
  in CONNECTING for 0 ms (1000 ms backoff)
timeout
  advance 1000 ms

### t=4000 ###
  in CONNECTING for 1000 ms (1000 ms backoff)
run
  should disconnect
connect-failed
  in BACKOFF for 0 ms (2000 ms backoff)
  0 successful connections out of 2 attempts, seqno 0

# Back off for 2000 ms.
timeout
  advance 2000 ms

### t=6000 ###
  in BACKOFF for 2000 ms (2000 ms backoff)
run
  should connect

# Third connection attempt fails after 2000 ms.
connecting
  in CONNECTING for 0 ms (2000 ms backoff)
timeout
  advance 2000 ms

### t=8000 ###
  in CONNECTING for 2000 ms (2000 ms backoff)
run
  should disconnect
connect-failed
  in BACKOFF for 0 ms (4000 ms backoff)
  0 successful connections out of 3 attempts, seqno 0

# Back off for 4000 ms.
timeout
  advance 4000 ms

### t=12000 ###
  in BACKOFF for 4000 ms (4000 ms backoff)
run
  should connect

# Third connection attempt fails after 4000 ms.
connecting
  in CONNECTING for 0 ms (4000 ms backoff)
timeout
  advance 4000 ms

### t=16000 ###
  in CONNECTING for 4000 ms (4000 ms backoff)
run
  should disconnect
connect-failed
  in BACKOFF for 0 ms (8000 ms backoff)
  0 successful connections out of 4 attempts, seqno 0

# Back off for 8000 ms.
timeout
  advance 8000 ms

### t=24000 ###
  in BACKOFF for 8000 ms (8000 ms backoff)
run
  should connect

# Third connection attempt fails after 8000 ms.
connecting
  in CONNECTING for 0 ms (8000 ms backoff)
timeout
  advance 8000 ms

### t=32000 ###
  in CONNECTING for 8000 ms (8000 ms backoff)
run
  should disconnect
connect-failed
  in BACKOFF for 0 ms (8000 ms backoff)
  0 successful connections out of 5 attempts, seqno 0

# Back off for 8000 ms.
timeout
  advance 8000 ms

### t=40000 ###
  in BACKOFF for 8000 ms (8000 ms backoff)
run
  should connect

# Fourth connection attempt fails after 8000 ms.
connecting
  in CONNECTING for 0 ms (8000 ms backoff)
timeout
  advance 8000 ms

### t=48000 ###
  in CONNECTING for 8000 ms (8000 ms backoff)
run
  should disconnect
connect-failed
  in BACKOFF for 0 ms (8000 ms backoff)
  0 successful connections out of 6 attempts, seqno 0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:169"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_816
#AT_START_817
at_fn_group_banner 817 'reconnect.at:169' \
  "connect backs off - Python2" "                    " 49
at_xfail=no
(
  $as_echo "817. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "reconnect.at:169" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/reconnect.at:169"

   cat >input <<'_ATEOF'
enable

# First connection attempt fails after 1000 ms.
run
connecting
run
timeout
run
connect-failed

# Back off for 1000 ms.
timeout
run

# Second connection attempt fails after 1000 ms.
connecting
timeout
run
connect-failed

# Back off for 2000 ms.
timeout
run

# Third connection attempt fails after 2000 ms.
connecting
timeout
run
connect-failed

# Back off for 4000 ms.
timeout
run

# Third connection attempt fails after 4000 ms.
connecting
timeout
run
connect-failed

# Back off for 8000 ms.
timeout
run

# Third connection attempt fails after 8000 ms.
connecting
timeout
run
connect-failed

# Back off for 8000 ms.
timeout
run

# Fourth connection attempt fails after 8000 ms.
connecting
timeout
run
connect-failed
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:169: \$PYTHON \$srcdir/test-reconnect.py < input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-reconnect.py < input" "reconnect.at:169"
( $at_check_trace; $PYTHON $srcdir/test-reconnect.py < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
enable
  in BACKOFF for 0 ms (0 ms backoff)

# First connection attempt fails after 1000 ms.
run
  should connect
connecting
  in CONNECTING for 0 ms (0 ms backoff)
run
timeout
  advance 1000 ms

### t=2000 ###
  in CONNECTING for 1000 ms (0 ms backoff)
run
  should disconnect
connect-failed
  in BACKOFF for 0 ms (1000 ms backoff)
  0 successful connections out of 1 attempts, seqno 0

# Back off for 1000 ms.
timeout
  advance 1000 ms

### t=3000 ###
  in BACKOFF for 1000 ms (1000 ms backoff)
run
  should connect

# Second connection attempt fails after 1000 ms.
connecting
  in CONNECTING for 0 ms (1000 ms backoff)
timeout
  advance 1000 ms

### t=4000 ###
  in CONNECTING for 1000 ms (1000 ms backoff)
run
  should disconnect
connect-failed
  in BACKOFF for 0 ms (2000 ms backoff)
  0 successful connections out of 2 attempts, seqno 0

# Back off for 2000 ms.
timeout
  advance 2000 ms

### t=6000 ###
  in BACKOFF for 2000 ms (2000 ms backoff)
run
  should connect

# Third connection attempt fails after 2000 ms.
connecting
  in CONNECTING for 0 ms (2000 ms backoff)
timeout
  advance 2000 ms

### t=8000 ###
  in CONNECTING for 2000 ms (2000 ms backoff)
run
  should disconnect
connect-failed
  in BACKOFF for 0 ms (4000 ms backoff)
  0 successful connections out of 3 attempts, seqno 0

# Back off for 4000 ms.
timeout
  advance 4000 ms

### t=12000 ###
  in BACKOFF for 4000 ms (4000 ms backoff)
run
  should connect

# Third connection attempt fails after 4000 ms.
connecting
  in CONNECTING for 0 ms (4000 ms backoff)
timeout
  advance 4000 ms

### t=16000 ###
  in CONNECTING for 4000 ms (4000 ms backoff)
run
  should disconnect
connect-failed
  in BACKOFF for 0 ms (8000 ms backoff)
  0 successful connections out of 4 attempts, seqno 0

# Back off for 8000 ms.
timeout
  advance 8000 ms

### t=24000 ###
  in BACKOFF for 8000 ms (8000 ms backoff)
run
  should connect

# Third connection attempt fails after 8000 ms.
connecting
  in CONNECTING for 0 ms (8000 ms backoff)
timeout
  advance 8000 ms

### t=32000 ###
  in CONNECTING for 8000 ms (8000 ms backoff)
run
  should disconnect
connect-failed
  in BACKOFF for 0 ms (8000 ms backoff)
  0 successful connections out of 5 attempts, seqno 0

# Back off for 8000 ms.
timeout
  advance 8000 ms

### t=40000 ###
  in BACKOFF for 8000 ms (8000 ms backoff)
run
  should connect

# Fourth connection attempt fails after 8000 ms.
connecting
  in CONNECTING for 0 ms (8000 ms backoff)
timeout
  advance 8000 ms

### t=48000 ###
  in CONNECTING for 8000 ms (8000 ms backoff)
run
  should disconnect
connect-failed
  in BACKOFF for 0 ms (8000 ms backoff)
  0 successful connections out of 6 attempts, seqno 0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:169"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_817
#AT_START_818
at_fn_group_banner 818 'reconnect.at:169' \
  "connect backs off - Python3" "                    " 49
at_xfail=no
(
  $as_echo "818. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "reconnect.at:169" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/reconnect.at:169"

   cat >input <<'_ATEOF'
enable

# First connection attempt fails after 1000 ms.
run
connecting
run
timeout
run
connect-failed

# Back off for 1000 ms.
timeout
run

# Second connection attempt fails after 1000 ms.
connecting
timeout
run
connect-failed

# Back off for 2000 ms.
timeout
run

# Third connection attempt fails after 2000 ms.
connecting
timeout
run
connect-failed

# Back off for 4000 ms.
timeout
run

# Third connection attempt fails after 4000 ms.
connecting
timeout
run
connect-failed

# Back off for 8000 ms.
timeout
run

# Third connection attempt fails after 8000 ms.
connecting
timeout
run
connect-failed

# Back off for 8000 ms.
timeout
run

# Fourth connection attempt fails after 8000 ms.
connecting
timeout
run
connect-failed
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:169: \$PYTHON3 \$srcdir/test-reconnect.py < input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-reconnect.py < input" "reconnect.at:169"
( $at_check_trace; $PYTHON3 $srcdir/test-reconnect.py < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
enable
  in BACKOFF for 0 ms (0 ms backoff)

# First connection attempt fails after 1000 ms.
run
  should connect
connecting
  in CONNECTING for 0 ms (0 ms backoff)
run
timeout
  advance 1000 ms

### t=2000 ###
  in CONNECTING for 1000 ms (0 ms backoff)
run
  should disconnect
connect-failed
  in BACKOFF for 0 ms (1000 ms backoff)
  0 successful connections out of 1 attempts, seqno 0

# Back off for 1000 ms.
timeout
  advance 1000 ms

### t=3000 ###
  in BACKOFF for 1000 ms (1000 ms backoff)
run
  should connect

# Second connection attempt fails after 1000 ms.
connecting
  in CONNECTING for 0 ms (1000 ms backoff)
timeout
  advance 1000 ms

### t=4000 ###
  in CONNECTING for 1000 ms (1000 ms backoff)
run
  should disconnect
connect-failed
  in BACKOFF for 0 ms (2000 ms backoff)
  0 successful connections out of 2 attempts, seqno 0

# Back off for 2000 ms.
timeout
  advance 2000 ms

### t=6000 ###
  in BACKOFF for 2000 ms (2000 ms backoff)
run
  should connect

# Third connection attempt fails after 2000 ms.
connecting
  in CONNECTING for 0 ms (2000 ms backoff)
timeout
  advance 2000 ms

### t=8000 ###
  in CONNECTING for 2000 ms (2000 ms backoff)
run
  should disconnect
connect-failed
  in BACKOFF for 0 ms (4000 ms backoff)
  0 successful connections out of 3 attempts, seqno 0

# Back off for 4000 ms.
timeout
  advance 4000 ms

### t=12000 ###
  in BACKOFF for 4000 ms (4000 ms backoff)
run
  should connect

# Third connection attempt fails after 4000 ms.
connecting
  in CONNECTING for 0 ms (4000 ms backoff)
timeout
  advance 4000 ms

### t=16000 ###
  in CONNECTING for 4000 ms (4000 ms backoff)
run
  should disconnect
connect-failed
  in BACKOFF for 0 ms (8000 ms backoff)
  0 successful connections out of 4 attempts, seqno 0

# Back off for 8000 ms.
timeout
  advance 8000 ms

### t=24000 ###
  in BACKOFF for 8000 ms (8000 ms backoff)
run
  should connect

# Third connection attempt fails after 8000 ms.
connecting
  in CONNECTING for 0 ms (8000 ms backoff)
timeout
  advance 8000 ms

### t=32000 ###
  in CONNECTING for 8000 ms (8000 ms backoff)
run
  should disconnect
connect-failed
  in BACKOFF for 0 ms (8000 ms backoff)
  0 successful connections out of 5 attempts, seqno 0

# Back off for 8000 ms.
timeout
  advance 8000 ms

### t=40000 ###
  in BACKOFF for 8000 ms (8000 ms backoff)
run
  should connect

# Fourth connection attempt fails after 8000 ms.
connecting
  in CONNECTING for 0 ms (8000 ms backoff)
timeout
  advance 8000 ms

### t=48000 ###
  in CONNECTING for 8000 ms (8000 ms backoff)
run
  should disconnect
connect-failed
  in BACKOFF for 0 ms (8000 ms backoff)
  0 successful connections out of 6 attempts, seqno 0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:169"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_818
#AT_START_819
at_fn_group_banner 819 'reconnect.at:368' \
  "connections with no data preserve backoff - C" "  " 49
at_xfail=no
(
  $as_echo "819. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



   cat >input <<'_ATEOF'
enable

# First connect, then idle timeout kills connection.
run
connected
timeout
run
timeout
run
disconnected

# Back off for 1000 ms.
timeout
run

# Second connect, then idle timeout kills connection.
run
connected
timeout
run
timeout
run
disconnected

# Back off for 2000 ms.
timeout
run

# Third connect, then idle timeout kills connection.
run
connected
timeout
run
timeout
run
disconnected

# Back off for 4000 ms.
timeout
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:368: ovstest test-reconnect < input"
at_fn_check_prepare_trace "reconnect.at:368"
( $at_check_trace; ovstest test-reconnect < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
enable
  in BACKOFF for 0 ms (0 ms backoff)

# First connect, then idle timeout kills connection.
run
  should connect
connected
  in ACTIVE for 0 ms (0 ms backoff)
  created 1000, last activity 1000, last connected 1000
  1 successful connections out of 1 attempts, seqno 1
  connected
  last connected 0 ms ago, connected 0 ms total
timeout
  advance 5000 ms

### t=6000 ###
  in ACTIVE for 5000 ms (0 ms backoff)
run
  should send probe
  in IDLE for 0 ms (0 ms backoff)
timeout
  advance 5000 ms

### t=11000 ###
  in IDLE for 5000 ms (0 ms backoff)
run
  should disconnect
disconnected
  in BACKOFF for 0 ms (1000 ms backoff)
  1 successful connections out of 1 attempts, seqno 2
  disconnected
  disconnected at 11000 ms (0 ms ago)

# Back off for 1000 ms.
timeout
  advance 1000 ms

### t=12000 ###
  in BACKOFF for 1000 ms (1000 ms backoff)
  last connected 11000 ms ago, connected 10000 ms total
run
  should connect

# Second connect, then idle timeout kills connection.
run
  should connect
connected
  in ACTIVE for 0 ms (1000 ms backoff)
  created 1000, last activity 1000, last connected 12000
  2 successful connections out of 2 attempts, seqno 3
  connected
  last connected 0 ms ago, connected 10000 ms total
timeout
  advance 5000 ms

### t=17000 ###
  in ACTIVE for 5000 ms (1000 ms backoff)
run
  should send probe
  in IDLE for 0 ms (1000 ms backoff)
timeout
  advance 5000 ms

### t=22000 ###
  in IDLE for 5000 ms (1000 ms backoff)
run
  should disconnect
disconnected
  in BACKOFF for 0 ms (2000 ms backoff)
  2 successful connections out of 2 attempts, seqno 4
  disconnected
  disconnected at 22000 ms (0 ms ago)

# Back off for 2000 ms.
timeout
  advance 2000 ms

### t=24000 ###
  in BACKOFF for 2000 ms (2000 ms backoff)
  last connected 12000 ms ago, connected 20000 ms total
run
  should connect

# Third connect, then idle timeout kills connection.
run
  should connect
connected
  in ACTIVE for 0 ms (2000 ms backoff)
  created 1000, last activity 1000, last connected 24000
  3 successful connections out of 3 attempts, seqno 5
  connected
  last connected 0 ms ago, connected 20000 ms total
timeout
  advance 5000 ms

### t=29000 ###
  in ACTIVE for 5000 ms (2000 ms backoff)
run
  should send probe
  in IDLE for 0 ms (2000 ms backoff)
timeout
  advance 5000 ms

### t=34000 ###
  in IDLE for 5000 ms (2000 ms backoff)
run
  should disconnect
disconnected
  in BACKOFF for 0 ms (4000 ms backoff)
  3 successful connections out of 3 attempts, seqno 6
  disconnected
  disconnected at 34000 ms (0 ms ago)

# Back off for 4000 ms.
timeout
  advance 4000 ms

### t=38000 ###
  in BACKOFF for 4000 ms (4000 ms backoff)
  last connected 14000 ms ago, connected 30000 ms total
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:368"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_819
#AT_START_820
at_fn_group_banner 820 'reconnect.at:368' \
  "connections with no data preserve backoff - Python2" "" 49
at_xfail=no
(
  $as_echo "820. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "reconnect.at:368" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/reconnect.at:368"

   cat >input <<'_ATEOF'
enable

# First connect, then idle timeout kills connection.
run
connected
timeout
run
timeout
run
disconnected

# Back off for 1000 ms.
timeout
run

# Second connect, then idle timeout kills connection.
run
connected
timeout
run
timeout
run
disconnected

# Back off for 2000 ms.
timeout
run

# Third connect, then idle timeout kills connection.
run
connected
timeout
run
timeout
run
disconnected

# Back off for 4000 ms.
timeout
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:368: \$PYTHON \$srcdir/test-reconnect.py < input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-reconnect.py < input" "reconnect.at:368"
( $at_check_trace; $PYTHON $srcdir/test-reconnect.py < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
enable
  in BACKOFF for 0 ms (0 ms backoff)

# First connect, then idle timeout kills connection.
run
  should connect
connected
  in ACTIVE for 0 ms (0 ms backoff)
  created 1000, last activity 1000, last connected 1000
  1 successful connections out of 1 attempts, seqno 1
  connected
  last connected 0 ms ago, connected 0 ms total
timeout
  advance 5000 ms

### t=6000 ###
  in ACTIVE for 5000 ms (0 ms backoff)
run
  should send probe
  in IDLE for 0 ms (0 ms backoff)
timeout
  advance 5000 ms

### t=11000 ###
  in IDLE for 5000 ms (0 ms backoff)
run
  should disconnect
disconnected
  in BACKOFF for 0 ms (1000 ms backoff)
  1 successful connections out of 1 attempts, seqno 2
  disconnected
  disconnected at 11000 ms (0 ms ago)

# Back off for 1000 ms.
timeout
  advance 1000 ms

### t=12000 ###
  in BACKOFF for 1000 ms (1000 ms backoff)
  last connected 11000 ms ago, connected 10000 ms total
run
  should connect

# Second connect, then idle timeout kills connection.
run
  should connect
connected
  in ACTIVE for 0 ms (1000 ms backoff)
  created 1000, last activity 1000, last connected 12000
  2 successful connections out of 2 attempts, seqno 3
  connected
  last connected 0 ms ago, connected 10000 ms total
timeout
  advance 5000 ms

### t=17000 ###
  in ACTIVE for 5000 ms (1000 ms backoff)
run
  should send probe
  in IDLE for 0 ms (1000 ms backoff)
timeout
  advance 5000 ms

### t=22000 ###
  in IDLE for 5000 ms (1000 ms backoff)
run
  should disconnect
disconnected
  in BACKOFF for 0 ms (2000 ms backoff)
  2 successful connections out of 2 attempts, seqno 4
  disconnected
  disconnected at 22000 ms (0 ms ago)

# Back off for 2000 ms.
timeout
  advance 2000 ms

### t=24000 ###
  in BACKOFF for 2000 ms (2000 ms backoff)
  last connected 12000 ms ago, connected 20000 ms total
run
  should connect

# Third connect, then idle timeout kills connection.
run
  should connect
connected
  in ACTIVE for 0 ms (2000 ms backoff)
  created 1000, last activity 1000, last connected 24000
  3 successful connections out of 3 attempts, seqno 5
  connected
  last connected 0 ms ago, connected 20000 ms total
timeout
  advance 5000 ms

### t=29000 ###
  in ACTIVE for 5000 ms (2000 ms backoff)
run
  should send probe
  in IDLE for 0 ms (2000 ms backoff)
timeout
  advance 5000 ms

### t=34000 ###
  in IDLE for 5000 ms (2000 ms backoff)
run
  should disconnect
disconnected
  in BACKOFF for 0 ms (4000 ms backoff)
  3 successful connections out of 3 attempts, seqno 6
  disconnected
  disconnected at 34000 ms (0 ms ago)

# Back off for 4000 ms.
timeout
  advance 4000 ms

### t=38000 ###
  in BACKOFF for 4000 ms (4000 ms backoff)
  last connected 14000 ms ago, connected 30000 ms total
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:368"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_820
#AT_START_821
at_fn_group_banner 821 'reconnect.at:368' \
  "connections with no data preserve backoff - Python3" "" 49
at_xfail=no
(
  $as_echo "821. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "reconnect.at:368" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/reconnect.at:368"

   cat >input <<'_ATEOF'
enable

# First connect, then idle timeout kills connection.
run
connected
timeout
run
timeout
run
disconnected

# Back off for 1000 ms.
timeout
run

# Second connect, then idle timeout kills connection.
run
connected
timeout
run
timeout
run
disconnected

# Back off for 2000 ms.
timeout
run

# Third connect, then idle timeout kills connection.
run
connected
timeout
run
timeout
run
disconnected

# Back off for 4000 ms.
timeout
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:368: \$PYTHON3 \$srcdir/test-reconnect.py < input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-reconnect.py < input" "reconnect.at:368"
( $at_check_trace; $PYTHON3 $srcdir/test-reconnect.py < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
enable
  in BACKOFF for 0 ms (0 ms backoff)

# First connect, then idle timeout kills connection.
run
  should connect
connected
  in ACTIVE for 0 ms (0 ms backoff)
  created 1000, last activity 1000, last connected 1000
  1 successful connections out of 1 attempts, seqno 1
  connected
  last connected 0 ms ago, connected 0 ms total
timeout
  advance 5000 ms

### t=6000 ###
  in ACTIVE for 5000 ms (0 ms backoff)
run
  should send probe
  in IDLE for 0 ms (0 ms backoff)
timeout
  advance 5000 ms

### t=11000 ###
  in IDLE for 5000 ms (0 ms backoff)
run
  should disconnect
disconnected
  in BACKOFF for 0 ms (1000 ms backoff)
  1 successful connections out of 1 attempts, seqno 2
  disconnected
  disconnected at 11000 ms (0 ms ago)

# Back off for 1000 ms.
timeout
  advance 1000 ms

### t=12000 ###
  in BACKOFF for 1000 ms (1000 ms backoff)
  last connected 11000 ms ago, connected 10000 ms total
run
  should connect

# Second connect, then idle timeout kills connection.
run
  should connect
connected
  in ACTIVE for 0 ms (1000 ms backoff)
  created 1000, last activity 1000, last connected 12000
  2 successful connections out of 2 attempts, seqno 3
  connected
  last connected 0 ms ago, connected 10000 ms total
timeout
  advance 5000 ms

### t=17000 ###
  in ACTIVE for 5000 ms (1000 ms backoff)
run
  should send probe
  in IDLE for 0 ms (1000 ms backoff)
timeout
  advance 5000 ms

### t=22000 ###
  in IDLE for 5000 ms (1000 ms backoff)
run
  should disconnect
disconnected
  in BACKOFF for 0 ms (2000 ms backoff)
  2 successful connections out of 2 attempts, seqno 4
  disconnected
  disconnected at 22000 ms (0 ms ago)

# Back off for 2000 ms.
timeout
  advance 2000 ms

### t=24000 ###
  in BACKOFF for 2000 ms (2000 ms backoff)
  last connected 12000 ms ago, connected 20000 ms total
run
  should connect

# Third connect, then idle timeout kills connection.
run
  should connect
connected
  in ACTIVE for 0 ms (2000 ms backoff)
  created 1000, last activity 1000, last connected 24000
  3 successful connections out of 3 attempts, seqno 5
  connected
  last connected 0 ms ago, connected 20000 ms total
timeout
  advance 5000 ms

### t=29000 ###
  in ACTIVE for 5000 ms (2000 ms backoff)
run
  should send probe
  in IDLE for 0 ms (2000 ms backoff)
timeout
  advance 5000 ms

### t=34000 ###
  in IDLE for 5000 ms (2000 ms backoff)
run
  should disconnect
disconnected
  in BACKOFF for 0 ms (4000 ms backoff)
  3 successful connections out of 3 attempts, seqno 6
  disconnected
  disconnected at 34000 ms (0 ms ago)

# Back off for 4000 ms.
timeout
  advance 4000 ms

### t=38000 ###
  in BACKOFF for 4000 ms (4000 ms backoff)
  last connected 14000 ms ago, connected 30000 ms total
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:368"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_821
#AT_START_822
at_fn_group_banner 822 'reconnect.at:532' \
  "brief connection preserves backoff - C" "         " 49
at_xfail=no
(
  $as_echo "822. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



   cat >input <<'_ATEOF'
enable

# First connection attempt fails after 1000 ms.
run
connecting
run
timeout
run
connect-failed

# Back off for 1000 ms.
timeout
run

# Second connection attempt fails after 1000 ms.
connecting
timeout
run
connect-failed

# Back off for 2000 ms.
timeout
run

# Third connection attempt succeeds after 500 ms.
connecting
advance 500
run
connected

# Connection drops after another 250 ms.
advance 250
disconnected
run

# Back off for 4000 ms.
timeout
run
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:532: ovstest test-reconnect < input"
at_fn_check_prepare_trace "reconnect.at:532"
( $at_check_trace; ovstest test-reconnect < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
enable
  in BACKOFF for 0 ms (0 ms backoff)

# First connection attempt fails after 1000 ms.
run
  should connect
connecting
  in CONNECTING for 0 ms (0 ms backoff)
run
timeout
  advance 1000 ms

### t=2000 ###
  in CONNECTING for 1000 ms (0 ms backoff)
run
  should disconnect
connect-failed
  in BACKOFF for 0 ms (1000 ms backoff)
  0 successful connections out of 1 attempts, seqno 0

# Back off for 1000 ms.
timeout
  advance 1000 ms

### t=3000 ###
  in BACKOFF for 1000 ms (1000 ms backoff)
run
  should connect

# Second connection attempt fails after 1000 ms.
connecting
  in CONNECTING for 0 ms (1000 ms backoff)
timeout
  advance 1000 ms

### t=4000 ###
  in CONNECTING for 1000 ms (1000 ms backoff)
run
  should disconnect
connect-failed
  in BACKOFF for 0 ms (2000 ms backoff)
  0 successful connections out of 2 attempts, seqno 0

# Back off for 2000 ms.
timeout
  advance 2000 ms

### t=6000 ###
  in BACKOFF for 2000 ms (2000 ms backoff)
run
  should connect

# Third connection attempt succeeds after 500 ms.
connecting
  in CONNECTING for 0 ms (2000 ms backoff)
advance 500

### t=6500 ###
  in CONNECTING for 500 ms (2000 ms backoff)
run
connected
  in ACTIVE for 0 ms (2000 ms backoff)
  created 1000, last activity 1000, last connected 6500
  1 successful connections out of 3 attempts, seqno 1
  connected
  last connected 0 ms ago, connected 0 ms total

# Connection drops after another 250 ms.
advance 250

### t=6750 ###
  in ACTIVE for 250 ms (2000 ms backoff)
disconnected
  in BACKOFF for 0 ms (4000 ms backoff)
  1 successful connections out of 3 attempts, seqno 2
  disconnected
  disconnected at 6750 ms (0 ms ago)
run

# Back off for 4000 ms.
timeout
  advance 4000 ms

### t=10750 ###
  in BACKOFF for 4000 ms (4000 ms backoff)
  last connected 4250 ms ago, connected 250 ms total
run
  should connect
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_822
#AT_START_823
at_fn_group_banner 823 'reconnect.at:532' \
  "brief connection preserves backoff - Python2" "   " 49
at_xfail=no
(
  $as_echo "823. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "reconnect.at:532" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/reconnect.at:532"

   cat >input <<'_ATEOF'
enable

# First connection attempt fails after 1000 ms.
run
connecting
run
timeout
run
connect-failed

# Back off for 1000 ms.
timeout
run

# Second connection attempt fails after 1000 ms.
connecting
timeout
run
connect-failed

# Back off for 2000 ms.
timeout
run

# Third connection attempt succeeds after 500 ms.
connecting
advance 500
run
connected

# Connection drops after another 250 ms.
advance 250
disconnected
run

# Back off for 4000 ms.
timeout
run
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:532: \$PYTHON \$srcdir/test-reconnect.py < input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-reconnect.py < input" "reconnect.at:532"
( $at_check_trace; $PYTHON $srcdir/test-reconnect.py < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
enable
  in BACKOFF for 0 ms (0 ms backoff)

# First connection attempt fails after 1000 ms.
run
  should connect
connecting
  in CONNECTING for 0 ms (0 ms backoff)
run
timeout
  advance 1000 ms

### t=2000 ###
  in CONNECTING for 1000 ms (0 ms backoff)
run
  should disconnect
connect-failed
  in BACKOFF for 0 ms (1000 ms backoff)
  0 successful connections out of 1 attempts, seqno 0

# Back off for 1000 ms.
timeout
  advance 1000 ms

### t=3000 ###
  in BACKOFF for 1000 ms (1000 ms backoff)
run
  should connect

# Second connection attempt fails after 1000 ms.
connecting
  in CONNECTING for 0 ms (1000 ms backoff)
timeout
  advance 1000 ms

### t=4000 ###
  in CONNECTING for 1000 ms (1000 ms backoff)
run
  should disconnect
connect-failed
  in BACKOFF for 0 ms (2000 ms backoff)
  0 successful connections out of 2 attempts, seqno 0

# Back off for 2000 ms.
timeout
  advance 2000 ms

### t=6000 ###
  in BACKOFF for 2000 ms (2000 ms backoff)
run
  should connect

# Third connection attempt succeeds after 500 ms.
connecting
  in CONNECTING for 0 ms (2000 ms backoff)
advance 500

### t=6500 ###
  in CONNECTING for 500 ms (2000 ms backoff)
run
connected
  in ACTIVE for 0 ms (2000 ms backoff)
  created 1000, last activity 1000, last connected 6500
  1 successful connections out of 3 attempts, seqno 1
  connected
  last connected 0 ms ago, connected 0 ms total

# Connection drops after another 250 ms.
advance 250

### t=6750 ###
  in ACTIVE for 250 ms (2000 ms backoff)
disconnected
  in BACKOFF for 0 ms (4000 ms backoff)
  1 successful connections out of 3 attempts, seqno 2
  disconnected
  disconnected at 6750 ms (0 ms ago)
run

# Back off for 4000 ms.
timeout
  advance 4000 ms

### t=10750 ###
  in BACKOFF for 4000 ms (4000 ms backoff)
  last connected 4250 ms ago, connected 250 ms total
run
  should connect
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_823
#AT_START_824
at_fn_group_banner 824 'reconnect.at:532' \
  "brief connection preserves backoff - Python3" "   " 49
at_xfail=no
(
  $as_echo "824. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "reconnect.at:532" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/reconnect.at:532"

   cat >input <<'_ATEOF'
enable

# First connection attempt fails after 1000 ms.
run
connecting
run
timeout
run
connect-failed

# Back off for 1000 ms.
timeout
run

# Second connection attempt fails after 1000 ms.
connecting
timeout
run
connect-failed

# Back off for 2000 ms.
timeout
run

# Third connection attempt succeeds after 500 ms.
connecting
advance 500
run
connected

# Connection drops after another 250 ms.
advance 250
disconnected
run

# Back off for 4000 ms.
timeout
run
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:532: \$PYTHON3 \$srcdir/test-reconnect.py < input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-reconnect.py < input" "reconnect.at:532"
( $at_check_trace; $PYTHON3 $srcdir/test-reconnect.py < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
enable
  in BACKOFF for 0 ms (0 ms backoff)

# First connection attempt fails after 1000 ms.
run
  should connect
connecting
  in CONNECTING for 0 ms (0 ms backoff)
run
timeout
  advance 1000 ms

### t=2000 ###
  in CONNECTING for 1000 ms (0 ms backoff)
run
  should disconnect
connect-failed
  in BACKOFF for 0 ms (1000 ms backoff)
  0 successful connections out of 1 attempts, seqno 0

# Back off for 1000 ms.
timeout
  advance 1000 ms

### t=3000 ###
  in BACKOFF for 1000 ms (1000 ms backoff)
run
  should connect

# Second connection attempt fails after 1000 ms.
connecting
  in CONNECTING for 0 ms (1000 ms backoff)
timeout
  advance 1000 ms

### t=4000 ###
  in CONNECTING for 1000 ms (1000 ms backoff)
run
  should disconnect
connect-failed
  in BACKOFF for 0 ms (2000 ms backoff)
  0 successful connections out of 2 attempts, seqno 0

# Back off for 2000 ms.
timeout
  advance 2000 ms

### t=6000 ###
  in BACKOFF for 2000 ms (2000 ms backoff)
run
  should connect

# Third connection attempt succeeds after 500 ms.
connecting
  in CONNECTING for 0 ms (2000 ms backoff)
advance 500

### t=6500 ###
  in CONNECTING for 500 ms (2000 ms backoff)
run
connected
  in ACTIVE for 0 ms (2000 ms backoff)
  created 1000, last activity 1000, last connected 6500
  1 successful connections out of 3 attempts, seqno 1
  connected
  last connected 0 ms ago, connected 0 ms total

# Connection drops after another 250 ms.
advance 250

### t=6750 ###
  in ACTIVE for 250 ms (2000 ms backoff)
disconnected
  in BACKOFF for 0 ms (4000 ms backoff)
  1 successful connections out of 3 attempts, seqno 2
  disconnected
  disconnected at 6750 ms (0 ms ago)
run

# Back off for 4000 ms.
timeout
  advance 4000 ms

### t=10750 ###
  in BACKOFF for 4000 ms (4000 ms backoff)
  last connected 4250 ms ago, connected 250 ms total
run
  should connect
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_824
#AT_START_825
at_fn_group_banner 825 'reconnect.at:663' \
  "brief connection with data preserves backoff - C" "" 49
at_xfail=no
(
  $as_echo "825. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



   cat >input <<'_ATEOF'
enable

# First connection attempt fails after 1000 ms.
run
connecting
run
timeout
run
connect-failed

# Back off for 1000 ms.
timeout
run

# Second connection attempt fails after 1000 ms.
connecting
timeout
run
connect-failed

# Back off for 2000 ms.
timeout
run

# Third connection attempt succeeds after 500 ms.
connecting
advance 500
run
connected

# Connection receives 3 chunks of data spaced 250 ms apart.
advance 250
run
activity
advance 250
run
activity
advance 250
run
activity

# Connection drops.
disconnected
run

# Back off for 4000 ms.
timeout
run
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:663: ovstest test-reconnect < input"
at_fn_check_prepare_trace "reconnect.at:663"
( $at_check_trace; ovstest test-reconnect < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
enable
  in BACKOFF for 0 ms (0 ms backoff)

# First connection attempt fails after 1000 ms.
run
  should connect
connecting
  in CONNECTING for 0 ms (0 ms backoff)
run
timeout
  advance 1000 ms

### t=2000 ###
  in CONNECTING for 1000 ms (0 ms backoff)
run
  should disconnect
connect-failed
  in BACKOFF for 0 ms (1000 ms backoff)
  0 successful connections out of 1 attempts, seqno 0

# Back off for 1000 ms.
timeout
  advance 1000 ms

### t=3000 ###
  in BACKOFF for 1000 ms (1000 ms backoff)
run
  should connect

# Second connection attempt fails after 1000 ms.
connecting
  in CONNECTING for 0 ms (1000 ms backoff)
timeout
  advance 1000 ms

### t=4000 ###
  in CONNECTING for 1000 ms (1000 ms backoff)
run
  should disconnect
connect-failed
  in BACKOFF for 0 ms (2000 ms backoff)
  0 successful connections out of 2 attempts, seqno 0

# Back off for 2000 ms.
timeout
  advance 2000 ms

### t=6000 ###
  in BACKOFF for 2000 ms (2000 ms backoff)
run
  should connect

# Third connection attempt succeeds after 500 ms.
connecting
  in CONNECTING for 0 ms (2000 ms backoff)
advance 500

### t=6500 ###
  in CONNECTING for 500 ms (2000 ms backoff)
run
connected
  in ACTIVE for 0 ms (2000 ms backoff)
  created 1000, last activity 1000, last connected 6500
  1 successful connections out of 3 attempts, seqno 1
  connected
  last connected 0 ms ago, connected 0 ms total

# Connection receives 3 chunks of data spaced 250 ms apart.
advance 250

### t=6750 ###
  in ACTIVE for 250 ms (2000 ms backoff)
run
activity
  created 1000, last activity 6750, last connected 6500
advance 250

### t=7000 ###
  in ACTIVE for 500 ms (2000 ms backoff)
run
activity
  created 1000, last activity 7000, last connected 6500
advance 250

### t=7250 ###
  in ACTIVE for 750 ms (2000 ms backoff)
run
activity
  created 1000, last activity 7250, last connected 6500

# Connection drops.
disconnected
  in BACKOFF for 0 ms (4000 ms backoff)
  1 successful connections out of 3 attempts, seqno 2
  disconnected
  disconnected at 7250 ms (0 ms ago)
run

# Back off for 4000 ms.
timeout
  advance 4000 ms

### t=11250 ###
  in BACKOFF for 4000 ms (4000 ms backoff)
  last connected 4750 ms ago, connected 750 ms total
run
  should connect
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_825
#AT_START_826
at_fn_group_banner 826 'reconnect.at:663' \
  "brief connection with data preserves backoff - Python2" "" 49
at_xfail=no
(
  $as_echo "826. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "reconnect.at:663" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/reconnect.at:663"

   cat >input <<'_ATEOF'
enable

# First connection attempt fails after 1000 ms.
run
connecting
run
timeout
run
connect-failed

# Back off for 1000 ms.
timeout
run

# Second connection attempt fails after 1000 ms.
connecting
timeout
run
connect-failed

# Back off for 2000 ms.
timeout
run

# Third connection attempt succeeds after 500 ms.
connecting
advance 500
run
connected

# Connection receives 3 chunks of data spaced 250 ms apart.
advance 250
run
activity
advance 250
run
activity
advance 250
run
activity

# Connection drops.
disconnected
run

# Back off for 4000 ms.
timeout
run
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:663: \$PYTHON \$srcdir/test-reconnect.py < input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-reconnect.py < input" "reconnect.at:663"
( $at_check_trace; $PYTHON $srcdir/test-reconnect.py < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
enable
  in BACKOFF for 0 ms (0 ms backoff)

# First connection attempt fails after 1000 ms.
run
  should connect
connecting
  in CONNECTING for 0 ms (0 ms backoff)
run
timeout
  advance 1000 ms

### t=2000 ###
  in CONNECTING for 1000 ms (0 ms backoff)
run
  should disconnect
connect-failed
  in BACKOFF for 0 ms (1000 ms backoff)
  0 successful connections out of 1 attempts, seqno 0

# Back off for 1000 ms.
timeout
  advance 1000 ms

### t=3000 ###
  in BACKOFF for 1000 ms (1000 ms backoff)
run
  should connect

# Second connection attempt fails after 1000 ms.
connecting
  in CONNECTING for 0 ms (1000 ms backoff)
timeout
  advance 1000 ms

### t=4000 ###
  in CONNECTING for 1000 ms (1000 ms backoff)
run
  should disconnect
connect-failed
  in BACKOFF for 0 ms (2000 ms backoff)
  0 successful connections out of 2 attempts, seqno 0

# Back off for 2000 ms.
timeout
  advance 2000 ms

### t=6000 ###
  in BACKOFF for 2000 ms (2000 ms backoff)
run
  should connect

# Third connection attempt succeeds after 500 ms.
connecting
  in CONNECTING for 0 ms (2000 ms backoff)
advance 500

### t=6500 ###
  in CONNECTING for 500 ms (2000 ms backoff)
run
connected
  in ACTIVE for 0 ms (2000 ms backoff)
  created 1000, last activity 1000, last connected 6500
  1 successful connections out of 3 attempts, seqno 1
  connected
  last connected 0 ms ago, connected 0 ms total

# Connection receives 3 chunks of data spaced 250 ms apart.
advance 250

### t=6750 ###
  in ACTIVE for 250 ms (2000 ms backoff)
run
activity
  created 1000, last activity 6750, last connected 6500
advance 250

### t=7000 ###
  in ACTIVE for 500 ms (2000 ms backoff)
run
activity
  created 1000, last activity 7000, last connected 6500
advance 250

### t=7250 ###
  in ACTIVE for 750 ms (2000 ms backoff)
run
activity
  created 1000, last activity 7250, last connected 6500

# Connection drops.
disconnected
  in BACKOFF for 0 ms (4000 ms backoff)
  1 successful connections out of 3 attempts, seqno 2
  disconnected
  disconnected at 7250 ms (0 ms ago)
run

# Back off for 4000 ms.
timeout
  advance 4000 ms

### t=11250 ###
  in BACKOFF for 4000 ms (4000 ms backoff)
  last connected 4750 ms ago, connected 750 ms total
run
  should connect
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_826
#AT_START_827
at_fn_group_banner 827 'reconnect.at:663' \
  "brief connection with data preserves backoff - Python3" "" 49
at_xfail=no
(
  $as_echo "827. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "reconnect.at:663" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/reconnect.at:663"

   cat >input <<'_ATEOF'
enable

# First connection attempt fails after 1000 ms.
run
connecting
run
timeout
run
connect-failed

# Back off for 1000 ms.
timeout
run

# Second connection attempt fails after 1000 ms.
connecting
timeout
run
connect-failed

# Back off for 2000 ms.
timeout
run

# Third connection attempt succeeds after 500 ms.
connecting
advance 500
run
connected

# Connection receives 3 chunks of data spaced 250 ms apart.
advance 250
run
activity
advance 250
run
activity
advance 250
run
activity

# Connection drops.
disconnected
run

# Back off for 4000 ms.
timeout
run
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:663: \$PYTHON3 \$srcdir/test-reconnect.py < input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-reconnect.py < input" "reconnect.at:663"
( $at_check_trace; $PYTHON3 $srcdir/test-reconnect.py < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
enable
  in BACKOFF for 0 ms (0 ms backoff)

# First connection attempt fails after 1000 ms.
run
  should connect
connecting
  in CONNECTING for 0 ms (0 ms backoff)
run
timeout
  advance 1000 ms

### t=2000 ###
  in CONNECTING for 1000 ms (0 ms backoff)
run
  should disconnect
connect-failed
  in BACKOFF for 0 ms (1000 ms backoff)
  0 successful connections out of 1 attempts, seqno 0

# Back off for 1000 ms.
timeout
  advance 1000 ms

### t=3000 ###
  in BACKOFF for 1000 ms (1000 ms backoff)
run
  should connect

# Second connection attempt fails after 1000 ms.
connecting
  in CONNECTING for 0 ms (1000 ms backoff)
timeout
  advance 1000 ms

### t=4000 ###
  in CONNECTING for 1000 ms (1000 ms backoff)
run
  should disconnect
connect-failed
  in BACKOFF for 0 ms (2000 ms backoff)
  0 successful connections out of 2 attempts, seqno 0

# Back off for 2000 ms.
timeout
  advance 2000 ms

### t=6000 ###
  in BACKOFF for 2000 ms (2000 ms backoff)
run
  should connect

# Third connection attempt succeeds after 500 ms.
connecting
  in CONNECTING for 0 ms (2000 ms backoff)
advance 500

### t=6500 ###
  in CONNECTING for 500 ms (2000 ms backoff)
run
connected
  in ACTIVE for 0 ms (2000 ms backoff)
  created 1000, last activity 1000, last connected 6500
  1 successful connections out of 3 attempts, seqno 1
  connected
  last connected 0 ms ago, connected 0 ms total

# Connection receives 3 chunks of data spaced 250 ms apart.
advance 250

### t=6750 ###
  in ACTIVE for 250 ms (2000 ms backoff)
run
activity
  created 1000, last activity 6750, last connected 6500
advance 250

### t=7000 ###
  in ACTIVE for 500 ms (2000 ms backoff)
run
activity
  created 1000, last activity 7000, last connected 6500
advance 250

### t=7250 ###
  in ACTIVE for 750 ms (2000 ms backoff)
run
activity
  created 1000, last activity 7250, last connected 6500

# Connection drops.
disconnected
  in BACKOFF for 0 ms (4000 ms backoff)
  1 successful connections out of 3 attempts, seqno 2
  disconnected
  disconnected at 7250 ms (0 ms ago)
run

# Back off for 4000 ms.
timeout
  advance 4000 ms

### t=11250 ###
  in BACKOFF for 4000 ms (4000 ms backoff)
  last connected 4750 ms ago, connected 750 ms total
run
  should connect
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_827
#AT_START_828
at_fn_group_banner 828 'reconnect.at:824' \
  "long connection resets backoff - C" "             " 49
at_xfail=no
(
  $as_echo "828. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



   cat >input <<'_ATEOF'
enable

# First connection attempt fails after 1000 ms.
run
connecting
run
timeout
run
connect-failed

# Back off for 1000 ms.
timeout
run

# Second connection attempt fails after 1000 ms.
connecting
timeout
run
connect-failed

# Back off for 2000 ms.
timeout
run

# Third connection attempt succeeds after 500 ms.
connecting
advance 500
run
connected

# Connection receives 3 chunks of data spaced 2000 ms apart.
advance 2000
run
activity
advance 2000
run
activity
advance 2000
run
activity

# Connection drops.
disconnected
run

# Back off for 1000 ms.
timeout
run
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:824: ovstest test-reconnect < input"
at_fn_check_prepare_trace "reconnect.at:824"
( $at_check_trace; ovstest test-reconnect < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
enable
  in BACKOFF for 0 ms (0 ms backoff)

# First connection attempt fails after 1000 ms.
run
  should connect
connecting
  in CONNECTING for 0 ms (0 ms backoff)
run
timeout
  advance 1000 ms

### t=2000 ###
  in CONNECTING for 1000 ms (0 ms backoff)
run
  should disconnect
connect-failed
  in BACKOFF for 0 ms (1000 ms backoff)
  0 successful connections out of 1 attempts, seqno 0

# Back off for 1000 ms.
timeout
  advance 1000 ms

### t=3000 ###
  in BACKOFF for 1000 ms (1000 ms backoff)
run
  should connect

# Second connection attempt fails after 1000 ms.
connecting
  in CONNECTING for 0 ms (1000 ms backoff)
timeout
  advance 1000 ms

### t=4000 ###
  in CONNECTING for 1000 ms (1000 ms backoff)
run
  should disconnect
connect-failed
  in BACKOFF for 0 ms (2000 ms backoff)
  0 successful connections out of 2 attempts, seqno 0

# Back off for 2000 ms.
timeout
  advance 2000 ms

### t=6000 ###
  in BACKOFF for 2000 ms (2000 ms backoff)
run
  should connect

# Third connection attempt succeeds after 500 ms.
connecting
  in CONNECTING for 0 ms (2000 ms backoff)
advance 500

### t=6500 ###
  in CONNECTING for 500 ms (2000 ms backoff)
run
connected
  in ACTIVE for 0 ms (2000 ms backoff)
  created 1000, last activity 1000, last connected 6500
  1 successful connections out of 3 attempts, seqno 1
  connected
  last connected 0 ms ago, connected 0 ms total

# Connection receives 3 chunks of data spaced 2000 ms apart.
advance 2000

### t=8500 ###
  in ACTIVE for 2000 ms (2000 ms backoff)
run
activity
  created 1000, last activity 8500, last connected 6500
advance 2000

### t=10500 ###
  in ACTIVE for 4000 ms (2000 ms backoff)
run
activity
  created 1000, last activity 10500, last connected 6500
advance 2000

### t=12500 ###
  in ACTIVE for 6000 ms (2000 ms backoff)
run
activity
  created 1000, last activity 12500, last connected 6500

# Connection drops.
disconnected
  in BACKOFF for 0 ms (1000 ms backoff)
  1 successful connections out of 3 attempts, seqno 2
  disconnected
  disconnected at 12500 ms (0 ms ago)
run

# Back off for 1000 ms.
timeout
  advance 1000 ms

### t=13500 ###
  in BACKOFF for 1000 ms (1000 ms backoff)
  last connected 7000 ms ago, connected 6000 ms total
run
  should connect
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:824"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_828
#AT_START_829
at_fn_group_banner 829 'reconnect.at:824' \
  "long connection resets backoff - Python2" "       " 49
at_xfail=no
(
  $as_echo "829. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "reconnect.at:824" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/reconnect.at:824"

   cat >input <<'_ATEOF'
enable

# First connection attempt fails after 1000 ms.
run
connecting
run
timeout
run
connect-failed

# Back off for 1000 ms.
timeout
run

# Second connection attempt fails after 1000 ms.
connecting
timeout
run
connect-failed

# Back off for 2000 ms.
timeout
run

# Third connection attempt succeeds after 500 ms.
connecting
advance 500
run
connected

# Connection receives 3 chunks of data spaced 2000 ms apart.
advance 2000
run
activity
advance 2000
run
activity
advance 2000
run
activity

# Connection drops.
disconnected
run

# Back off for 1000 ms.
timeout
run
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:824: \$PYTHON \$srcdir/test-reconnect.py < input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-reconnect.py < input" "reconnect.at:824"
( $at_check_trace; $PYTHON $srcdir/test-reconnect.py < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
enable
  in BACKOFF for 0 ms (0 ms backoff)

# First connection attempt fails after 1000 ms.
run
  should connect
connecting
  in CONNECTING for 0 ms (0 ms backoff)
run
timeout
  advance 1000 ms

### t=2000 ###
  in CONNECTING for 1000 ms (0 ms backoff)
run
  should disconnect
connect-failed
  in BACKOFF for 0 ms (1000 ms backoff)
  0 successful connections out of 1 attempts, seqno 0

# Back off for 1000 ms.
timeout
  advance 1000 ms

### t=3000 ###
  in BACKOFF for 1000 ms (1000 ms backoff)
run
  should connect

# Second connection attempt fails after 1000 ms.
connecting
  in CONNECTING for 0 ms (1000 ms backoff)
timeout
  advance 1000 ms

### t=4000 ###
  in CONNECTING for 1000 ms (1000 ms backoff)
run
  should disconnect
connect-failed
  in BACKOFF for 0 ms (2000 ms backoff)
  0 successful connections out of 2 attempts, seqno 0

# Back off for 2000 ms.
timeout
  advance 2000 ms

### t=6000 ###
  in BACKOFF for 2000 ms (2000 ms backoff)
run
  should connect

# Third connection attempt succeeds after 500 ms.
connecting
  in CONNECTING for 0 ms (2000 ms backoff)
advance 500

### t=6500 ###
  in CONNECTING for 500 ms (2000 ms backoff)
run
connected
  in ACTIVE for 0 ms (2000 ms backoff)
  created 1000, last activity 1000, last connected 6500
  1 successful connections out of 3 attempts, seqno 1
  connected
  last connected 0 ms ago, connected 0 ms total

# Connection receives 3 chunks of data spaced 2000 ms apart.
advance 2000

### t=8500 ###
  in ACTIVE for 2000 ms (2000 ms backoff)
run
activity
  created 1000, last activity 8500, last connected 6500
advance 2000

### t=10500 ###
  in ACTIVE for 4000 ms (2000 ms backoff)
run
activity
  created 1000, last activity 10500, last connected 6500
advance 2000

### t=12500 ###
  in ACTIVE for 6000 ms (2000 ms backoff)
run
activity
  created 1000, last activity 12500, last connected 6500

# Connection drops.
disconnected
  in BACKOFF for 0 ms (1000 ms backoff)
  1 successful connections out of 3 attempts, seqno 2
  disconnected
  disconnected at 12500 ms (0 ms ago)
run

# Back off for 1000 ms.
timeout
  advance 1000 ms

### t=13500 ###
  in BACKOFF for 1000 ms (1000 ms backoff)
  last connected 7000 ms ago, connected 6000 ms total
run
  should connect
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:824"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_829
#AT_START_830
at_fn_group_banner 830 'reconnect.at:824' \
  "long connection resets backoff - Python3" "       " 49
at_xfail=no
(
  $as_echo "830. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "reconnect.at:824" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/reconnect.at:824"

   cat >input <<'_ATEOF'
enable

# First connection attempt fails after 1000 ms.
run
connecting
run
timeout
run
connect-failed

# Back off for 1000 ms.
timeout
run

# Second connection attempt fails after 1000 ms.
connecting
timeout
run
connect-failed

# Back off for 2000 ms.
timeout
run

# Third connection attempt succeeds after 500 ms.
connecting
advance 500
run
connected

# Connection receives 3 chunks of data spaced 2000 ms apart.
advance 2000
run
activity
advance 2000
run
activity
advance 2000
run
activity

# Connection drops.
disconnected
run

# Back off for 1000 ms.
timeout
run
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:824: \$PYTHON3 \$srcdir/test-reconnect.py < input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-reconnect.py < input" "reconnect.at:824"
( $at_check_trace; $PYTHON3 $srcdir/test-reconnect.py < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
enable
  in BACKOFF for 0 ms (0 ms backoff)

# First connection attempt fails after 1000 ms.
run
  should connect
connecting
  in CONNECTING for 0 ms (0 ms backoff)
run
timeout
  advance 1000 ms

### t=2000 ###
  in CONNECTING for 1000 ms (0 ms backoff)
run
  should disconnect
connect-failed
  in BACKOFF for 0 ms (1000 ms backoff)
  0 successful connections out of 1 attempts, seqno 0

# Back off for 1000 ms.
timeout
  advance 1000 ms

### t=3000 ###
  in BACKOFF for 1000 ms (1000 ms backoff)
run
  should connect

# Second connection attempt fails after 1000 ms.
connecting
  in CONNECTING for 0 ms (1000 ms backoff)
timeout
  advance 1000 ms

### t=4000 ###
  in CONNECTING for 1000 ms (1000 ms backoff)
run
  should disconnect
connect-failed
  in BACKOFF for 0 ms (2000 ms backoff)
  0 successful connections out of 2 attempts, seqno 0

# Back off for 2000 ms.
timeout
  advance 2000 ms

### t=6000 ###
  in BACKOFF for 2000 ms (2000 ms backoff)
run
  should connect

# Third connection attempt succeeds after 500 ms.
connecting
  in CONNECTING for 0 ms (2000 ms backoff)
advance 500

### t=6500 ###
  in CONNECTING for 500 ms (2000 ms backoff)
run
connected
  in ACTIVE for 0 ms (2000 ms backoff)
  created 1000, last activity 1000, last connected 6500
  1 successful connections out of 3 attempts, seqno 1
  connected
  last connected 0 ms ago, connected 0 ms total

# Connection receives 3 chunks of data spaced 2000 ms apart.
advance 2000

### t=8500 ###
  in ACTIVE for 2000 ms (2000 ms backoff)
run
activity
  created 1000, last activity 8500, last connected 6500
advance 2000

### t=10500 ###
  in ACTIVE for 4000 ms (2000 ms backoff)
run
activity
  created 1000, last activity 10500, last connected 6500
advance 2000

### t=12500 ###
  in ACTIVE for 6000 ms (2000 ms backoff)
run
activity
  created 1000, last activity 12500, last connected 6500

# Connection drops.
disconnected
  in BACKOFF for 0 ms (1000 ms backoff)
  1 successful connections out of 3 attempts, seqno 2
  disconnected
  disconnected at 12500 ms (0 ms ago)
run

# Back off for 1000 ms.
timeout
  advance 1000 ms

### t=13500 ###
  in BACKOFF for 1000 ms (1000 ms backoff)
  last connected 7000 ms ago, connected 6000 ms total
run
  should connect
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:824"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_830
#AT_START_831
at_fn_group_banner 831 'reconnect.at:985' \
  "connection attempt fails quickly - C" "           " 49
at_xfail=no
(
  $as_echo "831. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



   cat >input <<'_ATEOF'
enable

# Connection fails quickly.
run
connect-failed ECONNREFUSED

# Back off for 1000 ms.
run
timeout

# Connection fails quickly again.
run
connect-failed ECONNREFUSED

# Back off for 2000 ms.
run
timeout
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:985: ovstest test-reconnect < input"
at_fn_check_prepare_trace "reconnect.at:985"
( $at_check_trace; ovstest test-reconnect < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
enable
  in BACKOFF for 0 ms (0 ms backoff)

# Connection fails quickly.
run
  should connect
connect-failed ECONNREFUSED
  in BACKOFF for 0 ms (1000 ms backoff)
  0 successful connections out of 1 attempts, seqno 0

# Back off for 1000 ms.
run
timeout
  advance 1000 ms

### t=2000 ###
  in BACKOFF for 1000 ms (1000 ms backoff)

# Connection fails quickly again.
run
  should connect
connect-failed ECONNREFUSED
  in BACKOFF for 0 ms (2000 ms backoff)
  0 successful connections out of 2 attempts, seqno 0

# Back off for 2000 ms.
run
timeout
  advance 2000 ms

### t=4000 ###
  in BACKOFF for 2000 ms (2000 ms backoff)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:985"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_831
#AT_START_832
at_fn_group_banner 832 'reconnect.at:985' \
  "connection attempt fails quickly - Python2" "     " 49
at_xfail=no
(
  $as_echo "832. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "reconnect.at:985" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/reconnect.at:985"

   cat >input <<'_ATEOF'
enable

# Connection fails quickly.
run
connect-failed ECONNREFUSED

# Back off for 1000 ms.
run
timeout

# Connection fails quickly again.
run
connect-failed ECONNREFUSED

# Back off for 2000 ms.
run
timeout
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:985: \$PYTHON \$srcdir/test-reconnect.py < input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-reconnect.py < input" "reconnect.at:985"
( $at_check_trace; $PYTHON $srcdir/test-reconnect.py < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
enable
  in BACKOFF for 0 ms (0 ms backoff)

# Connection fails quickly.
run
  should connect
connect-failed ECONNREFUSED
  in BACKOFF for 0 ms (1000 ms backoff)
  0 successful connections out of 1 attempts, seqno 0

# Back off for 1000 ms.
run
timeout
  advance 1000 ms

### t=2000 ###
  in BACKOFF for 1000 ms (1000 ms backoff)

# Connection fails quickly again.
run
  should connect
connect-failed ECONNREFUSED
  in BACKOFF for 0 ms (2000 ms backoff)
  0 successful connections out of 2 attempts, seqno 0

# Back off for 2000 ms.
run
timeout
  advance 2000 ms

### t=4000 ###
  in BACKOFF for 2000 ms (2000 ms backoff)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:985"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_832
#AT_START_833
at_fn_group_banner 833 'reconnect.at:985' \
  "connection attempt fails quickly - Python3" "     " 49
at_xfail=no
(
  $as_echo "833. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "reconnect.at:985" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/reconnect.at:985"

   cat >input <<'_ATEOF'
enable

# Connection fails quickly.
run
connect-failed ECONNREFUSED

# Back off for 1000 ms.
run
timeout

# Connection fails quickly again.
run
connect-failed ECONNREFUSED

# Back off for 2000 ms.
run
timeout
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:985: \$PYTHON3 \$srcdir/test-reconnect.py < input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-reconnect.py < input" "reconnect.at:985"
( $at_check_trace; $PYTHON3 $srcdir/test-reconnect.py < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
enable
  in BACKOFF for 0 ms (0 ms backoff)

# Connection fails quickly.
run
  should connect
connect-failed ECONNREFUSED
  in BACKOFF for 0 ms (1000 ms backoff)
  0 successful connections out of 1 attempts, seqno 0

# Back off for 1000 ms.
run
timeout
  advance 1000 ms

### t=2000 ###
  in BACKOFF for 1000 ms (1000 ms backoff)

# Connection fails quickly again.
run
  should connect
connect-failed ECONNREFUSED
  in BACKOFF for 0 ms (2000 ms backoff)
  0 successful connections out of 2 attempts, seqno 0

# Back off for 2000 ms.
run
timeout
  advance 2000 ms

### t=4000 ###
  in BACKOFF for 2000 ms (2000 ms backoff)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:985"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_833
#AT_START_834
at_fn_group_banner 834 'reconnect.at:1040' \
  "backoff-free tries work - C" "                    " 49
at_xfail=no
(
  $as_echo "834. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



   cat >input <<'_ATEOF'
set-backoff-free-tries 2
enable

# Connection fails quickly.
run
connect-failed ECONNREFUSED

# No backoff.
run
timeout

# Connection fails quickly again.
run
connect-failed ECONNREFUSED

# Back off for 1000 ms.
run
timeout
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:1040: ovstest test-reconnect < input"
at_fn_check_prepare_trace "reconnect.at:1040"
( $at_check_trace; ovstest test-reconnect < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
set-backoff-free-tries 2
enable
  in BACKOFF for 0 ms (0 ms backoff)

# Connection fails quickly.
run
  should connect
connect-failed ECONNREFUSED
  0 successful connections out of 1 attempts, seqno 0

# No backoff.
run
  should connect
timeout
  advance 0 ms

# Connection fails quickly again.
run
  should connect
connect-failed ECONNREFUSED
  in BACKOFF for 0 ms (1000 ms backoff)
  0 successful connections out of 2 attempts, seqno 0

# Back off for 1000 ms.
run
timeout
  advance 1000 ms

### t=2000 ###
  in BACKOFF for 1000 ms (1000 ms backoff)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:1040"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_834
#AT_START_835
at_fn_group_banner 835 'reconnect.at:1040' \
  "backoff-free tries work - Python2" "              " 49
at_xfail=no
(
  $as_echo "835. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "reconnect.at:1040" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/reconnect.at:1040"

   cat >input <<'_ATEOF'
set-backoff-free-tries 2
enable

# Connection fails quickly.
run
connect-failed ECONNREFUSED

# No backoff.
run
timeout

# Connection fails quickly again.
run
connect-failed ECONNREFUSED

# Back off for 1000 ms.
run
timeout
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:1040: \$PYTHON \$srcdir/test-reconnect.py < input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-reconnect.py < input" "reconnect.at:1040"
( $at_check_trace; $PYTHON $srcdir/test-reconnect.py < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
set-backoff-free-tries 2
enable
  in BACKOFF for 0 ms (0 ms backoff)

# Connection fails quickly.
run
  should connect
connect-failed ECONNREFUSED
  0 successful connections out of 1 attempts, seqno 0

# No backoff.
run
  should connect
timeout
  advance 0 ms

# Connection fails quickly again.
run
  should connect
connect-failed ECONNREFUSED
  in BACKOFF for 0 ms (1000 ms backoff)
  0 successful connections out of 2 attempts, seqno 0

# Back off for 1000 ms.
run
timeout
  advance 1000 ms

### t=2000 ###
  in BACKOFF for 1000 ms (1000 ms backoff)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:1040"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_835
#AT_START_836
at_fn_group_banner 836 'reconnect.at:1040' \
  "backoff-free tries work - Python3" "              " 49
at_xfail=no
(
  $as_echo "836. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "reconnect.at:1040" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/reconnect.at:1040"

   cat >input <<'_ATEOF'
set-backoff-free-tries 2
enable

# Connection fails quickly.
run
connect-failed ECONNREFUSED

# No backoff.
run
timeout

# Connection fails quickly again.
run
connect-failed ECONNREFUSED

# Back off for 1000 ms.
run
timeout
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:1040: \$PYTHON3 \$srcdir/test-reconnect.py < input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-reconnect.py < input" "reconnect.at:1040"
( $at_check_trace; $PYTHON3 $srcdir/test-reconnect.py < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
set-backoff-free-tries 2
enable
  in BACKOFF for 0 ms (0 ms backoff)

# Connection fails quickly.
run
  should connect
connect-failed ECONNREFUSED
  0 successful connections out of 1 attempts, seqno 0

# No backoff.
run
  should connect
timeout
  advance 0 ms

# Connection fails quickly again.
run
  should connect
connect-failed ECONNREFUSED
  in BACKOFF for 0 ms (1000 ms backoff)
  0 successful connections out of 2 attempts, seqno 0

# Back off for 1000 ms.
run
timeout
  advance 1000 ms

### t=2000 ###
  in BACKOFF for 1000 ms (1000 ms backoff)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:1040"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_836
#AT_START_837
at_fn_group_banner 837 'reconnect.at:1094' \
  "max-tries of 1 honored - C" "                     " 49
at_xfail=no
(
  $as_echo "837. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



   cat >input <<'_ATEOF'
set-max-tries 1
enable

# Connection succeeds.
run
connected

# Send inactivity probe.
timeout
run

# Idle timeout kills connection.
timeout
run
disconnected
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:1094: ovstest test-reconnect < input"
at_fn_check_prepare_trace "reconnect.at:1094"
( $at_check_trace; ovstest test-reconnect < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
set-max-tries 1
  1 tries left
enable
  in BACKOFF for 0 ms (0 ms backoff)
  0 tries left

# Connection succeeds.
run
  should connect
connected
  in ACTIVE for 0 ms (0 ms backoff)
  created 1000, last activity 1000, last connected 1000
  1 successful connections out of 1 attempts, seqno 1
  connected
  last connected 0 ms ago, connected 0 ms total

# Send inactivity probe.
timeout
  advance 5000 ms

### t=6000 ###
  in ACTIVE for 5000 ms (0 ms backoff)
run
  should send probe
  in IDLE for 0 ms (0 ms backoff)

# Idle timeout kills connection.
timeout
  advance 5000 ms

### t=11000 ###
  in IDLE for 5000 ms (0 ms backoff)
run
  should disconnect
disconnected
  in VOID for 0 ms (0 ms backoff)
  1 successful connections out of 1 attempts, seqno 2
  disconnected
  disconnected at 11000 ms (0 ms ago)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:1094"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_837
#AT_START_838
at_fn_group_banner 838 'reconnect.at:1094' \
  "max-tries of 1 honored - Python2" "               " 49
at_xfail=no
(
  $as_echo "838. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "reconnect.at:1094" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/reconnect.at:1094"

   cat >input <<'_ATEOF'
set-max-tries 1
enable

# Connection succeeds.
run
connected

# Send inactivity probe.
timeout
run

# Idle timeout kills connection.
timeout
run
disconnected
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:1094: \$PYTHON \$srcdir/test-reconnect.py < input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-reconnect.py < input" "reconnect.at:1094"
( $at_check_trace; $PYTHON $srcdir/test-reconnect.py < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
set-max-tries 1
  1 tries left
enable
  in BACKOFF for 0 ms (0 ms backoff)
  0 tries left

# Connection succeeds.
run
  should connect
connected
  in ACTIVE for 0 ms (0 ms backoff)
  created 1000, last activity 1000, last connected 1000
  1 successful connections out of 1 attempts, seqno 1
  connected
  last connected 0 ms ago, connected 0 ms total

# Send inactivity probe.
timeout
  advance 5000 ms

### t=6000 ###
  in ACTIVE for 5000 ms (0 ms backoff)
run
  should send probe
  in IDLE for 0 ms (0 ms backoff)

# Idle timeout kills connection.
timeout
  advance 5000 ms

### t=11000 ###
  in IDLE for 5000 ms (0 ms backoff)
run
  should disconnect
disconnected
  in VOID for 0 ms (0 ms backoff)
  1 successful connections out of 1 attempts, seqno 2
  disconnected
  disconnected at 11000 ms (0 ms ago)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:1094"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_838
#AT_START_839
at_fn_group_banner 839 'reconnect.at:1094' \
  "max-tries of 1 honored - Python3" "               " 49
at_xfail=no
(
  $as_echo "839. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "reconnect.at:1094" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/reconnect.at:1094"

   cat >input <<'_ATEOF'
set-max-tries 1
enable

# Connection succeeds.
run
connected

# Send inactivity probe.
timeout
run

# Idle timeout kills connection.
timeout
run
disconnected
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:1094: \$PYTHON3 \$srcdir/test-reconnect.py < input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-reconnect.py < input" "reconnect.at:1094"
( $at_check_trace; $PYTHON3 $srcdir/test-reconnect.py < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
set-max-tries 1
  1 tries left
enable
  in BACKOFF for 0 ms (0 ms backoff)
  0 tries left

# Connection succeeds.
run
  should connect
connected
  in ACTIVE for 0 ms (0 ms backoff)
  created 1000, last activity 1000, last connected 1000
  1 successful connections out of 1 attempts, seqno 1
  connected
  last connected 0 ms ago, connected 0 ms total

# Send inactivity probe.
timeout
  advance 5000 ms

### t=6000 ###
  in ACTIVE for 5000 ms (0 ms backoff)
run
  should send probe
  in IDLE for 0 ms (0 ms backoff)

# Idle timeout kills connection.
timeout
  advance 5000 ms

### t=11000 ###
  in IDLE for 5000 ms (0 ms backoff)
run
  should disconnect
disconnected
  in VOID for 0 ms (0 ms backoff)
  1 successful connections out of 1 attempts, seqno 2
  disconnected
  disconnected at 11000 ms (0 ms ago)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:1094"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_839
#AT_START_840
at_fn_group_banner 840 'reconnect.at:1154' \
  "max-tries of 0 honored - C" "                     " 49
at_xfail=no
(
  $as_echo "840. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



   cat >input <<'_ATEOF'
set-max-tries 0
enable
run
timeout
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:1154: ovstest test-reconnect < input"
at_fn_check_prepare_trace "reconnect.at:1154"
( $at_check_trace; ovstest test-reconnect < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
set-max-tries 0
  0 tries left
enable
run
timeout
  no timeout
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:1154"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_840
#AT_START_841
at_fn_group_banner 841 'reconnect.at:1154' \
  "max-tries of 0 honored - Python2" "               " 49
at_xfail=no
(
  $as_echo "841. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "reconnect.at:1154" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/reconnect.at:1154"

   cat >input <<'_ATEOF'
set-max-tries 0
enable
run
timeout
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:1154: \$PYTHON \$srcdir/test-reconnect.py < input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-reconnect.py < input" "reconnect.at:1154"
( $at_check_trace; $PYTHON $srcdir/test-reconnect.py < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
set-max-tries 0
  0 tries left
enable
run
timeout
  no timeout
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:1154"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_841
#AT_START_842
at_fn_group_banner 842 'reconnect.at:1154' \
  "max-tries of 0 honored - Python3" "               " 49
at_xfail=no
(
  $as_echo "842. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "reconnect.at:1154" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/reconnect.at:1154"

   cat >input <<'_ATEOF'
set-max-tries 0
enable
run
timeout
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:1154: \$PYTHON3 \$srcdir/test-reconnect.py < input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-reconnect.py < input" "reconnect.at:1154"
( $at_check_trace; $PYTHON3 $srcdir/test-reconnect.py < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
set-max-tries 0
  0 tries left
enable
run
timeout
  no timeout
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:1154"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_842
#AT_START_843
at_fn_group_banner 843 'reconnect.at:1170' \
  "passive mode - C" "                               " 49
at_xfail=no
(
  $as_echo "843. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



   cat >input <<'_ATEOF'
passive
enable

# Start listening.
timeout
run
listening

# Listening never times out.
timeout
run

# Listening failed (accept() returned funny error?).  Back off and try again.
listen-error 0
timeout
run
listening

# Connection accepted.
connected
activity
advance 1000
activity

# Connection times out.
timeout
run
timeout
run
disconnected

# Start listening again.
timeout
run
listening
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:1170: ovstest test-reconnect < input"
at_fn_check_prepare_trace "reconnect.at:1170"
( $at_check_trace; ovstest test-reconnect < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
passive
enable
  in BACKOFF for 0 ms (0 ms backoff)

# Start listening.
timeout
  advance 0 ms
run
  should connect
listening
  in LISTENING for 0 ms (0 ms backoff)

# Listening never times out.
timeout
  no timeout
run

# Listening failed (accept() returned funny error?).  Back off and try again.
listen-error 0
  in BACKOFF for 0 ms (1000 ms backoff)
timeout
  advance 1000 ms

### t=2000 ###
  in BACKOFF for 1000 ms (1000 ms backoff)
run
  should connect
listening
  in LISTENING for 0 ms (1000 ms backoff)

# Connection accepted.
connected
  in ACTIVE for 0 ms (1000 ms backoff)
  created 1000, last activity 1000, last connected 2000
  1 successful connections out of 1 attempts, seqno 1
  connected
  last connected 0 ms ago, connected 0 ms total
activity
  created 1000, last activity 2000, last connected 2000
advance 1000

### t=3000 ###
  in ACTIVE for 1000 ms (1000 ms backoff)
activity
  created 1000, last activity 3000, last connected 2000

# Connection times out.
timeout
  advance 5000 ms

### t=8000 ###
  in ACTIVE for 6000 ms (1000 ms backoff)
run
  should send probe
  in IDLE for 0 ms (1000 ms backoff)
timeout
  advance 5000 ms

### t=13000 ###
  in IDLE for 5000 ms (1000 ms backoff)
run
  should disconnect
disconnected
  in BACKOFF for 0 ms (0 ms backoff)
  1 successful connections out of 1 attempts, seqno 2
  disconnected
  disconnected at 13000 ms (0 ms ago)

# Start listening again.
timeout
  advance 0 ms
run
  should connect
listening
  in LISTENING for 0 ms (0 ms backoff)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:1170"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_843
#AT_START_844
at_fn_group_banner 844 'reconnect.at:1170' \
  "passive mode - Python2" "                         " 49
at_xfail=no
(
  $as_echo "844. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "reconnect.at:1170" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/reconnect.at:1170"

   cat >input <<'_ATEOF'
passive
enable

# Start listening.
timeout
run
listening

# Listening never times out.
timeout
run

# Listening failed (accept() returned funny error?).  Back off and try again.
listen-error 0
timeout
run
listening

# Connection accepted.
connected
activity
advance 1000
activity

# Connection times out.
timeout
run
timeout
run
disconnected

# Start listening again.
timeout
run
listening
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:1170: \$PYTHON \$srcdir/test-reconnect.py < input"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-reconnect.py < input" "reconnect.at:1170"
( $at_check_trace; $PYTHON $srcdir/test-reconnect.py < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
passive
enable
  in BACKOFF for 0 ms (0 ms backoff)

# Start listening.
timeout
  advance 0 ms
run
  should connect
listening
  in LISTENING for 0 ms (0 ms backoff)

# Listening never times out.
timeout
  no timeout
run

# Listening failed (accept() returned funny error?).  Back off and try again.
listen-error 0
  in BACKOFF for 0 ms (1000 ms backoff)
timeout
  advance 1000 ms

### t=2000 ###
  in BACKOFF for 1000 ms (1000 ms backoff)
run
  should connect
listening
  in LISTENING for 0 ms (1000 ms backoff)

# Connection accepted.
connected
  in ACTIVE for 0 ms (1000 ms backoff)
  created 1000, last activity 1000, last connected 2000
  1 successful connections out of 1 attempts, seqno 1
  connected
  last connected 0 ms ago, connected 0 ms total
activity
  created 1000, last activity 2000, last connected 2000
advance 1000

### t=3000 ###
  in ACTIVE for 1000 ms (1000 ms backoff)
activity
  created 1000, last activity 3000, last connected 2000

# Connection times out.
timeout
  advance 5000 ms

### t=8000 ###
  in ACTIVE for 6000 ms (1000 ms backoff)
run
  should send probe
  in IDLE for 0 ms (1000 ms backoff)
timeout
  advance 5000 ms

### t=13000 ###
  in IDLE for 5000 ms (1000 ms backoff)
run
  should disconnect
disconnected
  in BACKOFF for 0 ms (0 ms backoff)
  1 successful connections out of 1 attempts, seqno 2
  disconnected
  disconnected at 13000 ms (0 ms ago)

# Start listening again.
timeout
  advance 0 ms
run
  should connect
listening
  in LISTENING for 0 ms (0 ms backoff)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:1170"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_844
#AT_START_845
at_fn_group_banner 845 'reconnect.at:1170' \
  "passive mode - Python3" "                         " 49
at_xfail=no
(
  $as_echo "845. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "reconnect.at:1170" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/reconnect.at:1170"

   cat >input <<'_ATEOF'
passive
enable

# Start listening.
timeout
run
listening

# Listening never times out.
timeout
run

# Listening failed (accept() returned funny error?).  Back off and try again.
listen-error 0
timeout
run
listening

# Connection accepted.
connected
activity
advance 1000
activity

# Connection times out.
timeout
run
timeout
run
disconnected

# Start listening again.
timeout
run
listening
_ATEOF

   { set +x
$as_echo "$at_srcdir/reconnect.at:1170: \$PYTHON3 \$srcdir/test-reconnect.py < input"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-reconnect.py < input" "reconnect.at:1170"
( $at_check_trace; $PYTHON3 $srcdir/test-reconnect.py < input
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "### t=1000 ###
passive
enable
  in BACKOFF for 0 ms (0 ms backoff)

# Start listening.
timeout
  advance 0 ms
run
  should connect
listening
  in LISTENING for 0 ms (0 ms backoff)

# Listening never times out.
timeout
  no timeout
run

# Listening failed (accept() returned funny error?).  Back off and try again.
listen-error 0
  in BACKOFF for 0 ms (1000 ms backoff)
timeout
  advance 1000 ms

### t=2000 ###
  in BACKOFF for 1000 ms (1000 ms backoff)
run
  should connect
listening
  in LISTENING for 0 ms (1000 ms backoff)

# Connection accepted.
connected
  in ACTIVE for 0 ms (1000 ms backoff)
  created 1000, last activity 1000, last connected 2000
  1 successful connections out of 1 attempts, seqno 1
  connected
  last connected 0 ms ago, connected 0 ms total
activity
  created 1000, last activity 2000, last connected 2000
advance 1000

### t=3000 ###
  in ACTIVE for 1000 ms (1000 ms backoff)
activity
  created 1000, last activity 3000, last connected 2000

# Connection times out.
timeout
  advance 5000 ms

### t=8000 ###
  in ACTIVE for 6000 ms (1000 ms backoff)
run
  should send probe
  in IDLE for 0 ms (1000 ms backoff)
timeout
  advance 5000 ms

### t=13000 ###
  in IDLE for 5000 ms (1000 ms backoff)
run
  should disconnect
disconnected
  in BACKOFF for 0 ms (0 ms backoff)
  1 successful connections out of 1 attempts, seqno 2
  disconnected
  disconnected at 13000 ms (0 ms ago)

# Start listening again.
timeout
  advance 0 ms
run
  should connect
listening
  in LISTENING for 0 ms (0 ms backoff)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/reconnect.at:1170"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_845
#AT_START_846
at_fn_group_banner 846 'ovs-vswitchd.at:7' \
  "ovs-vswitchd detaches correctly with empty db" "  " 50
at_xfail=no
(
  $as_echo "846. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

on_exit 'kill `cat ovsdb-server.pid ovs-vswitchd.pid`'

touch .conf.db.~lock~
{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:12: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vswitchd.at:12"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:12"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:15: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ovs-vswitchd.at:15"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:15"
$at_failed && at_fn_log_failure
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:19: ovs-vswitchd --detach --no-chdir --pidfile --enable-dummy --disable-system --log-file"
at_fn_check_prepare_trace "ovs-vswitchd.at:19"
( $at_check_trace; ovs-vswitchd --detach --no-chdir --pidfile --enable-dummy --disable-system --log-file
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:19"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:23: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovs-vswitchd.at:23"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:23"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:23: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovs-vswitchd.at:23"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:23"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-vswitchd.at:23: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vswitchd.at:23: wait failed" >&5

    $as_echo "ovs-vswitchd.at:23" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vswitchd.at:23"
fi

{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:24: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovs-vswitchd.at:24"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:24"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:24: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vswitchd.at:24"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:24"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-vswitchd.at:24: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vswitchd.at:24: wait failed" >&5

    $as_echo "ovs-vswitchd.at:24" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vswitchd.at:24"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_846
#AT_START_847
at_fn_group_banner 847 'ovs-vswitchd.at:36' \
  "ovs-vswitchd -- stats-update-interval" "          " 50
at_xfail=no
(
  $as_echo "847. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:37: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vswitchd.at:37"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:37"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:37: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ovs-vswitchd.at:37"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:37"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:37: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vswitchd.at:37"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:37"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:37: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ovs-vswitchd.at:37"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:37"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:37: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ovs-vswitchd.at:37"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:37"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:37: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vswitchd.at:37"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:37"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:37: add_of_br 0 add-port br0 p1 -- set int p1 type=internal "
at_fn_check_prepare_trace "ovs-vswitchd.at:37"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set int p1 type=internal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:37"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/stop

ovs-appctl time/warp 11000 1000

{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:42: ovs-vsctl list int p1 | grep statistics | sed -n 's/^.*\\(rx_packets=[0-9][0-9]*\\).*\$/\\1/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-vswitchd.at:42"
( $at_check_trace; ovs-vsctl list int p1 | grep statistics | sed -n 's/^.*\(rx_packets=[0-9][0-9]*\).*$/\1/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "rx_packets=0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:42"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:43: ovs-appctl netdev-dummy/receive p1 'eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ovs-vswitchd.at:43"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:43"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 11000 1000

{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:45: ovs-vsctl list int p1 | grep statistics | sed -n 's/^.*\\(rx_packets=[0-9][0-9]*\\).*\$/\\1/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-vswitchd.at:45"
( $at_check_trace; ovs-vsctl list int p1 | grep statistics | sed -n 's/^.*\(rx_packets=[0-9][0-9]*\).*$/\1/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "rx_packets=1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:45"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:48: ovs-vsctl set O . other_config:stats-update-interval=100000"
at_fn_check_prepare_trace "ovs-vswitchd.at:48"
( $at_check_trace; ovs-vsctl set O . other_config:stats-update-interval=100000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:48"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 51000 1000
for i in `seq 1 5`; do
    { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:51: ovs-appctl netdev-dummy/receive p1 'eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ovs-vswitchd.at:51"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:51"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

done


{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:54: ovs-vsctl list int p1 | grep statistics | sed -n 's/^.*\\(rx_packets=[0-9][0-9]*\\).*\$/\\1/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-vswitchd.at:54"
( $at_check_trace; ovs-vsctl list int p1 | grep statistics | sed -n 's/^.*\(rx_packets=[0-9][0-9]*\).*$/\1/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "rx_packets=1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:54"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 100000 1000

{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:57: ovs-vsctl list int p1 | grep statistics | sed -n 's/^.*\\(rx_packets=[0-9][0-9]*\\).*\$/\\1/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-vswitchd.at:57"
( $at_check_trace; ovs-vsctl list int p1 | grep statistics | sed -n 's/^.*\(rx_packets=[0-9][0-9]*\).*$/\1/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "rx_packets=6
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:57"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:60: ovs-vsctl clear O . other_config"
at_fn_check_prepare_trace "ovs-vswitchd.at:60"
( $at_check_trace; ovs-vsctl clear O . other_config
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:60"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:61: ovs-appctl netdev-dummy/receive p1 'eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ovs-vswitchd.at:61"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:61"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 11000 1000

{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:63: ovs-vsctl list int p1 | grep statistics | sed -n 's/^.*\\(rx_packets=[0-9][0-9]*\\).*\$/\\1/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-vswitchd.at:63"
( $at_check_trace; ovs-vsctl list int p1 | grep statistics | sed -n 's/^.*\(rx_packets=[0-9][0-9]*\).*$/\1/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "rx_packets=7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:63"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:65: check_logs "
at_fn_check_prepare_trace "ovs-vswitchd.at:65"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:65"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:65: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovs-vswitchd.at:65"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:65"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:65: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovs-vswitchd.at:65"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:65"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-vswitchd.at:65: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vswitchd.at:65: wait failed" >&5

    $as_echo "ovs-vswitchd.at:65" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vswitchd.at:65"
fi

   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:65: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovs-vswitchd.at:65"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:65"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:65: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vswitchd.at:65"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:65"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-vswitchd.at:65: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vswitchd.at:65: wait failed" >&5

    $as_echo "ovs-vswitchd.at:65" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vswitchd.at:65"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_847
#AT_START_848
at_fn_group_banner 848 'ovs-vswitchd.at:69' \
  "ovs-vswitchd -- start additional ovs-vswitchd process" "" 50
at_xfail=no
(
  $as_echo "848. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:70: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vswitchd.at:70"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:70"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:70: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ovs-vswitchd.at:70"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:70"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:70: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vswitchd.at:70"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:70"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:70: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ovs-vswitchd.at:70"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:70"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:70: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ovs-vswitchd.at:70"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:70"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:70: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vswitchd.at:70"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:70"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:70: add_of_br 0  "
at_fn_check_prepare_trace "ovs-vswitchd.at:70"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:70"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# start another ovs-vswitchd process.
ovs-vswitchd --log-file=fakelog --unixctl=unixctl2 --pidfile=ovs-vswitchd-2.pid &
on_exit 'kill `cat ovs-vswitchd-2.pid`'

# sleep for a while
sleep 5

# stop the process.
{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:80: test -e \`pwd\`/ovs-vswitchd-2.pid"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vswitchd.at:80"
( $at_check_trace; test -e `pwd`/ovs-vswitchd-2.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:80"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat `pwd`/ovs-vswitchd-2.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:80: ovs-appctl --timeout=10 --target=\"\`pwd\`\"/unixctl2 exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vswitchd.at:80"
( $at_check_trace; ovs-appctl --timeout=10 --target="`pwd`"/unixctl2 exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:80"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-vswitchd.at:80: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vswitchd.at:80: wait failed" >&5

    $as_echo "ovs-vswitchd.at:80" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vswitchd.at:80"
fi


# check the fakelog, should only see one ERR for reporting
# the existing ovs-vswitchd process.
{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:84: test \`grep ERR fakelog | wc -l\` -eq 1"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vswitchd.at:84"
( $at_check_trace; test `grep ERR fakelog | wc -l` -eq 1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:84"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:86: tail -n1 fakelog | sed -e 's/^.*ERR|//; s/pid [0-9]*//'"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-vswitchd.at:86"
( $at_check_trace; tail -n1 fakelog | sed -e 's/^.*ERR|//; s/pid [0-9]*//'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "another ovs-vswitchd process is running, disabling this process () until it goes away
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:86"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:90: check_logs "
at_fn_check_prepare_trace "ovs-vswitchd.at:90"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:90"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:90: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovs-vswitchd.at:90"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:90"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:90: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovs-vswitchd.at:90"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:90"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-vswitchd.at:90: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vswitchd.at:90: wait failed" >&5

    $as_echo "ovs-vswitchd.at:90" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vswitchd.at:90"
fi

   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:90: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovs-vswitchd.at:90"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:90"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:90: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vswitchd.at:90"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:90"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-vswitchd.at:90: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vswitchd.at:90: wait failed" >&5

    $as_echo "ovs-vswitchd.at:90" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vswitchd.at:90"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_848
#AT_START_849
at_fn_group_banner 849 'ovs-vswitchd.at:94' \
  "ovs-vswitchd -- switch over to another ovs-vswitchd process" "" 50
at_xfail=no
(
  $as_echo "849. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:95: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vswitchd.at:95"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:95"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:95: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ovs-vswitchd.at:95"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:95"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:95: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vswitchd.at:95"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:95"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:95: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ovs-vswitchd.at:95"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:95"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:95: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ovs-vswitchd.at:95"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:95"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:95: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vswitchd.at:95"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:95"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:95: add_of_br 0  "
at_fn_check_prepare_trace "ovs-vswitchd.at:95"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:95"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# start a new ovs-vswitchd process.
ovs-vswitchd --log-file=fakelog --enable-dummy --unixctl=unixctl2 --pidfile=ovs-vswitchd-2.pid &
on_exit 'kill `cat ovs-vswitchd-2.pid`'

# sleep for a while.
sleep 5

# kill the current active ovs-vswitchd process.
kill `cat ovs-vswitchd.pid`

sleep 5

# check the creation of br0 on the new ovs-vswitchd process.
{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:110: grep \"bridge br0\" fakelog | sed -e 's/port [0-9]*\$/port/;
s/datapath ID [a-z0-9]*\$/datapath ID/;s/^.*INFO|//'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vswitchd.at:110"
( $at_check_trace; grep "bridge br0" fakelog | sed -e 's/port [0-9]*$/port/;
s/datapath ID [a-z0-9]*$/datapath ID/;s/^.*INFO|//'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "bridge br0: added interface br0 on port
bridge br0: using datapath ID
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:110"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# stop the process.
{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:117: test -e ovs-vswitchd-2.pid"
at_fn_check_prepare_trace "ovs-vswitchd.at:117"
( $at_check_trace; test -e ovs-vswitchd-2.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:117"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat ovs-vswitchd-2.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:117: ovs-appctl --timeout=10 --target=\"\`pwd\`\"/unixctl2 exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vswitchd.at:117"
( $at_check_trace; ovs-appctl --timeout=10 --target="`pwd`"/unixctl2 exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:117"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-vswitchd.at:117: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vswitchd.at:117: wait failed" >&5

    $as_echo "ovs-vswitchd.at:117" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vswitchd.at:117"
fi


# check the fakelog, should not see WARN/ERR/EMER log other than the one
# for reporting the existing ovs-vswitchd process and the one for killing
# the process.
{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:122: sed -n \"
/|ERR|another ovs-vswitchd process is running/d
/|WARN|/p
/|ERR|/p
/|EMER|/p\" fakelog
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vswitchd.at:122"
( $at_check_trace; sed -n "
/|ERR|another ovs-vswitchd process is running/d
/|WARN|/p
/|ERR|/p
/|EMER|/p" fakelog

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:122"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# cleanup.
kill `cat ovsdb-server.pid`
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_849
#AT_START_850
at_fn_group_banner 850 'ovs-vswitchd.at:134' \
  "ovs-vswitchd -- invalid database path" "          " 50
at_xfail=no
(
  $as_echo "850. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


# start an ovs-vswitchd process with invalid db path.
ovs-vswitchd unix:invalid.db.sock --log-file --enable-dummy --pidfile &
on_exit 'kill `cat ovs-vswitchd.pid`'

# sleep for a while.
sleep 10

# stop the process.
{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:144: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovs-vswitchd.at:144"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:144"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:144: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovs-vswitchd.at:144"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:144"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vswitchd.at:144: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vswitchd.at:144: wait failed" >&5

    $as_echo "ovs-vswitchd.at:144" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vswitchd.at:144"
fi


# should not see this log (which indicates high cpu utilization).
{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:147: grep \"wakeup due to\" ovs-vswitchd.log"
at_fn_check_prepare_trace "ovs-vswitchd.at:147"
( $at_check_trace; grep "wakeup due to" ovs-vswitchd.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_skip $at_status "$at_srcdir/ovs-vswitchd.at:147"
$at_failed && at_fn_log_failure
$at_traceon; }


# check the log, should not see any WARN/ERR/EMER log.
{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:150: sed -n \"
/|WARN|/p
/|ERR|/p
/|EMER|/p\" ovs-vswitchd.log
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vswitchd.at:150"
( $at_check_trace; sed -n "
/|WARN|/p
/|ERR|/p
/|EMER|/p" ovs-vswitchd.log

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:150"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_850
#AT_START_851
at_fn_group_banner 851 'ovs-vswitchd.at:159' \
  "ovs-vswitchd -- set service controller" "         " 50
at_xfail=no
(
  $as_echo "851. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovs-vswitchd.at:160" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovs-vswitchd.at:160"
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:161: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vswitchd.at:161"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:161"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:161: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ovs-vswitchd.at:161"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:161"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:161: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vswitchd.at:161"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:161"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:161: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ovs-vswitchd.at:161"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:161"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:161: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ovs-vswitchd.at:161"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:161"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:161: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vswitchd.at:161"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:161"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:161: add_of_br 0  "
at_fn_check_prepare_trace "ovs-vswitchd.at:161"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:161"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:163: ovs-vsctl set-controller br0 punix:\$(pwd)/br0.void"
at_fn_check_prepare_notrace 'a $(...) command substitution' "ovs-vswitchd.at:163"
( $at_check_trace; ovs-vsctl set-controller br0 punix:$(pwd)/br0.void
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:163"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

$as_echo "ovs-vswitchd.at:164: waiting until test -e br0.void..." >&5
ovs_wait_cond () {
    test -e br0.void
}
if ovs_wait; then :
else
    $as_echo "ovs-vswitchd.at:164: wait failed" >&5

    $as_echo "ovs-vswitchd.at:164" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vswitchd.at:164"
fi


{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:166: ovs-vsctl set-controller br0 punix:\$(pwd)/br0.void/../overwrite.file"
at_fn_check_prepare_notrace 'a $(...) command substitution' "ovs-vswitchd.at:166"
( $at_check_trace; ovs-vsctl set-controller br0 punix:$(pwd)/br0.void/../overwrite.file
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:166"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

$as_echo "ovs-vswitchd.at:167: waiting until test -n \"\`grep ERR ovs-vswitchd.log | grep overwrite.file\`\"..." >&5
ovs_wait_cond () {
    test -n "`grep ERR ovs-vswitchd.log | grep overwrite.file`"
}
if ovs_wait; then :
else
    $as_echo "ovs-vswitchd.at:167: wait failed" >&5

    $as_echo "ovs-vswitchd.at:167" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vswitchd.at:167"
fi


{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:169: check_logs \"/Not adding Unix domain socket controller/d\""
at_fn_check_prepare_trace "ovs-vswitchd.at:169"
( $at_check_trace; check_logs "/Not adding Unix domain socket controller/d"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:169"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:169: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovs-vswitchd.at:169"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:169"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:169: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovs-vswitchd.at:169"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:169"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-vswitchd.at:169: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vswitchd.at:169: wait failed" >&5

    $as_echo "ovs-vswitchd.at:169" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vswitchd.at:169"
fi

   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:169: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovs-vswitchd.at:169"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:169"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:169: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vswitchd.at:169"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:169"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-vswitchd.at:169: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vswitchd.at:169: wait failed" >&5

    $as_echo "ovs-vswitchd.at:169" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vswitchd.at:169"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_851
#AT_START_852
at_fn_group_banner 852 'ovs-vswitchd.at:176' \
  "ovs-vswitchd -- Compatible with OVSDB server - w/o monitor_cond" "" 50
at_xfail=no
(
  $as_echo "852. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:177: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vswitchd.at:177"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:177"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:177: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ovs-vswitchd.at:177"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:177"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:177: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vswitchd.at:177"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:177"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:177: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ovs-vswitchd.at:177"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:177"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:177: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ovs-vswitchd.at:177"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:177"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:177: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vswitchd.at:177"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:177"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:177: add_of_br 0  "
at_fn_check_prepare_trace "ovs-vswitchd.at:177"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:177"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:180: ovs-appctl -t ovsdb-server ovsdb-server/disable-monitor-cond"
at_fn_check_prepare_trace "ovs-vswitchd.at:180"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/disable-monitor-cond
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:180"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


sleep 1

{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:184: ovs-vsctl add-port br0 p0  -- set interface p0 type=internal"
at_fn_check_prepare_trace "ovs-vswitchd.at:184"
( $at_check_trace; ovs-vsctl add-port br0 p0  -- set interface p0 type=internal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:184"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:185: ovs-vsctl add-port br0 p1  -- set interface p1 type=internal"
at_fn_check_prepare_trace "ovs-vswitchd.at:185"
( $at_check_trace; ovs-vsctl add-port br0 p1  -- set interface p1 type=internal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:185"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:188: ovs-appctl dpif/show | tail -n +3"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-vswitchd.at:188"
( $at_check_trace; ovs-appctl dpif/show | tail -n +3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "		br0 65534/100: (dummy-internal)
		p0 1/1: (dummy-internal)
		p1 2/2: (dummy-internal)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:188"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:193: check_logs "
at_fn_check_prepare_trace "ovs-vswitchd.at:193"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:193"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:193: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovs-vswitchd.at:193"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:193"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:193: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovs-vswitchd.at:193"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:193"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-vswitchd.at:193: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vswitchd.at:193: wait failed" >&5

    $as_echo "ovs-vswitchd.at:193" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vswitchd.at:193"
fi

   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:193: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovs-vswitchd.at:193"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:193"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:193: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vswitchd.at:193"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:193"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-vswitchd.at:193: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vswitchd.at:193: wait failed" >&5

    $as_echo "ovs-vswitchd.at:193" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vswitchd.at:193"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_852
#AT_START_853
at_fn_group_banner 853 'ovs-vswitchd.at:197' \
  "ovs-vswitchd - do not create sockets with unsafe names" "" 50
at_xfail=no
(
  $as_echo "853. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:198: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vswitchd.at:198"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:198"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:198: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ovs-vswitchd.at:198"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:198"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:198: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vswitchd.at:198"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:198"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:198: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ovs-vswitchd.at:198"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:198"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:198: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ovs-vswitchd.at:198"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:198"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:198: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vswitchd.at:198"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:198"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:198: add_of_br 0  "
at_fn_check_prepare_trace "ovs-vswitchd.at:198"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:198"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# On Unix systems, test for sockets with "test -S".
#
# On Windows systems, we simulate a socket with a regular file that contains
# a TCP port number, so use "test -f" there instead.
if test $IS_WIN32 = yes; then
   S=f
else
   S=S
fi

# Create a bridge with an ordinary name and make sure that the management
# socket gets creatd.
{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:212: ovs-vsctl add-br a -- set bridge a datapath-type=dummy"
at_fn_check_prepare_trace "ovs-vswitchd.at:212"
( $at_check_trace; ovs-vsctl add-br a -- set bridge a datapath-type=dummy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:212"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:213: test -\$S a.mgmt"
at_fn_check_prepare_dynamic "test -$S a.mgmt" "ovs-vswitchd.at:213"
( $at_check_trace; test -$S a.mgmt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:213"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Create a bridge with an unsafe name and make sure that the management
# socket does not get created.
mkdir b

cat >experr <<EOF
ovs-vsctl: Error detected while setting up 'b/c'.  See ovs-vswitchd log for details.
ovs-vsctl: The default log directory is "$OVS_RUNDIR".
EOF
{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:223: ovs-vsctl add-br b/c -- set bridge b/c datapath-type=dummy"
at_fn_check_prepare_trace "ovs-vswitchd.at:223"
( $at_check_trace; ovs-vsctl add-br b/c -- set bridge b/c datapath-type=dummy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:223"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:224: test ! -e b/c.mgmt"
at_fn_check_prepare_trace "ovs-vswitchd.at:224"
( $at_check_trace; test ! -e b/c.mgmt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:224"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:226: check_logs '/ignoring bridge with invalid name/d'"
at_fn_check_prepare_trace "ovs-vswitchd.at:226"
( $at_check_trace; check_logs '/ignoring bridge with invalid name/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:226"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:226: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovs-vswitchd.at:226"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:226"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:226: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovs-vswitchd.at:226"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:226"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-vswitchd.at:226: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vswitchd.at:226: wait failed" >&5

    $as_echo "ovs-vswitchd.at:226" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vswitchd.at:226"
fi

   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:226: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovs-vswitchd.at:226"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:226"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:226: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vswitchd.at:226"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:226"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-vswitchd.at:226: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vswitchd.at:226: wait failed" >&5

    $as_echo "ovs-vswitchd.at:226" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vswitchd.at:226"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_853
#AT_START_854
at_fn_group_banner 854 'ovs-vswitchd.at:230' \
  "ovs-vswitchd - set datapath IDs" "                " 50
at_xfail=no
(
  $as_echo "854. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:231: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vswitchd.at:231"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:231"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:231: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ovs-vswitchd.at:231"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:231"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:231: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vswitchd.at:231"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:231"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:231: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ovs-vswitchd.at:231"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:231"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:231: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ovs-vswitchd.at:231"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:231"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:231: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vswitchd.at:231"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:231"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:231: add_of_br 0 remove bridge br0 other-config datapath-id "
at_fn_check_prepare_trace "ovs-vswitchd.at:231"
( $at_check_trace; add_of_br 0 remove bridge br0 other-config datapath-id
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:231"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Get the default dpid and verify that it is of the expected form.
{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:234: ovs-vsctl --timeout=10 wait-until bridge br0 datapath-id!='[]'"
at_fn_check_prepare_trace "ovs-vswitchd.at:234"
( $at_check_trace; ovs-vsctl --timeout=10 wait-until bridge br0 datapath-id!='[]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:234"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:235: ovs-vsctl get bridge br0 datapath-id"
at_fn_check_prepare_trace "ovs-vswitchd.at:235"
( $at_check_trace; ovs-vsctl get bridge br0 datapath-id
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:235"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

orig_dpid=$(tr -d \" < stdout)
{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:237: sed 's/[0-9a-f]/x/g' stdout"
at_fn_check_prepare_trace "ovs-vswitchd.at:237"
( $at_check_trace; sed 's/[0-9a-f]/x/g' stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"xxxxxxxxxxxxxxxx\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:237"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:239: ovs-ofctl show br0 | strip_xids | head -1"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-vswitchd.at:239"
( $at_check_trace; ovs-ofctl show br0 | strip_xids | head -1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_FEATURES_REPLY: dpid:$orig_dpid
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:239"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Set a dpid with 16 hex digits.
{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:244: ovs-vsctl set bridge br0 other-config:datapath-id=0123456789abcdef"
at_fn_check_prepare_trace "ovs-vswitchd.at:244"
( $at_check_trace; ovs-vsctl set bridge br0 other-config:datapath-id=0123456789abcdef
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:244"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:245: ovs-vsctl --timeout=10 wait-until bridge br0 datapath-id=0123456789abcdef"
at_fn_check_prepare_trace "ovs-vswitchd.at:245"
( $at_check_trace; ovs-vsctl --timeout=10 wait-until bridge br0 datapath-id=0123456789abcdef
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:245"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:246: ovs-ofctl show br0 | strip_xids | head -1"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-vswitchd.at:246"
( $at_check_trace; ovs-ofctl show br0 | strip_xids | head -1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_FEATURES_REPLY: dpid:0123456789abcdef
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:246"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Set a dpif with 0x prefix.
{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:251: ovs-vsctl set bridge br0 other-config:datapath-id=0x5ad515c0"
at_fn_check_prepare_trace "ovs-vswitchd.at:251"
( $at_check_trace; ovs-vsctl set bridge br0 other-config:datapath-id=0x5ad515c0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:251"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:252: ovs-vsctl --timeout=10 wait-until bridge br0 datapath-id=000000005ad515c0"
at_fn_check_prepare_trace "ovs-vswitchd.at:252"
( $at_check_trace; ovs-vsctl --timeout=10 wait-until bridge br0 datapath-id=000000005ad515c0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:252"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:253: ovs-ofctl show br0 | strip_xids | head -1"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-vswitchd.at:253"
( $at_check_trace; ovs-ofctl show br0 | strip_xids | head -1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_FEATURES_REPLY: dpid:000000005ad515c0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:253"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Set invalid all-zeros dpid and make sure that the default reappears.
{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:258: ovs-vsctl set bridge br0 other-config:datapath-id=0x00"
at_fn_check_prepare_trace "ovs-vswitchd.at:258"
( $at_check_trace; ovs-vsctl set bridge br0 other-config:datapath-id=0x00
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:258"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:259: ovs-vsctl --timeout=10 wait-until bridge br0 datapath-id=\$orig_dpid"
at_fn_check_prepare_dynamic "ovs-vsctl --timeout=10 wait-until bridge br0 datapath-id=$orig_dpid" "ovs-vswitchd.at:259"
( $at_check_trace; ovs-vsctl --timeout=10 wait-until bridge br0 datapath-id=$orig_dpid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:259"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:260: ovs-ofctl show br0 | strip_xids | head -1"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-vswitchd.at:260"
( $at_check_trace; ovs-ofctl show br0 | strip_xids | head -1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_FEATURES_REPLY: dpid:$orig_dpid
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:260"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:264: check_logs "
at_fn_check_prepare_trace "ovs-vswitchd.at:264"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:264"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:264: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovs-vswitchd.at:264"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:264"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:264: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovs-vswitchd.at:264"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:264"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-vswitchd.at:264: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vswitchd.at:264: wait failed" >&5

    $as_echo "ovs-vswitchd.at:264" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vswitchd.at:264"
fi

   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:264: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovs-vswitchd.at:264"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:264"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vswitchd.at:264: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vswitchd.at:264"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vswitchd.at:264"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-vswitchd.at:264: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vswitchd.at:264: wait failed" >&5

    $as_echo "ovs-vswitchd.at:264" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vswitchd.at:264"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_854
#AT_START_855
at_fn_group_banner 855 'ofproto.at:3' \
  "ofproto - echo request" "                         " 51
at_xfail=no
(
  $as_echo "855. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:4: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:4"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:4"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:4: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:4"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:4"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:4: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:4"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5: ovs-ofctl -vwarn probe br0"
at_fn_check_prepare_trace "ofproto.at:5"
( $at_check_trace; ovs-ofctl -vwarn probe br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:6: check_logs "
at_fn_check_prepare_trace "ofproto.at:6"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:6: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:6"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:6: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:6"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:6: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:6: wait failed" >&5

    $as_echo "ofproto.at:6" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:6"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:6: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:6"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:6: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:6"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:6: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:6: wait failed" >&5

    $as_echo "ofproto.at:6" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:6"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_855
#AT_START_856
at_fn_group_banner 856 'ofproto.at:9' \
  "ofproto - handling messages with bad version" "   " 51
at_xfail=no
(
  $as_echo "856. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:11: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:11"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:11"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:11: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:11"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:11"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:11: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:11"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:11"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:11: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:11"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:11"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:11: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:11"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:11"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:11: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:11"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:11"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:11: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:11"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:11"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Start a monitor running OpenFlow 1.0, then send the switch an OF1.1 features
# request
{ set +x
$as_echo "$at_srcdir/ofproto.at:15: ovs-ofctl -P standard monitor br0 --detach --no-chdir --pidfile"
at_fn_check_prepare_trace "ofproto.at:15"
( $at_check_trace; ovs-ofctl -P standard monitor br0 --detach --no-chdir --pidfile
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:15"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log

ovs-appctl -t ovs-ofctl ofctl/send 0205000801234567
ovs-appctl -t ovs-ofctl ofctl/barrier
{ set +x
$as_echo "$at_srcdir/ofproto.at:20: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:20"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:20"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:20: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:20"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:20"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:20: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:20: wait failed" >&5

    $as_echo "ofproto.at:20" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:20"
fi


{ set +x
$as_echo "$at_srcdir/ofproto.at:22: sed 's/ (xid=0x[0-9a-fA-F]*)//
/ECHO/d' monitor.log"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:22"
( $at_check_trace; sed 's/ (xid=0x[0-9a-fA-F]*)//
/ECHO/d' monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "send: OFPT_FEATURES_REQUEST (OF1.1):
OFPT_ERROR (OF1.1): OFPBRC_BAD_VERSION
OFPT_FEATURES_REQUEST (OF1.1):
OFPT_BARRIER_REPLY:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:22"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:30: check_logs \"/received OpenFlow version 0x02 != expected 01/d\""
at_fn_check_prepare_trace "ofproto.at:30"
( $at_check_trace; check_logs "/received OpenFlow version 0x02 != expected 01/d"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:30"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:30: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:30"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:30"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:30: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:30"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:30"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:30: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:30: wait failed" >&5

    $as_echo "ofproto.at:30" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:30"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:30: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:30"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:30"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:30: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:30"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:30"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:30: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:30: wait failed" >&5

    $as_echo "ofproto.at:30" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:30"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_856
#AT_START_857
at_fn_group_banner 857 'ofproto.at:33' \
  "ofproto - feature request, config request" "      " 51
at_xfail=no
(
  $as_echo "857. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:34: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:34"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:34: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:34"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:34: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:34"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:34: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:34"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:34"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:34: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:34"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:34"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:34: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:34"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:34"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:34: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:34"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:34"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:35: ovs-ofctl -vwarn show br0"
at_fn_check_prepare_trace "ofproto.at:35"
( $at_check_trace; ovs-ofctl -vwarn show br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:35"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:36: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:36"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_FEATURES_REPLY: dpid:fedcba9876543210
n_tables:254, n_buffers:0
capabilities: FLOW_STATS TABLE_STATS PORT_STATS QUEUE_STATS ARP_MATCH_IP
actions: output enqueue set_vlan_vid set_vlan_pcp strip_vlan mod_dl_src mod_dl_dst mod_nw_src mod_nw_dst mod_nw_tos mod_tp_src mod_tp_dst
 LOCAL(br0): addr:aa:55:aa:55:00:00
     config:     PORT_DOWN
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max
OFPT_GET_CONFIG_REPLY: frags=normal miss_send_len=0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:36"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:47: check_logs "
at_fn_check_prepare_trace "ofproto.at:47"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:47"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:47: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:47"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:47"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:47: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:47"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:47"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:47: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:47: wait failed" >&5

    $as_echo "ofproto.at:47" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:47"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:47: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:47"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:47"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:47: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:47"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:47"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:47: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:47: wait failed" >&5

    $as_echo "ofproto.at:47" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:47"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_857
#AT_START_858
at_fn_group_banner 858 'ofproto.at:50' \
  "ofproto - set OpenFlow port number" "             " 51
at_xfail=no
(
  $as_echo "858. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:51: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:51"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:51"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:51: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:51"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:51"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:51: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:51"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:51"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:51: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:51"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:51"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:51: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:51"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:51"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:51: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:51"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:51"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:51: add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy --\\
        add-port br0 p2 -- set Interface p2 type=dummy ofport_request=99 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:51"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy --\
        add-port br0 p2 -- set Interface p2 type=dummy ofport_request=99
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:51"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:54: ovs-ofctl -vwarn show br0"
at_fn_check_prepare_trace "ofproto.at:54"
( $at_check_trace; ovs-ofctl -vwarn show br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:54"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:55: sed '
s/ (xid=0x[0-9a-fA-F]*)//
s/00:0.\$/00:0x/' < stdout"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:55"
( $at_check_trace; sed '
s/ (xid=0x[0-9a-fA-F]*)//
s/00:0.$/00:0x/' < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_FEATURES_REPLY: dpid:fedcba9876543210
n_tables:254, n_buffers:0
capabilities: FLOW_STATS TABLE_STATS PORT_STATS QUEUE_STATS ARP_MATCH_IP
actions: output enqueue set_vlan_vid set_vlan_pcp strip_vlan mod_dl_src mod_dl_dst mod_nw_src mod_nw_dst mod_nw_tos mod_tp_src mod_tp_dst
 1(p1): addr:aa:55:aa:55:00:0x
     config:     PORT_DOWN
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max
 99(p2): addr:aa:55:aa:55:00:0x
     config:     PORT_DOWN
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max
 LOCAL(br0): addr:aa:55:aa:55:00:0x
     config:     PORT_DOWN
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max
OFPT_GET_CONFIG_REPLY: frags=normal miss_send_len=0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:55"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:78: check_logs "
at_fn_check_prepare_trace "ofproto.at:78"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:78"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:78: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:78"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:78"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:78: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:78"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:78"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:78: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:78: wait failed" >&5

    $as_echo "ofproto.at:78" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:78"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:78: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:78"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:78"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:78: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:78"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:78"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:78: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:78: wait failed" >&5

    $as_echo "ofproto.at:78" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:78"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_858
#AT_START_859
at_fn_group_banner 859 'ofproto.at:83' \
  "ofproto - port stats - (OpenFlow 1.0)" "          " 51
at_xfail=no
(
  $as_echo "859. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:84: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:84"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:84"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:84: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:84"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:84"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:84: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:84"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:84"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:84: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:84"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:84"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:84: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:84"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:84"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:84: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:84"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:84"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:84: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:84"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:84"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:85: ovs-ofctl -vwarn dump-ports br0"
at_fn_check_prepare_trace "ofproto.at:85"
( $at_check_trace; ovs-ofctl -vwarn dump-ports br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:85"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:86: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:86"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_PORT reply: 1 ports
  port LOCAL: rx pkts=0, bytes=0, drop=?, errs=?, frame=?, over=?, crc=?
           tx pkts=0, bytes=0, drop=?, errs=?, coll=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:86"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:91: check_logs "
at_fn_check_prepare_trace "ofproto.at:91"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:91"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:91: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:91"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:91"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:91: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:91"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:91"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:91: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:91: wait failed" >&5

    $as_echo "ofproto.at:91" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:91"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:91: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:91"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:91"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:91: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:91"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:91"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:91: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:91: wait failed" >&5

    $as_echo "ofproto.at:91" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:91"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_859
#AT_START_860
at_fn_group_banner 860 'ofproto.at:94' \
  "ofproto - port stats - (OpenFlow 1.2)" "          " 51
at_xfail=no
(
  $as_echo "860. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:95: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:95"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:95"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:95: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:95"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:95"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:95: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:95"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:95"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:95: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:95"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:95"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:95: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:95"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:95"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:95: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:95"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:95"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:95: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:95"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:95"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:96: ovs-ofctl -O OpenFlow12 -vwarn dump-ports br0"
at_fn_check_prepare_trace "ofproto.at:96"
( $at_check_trace; ovs-ofctl -O OpenFlow12 -vwarn dump-ports br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:96"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:97: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:97"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_PORT reply (OF1.2): 1 ports
  port LOCAL: rx pkts=0, bytes=0, drop=?, errs=?, frame=?, over=?, crc=?
           tx pkts=0, bytes=0, drop=?, errs=?, coll=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:97"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:102: check_logs "
at_fn_check_prepare_trace "ofproto.at:102"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:102"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:102: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:102"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:102"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:102: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:102"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:102"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:102: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:102: wait failed" >&5

    $as_echo "ofproto.at:102" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:102"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:102: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:102"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:102"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:102: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:102"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:102"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:102: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:102: wait failed" >&5

    $as_echo "ofproto.at:102" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:102"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_860
#AT_START_861
at_fn_group_banner 861 'ofproto.at:105' \
  "ofproto - port stats - (OpenFlow 1.4)" "          " 51
at_xfail=no
(
  $as_echo "861. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:106: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:106"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:106"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:106: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:106"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:106"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:106: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:106"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:106"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:106: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:106"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:106"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:106: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:106"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:106"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:106: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:106"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:106"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:106: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:106"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:106"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:107: ovs-ofctl -O OpenFlow14 -vwarn dump-ports br0"
at_fn_check_prepare_trace "ofproto.at:107"
( $at_check_trace; ovs-ofctl -O OpenFlow14 -vwarn dump-ports br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:108: strip_xids < stdout | sed 's/duration=[0-9.]*s/duration=?s/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:108"
( $at_check_trace; strip_xids < stdout | sed 's/duration=[0-9.]*s/duration=?s/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_PORT reply (OF1.4): 1 ports
  port LOCAL: rx pkts=0, bytes=0, drop=?, errs=?, frame=?, over=?, crc=?
           tx pkts=0, bytes=0, drop=?, errs=?, coll=?
           duration=?s
           CUSTOM Statistics
                      rx_custom_packets_1=0, rx_custom_packets_2=0,
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:108"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:117: check_logs "
at_fn_check_prepare_trace "ofproto.at:117"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:117"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:117: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:117"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:117"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:117: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:117"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:117"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:117: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:117: wait failed" >&5

    $as_echo "ofproto.at:117" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:117"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:117: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:117"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:117"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:117: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:117"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:117"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:117: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:117: wait failed" >&5

    $as_echo "ofproto.at:117" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:117"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_861
#AT_START_862
at_fn_group_banner 862 'ofproto.at:122' \
  "ofproto - port-desc stats (OpenFlow 1.0)" "       " 51
at_xfail=no
(
  $as_echo "862. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:123: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:123"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:123"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:123: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:123"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:123"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:123: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:123"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:123"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:123: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:123"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:123"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:123: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:123"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:123"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:123: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:123"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:123"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:123: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:123"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:123"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:124: ovs-ofctl -vwarn dump-ports-desc br0"
at_fn_check_prepare_trace "ofproto.at:124"
( $at_check_trace; ovs-ofctl -vwarn dump-ports-desc br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:124"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:125: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:125"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_PORT_DESC reply:
 LOCAL(br0): addr:aa:55:aa:55:00:00
     config:     PORT_DOWN
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:125"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:132: check_logs "
at_fn_check_prepare_trace "ofproto.at:132"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:132"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:132: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:132"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:132"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:132: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:132"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:132"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:132: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:132: wait failed" >&5

    $as_echo "ofproto.at:132" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:132"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:132: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:132"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:132"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:132: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:132"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:132"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:132: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:132: wait failed" >&5

    $as_echo "ofproto.at:132" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:132"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_862
#AT_START_863
at_fn_group_banner 863 'ofproto.at:137' \
  "ofproto - port-desc stats (OpenFlow 1.2)" "       " 51
at_xfail=no
(
  $as_echo "863. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:138: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:138"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:138"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:138: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:138"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:138"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:138: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:138"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:138"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:138: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:138"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:138"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:138: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:138"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:138"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:138: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:138"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:138"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:138: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:138"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:138"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:139: ovs-ofctl -O OpenFlow12 -vwarn dump-ports-desc br0"
at_fn_check_prepare_trace "ofproto.at:139"
( $at_check_trace; ovs-ofctl -O OpenFlow12 -vwarn dump-ports-desc br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:139"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:140: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:140"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_PORT_DESC reply (OF1.2):
 LOCAL(br0): addr:aa:55:aa:55:00:00
     config:     PORT_DOWN
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:140"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:147: check_logs "
at_fn_check_prepare_trace "ofproto.at:147"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:147"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:147: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:147"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:147"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:147: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:147"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:147"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:147: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:147: wait failed" >&5

    $as_echo "ofproto.at:147" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:147"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:147: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:147"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:147"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:147: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:147"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:147"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:147: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:147: wait failed" >&5

    $as_echo "ofproto.at:147" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:147"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_863
#AT_START_864
at_fn_group_banner 864 'ofproto.at:150' \
  "ofproto - port-desc stats (OpenFlow 1.5)" "       " 51
at_xfail=no
(
  $as_echo "864. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:151: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:151"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:151"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:151: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:151"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:151"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:151: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:151"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:151"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:151: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:151"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:151"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:151: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:151"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:151"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:151: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:151"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:151"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:151: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:151"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:151"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3
{ set +x
$as_echo "$at_srcdir/ofproto.at:153: ovs-ofctl -F OXM-OpenFlow15 -O OpenFlow15 -vwarn dump-ports-desc br0"
at_fn_check_prepare_trace "ofproto.at:153"
( $at_check_trace; ovs-ofctl -F OXM-OpenFlow15 -O OpenFlow15 -vwarn dump-ports-desc br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:153"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:154: strip_xids < stdout | sed 's/00:0./00:0x/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:154"
( $at_check_trace; strip_xids < stdout | sed 's/00:0./00:0x/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_PORT_DESC reply (OF1.5):
 1(p1): addr:aa:55:aa:55:00:0x
     config:     PORT_DOWN
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max
 2(p2): addr:aa:55:aa:55:00:0x
     config:     PORT_DOWN
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max
 3(p3): addr:aa:55:aa:55:00:0x
     config:     PORT_DOWN
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max
 LOCAL(br0): addr:aa:55:aa:55:00:0x
     config:     PORT_DOWN
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:154"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:173: ovs-ofctl -F OXM-OpenFlow15 -O OpenFlow15 -vwarn dump-ports-desc br0 2"
at_fn_check_prepare_trace "ofproto.at:173"
( $at_check_trace; ovs-ofctl -F OXM-OpenFlow15 -O OpenFlow15 -vwarn dump-ports-desc br0 2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:173"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:174: strip_xids < stdout | sed 's/00:0./00:0x/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:174"
( $at_check_trace; strip_xids < stdout | sed 's/00:0./00:0x/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_PORT_DESC reply (OF1.5):
 2(p2): addr:aa:55:aa:55:00:0x
     config:     PORT_DOWN
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:174"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:181: check_logs "
at_fn_check_prepare_trace "ofproto.at:181"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:181"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:181: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:181"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:181"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:181: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:181"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:181"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:181: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:181: wait failed" >&5

    $as_echo "ofproto.at:181" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:181"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:181: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:181"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:181"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:181: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:181"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:181"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:181: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:181: wait failed" >&5

    $as_echo "ofproto.at:181" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:181"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_864
#AT_START_865
at_fn_group_banner 865 'ofproto.at:184' \
  "ofproto - port-desc stats (OpenFlow 1.6)" "       " 51
at_xfail=no
(
  $as_echo "865. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:185: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:185"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:185"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:185: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:185"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:185"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:185: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:185"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:185"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:185: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:185"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:185"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:185: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:185"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:185"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:185: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:185"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:185"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:185: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:185"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:185"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3
{ set +x
$as_echo "$at_srcdir/ofproto.at:187: ovs-ofctl -F OXM-OpenFlow16 -O OpenFlow16 -vwarn dump-ports-desc br0"
at_fn_check_prepare_trace "ofproto.at:187"
( $at_check_trace; ovs-ofctl -F OXM-OpenFlow16 -O OpenFlow16 -vwarn dump-ports-desc br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:187"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:188: strip_xids < stdout | sed 's/00:0./00:0x/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:188"
( $at_check_trace; strip_xids < stdout | sed 's/00:0./00:0x/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_PORT_DESC reply (OF1.6):
 1(p1): addr:aa:55:aa:55:00:0x
     config:     PORT_DOWN
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max
 2(p2): addr:aa:55:aa:55:00:0x
     config:     PORT_DOWN
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max
 3(p3): addr:aa:55:aa:55:00:0x
     config:     PORT_DOWN
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max
 LOCAL(br0): addr:aa:55:aa:55:00:0x
     config:     PORT_DOWN
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:188"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:207: ovs-ofctl -F OXM-OpenFlow16 -O OpenFlow16 -vwarn dump-ports-desc br0 2"
at_fn_check_prepare_trace "ofproto.at:207"
( $at_check_trace; ovs-ofctl -F OXM-OpenFlow16 -O OpenFlow16 -vwarn dump-ports-desc br0 2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:207"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:208: strip_xids < stdout | sed 's/00:0./00:0x/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:208"
( $at_check_trace; strip_xids < stdout | sed 's/00:0./00:0x/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_PORT_DESC reply (OF1.6):
 2(p2): addr:aa:55:aa:55:00:0x
     config:     PORT_DOWN
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:208"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:215: check_logs "
at_fn_check_prepare_trace "ofproto.at:215"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:215"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:215: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:215"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:215"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:215: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:215"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:215"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:215: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:215: wait failed" >&5

    $as_echo "ofproto.at:215" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:215"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:215: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:215"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:215"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:215: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:215"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:215"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:215: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:215: wait failed" >&5

    $as_echo "ofproto.at:215" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:215"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_865
#AT_START_866
at_fn_group_banner 866 'ofproto.at:260' \
  "ofproto - queue stats - (OpenFlow 1.0)" "         " 51
at_xfail=no
(
  $as_echo "866. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:260: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:260"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:260"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:260: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:260"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:260"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:260: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:260"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:260"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:260: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:260"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:260"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:260: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:260"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:260"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:260: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:260"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:260"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:260: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:260"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:260"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto.at:260: ovs-ofctl -O OpenFlow10 queue-stats br0 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:260"
( $at_check_trace; ovs-ofctl -O OpenFlow10 queue-stats br0 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_QUEUE reply: 1 queues
  port LOCAL queue 0: bytes=?, pkts=?, errors=?, duration=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:260"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:260: ovs-ofctl -O OpenFlow10 queue-stats br0 LOCAL | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:260"
( $at_check_trace; ovs-ofctl -O OpenFlow10 queue-stats br0 LOCAL | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_QUEUE reply: 1 queues
  port LOCAL queue 0: bytes=?, pkts=?, errors=?, duration=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:260"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:260: ovs-ofctl -O OpenFlow10 queue-stats br0 LOCAL 0 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:260"
( $at_check_trace; ovs-ofctl -O OpenFlow10 queue-stats br0 LOCAL 0 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_QUEUE reply: 1 queues
  port LOCAL queue 0: bytes=?, pkts=?, errors=?, duration=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:260"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:260: ovs-ofctl -O OpenFlow10 queue-stats br0 ANY 0 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:260"
( $at_check_trace; ovs-ofctl -O OpenFlow10 queue-stats br0 ANY 0 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_QUEUE reply: 1 queues
  port LOCAL queue 0: bytes=?, pkts=?, errors=?, duration=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:260"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:260: ovs-ofctl -O OpenFlow10 queue-stats br0 LOCAL 5 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:260"
( $at_check_trace; ovs-ofctl -O OpenFlow10 queue-stats br0 LOCAL 5 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR: OFPQOFC_BAD_QUEUE
OFPST_QUEUE request: port=LOCAL queue=5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:260"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:260: ovs-ofctl -O OpenFlow10 queue-stats br0 ANY 5 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:260"
( $at_check_trace; ovs-ofctl -O OpenFlow10 queue-stats br0 ANY 5 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR: OFPQOFC_BAD_QUEUE
OFPST_QUEUE request: port=ANY queue=5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:260"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:260: ovs-ofctl -O OpenFlow10 queue-stats br0 10 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:260"
( $at_check_trace; ovs-ofctl -O OpenFlow10 queue-stats br0 10 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR: OFPQOFC_BAD_PORT
OFPST_QUEUE request: port=10 queue=ALL
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:260"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:260: check_logs "
at_fn_check_prepare_trace "ofproto.at:260"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:260"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:260: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:260"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:260"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:260: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:260"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:260"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:260: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:260: wait failed" >&5

    $as_echo "ofproto.at:260" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:260"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:260: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:260"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:260"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:260: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:260"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:260"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:260: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:260: wait failed" >&5

    $as_echo "ofproto.at:260" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:260"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_866
#AT_START_867
at_fn_group_banner 867 'ofproto.at:261' \
  "ofproto - queue stats - (OpenFlow 1.1)" "         " 51
at_xfail=no
(
  $as_echo "867. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:261: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:261"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:261"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:261: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:261"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:261"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:261: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:261"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:261"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:261: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:261"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:261"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:261: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:261"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:261"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:261: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:261"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:261"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:261: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:261"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:261"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto.at:261: ovs-ofctl -O OpenFlow11 queue-stats br0 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:261"
( $at_check_trace; ovs-ofctl -O OpenFlow11 queue-stats br0 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_QUEUE reply (OF1.1): 1 queues
  port LOCAL queue 0: bytes=?, pkts=?, errors=?, duration=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:261"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:261: ovs-ofctl -O OpenFlow11 queue-stats br0 LOCAL | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:261"
( $at_check_trace; ovs-ofctl -O OpenFlow11 queue-stats br0 LOCAL | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_QUEUE reply (OF1.1): 1 queues
  port LOCAL queue 0: bytes=?, pkts=?, errors=?, duration=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:261"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:261: ovs-ofctl -O OpenFlow11 queue-stats br0 LOCAL 0 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:261"
( $at_check_trace; ovs-ofctl -O OpenFlow11 queue-stats br0 LOCAL 0 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_QUEUE reply (OF1.1): 1 queues
  port LOCAL queue 0: bytes=?, pkts=?, errors=?, duration=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:261"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:261: ovs-ofctl -O OpenFlow11 queue-stats br0 ANY 0 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:261"
( $at_check_trace; ovs-ofctl -O OpenFlow11 queue-stats br0 ANY 0 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_QUEUE reply (OF1.1): 1 queues
  port LOCAL queue 0: bytes=?, pkts=?, errors=?, duration=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:261"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:261: ovs-ofctl -O OpenFlow11 queue-stats br0 LOCAL 5 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:261"
( $at_check_trace; ovs-ofctl -O OpenFlow11 queue-stats br0 LOCAL 5 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (OF1.1): OFPQOFC_BAD_QUEUE
OFPST_QUEUE request (OF1.1): port=LOCAL queue=5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:261"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:261: ovs-ofctl -O OpenFlow11 queue-stats br0 ANY 5 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:261"
( $at_check_trace; ovs-ofctl -O OpenFlow11 queue-stats br0 ANY 5 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (OF1.1): OFPQOFC_BAD_QUEUE
OFPST_QUEUE request (OF1.1): port=ANY queue=5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:261"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:261: ovs-ofctl -O OpenFlow11 queue-stats br0 10 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:261"
( $at_check_trace; ovs-ofctl -O OpenFlow11 queue-stats br0 10 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (OF1.1): OFPQOFC_BAD_PORT
OFPST_QUEUE request (OF1.1): port=10 queue=ALL
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:261"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:261: check_logs "
at_fn_check_prepare_trace "ofproto.at:261"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:261"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:261: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:261"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:261"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:261: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:261"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:261"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:261: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:261: wait failed" >&5

    $as_echo "ofproto.at:261" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:261"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:261: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:261"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:261"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:261: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:261"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:261"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:261: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:261: wait failed" >&5

    $as_echo "ofproto.at:261" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:261"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_867
#AT_START_868
at_fn_group_banner 868 'ofproto.at:262' \
  "ofproto - queue stats - (OpenFlow 1.2)" "         " 51
at_xfail=no
(
  $as_echo "868. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:262: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:262"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:262"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:262: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:262"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:262"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:262: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:262"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:262"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:262: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:262"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:262"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:262: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:262"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:262"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:262: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:262"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:262"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:262: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:262"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:262"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto.at:262: ovs-ofctl -O OpenFlow12 queue-stats br0 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:262"
( $at_check_trace; ovs-ofctl -O OpenFlow12 queue-stats br0 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_QUEUE reply (OF1.2): 1 queues
  port LOCAL queue 0: bytes=?, pkts=?, errors=?, duration=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:262"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:262: ovs-ofctl -O OpenFlow12 queue-stats br0 LOCAL | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:262"
( $at_check_trace; ovs-ofctl -O OpenFlow12 queue-stats br0 LOCAL | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_QUEUE reply (OF1.2): 1 queues
  port LOCAL queue 0: bytes=?, pkts=?, errors=?, duration=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:262"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:262: ovs-ofctl -O OpenFlow12 queue-stats br0 LOCAL 0 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:262"
( $at_check_trace; ovs-ofctl -O OpenFlow12 queue-stats br0 LOCAL 0 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_QUEUE reply (OF1.2): 1 queues
  port LOCAL queue 0: bytes=?, pkts=?, errors=?, duration=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:262"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:262: ovs-ofctl -O OpenFlow12 queue-stats br0 ANY 0 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:262"
( $at_check_trace; ovs-ofctl -O OpenFlow12 queue-stats br0 ANY 0 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_QUEUE reply (OF1.2): 1 queues
  port LOCAL queue 0: bytes=?, pkts=?, errors=?, duration=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:262"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:262: ovs-ofctl -O OpenFlow12 queue-stats br0 LOCAL 5 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:262"
( $at_check_trace; ovs-ofctl -O OpenFlow12 queue-stats br0 LOCAL 5 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (OF1.2): OFPQOFC_BAD_QUEUE
OFPST_QUEUE request (OF1.2): port=LOCAL queue=5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:262"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:262: ovs-ofctl -O OpenFlow12 queue-stats br0 ANY 5 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:262"
( $at_check_trace; ovs-ofctl -O OpenFlow12 queue-stats br0 ANY 5 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (OF1.2): OFPQOFC_BAD_QUEUE
OFPST_QUEUE request (OF1.2): port=ANY queue=5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:262"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:262: ovs-ofctl -O OpenFlow12 queue-stats br0 10 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:262"
( $at_check_trace; ovs-ofctl -O OpenFlow12 queue-stats br0 10 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (OF1.2): OFPQOFC_BAD_PORT
OFPST_QUEUE request (OF1.2): port=10 queue=ALL
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:262"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:262: check_logs "
at_fn_check_prepare_trace "ofproto.at:262"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:262"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:262: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:262"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:262"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:262: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:262"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:262"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:262: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:262: wait failed" >&5

    $as_echo "ofproto.at:262" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:262"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:262: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:262"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:262"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:262: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:262"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:262"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:262: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:262: wait failed" >&5

    $as_echo "ofproto.at:262" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:262"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_868
#AT_START_869
at_fn_group_banner 869 'ofproto.at:263' \
  "ofproto - queue stats - (OpenFlow 1.3)" "         " 51
at_xfail=no
(
  $as_echo "869. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:263: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:263"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:263"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:263: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:263"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:263"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:263: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:263"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:263"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:263: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:263"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:263: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:263"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:263: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:263"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:263: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:263"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto.at:263: ovs-ofctl -O OpenFlow13 queue-stats br0 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:263"
( $at_check_trace; ovs-ofctl -O OpenFlow13 queue-stats br0 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_QUEUE reply (OF1.3): 1 queues
  port LOCAL queue 0: bytes=?, pkts=?, errors=?, duration=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:263: ovs-ofctl -O OpenFlow13 queue-stats br0 LOCAL | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:263"
( $at_check_trace; ovs-ofctl -O OpenFlow13 queue-stats br0 LOCAL | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_QUEUE reply (OF1.3): 1 queues
  port LOCAL queue 0: bytes=?, pkts=?, errors=?, duration=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:263: ovs-ofctl -O OpenFlow13 queue-stats br0 LOCAL 0 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:263"
( $at_check_trace; ovs-ofctl -O OpenFlow13 queue-stats br0 LOCAL 0 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_QUEUE reply (OF1.3): 1 queues
  port LOCAL queue 0: bytes=?, pkts=?, errors=?, duration=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:263: ovs-ofctl -O OpenFlow13 queue-stats br0 ANY 0 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:263"
( $at_check_trace; ovs-ofctl -O OpenFlow13 queue-stats br0 ANY 0 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_QUEUE reply (OF1.3): 1 queues
  port LOCAL queue 0: bytes=?, pkts=?, errors=?, duration=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:263: ovs-ofctl -O OpenFlow13 queue-stats br0 LOCAL 5 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:263"
( $at_check_trace; ovs-ofctl -O OpenFlow13 queue-stats br0 LOCAL 5 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (OF1.3): OFPQOFC_BAD_QUEUE
OFPST_QUEUE request (OF1.3): port=LOCAL queue=5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:263: ovs-ofctl -O OpenFlow13 queue-stats br0 ANY 5 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:263"
( $at_check_trace; ovs-ofctl -O OpenFlow13 queue-stats br0 ANY 5 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (OF1.3): OFPQOFC_BAD_QUEUE
OFPST_QUEUE request (OF1.3): port=ANY queue=5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:263: ovs-ofctl -O OpenFlow13 queue-stats br0 10 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:263"
( $at_check_trace; ovs-ofctl -O OpenFlow13 queue-stats br0 10 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (OF1.3): OFPQOFC_BAD_PORT
OFPST_QUEUE request (OF1.3): port=10 queue=ALL
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:263: check_logs "
at_fn_check_prepare_trace "ofproto.at:263"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:263: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:263"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:263: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:263"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:263: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:263: wait failed" >&5

    $as_echo "ofproto.at:263" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:263"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:263: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:263"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:263: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:263"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:263: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:263: wait failed" >&5

    $as_echo "ofproto.at:263" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:263"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_869
#AT_START_870
at_fn_group_banner 870 'ofproto.at:264' \
  "ofproto - queue stats - (OpenFlow 1.4)" "         " 51
at_xfail=no
(
  $as_echo "870. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:264: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:264"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:264"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:264: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:264"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:264"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:264: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:264"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:264"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:264: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:264"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:264"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:264: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:264"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:264"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:264: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:264"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:264"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:264: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:264"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:264"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto.at:264: ovs-ofctl -O OpenFlow14 queue-stats br0 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:264"
( $at_check_trace; ovs-ofctl -O OpenFlow14 queue-stats br0 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_QUEUE reply (OF1.4): 1 queues
  port LOCAL queue 0: bytes=?, pkts=?, errors=?, duration=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:264"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:264: ovs-ofctl -O OpenFlow14 queue-stats br0 LOCAL | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:264"
( $at_check_trace; ovs-ofctl -O OpenFlow14 queue-stats br0 LOCAL | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_QUEUE reply (OF1.4): 1 queues
  port LOCAL queue 0: bytes=?, pkts=?, errors=?, duration=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:264"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:264: ovs-ofctl -O OpenFlow14 queue-stats br0 LOCAL 0 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:264"
( $at_check_trace; ovs-ofctl -O OpenFlow14 queue-stats br0 LOCAL 0 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_QUEUE reply (OF1.4): 1 queues
  port LOCAL queue 0: bytes=?, pkts=?, errors=?, duration=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:264"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:264: ovs-ofctl -O OpenFlow14 queue-stats br0 ANY 0 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:264"
( $at_check_trace; ovs-ofctl -O OpenFlow14 queue-stats br0 ANY 0 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_QUEUE reply (OF1.4): 1 queues
  port LOCAL queue 0: bytes=?, pkts=?, errors=?, duration=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:264"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:264: ovs-ofctl -O OpenFlow14 queue-stats br0 LOCAL 5 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:264"
( $at_check_trace; ovs-ofctl -O OpenFlow14 queue-stats br0 LOCAL 5 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (OF1.4): OFPQOFC_BAD_QUEUE
OFPST_QUEUE request (OF1.4): port=LOCAL queue=5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:264"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:264: ovs-ofctl -O OpenFlow14 queue-stats br0 ANY 5 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:264"
( $at_check_trace; ovs-ofctl -O OpenFlow14 queue-stats br0 ANY 5 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (OF1.4): OFPQOFC_BAD_QUEUE
OFPST_QUEUE request (OF1.4): port=ANY queue=5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:264"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:264: ovs-ofctl -O OpenFlow14 queue-stats br0 10 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:264"
( $at_check_trace; ovs-ofctl -O OpenFlow14 queue-stats br0 10 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (OF1.4): OFPQOFC_BAD_PORT
OFPST_QUEUE request (OF1.4): port=10 queue=ALL
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:264"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:264: check_logs "
at_fn_check_prepare_trace "ofproto.at:264"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:264"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:264: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:264"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:264"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:264: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:264"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:264"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:264: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:264: wait failed" >&5

    $as_echo "ofproto.at:264" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:264"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:264: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:264"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:264"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:264: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:264"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:264"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:264: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:264: wait failed" >&5

    $as_echo "ofproto.at:264" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:264"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_870
#AT_START_871
at_fn_group_banner 871 'ofproto.at:268' \
  "ofproto - queue configuration - (OpenFlow 1.0)" " " 51
at_xfail=no
(
  $as_echo "871. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:269: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:269"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:269"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:269: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:269"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:269"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:269: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:269"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:269"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:269: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:269"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:269"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:269: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:269"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:269"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:269: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:269"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:269"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:269: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:269"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:269"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2
{ set +x
$as_echo "$at_srcdir/ofproto.at:271: ovs-ofctl queue-get-config br0 1"
at_fn_check_prepare_trace "ofproto.at:271"
( $at_check_trace; ovs-ofctl queue-get-config br0 1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:271"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:272: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:272"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_QUEUE_GET_CONFIG_REPLY: port=1
queue 0:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:272"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:276: ovs-ofctl queue-get-config br0"
at_fn_check_prepare_trace "ofproto.at:276"
( $at_check_trace; ovs-ofctl queue-get-config br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:276"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:277: strip_xids < stdout | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:277"
( $at_check_trace; strip_xids < stdout | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_QUEUE_GET_CONFIG_REPLY: port=1
OFPT_QUEUE_GET_CONFIG_REPLY: port=2
queue 0:
queue 0:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:277"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:283: ovs-ofctl queue-get-config br0 10"
at_fn_check_prepare_trace "ofproto.at:283"
( $at_check_trace; ovs-ofctl queue-get-config br0 10
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (xid=0x2): OFPQOFC_BAD_PORT
OFPT_QUEUE_GET_CONFIG_REQUEST (xid=0x2): port=10
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:283"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:287: check_logs "
at_fn_check_prepare_trace "ofproto.at:287"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:287"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:287: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:287"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:287"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:287: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:287"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:287"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:287: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:287: wait failed" >&5

    $as_echo "ofproto.at:287" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:287"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:287: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:287"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:287"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:287: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:287"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:287"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:287: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:287: wait failed" >&5

    $as_echo "ofproto.at:287" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:287"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_871
#AT_START_872
at_fn_group_banner 872 'ofproto.at:290' \
  "ofproto - queue configuration - (OpenFlow 1.1)" " " 51
at_xfail=no
(
  $as_echo "872. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:291: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:291"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:291"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:291: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:291"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:291"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:291: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:291"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:291"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:291: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:291"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:291"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:291: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:291"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:291"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:291: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:291"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:291"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:291: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:291"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:291"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2
{ set +x
$as_echo "$at_srcdir/ofproto.at:293: ovs-ofctl -O OpenFlow11 queue-get-config br0 1"
at_fn_check_prepare_trace "ofproto.at:293"
( $at_check_trace; ovs-ofctl -O OpenFlow11 queue-get-config br0 1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:293"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:294: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:294"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_QUEUE_GET_CONFIG_REPLY (OF1.1): port=1
queue 0:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:294"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:298: ovs-ofctl -O OpenFlow11 queue-get-config br0 10 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:298"
( $at_check_trace; ovs-ofctl -O OpenFlow11 queue-get-config br0 10 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (OF1.1): OFPQOFC_BAD_PORT
OFPT_QUEUE_GET_CONFIG_REQUEST (OF1.1): port=10
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:298"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:302: check_logs "
at_fn_check_prepare_trace "ofproto.at:302"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:302"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:302: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:302"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:302"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:302: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:302"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:302"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:302: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:302: wait failed" >&5

    $as_echo "ofproto.at:302" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:302"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:302: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:302"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:302"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:302: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:302"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:302"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:302: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:302: wait failed" >&5

    $as_echo "ofproto.at:302" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:302"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_872
#AT_START_873
at_fn_group_banner 873 'ofproto.at:305' \
  "ofproto - queue configuration - (OpenFlow 1.2)" " " 51
at_xfail=no
(
  $as_echo "873. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:306: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:306"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:306"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:306: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:306"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:306"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:306: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:306"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:306"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:306: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:306"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:306"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:306: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:306"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:306"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:306: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:306"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:306"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:306: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:306"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:306"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2
{ set +x
$as_echo "$at_srcdir/ofproto.at:308: ovs-ofctl -O OpenFlow12 queue-get-config br0 1"
at_fn_check_prepare_trace "ofproto.at:308"
( $at_check_trace; ovs-ofctl -O OpenFlow12 queue-get-config br0 1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:308"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:309: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:309"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_QUEUE_GET_CONFIG_REPLY (OF1.2): port=1
queue 0:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:309"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:313: ovs-ofctl -O OpenFlow12 queue-get-config br0 ANY"
at_fn_check_prepare_trace "ofproto.at:313"
( $at_check_trace; ovs-ofctl -O OpenFlow12 queue-get-config br0 ANY
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:313"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:314: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:314"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_QUEUE_GET_CONFIG_REPLY (OF1.2): port=ANY
queue 0:
queue 0:
queue 0:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:314"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:320: ovs-ofctl -O OpenFlow12 queue-get-config br0 10 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:320"
( $at_check_trace; ovs-ofctl -O OpenFlow12 queue-get-config br0 10 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (OF1.2): OFPQOFC_BAD_PORT
OFPT_QUEUE_GET_CONFIG_REQUEST (OF1.2): port=10
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:320"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:324: check_logs "
at_fn_check_prepare_trace "ofproto.at:324"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:324"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:324: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:324"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:324"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:324: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:324"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:324"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:324: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:324: wait failed" >&5

    $as_echo "ofproto.at:324" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:324"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:324: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:324"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:324"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:324: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:324"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:324"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:324: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:324: wait failed" >&5

    $as_echo "ofproto.at:324" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:324"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_873
#AT_START_874
at_fn_group_banner 874 'ofproto.at:327' \
  "ofproto - queue configuration - (OpenFlow 1.4)" " " 51
at_xfail=no
(
  $as_echo "874. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:328: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:328"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:328"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:328: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:328"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:328"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:328: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:328"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:328"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:328: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:328"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:328"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:328: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:328"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:328"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:328: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:328"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:328"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:328: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:328"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:328"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2

{ set +x
$as_echo "$at_srcdir/ofproto.at:331: ovs-ofctl -O OpenFlow14 queue-get-config br0 any | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:331"
( $at_check_trace; ovs-ofctl -O OpenFlow14 queue-get-config br0 any | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_QUEUE_DESC reply (OF1.4): port=1
queue 0:
port=2
queue 0:
port=LOCAL
queue 0:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:331"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:340: ovs-ofctl -O OpenFlow14 queue-get-config br0 1 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:340"
( $at_check_trace; ovs-ofctl -O OpenFlow14 queue-get-config br0 1 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_QUEUE_DESC reply (OF1.4): port=1
queue 0:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:340"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:345: ovs-ofctl -O OpenFlow14 queue-get-config br0 10 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:345"
( $at_check_trace; ovs-ofctl -O OpenFlow14 queue-get-config br0 10 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (OF1.4): OFPQOFC_BAD_PORT
OFPST_QUEUE_DESC request (OF1.4): port=10
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:345"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:350: ovs-ofctl -O OpenFlow14 queue-get-config br0 1 2 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:350"
( $at_check_trace; ovs-ofctl -O OpenFlow14 queue-get-config br0 1 2 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (OF1.4): OFPQOFC_BAD_QUEUE
OFPST_QUEUE_DESC request (OF1.4): port=1 queue=2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:350"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:354: check_logs "
at_fn_check_prepare_trace "ofproto.at:354"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:354"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:354: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:354"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:354"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:354: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:354"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:354"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:354: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:354: wait failed" >&5

    $as_echo "ofproto.at:354" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:354"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:354: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:354"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:354"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:354: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:354"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:354"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:354: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:354: wait failed" >&5

    $as_echo "ofproto.at:354" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:354"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_874
#AT_START_875
at_fn_group_banner 875 'ofproto.at:360' \
  "ofproto - no group support (OpenFlow 1.0)" "      " 51
at_xfail=no
(
  $as_echo "875. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:361: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:361"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:361"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:361: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:361"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:361"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:361: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:361"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:361"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:361: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:361"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:361"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:361: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:361"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:361"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:361: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:361"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:361"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:361: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:361"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:361"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >groups.txt <<'_ATEOF'
group_id=1234,type=all,bucket=output:10
group_id=1235,type=all,bucket=actions=output:10
_ATEOF

cat >stderr <<'_ATEOF'
ovs-ofctl: none of the usable flow formats (OXM,OpenFlow11) is among the allowed flow formats (OpenFlow10,NXM)
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:369: ovs-ofctl -O OpenFlow10 -vwarn add-groups br0 groups.txt"
at_fn_check_prepare_trace "ofproto.at:369"
( $at_check_trace; ovs-ofctl -O OpenFlow10 -vwarn add-groups br0 groups.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:369"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:370: ovs-ofctl -O OpenFlow10 -vwarn mod-group br0 'group_id=1234,type=all,bucket=output:10'"
at_fn_check_prepare_trace "ofproto.at:370"
( $at_check_trace; ovs-ofctl -O OpenFlow10 -vwarn mod-group br0 'group_id=1234,type=all,bucket=output:10'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:370"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:371: ovs-ofctl -O OpenFlow10 -vwarn del-groups br0"
at_fn_check_prepare_trace "ofproto.at:371"
( $at_check_trace; ovs-ofctl -O OpenFlow10 -vwarn del-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:371"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:372: ovs-ofctl -O OpenFlow10 -vwarn dump-groups br0 "
at_fn_check_prepare_trace "ofproto.at:372"
( $at_check_trace; ovs-ofctl -O OpenFlow10 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:372"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:373: check_logs "
at_fn_check_prepare_trace "ofproto.at:373"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:373"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:373: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:373"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:373"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:373: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:373"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:373"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:373: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:373: wait failed" >&5

    $as_echo "ofproto.at:373" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:373"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:373: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:373"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:373"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:373: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:373"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:373"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:373: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:373: wait failed" >&5

    $as_echo "ofproto.at:373" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:373"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_875
#AT_START_876
at_fn_group_banner 876 'ofproto.at:379' \
  "ofproto - del group (OpenFlow 1.1)" "             " 51
at_xfail=no
(
  $as_echo "876. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:380: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:380"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:380"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:380: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:380"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:380"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:380: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:380"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:380"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:380: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:380"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:380"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:380: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:380"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:380"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:380: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:380"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:380"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:380: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:380"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:380"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >groups.txt <<'_ATEOF'
group_id=1234,type=all,bucket=output:10
group_id=1235,type=all,bucket=actions=output:10
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:385: ovs-ofctl -O OpenFlow11 -vwarn add-groups br0 groups.txt"
at_fn_check_prepare_trace "ofproto.at:385"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -vwarn add-groups br0 groups.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:385"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:386: ovs-ofctl -O OpenFlow11 -vwarn dump-groups br0 "
at_fn_check_prepare_trace "ofproto.at:386"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:386"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:387: strip_xids < stdout | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:387"
( $at_check_trace; strip_xids < stdout | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " group_id=1234,type=all,bucket=actions=output:10
 group_id=1235,type=all,bucket=actions=output:10
OFPST_GROUP_DESC reply (OF1.1):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:387"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:392: ovs-ofctl -O OpenFlow11 -vwarn del-groups br0 group_id=1234"
at_fn_check_prepare_trace "ofproto.at:392"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -vwarn del-groups br0 group_id=1234
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:392"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:393: ovs-ofctl -O OpenFlow11 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:393"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:393"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:394: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:394"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.1):
 group_id=1235,type=all,bucket=actions=output:10
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:394"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:398: ovs-ofctl -O OpenFlow11 -vwarn del-groups br0 group_id=1234"
at_fn_check_prepare_trace "ofproto.at:398"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -vwarn del-groups br0 group_id=1234
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:398"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:399: ovs-ofctl -O OpenFlow11 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:399"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:399"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:400: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:400"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.1):
 group_id=1235,type=all,bucket=actions=output:10
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:400"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:404: ovs-ofctl -O OpenFlow11 -vwarn del-groups br0"
at_fn_check_prepare_trace "ofproto.at:404"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -vwarn del-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:404"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:405: ovs-ofctl -O OpenFlow11 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:405"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:405"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:406: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:406"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.1):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:406"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Negative test.
{ set +x
$as_echo "$at_srcdir/ofproto.at:411: ovs-ofctl -O OpenFlow11 -vwarn del-groups br0 group_id=0xfffffff0"
at_fn_check_prepare_trace "ofproto.at:411"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -vwarn del-groups br0 group_id=0xfffffff0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: invalid group id 4294967280
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:411"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:414: check_logs "
at_fn_check_prepare_trace "ofproto.at:414"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:414"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:414: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:414"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:414"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:414: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:414"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:414"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:414: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:414: wait failed" >&5

    $as_echo "ofproto.at:414" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:414"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:414: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:414"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:414"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:414: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:414"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:414"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:414: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:414: wait failed" >&5

    $as_echo "ofproto.at:414" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:414"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_876
#AT_START_877
at_fn_group_banner 877 'ofproto.at:420' \
  "ofproto - add indirect group" "                   " 51
at_xfail=no
(
  $as_echo "877. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:421: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:421"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:421: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:421"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:421: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:421"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:421: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:421"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:421"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:421: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:421"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:421"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:421: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:421"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:421"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:421: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:421"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:421"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >stderr <<'_ATEOF'
OFPT_ERROR (OF1.1) (xid=0x2): OFPGMFC_INVALID_GROUP
OFPT_GROUP_MOD (OF1.1) (xid=0x2): ***decode error: OFPGMFC_INVALID_GROUP***
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:427: ovs-ofctl -O OpenFlow11 -vwarn add-group br0 'group_id=1234,type=indirect'"
at_fn_check_prepare_trace "ofproto.at:427"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -vwarn add-group br0 'group_id=1234,type=indirect'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:427"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:428: ovs-ofctl -O OpenFlow11 -vwarn add-group br0 'group_id=1235,type=indirect,bucket=output:10'"
at_fn_check_prepare_trace "ofproto.at:428"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -vwarn add-group br0 'group_id=1235,type=indirect,bucket=output:10'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:428"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:429: ovs-ofctl -O OpenFlow11 -vwarn add-group br0 'group_id=1236,type=indirect,bucket=output:10,bucket=output:11'"
at_fn_check_prepare_trace "ofproto.at:429"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -vwarn add-group br0 'group_id=1236,type=indirect,bucket=output:10,bucket=output:11'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:429"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:430: check_logs "
at_fn_check_prepare_trace "ofproto.at:430"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:430"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:430: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:430"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:430"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:430: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:430"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:430"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:430: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:430: wait failed" >&5

    $as_echo "ofproto.at:430" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:430"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:430: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:430"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:430"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:430: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:430"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:430"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:430: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:430: wait failed" >&5

    $as_echo "ofproto.at:430" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:430"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_877
#AT_START_878
at_fn_group_banner 878 'ofproto.at:433' \
  "ofproto - group mod with mod and add_or_mod command" "" 51
at_xfail=no
(
  $as_echo "878. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:434: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:434"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:434"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:434: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:434"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:434"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:434: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:434"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:434"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:434: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:434"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:434"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:434: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:434"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:434"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:434: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:434"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:434"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:434: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:434"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:434"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >stderr <<'_ATEOF'
OFPT_ERROR (OF1.3) (xid=0x2): OFPGMFC_UNKNOWN_GROUP
OFPT_GROUP_MOD (OF1.3) (xid=0x2):
 MOD group_id=1234,type=indirect,bucket=actions=output:2
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:441: ovs-ofctl -O OpenFlow13 -vwarn mod-group br0 'group_id=1234,type=indirect,bucket=actions=2'"
at_fn_check_prepare_trace "ofproto.at:441"
( $at_check_trace; ovs-ofctl -O OpenFlow13 -vwarn mod-group br0 'group_id=1234,type=indirect,bucket=actions=2'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:441"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:443: ovs-ofctl -O OpenFlow13 -vwarn --may-create mod-group br0 'group_id=1234,type=indirect,bucket=actions=2'"
at_fn_check_prepare_trace "ofproto.at:443"
( $at_check_trace; ovs-ofctl -O OpenFlow13 -vwarn --may-create mod-group br0 'group_id=1234,type=indirect,bucket=actions=2'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:443"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:444: ovs-ofctl -O OpenFlow13 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:444"
( $at_check_trace; ovs-ofctl -O OpenFlow13 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:444"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:445: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:445"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.3):
 group_id=1234,type=indirect,bucket=actions=output:2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:445"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:450: ovs-ofctl -O OpenFlow13 -vwarn --may-create mod-group br0 'group_id=1234,type=indirect,bucket=actions=3'"
at_fn_check_prepare_trace "ofproto.at:450"
( $at_check_trace; ovs-ofctl -O OpenFlow13 -vwarn --may-create mod-group br0 'group_id=1234,type=indirect,bucket=actions=3'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:450"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:451: ovs-ofctl -O OpenFlow13 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:451"
( $at_check_trace; ovs-ofctl -O OpenFlow13 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:451"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:452: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:452"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.3):
 group_id=1234,type=indirect,bucket=actions=output:3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:452"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:456: check_logs "
at_fn_check_prepare_trace "ofproto.at:456"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:456"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:456: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:456"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:456"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:456: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:456"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:456"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:456: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:456: wait failed" >&5

    $as_echo "ofproto.at:456" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:456"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:456: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:456"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:456"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:456: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:456"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:456"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:456: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:456: wait failed" >&5

    $as_echo "ofproto.at:456" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:456"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_878
#AT_START_879
at_fn_group_banner 879 'ofproto.at:462' \
  "ofproto - del group (OpenFlow 1.5)" "             " 51
at_xfail=no
(
  $as_echo "879. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:463: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:463"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:463"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:463: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:463"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:463"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:463: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:463"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:463"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:463: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:463"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:463"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:463: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:463"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:463"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:463: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:463"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:463"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:463: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:463"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:463"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >groups.txt <<'_ATEOF'
group_id=1233,type=select,selection_method=hash,bucket=output:10,bucket=output:11
group_id=1234,type=select,selection_method=hash,fields(eth_dst,ip_dst,tcp_dst),bucket=output:10,bucket=output:11
group_id=1235,type=all,bucket=actions=output:12,bucket=bucket_id:0,actions=output:10,bucket=bucket_id:1,actions=output:11
group_id=1236,type=select,selection_method=dp_hash,bucket=output:10,bucket=output:11
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:470: ovs-ofctl -O OpenFlow15 -vwarn add-groups br0 groups.txt"
at_fn_check_prepare_trace "ofproto.at:470"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn add-groups br0 groups.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:470"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:471: ovs-ofctl -F OXM-OpenFlow15 -O OpenFlow15 -vwarn dump-groups br0 1234"
at_fn_check_prepare_trace "ofproto.at:471"
( $at_check_trace; ovs-ofctl -F OXM-OpenFlow15 -O OpenFlow15 -vwarn dump-groups br0 1234
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:471"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:472: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:472"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.5):
 group_id=1234,type=select,selection_method=hash,fields(eth_dst,ip_dst,tcp_dst),bucket=bucket_id:0,actions=output:10,bucket=bucket_id:1,actions=output:11
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:472"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:476: ovs-ofctl -O OpenFlow15 -vwarn del-groups br0 group_id=1234"
at_fn_check_prepare_trace "ofproto.at:476"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn del-groups br0 group_id=1234
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:476"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:477: ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:477"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:477"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:478: strip_xids < stdout | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:478"
( $at_check_trace; strip_xids < stdout | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " group_id=1233,type=select,selection_method=hash,bucket=bucket_id:0,actions=output:10,bucket=bucket_id:1,actions=output:11
 group_id=1235,type=all,bucket=bucket_id:2,actions=output:12,bucket=bucket_id:0,actions=output:10,bucket=bucket_id:1,actions=output:11
 group_id=1236,type=select,selection_method=dp_hash,bucket=bucket_id:0,actions=output:10,bucket=bucket_id:1,actions=output:11
OFPST_GROUP_DESC reply (OF1.5):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:478"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:484: ovs-ofctl -O OpenFlow15 -vwarn del-groups br0 group_id=1234"
at_fn_check_prepare_trace "ofproto.at:484"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn del-groups br0 group_id=1234
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:484"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:485: ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:485"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:485"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:486: strip_xids < stdout | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:486"
( $at_check_trace; strip_xids < stdout | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " group_id=1233,type=select,selection_method=hash,bucket=bucket_id:0,actions=output:10,bucket=bucket_id:1,actions=output:11
 group_id=1235,type=all,bucket=bucket_id:2,actions=output:12,bucket=bucket_id:0,actions=output:10,bucket=bucket_id:1,actions=output:11
 group_id=1236,type=select,selection_method=dp_hash,bucket=bucket_id:0,actions=output:10,bucket=bucket_id:1,actions=output:11
OFPST_GROUP_DESC reply (OF1.5):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:486"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:492: ovs-ofctl -O OpenFlow15 -vwarn del-groups br0"
at_fn_check_prepare_trace "ofproto.at:492"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn del-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:492"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:493: ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:493"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:493"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:494: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:494"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.5):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:494"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:497: check_logs "
at_fn_check_prepare_trace "ofproto.at:497"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:497"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:497: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:497"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:497"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:497: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:497"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:497"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:497: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:497: wait failed" >&5

    $as_echo "ofproto.at:497" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:497"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:497: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:497"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:497"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:497: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:497"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:497"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:497: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:497: wait failed" >&5

    $as_echo "ofproto.at:497" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:497"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_879
#AT_START_880
at_fn_group_banner 880 'ofproto.at:502' \
  "ofproto - del group deletes flows" "              " 51
at_xfail=no
(
  $as_echo "880. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:503: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:503"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:503"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:503: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:503"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:503"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:503: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:503"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:503"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:503: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:503"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:503"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:503: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:503"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:503"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:503: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:503"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:503"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:503: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:503"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:503"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >groups.txt <<'_ATEOF'
group_id=1234,type=all,bucket=output:10
group_id=1235,type=all,bucket=output:10
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:508: ovs-ofctl -O OpenFlow11 -vwarn add-groups br0 groups.txt"
at_fn_check_prepare_trace "ofproto.at:508"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -vwarn add-groups br0 groups.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:508"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

cat >flows.txt <<'_ATEOF'
tcp actions=group:1234
table=2 udp actions=group:1235
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:513: ovs-ofctl -O OpenFlow11 -vwarn add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto.at:513"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -vwarn add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:513"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:514: ovs-ofctl -O OpenFlow11 -vwarn dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:514"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -vwarn dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " table=2, udp actions=group:1235
 tcp actions=group:1234
OFPST_FLOW reply (OF1.1):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:514"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:520: ovs-ofctl -O OpenFlow11 -vwarn del-groups br0 group_id=1234"
at_fn_check_prepare_trace "ofproto.at:520"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -vwarn del-groups br0 group_id=1234
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:520"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:521: ovs-ofctl -O OpenFlow11 -vwarn dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:521"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -vwarn dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " table=2, udp actions=group:1235
OFPST_FLOW reply (OF1.1):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:521"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:526: ovs-ofctl -O OpenFlow11 -vwarn del-groups br0 group_id=1234"
at_fn_check_prepare_trace "ofproto.at:526"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -vwarn del-groups br0 group_id=1234
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:526"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:527: ovs-ofctl -O OpenFlow11 -vwarn dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:527"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -vwarn dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " table=2, udp actions=group:1235
OFPST_FLOW reply (OF1.1):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:527"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:532: ovs-ofctl -O OpenFlow11 -vwarn del-groups br0"
at_fn_check_prepare_trace "ofproto.at:532"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -vwarn del-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:532"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:533: ovs-ofctl -O OpenFlow11 -vwarn dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:533"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -vwarn dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW reply (OF1.1):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:533"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:537: check_logs "
at_fn_check_prepare_trace "ofproto.at:537"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:537"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:537: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:537"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:537"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:537: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:537"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:537"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:537: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:537: wait failed" >&5

    $as_echo "ofproto.at:537" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:537"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:537: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:537"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:537"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:537: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:537"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:537"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:537: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:537: wait failed" >&5

    $as_echo "ofproto.at:537" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:537"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_880
#AT_START_881
at_fn_group_banner 881 'ofproto.at:543' \
  "ofproto - insert group buckets" "                 " 51
at_xfail=no
(
  $as_echo "881. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:544: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:544"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:544"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:544: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:544"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:544"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:544: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:544"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:544"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:544: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:544"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:544"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:544: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:544"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:544"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:544: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:544"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:544"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:544: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:544"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:544"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Add group with no buckets.
cat >groups.txt <<'_ATEOF'
group_id=1234,type=all
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:549: ovs-ofctl -O OpenFlow15 -vwarn add-groups br0 groups.txt"
at_fn_check_prepare_trace "ofproto.at:549"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn add-groups br0 groups.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:549"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:550: ovs-ofctl -F OXM-OpenFlow15 -O OpenFlow15 -vwarn dump-groups br0 1234"
at_fn_check_prepare_trace "ofproto.at:550"
( $at_check_trace; ovs-ofctl -F OXM-OpenFlow15 -O OpenFlow15 -vwarn dump-groups br0 1234
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:550"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:551: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:551"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.5):
 group_id=1234,type=all
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:551"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Add two buckets, using "last".
{ set +x
$as_echo "$at_srcdir/ofproto.at:557: ovs-ofctl -O OpenFlow15 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=last,bucket=bucket_id:10,actions=output:10,bucket=bucket_id:11,actions=output:11"
at_fn_check_prepare_trace "ofproto.at:557"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=last,bucket=bucket_id:10,actions=output:10,bucket=bucket_id:11,actions=output:11
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:557"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:558: ovs-ofctl -F OXM-OpenFlow15 -O OpenFlow15 -vwarn dump-groups br0 1234"
at_fn_check_prepare_trace "ofproto.at:558"
( $at_check_trace; ovs-ofctl -F OXM-OpenFlow15 -O OpenFlow15 -vwarn dump-groups br0 1234
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:558"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:559: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:559"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.5):
 group_id=1234,type=all,bucket=bucket_id:10,actions=output:10,bucket=bucket_id:11,actions=output:11
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:559"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Start over again, then add two buckets using "first".
{ set +x
$as_echo "$at_srcdir/ofproto.at:565: ovs-ofctl -O OpenFlow15 --strict del-groups br0 group_id=1234"
at_fn_check_prepare_trace "ofproto.at:565"
( $at_check_trace; ovs-ofctl -O OpenFlow15 --strict del-groups br0 group_id=1234
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:565"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:566: ovs-ofctl -O OpenFlow15 -vwarn add-group br0 group_id=1234,type=all"
at_fn_check_prepare_trace "ofproto.at:566"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn add-group br0 group_id=1234,type=all
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:566"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:567: ovs-ofctl -O OpenFlow15 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=first,bucket=bucket_id:10,actions=output:10,bucket=bucket_id:11,actions=output:11"
at_fn_check_prepare_trace "ofproto.at:567"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=first,bucket=bucket_id:10,actions=output:10,bucket=bucket_id:11,actions=output:11
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:567"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:568: ovs-ofctl -F OXM-OpenFlow15 -O OpenFlow15 -vwarn dump-groups br0 1234"
at_fn_check_prepare_trace "ofproto.at:568"
( $at_check_trace; ovs-ofctl -F OXM-OpenFlow15 -O OpenFlow15 -vwarn dump-groups br0 1234
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:568"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:569: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:569"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.5):
 group_id=1234,type=all,bucket=bucket_id:10,actions=output:10,bucket=bucket_id:11,actions=output:11
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:569"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Add two more buckets before the existing ones.
{ set +x
$as_echo "$at_srcdir/ofproto.at:575: ovs-ofctl -O OpenFlow15 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=first,bucket=bucket_id:0,actions=output:0,bucket=bucket_id:1,actions=output:1"
at_fn_check_prepare_trace "ofproto.at:575"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=first,bucket=bucket_id:0,actions=output:0,bucket=bucket_id:1,actions=output:1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:575"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:576: ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:576"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:576"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:577: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:577"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.5):
 group_id=1234,type=all,bucket=bucket_id:0,actions=output:0,bucket=bucket_id:1,actions=output:1,bucket=bucket_id:10,actions=output:10,bucket=bucket_id:11,actions=output:11
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:577"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Add another bucket at the end.
{ set +x
$as_echo "$at_srcdir/ofproto.at:583: ovs-ofctl -O OpenFlow15 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=last,bucket=bucket_id:14,actions=output:14,bucket=bucket_id:15,actions=output:15"
at_fn_check_prepare_trace "ofproto.at:583"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=last,bucket=bucket_id:14,actions=output:14,bucket=bucket_id:15,actions=output:15
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:583"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:584: ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:584"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:584"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:585: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:585"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.5):
 group_id=1234,type=all,bucket=bucket_id:0,actions=output:0,bucket=bucket_id:1,actions=output:1,bucket=bucket_id:10,actions=output:10,bucket=bucket_id:11,actions=output:11,bucket=bucket_id:14,actions=output:14,bucket=bucket_id:15,actions=output:15
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:585"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Verify that duplicate bucket IDs are rejected.
{ set +x
$as_echo "$at_srcdir/ofproto.at:591: ovs-ofctl -O OpenFlow15 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=last,bucket=bucket_id:14,actions=output:14,bucket=bucket_id:15,actions=output:15"
at_fn_check_prepare_trace "ofproto.at:591"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=last,bucket=bucket_id:14,actions=output:14,bucket=bucket_id:15,actions=output:15
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:591"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:592: strip_xids < stderr | sed '/truncated/,\$d'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:592"
( $at_check_trace; strip_xids < stderr | sed '/truncated/,$d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (OF1.5): OFPGMFC_BUCKET_EXISTS
OFPT_GROUP_MOD (OF1.5):
 INSERT_BUCKET command_bucket_id:last,group_id=1234,bucket=bucket_id:14,actions=output:14,bucket=bucket_id:15,actions=output:15
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:592"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Add another bucket just before bucket 15.
{ set +x
$as_echo "$at_srcdir/ofproto.at:600: ovs-ofctl -O OpenFlow15 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=15"
at_fn_check_prepare_trace "ofproto.at:600"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=15
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:600"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:601: ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:601"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:601"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:602: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:602"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.5):
 group_id=1234,type=all,bucket=bucket_id:0,actions=output:0,bucket=bucket_id:1,actions=output:1,bucket=bucket_id:10,actions=output:10,bucket=bucket_id:11,actions=output:11,bucket=bucket_id:14,actions=output:14,bucket=bucket_id:15,actions=output:15
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:602"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Add two more buckets just before bucket 11,
# getting the command from a file.
cat >buckets.txt <<'_ATEOF'
group_id=1234,command_bucket_id=11,bucket=bucket_id:12,actions=output:12,bucket=bucket_id:13,actions=output:13
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:612: ovs-ofctl -O OpenFlow15 -vwarn insert-buckets br0 - < buckets.txt"
at_fn_check_prepare_trace "ofproto.at:612"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn insert-buckets br0 - < buckets.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:612"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:613: ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:613"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:613"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:614: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:614"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.5):
 group_id=1234,type=all,bucket=bucket_id:0,actions=output:0,bucket=bucket_id:1,actions=output:1,bucket=bucket_id:10,actions=output:10,bucket=bucket_id:11,actions=output:11,bucket=bucket_id:12,actions=output:12,bucket=bucket_id:13,actions=output:13,bucket=bucket_id:14,actions=output:14,bucket=bucket_id:15,actions=output:15
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:614"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Add yet two more buckets.
{ set +x
$as_echo "$at_srcdir/ofproto.at:620: ovs-ofctl -O OpenFlow15 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=15,bucket=bucket_id:20,actions=output:20,bucket=bucket_id:21,actions=output:21"
at_fn_check_prepare_trace "ofproto.at:620"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=15,bucket=bucket_id:20,actions=output:20,bucket=bucket_id:21,actions=output:21
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:620"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:621: ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:621"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:621"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:622: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:622"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.5):
 group_id=1234,type=all,bucket=bucket_id:0,actions=output:0,bucket=bucket_id:1,actions=output:1,bucket=bucket_id:10,actions=output:10,bucket=bucket_id:11,actions=output:11,bucket=bucket_id:12,actions=output:12,bucket=bucket_id:13,actions=output:13,bucket=bucket_id:14,actions=output:14,bucket=bucket_id:15,actions=output:15,bucket=bucket_id:20,actions=output:20,bucket=bucket_id:21,actions=output:21
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:622"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Delete groups.
{ set +x
$as_echo "$at_srcdir/ofproto.at:628: ovs-ofctl -O OpenFlow15 del-groups br0"
at_fn_check_prepare_trace "ofproto.at:628"
( $at_check_trace; ovs-ofctl -O OpenFlow15 del-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:628"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Add "fast_failover" group, then insert a bucket into it and make
# sure that the type of the group doesn't change.  (There was a bug
# that caused this to happen.)
{ set +x
$as_echo "$at_srcdir/ofproto.at:633: ovs-ofctl -O OpenFlow15 -vwarn add-group br0 group_id=1234,type=ff"
at_fn_check_prepare_trace "ofproto.at:633"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn add-group br0 group_id=1234,type=ff
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:633"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:634: ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:634"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:634"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:635: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:635"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.5):
 group_id=1234,type=ff
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:635"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:639: ovs-ofctl -O OpenFlow15 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=first,bucket=bucket_id:20,actions=output:20,bucket=bucket_id:21,actions=output:21"
at_fn_check_prepare_trace "ofproto.at:639"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=first,bucket=bucket_id:20,actions=output:20,bucket=bucket_id:21,actions=output:21
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:639"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:640: ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:640"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:640"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:641: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:641"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.5):
 group_id=1234,type=ff,bucket=bucket_id:20,actions=output:20,bucket=bucket_id:21,actions=output:21
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:641"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Negative tests.
{ set +x
$as_echo "$at_srcdir/ofproto.at:647: ovs-ofctl -O OpenFlow15 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=123,type=indirect,bucket=bucket_id:0,actions=output:0,bucket=bucket_id:1,actions=output:1"
at_fn_check_prepare_trace "ofproto.at:647"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=123,type=indirect,bucket=bucket_id:0,actions=output:0,bucket=bucket_id:1,actions=output:1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: type is not needed
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:647"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:650: ovs-ofctl -O OpenFlow15 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=123,selection_method=dp_hash,type=indirect,bucket=bucket_id:0,actions=output:0,bucket=bucket_id:1,actions=output:1"
at_fn_check_prepare_trace "ofproto.at:650"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=123,selection_method=dp_hash,type=indirect,bucket=bucket_id:0,actions=output:0,bucket=bucket_id:1,actions=output:1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: selection method is not needed
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:650"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:653: ovs-ofctl -O OpenFlow15 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=0xffffff01,bucket=bucket_id:0,actions=output:0,bucket=bucket_id:1,actions=output:1"
at_fn_check_prepare_trace "ofproto.at:653"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=0xffffff01,bucket=bucket_id:0,actions=output:0,bucket=bucket_id:1,actions=output:1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: invalid command bucket id 4294967041
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:653"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:656: ovs-ofctl -O OpenFlow11 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=first,bucket=bucket_id:0,actions=output:0,bucket=bucket_id:1,actions=output:1"
at_fn_check_prepare_trace "ofproto.at:656"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=first,bucket=bucket_id:0,actions=output:0,bucket=bucket_id:1,actions=output:1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: insert-bucket needs OpenFlow 1.5 or later ('-O OpenFlow15')
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:656"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:659: check_logs "
at_fn_check_prepare_trace "ofproto.at:659"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:659"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:659: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:659"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:659"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:659: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:659"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:659"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:659: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:659: wait failed" >&5

    $as_echo "ofproto.at:659" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:659"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:659: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:659"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:659"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:659: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:659"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:659"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:659: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:659: wait failed" >&5

    $as_echo "ofproto.at:659" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:659"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_881
#AT_START_882
at_fn_group_banner 882 'ofproto.at:665' \
  "ofproto - remove group buckets" "                 " 51
at_xfail=no
(
  $as_echo "882. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:666: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:666"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:666"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:666: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:666"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:666"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:666: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:666"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:666"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:666: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:666"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:666"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:666: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:666"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:666"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:666: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:666"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:666"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:666: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:666"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:666"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >groups.txt <<'_ATEOF'
group_id=1234,type=all,bucket=bucket_id:10,actions=output:10,bucket=bucket_id:11,actions=output:11,bucket=bucket_id:12,actions=output:12,bucket=bucket_id:13,actions=output:13,bucket=bucket_id:14,actions=output:14,bucket=bucket_id:15,actions=output:15,bucket=bucket_id:16,actions=output:16
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:670: ovs-ofctl -O OpenFlow15 -vwarn add-groups br0 groups.txt"
at_fn_check_prepare_trace "ofproto.at:670"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn add-groups br0 groups.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:670"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:671: ovs-ofctl -F OXM-OpenFlow15 -O OpenFlow15 -vwarn dump-groups br0 1234"
at_fn_check_prepare_trace "ofproto.at:671"
( $at_check_trace; ovs-ofctl -F OXM-OpenFlow15 -O OpenFlow15 -vwarn dump-groups br0 1234
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:671"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:672: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:672"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.5):
 group_id=1234,type=all,bucket=bucket_id:10,actions=output:10,bucket=bucket_id:11,actions=output:11,bucket=bucket_id:12,actions=output:12,bucket=bucket_id:13,actions=output:13,bucket=bucket_id:14,actions=output:14,bucket=bucket_id:15,actions=output:15,bucket=bucket_id:16,actions=output:16
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:672"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:676: ovs-ofctl -O OpenFlow15 -vwarn remove-buckets br0 group_id=1234,command_bucket_id=first"
at_fn_check_prepare_trace "ofproto.at:676"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn remove-buckets br0 group_id=1234,command_bucket_id=first
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:676"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:677: ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:677"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:677"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:678: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:678"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.5):
 group_id=1234,type=all,bucket=bucket_id:11,actions=output:11,bucket=bucket_id:12,actions=output:12,bucket=bucket_id:13,actions=output:13,bucket=bucket_id:14,actions=output:14,bucket=bucket_id:15,actions=output:15,bucket=bucket_id:16,actions=output:16
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:678"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:682: ovs-ofctl -O OpenFlow15 -vwarn remove-buckets br0 group_id=1234,command_bucket_id=last"
at_fn_check_prepare_trace "ofproto.at:682"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn remove-buckets br0 group_id=1234,command_bucket_id=last
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:682"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:683: ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:683"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:683"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:684: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:684"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.5):
 group_id=1234,type=all,bucket=bucket_id:11,actions=output:11,bucket=bucket_id:12,actions=output:12,bucket=bucket_id:13,actions=output:13,bucket=bucket_id:14,actions=output:14,bucket=bucket_id:15,actions=output:15
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:684"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:688: ovs-ofctl -O OpenFlow15 -vwarn remove-buckets br0 group_id=1234,command_bucket_id=13"
at_fn_check_prepare_trace "ofproto.at:688"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn remove-buckets br0 group_id=1234,command_bucket_id=13
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:688"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:689: ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:689"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:689"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:690: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:690"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.5):
 group_id=1234,type=all,bucket=bucket_id:11,actions=output:11,bucket=bucket_id:12,actions=output:12,bucket=bucket_id:14,actions=output:14,bucket=bucket_id:15,actions=output:15
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:690"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

cat >buckets.txt <<'_ATEOF'
group_id=1234
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:697: ovs-ofctl -O OpenFlow15 -vwarn remove-buckets br0 - < buckets.txt"
at_fn_check_prepare_trace "ofproto.at:697"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn remove-buckets br0 - < buckets.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:697"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:698: ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:698"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:698"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:699: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:699"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.5):
 group_id=1234,type=all
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:699"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:703: ovs-ofctl -O OpenFlow15 -vwarn remove-buckets br0 group_id=1234,command_bucket_id=first"
at_fn_check_prepare_trace "ofproto.at:703"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn remove-buckets br0 group_id=1234,command_bucket_id=first
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:703"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:704: ovs-ofctl -O OpenFlow15 -vwarn remove-buckets br0 group_id=1234,command_bucket_id=last"
at_fn_check_prepare_trace "ofproto.at:704"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn remove-buckets br0 group_id=1234,command_bucket_id=last
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:704"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:705: ovs-ofctl -O OpenFlow15 -vwarn remove-buckets br0 group_id=1234,command_bucket_id=all"
at_fn_check_prepare_trace "ofproto.at:705"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn remove-buckets br0 group_id=1234,command_bucket_id=all
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:705"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:706: ovs-ofctl -O OpenFlow15 -vwarn remove-buckets br0 group_id=1234,command_bucket_id=1"
at_fn_check_prepare_trace "ofproto.at:706"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn remove-buckets br0 group_id=1234,command_bucket_id=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:706"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:707: ofctl_strip < stderr"
at_fn_check_prepare_trace "ofproto.at:707"
( $at_check_trace; ofctl_strip < stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (OF1.5): OFPGMFC_UNKNOWN_BUCKET
OFPT_GROUP_MOD (OF1.5):
 REMOVE_BUCKET command_bucket_id:1,group_id=1234
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:707"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Negative test.
{ set +x
$as_echo "$at_srcdir/ofproto.at:713: ovs-ofctl -O OpenFlow11 -vwarn remove-buckets br0 group_id=1234,command_bucket_id=last"
at_fn_check_prepare_trace "ofproto.at:713"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -vwarn remove-buckets br0 group_id=1234,command_bucket_id=last
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: remove-bucket needs OpenFlow 1.5 or later ('-O OpenFlow15')
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:713"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:716: check_logs "
at_fn_check_prepare_trace "ofproto.at:716"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:716"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:716: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:716"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:716"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:716: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:716"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:716"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:716: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:716: wait failed" >&5

    $as_echo "ofproto.at:716" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:716"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:716: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:716"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:716"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:716: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:716"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:716"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:716: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:716: wait failed" >&5

    $as_echo "ofproto.at:716" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:716"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_882
#AT_START_883
at_fn_group_banner 883 'ofproto.at:719' \
  "ofproto - bundle del group (OpenFlow 1.3)" "      " 51
at_xfail=no
(
  $as_echo "883. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:720: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:720"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:720"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:720: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:720"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:720"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:720: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:720"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:720"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:720: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:720"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:720"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:720: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:720"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:720"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:720: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:720"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:720"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:720: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:720"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:720"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >groups.txt <<'_ATEOF'
group_id=1234,type=all,bucket=output:10
group_id=1235,type=all,bucket=actions=output:10
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:725: ovs-ofctl --bundle -O OpenFlow13 -vwarn add-groups br0 groups.txt"
at_fn_check_prepare_trace "ofproto.at:725"
( $at_check_trace; ovs-ofctl --bundle -O OpenFlow13 -vwarn add-groups br0 groups.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:725"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:726: ovs-ofctl -O OpenFlow13 -vwarn dump-groups br0 "
at_fn_check_prepare_trace "ofproto.at:726"
( $at_check_trace; ovs-ofctl -O OpenFlow13 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:726"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:727: strip_xids < stdout | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:727"
( $at_check_trace; strip_xids < stdout | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " group_id=1234,type=all,bucket=actions=output:10
 group_id=1235,type=all,bucket=actions=output:10
OFPST_GROUP_DESC reply (OF1.3):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:727"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:732: ovs-ofctl --bundle -O OpenFlow13 -vwarn del-groups br0 group_id=1234"
at_fn_check_prepare_trace "ofproto.at:732"
( $at_check_trace; ovs-ofctl --bundle -O OpenFlow13 -vwarn del-groups br0 group_id=1234
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:732"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:733: ovs-ofctl -O OpenFlow13 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:733"
( $at_check_trace; ovs-ofctl -O OpenFlow13 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:733"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:734: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:734"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.3):
 group_id=1235,type=all,bucket=actions=output:10
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:734"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:738: ovs-ofctl --bundle -O OpenFlow13 -vwarn del-groups br0 group_id=1234"
at_fn_check_prepare_trace "ofproto.at:738"
( $at_check_trace; ovs-ofctl --bundle -O OpenFlow13 -vwarn del-groups br0 group_id=1234
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:738"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:739: ovs-ofctl -O OpenFlow13 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:739"
( $at_check_trace; ovs-ofctl -O OpenFlow13 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:739"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:740: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:740"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.3):
 group_id=1235,type=all,bucket=actions=output:10
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:740"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:744: ovs-ofctl --bundle -O OpenFlow13 -vwarn del-groups br0"
at_fn_check_prepare_trace "ofproto.at:744"
( $at_check_trace; ovs-ofctl --bundle -O OpenFlow13 -vwarn del-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:744"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:745: ovs-ofctl -O OpenFlow13 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:745"
( $at_check_trace; ovs-ofctl -O OpenFlow13 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:745"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:746: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:746"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.3):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:746"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Negative test.
{ set +x
$as_echo "$at_srcdir/ofproto.at:751: ovs-ofctl --bundle -O OpenFlow13 -vwarn del-groups br0 group_id=0xfffffff0"
at_fn_check_prepare_trace "ofproto.at:751"
( $at_check_trace; ovs-ofctl --bundle -O OpenFlow13 -vwarn del-groups br0 group_id=0xfffffff0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: invalid group id 4294967280
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:751"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:754: check_logs "
at_fn_check_prepare_trace "ofproto.at:754"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:754"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:754: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:754"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:754"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:754: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:754"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:754"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:754: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:754: wait failed" >&5

    $as_echo "ofproto.at:754" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:754"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:754: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:754"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:754"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:754: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:754"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:754"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:754: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:754: wait failed" >&5

    $as_echo "ofproto.at:754" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:754"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_883
#AT_START_884
at_fn_group_banner 884 'ofproto.at:757' \
  "ofproto - bundle add indirect group" "            " 51
at_xfail=no
(
  $as_echo "884. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:758: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:758"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:758"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:758: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:758"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:758"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:758: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:758"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:758"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:758: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:758"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:758"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:758: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:758"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:758"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:758: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:758"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:758"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:758: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:758"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:758"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >stderr <<'_ATEOF'
OFPT_ERROR (OF1.4) (xid=0x2): OFPGMFC_INVALID_GROUP
OFPT_BUNDLE_ADD_MESSAGE (OF1.4) (xid=0x2):
 bundle_id=0 flags=atomic ordered
OFPT_GROUP_MOD (OF1.4) (xid=0x2): ***decode error: OFPGMFC_INVALID_GROUP***
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:766: ovs-ofctl --bundle -vwarn add-group br0 'group_id=1234,type=indirect'"
at_fn_check_prepare_trace "ofproto.at:766"
( $at_check_trace; ovs-ofctl --bundle -vwarn add-group br0 'group_id=1234,type=indirect'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:766"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:767: ovs-ofctl --bundle -vwarn add-group br0 'group_id=1235,type=indirect,bucket=output:10'"
at_fn_check_prepare_trace "ofproto.at:767"
( $at_check_trace; ovs-ofctl --bundle -vwarn add-group br0 'group_id=1235,type=indirect,bucket=output:10'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:767"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:768: ovs-ofctl --bundle -vwarn add-group br0 'group_id=1236,type=indirect,bucket=output:10,bucket=output:11'"
at_fn_check_prepare_trace "ofproto.at:768"
( $at_check_trace; ovs-ofctl --bundle -vwarn add-group br0 'group_id=1236,type=indirect,bucket=output:10,bucket=output:11'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:768"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:769: check_logs "
at_fn_check_prepare_trace "ofproto.at:769"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:769"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:769: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:769"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:769"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:769: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:769"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:769"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:769: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:769: wait failed" >&5

    $as_echo "ofproto.at:769" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:769"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:769: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:769"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:769"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:769: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:769"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:769"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:769: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:769: wait failed" >&5

    $as_echo "ofproto.at:769" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:769"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_884
#AT_START_885
at_fn_group_banner 885 'ofproto.at:772' \
  "ofproto - bundle group mod with mod and add_or_mod command" "" 51
at_xfail=no
(
  $as_echo "885. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:773: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:773"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:773"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:773: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:773"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:773"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:773: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:773"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:773"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:773: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:773"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:773"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:773: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:773"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:773"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:773: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:773"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:773"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:773: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:773"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:773"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >stderr <<'_ATEOF'
OFPT_ERROR (OF1.4) (xid=0x2): OFPGMFC_UNKNOWN_GROUP
OFPT_GROUP_MOD (OF1.4) (xid=0x2):
 MOD group_id=1234,type=indirect,bucket=actions=output:2
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:780: ovs-ofctl --bundle -vwarn mod-group br0 'group_id=1234,type=indirect,bucket=actions=2'"
at_fn_check_prepare_trace "ofproto.at:780"
( $at_check_trace; ovs-ofctl --bundle -vwarn mod-group br0 'group_id=1234,type=indirect,bucket=actions=2'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:780"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:782: ovs-ofctl --bundle -vwarn --may-create mod-group br0 'group_id=1234,type=indirect,bucket=actions=2'"
at_fn_check_prepare_trace "ofproto.at:782"
( $at_check_trace; ovs-ofctl --bundle -vwarn --may-create mod-group br0 'group_id=1234,type=indirect,bucket=actions=2'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:782"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:783: ovs-ofctl -O OpenFlow14 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:783"
( $at_check_trace; ovs-ofctl -O OpenFlow14 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:783"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:784: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:784"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.4):
 group_id=1234,type=indirect,bucket=actions=output:2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:784"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:789: ovs-ofctl --bundle -vwarn --may-create mod-group br0 'group_id=1234,type=indirect,bucket=actions=3'"
at_fn_check_prepare_trace "ofproto.at:789"
( $at_check_trace; ovs-ofctl --bundle -vwarn --may-create mod-group br0 'group_id=1234,type=indirect,bucket=actions=3'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:789"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:790: ovs-ofctl -O OpenFlow14 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:790"
( $at_check_trace; ovs-ofctl -O OpenFlow14 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:790"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:791: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:791"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.4):
 group_id=1234,type=indirect,bucket=actions=output:3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:791"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:795: check_logs "
at_fn_check_prepare_trace "ofproto.at:795"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:795"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:795: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:795"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:795"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:795: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:795"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:795"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:795: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:795: wait failed" >&5

    $as_echo "ofproto.at:795" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:795"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:795: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:795"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:795"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:795: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:795"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:795"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:795: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:795: wait failed" >&5

    $as_echo "ofproto.at:795" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:795"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_885
#AT_START_886
at_fn_group_banner 886 'ofproto.at:798' \
  "ofproto - bundle del group (OpenFlow 1.5)" "      " 51
at_xfail=no
(
  $as_echo "886. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:799: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:799"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:799"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:799: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:799"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:799"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:799: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:799"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:799"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:799: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:799"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:799"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:799: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:799"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:799"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:799: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:799"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:799"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:799: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:799"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:799"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >groups.txt <<'_ATEOF'
group_id=1233,type=select,selection_method=hash,bucket=output:10,bucket=output:11
group_id=1234,type=select,selection_method=hash,fields(eth_dst,ip_dst,tcp_dst),bucket=output:10,bucket=output:11
group_id=1235,type=all,bucket=actions=output:12,bucket=bucket_id:0,actions=output:10,bucket=bucket_id:1,actions=output:11
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:805: ovs-ofctl --bundle -O OpenFlow15 -vwarn add-groups br0 groups.txt"
at_fn_check_prepare_trace "ofproto.at:805"
( $at_check_trace; ovs-ofctl --bundle -O OpenFlow15 -vwarn add-groups br0 groups.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:805"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:806: ovs-ofctl -F OXM-OpenFlow15 -O OpenFlow15 -vwarn dump-groups br0 1234"
at_fn_check_prepare_trace "ofproto.at:806"
( $at_check_trace; ovs-ofctl -F OXM-OpenFlow15 -O OpenFlow15 -vwarn dump-groups br0 1234
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:806"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:807: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:807"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.5):
 group_id=1234,type=select,selection_method=hash,fields(eth_dst,ip_dst,tcp_dst),bucket=bucket_id:0,actions=output:10,bucket=bucket_id:1,actions=output:11
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:807"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:811: ovs-ofctl --bundle -O OpenFlow15 -vwarn del-groups br0 group_id=1234"
at_fn_check_prepare_trace "ofproto.at:811"
( $at_check_trace; ovs-ofctl --bundle -O OpenFlow15 -vwarn del-groups br0 group_id=1234
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:811"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:812: ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:812"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:812"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:813: strip_xids < stdout | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:813"
( $at_check_trace; strip_xids < stdout | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " group_id=1233,type=select,selection_method=hash,bucket=bucket_id:0,actions=output:10,bucket=bucket_id:1,actions=output:11
 group_id=1235,type=all,bucket=bucket_id:2,actions=output:12,bucket=bucket_id:0,actions=output:10,bucket=bucket_id:1,actions=output:11
OFPST_GROUP_DESC reply (OF1.5):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:813"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:818: ovs-ofctl --bundle -O OpenFlow15 -vwarn del-groups br0 group_id=1234"
at_fn_check_prepare_trace "ofproto.at:818"
( $at_check_trace; ovs-ofctl --bundle -O OpenFlow15 -vwarn del-groups br0 group_id=1234
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:818"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:819: ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:819"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:819"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:820: strip_xids < stdout | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:820"
( $at_check_trace; strip_xids < stdout | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " group_id=1233,type=select,selection_method=hash,bucket=bucket_id:0,actions=output:10,bucket=bucket_id:1,actions=output:11
 group_id=1235,type=all,bucket=bucket_id:2,actions=output:12,bucket=bucket_id:0,actions=output:10,bucket=bucket_id:1,actions=output:11
OFPST_GROUP_DESC reply (OF1.5):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:820"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:825: ovs-ofctl --bundle -O OpenFlow15 -vwarn del-groups br0"
at_fn_check_prepare_trace "ofproto.at:825"
( $at_check_trace; ovs-ofctl --bundle -O OpenFlow15 -vwarn del-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:825"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:826: ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:826"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:826"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:827: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:827"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.5):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:827"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:830: check_logs "
at_fn_check_prepare_trace "ofproto.at:830"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:830"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:830: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:830"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:830"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:830: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:830"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:830"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:830: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:830: wait failed" >&5

    $as_echo "ofproto.at:830" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:830"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:830: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:830"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:830"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:830: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:830"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:830"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:830: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:830: wait failed" >&5

    $as_echo "ofproto.at:830" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:830"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_886
#AT_START_887
at_fn_group_banner 887 'ofproto.at:833' \
  "ofproto - bundle del group deletes flows" "       " 51
at_xfail=no
(
  $as_echo "887. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:834: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:834"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:834"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:834: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:834"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:834"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:834: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:834"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:834"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:834: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:834"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:834"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:834: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:834"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:834"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:834: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:834"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:834"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:834: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:834"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:834"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >groups.txt <<'_ATEOF'
group_id=1234,type=all,bucket=output:10
group_id=1235,type=all,bucket=output:10
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:839: ovs-ofctl --bundle -vwarn add-groups br0 groups.txt"
at_fn_check_prepare_trace "ofproto.at:839"
( $at_check_trace; ovs-ofctl --bundle -vwarn add-groups br0 groups.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:839"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

cat >flows.txt <<'_ATEOF'
tcp actions=group:1234
table=2 udp actions=group:1235
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:844: ovs-ofctl --bundle -vwarn add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto.at:844"
( $at_check_trace; ovs-ofctl --bundle -vwarn add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:844"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:845: ovs-ofctl -O OpenFlow14 -vwarn dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:845"
( $at_check_trace; ovs-ofctl -O OpenFlow14 -vwarn dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " table=2, udp actions=group:1235
 tcp actions=group:1234
OFPST_FLOW reply (OF1.4):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:845"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:851: ovs-ofctl --bundle -vwarn del-groups br0 group_id=1234"
at_fn_check_prepare_trace "ofproto.at:851"
( $at_check_trace; ovs-ofctl --bundle -vwarn del-groups br0 group_id=1234
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:851"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:852: ovs-ofctl -O OpenFlow14 -vwarn dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:852"
( $at_check_trace; ovs-ofctl -O OpenFlow14 -vwarn dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " table=2, udp actions=group:1235
OFPST_FLOW reply (OF1.4):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:852"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:857: ovs-ofctl --bundle -vwarn del-groups br0 group_id=1234"
at_fn_check_prepare_trace "ofproto.at:857"
( $at_check_trace; ovs-ofctl --bundle -vwarn del-groups br0 group_id=1234
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:857"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:858: ovs-ofctl -O OpenFlow14 -vwarn dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:858"
( $at_check_trace; ovs-ofctl -O OpenFlow14 -vwarn dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " table=2, udp actions=group:1235
OFPST_FLOW reply (OF1.4):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:858"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:863: ovs-ofctl --bundle -vwarn del-groups br0"
at_fn_check_prepare_trace "ofproto.at:863"
( $at_check_trace; ovs-ofctl --bundle -vwarn del-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:863"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:864: ovs-ofctl -O OpenFlow14 -vwarn dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:864"
( $at_check_trace; ovs-ofctl -O OpenFlow14 -vwarn dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW reply (OF1.4):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:864"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:868: check_logs "
at_fn_check_prepare_trace "ofproto.at:868"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:868"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:868: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:868"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:868"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:868: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:868"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:868"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:868: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:868: wait failed" >&5

    $as_echo "ofproto.at:868" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:868"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:868: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:868"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:868"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:868: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:868"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:868"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:868: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:868: wait failed" >&5

    $as_echo "ofproto.at:868" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:868"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_887
#AT_START_888
at_fn_group_banner 888 'ofproto.at:874' \
  "ofproto - bundle insert group buckets" "          " 51
at_xfail=no
(
  $as_echo "888. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:875: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:875"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:875"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:875: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:875"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:875"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:875: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:875"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:875"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:875: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:875"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:875"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:875: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:875"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:875"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:875: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:875"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:875"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:875: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:875"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:875"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Add group with no buckets.
cat >groups.txt <<'_ATEOF'
group_id=1234,type=all
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:880: ovs-ofctl --bundle -O OpenFlow15 -vwarn add-groups br0 groups.txt"
at_fn_check_prepare_trace "ofproto.at:880"
( $at_check_trace; ovs-ofctl --bundle -O OpenFlow15 -vwarn add-groups br0 groups.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:880"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:881: ovs-ofctl -F OXM-OpenFlow15 -O OpenFlow15 -vwarn dump-groups br0 1234"
at_fn_check_prepare_trace "ofproto.at:881"
( $at_check_trace; ovs-ofctl -F OXM-OpenFlow15 -O OpenFlow15 -vwarn dump-groups br0 1234
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:881"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:882: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:882"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.5):
 group_id=1234,type=all
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:882"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Add two buckets, using "last".
{ set +x
$as_echo "$at_srcdir/ofproto.at:888: ovs-ofctl --bundle -O OpenFlow15 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=last,bucket=bucket_id:10,actions=output:10,bucket=bucket_id:11,actions=output:11"
at_fn_check_prepare_trace "ofproto.at:888"
( $at_check_trace; ovs-ofctl --bundle -O OpenFlow15 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=last,bucket=bucket_id:10,actions=output:10,bucket=bucket_id:11,actions=output:11
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:888"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:889: ovs-ofctl -F OXM-OpenFlow15 -O OpenFlow15 -vwarn dump-groups br0 1234"
at_fn_check_prepare_trace "ofproto.at:889"
( $at_check_trace; ovs-ofctl -F OXM-OpenFlow15 -O OpenFlow15 -vwarn dump-groups br0 1234
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:889"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:890: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:890"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.5):
 group_id=1234,type=all,bucket=bucket_id:10,actions=output:10,bucket=bucket_id:11,actions=output:11
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:890"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Start over again, then add two buckets using "first".
cat >groups.txt <<'_ATEOF'
delete group_id=1234
add group_id=1234,type=all
insert_bucket group_id=1234,command_bucket_id=first,bucket=bucket_id:10,actions=output:10,bucket=bucket_id:11,actions=output:11
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:901: ovs-ofctl --bundle -O OpenFlow15 -vwarn add-groups br0 groups.txt"
at_fn_check_prepare_trace "ofproto.at:901"
( $at_check_trace; ovs-ofctl --bundle -O OpenFlow15 -vwarn add-groups br0 groups.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:901"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:902: ovs-ofctl -F OXM-OpenFlow15 -O OpenFlow15 -vwarn dump-groups br0 1234"
at_fn_check_prepare_trace "ofproto.at:902"
( $at_check_trace; ovs-ofctl -F OXM-OpenFlow15 -O OpenFlow15 -vwarn dump-groups br0 1234
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:902"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:903: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:903"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.5):
 group_id=1234,type=all,bucket=bucket_id:10,actions=output:10,bucket=bucket_id:11,actions=output:11
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:903"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Add two more buckets before the existing ones.
{ set +x
$as_echo "$at_srcdir/ofproto.at:909: ovs-ofctl --bundle -O OpenFlow15 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=first,bucket=bucket_id:0,actions=output:0,bucket=bucket_id:1,actions=output:1"
at_fn_check_prepare_trace "ofproto.at:909"
( $at_check_trace; ovs-ofctl --bundle -O OpenFlow15 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=first,bucket=bucket_id:0,actions=output:0,bucket=bucket_id:1,actions=output:1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:909"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:910: ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:910"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:910"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:911: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:911"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.5):
 group_id=1234,type=all,bucket=bucket_id:0,actions=output:0,bucket=bucket_id:1,actions=output:1,bucket=bucket_id:10,actions=output:10,bucket=bucket_id:11,actions=output:11
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:911"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Add another bucket at the end.
{ set +x
$as_echo "$at_srcdir/ofproto.at:917: ovs-ofctl --bundle -O OpenFlow15 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=last,bucket=bucket_id:14,actions=output:14,bucket=bucket_id:15,actions=output:15"
at_fn_check_prepare_trace "ofproto.at:917"
( $at_check_trace; ovs-ofctl --bundle -O OpenFlow15 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=last,bucket=bucket_id:14,actions=output:14,bucket=bucket_id:15,actions=output:15
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:917"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:918: ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:918"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:918"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:919: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:919"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.5):
 group_id=1234,type=all,bucket=bucket_id:0,actions=output:0,bucket=bucket_id:1,actions=output:1,bucket=bucket_id:10,actions=output:10,bucket=bucket_id:11,actions=output:11,bucket=bucket_id:14,actions=output:14,bucket=bucket_id:15,actions=output:15
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:919"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Verify that duplicate bucket IDs are rejected.
{ set +x
$as_echo "$at_srcdir/ofproto.at:925: ovs-ofctl --bundle -O OpenFlow15 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=last,bucket=bucket_id:14,actions=output:14,bucket=bucket_id:15,actions=output:15"
at_fn_check_prepare_trace "ofproto.at:925"
( $at_check_trace; ovs-ofctl --bundle -O OpenFlow15 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=last,bucket=bucket_id:14,actions=output:14,bucket=bucket_id:15,actions=output:15
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:925"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:926: strip_xids < stderr | sed '/talking to/,\$d'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:926"
( $at_check_trace; strip_xids < stderr | sed '/talking to/,$d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Error OFPGMFC_BUCKET_EXISTS for: OFPT_GROUP_MOD (OF1.5):
 INSERT_BUCKET command_bucket_id:last,group_id=1234,bucket=bucket_id:14,actions=output:14,bucket=bucket_id:15,actions=output:15
Error OFPBFC_MSG_FAILED for: OFPT_BUNDLE_CONTROL (OF1.5):
 bundle_id=0 type=COMMIT_REQUEST flags=atomic ordered
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:926"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Add another bucket just before bucket 15.
{ set +x
$as_echo "$at_srcdir/ofproto.at:934: ovs-ofctl --bundle -O OpenFlow15 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=15"
at_fn_check_prepare_trace "ofproto.at:934"
( $at_check_trace; ovs-ofctl --bundle -O OpenFlow15 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=15
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:934"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:935: ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:935"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:935"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:936: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:936"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.5):
 group_id=1234,type=all,bucket=bucket_id:0,actions=output:0,bucket=bucket_id:1,actions=output:1,bucket=bucket_id:10,actions=output:10,bucket=bucket_id:11,actions=output:11,bucket=bucket_id:14,actions=output:14,bucket=bucket_id:15,actions=output:15
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:936"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Add two more buckets just before bucket 11,
# getting the command from a file.
cat >buckets.txt <<'_ATEOF'
group_id=1234,command_bucket_id=11,bucket=bucket_id:12,actions=output:12,bucket=bucket_id:13,actions=output:13
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:946: ovs-ofctl --bundle -O OpenFlow15 -vwarn insert-buckets br0 - < buckets.txt"
at_fn_check_prepare_trace "ofproto.at:946"
( $at_check_trace; ovs-ofctl --bundle -O OpenFlow15 -vwarn insert-buckets br0 - < buckets.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:946"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:947: ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:947"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:947"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:948: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:948"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.5):
 group_id=1234,type=all,bucket=bucket_id:0,actions=output:0,bucket=bucket_id:1,actions=output:1,bucket=bucket_id:10,actions=output:10,bucket=bucket_id:11,actions=output:11,bucket=bucket_id:12,actions=output:12,bucket=bucket_id:13,actions=output:13,bucket=bucket_id:14,actions=output:14,bucket=bucket_id:15,actions=output:15
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:948"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Add yet two more buckets.
{ set +x
$as_echo "$at_srcdir/ofproto.at:954: ovs-ofctl --bundle -O OpenFlow15 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=15,bucket=bucket_id:20,actions=output:20,bucket=bucket_id:21,actions=output:21"
at_fn_check_prepare_trace "ofproto.at:954"
( $at_check_trace; ovs-ofctl --bundle -O OpenFlow15 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=15,bucket=bucket_id:20,actions=output:20,bucket=bucket_id:21,actions=output:21
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:954"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:955: ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:955"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:955"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:956: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:956"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.5):
 group_id=1234,type=all,bucket=bucket_id:0,actions=output:0,bucket=bucket_id:1,actions=output:1,bucket=bucket_id:10,actions=output:10,bucket=bucket_id:11,actions=output:11,bucket=bucket_id:12,actions=output:12,bucket=bucket_id:13,actions=output:13,bucket=bucket_id:14,actions=output:14,bucket=bucket_id:15,actions=output:15,bucket=bucket_id:20,actions=output:20,bucket=bucket_id:21,actions=output:21
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:956"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Negative tests.
{ set +x
$as_echo "$at_srcdir/ofproto.at:962: ovs-ofctl --bundle -O OpenFlow15 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=0xffffff01,bucket=bucket_id:0,actions=output:0,bucket=bucket_id:1,actions=output:1"
at_fn_check_prepare_trace "ofproto.at:962"
( $at_check_trace; ovs-ofctl --bundle -O OpenFlow15 -vwarn insert-buckets br0 group_id=1234,command_bucket_id=0xffffff01,bucket=bucket_id:0,actions=output:0,bucket=bucket_id:1,actions=output:1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: invalid command bucket id 4294967041
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:962"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:965: ovs-ofctl --bundle -vwarn insert-buckets br0 group_id=1234,command_bucket_id=first,bucket=bucket_id:0,actions=output:0,bucket=bucket_id:1,actions=output:1"
at_fn_check_prepare_trace "ofproto.at:965"
( $at_check_trace; ovs-ofctl --bundle -vwarn insert-buckets br0 group_id=1234,command_bucket_id=first,bucket=bucket_id:0,actions=output:0,bucket=bucket_id:1,actions=output:1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: insert-bucket needs OpenFlow 1.5 or later ('-O OpenFlow15')
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:965"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:968: check_logs "
at_fn_check_prepare_trace "ofproto.at:968"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:968"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:968: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:968"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:968"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:968: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:968"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:968"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:968: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:968: wait failed" >&5

    $as_echo "ofproto.at:968" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:968"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:968: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:968"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:968"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:968: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:968"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:968"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:968: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:968: wait failed" >&5

    $as_echo "ofproto.at:968" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:968"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_888
#AT_START_889
at_fn_group_banner 889 'ofproto.at:971' \
  "ofproto - bundle remove group buckets" "          " 51
at_xfail=no
(
  $as_echo "889. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:972: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:972"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:972"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:972: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:972"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:972"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:972: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:972"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:972"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:972: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:972"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:972"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:972: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:972"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:972"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:972: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:972"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:972"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:972: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:972"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:972"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >groups.txt <<'_ATEOF'
group_id=1234,type=all,bucket=bucket_id:10,actions=output:10,bucket=bucket_id:11,actions=output:11,bucket=bucket_id:12,actions=output:12,bucket=bucket_id:13,actions=output:13,bucket=bucket_id:14,actions=output:14,bucket=bucket_id:15,actions=output:15,bucket=bucket_id:16,actions=output:16
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:976: ovs-ofctl --bundle -O OpenFlow15 -vwarn add-groups br0 groups.txt"
at_fn_check_prepare_trace "ofproto.at:976"
( $at_check_trace; ovs-ofctl --bundle -O OpenFlow15 -vwarn add-groups br0 groups.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:976"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:977: ovs-ofctl -F OXM-OpenFlow15 -O OpenFlow15 -vwarn dump-groups br0 1234"
at_fn_check_prepare_trace "ofproto.at:977"
( $at_check_trace; ovs-ofctl -F OXM-OpenFlow15 -O OpenFlow15 -vwarn dump-groups br0 1234
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:977"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:978: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:978"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.5):
 group_id=1234,type=all,bucket=bucket_id:10,actions=output:10,bucket=bucket_id:11,actions=output:11,bucket=bucket_id:12,actions=output:12,bucket=bucket_id:13,actions=output:13,bucket=bucket_id:14,actions=output:14,bucket=bucket_id:15,actions=output:15,bucket=bucket_id:16,actions=output:16
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:978"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:982: ovs-ofctl --bundle -O OpenFlow15 -vwarn remove-buckets br0 group_id=1234,command_bucket_id=first"
at_fn_check_prepare_trace "ofproto.at:982"
( $at_check_trace; ovs-ofctl --bundle -O OpenFlow15 -vwarn remove-buckets br0 group_id=1234,command_bucket_id=first
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:982"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:983: ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:983"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:983"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:984: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:984"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.5):
 group_id=1234,type=all,bucket=bucket_id:11,actions=output:11,bucket=bucket_id:12,actions=output:12,bucket=bucket_id:13,actions=output:13,bucket=bucket_id:14,actions=output:14,bucket=bucket_id:15,actions=output:15,bucket=bucket_id:16,actions=output:16
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:984"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:988: ovs-ofctl --bundle -O OpenFlow15 -vwarn remove-buckets br0 group_id=1234,command_bucket_id=last"
at_fn_check_prepare_trace "ofproto.at:988"
( $at_check_trace; ovs-ofctl --bundle -O OpenFlow15 -vwarn remove-buckets br0 group_id=1234,command_bucket_id=last
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:988"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:989: ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:989"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:989"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:990: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:990"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.5):
 group_id=1234,type=all,bucket=bucket_id:11,actions=output:11,bucket=bucket_id:12,actions=output:12,bucket=bucket_id:13,actions=output:13,bucket=bucket_id:14,actions=output:14,bucket=bucket_id:15,actions=output:15
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:990"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:994: ovs-ofctl --bundle -O OpenFlow15 -vwarn remove-buckets br0 group_id=1234,command_bucket_id=13"
at_fn_check_prepare_trace "ofproto.at:994"
( $at_check_trace; ovs-ofctl --bundle -O OpenFlow15 -vwarn remove-buckets br0 group_id=1234,command_bucket_id=13
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:994"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:995: ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:995"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:995"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:996: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:996"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.5):
 group_id=1234,type=all,bucket=bucket_id:11,actions=output:11,bucket=bucket_id:12,actions=output:12,bucket=bucket_id:14,actions=output:14,bucket=bucket_id:15,actions=output:15
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:996"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

cat >buckets.txt <<'_ATEOF'
group_id=1234
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:1003: ovs-ofctl --bundle -O OpenFlow15 -vwarn remove-buckets br0 - < buckets.txt"
at_fn_check_prepare_trace "ofproto.at:1003"
( $at_check_trace; ovs-ofctl --bundle -O OpenFlow15 -vwarn remove-buckets br0 - < buckets.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1003"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1004: ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:1004"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1004"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1005: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:1005"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.5):
 group_id=1234,type=all
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1005"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1009: ovs-ofctl --bundle -O OpenFlow15 -vwarn remove-buckets br0 group_id=1234,command_bucket_id=first"
at_fn_check_prepare_trace "ofproto.at:1009"
( $at_check_trace; ovs-ofctl --bundle -O OpenFlow15 -vwarn remove-buckets br0 group_id=1234,command_bucket_id=first
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1009"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1010: ovs-ofctl --bundle -O OpenFlow15 -vwarn remove-buckets br0 group_id=1234,command_bucket_id=last"
at_fn_check_prepare_trace "ofproto.at:1010"
( $at_check_trace; ovs-ofctl --bundle -O OpenFlow15 -vwarn remove-buckets br0 group_id=1234,command_bucket_id=last
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1010"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1011: ovs-ofctl --bundle -O OpenFlow15 -vwarn remove-buckets br0 group_id=1234,command_bucket_id=all"
at_fn_check_prepare_trace "ofproto.at:1011"
( $at_check_trace; ovs-ofctl --bundle -O OpenFlow15 -vwarn remove-buckets br0 group_id=1234,command_bucket_id=all
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1011"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1012: ovs-ofctl --bundle -O OpenFlow15 -vwarn remove-buckets br0 group_id=1234,command_bucket_id=1"
at_fn_check_prepare_trace "ofproto.at:1012"
( $at_check_trace; ovs-ofctl --bundle -O OpenFlow15 -vwarn remove-buckets br0 group_id=1234,command_bucket_id=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:1012"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1013: ofctl_strip < stderr | sed '/talking to/,\$d'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1013"
( $at_check_trace; ofctl_strip < stderr | sed '/talking to/,$d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Error OFPGMFC_UNKNOWN_BUCKET for: OFPT_GROUP_MOD (OF1.5):
 REMOVE_BUCKET command_bucket_id:1,group_id=1234
Error OFPBFC_MSG_FAILED for: OFPT_BUNDLE_CONTROL (OF1.5):
 bundle_id=0 type=COMMIT_REQUEST flags=atomic ordered
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1013"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Negative test.
{ set +x
$as_echo "$at_srcdir/ofproto.at:1020: ovs-ofctl --bundle -O OpenFlow11 -vwarn remove-buckets br0 group_id=1234,command_bucket_id=last"
at_fn_check_prepare_trace "ofproto.at:1020"
( $at_check_trace; ovs-ofctl --bundle -O OpenFlow11 -vwarn remove-buckets br0 group_id=1234,command_bucket_id=last
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: remove-bucket needs OpenFlow 1.5 or later ('-O OpenFlow15')
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:1020"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1023: check_logs "
at_fn_check_prepare_trace "ofproto.at:1023"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1023"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1023: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1023"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1023"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1023: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1023"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1023"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1023: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1023: wait failed" >&5

    $as_echo "ofproto.at:1023" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1023"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1023: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1023"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1023"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1023: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1023"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1023"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1023: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1023: wait failed" >&5

    $as_echo "ofproto.at:1023" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1023"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_889
#AT_START_890
at_fn_group_banner 890 'ofproto.at:1028' \
  "ofproto - flow mod checks group availability" "   " 51
at_xfail=no
(
  $as_echo "890. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1029: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1029"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1029"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1029: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1029"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1029"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1029: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1029"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1029"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1029: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1029"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1029"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1029: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1029"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1029"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1029: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1029"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1029"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1029: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1029"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1029"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1030: ovs-ofctl -O OpenFlow11 -vwarn add-group br0 group_id=1234,type=all,bucket=output:10"
at_fn_check_prepare_trace "ofproto.at:1030"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -vwarn add-group br0 group_id=1234,type=all,bucket=output:10
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1030"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

cat >flows.txt <<'_ATEOF'
tcp actions=group:1234
udp actions=group:1235
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:1035: ovs-ofctl -O OpenFlow11 -vwarn add-flow br0 'tcp actions=group:1234'"
at_fn_check_prepare_trace "ofproto.at:1035"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -vwarn add-flow br0 'tcp actions=group:1234'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1035"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1036: ovs-ofctl -O OpenFlow11 -vwarn add-flow br0 'tcp actions=group:1235'"
at_fn_check_prepare_trace "ofproto.at:1036"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -vwarn add-flow br0 'tcp actions=group:1235'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:1036"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1038: strip_xids < stderr"
at_fn_check_prepare_trace "ofproto.at:1038"
( $at_check_trace; strip_xids < stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (OF1.1): OFPBAC_BAD_OUT_GROUP
OFPT_FLOW_MOD (OF1.1): ADD tcp actions=group:1235
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1038"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1042: check_logs "
at_fn_check_prepare_trace "ofproto.at:1042"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1042"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1042: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1042"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1042"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1042: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1042"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1042"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1042: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1042: wait failed" >&5

    $as_echo "ofproto.at:1042" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1042"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1042: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1042"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1042"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1042: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1042"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1042"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1042: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1042: wait failed" >&5

    $as_echo "ofproto.at:1042" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1042"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_890
#AT_START_891
at_fn_group_banner 891 'ofproto.at:1045' \
  "ofproto - bundle flow mod checks group availability" "" 51
at_xfail=no
(
  $as_echo "891. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1046: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1046"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1046"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1046: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1046"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1046"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1046: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1046"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1046"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1046: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1046"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1046"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1046: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1046"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1046"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1046: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1046"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1046"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1046: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1046"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1046"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >bundle.txt <<'_ATEOF'
group add group_id=1234,type=all,bucket=output:10
flow add tcp actions=group:1234
flow add udp actions=group:1235
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:1052: ovs-ofctl -vwarn bundle br0 bundle.txt"
at_fn_check_prepare_trace "ofproto.at:1052"
( $at_check_trace; ovs-ofctl -vwarn bundle br0 bundle.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:1052"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1054: ofctl_strip < stderr | sed '/talking to/,\$d'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1054"
( $at_check_trace; ofctl_strip < stderr | sed '/talking to/,$d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Error OFPBAC_BAD_OUT_GROUP for: OFPT_FLOW_MOD (OF1.4): ADD udp actions=group:1235
Error OFPBFC_MSG_FAILED for: OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0 type=COMMIT_REQUEST flags=atomic ordered
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1054"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1060: check_logs "
at_fn_check_prepare_trace "ofproto.at:1060"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1060"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1060: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1060"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1060"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1060: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1060"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1060"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1060: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1060: wait failed" >&5

    $as_echo "ofproto.at:1060" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1060"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1060: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1060"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1060"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1060: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1060"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1060"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1060: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1060: wait failed" >&5

    $as_echo "ofproto.at:1060" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1060"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_891
#AT_START_892
at_fn_group_banner 892 'ofproto.at:1065' \
  "ofproto - group description" "                    " 51
at_xfail=no
(
  $as_echo "892. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1066: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1066"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1066"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1066: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1066"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1066"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1066: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1066"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1066"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1066: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1066"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1066"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1066: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1066"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1066"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1066: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1066"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1066"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1066: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1066"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1066"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1067: ovs-ofctl -O OpenFlow11 -vwarn add-group br0 group_id=1234,type=all,bucket=output:10"
at_fn_check_prepare_trace "ofproto.at:1067"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -vwarn add-group br0 group_id=1234,type=all,bucket=output:10
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1067"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1068: ovs-ofctl -O OpenFlow11 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:1068"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1068"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1069: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:1069"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.1):
 group_id=1234,type=all,bucket=actions=output:10
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1069"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1073: check_logs "
at_fn_check_prepare_trace "ofproto.at:1073"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1073"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1073: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1073"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1073"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1073: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1073"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1073"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1073: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1073: wait failed" >&5

    $as_echo "ofproto.at:1073" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1073"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1073: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1073"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1073"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1073: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1073"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1073"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1073: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1073: wait failed" >&5

    $as_echo "ofproto.at:1073" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1073"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_892
#AT_START_893
at_fn_group_banner 893 'ofproto.at:1078' \
  "ofproto - group description" "                    " 51
at_xfail=no
(
  $as_echo "893. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1079: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1079"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1079"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1079: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1079"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1079"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1079: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1079"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1079"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1079: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1079"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1079"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1079: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1079"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1079"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1079: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1079"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1079"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1079: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1079"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1079"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1080: ovs-ofctl -O OpenFlow11 -vwarn add-group br0 group_id=1234,type=all,bucket=output:10"
at_fn_check_prepare_trace "ofproto.at:1080"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -vwarn add-group br0 group_id=1234,type=all,bucket=output:10
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1080"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1081: ovs-ofctl -O OpenFlow11 -vwarn dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:1081"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -vwarn dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1081"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1082: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:1082"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.1):
 group_id=1234,type=all,bucket=actions=output:10
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1082"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1086: check_logs "
at_fn_check_prepare_trace "ofproto.at:1086"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1086"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1086: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1086"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1086"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1086: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1086"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1086"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1086: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1086: wait failed" >&5

    $as_echo "ofproto.at:1086" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1086"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1086: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1086"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1086"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1086: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1086"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1086"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1086: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1086: wait failed" >&5

    $as_echo "ofproto.at:1086" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1086"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_893
#AT_START_894
at_fn_group_banner 894 'ofproto.at:1091' \
  "ofproto - group features" "                       " 51
at_xfail=no
(
  $as_echo "894. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1092: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1092"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1092"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1092: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1092"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1092"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1092: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1092"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1092"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1092: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1092"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1092"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1092: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1092"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1092"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1092: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1092"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1092"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1092: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1092"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1092"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1093: ovs-ofctl -O OpenFlow12 -vwarn dump-group-features br0"
at_fn_check_prepare_trace "ofproto.at:1093"
( $at_check_trace; ovs-ofctl -O OpenFlow12 -vwarn dump-group-features br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1093"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1094: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:1094"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_FEATURES reply (OF1.2):
 Group table:
    Types:  0xf
    Capabilities:  0x7
    all group:
       max_groups=0xffffff00
       actions: output group set_field strip_vlan push_vlan mod_nw_ttl dec_ttl set_mpls_ttl dec_mpls_ttl push_mpls pop_mpls set_queue
    select group:
       max_groups=0xffffff00
       actions: output group set_field strip_vlan push_vlan mod_nw_ttl dec_ttl set_mpls_ttl dec_mpls_ttl push_mpls pop_mpls set_queue
    indirect group:
       max_groups=0xffffff00
       actions: output group set_field strip_vlan push_vlan mod_nw_ttl dec_ttl set_mpls_ttl dec_mpls_ttl push_mpls pop_mpls set_queue
    fast failover group:
       max_groups=0xffffff00
       actions: output group set_field strip_vlan push_vlan mod_nw_ttl dec_ttl set_mpls_ttl dec_mpls_ttl push_mpls pop_mpls set_queue
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1094"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1112: check_logs "
at_fn_check_prepare_trace "ofproto.at:1112"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1112"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1112: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1112"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1112"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1112: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1112"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1112"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1112: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1112: wait failed" >&5

    $as_echo "ofproto.at:1112" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1112"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1112: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1112"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1112"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1112: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1112"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1112"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1112: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1112: wait failed" >&5

    $as_echo "ofproto.at:1112" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1112"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_894
#AT_START_895
at_fn_group_banner 895 'ofproto.at:1117' \
  "ofproto - group stats (OpenFlow 1.1)" "           " 51
at_xfail=no
(
  $as_echo "895. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1118: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1118"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1118"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1118: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1118"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1118"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1118: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1118"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1118"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1118: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1118"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1118"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1118: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1118"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1118"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1118: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1118"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1118"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1118: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1118"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1118"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >groups.txt <<'_ATEOF'
group_id=1234,type=all,bucket=output:10
group_id=1235,type=all,bucket=output:10
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:1123: ovs-ofctl -O OpenFlow11 -vwarn add-groups br0 groups.txt"
at_fn_check_prepare_trace "ofproto.at:1123"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -vwarn add-groups br0 groups.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1123"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1124: ovs-ofctl -O OpenFlow11 -vwarn add-flow br0 'tcp actions=group:1234'"
at_fn_check_prepare_trace "ofproto.at:1124"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -vwarn add-flow br0 'tcp actions=group:1234'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1124"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1125: ovs-ofctl -O OpenFlow11 -vwarn dump-group-stats br0 group_id=1234"
at_fn_check_prepare_trace "ofproto.at:1125"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -vwarn dump-group-stats br0 group_id=1234
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1125"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1126: strip_xids < stdout | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1126"
( $at_check_trace; strip_xids < stdout | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " group_id=1234,ref_count=1,packet_count=0,byte_count=0,bucket0:packet_count=0,byte_count=0
OFPST_GROUP reply (OF1.1):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1126"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1130: ovs-ofctl -O OpenFlow11 -vwarn dump-group-stats br0"
at_fn_check_prepare_trace "ofproto.at:1130"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -vwarn dump-group-stats br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1130"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1131: strip_xids < stdout | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1131"
( $at_check_trace; strip_xids < stdout | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " group_id=1234,ref_count=1,packet_count=0,byte_count=0,bucket0:packet_count=0,byte_count=0
 group_id=1235,ref_count=0,packet_count=0,byte_count=0,bucket0:packet_count=0,byte_count=0
OFPST_GROUP reply (OF1.1):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1131"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1136: check_logs "
at_fn_check_prepare_trace "ofproto.at:1136"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1136"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1136: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1136"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1136"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1136: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1136"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1136"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1136: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1136: wait failed" >&5

    $as_echo "ofproto.at:1136" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1136"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1136: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1136"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1136"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1136: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1136"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1136"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1136: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1136: wait failed" >&5

    $as_echo "ofproto.at:1136" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1136"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_895
#AT_START_896
at_fn_group_banner 896 'ofproto.at:1141' \
  "ofproto - group stats (OpenFlow 1.3)" "           " 51
at_xfail=no
(
  $as_echo "896. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1142: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1142"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1142"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1142: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1142"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1142"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1142: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1142"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1142"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1142: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1142"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1142"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1142: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1142"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1142"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1142: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1142"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1142"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1142: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1142"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1142"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >groups.txt <<'_ATEOF'
group_id=1234,type=all,bucket=output:10
group_id=1235,type=all,bucket=output:10
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:1147: ovs-ofctl -O OpenFlow13 -vwarn add-groups br0 groups.txt"
at_fn_check_prepare_trace "ofproto.at:1147"
( $at_check_trace; ovs-ofctl -O OpenFlow13 -vwarn add-groups br0 groups.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1147"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1148: ovs-ofctl -O OpenFlow13 -vwarn add-flow br0 'tcp actions=group:1234'"
at_fn_check_prepare_trace "ofproto.at:1148"
( $at_check_trace; ovs-ofctl -O OpenFlow13 -vwarn add-flow br0 'tcp actions=group:1234'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1148"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1149: ovs-ofctl -O OpenFlow13 -vwarn dump-group-stats br0 group_id=1234"
at_fn_check_prepare_trace "ofproto.at:1149"
( $at_check_trace; ovs-ofctl -O OpenFlow13 -vwarn dump-group-stats br0 group_id=1234
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1149"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1150: strip_xids < stdout | sed 's/duration=[0-9.]*s/duration=?s/' | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1150"
( $at_check_trace; strip_xids < stdout | sed 's/duration=[0-9.]*s/duration=?s/' | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " group_id=1234,duration=?s,ref_count=1,packet_count=0,byte_count=0,bucket0:packet_count=0,byte_count=0
OFPST_GROUP reply (OF1.3):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1150"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1154: ovs-ofctl -O OpenFlow13 -vwarn dump-group-stats br0"
at_fn_check_prepare_trace "ofproto.at:1154"
( $at_check_trace; ovs-ofctl -O OpenFlow13 -vwarn dump-group-stats br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1154"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1155: strip_xids < stdout | sed 's/duration=[0-9.]*s/duration=?s/' | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1155"
( $at_check_trace; strip_xids < stdout | sed 's/duration=[0-9.]*s/duration=?s/' | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " group_id=1234,duration=?s,ref_count=1,packet_count=0,byte_count=0,bucket0:packet_count=0,byte_count=0
 group_id=1235,duration=?s,ref_count=0,packet_count=0,byte_count=0,bucket0:packet_count=0,byte_count=0
OFPST_GROUP reply (OF1.3):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1155"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1160: check_logs "
at_fn_check_prepare_trace "ofproto.at:1160"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1160"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1160: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1160"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1160"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1160: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1160"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1160"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1160: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1160: wait failed" >&5

    $as_echo "ofproto.at:1160" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1160"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1160: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1160"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1160"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1160: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1160"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1160"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1160: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1160: wait failed" >&5

    $as_echo "ofproto.at:1160" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1160"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_896
#AT_START_897
at_fn_group_banner 897 'ofproto.at:1165' \
  "ofproto - group stats (OpenFlow 1.5)" "           " 51
at_xfail=no
(
  $as_echo "897. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1166: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1166"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1166"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1166: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1166"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1166"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1166: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1166"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1166"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1166: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1166"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1166"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1166: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1166"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1166"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1166: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1166"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1166"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1166: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1166"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1166"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >groups.txt <<'_ATEOF'
group_id=1234,type=all,bucket=output:10
group_id=1235,type=all,bucket=output:10
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:1171: ovs-ofctl -O OpenFlow15 -vwarn add-groups br0 groups.txt"
at_fn_check_prepare_trace "ofproto.at:1171"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn add-groups br0 groups.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1171"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1172: ovs-ofctl -O OpenFlow15 -vwarn add-flow br0 'tcp actions=group:1234'"
at_fn_check_prepare_trace "ofproto.at:1172"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn add-flow br0 'tcp actions=group:1234'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1172"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1173: ovs-ofctl -O OpenFlow15 -vwarn dump-group-stats br0 group_id=1234"
at_fn_check_prepare_trace "ofproto.at:1173"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn dump-group-stats br0 group_id=1234
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1173"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1174: strip_xids < stdout | sed 's/duration=[0-9.]*s/duration=?s/' | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1174"
( $at_check_trace; strip_xids < stdout | sed 's/duration=[0-9.]*s/duration=?s/' | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " group_id=1234,duration=?s,ref_count=1,packet_count=0,byte_count=0,bucket0:packet_count=0,byte_count=0
OFPST_GROUP reply (OF1.5):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1174"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1178: ovs-ofctl -O OpenFlow15 -vwarn dump-group-stats br0"
at_fn_check_prepare_trace "ofproto.at:1178"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -vwarn dump-group-stats br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1178"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1179: strip_xids < stdout | sed 's/duration=[0-9.]*s/duration=?s/' | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1179"
( $at_check_trace; strip_xids < stdout | sed 's/duration=[0-9.]*s/duration=?s/' | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " group_id=1234,duration=?s,ref_count=1,packet_count=0,byte_count=0,bucket0:packet_count=0,byte_count=0
 group_id=1235,duration=?s,ref_count=0,packet_count=0,byte_count=0,bucket0:packet_count=0,byte_count=0
OFPST_GROUP reply (OF1.5):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1179"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1184: check_logs "
at_fn_check_prepare_trace "ofproto.at:1184"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1184"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1184: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1184"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1184"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1184: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1184"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1184"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1184: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1184: wait failed" >&5

    $as_echo "ofproto.at:1184" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1184"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1184: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1184"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1184"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1184: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1184"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1184"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1184: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1184: wait failed" >&5

    $as_echo "ofproto.at:1184" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1184"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_897
#AT_START_898
at_fn_group_banner 898 'ofproto.at:1189' \
  "ofproto - group add then bridge delete (OpenFlow 1.3)" "" 51
at_xfail=no
(
  $as_echo "898. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1190: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1190"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1190"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1190: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1190"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1190"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1190: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1190"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1190"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1190: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1190"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1190"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1190: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1190"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1190"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1190: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1190"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1190"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1190: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1190"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1190"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >groups.txt <<'_ATEOF'
group_id=1234,type=all,bucket=output:10
group_id=1235,type=all,bucket=output:10

group_id=2345,type=select,bucket=weight:10,actions=resubmit(,1),bucket=weight:10,actions=resubmit(,2),bucket=weight:1,actions=resubmit(,3)
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:1199: ovs-ofctl -O OpenFlow13 -vwarn add-groups br0 groups.txt"
at_fn_check_prepare_trace "ofproto.at:1199"
( $at_check_trace; ovs-ofctl -O OpenFlow13 -vwarn add-groups br0 groups.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1199"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1200: ovs-vsctl del-br br0"
at_fn_check_prepare_trace "ofproto.at:1200"
( $at_check_trace; ovs-vsctl del-br br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1200"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1201: check_logs "
at_fn_check_prepare_trace "ofproto.at:1201"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1201"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1201: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1201"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1201"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1201: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1201"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1201"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1201: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1201: wait failed" >&5

    $as_echo "ofproto.at:1201" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1201"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1201: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1201"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1201"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1201: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1201"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1201"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1201: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1201: wait failed" >&5

    $as_echo "ofproto.at:1201" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1201"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_898
#AT_START_899
at_fn_group_banner 899 'ofproto.at:1204' \
  "ofproto - mod-port (OpenFlow 1.0)" "              " 51
at_xfail=no
(
  $as_echo "899. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1205: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1205"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1205"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1205: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1205"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1205"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1205: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1205"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1205"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1205: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1205"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1205"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1205: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1205"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1205"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1205: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1205"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1205"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1205: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1205"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1205"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


for command_config_state in \
    'up 0 0' \
    'noflood NO_FLOOD 0' \
    'down PORT_DOWN,NO_FLOOD LINK_DOWN' \
    'flood PORT_DOWN LINK_DOWN' \
    'no-receive PORT_DOWN,NO_RECV LINK_DOWN' \
    'no-forward PORT_DOWN,NO_RECV,NO_FWD LINK_DOWN' \
    'no-packet-in PORT_DOWN,NO_RECV,NO_FWD,NO_PACKET_IN LINK_DOWN' \
    'forward PORT_DOWN,NO_RECV,NO_PACKET_IN LINK_DOWN' \
    'packet-in PORT_DOWN,NO_RECV LINK_DOWN' \
    'up NO_RECV 0' \
    'receive 0 0'
do
    set $command_config_state
    command=$1 config=`echo $2 | sed 's/,/ /g'` state=$3
    { set +x
$as_echo "$at_srcdir/ofproto.at:1221: ovs-ofctl -vwarn mod-port br0 br0 \$command"
at_fn_check_prepare_dynamic "ovs-ofctl -vwarn mod-port br0 br0 $command" "ofproto.at:1221"
( $at_check_trace; ovs-ofctl -vwarn mod-port br0 br0 $command
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1221"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ofproto.at:1222: ovs-ofctl -vwarn show br0"
at_fn_check_prepare_trace "ofproto.at:1222"
( $at_check_trace; ovs-ofctl -vwarn show br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1222"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ofproto.at:1223: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:1223"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_FEATURES_REPLY: dpid:fedcba9876543210
n_tables:254, n_buffers:0
capabilities: FLOW_STATS TABLE_STATS PORT_STATS QUEUE_STATS ARP_MATCH_IP
actions: output enqueue set_vlan_vid set_vlan_pcp strip_vlan mod_dl_src mod_dl_dst mod_nw_src mod_nw_dst mod_nw_tos mod_tp_src mod_tp_dst
 LOCAL(br0): addr:aa:55:aa:55:00:00
     config:     $config
     state:      $state
     speed: 0 Mbps now, 0 Mbps max
OFPT_GET_CONFIG_REPLY: frags=normal miss_send_len=0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1223"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

done
{ set +x
$as_echo "$at_srcdir/ofproto.at:1235: check_logs "
at_fn_check_prepare_trace "ofproto.at:1235"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1235"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1235: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1235"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1235"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1235: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1235"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1235"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1235: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1235: wait failed" >&5

    $as_echo "ofproto.at:1235" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1235"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1235: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1235"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1235"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1235: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1235"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1235"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1235: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1235: wait failed" >&5

    $as_echo "ofproto.at:1235" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1235"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_899
#AT_START_900
at_fn_group_banner 900 'ofproto.at:1238' \
  "ofproto - mod-port (OpenFlow 1.2)" "              " 51
at_xfail=no
(
  $as_echo "900. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1239: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1239"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1239"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1239: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1239"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1239"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1239: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1239"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1239"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1239: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1239"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1239"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1239: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1239"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1239"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1239: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1239"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1239"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1239: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1239"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1239"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


for command_config_state in \
    'up 0 LIVE' \
    'down PORT_DOWN LINK_DOWN' \
    'no-receive PORT_DOWN,NO_RECV LINK_DOWN' \
    'no-forward PORT_DOWN,NO_RECV,NO_FWD LINK_DOWN' \
    'no-packet-in PORT_DOWN,NO_RECV,NO_FWD,NO_PACKET_IN LINK_DOWN' \
    'forward PORT_DOWN,NO_RECV,NO_PACKET_IN LINK_DOWN' \
    'packet-in PORT_DOWN,NO_RECV LINK_DOWN' \
    'up NO_RECV LIVE' \
    'receive 0 LIVE'
do
    set $command_config_state
    command=$1 config=`echo $2 | sed 's/,/ /g'` state=$3
    { set +x
$as_echo "$at_srcdir/ofproto.at:1253: ovs-ofctl -O OpenFlow12 -vwarn mod-port br0 br0 \$command"
at_fn_check_prepare_dynamic "ovs-ofctl -O OpenFlow12 -vwarn mod-port br0 br0 $command" "ofproto.at:1253"
( $at_check_trace; ovs-ofctl -O OpenFlow12 -vwarn mod-port br0 br0 $command
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1253"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ofproto.at:1254: ovs-ofctl -O OpenFlow12 -vwarn show br0"
at_fn_check_prepare_trace "ofproto.at:1254"
( $at_check_trace; ovs-ofctl -O OpenFlow12 -vwarn show br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1254"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ofproto.at:1255: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:1255"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_FEATURES_REPLY (OF1.2): dpid:fedcba9876543210
n_tables:254, n_buffers:0
capabilities: FLOW_STATS TABLE_STATS PORT_STATS GROUP_STATS QUEUE_STATS
 LOCAL(br0): addr:aa:55:aa:55:00:00
     config:     $config
     state:      $state
     speed: 0 Mbps now, 0 Mbps max
OFPT_GET_CONFIG_REPLY (OF1.2): frags=normal miss_send_len=0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1255"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

done
{ set +x
$as_echo "$at_srcdir/ofproto.at:1266: check_logs "
at_fn_check_prepare_trace "ofproto.at:1266"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1266"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1266: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1266"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1266"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1266: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1266"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1266"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1266: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1266: wait failed" >&5

    $as_echo "ofproto.at:1266" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1266"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1266: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1266"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1266"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1266: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1266"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1266"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1266: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1266: wait failed" >&5

    $as_echo "ofproto.at:1266" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1266"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_900
#AT_START_901
at_fn_group_banner 901 'ofproto.at:1269' \
  "ofproto - mod-port (OpenFlow 1.4)" "              " 51
at_xfail=no
(
  $as_echo "901. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1270: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1270"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1270"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1270: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1270"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1270"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1270: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1270"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1270"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1270: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1270"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1270"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1270: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1270"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1270"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1270: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1270"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1270"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1270: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1270"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1270"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


for command_config_state in \
    'up 0 LIVE' \
    'down PORT_DOWN LINK_DOWN' \
    'no-receive PORT_DOWN,NO_RECV LINK_DOWN' \
    'no-forward PORT_DOWN,NO_RECV,NO_FWD LINK_DOWN' \
    'no-packet-in PORT_DOWN,NO_RECV,NO_FWD,NO_PACKET_IN LINK_DOWN' \
    'forward PORT_DOWN,NO_RECV,NO_PACKET_IN LINK_DOWN' \
    'packet-in PORT_DOWN,NO_RECV LINK_DOWN' \
    'up NO_RECV LIVE' \
    'receive 0 LIVE'
do
    set $command_config_state
    command=$1 config=`echo $2 | sed 's/,/ /g'` state=$3
    { set +x
$as_echo "$at_srcdir/ofproto.at:1284: ovs-ofctl -O OpenFlow14 -vwarn mod-port br0 br0 \$command"
at_fn_check_prepare_dynamic "ovs-ofctl -O OpenFlow14 -vwarn mod-port br0 br0 $command" "ofproto.at:1284"
( $at_check_trace; ovs-ofctl -O OpenFlow14 -vwarn mod-port br0 br0 $command
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1284"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ofproto.at:1285: ovs-ofctl -O OpenFlow14 -vwarn show br0"
at_fn_check_prepare_trace "ofproto.at:1285"
( $at_check_trace; ovs-ofctl -O OpenFlow14 -vwarn show br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1285"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ofproto.at:1286: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:1286"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_FEATURES_REPLY (OF1.4): dpid:fedcba9876543210
n_tables:254, n_buffers:0
capabilities: FLOW_STATS TABLE_STATS PORT_STATS GROUP_STATS QUEUE_STATS BUNDLES
OFPST_PORT_DESC reply (OF1.4):
 LOCAL(br0): addr:aa:55:aa:55:00:00
     config:     $config
     state:      $state
     speed: 0 Mbps now, 0 Mbps max
OFPT_GET_CONFIG_REPLY (OF1.4): frags=normal miss_send_len=0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1286"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

done
{ set +x
$as_echo "$at_srcdir/ofproto.at:1298: check_logs "
at_fn_check_prepare_trace "ofproto.at:1298"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1298"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1298: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1298"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1298"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1298: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1298"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1298"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1298: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1298: wait failed" >&5

    $as_echo "ofproto.at:1298" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1298"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1298: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1298"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1298"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1298: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1298"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1298"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1298: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1298: wait failed" >&5

    $as_echo "ofproto.at:1298" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1298"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_901
#AT_START_902
at_fn_group_banner 902 'ofproto.at:1301' \
  "ofproto - mod-port (OpenFlow 1.6)" "              " 51
at_xfail=no
(
  $as_echo "902. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1302: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1302"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1302"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1302: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1302"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1302"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1302: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1302"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1302"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1302: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1302"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1302"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1302: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1302"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1302"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1302: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1302"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1302"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1302: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1302"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1302"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


for command_config_state in \
    'up 0 LIVE' \
    'down PORT_DOWN LINK_DOWN' \
    'no-receive PORT_DOWN,NO_RECV LINK_DOWN' \
    'no-forward PORT_DOWN,NO_RECV,NO_FWD LINK_DOWN' \
    'no-packet-in PORT_DOWN,NO_RECV,NO_FWD,NO_PACKET_IN LINK_DOWN' \
    'forward PORT_DOWN,NO_RECV,NO_PACKET_IN LINK_DOWN' \
    'packet-in PORT_DOWN,NO_RECV LINK_DOWN' \
    'up NO_RECV LIVE' \
    'receive 0 LIVE'
do
    set $command_config_state
    command=$1 config=`echo $2 | sed 's/,/ /g'` state=$3
    { set +x
$as_echo "$at_srcdir/ofproto.at:1316: ovs-ofctl -O OpenFlow16 -vwarn mod-port br0 br0 \$command"
at_fn_check_prepare_dynamic "ovs-ofctl -O OpenFlow16 -vwarn mod-port br0 br0 $command" "ofproto.at:1316"
( $at_check_trace; ovs-ofctl -O OpenFlow16 -vwarn mod-port br0 br0 $command
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1316"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ofproto.at:1317: ovs-ofctl -O OpenFlow16 -vwarn show br0"
at_fn_check_prepare_trace "ofproto.at:1317"
( $at_check_trace; ovs-ofctl -O OpenFlow16 -vwarn show br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1317"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ofproto.at:1318: strip_xids < stdout"
at_fn_check_prepare_trace "ofproto.at:1318"
( $at_check_trace; strip_xids < stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_FEATURES_REPLY (OF1.6): dpid:fedcba9876543210
n_tables:254, n_buffers:0
capabilities: FLOW_STATS TABLE_STATS PORT_STATS GROUP_STATS QUEUE_STATS BUNDLES
OFPST_PORT_DESC reply (OF1.6):
 LOCAL(br0): addr:aa:55:aa:55:00:00
     config:     $config
     state:      $state
     speed: 0 Mbps now, 0 Mbps max
OFPT_GET_CONFIG_REPLY (OF1.6): frags=normal miss_send_len=0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1318"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

done
{ set +x
$as_echo "$at_srcdir/ofproto.at:1330: check_logs "
at_fn_check_prepare_trace "ofproto.at:1330"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1330"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1330: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1330"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1330"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1330: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1330"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1330"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1330: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1330: wait failed" >&5

    $as_echo "ofproto.at:1330" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1330"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1330: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1330"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1330"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1330: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1330"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1330"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1330: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1330: wait failed" >&5

    $as_echo "ofproto.at:1330" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1330"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_902
#AT_START_903
at_fn_group_banner 903 'ofproto.at:1333' \
  "ofproto - basic flow_mod commands (NXM)" "        " 51
at_xfail=no
(
  $as_echo "903. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1334: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1334"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1334"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1334: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1334"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1334"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1334: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1334"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1334"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1334: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1334"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1334"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1334: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1334"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1334"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1334: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1334"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1334"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1334: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1334"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1334"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1335: ovs-ofctl dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1335"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1335"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1337: echo 'in_port=2,actions=1' | ovs-ofctl add-flows br0 -"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1337"
( $at_check_trace; echo 'in_port=2,actions=1' | ovs-ofctl add-flows br0 -
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1337"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1338: ovs-ofctl add-flow br0 in_port=1,actions=2"
at_fn_check_prepare_trace "ofproto.at:1338"
( $at_check_trace; ovs-ofctl add-flow br0 in_port=1,actions=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1338"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1339: ovs-ofctl -F nxm add-flow br0 table=1,in_port=4,actions=3"
at_fn_check_prepare_trace "ofproto.at:1339"
( $at_check_trace; ovs-ofctl -F nxm add-flow br0 table=1,in_port=4,actions=3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1339"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1340: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1340"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " in_port=1 actions=output:2
 in_port=2 actions=output:1
 table=1, in_port=4 actions=output:3
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1340"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1346: ovs-ofctl dump-aggregate br0 table=0 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1346"
( $at_check_trace; ovs-ofctl dump-aggregate br0 table=0 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_AGGREGATE reply: packet_count=0 byte_count=0 flow_count=2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1346"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1349: ovs-ofctl del-flows br0"
at_fn_check_prepare_trace "ofproto.at:1349"
( $at_check_trace; ovs-ofctl del-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1349"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1350: ovs-ofctl dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1350"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1350"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1352: check_logs "
at_fn_check_prepare_trace "ofproto.at:1352"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1352"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1352: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1352"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1352"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1352: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1352"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1352"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1352: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1352: wait failed" >&5

    $as_echo "ofproto.at:1352" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1352"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1352: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1352"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1352"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1352: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1352"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1352"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1352: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1352: wait failed" >&5

    $as_echo "ofproto.at:1352" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1352"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_903
#AT_START_904
at_fn_group_banner 904 'ofproto.at:1355' \
  "ofproto - basic flow_mod commands (OpenFlow 1.0)" "" 51
at_xfail=no
(
  $as_echo "904. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1356: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1356"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1356"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1356: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1356"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1356"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1356: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1356"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1356"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1356: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1356"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1356"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1356: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1356"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1356"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1356: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1356"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1356"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1356: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1356"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1356"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1357: ovs-ofctl -F openflow10 dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1357"
( $at_check_trace; ovs-ofctl -F openflow10 dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1357"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1359: echo 'in_port=2,actions=1' | ovs-ofctl -F openflow10 add-flows br0 -"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1359"
( $at_check_trace; echo 'in_port=2,actions=1' | ovs-ofctl -F openflow10 add-flows br0 -
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1359"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1360: ovs-ofctl -F openflow10 add-flow br0 in_port=1,actions=2"
at_fn_check_prepare_trace "ofproto.at:1360"
( $at_check_trace; ovs-ofctl -F openflow10 add-flow br0 in_port=1,actions=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1360"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1361: ovs-ofctl -F openflow10 add-flow br0 table=1,in_port=4,actions=3"
at_fn_check_prepare_trace "ofproto.at:1361"
( $at_check_trace; ovs-ofctl -F openflow10 add-flow br0 table=1,in_port=4,actions=3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1361"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1362: ovs-ofctl -F openflow10 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1362"
( $at_check_trace; ovs-ofctl -F openflow10 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " in_port=1 actions=output:2
 in_port=2 actions=output:1
 table=1, in_port=4 actions=output:3
OFPST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1362"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1368: ovs-ofctl -F openflow10 dump-aggregate br0 table=0 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1368"
( $at_check_trace; ovs-ofctl -F openflow10 dump-aggregate br0 table=0 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_AGGREGATE reply: packet_count=0 byte_count=0 flow_count=2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1368"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1371: ovs-ofctl -F openflow10 del-flows br0"
at_fn_check_prepare_trace "ofproto.at:1371"
( $at_check_trace; ovs-ofctl -F openflow10 del-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1371"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1372: ovs-ofctl -F openflow10 dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1372"
( $at_check_trace; ovs-ofctl -F openflow10 dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1372"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1374: check_logs "
at_fn_check_prepare_trace "ofproto.at:1374"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1374"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1374: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1374"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1374"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1374: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1374"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1374"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1374: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1374: wait failed" >&5

    $as_echo "ofproto.at:1374" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1374"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1374: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1374"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1374"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1374: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1374"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1374"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1374: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1374: wait failed" >&5

    $as_echo "ofproto.at:1374" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1374"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_904
#AT_START_905
at_fn_group_banner 905 'ofproto.at:1380' \
  "ofproto - add-flow and flags" "                   " 51
at_xfail=no
(
  $as_echo "905. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1381: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1381"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1381"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1381: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1381"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1381"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1381: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1381"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1381"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1381: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1381"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1381"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1381: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1381"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1381"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1381: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1381"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1381"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1381: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1381"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1381"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1382: ovs-ofctl -F openflow10 add-flow br0 check_overlap,in_port=1,actions=drop"
at_fn_check_prepare_trace "ofproto.at:1382"
( $at_check_trace; ovs-ofctl -F openflow10 add-flow br0 check_overlap,in_port=1,actions=drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1382"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Prior to OF1.3, flow dumps didn't include a "flags" field.
{ set +x
$as_echo "$at_srcdir/ofproto.at:1384: ovs-ofctl -F openflow10 dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1384"
( $at_check_trace; ovs-ofctl -F openflow10 dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW reply:
 in_port=1 actions=drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1384"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1388: ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1388"
( $at_check_trace; ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW reply (OF1.1):
 in_port=1 actions=drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1388"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1392: ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1392"
( $at_check_trace; ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW reply (OF1.2):
 in_port=1 actions=drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1392"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# OF1.3 makes the flags visible.
{ set +x
$as_echo "$at_srcdir/ofproto.at:1397: ovs-ofctl -O OpenFlow13 dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1397"
( $at_check_trace; ovs-ofctl -O OpenFlow13 dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW reply (OF1.3):
 check_overlap reset_counts in_port=1 actions=drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1397"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1401: ovs-ofctl -O OpenFlow14 dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1401"
( $at_check_trace; ovs-ofctl -O OpenFlow14 dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW reply (OF1.4):
 check_overlap reset_counts in_port=1 actions=drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1401"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1405: ovs-ofctl -O OpenFlow15 dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1405"
( $at_check_trace; ovs-ofctl -O OpenFlow15 dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW reply (OF1.5):
 check_overlap reset_counts in_port=1 actions=drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1405"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1409: check_logs "
at_fn_check_prepare_trace "ofproto.at:1409"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1409"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1409: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1409"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1409"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1409: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1409"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1409"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1409: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1409: wait failed" >&5

    $as_echo "ofproto.at:1409" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1409"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1409: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1409"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1409"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1409: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1409"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1409"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1409: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1409: wait failed" >&5

    $as_echo "ofproto.at:1409" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1409"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_905
#AT_START_906
at_fn_group_banner 906 'ofproto.at:1412' \
  "ofproto - basic flow_mod commands (OpenFlow 1.1)" "" 51
at_xfail=no
(
  $as_echo "906. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1413: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1413"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1413"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1413: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1413"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1413"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1413: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1413"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1413"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1413: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1413"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1413"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1413: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1413"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1413"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1413: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1413"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1413"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1413: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1413"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1413"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1414: ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1414"
( $at_check_trace; ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW reply (OF1.1):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1414"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1416: echo 'in_port=2,actions=1' | ovs-ofctl -O OpenFlow11 add-flows br0 -"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1416"
( $at_check_trace; echo 'in_port=2,actions=1' | ovs-ofctl -O OpenFlow11 add-flows br0 -
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1416"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1417: ovs-ofctl -O OpenFlow11 add-flow br0 in_port=1,actions=2"
at_fn_check_prepare_trace "ofproto.at:1417"
( $at_check_trace; ovs-ofctl -O OpenFlow11 add-flow br0 in_port=1,actions=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1417"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1418: ovs-ofctl -O OpenFlow11 add-flow br0 table=1,in_port=4,actions=3"
at_fn_check_prepare_trace "ofproto.at:1418"
( $at_check_trace; ovs-ofctl -O OpenFlow11 add-flow br0 table=1,in_port=4,actions=3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1418"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1419: ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1419"
( $at_check_trace; ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " in_port=1 actions=output:2
 in_port=2 actions=output:1
 table=1, in_port=4 actions=output:3
OFPST_FLOW reply (OF1.1):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1419"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1425: ovs-ofctl -O OpenFlow11 dump-aggregate br0 table=0 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1425"
( $at_check_trace; ovs-ofctl -O OpenFlow11 dump-aggregate br0 table=0 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_AGGREGATE reply (OF1.1): packet_count=0 byte_count=0 flow_count=2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1425"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1428: ovs-ofctl -O OpenFlow11 del-flows br0"
at_fn_check_prepare_trace "ofproto.at:1428"
( $at_check_trace; ovs-ofctl -O OpenFlow11 del-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1428"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1429: ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1429"
( $at_check_trace; ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW reply (OF1.1):
 table=1, in_port=4 actions=output:3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1429"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1432: check_logs "
at_fn_check_prepare_trace "ofproto.at:1432"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1432"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1432: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1432"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1432"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1432: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1432"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1432"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1432: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1432: wait failed" >&5

    $as_echo "ofproto.at:1432" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1432"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1432: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1432"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1432"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1432: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1432"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1432"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1432: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1432: wait failed" >&5

    $as_echo "ofproto.at:1432" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1432"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_906
#AT_START_907
at_fn_group_banner 907 'ofproto.at:1435' \
  "ofproto - flow_mod negative test (OpenFlow 1.1)" "" 51
at_xfail=no
(
  $as_echo "907. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1436: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1436"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1436"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1436: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1436"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1436"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1436: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1436"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1436"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1436: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1436"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1436"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1436: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1436"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1436"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1436: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1436"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1436"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1436: add_of_br 0 set bridge br0 protocols=OpenFlow10,OpenFlow11,OpenFlow12,OpenFlow13 "
at_fn_check_prepare_trace "ofproto.at:1436"
( $at_check_trace; add_of_br 0 set bridge br0 protocols=OpenFlow10,OpenFlow11,OpenFlow12,OpenFlow13
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1436"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1438: ovs-ofctl add-flow -O OpenFlow11 br0 table=1,action=goto_table:2"
at_fn_check_prepare_trace "ofproto.at:1438"
( $at_check_trace; ovs-ofctl add-flow -O OpenFlow11 br0 table=1,action=goto_table:2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1438"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# The error message here actually comes from ovs-ofctl, not from ovs-vswitchd,
# but at least it's the same code in ofpacts_check() that issues the error.
{ set +x
$as_echo "$at_srcdir/ofproto.at:1442: ovs-ofctl add-flow -O OpenFlow11 br0 table=1,action=goto_table:1"
at_fn_check_prepare_trace "ofproto.at:1442"
( $at_check_trace; ovs-ofctl add-flow -O OpenFlow11 br0 table=1,action=goto_table:1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: actions are invalid with specified match (OFPBIC_BAD_TABLE_ID)
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:1442"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1446: check_logs "
at_fn_check_prepare_trace "ofproto.at:1446"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1446"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1446: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1446"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1446"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1446: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1446"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1446"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1446: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1446: wait failed" >&5

    $as_echo "ofproto.at:1446" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1446"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1446: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1446"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1446"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1446: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1446"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1446"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1446: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1446: wait failed" >&5

    $as_echo "ofproto.at:1446" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1446"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_907
#AT_START_908
at_fn_group_banner 908 'ofproto.at:1449' \
  "ofproto - set-field flow_mod commands (NXM)" "    " 51
at_xfail=no
(
  $as_echo "908. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1450: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1450"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1450"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1450: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1450"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1450"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1450: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1450"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1450"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1450: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1450"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1450"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1450: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1450"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1450"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1450: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1450"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1450"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1450: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1450"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1450"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1451: ovs-ofctl add-flow br0 ipv6,table=1,in_port=3,actions=drop"
at_fn_check_prepare_trace "ofproto.at:1451"
( $at_check_trace; ovs-ofctl add-flow br0 ipv6,table=1,in_port=3,actions=drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1451"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1452: ovs-ofctl add-flow br0 ipv6,table=1,in_port=3,actions=set_field:fe80:0123:4567:890a:a6ba:dbff:fefe:59fa-\\>ipv6_src"
at_fn_check_prepare_trace "ofproto.at:1452"
( $at_check_trace; ovs-ofctl add-flow br0 ipv6,table=1,in_port=3,actions=set_field:fe80:0123:4567:890a:a6ba:dbff:fefe:59fa-\>ipv6_src
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1452"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1453: ovs-ofctl add-flow br0 icmp6,icmp_type=136,table=1,in_port=3,actions=set_field:fe80:8675:3097:890a:a6ba:dbff:f00d:59fa-\\>nd_target,set_field:cc:dd:ee:ff:00:11-\\>nd_tll"
at_fn_check_prepare_trace "ofproto.at:1453"
( $at_check_trace; ovs-ofctl add-flow br0 icmp6,icmp_type=136,table=1,in_port=3,actions=set_field:fe80:8675:3097:890a:a6ba:dbff:f00d:59fa-\>nd_target,set_field:cc:dd:ee:ff:00:11-\>nd_tll
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1453"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1454: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1454"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " table=1, icmp6,in_port=3,icmp_type=136 actions=load:0xa6badbfff00d59fa->NXM_NX_ND_TARGET[0..63],load:0xfe8086753097890a->NXM_NX_ND_TARGET[64..127],load:0xccddeeff0011->NXM_NX_ND_TLL[]
 table=1, ipv6,in_port=3 actions=load:0xa6badbfffefe59fa->NXM_NX_IPV6_SRC[0..63],load:0xfe8001234567890a->NXM_NX_IPV6_SRC[64..127]
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1454"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1459: check_logs "
at_fn_check_prepare_trace "ofproto.at:1459"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1459"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1459: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1459"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1459"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1459: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1459"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1459"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1459: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1459: wait failed" >&5

    $as_echo "ofproto.at:1459" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1459"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1459: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1459"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1459"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1459: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1459"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1459"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1459: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1459: wait failed" >&5

    $as_echo "ofproto.at:1459" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1459"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_908
#AT_START_909
at_fn_group_banner 909 'ofproto.at:1462' \
  "ofproto - basic flow_mod commands (OpenFlow 1.2)" "" 51
at_xfail=no
(
  $as_echo "909. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1463: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1463"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1463"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1463: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1463"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1463"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1463: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1463"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1463"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1463: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1463"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1463"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1463: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1463"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1463"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1463: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1463"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1463"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1463: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1463"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1463"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1464: ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1464"
( $at_check_trace; ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1464"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1466: echo 'in_port=2,actions=1' | ovs-ofctl -O OpenFlow12 add-flows br0 -"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1466"
( $at_check_trace; echo 'in_port=2,actions=1' | ovs-ofctl -O OpenFlow12 add-flows br0 -
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1466"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1467: ovs-ofctl -O OpenFlow12 add-flow br0 in_port=1,actions=2"
at_fn_check_prepare_trace "ofproto.at:1467"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 in_port=1,actions=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1467"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1468: ovs-ofctl -O OpenFlow12 add-flow br0 table=1,in_port=4,actions=3"
at_fn_check_prepare_trace "ofproto.at:1468"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 table=1,in_port=4,actions=3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1468"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1469: ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1469"
( $at_check_trace; ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " in_port=1 actions=output:2
 in_port=2 actions=output:1
 table=1, in_port=4 actions=output:3
OFPST_FLOW reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1469"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1475: ovs-ofctl -O OpenFlow12 del-flows br0"
at_fn_check_prepare_trace "ofproto.at:1475"
( $at_check_trace; ovs-ofctl -O OpenFlow12 del-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1475"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1476: ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1476"
( $at_check_trace; ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1476"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1478: check_logs "
at_fn_check_prepare_trace "ofproto.at:1478"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1478"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1478: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1478"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1478"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1478: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1478"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1478"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1478: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1478: wait failed" >&5

    $as_echo "ofproto.at:1478" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1478"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1478: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1478"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1478"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1478: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1478"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1478"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1478: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1478: wait failed" >&5

    $as_echo "ofproto.at:1478" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1478"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_909
#AT_START_910
at_fn_group_banner 910 'ofproto.at:1481' \
  "ofproto - set-field flow_mod commands (OF1.2)" "  " 51
at_xfail=no
(
  $as_echo "910. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1482: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1482"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1482"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1482: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1482"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1482"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1482: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1482"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1482"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1482: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1482"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1482"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1482: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1482"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1482"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1482: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1482"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1482"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1482: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1482"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1482"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1483: ovs-ofctl -O OpenFlow12 add-flow br0 ipv6,table=1,in_port=3,actions=drop"
at_fn_check_prepare_trace "ofproto.at:1483"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 ipv6,table=1,in_port=3,actions=drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1483"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1484: ovs-ofctl -O OpenFlow12 add-flow br0 ipv6,table=1,in_port=3,actions=set_field:fe80:0123:4567:890a:a6ba:dbff:fefe:59fa-\\>ipv6_src"
at_fn_check_prepare_trace "ofproto.at:1484"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 ipv6,table=1,in_port=3,actions=set_field:fe80:0123:4567:890a:a6ba:dbff:fefe:59fa-\>ipv6_src
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1484"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1485: ovs-ofctl -O OpenFlow12 add-flow br0 icmp6,icmp_type=136,table=1,in_port=3,actions=set_field:fe80:8675:3097:890a:a6ba:dbff:f00d:59fa-\\>nd_target,set_field:cc:dd:ee:ff:00:11-\\>nd_tll"
at_fn_check_prepare_trace "ofproto.at:1485"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 icmp6,icmp_type=136,table=1,in_port=3,actions=set_field:fe80:8675:3097:890a:a6ba:dbff:f00d:59fa-\>nd_target,set_field:cc:dd:ee:ff:00:11-\>nd_tll
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1485"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1486: ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1486"
( $at_check_trace; ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " table=1, icmp6,in_port=3,icmp_type=136 actions=set_field:fe80:8675:3097:890a:a6ba:dbff:f00d:59fa->nd_target,set_field:cc:dd:ee:ff:00:11->nd_tll
 table=1, ipv6,in_port=3 actions=set_field:fe80:123:4567:890a:a6ba:dbff:fefe:59fa->ipv6_src
OFPST_FLOW reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1486"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1491: check_logs "
at_fn_check_prepare_trace "ofproto.at:1491"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1491"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1491: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1491"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1491"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1491: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1491"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1491"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1491: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1491: wait failed" >&5

    $as_echo "ofproto.at:1491" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1491"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1491: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1491"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1491"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1491: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1491"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1491"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1491: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1491: wait failed" >&5

    $as_echo "ofproto.at:1491" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1491"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_910
#AT_START_911
at_fn_group_banner 911 'ofproto.at:1494' \
  "ofproto - dump flows with cookie" "               " 51
at_xfail=no
(
  $as_echo "911. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1495: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1495"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1495"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1495: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1495"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1495"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1495: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1495"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1495"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1495: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1495"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1495"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1495: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1495"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1495"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1495: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1495"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1495"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1495: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1495"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1495"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1496: ovs-ofctl add-flow br0 cookie=0x1,in_port=1,actions=1"
at_fn_check_prepare_trace "ofproto.at:1496"
( $at_check_trace; ovs-ofctl add-flow br0 cookie=0x1,in_port=1,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1496"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1497: ovs-ofctl add-flow br0 cookie=0x2,in_port=2,actions=1"
at_fn_check_prepare_trace "ofproto.at:1497"
( $at_check_trace; ovs-ofctl add-flow br0 cookie=0x2,in_port=2,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1497"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1498: ovs-ofctl add-flow br0 cookie=0x3,in_port=3,actions=1"
at_fn_check_prepare_trace "ofproto.at:1498"
( $at_check_trace; ovs-ofctl add-flow br0 cookie=0x3,in_port=3,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1498"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1499: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1499"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x1, in_port=1 actions=output:1
 cookie=0x2, in_port=2 actions=output:1
 cookie=0x3, in_port=3 actions=output:1
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1499"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1505: ovs-ofctl dump-aggregate br0 table=0 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1505"
( $at_check_trace; ovs-ofctl dump-aggregate br0 table=0 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_AGGREGATE reply: packet_count=0 byte_count=0 flow_count=3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1505"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1508: ovs-ofctl dump-flows br0 cookie=0x3/-1 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1508"
( $at_check_trace; ovs-ofctl dump-flows br0 cookie=0x3/-1 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x3, in_port=3 actions=output:1
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1508"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1512: ovs-ofctl dump-aggregate br0 cookie=0x3/-1 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1512"
( $at_check_trace; ovs-ofctl dump-aggregate br0 cookie=0x3/-1 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_AGGREGATE reply: packet_count=0 byte_count=0 flow_count=1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1512"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1515: check_logs "
at_fn_check_prepare_trace "ofproto.at:1515"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1515"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1515: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1515"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1515"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1515: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1515"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1515"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1515: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1515: wait failed" >&5

    $as_echo "ofproto.at:1515" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1515"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1515: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1515"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1515"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1515: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1515"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1515"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1515: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1515: wait failed" >&5

    $as_echo "ofproto.at:1515" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1515"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_911
#AT_START_912
at_fn_group_banner 912 'ofproto.at:1518' \
  "ofproto - mod flow with cookie change (OpenFlow 1.0)" "" 51
at_xfail=no
(
  $as_echo "912. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1519: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1519"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1519"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1519: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1519"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1519"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1519: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1519"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1519"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1519: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1519"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1519"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1519: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1519"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1519"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1519: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1519"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1519"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1519: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1519"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1519"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1520: ovs-ofctl -F openflow10 add-flow br0 cookie=0x1,in_port=1,actions=1"
at_fn_check_prepare_trace "ofproto.at:1520"
( $at_check_trace; ovs-ofctl -F openflow10 add-flow br0 cookie=0x1,in_port=1,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1520"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1521: ovs-ofctl -F openflow10 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1521"
( $at_check_trace; ovs-ofctl -F openflow10 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x1, in_port=1 actions=output:1
OFPST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1521"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1526: ovs-ofctl -F openflow10 mod-flows br0 cookie=0x2,in_port=1,actions=1"
at_fn_check_prepare_trace "ofproto.at:1526"
( $at_check_trace; ovs-ofctl -F openflow10 mod-flows br0 cookie=0x2,in_port=1,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1526"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1527: ovs-ofctl -F openflow10 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1527"
( $at_check_trace; ovs-ofctl -F openflow10 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x2, in_port=1 actions=output:1
OFPST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1527"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1531: check_logs "
at_fn_check_prepare_trace "ofproto.at:1531"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1531"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1531: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1531"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1531"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1531: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1531"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1531"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1531: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1531: wait failed" >&5

    $as_echo "ofproto.at:1531" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1531"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1531: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1531"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1531"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1531: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1531"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1531"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1531: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1531: wait failed" >&5

    $as_echo "ofproto.at:1531" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1531"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_912
#AT_START_913
at_fn_group_banner 913 'ofproto.at:1534' \
  "ofproto - mod flow with cookie change (NXM)" "    " 51
at_xfail=no
(
  $as_echo "913. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1535: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1535"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1535"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1535: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1535"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1535"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1535: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1535"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1535"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1535: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1535"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1535"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1535: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1535"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1535"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1535: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1535"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1535"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1535: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1535"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1535"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1536: ovs-ofctl -F nxm add-flow br0 cookie=0x1,in_port=1,actions=1"
at_fn_check_prepare_trace "ofproto.at:1536"
( $at_check_trace; ovs-ofctl -F nxm add-flow br0 cookie=0x1,in_port=1,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1536"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1537: ovs-ofctl -F nxm dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1537"
( $at_check_trace; ovs-ofctl -F nxm dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x1, in_port=1 actions=output:1
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1537"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1542: ovs-ofctl -F nxm mod-flows br0 cookie=0x2,in_port=1,actions=1"
at_fn_check_prepare_trace "ofproto.at:1542"
( $at_check_trace; ovs-ofctl -F nxm mod-flows br0 cookie=0x2,in_port=1,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1542"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1543: ovs-ofctl -F nxm dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1543"
( $at_check_trace; ovs-ofctl -F nxm dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x2, in_port=1 actions=output:1
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1543"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1547: check_logs "
at_fn_check_prepare_trace "ofproto.at:1547"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1547"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1547: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1547"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1547"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1547: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1547"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1547"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1547: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1547: wait failed" >&5

    $as_echo "ofproto.at:1547" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1547"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1547: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1547"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1547"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1547: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1547"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1547"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1547: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1547: wait failed" >&5

    $as_echo "ofproto.at:1547" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1547"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_913
#AT_START_914
at_fn_group_banner 914 'ofproto.at:1550' \
  "ofproto - no mod flow with cookie change (OpenFlow 1.1)" "" 51
at_xfail=no
(
  $as_echo "914. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1551: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1551"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1551"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1551: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1551"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1551"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1551: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1551"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1551"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1551: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1551"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1551"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1551: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1551"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1551"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1551: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1551"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1551"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1551: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1551"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1551"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1552: ovs-ofctl -O OpenFlow11 add-flow br0 cookie=0x1,in_port=1,actions=1"
at_fn_check_prepare_trace "ofproto.at:1552"
( $at_check_trace; ovs-ofctl -O OpenFlow11 add-flow br0 cookie=0x1,in_port=1,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1552"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1553: ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1553"
( $at_check_trace; ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x1, in_port=1 actions=output:1
OFPST_FLOW reply (OF1.1):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1553"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1557: ovs-ofctl -O OpenFlow11 mod-flows br0 cookie=0x2,in_port=1,actions=1"
at_fn_check_prepare_trace "ofproto.at:1557"
( $at_check_trace; ovs-ofctl -O OpenFlow11 mod-flows br0 cookie=0x2,in_port=1,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1557"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1558: ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1558"
( $at_check_trace; ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x1, in_port=1 actions=output:1
OFPST_FLOW reply (OF1.1):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1558"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1562: check_logs "
at_fn_check_prepare_trace "ofproto.at:1562"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1562"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1562: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1562"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1562"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1562: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1562"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1562"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1562: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1562: wait failed" >&5

    $as_echo "ofproto.at:1562" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1562"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1562: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1562"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1562"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1562: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1562"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1562"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1562: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1562: wait failed" >&5

    $as_echo "ofproto.at:1562" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1562"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_914
#AT_START_915
at_fn_group_banner 915 'ofproto.at:1566' \
  "ofproto - no mod flow with cookie change (OpenFlow 1.2)" "" 51
at_xfail=no
(
  $as_echo "915. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1567: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1567"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1567"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1567: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1567"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1567"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1567: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1567"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1567"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1567: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1567"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1567"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1567: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1567"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1567"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1567: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1567"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1567"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1567: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1567"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1567"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1568: ovs-ofctl -O OpenFlow12 add-flow br0 cookie=0x1,in_port=1,actions=1"
at_fn_check_prepare_trace "ofproto.at:1568"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 cookie=0x1,in_port=1,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1568"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1569: ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1569"
( $at_check_trace; ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x1, in_port=1 actions=output:1
OFPST_FLOW reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1569"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1574: ovs-ofctl -O OpenFlow12 mod-flows br0 cookie=0x2,in_port=1,actions=1"
at_fn_check_prepare_trace "ofproto.at:1574"
( $at_check_trace; ovs-ofctl -O OpenFlow12 mod-flows br0 cookie=0x2,in_port=1,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1574"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1575: ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1575"
( $at_check_trace; ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x1, in_port=1 actions=output:1
OFPST_FLOW reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1575"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1579: check_logs "
at_fn_check_prepare_trace "ofproto.at:1579"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1579"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1579: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1579"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1579"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1579: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1579"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1579"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1579: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1579: wait failed" >&5

    $as_echo "ofproto.at:1579" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1579"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1579: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1579"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1579"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1579: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1579"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1579"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1579: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1579: wait failed" >&5

    $as_echo "ofproto.at:1579" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1579"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_915
#AT_START_916
at_fn_group_banner 916 'ofproto.at:1582' \
  "ofproto - mod flows based on cookie mask (OpenFlow 1.0)" "" 51
at_xfail=no
(
  $as_echo "916. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1583: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1583"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1583"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1583: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1583"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1583"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1583: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1583"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1583"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1583: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1583"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1583"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1583: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1583"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1583"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1583: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1583"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1583"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1583: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1583"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1583"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1584: ovs-ofctl add-flow br0 cookie=0x1,in_port=1,actions=1"
at_fn_check_prepare_trace "ofproto.at:1584"
( $at_check_trace; ovs-ofctl add-flow br0 cookie=0x1,in_port=1,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1584"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1585: ovs-ofctl add-flow br0 cookie=0x1,in_port=2,actions=1"
at_fn_check_prepare_trace "ofproto.at:1585"
( $at_check_trace; ovs-ofctl add-flow br0 cookie=0x1,in_port=2,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1585"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1586: ovs-ofctl add-flow br0 cookie=0x2,in_port=3,actions=1"
at_fn_check_prepare_trace "ofproto.at:1586"
( $at_check_trace; ovs-ofctl add-flow br0 cookie=0x2,in_port=3,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1586"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1587: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1587"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x1, in_port=1 actions=output:1
 cookie=0x1, in_port=2 actions=output:1
 cookie=0x2, in_port=3 actions=output:1
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1587"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1594: ovs-ofctl -F nxm mod-flows br0 cookie=0x1/0xff,actions=4"
at_fn_check_prepare_trace "ofproto.at:1594"
( $at_check_trace; ovs-ofctl -F nxm mod-flows br0 cookie=0x1/0xff,actions=4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1594"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1595: ovs-ofctl -F nxm dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1595"
( $at_check_trace; ovs-ofctl -F nxm dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x1, in_port=1 actions=output:4
 cookie=0x1, in_port=2 actions=output:4
 cookie=0x2, in_port=3 actions=output:1
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1595"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1601: check_logs "
at_fn_check_prepare_trace "ofproto.at:1601"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1601"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1601: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1601"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1601"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1601: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1601"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1601"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1601: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1601: wait failed" >&5

    $as_echo "ofproto.at:1601" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1601"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1601: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1601"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1601"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1601: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1601"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1601"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1601: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1601: wait failed" >&5

    $as_echo "ofproto.at:1601" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1601"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_916
#AT_START_917
at_fn_group_banner 917 'ofproto.at:1604' \
  "ofproto - mod flows based on cookie mask (OpenFlow 1.1)" "" 51
at_xfail=no
(
  $as_echo "917. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1605: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1605"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1605"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1605: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1605"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1605"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1605: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1605"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1605"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1605: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1605"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1605"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1605: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1605"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1605"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1605: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1605"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1605"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1605: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1605"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1605"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1606: ovs-ofctl -O OpenFlow11 add-flow br0 cookie=0x1,in_port=1,actions=1"
at_fn_check_prepare_trace "ofproto.at:1606"
( $at_check_trace; ovs-ofctl -O OpenFlow11 add-flow br0 cookie=0x1,in_port=1,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1606"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1607: ovs-ofctl -O OpenFlow11 add-flow br0 cookie=0x1,in_port=2,actions=1"
at_fn_check_prepare_trace "ofproto.at:1607"
( $at_check_trace; ovs-ofctl -O OpenFlow11 add-flow br0 cookie=0x1,in_port=2,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1607"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1608: ovs-ofctl -O OpenFlow11 add-flow br0 cookie=0x2,in_port=3,actions=1"
at_fn_check_prepare_trace "ofproto.at:1608"
( $at_check_trace; ovs-ofctl -O OpenFlow11 add-flow br0 cookie=0x2,in_port=3,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1608"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1609: ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1609"
( $at_check_trace; ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x1, in_port=1 actions=output:1
 cookie=0x1, in_port=2 actions=output:1
 cookie=0x2, in_port=3 actions=output:1
OFPST_FLOW reply (OF1.1):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1609"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1616: ovs-ofctl -O OpenFlow11 mod-flows br0 cookie=0x1/0xff,actions=4"
at_fn_check_prepare_trace "ofproto.at:1616"
( $at_check_trace; ovs-ofctl -O OpenFlow11 mod-flows br0 cookie=0x1/0xff,actions=4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1616"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1617: ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1617"
( $at_check_trace; ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x1, in_port=1 actions=output:4
 cookie=0x1, in_port=2 actions=output:4
 cookie=0x2, in_port=3 actions=output:1
OFPST_FLOW reply (OF1.1):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1617"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1623: check_logs "
at_fn_check_prepare_trace "ofproto.at:1623"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1623"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1623: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1623"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1623"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1623: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1623"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1623"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1623: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1623: wait failed" >&5

    $as_echo "ofproto.at:1623" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1623"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1623: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1623"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1623"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1623: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1623"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1623"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1623: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1623: wait failed" >&5

    $as_echo "ofproto.at:1623" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1623"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_917
#AT_START_918
at_fn_group_banner 918 'ofproto.at:1626' \
  "ofproto - mod flows based on cookie mask (OpenFlow 1.2)" "" 51
at_xfail=no
(
  $as_echo "918. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1627: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1627"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1627"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1627: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1627"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1627"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1627: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1627"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1627"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1627: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1627"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1627"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1627: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1627"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1627"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1627: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1627"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1627"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1627: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1627"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1627"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1628: ovs-ofctl -O OpenFlow12 add-flow br0 cookie=0x1,in_port=1,actions=1"
at_fn_check_prepare_trace "ofproto.at:1628"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 cookie=0x1,in_port=1,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1628"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1629: ovs-ofctl -O OpenFlow12 add-flow br0 cookie=0x1,in_port=2,actions=1"
at_fn_check_prepare_trace "ofproto.at:1629"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 cookie=0x1,in_port=2,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1629"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1630: ovs-ofctl -O OpenFlow12 add-flow br0 cookie=0x2,in_port=3,actions=1"
at_fn_check_prepare_trace "ofproto.at:1630"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 cookie=0x2,in_port=3,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1630"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1631: ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1631"
( $at_check_trace; ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x1, in_port=1 actions=output:1
 cookie=0x1, in_port=2 actions=output:1
 cookie=0x2, in_port=3 actions=output:1
OFPST_FLOW reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1631"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1638: ovs-ofctl -O OpenFlow12 mod-flows br0 cookie=0x1/0xff,actions=4"
at_fn_check_prepare_trace "ofproto.at:1638"
( $at_check_trace; ovs-ofctl -O OpenFlow12 mod-flows br0 cookie=0x1/0xff,actions=4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1638"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1639: ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1639"
( $at_check_trace; ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x1, in_port=1 actions=output:4
 cookie=0x1, in_port=2 actions=output:4
 cookie=0x2, in_port=3 actions=output:1
OFPST_FLOW reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1639"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1645: check_logs "
at_fn_check_prepare_trace "ofproto.at:1645"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1645"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1645: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1645"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1645"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1645: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1645"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1645"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1645: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1645: wait failed" >&5

    $as_echo "ofproto.at:1645" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1645"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1645: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1645"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1645"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1645: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1645"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1645"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1645: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1645: wait failed" >&5

    $as_echo "ofproto.at:1645" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1645"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_918
#AT_START_919
at_fn_group_banner 919 'ofproto.at:1649' \
  "ofproto - mod flows based on cookie mask with cookie change" "" 51
at_xfail=no
(
  $as_echo "919. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1650: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1650"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1650"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1650: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1650"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1650"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1650: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1650"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1650"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1650: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1650"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1650"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1650: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1650"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1650"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1650: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1650"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1650"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1650: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1650"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1650"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1651: ovs-ofctl add-flow br0 cookie=0x1,in_port=1,actions=1"
at_fn_check_prepare_trace "ofproto.at:1651"
( $at_check_trace; ovs-ofctl add-flow br0 cookie=0x1,in_port=1,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1651"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1652: ovs-ofctl add-flow br0 cookie=0x1,in_port=2,actions=1"
at_fn_check_prepare_trace "ofproto.at:1652"
( $at_check_trace; ovs-ofctl add-flow br0 cookie=0x1,in_port=2,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1652"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1653: ovs-ofctl add-flow br0 cookie=0x2,in_port=3,actions=1"
at_fn_check_prepare_trace "ofproto.at:1653"
( $at_check_trace; ovs-ofctl add-flow br0 cookie=0x2,in_port=3,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1653"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1654: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1654"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x1, in_port=1 actions=output:1
 cookie=0x1, in_port=2 actions=output:1
 cookie=0x2, in_port=3 actions=output:1
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1654"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1661: ovs-ofctl -F nxm mod-flows br0 cookie=1/-1,cookie=4,actions=4"
at_fn_check_prepare_trace "ofproto.at:1661"
( $at_check_trace; ovs-ofctl -F nxm mod-flows br0 cookie=1/-1,cookie=4,actions=4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1661"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1662: ovs-ofctl -F nxm dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1662"
( $at_check_trace; ovs-ofctl -F nxm dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x2, in_port=3 actions=output:1
 cookie=0x4, in_port=1 actions=output:4
 cookie=0x4, in_port=2 actions=output:4
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1662"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1668: check_logs "
at_fn_check_prepare_trace "ofproto.at:1668"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1668"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1668: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1668"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1668"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1668: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1668"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1668"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1668: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1668: wait failed" >&5

    $as_echo "ofproto.at:1668" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1668"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1668: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1668"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1668"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1668: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1668"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1668"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1668: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1668: wait failed" >&5

    $as_echo "ofproto.at:1668" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1668"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_919
#AT_START_920
at_fn_group_banner 920 'ofproto.at:1671' \
  "ofproto - mod flow with cookie miss (mask==0) - NXM" "" 51
at_xfail=no
(
  $as_echo "920. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1672: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1672"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1672"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1672: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1672"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1672"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1672: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1672"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1672"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1672: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1672"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1672"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1672: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1672"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1672"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1672: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1672"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1672"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1672: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1672"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1672"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1673: ovs-ofctl -F nxm mod-flows br0 in_port=1,actions=1"
at_fn_check_prepare_trace "ofproto.at:1673"
( $at_check_trace; ovs-ofctl -F nxm mod-flows br0 in_port=1,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1673"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1674: ovs-ofctl -F nxm dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1674"
( $at_check_trace; ovs-ofctl -F nxm dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " in_port=1 actions=output:1
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1674"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1678: check_logs "
at_fn_check_prepare_trace "ofproto.at:1678"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1678"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1678: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1678"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1678"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1678: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1678"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1678"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1678: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1678: wait failed" >&5

    $as_echo "ofproto.at:1678" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1678"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1678: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1678"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1678"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1678: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1678"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1678"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1678: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1678: wait failed" >&5

    $as_echo "ofproto.at:1678" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1678"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_920
#AT_START_921
at_fn_group_banner 921 'ofproto.at:1681' \
  "ofproto - mod flow with cookie miss (mask==0) - OF1.1" "" 51
at_xfail=no
(
  $as_echo "921. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1682: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1682"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1682"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1682: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1682"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1682"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1682: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1682"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1682"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1682: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1682"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1682"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1682: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1682"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1682"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1682: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1682"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1682"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1682: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1682"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1682"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1683: ovs-ofctl -O openflow11 mod-flows br0 in_port=1,actions=1"
at_fn_check_prepare_trace "ofproto.at:1683"
( $at_check_trace; ovs-ofctl -O openflow11 mod-flows br0 in_port=1,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1683"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1684: ovs-ofctl -O openflow11 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1684"
( $at_check_trace; ovs-ofctl -O openflow11 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " in_port=1 actions=output:1
OFPST_FLOW reply (OF1.1):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1684"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1688: check_logs "
at_fn_check_prepare_trace "ofproto.at:1688"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1688"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1688: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1688"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1688"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1688: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1688"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1688"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1688: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1688: wait failed" >&5

    $as_echo "ofproto.at:1688" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1688"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1688: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1688"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1688"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1688: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1688"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1688"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1688: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1688: wait failed" >&5

    $as_echo "ofproto.at:1688" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1688"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_921
#AT_START_922
at_fn_group_banner 922 'ofproto.at:1691' \
  "ofproto - mod flow with cookie miss (mask==0) - OF1.2" "" 51
at_xfail=no
(
  $as_echo "922. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1692: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1692"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1692"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1692: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1692"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1692"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1692: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1692"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1692"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1692: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1692"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1692"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1692: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1692"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1692"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1692: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1692"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1692"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1692: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1692"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1692"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1693: ovs-ofctl -O openflow12 mod-flows br0 in_port=1,actions=1"
at_fn_check_prepare_trace "ofproto.at:1693"
( $at_check_trace; ovs-ofctl -O openflow12 mod-flows br0 in_port=1,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1693"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1694: ovs-ofctl -O openflow12 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1694"
( $at_check_trace; ovs-ofctl -O openflow12 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1694"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1697: check_logs "
at_fn_check_prepare_trace "ofproto.at:1697"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1697"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1697: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1697"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1697"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1697: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1697"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1697"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1697: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1697: wait failed" >&5

    $as_echo "ofproto.at:1697" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1697"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1697: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1697"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1697"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1697: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1697"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1697"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1697: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1697: wait failed" >&5

    $as_echo "ofproto.at:1697" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1697"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_922
#AT_START_923
at_fn_group_banner 923 'ofproto.at:1700' \
  "ofproto - mod flow with cookie miss (mask!=0) - NXM" "" 51
at_xfail=no
(
  $as_echo "923. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1701: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1701"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1701"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1701: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1701"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1701"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1701: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1701"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1701"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1701: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1701"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1701"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1701: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1701"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1701"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1701: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1701"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1701"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1701: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1701"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1701"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1702: ovs-ofctl -F nxm mod-flows br0 cookie=1/1,in_port=1,actions=1"
at_fn_check_prepare_trace "ofproto.at:1702"
( $at_check_trace; ovs-ofctl -F nxm mod-flows br0 cookie=1/1,in_port=1,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1702"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1703: ovs-ofctl -F nxm dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1703"
( $at_check_trace; ovs-ofctl -F nxm dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1703"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1706: check_logs "
at_fn_check_prepare_trace "ofproto.at:1706"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1706"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1706: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1706"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1706"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1706: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1706"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1706"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1706: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1706: wait failed" >&5

    $as_echo "ofproto.at:1706" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1706"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1706: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1706"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1706"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1706: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1706"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1706"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1706: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1706: wait failed" >&5

    $as_echo "ofproto.at:1706" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1706"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_923
#AT_START_924
at_fn_group_banner 924 'ofproto.at:1709' \
  "ofproto - mod flow with cookie miss (mask!=0) - OF1.1" "" 51
at_xfail=no
(
  $as_echo "924. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1710: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1710"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1710"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1710: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1710"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1710"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1710: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1710"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1710"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1710: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1710"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1710"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1710: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1710"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1710"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1710: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1710"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1710"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1710: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1710"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1710"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1711: ovs-ofctl -O openflow11 mod-flows br0 cookie=1/1,in_port=1,actions=1"
at_fn_check_prepare_trace "ofproto.at:1711"
( $at_check_trace; ovs-ofctl -O openflow11 mod-flows br0 cookie=1/1,in_port=1,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1711"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1712: ovs-ofctl -O openflow11 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1712"
( $at_check_trace; ovs-ofctl -O openflow11 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW reply (OF1.1):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1712"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1715: check_logs "
at_fn_check_prepare_trace "ofproto.at:1715"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1715"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1715: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1715"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1715"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1715: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1715"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1715"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1715: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1715: wait failed" >&5

    $as_echo "ofproto.at:1715" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1715"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1715: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1715"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1715"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1715: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1715"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1715"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1715: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1715: wait failed" >&5

    $as_echo "ofproto.at:1715" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1715"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_924
#AT_START_925
at_fn_group_banner 925 'ofproto.at:1718' \
  "ofproto - mod flow with cookie miss (mask!=0) - OF1.2" "" 51
at_xfail=no
(
  $as_echo "925. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1719: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1719"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1719"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1719: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1719"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1719"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1719: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1719"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1719"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1719: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1719"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1719"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1719: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1719"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1719"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1719: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1719"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1719"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1719: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1719"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1719"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1720: ovs-ofctl -O openflow12 mod-flows br0 cookie=1/1,in_port=1,actions=1"
at_fn_check_prepare_trace "ofproto.at:1720"
( $at_check_trace; ovs-ofctl -O openflow12 mod-flows br0 cookie=1/1,in_port=1,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1720"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1721: ovs-ofctl -O openflow12 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1721"
( $at_check_trace; ovs-ofctl -O openflow12 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1721"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1724: check_logs "
at_fn_check_prepare_trace "ofproto.at:1724"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1724"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1724: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1724"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1724"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1724: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1724"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1724"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1724: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1724: wait failed" >&5

    $as_echo "ofproto.at:1724" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1724"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1724: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1724"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1724"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1724: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1724"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1724"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1724: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1724: wait failed" >&5

    $as_echo "ofproto.at:1724" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1724"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_925
#AT_START_926
at_fn_group_banner 926 'ofproto.at:1727' \
  "ofproto - del flows with cookies" "               " 51
at_xfail=no
(
  $as_echo "926. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1728: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1728"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1728"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1728: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1728"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1728"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1728: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1728"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1728"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1728: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1728"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1728"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1728: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1728"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1728"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1728: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1728"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1728"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1728: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1728"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1728"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1729: ovs-ofctl add-flow br0 cookie=0x1,in_port=1,actions=1"
at_fn_check_prepare_trace "ofproto.at:1729"
( $at_check_trace; ovs-ofctl add-flow br0 cookie=0x1,in_port=1,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1729"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1730: ovs-ofctl add-flow br0 cookie=0x2,in_port=2,actions=1"
at_fn_check_prepare_trace "ofproto.at:1730"
( $at_check_trace; ovs-ofctl add-flow br0 cookie=0x2,in_port=2,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1730"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1731: ovs-ofctl add-flow br0 cookie=0x3,in_port=3,actions=1"
at_fn_check_prepare_trace "ofproto.at:1731"
( $at_check_trace; ovs-ofctl add-flow br0 cookie=0x3,in_port=3,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1731"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1732: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1732"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x1, in_port=1 actions=output:1
 cookie=0x2, in_port=2 actions=output:1
 cookie=0x3, in_port=3 actions=output:1
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1732"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1739: ovs-ofctl del-flows br0"
at_fn_check_prepare_trace "ofproto.at:1739"
( $at_check_trace; ovs-ofctl del-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1739"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1740: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1740"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1740"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1743: check_logs "
at_fn_check_prepare_trace "ofproto.at:1743"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1743"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1743: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1743"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1743"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1743: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1743"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1743"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1743: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1743: wait failed" >&5

    $as_echo "ofproto.at:1743" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1743"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1743: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1743"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1743"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1743: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1743"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1743"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1743: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1743: wait failed" >&5

    $as_echo "ofproto.at:1743" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1743"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_926
#AT_START_927
at_fn_group_banner 927 'ofproto.at:1746' \
  "ofproto - del flows based on cookie" "            " 51
at_xfail=no
(
  $as_echo "927. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1747: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1747"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1747"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1747: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1747"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1747"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1747: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1747"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1747"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1747: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1747"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1747"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1747: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1747"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1747"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1747: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1747"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1747"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1747: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1747"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1747"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1748: ovs-ofctl add-flow br0 cookie=0x1,in_port=1,actions=1"
at_fn_check_prepare_trace "ofproto.at:1748"
( $at_check_trace; ovs-ofctl add-flow br0 cookie=0x1,in_port=1,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1748"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1749: ovs-ofctl add-flow br0 cookie=0x2,in_port=2,actions=1"
at_fn_check_prepare_trace "ofproto.at:1749"
( $at_check_trace; ovs-ofctl add-flow br0 cookie=0x2,in_port=2,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1749"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1750: ovs-ofctl add-flow br0 cookie=0x3,in_port=3,actions=1"
at_fn_check_prepare_trace "ofproto.at:1750"
( $at_check_trace; ovs-ofctl add-flow br0 cookie=0x3,in_port=3,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1750"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1751: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1751"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x1, in_port=1 actions=output:1
 cookie=0x2, in_port=2 actions=output:1
 cookie=0x3, in_port=3 actions=output:1
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1751"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1758: ovs-ofctl del-flows br0 cookie=0x3/-1"
at_fn_check_prepare_trace "ofproto.at:1758"
( $at_check_trace; ovs-ofctl del-flows br0 cookie=0x3/-1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1758"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1759: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1759"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x1, in_port=1 actions=output:1
 cookie=0x2, in_port=2 actions=output:1
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1759"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1764: check_logs "
at_fn_check_prepare_trace "ofproto.at:1764"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1764"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1764: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1764"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1764"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1764: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1764"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1764"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1764: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1764: wait failed" >&5

    $as_echo "ofproto.at:1764" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1764"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1764: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1764"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1764"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1764: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1764"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1764"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1764: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1764: wait failed" >&5

    $as_echo "ofproto.at:1764" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1764"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_927
#AT_START_928
at_fn_group_banner 928 'ofproto.at:1767' \
  "ofproto - del flows based on cookie mask" "       " 51
at_xfail=no
(
  $as_echo "928. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1768: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1768"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1768"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1768: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1768"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1768"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1768: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1768"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1768"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1768: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1768"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1768"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1768: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1768"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1768"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1768: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1768"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1768"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1768: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1768"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1768"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1769: ovs-ofctl add-flow br0 cookie=0x1,in_port=1,actions=1"
at_fn_check_prepare_trace "ofproto.at:1769"
( $at_check_trace; ovs-ofctl add-flow br0 cookie=0x1,in_port=1,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1769"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1770: ovs-ofctl add-flow br0 cookie=0x2,in_port=2,actions=1"
at_fn_check_prepare_trace "ofproto.at:1770"
( $at_check_trace; ovs-ofctl add-flow br0 cookie=0x2,in_port=2,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1770"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1771: ovs-ofctl add-flow br0 cookie=0x3,in_port=3,actions=1"
at_fn_check_prepare_trace "ofproto.at:1771"
( $at_check_trace; ovs-ofctl add-flow br0 cookie=0x3,in_port=3,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1771"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1772: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1772"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x1, in_port=1 actions=output:1
 cookie=0x2, in_port=2 actions=output:1
 cookie=0x3, in_port=3 actions=output:1
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1772"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1778: ovs-ofctl del-flows br0 cookie=0x3/0x1"
at_fn_check_prepare_trace "ofproto.at:1778"
( $at_check_trace; ovs-ofctl del-flows br0 cookie=0x3/0x1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1778"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1779: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1779"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x2, in_port=2 actions=output:1
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1779"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1783: check_logs "
at_fn_check_prepare_trace "ofproto.at:1783"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1783"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1783: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1783"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1783"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1783: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1783"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1783"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1783: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1783: wait failed" >&5

    $as_echo "ofproto.at:1783" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1783"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1783: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1783"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1783"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1783: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1783"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1783"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1783: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1783: wait failed" >&5

    $as_echo "ofproto.at:1783" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1783"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_928
#AT_START_929
at_fn_group_banner 929 'ofproto.at:1786' \
  "ofproto - del flows based on table id (NXM)" "    " 51
at_xfail=no
(
  $as_echo "929. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1787: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1787"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1787"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1787: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1787"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1787"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1787: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1787"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1787"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1787: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1787"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1787"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1787: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1787"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1787"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1787: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1787"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1787"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1787: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1787"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1787"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1788: ovs-ofctl add-flow br0 cookie=0x1,in_port=1,actions=1"
at_fn_check_prepare_trace "ofproto.at:1788"
( $at_check_trace; ovs-ofctl add-flow br0 cookie=0x1,in_port=1,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1788"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1789: ovs-ofctl add-flow br0 cookie=0x2,in_port=2,table=1,actions=1"
at_fn_check_prepare_trace "ofproto.at:1789"
( $at_check_trace; ovs-ofctl add-flow br0 cookie=0x2,in_port=2,table=1,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1789"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1790: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1790"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x1, in_port=1 actions=output:1
 cookie=0x2, table=1, in_port=2 actions=output:1
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1790"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1795: ovs-ofctl del-flows br0 table=0"
at_fn_check_prepare_trace "ofproto.at:1795"
( $at_check_trace; ovs-ofctl del-flows br0 table=0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1795"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1796: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1796"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x2, table=1, in_port=2 actions=output:1
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1796"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1800: ovs-ofctl del-flows br0 table=1"
at_fn_check_prepare_trace "ofproto.at:1800"
( $at_check_trace; ovs-ofctl del-flows br0 table=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1800"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1801: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1801"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1801"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1804: ovs-ofctl add-flow br0 cookie=0x1,in_port=1,actions=1"
at_fn_check_prepare_trace "ofproto.at:1804"
( $at_check_trace; ovs-ofctl add-flow br0 cookie=0x1,in_port=1,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1804"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1805: ovs-ofctl add-flow br0 cookie=0x2,in_port=2,table=1,actions=1"
at_fn_check_prepare_trace "ofproto.at:1805"
( $at_check_trace; ovs-ofctl add-flow br0 cookie=0x2,in_port=2,table=1,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1805"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1806: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1806"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x1, in_port=1 actions=output:1
 cookie=0x2, table=1, in_port=2 actions=output:1
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1806"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1811: ovs-ofctl del-flows br0"
at_fn_check_prepare_trace "ofproto.at:1811"
( $at_check_trace; ovs-ofctl del-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1811"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1812: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1812"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1812"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1815: check_logs "
at_fn_check_prepare_trace "ofproto.at:1815"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1815"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1815: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1815"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1815"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1815: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1815"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1815"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1815: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1815: wait failed" >&5

    $as_echo "ofproto.at:1815" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1815"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1815: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1815"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1815"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1815: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1815"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1815"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1815: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1815: wait failed" >&5

    $as_echo "ofproto.at:1815" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1815"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_929
#AT_START_930
at_fn_group_banner 930 'ofproto.at:1818' \
  "ofproto - del flows based on table id (OpenFlow 1.1)" "" 51
at_xfail=no
(
  $as_echo "930. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1819: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1819"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1819"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1819: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1819"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1819"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1819: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1819"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1819"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1819: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1819"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1819"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1819: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1819"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1819"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1819: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1819"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1819"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1819: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1819"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1819"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1820: ovs-ofctl -O OpenFlow11 add-flow br0 cookie=0x1,in_port=1,actions=1"
at_fn_check_prepare_trace "ofproto.at:1820"
( $at_check_trace; ovs-ofctl -O OpenFlow11 add-flow br0 cookie=0x1,in_port=1,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1820"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1821: ovs-ofctl -O OpenFlow11 add-flow br0 cookie=0x2,in_port=2,table=1,actions=1"
at_fn_check_prepare_trace "ofproto.at:1821"
( $at_check_trace; ovs-ofctl -O OpenFlow11 add-flow br0 cookie=0x2,in_port=2,table=1,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1821"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1822: ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1822"
( $at_check_trace; ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x1, in_port=1 actions=output:1
 cookie=0x2, table=1, in_port=2 actions=output:1
OFPST_FLOW reply (OF1.1):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1822"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1827: ovs-ofctl -O OpenFlow11 del-flows br0 table=0"
at_fn_check_prepare_trace "ofproto.at:1827"
( $at_check_trace; ovs-ofctl -O OpenFlow11 del-flows br0 table=0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1827"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1828: ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1828"
( $at_check_trace; ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x2, table=1, in_port=2 actions=output:1
OFPST_FLOW reply (OF1.1):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1828"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1832: ovs-ofctl -O OpenFlow11 del-flows br0 table=1"
at_fn_check_prepare_trace "ofproto.at:1832"
( $at_check_trace; ovs-ofctl -O OpenFlow11 del-flows br0 table=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1832"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1833: ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1833"
( $at_check_trace; ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW reply (OF1.1):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1833"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1836: ovs-ofctl -O OpenFlow11 add-flow br0 cookie=0x1,in_port=1,actions=1"
at_fn_check_prepare_trace "ofproto.at:1836"
( $at_check_trace; ovs-ofctl -O OpenFlow11 add-flow br0 cookie=0x1,in_port=1,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1836"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1837: ovs-ofctl -O OpenFlow11 add-flow br0 cookie=0x2,in_port=2,table=1,actions=1"
at_fn_check_prepare_trace "ofproto.at:1837"
( $at_check_trace; ovs-ofctl -O OpenFlow11 add-flow br0 cookie=0x2,in_port=2,table=1,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1837"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1838: ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1838"
( $at_check_trace; ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x1, in_port=1 actions=output:1
 cookie=0x2, table=1, in_port=2 actions=output:1
OFPST_FLOW reply (OF1.1):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1838"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1843: ovs-ofctl -O OpenFlow11 del-flows br0"
at_fn_check_prepare_trace "ofproto.at:1843"
( $at_check_trace; ovs-ofctl -O OpenFlow11 del-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1843"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1844: ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1844"
( $at_check_trace; ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW reply (OF1.1):
 cookie=0x2, table=1, in_port=2 actions=output:1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1844"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1848: check_logs "
at_fn_check_prepare_trace "ofproto.at:1848"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1848"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1848: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1848"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1848"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1848: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1848"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1848"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1848: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1848: wait failed" >&5

    $as_echo "ofproto.at:1848" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1848"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1848: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1848"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1848"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1848: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1848"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1848"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1848: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1848: wait failed" >&5

    $as_echo "ofproto.at:1848" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1848"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_930
#AT_START_931
at_fn_group_banner 931 'ofproto.at:1851' \
  "ofproto - del flows based on table id (OpenFlow 1.2)" "" 51
at_xfail=no
(
  $as_echo "931. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1852: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1852"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1852"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1852: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1852"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1852"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1852: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1852"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1852"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1852: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1852"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1852"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1852: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1852"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1852"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1852: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1852"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1852"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1852: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1852"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1852"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1853: ovs-ofctl -O OpenFlow12 add-flow br0 cookie=0x1,in_port=1,actions=1"
at_fn_check_prepare_trace "ofproto.at:1853"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 cookie=0x1,in_port=1,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1853"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1854: ovs-ofctl -O OpenFlow12 add-flow br0 cookie=0x2,in_port=2,table=1,actions=1"
at_fn_check_prepare_trace "ofproto.at:1854"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 cookie=0x2,in_port=2,table=1,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1854"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1855: ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1855"
( $at_check_trace; ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x1, in_port=1 actions=output:1
 cookie=0x2, table=1, in_port=2 actions=output:1
OFPST_FLOW reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1855"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1860: ovs-ofctl -O OpenFlow12 del-flows br0 table=0"
at_fn_check_prepare_trace "ofproto.at:1860"
( $at_check_trace; ovs-ofctl -O OpenFlow12 del-flows br0 table=0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1860"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1861: ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1861"
( $at_check_trace; ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x2, table=1, in_port=2 actions=output:1
OFPST_FLOW reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1861"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1865: ovs-ofctl -O OpenFlow12 del-flows br0 table=1"
at_fn_check_prepare_trace "ofproto.at:1865"
( $at_check_trace; ovs-ofctl -O OpenFlow12 del-flows br0 table=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1865"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1866: ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1866"
( $at_check_trace; ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1866"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1869: ovs-ofctl -O OpenFlow12 add-flow br0 cookie=0x1,in_port=1,actions=1"
at_fn_check_prepare_trace "ofproto.at:1869"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 cookie=0x1,in_port=1,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1869"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1870: ovs-ofctl -O OpenFlow12 add-flow br0 cookie=0x2,in_port=2,table=1,actions=1"
at_fn_check_prepare_trace "ofproto.at:1870"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 cookie=0x2,in_port=2,table=1,actions=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1870"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1871: ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1871"
( $at_check_trace; ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x1, in_port=1 actions=output:1
 cookie=0x2, table=1, in_port=2 actions=output:1
OFPST_FLOW reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1871"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1876: ovs-ofctl -O OpenFlow12 del-flows br0"
at_fn_check_prepare_trace "ofproto.at:1876"
( $at_check_trace; ovs-ofctl -O OpenFlow12 del-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1876"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1877: ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1877"
( $at_check_trace; ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1877"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:1880: check_logs "
at_fn_check_prepare_trace "ofproto.at:1880"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1880"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1880: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1880"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1880"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1880: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1880"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1880"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1880: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1880: wait failed" >&5

    $as_echo "ofproto.at:1880" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1880"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1880: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1880"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1880"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1880: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1880"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1880"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1880: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1880: wait failed" >&5

    $as_echo "ofproto.at:1880" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1880"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_931
#AT_START_932
at_fn_group_banner 932 'ofproto.at:1883' \
  "ofproto - flow_mod with out_port matching (OpenFlow 1.0)" "" 51
at_xfail=no
(
  $as_echo "932. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1884: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1884"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1884"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1884: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1884"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1884"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1884: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1884"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1884"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1884: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1884"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1884"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1884: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1884"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1884"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1884: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1884"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1884"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1884: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1884"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1884"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
 in_port=1 actions=output:2
 in_port=2 actions=output:1,output:2,output:3
 in_port=3 actions=output:3,output:1,output:2
 in_port=4 actions=drop
 in_port=5 actions=output:3
 in_port=6 actions=output:1
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:1893: ovs-ofctl -F openflow10 add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto.at:1893"
( $at_check_trace; ovs-ofctl -F openflow10 add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1893"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

(cat flows.txt; echo 'OFPST_FLOW reply:') > expout
{ set +x
$as_echo "$at_srcdir/ofproto.at:1895: ovs-ofctl -F openflow10 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1895"
( $at_check_trace; ovs-ofctl -F openflow10 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1895"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


(grep 'output:2' flows.txt; echo 'OFPST_FLOW reply:') > expout
{ set +x
$as_echo "$at_srcdir/ofproto.at:1899: ovs-ofctl -F openflow10 dump-flows br0 out_port=2 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1899"
( $at_check_trace; ovs-ofctl -F openflow10 dump-flows br0 out_port=2 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1899"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1901: ovs-ofctl -F openflow10 del-flows br0 out_port=2"
at_fn_check_prepare_trace "ofproto.at:1901"
( $at_check_trace; ovs-ofctl -F openflow10 del-flows br0 out_port=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1901"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

(grep -v 'output:2' flows.txt; echo 'OFPST_FLOW reply:') > expout
{ set +x
$as_echo "$at_srcdir/ofproto.at:1903: ovs-ofctl -F openflow10 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1903"
( $at_check_trace; ovs-ofctl -F openflow10 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1903"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1906: ovs-ofctl -F openflow10 del-flows br0 out_port=3"
at_fn_check_prepare_trace "ofproto.at:1906"
( $at_check_trace; ovs-ofctl -F openflow10 del-flows br0 out_port=3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1906"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

(grep -v 'output:[23]' flows.txt; echo 'OFPST_FLOW reply:') > expout
{ set +x
$as_echo "$at_srcdir/ofproto.at:1908: ovs-ofctl -F openflow10 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1908"
( $at_check_trace; ovs-ofctl -F openflow10 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1908"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1911: ovs-ofctl -F openflow10 del-flows br0 out_port=1"
at_fn_check_prepare_trace "ofproto.at:1911"
( $at_check_trace; ovs-ofctl -F openflow10 del-flows br0 out_port=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1911"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

(grep -v 'output:[123]' flows.txt; echo 'OFPST_FLOW reply:') > expout
{ set +x
$as_echo "$at_srcdir/ofproto.at:1913: ovs-ofctl -F openflow10 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1913"
( $at_check_trace; ovs-ofctl -F openflow10 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1913"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1916: check_logs "
at_fn_check_prepare_trace "ofproto.at:1916"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1916"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1916: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1916"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1916"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1916: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1916"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1916"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1916: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1916: wait failed" >&5

    $as_echo "ofproto.at:1916" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1916"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1916: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1916"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1916"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1916: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1916"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1916"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1916: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1916: wait failed" >&5

    $as_echo "ofproto.at:1916" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1916"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_932
#AT_START_933
at_fn_group_banner 933 'ofproto.at:1919' \
  "ofproto - flow_mod with out_port matching (OpenFlow 1.1)" "" 51
at_xfail=no
(
  $as_echo "933. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1920: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1920"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1920"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1920: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1920"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1920"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1920: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1920"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1920"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1920: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1920"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1920"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1920: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1920"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1920"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1920: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1920"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1920"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1920: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1920"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1920"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
 in_port=1 actions=output:2
 in_port=2 actions=output:1,write_actions(output:2,output:3)
 in_port=3 actions=output:3,output:1,write_actions(output:2)
 in_port=4 actions=drop
 in_port=5 actions=write_actions(output:3)
 in_port=6 actions=output:1
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:1929: ovs-ofctl -O OpenFlow11 add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto.at:1929"
( $at_check_trace; ovs-ofctl -O OpenFlow11 add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1929"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

(cat flows.txt; echo 'OFPST_FLOW reply (OF1.1):') > expout
{ set +x
$as_echo "$at_srcdir/ofproto.at:1931: ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1931"
( $at_check_trace; ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1931"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


(grep 'output:2' flows.txt; echo 'OFPST_FLOW reply (OF1.1):') > expout
{ set +x
$as_echo "$at_srcdir/ofproto.at:1935: ovs-ofctl -O OpenFlow11 dump-flows br0 out_port=2 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1935"
( $at_check_trace; ovs-ofctl -O OpenFlow11 dump-flows br0 out_port=2 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1935"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1937: ovs-ofctl -O OpenFlow11 del-flows br0 out_port=2"
at_fn_check_prepare_trace "ofproto.at:1937"
( $at_check_trace; ovs-ofctl -O OpenFlow11 del-flows br0 out_port=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1937"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

(grep -v 'output:2' flows.txt; echo 'OFPST_FLOW reply (OF1.1):') > expout
{ set +x
$as_echo "$at_srcdir/ofproto.at:1939: ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1939"
( $at_check_trace; ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1939"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1942: ovs-ofctl -O OpenFlow11 del-flows br0 out_port=3"
at_fn_check_prepare_trace "ofproto.at:1942"
( $at_check_trace; ovs-ofctl -O OpenFlow11 del-flows br0 out_port=3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1942"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

(grep -v 'output:[23]' flows.txt; echo 'OFPST_FLOW reply (OF1.1):') > expout
{ set +x
$as_echo "$at_srcdir/ofproto.at:1944: ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1944"
( $at_check_trace; ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1944"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1947: ovs-ofctl -O OpenFlow11 del-flows br0 out_port=1"
at_fn_check_prepare_trace "ofproto.at:1947"
( $at_check_trace; ovs-ofctl -O OpenFlow11 del-flows br0 out_port=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1947"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

(grep -v 'output:[123]' flows.txt; echo 'OFPST_FLOW reply (OF1.1):') > expout
{ set +x
$as_echo "$at_srcdir/ofproto.at:1949: ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1949"
( $at_check_trace; ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1949"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1952: check_logs "
at_fn_check_prepare_trace "ofproto.at:1952"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1952"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1952: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1952"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1952"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1952: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1952"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1952"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1952: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1952: wait failed" >&5

    $as_echo "ofproto.at:1952" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1952"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1952: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1952"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1952"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1952: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1952"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1952"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1952: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1952: wait failed" >&5

    $as_echo "ofproto.at:1952" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1952"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_933
#AT_START_934
at_fn_group_banner 934 'ofproto.at:1955' \
  "ofproto - flow_mod with out_group matching (OpenFlow 1.1)" "" 51
at_xfail=no
(
  $as_echo "934. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1956: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1956"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1956"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1956: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1956"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1956"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1956: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1956"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1956"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1956: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1956"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1956"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1956: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1956"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1956"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1956: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1956"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1956"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1956: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1956"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1956"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >groups.txt <<'_ATEOF'
group_id=1,type=all,bucket=output:10
group_id=2,type=all,bucket=output:10
group_id=3,type=all,bucket=output:10
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:1962: ovs-ofctl -O OpenFlow11 add-groups br0 groups.txt"
at_fn_check_prepare_trace "ofproto.at:1962"
( $at_check_trace; ovs-ofctl -O OpenFlow11 add-groups br0 groups.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1962"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

cat >flows.txt <<'_ATEOF'
 in_port=1 actions=group:2,output:5
 in_port=2 actions=group:1,write_actions(group:2,group:3,output:6)
 in_port=3 actions=group:3,group:1,write_actions(group:2,output:3)
 in_port=4 actions=output:4
 in_port=5 actions=write_actions(output:4,group:3)
 in_port=6 actions=group:1
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:1971: ovs-ofctl -O OpenFlow11 add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto.at:1971"
( $at_check_trace; ovs-ofctl -O OpenFlow11 add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1971"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

(cat flows.txt; echo 'OFPST_FLOW reply (OF1.1):') > expout
{ set +x
$as_echo "$at_srcdir/ofproto.at:1973: ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1973"
( $at_check_trace; ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1973"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


(grep 'output:3' flows.txt | grep 'group:2'; echo 'OFPST_FLOW reply (OF1.1):') > expout
{ set +x
$as_echo "$at_srcdir/ofproto.at:1977: ovs-ofctl -O OpenFlow11 dump-flows br0 out_port=3,out_group=2 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1977"
( $at_check_trace; ovs-ofctl -O OpenFlow11 dump-flows br0 out_port=3,out_group=2 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1977"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1979: ovs-ofctl -O OpenFlow11 del-flows br0 out_group=2"
at_fn_check_prepare_trace "ofproto.at:1979"
( $at_check_trace; ovs-ofctl -O OpenFlow11 del-flows br0 out_group=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1979"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

(grep -v 'group:2' flows.txt; echo 'OFPST_FLOW reply (OF1.1):') > expout
{ set +x
$as_echo "$at_srcdir/ofproto.at:1981: ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1981"
( $at_check_trace; ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1981"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1984: ovs-ofctl -O OpenFlow11 del-flows br0 out_group=3"
at_fn_check_prepare_trace "ofproto.at:1984"
( $at_check_trace; ovs-ofctl -O OpenFlow11 del-flows br0 out_group=3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1984"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

(grep -v 'group:[23]' flows.txt; echo 'OFPST_FLOW reply (OF1.1):') > expout
{ set +x
$as_echo "$at_srcdir/ofproto.at:1986: ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1986"
( $at_check_trace; ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1986"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1989: ovs-ofctl -O OpenFlow11 del-flows br0 out_group=1"
at_fn_check_prepare_trace "ofproto.at:1989"
( $at_check_trace; ovs-ofctl -O OpenFlow11 del-flows br0 out_group=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1989"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

(grep -v 'group:[123]' flows.txt; echo 'OFPST_FLOW reply (OF1.1):') > expout
{ set +x
$as_echo "$at_srcdir/ofproto.at:1991: ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:1991"
( $at_check_trace; ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1991"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:1994: check_logs "
at_fn_check_prepare_trace "ofproto.at:1994"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1994"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:1994: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:1994"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1994"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1994: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:1994"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1994"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1994: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1994: wait failed" >&5

    $as_echo "ofproto.at:1994" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1994"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:1994: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:1994"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1994"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:1994: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:1994"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1994"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:1994: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:1994: wait failed" >&5

    $as_echo "ofproto.at:1994" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:1994"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_934
#AT_START_935
at_fn_group_banner 935 'ofproto.at:1997' \
  "ofproto - bundle flow_mod with out group matching (OpenFlow 1.4)" "" 51
at_xfail=no
(
  $as_echo "935. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:1998: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:1998"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1998"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1998: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:1998"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1998"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1998: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1998"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1998"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:1998: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:1998"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1998"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:1998: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:1998"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1998"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:1998: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:1998"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1998"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:1998: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:1998"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:1998"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >bundle.txt <<'_ATEOF'
group group_id=1,type=all,bucket=output:10
group group_id=2,type=all,bucket=output:10
group group_id=3,type=all,bucket=output:10
flow in_port=1 actions=group:2,output:5
flow in_port=2 actions=group:1,write_actions(group:2,group:3,output:6)
flow in_port=3 actions=group:3,group:1,write_actions(group:2,output:3)
flow in_port=4 actions=output:4
flow in_port=5 actions=write_actions(output:4,group:3)
flow in_port=6 actions=group:1
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:2010: ovs-ofctl bundle br0 bundle.txt"
at_fn_check_prepare_trace "ofproto.at:2010"
( $at_check_trace; ovs-ofctl bundle br0 bundle.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2010"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# for checking
cat >flows.txt <<'_ATEOF'
 in_port=1 actions=group:2,output:5
 in_port=2 actions=group:1,write_actions(group:2,group:3,output:6)
 in_port=3 actions=group:3,group:1,write_actions(group:2,output:3)
 in_port=4 actions=output:4
 in_port=5 actions=write_actions(output:4,group:3)
 in_port=6 actions=group:1
_ATEOF


(cat flows.txt; echo 'OFPST_FLOW reply (OF1.4):') > expout
{ set +x
$as_echo "$at_srcdir/ofproto.at:2023: ovs-ofctl -O OpenFlow14 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:2023"
( $at_check_trace; ovs-ofctl -O OpenFlow14 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2023"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


(grep 'output:3' flows.txt | grep 'group:2'; echo 'OFPST_FLOW reply (OF1.4):') > expout
{ set +x
$as_echo "$at_srcdir/ofproto.at:2027: ovs-ofctl -O OpenFlow14 dump-flows br0 out_port=3,out_group=2 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:2027"
( $at_check_trace; ovs-ofctl -O OpenFlow14 dump-flows br0 out_port=3,out_group=2 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2027"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:2029: ovs-ofctl -O OpenFlow14 del-flows br0 out_group=2"
at_fn_check_prepare_trace "ofproto.at:2029"
( $at_check_trace; ovs-ofctl -O OpenFlow14 del-flows br0 out_group=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2029"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

(grep -v 'group:2' flows.txt; echo 'OFPST_FLOW reply (OF1.4):') > expout
{ set +x
$as_echo "$at_srcdir/ofproto.at:2031: ovs-ofctl -O OpenFlow14 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:2031"
( $at_check_trace; ovs-ofctl -O OpenFlow14 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2031"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:2034: ovs-ofctl -O OpenFlow14 del-flows br0 out_group=3"
at_fn_check_prepare_trace "ofproto.at:2034"
( $at_check_trace; ovs-ofctl -O OpenFlow14 del-flows br0 out_group=3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2034"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

(grep -v 'group:[23]' flows.txt; echo 'OFPST_FLOW reply (OF1.4):') > expout
{ set +x
$as_echo "$at_srcdir/ofproto.at:2036: ovs-ofctl -O OpenFlow14 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:2036"
( $at_check_trace; ovs-ofctl -O OpenFlow14 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2036"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:2039: ovs-ofctl -O OpenFlow14 del-flows br0 out_group=1"
at_fn_check_prepare_trace "ofproto.at:2039"
( $at_check_trace; ovs-ofctl -O OpenFlow14 del-flows br0 out_group=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2039"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

(grep -v 'group:[123]' flows.txt; echo 'OFPST_FLOW reply (OF1.4):') > expout
{ set +x
$as_echo "$at_srcdir/ofproto.at:2041: ovs-ofctl -O OpenFlow14 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:2041"
( $at_check_trace; ovs-ofctl -O OpenFlow14 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2041"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:2044: check_logs "
at_fn_check_prepare_trace "ofproto.at:2044"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2044"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:2044: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:2044"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2044"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:2044: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:2044"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2044"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:2044: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:2044: wait failed" >&5

    $as_echo "ofproto.at:2044" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:2044"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:2044: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:2044"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2044"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:2044: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:2044"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2044"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:2044: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:2044: wait failed" >&5

    $as_echo "ofproto.at:2044" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:2044"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_935
#AT_START_936
at_fn_group_banner 936 'ofproto.at:2047' \
  "ofproto - bundle packet-out (OpenFlow 1.4)" "     " 51
at_xfail=no
(
  $as_echo "936. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:2048: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:2048"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2048"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:2048: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:2048"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2048"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:2048: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2048"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2048"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:2048: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:2048"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2048"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:2048: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:2048"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2048"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:2048: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2048"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2048"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:2048: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:2048"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2048"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



ovs-ofctl del-flows br0
ovs-ofctl add-flow br0 priority=0,actions=drop

# Start a monitor listening for packet-ins.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2054: ovs-ofctl -P standard monitor br0 --detach --no-chdir --pidfile"
at_fn_check_prepare_trace "ofproto.at:2054"
( $at_check_trace; ovs-ofctl -P standard monitor br0 --detach --no-chdir --pidfile
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2054"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl -t ovs-ofctl ofctl/send 0109000c0123456700000080
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log


# This bundle adds a group, a flow using that group and then a
# packet-out that needs them both.  Finally the bundle deletes all
# groups, which also deletes the flow, leaving only the drop flow in
# the table.  If this works properly, the packet-out should get
# translated and processed before the flow disappears.  Also, if the
# bundle were to fail, the packet-in should not get executed.
cat >bundle.txt <<'_ATEOF'
group group_id=1,type=all,bucket=output:controller
flow in_port=6 actions=group:1
packet-out in_port=6, packet=0001020304050010203040501234 actions=table
group delete
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:2072: ovs-ofctl bundle br0 bundle.txt"
at_fn_check_prepare_trace "ofproto.at:2072"
( $at_check_trace; ovs-ofctl bundle br0 bundle.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2072"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


# Verify that only the drop flow remains.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2075: ovs-ofctl -O OpenFlow14 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:2075"
( $at_check_trace; ovs-ofctl -O OpenFlow14 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " reset_counts priority=0 actions=drop
OFPST_FLOW reply (OF1.4):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2075"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


# Verify that the packet-in was received via controller action.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2081: sed 's/ (xid=0x[1-9a-fA-F][0-9a-fA-F]*)//' monitor.log"
at_fn_check_prepare_trace "ofproto.at:2081"
( $at_check_trace; sed 's/ (xid=0x[1-9a-fA-F][0-9a-fA-F]*)//' monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (xid=0x0): total_len=14 in_port=6 (via action) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=00:10:20:30:40:50,dl_dst=00:01:02:03:04:05,dl_type=0x1234
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2081"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:2086: check_logs "
at_fn_check_prepare_trace "ofproto.at:2086"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2086"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:2086: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:2086"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2086"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:2086: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:2086"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2086"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:2086: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:2086: wait failed" >&5

    $as_echo "ofproto.at:2086" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:2086"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:2086: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:2086"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2086"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:2086: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:2086"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2086"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:2086: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:2086: wait failed" >&5

    $as_echo "ofproto.at:2086" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:2086"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_936
#AT_START_937
at_fn_group_banner 937 'ofproto.at:2089' \
  "ofproto - bundle packet-out, failing bundle commit (OpenFlow 1.4)" "" 51
at_xfail=no
(
  $as_echo "937. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:2090: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:2090"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2090"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:2090: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:2090"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2090"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:2090: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2090"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2090"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:2090: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:2090"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2090"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:2090: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:2090"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2090"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:2090: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2090"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2090"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:2090: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:2090"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2090"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



ovs-ofctl del-flows br0
ovs-ofctl add-flow br0 priority=0,actions=drop

# Start a monitor listening for packet-ins.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2096: ovs-ofctl -P standard monitor br0 --detach --no-chdir --pidfile"
at_fn_check_prepare_trace "ofproto.at:2096"
( $at_check_trace; ovs-ofctl -P standard monitor br0 --detach --no-chdir --pidfile
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2096"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl -t ovs-ofctl ofctl/send 0109000c0123456700000080
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log


# This bundle adds a flow using that group and then a packet-out that
# needs them both.  Finally the bundle adds another flow that referes
# to a non-existing group, causing the bundle to fail, and the
# packet-in should not get executed.
cat >bundle.txt <<'_ATEOF'
group group_id=1,type=all,bucket=output:controller
flow in_port=6 actions=group:1
packet-out in_port=6, packet=0001020304050010203040501234 actions=table
flow in_port=7 actions=group:2
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:2112: ovs-ofctl bundle br0 bundle.txt 2>&1 | sed '/talking to/,\$d' | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:2112"
( $at_check_trace; ovs-ofctl bundle br0 bundle.txt 2>&1 | sed '/talking to/,$d' | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Error OFPBAC_BAD_OUT_GROUP for: OFPT_FLOW_MOD (OF1.4): ADD in_port=7 actions=group:2
Error OFPBFC_MSG_FAILED for: OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0 type=COMMIT_REQUEST flags=atomic ordered
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2112"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


# Verify that only the drop flow remains.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2119: ovs-ofctl -O OpenFlow14 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:2119"
( $at_check_trace; ovs-ofctl -O OpenFlow14 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " reset_counts priority=0 actions=drop
OFPST_FLOW reply (OF1.4):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2119"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


# Verify that the packet-in was NOT received via controller action.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2125: strip_xids < monitor.log"
at_fn_check_prepare_trace "ofproto.at:2125"
( $at_check_trace; strip_xids < monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2125"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:2127: check_logs "
at_fn_check_prepare_trace "ofproto.at:2127"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2127"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:2127: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:2127"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2127"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:2127: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:2127"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2127"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:2127: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:2127: wait failed" >&5

    $as_echo "ofproto.at:2127" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:2127"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:2127: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:2127"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2127"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:2127: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:2127"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2127"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:2127: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:2127: wait failed" >&5

    $as_echo "ofproto.at:2127" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:2127"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_937
#AT_START_938
at_fn_group_banner 938 'ofproto.at:2130' \
  "ofproto - bundle packet-out makes bundle commit to fail(OpenFlow 1.4)" "" 51
at_xfail=no
(
  $as_echo "938. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:2131: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:2131"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2131"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:2131: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:2131"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2131"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:2131: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2131"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2131"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:2131: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:2131"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2131"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:2131: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:2131"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2131"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:2131: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2131"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2131"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:2131: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:2131"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2131"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



ovs-ofctl del-flows br0
ovs-ofctl add-flow br0 priority=0,actions=drop

# Start a monitor listening for packet-ins.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2137: ovs-ofctl -P standard monitor br0 --detach --no-chdir --pidfile"
at_fn_check_prepare_trace "ofproto.at:2137"
( $at_check_trace; ovs-ofctl -P standard monitor br0 --detach --no-chdir --pidfile
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2137"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl -t ovs-ofctl ofctl/send 0109000c0123456700000080
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log


# This bundle adds a flow using that group and then a packet-out that
# needs them both.  Finally the bundle adds another flow that referes
# to a non-existing group, causing the bundle to fail, and the
# packet-in should not get executed.
cat >bundle.txt <<'_ATEOF'
group group_id=1,type=all,bucket=output:controller
flow in_port=6 actions=group:1
packet-out in_port=6, packet=0001020304050010203040501234 actions=table
packet-out in_port=6, packet=0001020304050010203040501234 actions=group:2
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:2153: ovs-ofctl bundle br0 bundle.txt 2>&1 | sed '/talking to/,\$d' | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:2153"
( $at_check_trace; ovs-ofctl bundle br0 bundle.txt 2>&1 | sed '/talking to/,$d' | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Error OFPBAC_BAD_OUT_GROUP for: OFPT_PACKET_OUT (OF1.4): in_port=6 actions=group:2 data_len=14
vlan_tci=0x0000,dl_src=00:10:20:30:40:50,dl_dst=00:01:02:03:04:05,dl_type=0x1234
Error OFPBFC_MSG_FAILED for: OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0 type=COMMIT_REQUEST flags=atomic ordered
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2153"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


# Verify that only the drop flow remains.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2161: ovs-ofctl -O OpenFlow14 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:2161"
( $at_check_trace; ovs-ofctl -O OpenFlow14 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " reset_counts priority=0 actions=drop
OFPST_FLOW reply (OF1.4):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2161"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


# Verify that the packet-in was NOT received via controller action.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2167: strip_xids < monitor.log"
at_fn_check_prepare_trace "ofproto.at:2167"
( $at_check_trace; strip_xids < monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2167"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:2169: check_logs "
at_fn_check_prepare_trace "ofproto.at:2169"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2169"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:2169: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:2169"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2169"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:2169: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:2169"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2169"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:2169: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:2169: wait failed" >&5

    $as_echo "ofproto.at:2169" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:2169"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:2169: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:2169"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2169"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:2169: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:2169"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2169"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:2169: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:2169: wait failed" >&5

    $as_echo "ofproto.at:2169" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:2169"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_938
#AT_START_939
at_fn_group_banner 939 'ofproto.at:2172' \
  "ofproto - flow table configuration (OpenFlow 1.0)" "" 51
at_xfail=no
(
  $as_echo "939. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:2173: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:2173"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2173"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:2173: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:2173"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2173"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:2173: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2173"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2173"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:2173: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:2173"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2173"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:2173: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:2173"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2173"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:2173: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2173"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2173"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:2173: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:2173"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2173"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Check the default configuration.
head_table() {
    printf 'OFPST_TABLE reply (xid=0x2):
  table 0 ("%s"):
    active=0, lookup=0, matched=0
    max_entries=1000000
    matching:
      in_port: exact match or wildcard
      eth_src: exact match or wildcard
      eth_dst: exact match or wildcard
      eth_type: exact match or wildcard
      vlan_vid: exact match or wildcard
      vlan_pcp: exact match or wildcard
      ip_src: exact match or wildcard
      ip_dst: exact match or wildcard
      nw_proto: exact match or wildcard
      nw_tos: exact match or wildcard
      tcp_src: exact match or wildcard
      tcp_dst: exact match or wildcard

' $1
}
ditto() {
    for i in `seq $1 $2`; do
        printf '  table %d ("table%d"): ditto\n' $i $i
    done
}
(head_table classifier; ditto 1 253) > expout
{ set +x
$as_echo "$at_srcdir/ofproto.at:2202: ovs-ofctl dump-tables br0"
at_fn_check_prepare_trace "ofproto.at:2202"
( $at_check_trace; ovs-ofctl dump-tables br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2202"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Change the configuration.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2204: ovs-vsctl \\
     -- --id=@t0 create Flow_Table name=main \\
     -- --id=@t1 create Flow_Table flow-limit=1024 \\
     -- set bridge br0 'flow_tables={1=@t1,0=@t0}' \\
   | uuidfilt"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2204"
( $at_check_trace; ovs-vsctl \
     -- --id=@t0 create Flow_Table name=main \
     -- --id=@t1 create Flow_Table flow-limit=1024 \
     -- set bridge br0 'flow_tables={1=@t1,0=@t0}' \
   | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<0>
<1>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2204"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Check that the configuration was updated.
(head_table main; echo '  table 1 ("table1"):
    active=0, lookup=0, matched=0
    max_entries=1024
    (same matching)

  table 2 ("table2"):
    active=0, lookup=0, matched=0
    max_entries=1000000
    (same matching)
'; ditto 3 253) > expout
{ set +x
$as_echo "$at_srcdir/ofproto.at:2224: ovs-ofctl dump-tables br0"
at_fn_check_prepare_trace "ofproto.at:2224"
( $at_check_trace; ovs-ofctl dump-tables br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2224"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2225: check_logs "
at_fn_check_prepare_trace "ofproto.at:2225"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2225"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:2225: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:2225"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2225"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:2225: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:2225"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2225"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:2225: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:2225: wait failed" >&5

    $as_echo "ofproto.at:2225" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:2225"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:2225: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:2225"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2225"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:2225: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:2225"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2225"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:2225: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:2225: wait failed" >&5

    $as_echo "ofproto.at:2225" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:2225"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_939
#AT_START_940
at_fn_group_banner 940 'ofproto.at:2231' \
  "ofproto - hidden rules not in table stats" "      " 51
at_xfail=no
(
  $as_echo "940. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

# Use an IP address for a controller that won't actually exist: we
# want to create in-band rules but we do not want to actually connect
# to a controller (because that could mess about with our test).  The
# Class E range 240.0.0.0 - 255.255.255.255 seems like a good choice.
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:2236: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:2236"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2236"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:2236: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:2236"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2236"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:2236: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2236"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2236"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:2236: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:2236"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2236"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:2236: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:2236"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2236"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:2236: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2236"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2236"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:2236: add_of_br 0 set-controller br0 tcp:240.0.0.1:6653 "
at_fn_check_prepare_trace "ofproto.at:2236"
( $at_check_trace; add_of_br 0 set-controller br0 tcp:240.0.0.1:6653
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2236"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


for i in 1 2 3 4 5; do ovs-appctl time/warp 1000; done

# Check that no hidden flows are visible in OpenFlow.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2240: ovs-ofctl dump-flows br0 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:2240"
( $at_check_trace; ovs-ofctl dump-flows br0 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2240"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Check that some hidden flows related to 240.0.0.1 are actually in table 0.
#
# We discard flows that mention table_id because we only want table 0 flows,
# which in OVS is implied by the absence of a table_id.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2247: ovs-appctl bridge/dump-flows br0"
at_fn_check_prepare_trace "ofproto.at:2247"
( $at_check_trace; ovs-appctl bridge/dump-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2247"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2248: test \`grep '240\\.0\\.0\\.1' stdout | grep -v table_id= | wc -l\` -gt 0"
at_fn_check_prepare_notrace 'a `...` command substitution' "ofproto.at:2248"
( $at_check_trace; test `grep '240\.0\.0\.1' stdout | grep -v table_id= | wc -l` -gt 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2248"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Check that dump-tables doesn't count the hidden flows.
head_table() {
    printf 'OFPST_TABLE reply:
  table 0 ("%s"):
    active=0, lookup=0, matched=0
    max_entries=1000000
    matching:
      in_port: exact match or wildcard
      eth_src: exact match or wildcard
      eth_dst: exact match or wildcard
      eth_type: exact match or wildcard
      vlan_vid: exact match or wildcard
      vlan_pcp: exact match or wildcard
      ip_src: exact match or wildcard
      ip_dst: exact match or wildcard
      nw_proto: exact match or wildcard
      nw_tos: exact match or wildcard
      tcp_src: exact match or wildcard
      tcp_dst: exact match or wildcard

' $1
}
ditto() {
    for i in `seq $1 $2`; do
        printf '  table %d ("table%d"): ditto\n' $i $i
    done
}
(head_table classifier; ditto 1 253) > expout
{ set +x
$as_echo "$at_srcdir/ofproto.at:2278: ovs-ofctl dump-tables br0 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:2278"
( $at_check_trace; ovs-ofctl dump-tables br0 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2278"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2279: check_logs \"/240\\.0\\.0\\.1/d\""
at_fn_check_prepare_trace "ofproto.at:2279"
( $at_check_trace; check_logs "/240\.0\.0\.1/d"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2279"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:2279: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:2279"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2279"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:2279: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:2279"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2279"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:2279: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:2279: wait failed" >&5

    $as_echo "ofproto.at:2279" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:2279"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:2279: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:2279"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2279"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:2279: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:2279"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2279"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:2279: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:2279: wait failed" >&5

    $as_echo "ofproto.at:2279" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:2279"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_940
#AT_START_941
at_fn_group_banner 941 'ofproto.at:2282' \
  "ofproto - flow table configuration (OpenFlow 1.2)" "" 51
at_xfail=no
(
  $as_echo "941. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:2283: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:2283"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2283"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:2283: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:2283"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2283"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:2283: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2283"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2283"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:2283: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:2283"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2283"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:2283: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:2283"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2283"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:2283: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2283"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2283"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:2283: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:2283"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2283"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Check the default configuration.
head_table() {
    printf 'OFPST_TABLE reply (OF1.2) (xid=0x2):
  table 0 ("%s"):
    active=0, lookup=0, matched=0
    metadata: match=0xffffffffffffffff write=0xffffffffffffffff
    config=controller
    max_entries=1000000
    instructions (table miss and others):
      instructions: apply_actions,clear_actions,write_actions,write_metadata,goto_table
      Write-Actions and Apply-Actions features:
        actions: output group set_field strip_vlan push_vlan mod_nw_ttl dec_ttl set_mpls_ttl dec_mpls_ttl push_mpls pop_mpls set_queue
        supported on Set-Field: metadata in_port_oxm eth_src eth_dst vlan_vid vlan_pcp mpls_label mpls_tc ip_src ip_dst ipv6_src ipv6_dst ipv6_label ip_dscp nw_ecn arp_op arp_spa arp_tpa arp_sha arp_tha tcp_src tcp_dst udp_src udp_dst sctp_src sctp_dst icmp_type icmp_code icmpv6_type icmpv6_code nd_target nd_sll nd_tll
    matching:
      metadata: exact match or wildcard
      in_port_oxm: exact match or wildcard
      eth_src: exact match or wildcard
      eth_dst: exact match or wildcard
      eth_type: exact match or wildcard
      vlan_vid: exact match or wildcard
      vlan_pcp: exact match or wildcard
      mpls_label: exact match or wildcard
      mpls_tc: exact match or wildcard
      ip_src: exact match or wildcard
      ip_dst: exact match or wildcard
      ipv6_src: exact match or wildcard
      ipv6_dst: exact match or wildcard
      ipv6_label: exact match or wildcard
      nw_proto: exact match or wildcard
      ip_dscp: exact match or wildcard
      nw_ecn: exact match or wildcard
      arp_op: exact match or wildcard
      arp_spa: exact match or wildcard
      arp_tpa: exact match or wildcard
      arp_sha: exact match or wildcard
      arp_tha: exact match or wildcard
      tcp_src: exact match or wildcard
      tcp_dst: exact match or wildcard
      udp_src: exact match or wildcard
      udp_dst: exact match or wildcard
      sctp_src: exact match or wildcard
      sctp_dst: exact match or wildcard
      icmp_type: exact match or wildcard
      icmp_code: exact match or wildcard
      icmpv6_type: exact match or wildcard
      icmpv6_code: exact match or wildcard
      nd_target: exact match or wildcard
      nd_sll: exact match or wildcard
      nd_tll: exact match or wildcard

' $1
}
ditto() {
    for i in `seq $1 $2`; do
        printf '  table %d ("table%d"): ditto\n' $i $i
    done
}
tail_table() {
    printf '  table 253 ("table253"):
    active=0, lookup=0, matched=0
    metadata: match=0xffffffffffffffff write=0xffffffffffffffff
    config=controller
    max_entries=1000000
    instructions (table miss and others):
      instructions: apply_actions,clear_actions,write_actions,write_metadata
      (same actions)
    (same matching)
'
}
(head_table classifier; ditto 1 252; tail_table) > expout
{ set +x
$as_echo "$at_srcdir/ofproto.at:2354: ovs-ofctl -O OpenFlow12 dump-tables br0"
at_fn_check_prepare_trace "ofproto.at:2354"
( $at_check_trace; ovs-ofctl -O OpenFlow12 dump-tables br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2354"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Change the configuration.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2356: ovs-vsctl \\
     -- --id=@t0 create Flow_Table name=main \\
     -- --id=@t1 create Flow_Table flow-limit=1024 \\
     -- set bridge br0 'flow_tables={1=@t1,0=@t0}' \\
   | uuidfilt"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2356"
( $at_check_trace; ovs-vsctl \
     -- --id=@t0 create Flow_Table name=main \
     -- --id=@t1 create Flow_Table flow-limit=1024 \
     -- set bridge br0 'flow_tables={1=@t1,0=@t0}' \
   | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<0>
<1>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2356"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Check that the configuration was updated.
(head_table main; echo '  table 1 ("table1"):
    active=0, lookup=0, matched=0
    metadata: match=0xffffffffffffffff write=0xffffffffffffffff
    config=controller
    max_entries=1024
    (same instructions)
    (same matching)

  table 2 ("table2"):
    active=0, lookup=0, matched=0
    metadata: match=0xffffffffffffffff write=0xffffffffffffffff
    config=controller
    max_entries=1000000
    (same instructions)
    (same matching)
'; ditto 3 252; tail_table) > expout
{ set +x
$as_echo "$at_srcdir/ofproto.at:2382: ovs-ofctl -O OpenFlow12 dump-tables br0"
at_fn_check_prepare_trace "ofproto.at:2382"
( $at_check_trace; ovs-ofctl -O OpenFlow12 dump-tables br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2382"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2383: check_logs "
at_fn_check_prepare_trace "ofproto.at:2383"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2383"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:2383: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:2383"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2383"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:2383: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:2383"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2383"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:2383: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:2383: wait failed" >&5

    $as_echo "ofproto.at:2383" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:2383"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:2383: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:2383"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2383"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:2383: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:2383"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2383"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:2383: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:2383: wait failed" >&5

    $as_echo "ofproto.at:2383" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:2383"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_941
#AT_START_942
at_fn_group_banner 942 'ofproto.at:2386' \
  "ofproto - table features (OpenFlow 1.3)" "        " 51
at_xfail=no
(
  $as_echo "942. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:2387: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:2387"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2387"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:2387: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:2387"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2387"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:2387: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2387"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2387"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:2387: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:2387"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2387"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:2387: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:2387"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2387"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:2387: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2387"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2387"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:2387: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:2387"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2387"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


head_table () {
    printf '  table 0 ("%s"):
    metadata: match=0xffffffffffffffff write=0xffffffffffffffff
    max_entries=1000000
    instructions (table miss and others):
      next tables: 1-253
      instructions: meter,apply_actions,clear_actions,write_actions,write_metadata,goto_table
      Write-Actions and Apply-Actions features:
        actions: output group set_field strip_vlan push_vlan mod_nw_ttl dec_ttl set_mpls_ttl dec_mpls_ttl push_mpls pop_mpls set_queue
        supported on Set-Field: tun_id tun_src tun_dst tun_ipv6_src tun_ipv6_dst tun_flags tun_gbp_id tun_gbp_flags tun_metadata0 tun_metadata1 tun_metadata2 tun_metadata3 tun_metadata4 tun_metadata5 tun_metadata6 tun_metadata7 tun_metadata8 tun_metadata9 tun_metadata10 tun_metadata11 tun_metadata12 tun_metadata13 tun_metadata14 tun_metadata15 tun_metadata16 tun_metadata17 tun_metadata18 tun_metadata19 tun_metadata20 tun_metadata21 tun_metadata22 tun_metadata23 tun_metadata24 tun_metadata25 tun_metadata26 tun_metadata27 tun_metadata28 tun_metadata29 tun_metadata30 tun_metadata31 tun_metadata32 tun_metadata33 tun_metadata34 tun_metadata35 tun_metadata36 tun_metadata37 tun_metadata38 tun_metadata39 tun_metadata40 tun_metadata41 tun_metadata42 tun_metadata43 tun_metadata44 tun_metadata45 tun_metadata46 tun_metadata47 tun_metadata48 tun_metadata49 tun_metadata50 tun_metadata51 tun_metadata52 tun_metadata53 tun_metadata54 tun_metadata55 tun_metadata56 tun_metadata57 tun_metadata58 tun_metadata59 tun_metadata60 tun_metadata61 tun_metadata62 tun_metadata63 metadata in_port in_port_oxm pkt_mark ct_mark ct_label reg0 reg1 reg2 reg3 reg4 reg5 reg6 reg7 reg8 reg9 reg10 reg11 reg12 reg13 reg14 reg15 xreg0 xreg1 xreg2 xreg3 xreg4 xreg5 xreg6 xreg7 xxreg0 xxreg1 xxreg2 xxreg3 eth_src eth_dst vlan_tci vlan_vid vlan_pcp mpls_label mpls_tc mpls_ttl ip_src ip_dst ipv6_src ipv6_dst ipv6_label nw_tos ip_dscp nw_ecn nw_ttl arp_op arp_spa arp_tpa arp_sha arp_tha tcp_src tcp_dst udp_src udp_dst sctp_src sctp_dst icmp_type icmp_code icmpv6_type icmpv6_code nd_target nd_sll nd_tll nsh_flags nsh_spi nsh_si nsh_c1 nsh_c2 nsh_c3 nsh_c4 nsh_ttl
    matching:
      dp_hash: arbitrary mask
      recirc_id: exact match or wildcard
      packet_type: exact match or wildcard
      conj_id: exact match or wildcard
      tun_id: arbitrary mask
      tun_src: arbitrary mask
      tun_dst: arbitrary mask
      tun_ipv6_src: arbitrary mask
      tun_ipv6_dst: arbitrary mask
      tun_flags: arbitrary mask
      tun_gbp_id: arbitrary mask
      tun_gbp_flags: arbitrary mask
      tun_metadata0: arbitrary mask
      tun_metadata1: arbitrary mask
      tun_metadata2: arbitrary mask
      tun_metadata3: arbitrary mask
      tun_metadata4: arbitrary mask
      tun_metadata5: arbitrary mask
      tun_metadata6: arbitrary mask
      tun_metadata7: arbitrary mask
      tun_metadata8: arbitrary mask
      tun_metadata9: arbitrary mask
      tun_metadata10: arbitrary mask
      tun_metadata11: arbitrary mask
      tun_metadata12: arbitrary mask
      tun_metadata13: arbitrary mask
      tun_metadata14: arbitrary mask
      tun_metadata15: arbitrary mask
      tun_metadata16: arbitrary mask
      tun_metadata17: arbitrary mask
      tun_metadata18: arbitrary mask
      tun_metadata19: arbitrary mask
      tun_metadata20: arbitrary mask
      tun_metadata21: arbitrary mask
      tun_metadata22: arbitrary mask
      tun_metadata23: arbitrary mask
      tun_metadata24: arbitrary mask
      tun_metadata25: arbitrary mask
      tun_metadata26: arbitrary mask
      tun_metadata27: arbitrary mask
      tun_metadata28: arbitrary mask
      tun_metadata29: arbitrary mask
      tun_metadata30: arbitrary mask
      tun_metadata31: arbitrary mask
      tun_metadata32: arbitrary mask
      tun_metadata33: arbitrary mask
      tun_metadata34: arbitrary mask
      tun_metadata35: arbitrary mask
      tun_metadata36: arbitrary mask
      tun_metadata37: arbitrary mask
      tun_metadata38: arbitrary mask
      tun_metadata39: arbitrary mask
      tun_metadata40: arbitrary mask
      tun_metadata41: arbitrary mask
      tun_metadata42: arbitrary mask
      tun_metadata43: arbitrary mask
      tun_metadata44: arbitrary mask
      tun_metadata45: arbitrary mask
      tun_metadata46: arbitrary mask
      tun_metadata47: arbitrary mask
      tun_metadata48: arbitrary mask
      tun_metadata49: arbitrary mask
      tun_metadata50: arbitrary mask
      tun_metadata51: arbitrary mask
      tun_metadata52: arbitrary mask
      tun_metadata53: arbitrary mask
      tun_metadata54: arbitrary mask
      tun_metadata55: arbitrary mask
      tun_metadata56: arbitrary mask
      tun_metadata57: arbitrary mask
      tun_metadata58: arbitrary mask
      tun_metadata59: arbitrary mask
      tun_metadata60: arbitrary mask
      tun_metadata61: arbitrary mask
      tun_metadata62: arbitrary mask
      tun_metadata63: arbitrary mask
      metadata: arbitrary mask
      in_port: exact match or wildcard
      in_port_oxm: exact match or wildcard
      actset_output: exact match or wildcard
      pkt_mark: arbitrary mask
      ct_state: arbitrary mask
      ct_zone: exact match or wildcard
      ct_mark: arbitrary mask
      ct_label: arbitrary mask
      ct_nw_proto: exact match or wildcard
      ct_nw_src: arbitrary mask
      ct_nw_dst: arbitrary mask
      ct_ipv6_src: arbitrary mask
      ct_ipv6_dst: arbitrary mask
      ct_tp_src: arbitrary mask
      ct_tp_dst: arbitrary mask
      reg0: arbitrary mask
      reg1: arbitrary mask
      reg2: arbitrary mask
      reg3: arbitrary mask
      reg4: arbitrary mask
      reg5: arbitrary mask
      reg6: arbitrary mask
      reg7: arbitrary mask
      reg8: arbitrary mask
      reg9: arbitrary mask
      reg10: arbitrary mask
      reg11: arbitrary mask
      reg12: arbitrary mask
      reg13: arbitrary mask
      reg14: arbitrary mask
      reg15: arbitrary mask
      xreg0: arbitrary mask
      xreg1: arbitrary mask
      xreg2: arbitrary mask
      xreg3: arbitrary mask
      xreg4: arbitrary mask
      xreg5: arbitrary mask
      xreg6: arbitrary mask
      xreg7: arbitrary mask
      xxreg0: arbitrary mask
      xxreg1: arbitrary mask
      xxreg2: arbitrary mask
      xxreg3: arbitrary mask
      eth_src: arbitrary mask
      eth_dst: arbitrary mask
      eth_type: exact match or wildcard
      vlan_tci: arbitrary mask
      vlan_vid: arbitrary mask
      vlan_pcp: exact match or wildcard
      mpls_label: exact match or wildcard
      mpls_tc: exact match or wildcard
      mpls_bos: exact match or wildcard
      mpls_ttl: exact match or wildcard
      ip_src: arbitrary mask
      ip_dst: arbitrary mask
      ipv6_src: arbitrary mask
      ipv6_dst: arbitrary mask
      ipv6_label: arbitrary mask
      nw_proto: exact match or wildcard
      nw_tos: exact match or wildcard
      ip_dscp: exact match or wildcard
      nw_ecn: exact match or wildcard
      nw_ttl: exact match or wildcard
      ip_frag: arbitrary mask
      arp_op: exact match or wildcard
      arp_spa: arbitrary mask
      arp_tpa: arbitrary mask
      arp_sha: arbitrary mask
      arp_tha: arbitrary mask
      tcp_src: arbitrary mask
      tcp_dst: arbitrary mask
      tcp_flags: arbitrary mask
      udp_src: arbitrary mask
      udp_dst: arbitrary mask
      sctp_src: arbitrary mask
      sctp_dst: arbitrary mask
      icmp_type: exact match or wildcard
      icmp_code: exact match or wildcard
      icmpv6_type: exact match or wildcard
      icmpv6_code: exact match or wildcard
      nd_target: arbitrary mask
      nd_sll: arbitrary mask
      nd_tll: arbitrary mask
      nsh_flags: arbitrary mask
      nsh_mdtype: exact match or wildcard
      nsh_np: exact match or wildcard
      nsh_spi: exact match or wildcard
      nsh_si: exact match or wildcard
      nsh_c1: arbitrary mask
      nsh_c2: arbitrary mask
      nsh_c3: arbitrary mask
      nsh_c4: arbitrary mask
      nsh_ttl: exact match or wildcard

' $1
}
ditto() {
    printf '  table %d ("%s"):
    metadata: match=0xffffffffffffffff write=0xffffffffffffffff
    max_entries=%d
    instructions (table miss and others):
      next tables: %d-253
      (same instructions)
      (same actions)
    (same matching)

' $1 $2 $3 `expr $1 + 1`
}
tail_tables() {
echo '  table 252 ("table252"):
    metadata: match=0xffffffffffffffff write=0xffffffffffffffff
    max_entries=1000000
    instructions (table miss and others):
      next tables: 253
      (same instructions)
      (same actions)
    (same matching)

  table 253 ("table253"):
    metadata: match=0xffffffffffffffff write=0xffffffffffffffff
    max_entries=1000000
    instructions (table miss and others):
      instructions: meter,apply_actions,clear_actions,write_actions,write_metadata
      (same actions)
    (same matching)
'
}
(head_table classifier
 for i in `seq 1 251`; do
     ditto $i table$i 1000000
 done
 tail_tables) > expout
{ set +x
$as_echo "$at_srcdir/ofproto.at:2610: ovs-ofctl -O OpenFlow13 dump-table-features br0"
at_fn_check_prepare_trace "ofproto.at:2610"
( $at_check_trace; ovs-ofctl -O OpenFlow13 dump-table-features br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2610"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Change the configuration.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2612: ovs-vsctl \\
     -- --id=@t0 create Flow_Table name=main \\
     -- --id=@t1 create Flow_Table flow-limit=1024 \\
     -- set bridge br0 'flow_tables={1=@t1,0=@t0}' \\
   | uuidfilt"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2612"
( $at_check_trace; ovs-vsctl \
     -- --id=@t0 create Flow_Table name=main \
     -- --id=@t1 create Flow_Table flow-limit=1024 \
     -- set bridge br0 'flow_tables={1=@t1,0=@t0}' \
   | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<0>
<1>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2612"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Check that the configuration was updated.
(head_table main
 ditto 1 table1 1024
 for i in `seq 2 251`; do
     ditto $i table$i 1000000
 done
 tail_tables) > expout
{ set +x
$as_echo "$at_srcdir/ofproto.at:2628: ovs-ofctl -O OpenFlow13 dump-table-features br0"
at_fn_check_prepare_trace "ofproto.at:2628"
( $at_check_trace; ovs-ofctl -O OpenFlow13 dump-table-features br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2628"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2629: check_logs "
at_fn_check_prepare_trace "ofproto.at:2629"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2629"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:2629: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:2629"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2629"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:2629: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:2629"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2629"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:2629: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:2629: wait failed" >&5

    $as_echo "ofproto.at:2629" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:2629"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:2629: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:2629"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2629"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:2629: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:2629"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2629"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:2629: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:2629: wait failed" >&5

    $as_echo "ofproto.at:2629" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:2629"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_942
#AT_START_943
at_fn_group_banner 943 'ofproto.at:2632' \
  "ofproto - table description (OpenFlow 1.4)" "     " 51
at_xfail=no
(
  $as_echo "943. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:2633: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:2633"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2633"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:2633: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:2633"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2633"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:2633: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2633"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2633"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:2633: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:2633"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2633"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:2633: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:2633"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2633"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:2633: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2633"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2633"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:2633: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:2633"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2633"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


(x=0
 while test $x -lt 254; do
   y=`expr $x + 1`
   echo "  table $x:
   eviction=off eviction_flags=OTHER|IMPORTANCE|LIFETIME
   vacancy=off"
   x=$y
 done) > expout
{ set +x
$as_echo "$at_srcdir/ofproto.at:2642: ovs-ofctl -O OpenFlow14 dump-table-desc br0 | sed '/^\$/d
/^OFPST_TABLE_DESC/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2642"
( $at_check_trace; ovs-ofctl -O OpenFlow14 dump-table-desc br0 | sed '/^$/d
/^OFPST_TABLE_DESC/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2642"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Change the configuration.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2646: ovs-ofctl -O Openflow14 mod-table br0 0 evict"
at_fn_check_prepare_trace "ofproto.at:2646"
( $at_check_trace; ovs-ofctl -O Openflow14 mod-table br0 0 evict
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2646"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Check that the configuration was updated.
mv expout orig-expout
sed -e '2s/eviction=off/eviction=on/' <orig-expout > expout
{ set +x
$as_echo "$at_srcdir/ofproto.at:2650: ovs-ofctl -O OpenFlow14 dump-table-desc br0 | sed '/^\$/d
/^OFPST_TABLE_DESC/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2650"
( $at_check_trace; ovs-ofctl -O OpenFlow14 dump-table-desc br0 | sed '/^$/d
/^OFPST_TABLE_DESC/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2650"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:2653: ovs-ofctl -O Openflow14 mod-table br0 0 vacancy:20,80"
at_fn_check_prepare_trace "ofproto.at:2653"
( $at_check_trace; ovs-ofctl -O Openflow14 mod-table br0 0 vacancy:20,80
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2653"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Check that the configuration was updated.
mv expout orig-expout
sed -e '3s/vacancy=off/vacancy=on vacancy_down=20% vacancy_up=80% vacancy=100%/' <orig-expout > expout
{ set +x
$as_echo "$at_srcdir/ofproto.at:2657: ovs-ofctl -O OpenFlow14 dump-table-desc br0 | sed '/^\$/d
/^OFPST_TABLE_DESC/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2657"
( $at_check_trace; ovs-ofctl -O OpenFlow14 dump-table-desc br0 | sed '/^$/d
/^OFPST_TABLE_DESC/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2657"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2659: check_logs "
at_fn_check_prepare_trace "ofproto.at:2659"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2659"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:2659: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:2659"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2659"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:2659: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:2659"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2659"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:2659: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:2659: wait failed" >&5

    $as_echo "ofproto.at:2659" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:2659"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:2659: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:2659"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2659"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:2659: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:2659"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2659"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:2659: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:2659: wait failed" >&5

    $as_echo "ofproto.at:2659" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:2659"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_943
#AT_START_944
at_fn_group_banner 944 'ofproto.at:2662' \
  "ofproto - hard limits on flow table size (OpenFlow 1.0)" "" 51
at_xfail=no
(
  $as_echo "944. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:2663: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:2663"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2663"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:2663: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:2663"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2663"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:2663: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2663"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2663"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:2663: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:2663"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2663"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:2663: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:2663"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2663"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:2663: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2663"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2663"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:2663: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:2663"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2663"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Configure a maximum of 4 flows.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2665: ovs-vsctl \\
     -- --id=@t0 create Flow_Table flow-limit=4 \\
     -- set bridge br0 flow_tables:0=@t0 \\
   | uuidfilt"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2665"
( $at_check_trace; ovs-vsctl \
     -- --id=@t0 create Flow_Table flow-limit=4 \
     -- set bridge br0 flow_tables:0=@t0 \
   | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<0>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2665"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Add 4 flows.
for in_port in 1 2 3 4; do
    ovs-ofctl add-flow br0 in_port=$in_port,actions=drop
done
{ set +x
$as_echo "$at_srcdir/ofproto.at:2676: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:2676"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " in_port=1 actions=drop
 in_port=2 actions=drop
 in_port=3 actions=drop
 in_port=4 actions=drop
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2676"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Adding another flow will be refused.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2684: ovs-ofctl add-flow br0 in_port=5,actions=drop"
at_fn_check_prepare_trace "ofproto.at:2684"
( $at_check_trace; ovs-ofctl add-flow br0 in_port=5,actions=drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:2684"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2685: ofctl_strip < stderr"
at_fn_check_prepare_trace "ofproto.at:2685"
( $at_check_trace; ofctl_strip < stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR: OFPFMFC_TABLE_FULL
OFPT_FLOW_MOD: ADD in_port=5 actions=drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2685"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Also a mod-flow that would add a flow will be refused.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2690: ovs-ofctl mod-flows br0 in_port=5,actions=drop"
at_fn_check_prepare_trace "ofproto.at:2690"
( $at_check_trace; ovs-ofctl mod-flows br0 in_port=5,actions=drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:2690"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2691: ofctl_strip < stderr"
at_fn_check_prepare_trace "ofproto.at:2691"
( $at_check_trace; ofctl_strip < stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR: OFPFMFC_TABLE_FULL
OFPT_FLOW_MOD: MOD in_port=5 actions=drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2691"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Replacing or modifying an existing flow is allowed.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2696: ovs-ofctl add-flow br0 in_port=4,actions=normal"
at_fn_check_prepare_trace "ofproto.at:2696"
( $at_check_trace; ovs-ofctl add-flow br0 in_port=4,actions=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2696"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2697: ovs-ofctl mod-flows br0 in_port=3,actions=output:1"
at_fn_check_prepare_trace "ofproto.at:2697"
( $at_check_trace; ovs-ofctl mod-flows br0 in_port=3,actions=output:1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2697"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2698: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:2698"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " in_port=1 actions=drop
 in_port=2 actions=drop
 in_port=3 actions=output:1
 in_port=4 actions=NORMAL
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2698"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2705: check_logs "
at_fn_check_prepare_trace "ofproto.at:2705"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2705"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:2705: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:2705"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2705"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:2705: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:2705"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2705"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:2705: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:2705: wait failed" >&5

    $as_echo "ofproto.at:2705" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:2705"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:2705: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:2705"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2705"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:2705: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:2705"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2705"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:2705: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:2705: wait failed" >&5

    $as_echo "ofproto.at:2705" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:2705"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_944
#AT_START_945
at_fn_group_banner 945 'ofproto.at:2708' \
  "ofproto - hard limits on flow table size (OpenFlow 1.2)" "" 51
at_xfail=no
(
  $as_echo "945. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:2709: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:2709"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2709"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:2709: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:2709"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2709"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:2709: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2709"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2709"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:2709: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:2709"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2709"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:2709: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:2709"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2709"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:2709: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2709"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2709"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:2709: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:2709"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2709"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Configure a maximum of 4 flows.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2711: ovs-vsctl \\
     -- --id=@t0 create Flow_Table flow-limit=4 \\
     -- set bridge br0 flow_tables:0=@t0 \\
   | uuidfilt"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2711"
( $at_check_trace; ovs-vsctl \
     -- --id=@t0 create Flow_Table flow-limit=4 \
     -- set bridge br0 flow_tables:0=@t0 \
   | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<0>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2711"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Add 4 flows.
for in_port in 1 2 3 4; do
    ovs-ofctl -O OpenFlow12 add-flow br0 in_port=$in_port,actions=drop
done
{ set +x
$as_echo "$at_srcdir/ofproto.at:2722: ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:2722"
( $at_check_trace; ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " in_port=1 actions=drop
 in_port=2 actions=drop
 in_port=3 actions=drop
 in_port=4 actions=drop
OFPST_FLOW reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2722"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Adding another flow will be refused.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2730: ovs-ofctl -O OpenFlow12 add-flow br0 in_port=5,actions=drop"
at_fn_check_prepare_trace "ofproto.at:2730"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 in_port=5,actions=drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:2730"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2731: ofctl_strip < stderr"
at_fn_check_prepare_trace "ofproto.at:2731"
( $at_check_trace; ofctl_strip < stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (OF1.2): OFPFMFC_TABLE_FULL
OFPT_FLOW_MOD (OF1.2): ADD in_port=5 actions=drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2731"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Replacing or modifying an existing flow is allowed.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2736: ovs-ofctl -O OpenFlow12 add-flow br0 in_port=4,actions=normal"
at_fn_check_prepare_trace "ofproto.at:2736"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 in_port=4,actions=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2736"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2737: ovs-ofctl -O OpenFlow12 mod-flows br0 in_port=3,actions=output:1"
at_fn_check_prepare_trace "ofproto.at:2737"
( $at_check_trace; ovs-ofctl -O OpenFlow12 mod-flows br0 in_port=3,actions=output:1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2737"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2738: ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:2738"
( $at_check_trace; ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " in_port=1 actions=drop
 in_port=2 actions=drop
 in_port=3 actions=output:1
 in_port=4 actions=NORMAL
OFPST_FLOW reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2738"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2745: check_logs "
at_fn_check_prepare_trace "ofproto.at:2745"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2745"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:2745: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:2745"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2745"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:2745: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:2745"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2745"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:2745: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:2745: wait failed" >&5

    $as_echo "ofproto.at:2745" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:2745"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:2745: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:2745"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2745"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:2745: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:2745"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2745"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:2745: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:2745: wait failed" >&5

    $as_echo "ofproto.at:2745" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:2745"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_945
#AT_START_946
at_fn_group_banner 946 'ofproto.at:2748' \
  "ofproto - eviction upon table overflow (OpenFlow 1.0)" "" 51
at_xfail=no
(
  $as_echo "946. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:2749: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:2749"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2749"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:2749: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:2749"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2749"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:2749: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2749"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2749"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:2749: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:2749"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2749"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:2749: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:2749"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2749"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:2749: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2749"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2749"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:2749: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:2749"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2749"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Configure a maximum of 4 flows.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2751: ovs-vsctl \\
     -- --id=@t0 create Flow_Table flow-limit=4 overflow-policy=evict \\
     -- set bridge br0 flow_tables:0=@t0 \\
   | uuidfilt"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2751"
( $at_check_trace; ovs-vsctl \
     -- --id=@t0 create Flow_Table flow-limit=4 overflow-policy=evict \
     -- set bridge br0 flow_tables:0=@t0 \
   | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<0>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2751"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Add 4 flows.
for in_port in 4 3 2 1; do
    ovs-ofctl add-flow br0 idle_timeout=${in_port}0,in_port=$in_port,actions=drop
done
{ set +x
$as_echo "$at_srcdir/ofproto.at:2762: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:2762"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " idle_timeout=10, in_port=1 actions=drop
 idle_timeout=20, in_port=2 actions=drop
 idle_timeout=30, in_port=3 actions=drop
 idle_timeout=40, in_port=4 actions=drop
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2762"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Adding another flow will cause the one that expires soonest to be evicted.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2770: ovs-ofctl add-flow br0 in_port=5,actions=drop"
at_fn_check_prepare_trace "ofproto.at:2770"
( $at_check_trace; ovs-ofctl add-flow br0 in_port=5,actions=drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2770"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2771: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:2771"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " idle_timeout=20, in_port=2 actions=drop
 idle_timeout=30, in_port=3 actions=drop
 idle_timeout=40, in_port=4 actions=drop
 in_port=5 actions=drop
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2771"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# A mod-flow that adds a flow also causes eviction, but replacing or
# modifying an existing flow doesn't.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2780: ovs-ofctl mod-flows br0 in_port=6,actions=drop"
at_fn_check_prepare_trace "ofproto.at:2780"
( $at_check_trace; ovs-ofctl mod-flows br0 in_port=6,actions=drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2780"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2781: ovs-ofctl add-flow br0 in_port=4,actions=normal"
at_fn_check_prepare_trace "ofproto.at:2781"
( $at_check_trace; ovs-ofctl add-flow br0 in_port=4,actions=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2781"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2782: ovs-ofctl mod-flows br0 in_port=3,actions=output:1"
at_fn_check_prepare_trace "ofproto.at:2782"
( $at_check_trace; ovs-ofctl mod-flows br0 in_port=3,actions=output:1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2782"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2783: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:2783"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " idle_timeout=30, in_port=3 actions=output:1
 in_port=4 actions=NORMAL
 in_port=5 actions=drop
 in_port=6 actions=drop
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2783"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Flows with no timeouts at all cannot be evicted.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2791: ovs-ofctl add-flow br0 in_port=7,actions=normal"
at_fn_check_prepare_trace "ofproto.at:2791"
( $at_check_trace; ovs-ofctl add-flow br0 in_port=7,actions=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2791"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2792: ovs-ofctl add-flow br0 in_port=8,actions=drop"
at_fn_check_prepare_trace "ofproto.at:2792"
( $at_check_trace; ovs-ofctl add-flow br0 in_port=8,actions=drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:2792"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2793: ofctl_strip < stderr"
at_fn_check_prepare_trace "ofproto.at:2793"
( $at_check_trace; ofctl_strip < stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR: OFPFMFC_TABLE_FULL
OFPT_FLOW_MOD: ADD in_port=8 actions=drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2793"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2797: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:2797"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " in_port=4 actions=NORMAL
 in_port=5 actions=drop
 in_port=6 actions=drop
 in_port=7 actions=NORMAL
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2797"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2804: check_logs "
at_fn_check_prepare_trace "ofproto.at:2804"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2804"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:2804: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:2804"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2804"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:2804: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:2804"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2804"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:2804: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:2804: wait failed" >&5

    $as_echo "ofproto.at:2804" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:2804"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:2804: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:2804"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2804"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:2804: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:2804"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2804"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:2804: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:2804: wait failed" >&5

    $as_echo "ofproto.at:2804" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:2804"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_946
#AT_START_947
at_fn_group_banner 947 'ofproto.at:2807' \
  "ofproto - eviction upon table overflow (OpenFlow 1.2)" "" 51
at_xfail=no
(
  $as_echo "947. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:2808: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:2808"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2808"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:2808: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:2808"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2808"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:2808: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2808"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2808"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:2808: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:2808"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2808"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:2808: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:2808"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2808"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:2808: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2808"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2808"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:2808: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:2808"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2808"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Configure a maximum of 4 flows.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2810: ovs-vsctl \\
     -- --id=@t0 create Flow_Table flow-limit=4 overflow-policy=evict \\
     -- set bridge br0 flow_tables:0=@t0 \\
   | uuidfilt"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2810"
( $at_check_trace; ovs-vsctl \
     -- --id=@t0 create Flow_Table flow-limit=4 overflow-policy=evict \
     -- set bridge br0 flow_tables:0=@t0 \
   | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<0>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2810"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Add 4 flows.
for in_port in 4 3 2 1; do
    ovs-ofctl -O OpenFlow12 add-flow br0 idle_timeout=${in_port}0,in_port=$in_port,actions=drop
done
{ set +x
$as_echo "$at_srcdir/ofproto.at:2821: ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:2821"
( $at_check_trace; ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " idle_timeout=10, in_port=1 actions=drop
 idle_timeout=20, in_port=2 actions=drop
 idle_timeout=30, in_port=3 actions=drop
 idle_timeout=40, in_port=4 actions=drop
OFPST_FLOW reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2821"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Adding another flow will cause the one that expires soonest to be evicted.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2829: ovs-ofctl -O OpenFlow12 add-flow br0 in_port=5,actions=drop"
at_fn_check_prepare_trace "ofproto.at:2829"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 in_port=5,actions=drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2829"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2830: ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:2830"
( $at_check_trace; ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " idle_timeout=20, in_port=2 actions=drop
 idle_timeout=30, in_port=3 actions=drop
 idle_timeout=40, in_port=4 actions=drop
 in_port=5 actions=drop
OFPST_FLOW reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2830"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# In OpenFlow 1.2 a mod-flow does not ever add a flow and thus
# has no effect on eviction
{ set +x
$as_echo "$at_srcdir/ofproto.at:2839: ovs-ofctl -O OpenFlow12 mod-flows br0 in_port=6,actions=drop"
at_fn_check_prepare_trace "ofproto.at:2839"
( $at_check_trace; ovs-ofctl -O OpenFlow12 mod-flows br0 in_port=6,actions=drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2839"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2840: ovs-ofctl -O OpenFlow12 add-flow br0 in_port=4,actions=normal"
at_fn_check_prepare_trace "ofproto.at:2840"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 in_port=4,actions=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2840"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2841: ovs-ofctl -O OpenFlow12 mod-flows br0 in_port=3,actions=output:1"
at_fn_check_prepare_trace "ofproto.at:2841"
( $at_check_trace; ovs-ofctl -O OpenFlow12 mod-flows br0 in_port=3,actions=output:1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2841"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2842: ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:2842"
( $at_check_trace; ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " idle_timeout=20, in_port=2 actions=drop
 idle_timeout=30, in_port=3 actions=output:1
 in_port=4 actions=NORMAL
 in_port=5 actions=drop
OFPST_FLOW reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2842"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Flows with no timeouts at all cannot be evicted.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2850: ovs-ofctl -O OpenFlow12 add-flow br0 in_port=6,actions=drop"
at_fn_check_prepare_trace "ofproto.at:2850"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 in_port=6,actions=drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2850"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2851: ovs-ofctl -O OpenFlow12 add-flow br0 in_port=7,actions=normal"
at_fn_check_prepare_trace "ofproto.at:2851"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 in_port=7,actions=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2851"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2852: ovs-ofctl -O OpenFlow12 add-flow br0 in_port=8,actions=drop"
at_fn_check_prepare_trace "ofproto.at:2852"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 in_port=8,actions=drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:2852"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2853: ofctl_strip < stderr"
at_fn_check_prepare_trace "ofproto.at:2853"
( $at_check_trace; ofctl_strip < stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (OF1.2): OFPFMFC_TABLE_FULL
OFPT_FLOW_MOD (OF1.2): ADD in_port=8 actions=drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2853"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2857: ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:2857"
( $at_check_trace; ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " in_port=4 actions=NORMAL
 in_port=5 actions=drop
 in_port=6 actions=drop
 in_port=7 actions=NORMAL
OFPST_FLOW reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2857"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2864: check_logs "
at_fn_check_prepare_trace "ofproto.at:2864"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2864"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:2864: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:2864"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2864"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:2864: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:2864"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2864"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:2864: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:2864: wait failed" >&5

    $as_echo "ofproto.at:2864" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:2864"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:2864: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:2864"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2864"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:2864: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:2864"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2864"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:2864: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:2864: wait failed" >&5

    $as_echo "ofproto.at:2864" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:2864"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_947
#AT_START_948
at_fn_group_banner 948 'ofproto.at:2867' \
  "ofproto - eviction using importance upon table overflow (OpenFlow 1.4)" "" 51
at_xfail=no
(
  $as_echo "948. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:2868: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:2868"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2868"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:2868: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:2868"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2868"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:2868: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2868"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2868"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:2868: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:2868"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2868"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:2868: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:2868"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2868"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:2868: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2868"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2868"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:2868: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:2868"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2868"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Configure a maximum of 4 flows.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2870: ovs-vsctl \\
     -- --id=@t0 create Flow_Table name=evict flow-limit=4 \\
     -- set bridge br0 flow_tables:0=@t0 \\
   | uuidfilt"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2870"
( $at_check_trace; ovs-vsctl \
     -- --id=@t0 create Flow_Table name=evict flow-limit=4 \
     -- set bridge br0 flow_tables:0=@t0 \
   | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<0>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2870"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Use mod-table to turn on eviction just to demonstrate that it works.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2878: ovs-ofctl -O OpenFlow14 mod-table br0 0 evict"
at_fn_check_prepare_trace "ofproto.at:2878"
( $at_check_trace; ovs-ofctl -O OpenFlow14 mod-table br0 0 evict
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2878"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Add 4 flows.
for in_port in 4 3 2 1; do
    ovs-ofctl -O Openflow14 add-flow br0 importance=$((in_port + 30)),priority=$((in_port + 5)),hard_timeout=$((in_port + 500)),actions=drop
done
{ set +x
$as_echo "$at_srcdir/ofproto.at:2883: ovs-ofctl -O Openflow14 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:2883"
( $at_check_trace; ovs-ofctl -O Openflow14 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " hard_timeout=501, importance=31, priority=6 actions=drop
 hard_timeout=502, importance=32, priority=7 actions=drop
 hard_timeout=503, importance=33, priority=8 actions=drop
 hard_timeout=504, importance=34, priority=9 actions=drop
OFPST_FLOW reply (OF1.4):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2883"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Adding another flow will cause the one with lowest importance to be evicted.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2891: ovs-ofctl -O Openflow14 add-flow br0 hard_timeout=505,importance=35,priority=10,in_port=2,actions=drop"
at_fn_check_prepare_trace "ofproto.at:2891"
( $at_check_trace; ovs-ofctl -O Openflow14 add-flow br0 hard_timeout=505,importance=35,priority=10,in_port=2,actions=drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2891"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2892: ovs-ofctl -O Openflow14 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:2892"
( $at_check_trace; ovs-ofctl -O Openflow14 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " hard_timeout=502, importance=32, priority=7 actions=drop
 hard_timeout=503, importance=33, priority=8 actions=drop
 hard_timeout=504, importance=34, priority=9 actions=drop
 hard_timeout=505, importance=35, priority=10,in_port=2 actions=drop
OFPST_FLOW reply (OF1.4):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2892"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Disable the Eviction configuration.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2900: ovs-ofctl -O OpenFlow14 mod-table br0 0 noevict"
at_fn_check_prepare_trace "ofproto.at:2900"
( $at_check_trace; ovs-ofctl -O OpenFlow14 mod-table br0 0 noevict
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2900"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Adding another flow will cause the system to give error for FULL TABLE.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2902: ovs-ofctl -O Openflow14 add-flow br0 hard_timeout=506,importance=36,priority=11,actions=drop"
at_fn_check_prepare_trace "ofproto.at:2902"
( $at_check_trace; ovs-ofctl -O Openflow14 add-flow br0 hard_timeout=506,importance=36,priority=11,actions=drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:2902"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2903: ofctl_strip < stderr"
at_fn_check_prepare_trace "ofproto.at:2903"
( $at_check_trace; ofctl_strip < stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (OF1.4): OFPFMFC_TABLE_FULL
OFPT_FLOW_MOD (OF1.4): ADD priority=11 hard:506 importance:36 actions=drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2903"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

#Dump flows. It should show only the old values
{ set +x
$as_echo "$at_srcdir/ofproto.at:2908: ovs-ofctl -O Openflow14 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:2908"
( $at_check_trace; ovs-ofctl -O Openflow14 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " hard_timeout=502, importance=32, priority=7 actions=drop
 hard_timeout=503, importance=33, priority=8 actions=drop
 hard_timeout=504, importance=34, priority=9 actions=drop
 hard_timeout=505, importance=35, priority=10,in_port=2 actions=drop
OFPST_FLOW reply (OF1.4):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2908"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# mod-flow that would modify a flow will be done successfully.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2916: ovs-ofctl -O Openflow14 mod-flows br0 in_port=2,actions=NORMAL"
at_fn_check_prepare_trace "ofproto.at:2916"
( $at_check_trace; ovs-ofctl -O Openflow14 mod-flows br0 in_port=2,actions=NORMAL
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2916"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2917: ovs-ofctl -O Openflow14 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:2917"
( $at_check_trace; ovs-ofctl -O Openflow14 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " hard_timeout=502, importance=32, priority=7 actions=drop
 hard_timeout=503, importance=33, priority=8 actions=drop
 hard_timeout=504, importance=34, priority=9 actions=drop
 hard_timeout=505, importance=35, priority=10,in_port=2 actions=NORMAL
OFPST_FLOW reply (OF1.4):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2917"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Also a mod-flow that would add a flow will be refused.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2925: ovs-ofctl mod-flows br0 in_port=5,actions=drop"
at_fn_check_prepare_trace "ofproto.at:2925"
( $at_check_trace; ovs-ofctl mod-flows br0 in_port=5,actions=drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:2925"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2926: ofctl_strip < stderr"
at_fn_check_prepare_trace "ofproto.at:2926"
( $at_check_trace; ofctl_strip < stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR: OFPFMFC_TABLE_FULL
OFPT_FLOW_MOD: MOD in_port=5 actions=drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2926"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2930: check_logs "
at_fn_check_prepare_trace "ofproto.at:2930"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2930"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:2930: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:2930"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2930"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:2930: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:2930"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2930"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:2930: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:2930: wait failed" >&5

    $as_echo "ofproto.at:2930" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:2930"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:2930: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:2930"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2930"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:2930: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:2930"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2930"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:2930: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:2930: wait failed" >&5

    $as_echo "ofproto.at:2930" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:2930"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_948
#AT_START_949
at_fn_group_banner 949 'ofproto.at:2933' \
  "ofproto - eviction upon table overflow, with fairness (OpenFlow 1.0)" "" 51
at_xfail=no
(
  $as_echo "949. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:2934: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:2934"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2934"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:2934: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:2934"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2934"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:2934: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2934"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2934"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:2934: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:2934"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2934"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:2934: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:2934"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2934"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:2934: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2934"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2934"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:2934: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:2934"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2934"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Configure a maximum of 4 flows.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2936: ovs-vsctl \\
     -- --id=@t0 create Flow_Table name=evict flow-limit=4 \\
                                   overflow-policy=evict \\
                                   groups='\"NXM_OF_IN_PORT[]\"' \\
     -- set bridge br0 flow_tables:0=@t0 \\
   | uuidfilt"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:2936"
( $at_check_trace; ovs-vsctl \
     -- --id=@t0 create Flow_Table name=evict flow-limit=4 \
                                   overflow-policy=evict \
                                   groups='"NXM_OF_IN_PORT[]"' \
     -- set bridge br0 flow_tables:0=@t0 \
   | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<0>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2936"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Add 4 flows.
ovs-ofctl add-flows br0 - <<EOF
idle_timeout=10 in_port=2 dl_src=00:44:55:66:77:88 actions=drop
idle_timeout=20 in_port=1 dl_src=00:11:22:33:44:55 actions=drop
idle_timeout=30 in_port=1 dl_src=00:22:33:44:55:66 actions=drop
idle_timeout=40 in_port=1 dl_src=00:33:44:55:66:77 actions=drop
EOF
{ set +x
$as_echo "$at_srcdir/ofproto.at:2952: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:2952"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " idle_timeout=10, in_port=2,dl_src=00:44:55:66:77:88 actions=drop
 idle_timeout=20, in_port=1,dl_src=00:11:22:33:44:55 actions=drop
 idle_timeout=30, in_port=1,dl_src=00:22:33:44:55:66 actions=drop
 idle_timeout=40, in_port=1,dl_src=00:33:44:55:66:77 actions=drop
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2952"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Adding another flow will cause the one that expires soonest within
# the largest group (those with in_port=1) to be evicted.  In this
# case this is not the same as the one that expires soonest overall
# (which is what makes the test interesting):
{ set +x
$as_echo "$at_srcdir/ofproto.at:2963: ovs-ofctl add-flow br0 in_port=2,dl_src=00:55:66:77:88:99,actions=drop"
at_fn_check_prepare_trace "ofproto.at:2963"
( $at_check_trace; ovs-ofctl add-flow br0 in_port=2,dl_src=00:55:66:77:88:99,actions=drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2963"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2964: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:2964"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " idle_timeout=10, in_port=2,dl_src=00:44:55:66:77:88 actions=drop
 idle_timeout=30, in_port=1,dl_src=00:22:33:44:55:66 actions=drop
 idle_timeout=40, in_port=1,dl_src=00:33:44:55:66:77 actions=drop
 in_port=2,dl_src=00:55:66:77:88:99 actions=drop
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2964"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Enlarge the flow limit, change the eviction policy back to strictly
# based on expiration, and and add some flows.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2973: ovs-vsctl set Flow_Table evict groups='[]' flow-limit=7"
at_fn_check_prepare_trace "ofproto.at:2973"
( $at_check_trace; ovs-vsctl set Flow_Table evict groups='[]' flow-limit=7
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2973"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-ofctl add-flows br0 - <<EOF
idle_timeout=50 in_port=2 dl_src=00:66:77:88:99:aa actions=drop
idle_timeout=60 in_port=2 dl_src=00:77:88:99:aa:bb actions=drop
idle_timeout=70 in_port=2 dl_src=00:88:99:aa:bb:cc actions=drop
EOF
{ set +x
$as_echo "$at_srcdir/ofproto.at:2979: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:2979"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " idle_timeout=10, in_port=2,dl_src=00:44:55:66:77:88 actions=drop
 idle_timeout=30, in_port=1,dl_src=00:22:33:44:55:66 actions=drop
 idle_timeout=40, in_port=1,dl_src=00:33:44:55:66:77 actions=drop
 idle_timeout=50, in_port=2,dl_src=00:66:77:88:99:aa actions=drop
 idle_timeout=60, in_port=2,dl_src=00:77:88:99:aa:bb actions=drop
 idle_timeout=70, in_port=2,dl_src=00:88:99:aa:bb:cc actions=drop
 in_port=2,dl_src=00:55:66:77:88:99 actions=drop
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2979"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Adding another flow will cause the one that expires soonest overall
# to be evicted.
{ set +x
$as_echo "$at_srcdir/ofproto.at:2991: ovs-ofctl add-flow br0 'idle_timeout=80 in_port=2 dl_src=00:99:aa:bb:cc:dd actions=drop'"
at_fn_check_prepare_trace "ofproto.at:2991"
( $at_check_trace; ovs-ofctl add-flow br0 'idle_timeout=80 in_port=2 dl_src=00:99:aa:bb:cc:dd actions=drop'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2991"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:2992: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:2992"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " idle_timeout=30, in_port=1,dl_src=00:22:33:44:55:66 actions=drop
 idle_timeout=40, in_port=1,dl_src=00:33:44:55:66:77 actions=drop
 idle_timeout=50, in_port=2,dl_src=00:66:77:88:99:aa actions=drop
 idle_timeout=60, in_port=2,dl_src=00:77:88:99:aa:bb actions=drop
 idle_timeout=70, in_port=2,dl_src=00:88:99:aa:bb:cc actions=drop
 idle_timeout=80, in_port=2,dl_src=00:99:aa:bb:cc:dd actions=drop
 in_port=2,dl_src=00:55:66:77:88:99 actions=drop
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:2992"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Reducing the flow limit also causes the flows that expire soonest
# overall to be evicted.
{ set +x
$as_echo "$at_srcdir/ofproto.at:3004: ovs-vsctl set Flow_Table evict flow-limit=4"
at_fn_check_prepare_trace "ofproto.at:3004"
( $at_check_trace; ovs-vsctl set Flow_Table evict flow-limit=4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3004"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:3005: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:3005"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " idle_timeout=60, in_port=2,dl_src=00:77:88:99:aa:bb actions=drop
 idle_timeout=70, in_port=2,dl_src=00:88:99:aa:bb:cc actions=drop
 idle_timeout=80, in_port=2,dl_src=00:99:aa:bb:cc:dd actions=drop
 in_port=2,dl_src=00:55:66:77:88:99 actions=drop
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3005"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:3012: check_logs "
at_fn_check_prepare_trace "ofproto.at:3012"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3012"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:3012: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:3012"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3012"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:3012: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:3012"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3012"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:3012: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:3012: wait failed" >&5

    $as_echo "ofproto.at:3012" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:3012"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:3012: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:3012"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3012"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:3012: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:3012"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3012"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:3012: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:3012: wait failed" >&5

    $as_echo "ofproto.at:3012" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:3012"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_949
#AT_START_950
at_fn_group_banner 950 'ofproto.at:3015' \
  "ofproto - eviction upon table overflow, with fairness (OpenFlow 1.2)" "" 51
at_xfail=no
(
  $as_echo "950. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:3016: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:3016"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3016"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:3016: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:3016"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3016"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:3016: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:3016"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3016"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:3016: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:3016"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3016"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:3016: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:3016"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3016"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:3016: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:3016"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3016"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:3016: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:3016"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3016"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Configure a maximum of 4 flows.
{ set +x
$as_echo "$at_srcdir/ofproto.at:3018: ovs-vsctl \\
     -- --id=@t0 create Flow_Table name=evict flow-limit=4 \\
                                   overflow-policy=evict \\
                                   groups='\"NXM_OF_IN_PORT[]\"' \\
     -- set bridge br0 flow_tables:0=@t0 \\
   | uuidfilt"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:3018"
( $at_check_trace; ovs-vsctl \
     -- --id=@t0 create Flow_Table name=evict flow-limit=4 \
                                   overflow-policy=evict \
                                   groups='"NXM_OF_IN_PORT[]"' \
     -- set bridge br0 flow_tables:0=@t0 \
   | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<0>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3018"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Add 4 flows.
ovs-ofctl -O OpenFlow12 add-flows br0 - <<EOF
idle_timeout=10 in_port=2 dl_src=00:44:55:66:77:88 actions=drop
idle_timeout=20 in_port=1 dl_src=00:11:22:33:44:55 actions=drop
idle_timeout=30 in_port=1 dl_src=00:22:33:44:55:66 actions=drop
idle_timeout=40 in_port=1 dl_src=00:33:44:55:66:77 actions=drop
EOF
{ set +x
$as_echo "$at_srcdir/ofproto.at:3034: ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:3034"
( $at_check_trace; ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " idle_timeout=10, in_port=2,dl_src=00:44:55:66:77:88 actions=drop
 idle_timeout=20, in_port=1,dl_src=00:11:22:33:44:55 actions=drop
 idle_timeout=30, in_port=1,dl_src=00:22:33:44:55:66 actions=drop
 idle_timeout=40, in_port=1,dl_src=00:33:44:55:66:77 actions=drop
OFPST_FLOW reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3034"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Adding another flow will cause the one that expires soonest within
# the largest group (those with in_port=1) to be evicted.  In this
# case this is not the same as the one that expires soonest overall
# (which is what makes the test interesting):
{ set +x
$as_echo "$at_srcdir/ofproto.at:3045: ovs-ofctl -O OpenFlow12 add-flow br0 in_port=2,dl_src=00:55:66:77:88:99,actions=drop"
at_fn_check_prepare_trace "ofproto.at:3045"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 in_port=2,dl_src=00:55:66:77:88:99,actions=drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3045"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:3046: ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:3046"
( $at_check_trace; ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " idle_timeout=10, in_port=2,dl_src=00:44:55:66:77:88 actions=drop
 idle_timeout=30, in_port=1,dl_src=00:22:33:44:55:66 actions=drop
 idle_timeout=40, in_port=1,dl_src=00:33:44:55:66:77 actions=drop
 in_port=2,dl_src=00:55:66:77:88:99 actions=drop
OFPST_FLOW reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3046"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Enlarge the flow limit, change the eviction policy back to strictly
# based on expiration, and and add some flows.
{ set +x
$as_echo "$at_srcdir/ofproto.at:3055: ovs-vsctl set Flow_Table evict groups='[]' flow-limit=7"
at_fn_check_prepare_trace "ofproto.at:3055"
( $at_check_trace; ovs-vsctl set Flow_Table evict groups='[]' flow-limit=7
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3055"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-ofctl -O OpenFlow12 add-flows br0 - <<EOF
idle_timeout=50 in_port=2 dl_src=00:66:77:88:99:aa actions=drop
idle_timeout=60 in_port=2 dl_src=00:77:88:99:aa:bb actions=drop
idle_timeout=70 in_port=2 dl_src=00:88:99:aa:bb:cc actions=drop
EOF
{ set +x
$as_echo "$at_srcdir/ofproto.at:3061: ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:3061"
( $at_check_trace; ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " idle_timeout=10, in_port=2,dl_src=00:44:55:66:77:88 actions=drop
 idle_timeout=30, in_port=1,dl_src=00:22:33:44:55:66 actions=drop
 idle_timeout=40, in_port=1,dl_src=00:33:44:55:66:77 actions=drop
 idle_timeout=50, in_port=2,dl_src=00:66:77:88:99:aa actions=drop
 idle_timeout=60, in_port=2,dl_src=00:77:88:99:aa:bb actions=drop
 idle_timeout=70, in_port=2,dl_src=00:88:99:aa:bb:cc actions=drop
 in_port=2,dl_src=00:55:66:77:88:99 actions=drop
OFPST_FLOW reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3061"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Adding another flow will cause the one that expires soonest overall
# to be evicted.
{ set +x
$as_echo "$at_srcdir/ofproto.at:3073: ovs-ofctl -O OpenFlow12 add-flow br0 'idle_timeout=80 in_port=2 dl_src=00:99:aa:bb:cc:dd actions=drop'"
at_fn_check_prepare_trace "ofproto.at:3073"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 'idle_timeout=80 in_port=2 dl_src=00:99:aa:bb:cc:dd actions=drop'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3073"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:3074: ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:3074"
( $at_check_trace; ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " idle_timeout=30, in_port=1,dl_src=00:22:33:44:55:66 actions=drop
 idle_timeout=40, in_port=1,dl_src=00:33:44:55:66:77 actions=drop
 idle_timeout=50, in_port=2,dl_src=00:66:77:88:99:aa actions=drop
 idle_timeout=60, in_port=2,dl_src=00:77:88:99:aa:bb actions=drop
 idle_timeout=70, in_port=2,dl_src=00:88:99:aa:bb:cc actions=drop
 idle_timeout=80, in_port=2,dl_src=00:99:aa:bb:cc:dd actions=drop
 in_port=2,dl_src=00:55:66:77:88:99 actions=drop
OFPST_FLOW reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3074"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Reducing the flow limit also causes the flows that expire soonest
# overall to be evicted.
{ set +x
$as_echo "$at_srcdir/ofproto.at:3086: ovs-vsctl set Flow_Table evict flow-limit=4"
at_fn_check_prepare_trace "ofproto.at:3086"
( $at_check_trace; ovs-vsctl set Flow_Table evict flow-limit=4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3086"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:3087: ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:3087"
( $at_check_trace; ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " idle_timeout=60, in_port=2,dl_src=00:77:88:99:aa:bb actions=drop
 idle_timeout=70, in_port=2,dl_src=00:88:99:aa:bb:cc actions=drop
 idle_timeout=80, in_port=2,dl_src=00:99:aa:bb:cc:dd actions=drop
 in_port=2,dl_src=00:55:66:77:88:99 actions=drop
OFPST_FLOW reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3087"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:3094: check_logs "
at_fn_check_prepare_trace "ofproto.at:3094"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3094"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:3094: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:3094"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3094"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:3094: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:3094"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3094"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:3094: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:3094: wait failed" >&5

    $as_echo "ofproto.at:3094" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:3094"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:3094: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:3094"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3094"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:3094: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:3094"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3094"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:3094: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:3094: wait failed" >&5

    $as_echo "ofproto.at:3094" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:3094"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_950
#AT_START_951
at_fn_group_banner 951 'ofproto.at:3097' \
  "ofproto - eviction upon table overflow, with modified hard timeout" "" 51
at_xfail=no
(
  $as_echo "951. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:3098: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:3098"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3098"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:3098: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:3098"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3098"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:3098: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:3098"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3098"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:3098: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:3098"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3098"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:3098: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:3098"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3098"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:3098: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:3098"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3098"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:3098: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:3098"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3098"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Configure a maximum of 4 flows.
{ set +x
$as_echo "$at_srcdir/ofproto.at:3100: ovs-vsctl \\
     -- --id=@t0 create Flow_Table flow-limit=4 overflow-policy=evict \\
     -- set bridge br0 flow_tables:0=@t0 \\
   | uuidfilt"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:3100"
( $at_check_trace; ovs-vsctl \
     -- --id=@t0 create Flow_Table flow-limit=4 overflow-policy=evict \
     -- set bridge br0 flow_tables:0=@t0 \
   | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<0>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3100"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/stop
# Add 4 flows.
for in_port in 4 3 2 1; do
    ovs-ofctl add-flow br0 hard_timeout=$((10 + in_port * 3)),in_port=$in_port,actions=drop
done
{ set +x
$as_echo "$at_srcdir/ofproto.at:3112: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:3112"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " hard_timeout=13, in_port=1 actions=drop
 hard_timeout=16, in_port=2 actions=drop
 hard_timeout=19, in_port=3 actions=drop
 hard_timeout=22, in_port=4 actions=drop
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3112"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Sleep and modify the one that expires soonest
ovs-appctl time/warp 5000
{ set +x
$as_echo "$at_srcdir/ofproto.at:3121: ovs-ofctl mod-flows br0 in_port=1,actions=drop"
at_fn_check_prepare_trace "ofproto.at:3121"
( $at_check_trace; ovs-ofctl mod-flows br0 in_port=1,actions=drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3121"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# At this point the table would looks like:
#  in_port   seconds to expire
#     1            13
#     2            11
#     3            14
#     4            17
ovs-appctl time/warp 2000
# Adding another flow will cause the one that expires soonest to be evicted.
{ set +x
$as_echo "$at_srcdir/ofproto.at:3130: ovs-ofctl add-flow br0 in_port=5,actions=drop"
at_fn_check_prepare_trace "ofproto.at:3130"
( $at_check_trace; ovs-ofctl add-flow br0 in_port=5,actions=drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3130"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:3131: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:3131"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " hard_timeout=13, in_port=1 actions=drop
 hard_timeout=19, in_port=3 actions=drop
 hard_timeout=22, in_port=4 actions=drop
 in_port=5 actions=drop
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3131"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:3138: check_logs "
at_fn_check_prepare_trace "ofproto.at:3138"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3138"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:3138: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:3138"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3138"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:3138: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:3138"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3138"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:3138: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:3138: wait failed" >&5

    $as_echo "ofproto.at:3138" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:3138"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:3138: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:3138"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3138"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:3138: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:3138"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3138"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:3138: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:3138: wait failed" >&5

    $as_echo "ofproto.at:3138" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:3138"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_951
#AT_START_952
at_fn_group_banner 952 'ofproto.at:3141' \
  "ofproto - eviction upon table overflow, with modified idle timeout" "" 51
at_xfail=no
(
  $as_echo "952. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:3142: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:3142"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3142"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:3142: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:3142"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3142"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:3142: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:3142"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3142"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:3142: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:3142"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3142"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:3142: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:3142"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3142"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:3142: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:3142"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3142"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:3142: add_of_br 0 add-port br0 p1 -- set interface p1 type=dummy ofport_request=1 "
at_fn_check_prepare_trace "ofproto.at:3142"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set interface p1 type=dummy ofport_request=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3142"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Configure a maximum of 4 flows.
{ set +x
$as_echo "$at_srcdir/ofproto.at:3144: ovs-vsctl \\
     -- --id=@t0 create Flow_Table flow-limit=4 overflow-policy=evict \\
     -- set bridge br0 flow_tables:0=@t0 \\
   | uuidfilt"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:3144"
( $at_check_trace; ovs-vsctl \
     -- --id=@t0 create Flow_Table flow-limit=4 overflow-policy=evict \
     -- set bridge br0 flow_tables:0=@t0 \
   | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<0>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3144"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Add 4 flows.
for in_port in 4 3 2 1; do
    ovs-ofctl add-flow br0 idle_timeout=$((10 + in_port * 3)),in_port=$in_port,actions=drop
done
ovs-appctl time/stop
{ set +x
$as_echo "$at_srcdir/ofproto.at:3156: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:3156"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " idle_timeout=13, in_port=1 actions=drop
 idle_timeout=16, in_port=2 actions=drop
 idle_timeout=19, in_port=3 actions=drop
 idle_timeout=22, in_port=4 actions=drop
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3156"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Sleep and receive on the flow that expires soonest
ovs-appctl time/warp 5000
{ set +x
$as_echo "$at_srcdir/ofproto.at:3165: ovs-appctl netdev-dummy/receive p1 'in_port(1)'"
at_fn_check_prepare_trace "ofproto.at:3165"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3165"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# At this point the table would looks like:
#  in_port   seconds to expire
#     1            13
#     2            11
#     3            14
#     4            17
ovs-appctl time/warp 2000
# Adding another flow will cause the one that expires soonest to be evicted.
{ set +x
$as_echo "$at_srcdir/ofproto.at:3174: ovs-ofctl add-flow br0 in_port=5,actions=drop"
at_fn_check_prepare_trace "ofproto.at:3174"
( $at_check_trace; ovs-ofctl add-flow br0 in_port=5,actions=drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3174"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:3175: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:3175"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " idle_timeout=19, in_port=3 actions=drop
 idle_timeout=22, in_port=4 actions=drop
 in_port=5 actions=drop
 n_packets=1, n_bytes=14, idle_timeout=13, in_port=1 actions=drop
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3175"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:3182: check_logs "
at_fn_check_prepare_trace "ofproto.at:3182"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3182"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:3182: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:3182"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3182"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:3182: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:3182"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3182"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:3182: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:3182: wait failed" >&5

    $as_echo "ofproto.at:3182" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:3182"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:3182: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:3182"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3182"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:3182: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:3182"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3182"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:3182: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:3182: wait failed" >&5

    $as_echo "ofproto.at:3182" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:3182"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_952
#AT_START_953
at_fn_group_banner 953 'ofproto.at:3185' \
  "ofproto - asynchronous message control (OpenFlow 1.0)" "" 51
at_xfail=no
(
  $as_echo "953. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:3186: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:3186"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3186"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:3186: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:3186"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3186"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:3186: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:3186"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3186"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:3186: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:3186"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3186"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:3186: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:3186"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3186"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:3186: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:3186"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3186"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:3186: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:3186"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3186"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:3187: ovs-ofctl -P standard monitor br0 --detach --no-chdir --pidfile"
at_fn_check_prepare_trace "ofproto.at:3187"
( $at_check_trace; ovs-ofctl -P standard monitor br0 --detach --no-chdir --pidfile
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3187"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

check_async () {
    printf '\n\n--- check_async %d ---\n\n\n' $1
    shift

    ovs-appctl -t ovs-ofctl ofctl/barrier
    ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log
    : > expout

    # OFPT_PACKET_IN, OFPR_ACTION (controller_id=0)
    ovs-ofctl -v packet-out br0 controller controller '0001020304050010203040501234'
    if test X"$1" = X"OFPR_ACTION"; then shift;
        echo >>expout "OFPT_PACKET_IN: total_len=14 in_port=CONTROLLER (via action) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=00:10:20:30:40:50,dl_dst=00:01:02:03:04:05,dl_type=0x1234"
    fi

    # OFPT_PACKET_IN, OFPR_NO_MATCH (controller_id=123)
    ovs-ofctl -v packet-out br0 controller 'controller(reason=no_match,id=123)' '0001020304050010203040501234'
    if test X"$1" = X"OFPR_NO_MATCH"; then shift;
        echo >>expout "OFPT_PACKET_IN: total_len=14 in_port=CONTROLLER (via no_match) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=00:10:20:30:40:50,dl_dst=00:01:02:03:04:05,dl_type=0x1234"
    fi

    # OFPT_PACKET_IN, OFPR_INVALID_TTL (controller_id=0)
    ovs-ofctl packet-out br0 "in_port=controller packet=002583dfb4000026b98cb0f908004500003eb7e200000011339bac11370dac100002d7730035002b8f6d86fb0100000100000000000006626c702d7873066e696369726103636f6d00000f00 actions=dec_ttl"
    if test X"$1" = X"OFPR_INVALID_TTL"; then shift;
        echo >>expout "OFPT_PACKET_IN: total_len=76 in_port=CONTROLLER (via invalid_ttl) data_len=76 (unbuffered)
udp,vlan_tci=0x0000,dl_src=00:26:b9:8c:b0:f9,dl_dst=00:25:83:df:b4:00,nw_src=172.17.55.13,nw_dst=172.16.0.2,nw_tos=0,nw_ecn=0,nw_ttl=0,tp_src=55155,tp_dst=53 udp_csum:8f6d"
    fi

    # OFPT_PORT_STATUS, OFPPR_ADD
    ovs-vsctl add-port br0 test -- set Interface test type=dummy ofport_request=1
    if test X"$1" = X"OFPPR_ADD"; then shift;
        echo >>expout "OFPT_PORT_STATUS: ADD: 1(test): addr:aa:55:aa:55:00:0x
     config:     PORT_DOWN
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max"
    fi

    # OFPT_PORT_STATUS, OFPPR_DELETE
    ovs-vsctl del-port br0 test
    if test X"$1" = X"OFPPR_DELETE"; then shift;
        echo >>expout "OFPT_PORT_STATUS: DEL: 1(test): addr:aa:55:aa:55:00:0x
     config:     PORT_DOWN
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max"
    fi

    # OFPT_FLOW_REMOVED, OFPRR_DELETE
    ovs-ofctl add-flow br0 send_flow_rem,actions=drop
    ovs-ofctl --strict del-flows br0 ''
    if test X"$1" = X"OFPRR_DELETE"; then shift;
        echo >>expout "OFPT_FLOW_REMOVED:  reason=delete"
    fi
    $as_echo "ofproto.at:3241" >"$at_check_line_file"
(test X"$1" != X) \
  && at_fn_check_skip 99 "$at_srcdir/ofproto.at:3241"

    $as_echo "ofproto.at:3243: waiting until test \`wc -l < \"monitor.log\"\` -ge \`wc -l < \"expout\"\`..." >&5
ovs_wait_cond () {
    test `wc -l < "monitor.log"` -ge `wc -l < "expout"`
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:3243: wait failed" >&5

    $as_echo "ofproto.at:3243" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:3243"
fi


    { set +x
$as_echo "$at_srcdir/ofproto.at:3245: sed '
s/ (xid=0x[0-9a-fA-F]*)//
s/ *duration.*//
s/00:0.\$/00:0x/' < monitor.log"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:3245"
( $at_check_trace; sed '
s/ (xid=0x[0-9a-fA-F]*)//
s/ *duration.*//
s/00:0.$/00:0x/' < monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3245"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

}

# It's a service connection so initially there should be no async messages.
check_async 1

# Set miss_send_len to 128, turning on packet-ins for our service connection.
ovs-appctl -t ovs-ofctl ofctl/send 0109000c0123456700000080
check_async 2 OFPR_ACTION OFPPR_ADD OFPPR_DELETE OFPRR_DELETE

# Set miss_send_len to 128 and enable invalid_ttl.
ovs-appctl -t ovs-ofctl ofctl/send 0109000c0123456700040080
check_async 3 OFPR_ACTION OFPR_INVALID_TTL OFPPR_ADD OFPPR_DELETE OFPRR_DELETE

# Become slave, which should disable everything except port status.
ovs-appctl -t ovs-ofctl ofctl/send 0104001400000002000023200000000a00000002
check_async 4 OFPPR_ADD OFPPR_DELETE

# Use NXT_SET_ASYNC_CONFIG to enable a patchwork of asynchronous messages.
ovs-appctl -t ovs-ofctl ofctl/send 01040028000000020000232000000013000000020000000500000005000000020000000200000005
check_async 5 OFPR_INVALID_TTL OFPPR_DELETE OFPRR_DELETE

# Set controller ID 123.
ovs-appctl -t ovs-ofctl ofctl/send 01040018000000030000232000000014000000000000007b
check_async 6 OFPR_NO_MATCH OFPPR_DELETE OFPRR_DELETE

# Restore controller ID 0.
ovs-appctl -t ovs-ofctl ofctl/send 010400180000000300002320000000140000000000000000

# Become master.
ovs-appctl -t ovs-ofctl ofctl/send 0104001400000002000023200000000a00000001
check_async 7 OFPR_ACTION OFPPR_ADD

{ set +x
$as_echo "$at_srcdir/ofproto.at:3283: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:3283"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3283"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:3283: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:3283"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3283"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:3283: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:3283: wait failed" >&5

    $as_echo "ofproto.at:3283" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:3283"
fi

{ set +x
$as_echo "$at_srcdir/ofproto.at:3284: check_logs "
at_fn_check_prepare_trace "ofproto.at:3284"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3284"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:3284: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:3284"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3284"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:3284: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:3284"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3284"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:3284: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:3284: wait failed" >&5

    $as_echo "ofproto.at:3284" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:3284"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:3284: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:3284"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3284"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:3284: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:3284"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3284"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:3284: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:3284: wait failed" >&5

    $as_echo "ofproto.at:3284" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:3284"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_953
#AT_START_954
at_fn_group_banner 954 'ofproto.at:3287' \
  "ofproto - asynchronous message control (OpenFlow 1.2)" "" 51
at_xfail=no
(
  $as_echo "954. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:3288: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:3288"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3288"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:3288: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:3288"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3288"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:3288: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:3288"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3288"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:3288: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:3288"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3288"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:3288: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:3288"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3288"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:3288: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:3288"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3288"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:3288: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:3288"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3288"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:3289: ovs-ofctl -O OpenFlow12 -P standard monitor br0 --detach --no-chdir --pidfile"
at_fn_check_prepare_trace "ofproto.at:3289"
( $at_check_trace; ovs-ofctl -O OpenFlow12 -P standard monitor br0 --detach --no-chdir --pidfile
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3289"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

check_async () {
    printf '\n\n--- check_async %d ---\n\n\n' $1
    INDEX=$1
    shift

    ovs-appctl -t ovs-ofctl ofctl/barrier
    ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log
    : > expout

    # OFPT_PACKET_IN, OFPR_ACTION (controller_id=0)
    ovs-ofctl -O OpenFlow12 -v packet-out br0 none controller '0001020304050010203040501234'
    if test X"$1" = X"OFPR_ACTION"; then shift;
        echo >>expout "OFPT_PACKET_IN (OF1.2): total_len=14 in_port=ANY (via action) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=00:10:20:30:40:50,dl_dst=00:01:02:03:04:05,dl_type=0x1234"
    fi

    # OFPT_PACKET_IN, OFPR_NO_MATCH (controller_id=123)
    ovs-ofctl -O OpenFlow12 -v packet-out br0 none 'controller(reason=no_match,id=123)' '0001020304050010203040501234'
    if test X"$1" = X"OFPR_NO_MATCH"; then shift;
        echo >>expout "OFPT_PACKET_IN (OF1.2): total_len=14 in_port=ANY (via no_match) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=00:10:20:30:40:50,dl_dst=00:01:02:03:04:05,dl_type=0x1234"
    fi

    # OFPT_PACKET_IN, OFPR_INVALID_TTL (controller_id=0)
    ovs-ofctl -O OpenFlow12 packet-out br0 none dec_ttl '002583dfb4000026b98cb0f908004500003eb7e200000011339bac11370dac100002d7730035002b8f6d86fb0100000100000000000006626c702d7873066e696369726103636f6d00000f00'
    if test X"$1" = X"OFPR_INVALID_TTL"; then shift;
        echo >>expout "OFPT_PACKET_IN (OF1.2): total_len=76 in_port=ANY (via invalid_ttl) data_len=76 (unbuffered)
udp,vlan_tci=0x0000,dl_src=00:26:b9:8c:b0:f9,dl_dst=00:25:83:df:b4:00,nw_src=172.17.55.13,nw_dst=172.16.0.2,nw_tos=0,nw_ecn=0,nw_ttl=0,tp_src=55155,tp_dst=53 udp_csum:8f6d"
    fi

    # OFPT_PORT_STATUS, OFPPR_ADD
    ovs-vsctl add-port br0 test -- set Interface test type=dummy
    if test X"$1" = X"OFPPR_ADD"; then shift;
        echo >>expout "OFPT_PORT_STATUS (OF1.2): ADD: ${INDEX}(test): addr:aa:55:aa:55:00:0x
     config:     PORT_DOWN
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max"
    fi

    # OFPT_PORT_STATUS, OFPPR_DELETE
    ovs-vsctl del-port br0 test
    if test X"$1" = X"OFPPR_DELETE"; then shift;
        echo >>expout "OFPT_PORT_STATUS (OF1.2): DEL: ${INDEX}(test): addr:aa:55:aa:55:00:0x
     config:     PORT_DOWN
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max"
    fi

    # OFPT_FLOW_REMOVED, OFPRR_DELETE
    ovs-ofctl -O OpenFlow12 add-flow br0 send_flow_rem,actions=drop
    ovs-ofctl -O OpenFlow12 --strict del-flows br0 ''
    if test X"$1" = X"OFPRR_DELETE"; then shift;
        echo >>expout "OFPT_FLOW_REMOVED (OF1.2):  reason=delete table_id=0"
    fi
    $as_echo "ofproto.at:3344" >"$at_check_line_file"
(test X"$1" != X) \
  && at_fn_check_skip 99 "$at_srcdir/ofproto.at:3344"

    $as_echo "ofproto.at:3346: waiting until test \`wc -l < \"monitor.log\"\` -ge \`wc -l < \"expout\"\`..." >&5
ovs_wait_cond () {
    test `wc -l < "monitor.log"` -ge `wc -l < "expout"`
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:3346: wait failed" >&5

    $as_echo "ofproto.at:3346" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:3346"
fi


    { set +x
$as_echo "$at_srcdir/ofproto.at:3348: sed '
s/ (xid=0x[0-9a-fA-F]*)//
s/ *duration.*//
s/00:0.\$/00:0x/' < monitor.log"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:3348"
( $at_check_trace; sed '
s/ (xid=0x[0-9a-fA-F]*)//
s/ *duration.*//
s/00:0.$/00:0x/' < monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3348"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

}

# It's a service connection so initially there should be no async messages.
check_async 1

# Set miss_send_len to 128, turning on packet-ins for our service connection.
ovs-appctl -t ovs-ofctl ofctl/send 0309000c0123456700000080
check_async 2 OFPR_ACTION OFPPR_ADD OFPPR_DELETE OFPRR_DELETE

# Set miss_send_len to 128 and enable invalid_ttl.
ovs-appctl -t ovs-ofctl ofctl/send 0309000c0123456700040080
check_async 3 OFPR_ACTION OFPR_INVALID_TTL OFPPR_ADD OFPPR_DELETE OFPRR_DELETE

# Become slave (OF 1.2), which should disable everything except port status.
ovs-appctl -t ovs-ofctl ofctl/send 031800180000000200000003000000000000000000000001
check_async 4 OFPPR_ADD OFPPR_DELETE

# Use NXT_SET_ASYNC_CONFIG to enable a patchwork of asynchronous messages.
ovs-appctl -t ovs-ofctl ofctl/send 03040028000000020000232000000013000000020000000500000005000000020000000200000005
check_async 5 OFPR_INVALID_TTL OFPPR_DELETE OFPRR_DELETE

# Set controller ID 123.
ovs-appctl -t ovs-ofctl ofctl/send 03040018000000030000232000000014000000000000007b
check_async 6 OFPR_NO_MATCH OFPPR_DELETE OFPRR_DELETE

# Restore controller ID 0.
ovs-appctl -t ovs-ofctl ofctl/send 030400180000000300002320000000140000000000000000

# Become master (OF 1.2).
ovs-appctl -t ovs-ofctl ofctl/send 031800180000000400000002000000000000000000000002
check_async 7 OFPR_ACTION OFPPR_ADD

{ set +x
$as_echo "$at_srcdir/ofproto.at:3386: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:3386"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3386"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:3386: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:3386"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3386"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:3386: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:3386: wait failed" >&5

    $as_echo "ofproto.at:3386" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:3386"
fi

{ set +x
$as_echo "$at_srcdir/ofproto.at:3387: check_logs "
at_fn_check_prepare_trace "ofproto.at:3387"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3387"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:3387: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:3387"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3387"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:3387: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:3387"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3387"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:3387: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:3387: wait failed" >&5

    $as_echo "ofproto.at:3387" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:3387"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:3387: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:3387"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3387"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:3387: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:3387"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3387"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:3387: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:3387: wait failed" >&5

    $as_echo "ofproto.at:3387" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:3387"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_954
#AT_START_955
at_fn_group_banner 955 'ofproto.at:3390' \
  "ofproto - asynchronous message control (OpenFlow 1.3)" "" 51
at_xfail=no
(
  $as_echo "955. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:3391: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:3391"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3391"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:3391: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:3391"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3391"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:3391: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:3391"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3391"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:3391: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:3391"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3391"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:3391: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:3391"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3391"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:3391: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:3391"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3391"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:3391: add_of_br 0     add-port br0 p1 -- set Interface p1 type=dummy ofport_request=10
 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:3391"
( $at_check_trace; add_of_br 0     add-port br0 p1 -- set Interface p1 type=dummy ofport_request=10

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3391"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:3394: ovs-ofctl -O OpenFlow13 -P standard monitor br0 --detach --no-chdir --pidfile"
at_fn_check_prepare_trace "ofproto.at:3394"
( $at_check_trace; ovs-ofctl -O OpenFlow13 -P standard monitor br0 --detach --no-chdir --pidfile
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3394"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

check_async () {
    printf '\n\n--- check_async %d ---\n\n\n' $1
    INDEX=$1
    shift

    ovs-appctl -t ovs-ofctl ofctl/barrier
    ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log
    : > expout

    # OFPT_PACKET_IN, OFPR_ACTION (controller_id=0)
    # OFPR_ACTION_SET is treated as OFPR_ACTION in OpenFlow 1.3
    ovs-ofctl -O OpenFlow13 -v packet-out br0 none controller '0001020304050010203040501234'
    ovs-ofctl -O OpenFlow13 add-flow br0 'in_port=10 actions=write_actions(output(CONTROLLER))'
    ovs-appctl netdev-dummy/receive p1 'in_port(10),eth(src=00:10:20:30:40:50,dst=00:01:02:03:04:05),eth_type(0x1234)'
    if test X"$1" = X"OFPR_ACTION"; then shift;
        echo >>expout "OFPT_PACKET_IN (OF1.3): total_len=14 in_port=ANY (via action) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=00:10:20:30:40:50,dl_dst=00:01:02:03:04:05,dl_type=0x1234"
        echo >>expout "OFPT_PACKET_IN (OF1.3): cookie=0x0 total_len=14 in_port=10 (via action) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=00:10:20:30:40:50,dl_dst=00:01:02:03:04:05,dl_type=0x1234"
    fi

    # OFPT_PACKET_IN, OFPR_NO_MATCH (controller_id=123)
    ovs-ofctl -O OpenFlow13 -v packet-out br0 none 'controller(reason=no_match,id=123)' '0001020304050010203040501234'
    if test X"$1" = X"OFPR_NO_MATCH"; then shift;
        echo >>expout "OFPT_PACKET_IN (OF1.3): total_len=14 in_port=ANY (via no_match) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=00:10:20:30:40:50,dl_dst=00:01:02:03:04:05,dl_type=0x1234"
    fi

    # OFPT_PACKET_IN, OFPR_INVALID_TTL (controller_id=0)
    ovs-ofctl -O OpenFlow13 packet-out br0 none dec_ttl '002583dfb4000026b98cb0f908004500003eb7e200000011339bac11370dac100002d7730035002b8f6d86fb0100000100000000000006626c702d7873066e696369726103636f6d00000f00'
    if test X"$1" = X"OFPR_INVALID_TTL"; then shift;
        echo >>expout "OFPT_PACKET_IN (OF1.3): total_len=76 in_port=ANY (via invalid_ttl) data_len=76 (unbuffered)
udp,vlan_tci=0x0000,dl_src=00:26:b9:8c:b0:f9,dl_dst=00:25:83:df:b4:00,nw_src=172.17.55.13,nw_dst=172.16.0.2,nw_tos=0,nw_ecn=0,nw_ttl=0,tp_src=55155,tp_dst=53 udp_csum:8f6d"
    fi

    # OFPT_PORT_STATUS, OFPPR_ADD
    ovs-vsctl add-port br0 test -- set Interface test type=dummy
    if test X"$1" = X"OFPPR_ADD"; then shift;
        echo >>expout "OFPT_PORT_STATUS (OF1.3): ADD: ${INDEX}(test): addr:aa:55:aa:55:00:0x
     config:     PORT_DOWN
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max"
    fi

    # OFPT_PORT_STATUS, OFPPR_DELETE
    ovs-vsctl del-port br0 test
    if test X"$1" = X"OFPPR_DELETE"; then shift;
        echo >>expout "OFPT_PORT_STATUS (OF1.3): DEL: ${INDEX}(test): addr:aa:55:aa:55:00:0x
     config:     PORT_DOWN
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max"
    fi

    # OFPT_FLOW_REMOVED, OFPRR_DELETE
    ovs-ofctl -O OpenFlow13 add-flow br0 send_flow_rem,actions=drop
    ovs-ofctl -O OpenFlow13 --strict del-flows br0 ''
    if test X"$1" = X"OFPRR_DELETE"; then shift;
        echo >>expout "OFPT_FLOW_REMOVED (OF1.3):  reason=delete table_id=0"
    fi

    # OFPT_FLOW_REMOVED, OFPRR_GROUP_DELETE
    ovs-ofctl -O OpenFlow13 add-group br0 group_id=1234,type=all,bucket=output:10
    ovs-ofctl -O OpenFlow13 add-flow br0 send_flow_rem,actions=group:1234
    ovs-ofctl -O OpenFlow13 --strict del-groups br0 group_id=1234
    if test X"$1" = X"OFPRR_GROUP_DELETE"; then shift;
        echo >>expout "OFPT_FLOW_REMOVED (OF1.3):  reason=group_delete table_id=0"
    fi

    $as_echo "ofproto.at:3463" >"$at_check_line_file"
(test X"$1" != X) \
  && at_fn_check_skip 99 "$at_srcdir/ofproto.at:3463"

    $as_echo "ofproto.at:3465: waiting until test \`wc -l < \"monitor.log\"\` -ge \`wc -l < \"expout\"\`..." >&5
ovs_wait_cond () {
    test `wc -l < "monitor.log"` -ge `wc -l < "expout"`
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:3465: wait failed" >&5

    $as_echo "ofproto.at:3465" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:3465"
fi


    { set +x
$as_echo "$at_srcdir/ofproto.at:3467: sed '
s/ (xid=0x[0-9a-fA-F]*)//
s/ *duration.*//
s/00:0.\$/00:0x/' < monitor.log"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:3467"
( $at_check_trace; sed '
s/ (xid=0x[0-9a-fA-F]*)//
s/ *duration.*//
s/00:0.$/00:0x/' < monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3467"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

}

# It's a service connection so initially there should be no async messages.
check_async 1

# Set miss_send_len to 128, turning on packet-ins for our service connection.
ovs-appctl -t ovs-ofctl ofctl/send 0409000c0123456700000080
check_async 2 OFPR_ACTION OFPPR_ADD OFPPR_DELETE OFPRR_DELETE OFPRR_GROUP_DELETE

# Become slave (OF 1.3), which should disable everything except port status.
ovs-appctl -t ovs-ofctl ofctl/send 041800180000000200000003000000000000000000000001
check_async 3 OFPPR_ADD OFPPR_DELETE

# Use OF 1.3 OFPT_SET_ASYNC to enable a patchwork of asynchronous messages.
ovs-appctl -t ovs-ofctl ofctl/send 041c00200000000200000002000000050000000500000002000000020000000d
check_async 4 OFPR_INVALID_TTL OFPPR_DELETE OFPRR_DELETE OFPRR_GROUP_DELETE

# Set controller ID 123.
ovs-appctl -t ovs-ofctl ofctl/send 04040018000000030000232000000014000000000000007b
check_async 5 OFPR_NO_MATCH OFPPR_DELETE OFPRR_DELETE OFPRR_GROUP_DELETE

# Restore controller ID 0.
ovs-appctl -t ovs-ofctl ofctl/send 040400180000000300002320000000140000000000000000

# Become master (OF 1.3).
ovs-appctl -t ovs-ofctl ofctl/send 041800180000000400000002000000000000000000000002
check_async 6 OFPR_ACTION OFPPR_ADD

{ set +x
$as_echo "$at_srcdir/ofproto.at:3501: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:3501"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3501"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:3501: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:3501"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3501"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:3501: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:3501: wait failed" >&5

    $as_echo "ofproto.at:3501" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:3501"
fi

{ set +x
$as_echo "$at_srcdir/ofproto.at:3502: check_logs "
at_fn_check_prepare_trace "ofproto.at:3502"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3502"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:3502: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:3502"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3502"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:3502: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:3502"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3502"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:3502: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:3502: wait failed" >&5

    $as_echo "ofproto.at:3502" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:3502"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:3502: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:3502"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3502"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:3502: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:3502"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3502"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:3502: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:3502: wait failed" >&5

    $as_echo "ofproto.at:3502" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:3502"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_955
#AT_START_956
at_fn_group_banner 956 'ofproto.at:3505' \
  "ofproto - asynchronous message control (OpenFlow 1.4)" "" 51
at_xfail=no
(
  $as_echo "956. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:3506: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:3506"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3506"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:3506: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:3506"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3506"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:3506: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:3506"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3506"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:3506: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:3506"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3506"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:3506: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:3506"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3506"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:3506: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:3506"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3506"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:3506: add_of_br 0     add-port br0 p1 -- set Interface p1 type=dummy ofport_request=10
 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:3506"
( $at_check_trace; add_of_br 0     add-port br0 p1 -- set Interface p1 type=dummy ofport_request=10

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3506"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:3509: ovs-ofctl -O OpenFlow14 -P standard monitor br0 --detach --no-chdir --pidfile"
at_fn_check_prepare_trace "ofproto.at:3509"
( $at_check_trace; ovs-ofctl -O OpenFlow14 -P standard monitor br0 --detach --no-chdir --pidfile
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3509"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

check_async () {
    printf '\n\n--- check_async %d ---\n\n\n' $1
    INDEX=$1
    shift

    ovs-appctl -t ovs-ofctl ofctl/barrier
    ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log
    : > expout

    # OFPT_PACKET_IN, OFPR_PACKET_OUT (controller_id=0)
    ovs-ofctl -O OpenFlow14 -v packet-out br0 none controller '0001020304050010203040501234'
    if test X"$1" = X"OFPR_PACKET_OUT"; then shift;
        echo >>expout "OFPT_PACKET_IN (OF1.4): total_len=14 in_port=ANY (via packet_out) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=00:10:20:30:40:50,dl_dst=00:01:02:03:04:05,dl_type=0x1234"
    fi

    # OFPT_PACKET_IN, OFPR_ACTION_SET (controller_id=0)
    ovs-ofctl -O OpenFlow14 add-flow br0 'in_port=10 actions=write_actions(output(CONTROLLER))'
    ovs-appctl netdev-dummy/receive p1 'in_port(10),eth(src=00:10:20:30:40:50,dst=00:01:02:03:04:05),eth_type(0x1234)'
    if test X"$1" = X"OFPR_ACTION_SET"; then shift;
        echo >>expout "OFPT_PACKET_IN (OF1.4): cookie=0x0 total_len=14 in_port=10 (via action_set) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=00:10:20:30:40:50,dl_dst=00:01:02:03:04:05,dl_type=0x1234"
    fi

    # OFPT_PACKET_IN, OFPR_NO_MATCH (controller_id=123)
    ovs-ofctl -O OpenFlow14 -v packet-out br0 none 'controller(reason=no_match,id=123)' '0001020304050010203040501234'
    if test X"$1" = X"OFPR_NO_MATCH"; then shift;
        echo >>expout "OFPT_PACKET_IN (OF1.4): total_len=14 in_port=ANY (via no_match) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=00:10:20:30:40:50,dl_dst=00:01:02:03:04:05,dl_type=0x1234"
    fi

    # OFPT_PACKET_IN, OFPR_INVALID_TTL (controller_id=0)
    ovs-ofctl -O OpenFlow14 packet-out br0 none dec_ttl '002583dfb4000026b98cb0f908004500003eb7e200000011339bac11370dac100002d7730035002b8f6d86fb0100000100000000000006626c702d7873066e696369726103636f6d00000f00'
    if test X"$1" = X"OFPR_INVALID_TTL"; then shift;
        echo >>expout "OFPT_PACKET_IN (OF1.4): total_len=76 in_port=ANY (via invalid_ttl) data_len=76 (unbuffered)
udp,vlan_tci=0x0000,dl_src=00:26:b9:8c:b0:f9,dl_dst=00:25:83:df:b4:00,nw_src=172.17.55.13,nw_dst=172.16.0.2,nw_tos=0,nw_ecn=0,nw_ttl=0,tp_src=55155,tp_dst=53 udp_csum:8f6d"
    fi

# OFPT_PORT_STATUS, OFPPR_ADD
    ovs-vsctl add-port br0 test -- set Interface test type=dummy
    if test X"$1" = X"OFPPR_ADD"; then shift;
        echo >>expout "OFPT_PORT_STATUS (OF1.4): ADD: ${INDEX}(test): addr:aa:55:aa:55:00:0x
     config:     PORT_DOWN
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max"
    fi

    # OFPT_PORT_STATUS, OFPPR_MODIFY
    ovs-ofctl -O OpenFlow14 -vwarn mod-port br0 test up
    if test X"$1" = X"OFPPR_MODIFY"; then shift;
        echo >>expout "OFPT_PORT_STATUS (OF1.4): MOD: ${INDEX}(test): addr:aa:55:aa:55:00:0x
     config:     0
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max
OFPT_PORT_STATUS (OF1.4): MOD: ${INDEX}(test): addr:aa:55:aa:55:00:0x
     config:     0
     state:      LIVE
     speed: 0 Mbps now, 0 Mbps max"
    fi

    # OFPT_PORT_STATUS, OFPPR_DELETE
    ovs-vsctl del-port br0 test
    if test X"$1" = X"OFPPR_DELETE"; then shift;
        echo >>expout "OFPT_PORT_STATUS (OF1.4): DEL: ${INDEX}(test): addr:aa:55:aa:55:00:0x
     config:     0
     state:      LIVE
     speed: 0 Mbps now, 0 Mbps max"
    fi

    # OFPT_FLOW_REMOVED, OFPRR_DELETE
    ovs-ofctl -O OpenFlow14 add-flow br0 send_flow_rem,actions=drop
    ovs-ofctl -O OpenFlow14 --strict del-flows br0 ''
    if test X"$1" = X"OFPRR_DELETE"; then shift;
        echo >>expout "OFPT_FLOW_REMOVED (OF1.4):  reason=delete table_id=0"
    fi

    # OFPT_FLOW_REMOVED, OFPRR_GROUP_DELETE
    ovs-ofctl -O OpenFlow14 add-group br0 group_id=1234,type=all,bucket=output:10
    ovs-ofctl -O OpenFlow14 add-flow br0 send_flow_rem,actions=group:1234
    ovs-ofctl -O OpenFlow14 --strict del-groups br0 group_id=1234
    if test X"$1" = X"OFPRR_GROUP_DELETE"; then shift;
        echo >>expout "OFPT_FLOW_REMOVED (OF1.4):  reason=group_delete table_id=0"
    fi

    # OFPT_TABLE_STATUS, OFPTR_VACANCY_UP
    if test X"$1" = X"OFPTR_VACANCY_UP"; then shift;
        ovs-vsctl -- --id=@t1 create Flow_Table flow-limit=10 -- set bridge br0 flow_tables:1=@t1

	# Turn on vacancy events, then add flows until we're full.
	# With initial vacancy of 100% and vacancy_up of 80%, so that
	# vacancy >= vacancy_up, this enables VACANY_DOWN events, so
	# we get a single such message when vacancy dips below 20%.
        ovs-ofctl -O OpenFlow14 mod-table br0 1 vacancy:20,80
        ovs-ofctl -O OpenFlow14 add-flow br0 table=1,in_port=1,actions=2
        ovs-ofctl -O OpenFlow14 add-flow br0 table=1,in_port=2,actions=2
        ovs-ofctl -O OpenFlow14 add-flow br0 table=1,in_port=3,actions=2
        ovs-ofctl -O OpenFlow14 add-flow br0 table=1,in_port=4,actions=2
        ovs-ofctl -O OpenFlow14 add-flow br0 table=1,in_port=5,actions=2
        ovs-ofctl -O OpenFlow14 add-flow br0 table=1,in_port=6,actions=2
        ovs-ofctl -O OpenFlow14 add-flow br0 table=1,in_port=7,actions=2
        ovs-ofctl -O OpenFlow14 add-flow br0 table=1,in_port=8,actions=2
        ovs-ofctl -O OpenFlow14 add-flow br0 table=1,in_port=9,actions=2
        ovs-ofctl -O OpenFlow14 add-flow br0 table=1,in_port=10,actions=2
        echo >>expout "OFPT_TABLE_STATUS (OF1.4): reason=VACANCY_DOWN
table_desc:-
  table 1:
   eviction=off eviction_flags=OTHER|IMPORTANCE|LIFETIME
   vacancy=on vacancy_down=20% vacancy_up=80% vacancy=10%"
        # Then delete flows until we're empty.  Sending the
	# VACANCY_DOWN message enabled VACANCY_UP events, so we get a
	# single such message when vacancy rises above 80%.
        ovs-ofctl -O OpenFlow14 del-flows br0 table=1,in_port=1
        ovs-ofctl -O OpenFlow14 del-flows br0 table=1,in_port=2
        ovs-ofctl -O OpenFlow14 del-flows br0 table=1,in_port=3
        ovs-ofctl -O OpenFlow14 del-flows br0 table=1,in_port=4
        ovs-ofctl -O OpenFlow14 del-flows br0 table=1,in_port=5
        ovs-ofctl -O OpenFlow14 del-flows br0 table=1,in_port=6
        ovs-ofctl -O OpenFlow14 del-flows br0 table=1,in_port=7
        ovs-ofctl -O OpenFlow14 del-flows br0 table=1,in_port=8
        ovs-ofctl -O OpenFlow14 del-flows br0 table=1,in_port=9
        ovs-ofctl -O OpenFlow14 del-flows br0 table=1,in_port=10
        echo >>expout "OFPT_TABLE_STATUS (OF1.4): reason=VACANCY_UP
table_desc:-
  table 1:
   eviction=off eviction_flags=OTHER|IMPORTANCE|LIFETIME
   vacancy=on vacancy_down=20% vacancy_up=80% vacancy=90%"

        # Now approach vacancy from the other direction.  First
	# disable vacancy events.  With initial vacancy of 70%, so
	# that vacancy < vacancy_up, this enables VACANCY_UP events.
	# That means that filling up the table generates no message,
	# but deleting all the flows generates VACANCY_UP at the point
	# vacancy rises above 80%.
        ovs-ofctl -O OpenFlow14 mod-table br0 1 novacancy
        ovs-ofctl -O OpenFlow14 add-flow br0 table=1,in_port=1,actions=2
        ovs-ofctl -O OpenFlow14 add-flow br0 table=1,in_port=2,actions=2
        ovs-ofctl -O OpenFlow14 add-flow br0 table=1,in_port=3,actions=2
        ovs-ofctl -O OpenFlow14 mod-table br0 1 vacancy:20,80
        ovs-ofctl -O OpenFlow14 add-flow br0 table=1,in_port=4,actions=2
        ovs-ofctl -O OpenFlow14 add-flow br0 table=1,in_port=5,actions=2
        ovs-ofctl -O OpenFlow14 add-flow br0 table=1,in_port=6,actions=2
        ovs-ofctl -O OpenFlow14 add-flow br0 table=1,in_port=7,actions=2
        ovs-ofctl -O OpenFlow14 add-flow br0 table=1,in_port=8,actions=2
        ovs-ofctl -O OpenFlow14 add-flow br0 table=1,in_port=9,actions=2
        ovs-ofctl -O OpenFlow14 add-flow br0 table=1,in_port=10,actions=2
        ovs-ofctl -O OpenFlow14 del-flows br0 table=1,in_port=1
        ovs-ofctl -O OpenFlow14 del-flows br0 table=1,in_port=2
        ovs-ofctl -O OpenFlow14 del-flows br0 table=1,in_port=3
        ovs-ofctl -O OpenFlow14 del-flows br0 table=1,in_port=4
        ovs-ofctl -O OpenFlow14 del-flows br0 table=1,in_port=5
        ovs-ofctl -O OpenFlow14 del-flows br0 table=1,in_port=6
        ovs-ofctl -O OpenFlow14 del-flows br0 table=1,in_port=7
        ovs-ofctl -O OpenFlow14 del-flows br0 table=1,in_port=8
        ovs-ofctl -O OpenFlow14 del-flows br0 table=1,in_port=9
        ovs-ofctl -O OpenFlow14 del-flows br0 table=1,in_port=10
        echo >>expout "OFPT_TABLE_STATUS (OF1.4): reason=VACANCY_UP
table_desc:-
  table 1:
   eviction=off eviction_flags=OTHER|IMPORTANCE|LIFETIME
   vacancy=on vacancy_down=20% vacancy_up=80% vacancy=90%"
    fi

    $as_echo "ofproto.at:3672" >"$at_check_line_file"
(test X"$1" != X) \
  && at_fn_check_skip 99 "$at_srcdir/ofproto.at:3672"

    $as_echo "ofproto.at:3674: waiting until test \`wc -l < \"monitor.log\"\` -ge \`wc -l < \"expout\"\`..." >&5
ovs_wait_cond () {
    test `wc -l < "monitor.log"` -ge `wc -l < "expout"`
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:3674: wait failed" >&5

    $as_echo "ofproto.at:3674" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:3674"
fi


    { set +x
$as_echo "$at_srcdir/ofproto.at:3676: sed '
s/ (xid=0x[0-9a-fA-F]*)//
s/ *duration.*//
s/00:0.\$/00:0x/' < monitor.log"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:3676"
( $at_check_trace; sed '
s/ (xid=0x[0-9a-fA-F]*)//
s/ *duration.*//
s/00:0.$/00:0x/' < monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3676"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

}

# It's a service connection so initially there should be no async messages.
check_async 1

# Set miss_send_len to 128, turning on packet-ins for our service connection.
ovs-appctl -t ovs-ofctl ofctl/send 0509000c0123456700000080
check_async 2 OFPR_PACKET_OUT OFPR_ACTION_SET OFPPR_ADD OFPPR_MODIFY OFPPR_DELETE OFPRR_DELETE OFPRR_GROUP_DELETE

# Become slave (OF 1.4), which should disable everything except port status.
ovs-appctl -t ovs-ofctl ofctl/send 051800180000000200000003000000000000000000000001
check_async 3 OFPPR_ADD OFPPR_MODIFY OFPPR_DELETE

# Use OF 1.4 OFPT_SET_ASYNC to enable a patchwork of asynchronous messages.
ovs-appctl -t ovs-ofctl ofctl/send 051c0040000000020000000800000005000100080000002000020008000000020003000800000005000400080000001c00050008000000050008000800000018
check_async 4 OFPR_INVALID_TTL OFPPR_DELETE OFPRR_DELETE OFPRR_GROUP_DELETE OFPTR_VACANCY_UP

# Set controller ID 123.
ovs-appctl -t ovs-ofctl ofctl/send 05040018000000030000232000000014000000000000007b
check_async 5 OFPR_NO_MATCH OFPPR_DELETE OFPRR_DELETE OFPRR_GROUP_DELETE

# Restore controller ID 0.
ovs-appctl -t ovs-ofctl ofctl/send 050400180000000300002320000000140000000000000000

# Become master (OF 1.4).
ovs-appctl -t ovs-ofctl ofctl/send 051800180000000400000002000000000000000000000002
check_async 6 OFPR_PACKET_OUT OFPPR_ADD OFPPR_MODIFY OFPRR_DELETE

{ set +x
$as_echo "$at_srcdir/ofproto.at:3710: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:3710"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3710"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:3710: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:3710"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3710"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:3710: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:3710: wait failed" >&5

    $as_echo "ofproto.at:3710" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:3710"
fi

{ set +x
$as_echo "$at_srcdir/ofproto.at:3711: check_logs "
at_fn_check_prepare_trace "ofproto.at:3711"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3711"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:3711: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:3711"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3711"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:3711: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:3711"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3711"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:3711: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:3711: wait failed" >&5

    $as_echo "ofproto.at:3711" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:3711"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:3711: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:3711"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3711"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:3711: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:3711"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3711"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:3711: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:3711: wait failed" >&5

    $as_echo "ofproto.at:3711" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:3711"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_956
#AT_START_957
at_fn_group_banner 957 'ofproto.at:3714' \
  "ofproto - asynchronous message control (OpenFlow 1.5)" "" 51
at_xfail=no
(
  $as_echo "957. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:3715: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:3715"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3715"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:3715: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:3715"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3715"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:3715: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:3715"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3715"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:3715: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:3715"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3715"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:3715: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:3715"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3715"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:3715: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:3715"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3715"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:3715: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:3715"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3715"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:3716: ovs-ofctl -O OpenFlow15 -P standard monitor br0 --detach --no-chdir --pidfile"
at_fn_check_prepare_trace "ofproto.at:3716"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -P standard monitor br0 --detach --no-chdir --pidfile
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3716"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

check_async () {
    printf '\n\n--- check_async %d ---\n\n\n' $1
    INDEX=$1
    shift

    ovs-appctl -t ovs-ofctl ofctl/barrier
    ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log
    : > expout

    # Other tests are not working with OF 1.5, and message
    # format may change, so leave them out.

    # OFPT_PORT_STATUS, OFPPR_ADD
    ovs-vsctl add-port br0 test -- set Interface test type=dummy
    if test X"$1" = X"OFPPR_ADD"; then shift;
        echo >>expout "OFPT_PORT_STATUS (OF1.5): ADD: ${INDEX}(test): addr:aa:55:aa:55:00:0x
     config:     PORT_DOWN
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max"
    fi

    # OFPT_PORT_STATUS, OFPPR_MODIFY
    ovs-ofctl -O OpenFlow15 -vwarn mod-port br0 test up
    if test X"$1" = X"OFPPR_MODIFY"; then shift;
        echo >>expout "OFPT_PORT_STATUS (OF1.5): MOD: ${INDEX}(test): addr:aa:55:aa:55:00:0x
     config:     0
     state:      LINK_DOWN
     speed: 0 Mbps now, 0 Mbps max
OFPT_PORT_STATUS (OF1.5): MOD: 2(test): addr:aa:55:aa:55:00:0x
     config:     0
     state:      LIVE
     speed: 0 Mbps now, 0 Mbps max"
    fi

    # OFPT_PORT_STATUS, OFPPR_DELETE
    ovs-vsctl del-port br0 test
    if test X"$1" = X"OFPPR_DELETE"; then shift;
        echo >>expout "OFPT_PORT_STATUS (OF1.5): DEL: ${INDEX}(test): addr:aa:55:aa:55:00:0x
     config:     0
     state:      LIVE
     speed: 0 Mbps now, 0 Mbps max"
    fi

    $as_echo "ofproto.at:3760" >"$at_check_line_file"
(test X"$1" != X) \
  && at_fn_check_skip 99 "$at_srcdir/ofproto.at:3760"

    $as_echo "ofproto.at:3762: waiting until test \`wc -l < \"monitor.log\"\` -ge \`wc -l < \"expout\"\`..." >&5
ovs_wait_cond () {
    test `wc -l < "monitor.log"` -ge `wc -l < "expout"`
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:3762: wait failed" >&5

    $as_echo "ofproto.at:3762" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:3762"
fi


    { set +x
$as_echo "$at_srcdir/ofproto.at:3764: sed '
s/ (xid=0x[0-9a-fA-F]*)//
s/ *duration.*//
s/00:0.\$/00:0x/' < monitor.log"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:3764"
( $at_check_trace; sed '
s/ (xid=0x[0-9a-fA-F]*)//
s/ *duration.*//
s/00:0.$/00:0x/' < monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3764"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

}

# It's a service connection so initially there should be no async messages.
check_async 1

# If we don't set this, async messages are not received.
# Set miss_send_len to 128, turning on packet-ins for our service connection.
ovs-appctl -t ovs-ofctl ofctl/send 0609000c0123456700000080
check_async 2 OFPPR_ADD OFPPR_MODIFY OFPPR_DELETE

# Set-async has changed in OF 1.4 and is not yet implemented.

{ set +x
$as_echo "$at_srcdir/ofproto.at:3782: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:3782"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3782"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:3782: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:3782"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3782"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:3782: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:3782: wait failed" >&5

    $as_echo "ofproto.at:3782" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:3782"
fi

{ set +x
$as_echo "$at_srcdir/ofproto.at:3783: check_logs "
at_fn_check_prepare_trace "ofproto.at:3783"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3783"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:3783: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:3783"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3783"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:3783: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:3783"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3783"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:3783: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:3783: wait failed" >&5

    $as_echo "ofproto.at:3783" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:3783"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:3783: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:3783"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3783"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:3783: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:3783"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3783"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:3783: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:3783: wait failed" >&5

    $as_echo "ofproto.at:3783" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:3783"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_957
#AT_START_958
at_fn_group_banner 958 'ofproto.at:3788' \
  "ofproto - controller role (OpenFlow 1.2)" "       " 51
at_xfail=no
(
  $as_echo "958. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:3789: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:3789"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3789"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:3789: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:3789"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3789"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:3789: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:3789"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3789"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:3789: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:3789"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3789"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:3789: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:3789"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3789"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:3789: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:3789"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3789"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:3789: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:3789"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3789"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


on_exit 'kill `cat c1.pid c2.pid`'

# Start two ovs-ofctl controller processes.






for i in 1 2; do
     { set +x
$as_echo "$at_srcdir/ofproto.at:3800: ovs-ofctl -O OpenFlow12 monitor br0 --detach --no-chdir --pidfile=c\$i.pid --unixctl=c\$i"
at_fn_check_prepare_dynamic "ovs-ofctl -O OpenFlow12 monitor br0 --detach --no-chdir --pidfile=c$i.pid --unixctl=c$i" "ofproto.at:3800"
( $at_check_trace; ovs-ofctl -O OpenFlow12 monitor br0 --detach --no-chdir --pidfile=c$i.pid --unixctl=c$i
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3800"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor1.log" \
"expout1" \
"experr1" \
"monitor2.log" \
"expout2" \
"experr2"
$at_traceon; }

    ovs-appctl -t `pwd`/c$i ofctl/barrier
    ovs-appctl -t `pwd`/c$i ofctl/set-output-file monitor$i.log
    : > expout$i
    : > experr$i

    # find out current role
    ovs-appctl -t `pwd`/c$i ofctl/send 031800180000000200000000000000000000000000000000
    echo >>experr$i "send: OFPT_ROLE_REQUEST (OF1.2): role=nochange"
    echo >>expout$i "OFPT_ROLE_REPLY (OF1.2): role=equal"
done

# controller 1: Become slave (generation_id is initially undefined, so
# 2^63+2 should not be stale)
ovs-appctl -t `pwd`/c1 ofctl/send 031800180000000300000003000000008000000000000002
echo >>experr1 "send: OFPT_ROLE_REQUEST (OF1.2): role=slave generation_id=9223372036854775810"
echo >>expout1 "OFPT_ROLE_REPLY (OF1.2): role=slave generation_id=9223372036854775810"

# controller 2: Become master.
ovs-appctl -t `pwd`/c2 ofctl/send 031800180000000300000002000000008000000000000003
echo >>experr2 "send: OFPT_ROLE_REQUEST (OF1.2): role=master generation_id=9223372036854775811"
echo >>expout2 "OFPT_ROLE_REPLY (OF1.2): role=master generation_id=9223372036854775811"

# controller 1: Try to become the master using a stale generation ID
ovs-appctl -t `pwd`/c1 ofctl/send 031800180000000400000002000000000000000000000003
echo >>experr1 "send: OFPT_ROLE_REQUEST (OF1.2): role=master generation_id=3"
echo >>expout1 "OFPT_ERROR (OF1.2): OFPRRFC_STALE"
echo >>expout1 "OFPT_ROLE_REQUEST (OF1.2): role=master generation_id=3"

# controller 1: Become master using a valid generation ID
ovs-appctl -t `pwd`/c1 ofctl/send 031800180000000500000002000000000000000000000001
echo >>experr1 "send: OFPT_ROLE_REQUEST (OF1.2): role=master generation_id=1"
echo >>expout1 "OFPT_ROLE_REPLY (OF1.2): role=master generation_id=1"

for i in 1 2; do
    ovs-appctl -t `pwd`/c$i ofctl/barrier
    echo >>expout$i "OFPT_BARRIER_REPLY (OF1.2):"
done

# Check output.
for i in 1 2; do
    cp expout$i expout
    { set +x
$as_echo "$at_srcdir/ofproto.at:3842: grep -v '^send:' monitor\$i.log | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:3842"
( $at_check_trace; grep -v '^send:' monitor$i.log | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3842"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor1.log" \
"expout1" \
"experr1" \
"monitor2.log" \
"expout2" \
"experr2"
$at_traceon; }

    cp experr$i expout
    { set +x
$as_echo "$at_srcdir/ofproto.at:3844: grep '^send:' monitor\$i.log | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:3844"
( $at_check_trace; grep '^send:' monitor$i.log | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3844"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor1.log" \
"expout1" \
"experr1" \
"monitor2.log" \
"expout2" \
"experr2"
$at_traceon; }

done
{ set +x
$as_echo "$at_srcdir/ofproto.at:3846: check_logs "
at_fn_check_prepare_trace "ofproto.at:3846"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3846"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor1.log" \
"expout1" \
"experr1" \
"monitor2.log" \
"expout2" \
"experr2"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:3846: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:3846"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3846"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor1.log" \
"expout1" \
"experr1" \
"monitor2.log" \
"expout2" \
"experr2"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:3846: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:3846"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3846"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor1.log" \
"expout1" \
"experr1" \
"monitor2.log" \
"expout2" \
"experr2"
$at_traceon; }

   $as_echo "ofproto.at:3846: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:3846: wait failed" >&5

    $as_echo "ofproto.at:3846" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:3846"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:3846: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:3846"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3846"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor1.log" \
"expout1" \
"experr1" \
"monitor2.log" \
"expout2" \
"experr2"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:3846: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:3846"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3846"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor1.log" \
"expout1" \
"experr1" \
"monitor2.log" \
"expout2" \
"experr2"
$at_traceon; }

   $as_echo "ofproto.at:3846: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:3846: wait failed" >&5

    $as_echo "ofproto.at:3846" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:3846"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_958
#AT_START_959
at_fn_group_banner 959 'ofproto.at:3853' \
  "ofproto - controller role (OpenFlow 1.4)" "       " 51
at_xfail=no
(
  $as_echo "959. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:3854: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:3854"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3854"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:3854: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:3854"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3854"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:3854: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:3854"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3854"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:3854: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:3854"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3854"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:3854: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:3854"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3854"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:3854: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:3854"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3854"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:3854: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:3854"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3854"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


on_exit 'kill `cat c1.pid c2.pid`'

# Start two ovs-ofctl controller processes.






for i in 1 2; do
     { set +x
$as_echo "$at_srcdir/ofproto.at:3865: ovs-ofctl -O OpenFlow14 monitor br0 --detach --no-chdir --pidfile=c\$i.pid --unixctl=c\$i"
at_fn_check_prepare_dynamic "ovs-ofctl -O OpenFlow14 monitor br0 --detach --no-chdir --pidfile=c$i.pid --unixctl=c$i" "ofproto.at:3865"
( $at_check_trace; ovs-ofctl -O OpenFlow14 monitor br0 --detach --no-chdir --pidfile=c$i.pid --unixctl=c$i
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3865"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor1.log" \
"expout1" \
"experr1" \
"monitor2.log" \
"expout2" \
"experr2"
$at_traceon; }

    ovs-appctl -t `pwd`/c$i ofctl/barrier
    ovs-appctl -t `pwd`/c$i ofctl/set-output-file monitor$i.log
    : > expout$i
    : > experr$i

    # find out current role
    ovs-appctl -t `pwd`/c$i ofctl/send 051800180000000200000000000000000000000000000000
    echo >>experr$i "send: OFPT_ROLE_REQUEST (OF1.4): role=nochange"
    echo >>expout$i "OFPT_ROLE_REPLY (OF1.4): role=equal"
done

# controller 1: Become slave (generation_id is initially undefined, so
# 2^63+2 should not be stale)
ovs-appctl -t `pwd`/c1 ofctl/send 051800180000000300000003000000008000000000000002
echo >>experr1 "send: OFPT_ROLE_REQUEST (OF1.4): role=slave generation_id=9223372036854775810"
echo >>expout1 "OFPT_ROLE_REPLY (OF1.4): role=slave generation_id=9223372036854775810"

# controller 2: Become master.
ovs-appctl -t `pwd`/c2 ofctl/send 051800180000000300000002000000008000000000000003
echo >>experr2 "send: OFPT_ROLE_REQUEST (OF1.4): role=master generation_id=9223372036854775811"
echo >>expout2 "OFPT_ROLE_REPLY (OF1.4): role=master generation_id=9223372036854775811"

# controller 1: Try to become the master using a stale generation ID
ovs-appctl -t `pwd`/c1 ofctl/send 051800180000000400000002000000000000000000000003
echo >>experr1 "send: OFPT_ROLE_REQUEST (OF1.4): role=master generation_id=3"
echo >>expout1 "OFPT_ERROR (OF1.4): OFPRRFC_STALE"
echo >>expout1 "OFPT_ROLE_REQUEST (OF1.4): role=master generation_id=3"

# controller 1: Become master using a valid generation ID
ovs-appctl -t `pwd`/c1 ofctl/send 051800180000000500000002000000000000000000000001
echo >>experr1 "send: OFPT_ROLE_REQUEST (OF1.4): role=master generation_id=1"
echo >>expout1 "OFPT_ROLE_REPLY (OF1.4): role=master generation_id=1"
echo >>expout2 "OFPT_ROLE_STATUS (OF1.4): role=slave generation_id=1 reason=master_request"

for i in 1 2; do
    ovs-appctl -t `pwd`/c$i ofctl/barrier
    echo >>expout$i "OFPT_BARRIER_REPLY (OF1.4):"
done

# Check output.
for i in 1 2; do
    cp expout$i expout
    { set +x
$as_echo "$at_srcdir/ofproto.at:3908: grep -v '^send:' monitor\$i.log | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:3908"
( $at_check_trace; grep -v '^send:' monitor$i.log | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3908"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor1.log" \
"expout1" \
"experr1" \
"monitor2.log" \
"expout2" \
"experr2"
$at_traceon; }

    cp experr$i expout
    { set +x
$as_echo "$at_srcdir/ofproto.at:3910: grep '^send:' monitor\$i.log | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:3910"
( $at_check_trace; grep '^send:' monitor$i.log | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3910"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor1.log" \
"expout1" \
"experr1" \
"monitor2.log" \
"expout2" \
"experr2"
$at_traceon; }

done
{ set +x
$as_echo "$at_srcdir/ofproto.at:3912: check_logs "
at_fn_check_prepare_trace "ofproto.at:3912"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3912"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor1.log" \
"expout1" \
"experr1" \
"monitor2.log" \
"expout2" \
"experr2"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:3912: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:3912"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3912"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor1.log" \
"expout1" \
"experr1" \
"monitor2.log" \
"expout2" \
"experr2"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:3912: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:3912"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3912"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor1.log" \
"expout1" \
"experr1" \
"monitor2.log" \
"expout2" \
"experr2"
$at_traceon; }

   $as_echo "ofproto.at:3912: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:3912: wait failed" >&5

    $as_echo "ofproto.at:3912" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:3912"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:3912: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:3912"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3912"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor1.log" \
"expout1" \
"experr1" \
"monitor2.log" \
"expout2" \
"experr2"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:3912: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:3912"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3912"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor1.log" \
"expout1" \
"experr1" \
"monitor2.log" \
"expout2" \
"experr2"
$at_traceon; }

   $as_echo "ofproto.at:3912: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:3912: wait failed" >&5

    $as_echo "ofproto.at:3912" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:3912"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_959
#AT_START_960
at_fn_group_banner 960 'ofproto.at:3918' \
  "ofproto - requestforward (OpenFlow 1.4)" "        " 51
at_xfail=no
(
  $as_echo "960. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:3919: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:3919"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3919"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:3919: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:3919"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3919"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:3919: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:3919"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3919"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:3919: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:3919"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3919"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:3919: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:3919"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3919"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:3919: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:3919"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3919"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:3919: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:3919"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3919"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


on_exit 'kill `cat c1.pid c2.pid c3.pid`'

# Start two ovs-ofctl controller processes.







ovs-ofctl -O OpenFlow15 monitor br0 --detach --no-chdir --pidfile=c1.pid --unixctl=c1
ovs-ofctl -O OpenFlow14 monitor br0 --detach --no-chdir --pidfile=c2.pid --unixctl=c2
ovs-ofctl -O OpenFlow14 monitor br0 --detach --no-chdir --pidfile=c3.pid --unixctl=c3

check_async () {
    for i in 1 3; do
        ovs-appctl -t `pwd`/c$i ofctl/barrier
        ovs-appctl -t `pwd`/c$i ofctl/set-output-file monitor$i.log
        : > expout$i
    done

    printf '\n\n--- check_async %d ---\n\n\n' $1
    INDEX=$1
    shift

    # OFPGC_ADD
    ovs-appctl -t `pwd`/c2 ofctl/send "050f0020000000020000000000000001 00100000 ffffffffffffffff 00000000"
    if test X"$1" = X"OFPGC_ADD"; then shift;
        echo >>expout2 "send: OFPT_GROUP_MOD (OF1.4):
 ADD group_id=1,type=all,bucket=actions=drop"
        echo >>expout1 "OFPT_REQUESTFORWARD (OF1.5): reason=group_mod
 ADD group_id=1,type=all,bucket=bucket_id:0,actions=drop"
        echo >>expout3 "OFPT_REQUESTFORWARD (OF1.4): reason=group_mod
 ADD group_id=1,type=all,bucket=actions=drop"
    fi

    # OFPGC_MODIFY
    ovs-appctl -t `pwd`/c2 ofctl/send "050f0020000000020001010000000001 00100000 ffffffffffffffff 00000000"
    if test X"$1" = X"OFPGC_MODIFY"; then shift;
        echo >>expout2 "send: OFPT_GROUP_MOD (OF1.4):
 MOD group_id=1,type=select,bucket=weight:0,actions=drop"
        echo >>expout1 "OFPT_REQUESTFORWARD (OF1.5): reason=group_mod
 MOD group_id=1,type=select,bucket=bucket_id:0,weight:0,actions=drop"
        echo >>expout3 "OFPT_REQUESTFORWARD (OF1.4): reason=group_mod
 MOD group_id=1,type=select,bucket=weight:0,actions=drop"
    fi

    ovs-appctl -t `pwd`/c1 ofctl/barrier
    echo >>expout1 "OFPT_BARRIER_REPLY (OF1.5):"
    ovs-appctl -t `pwd`/c2 ofctl/barrier
    echo >>expout2 "OFPT_BARRIER_REPLY (OF1.4):"
    ovs-appctl -t `pwd`/c3 ofctl/barrier
    echo >>expout3 "OFPT_BARRIER_REPLY (OF1.4):"

    # Check output.
    for i in 1 3; do
        cp expout$i expout
        { set +x
$as_echo "$at_srcdir/ofproto.at:3977: sed '
s/ (xid=0x[0-9a-fA-F]*)//'< monitor\$i.log"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:3977"
( $at_check_trace; sed '
s/ (xid=0x[0-9a-fA-F]*)//'< monitor$i.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:3977"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor1.log" \
"expout1" \
"monitor2.log" \
"expout2" \
"monitor3.log" \
"expout3"
$at_traceon; }

    done
}

# controller 1: Become slave
ovs-appctl -t `pwd`/c1 ofctl/send 061800180000000300000003000000008000000000000002

# controller 2: Become master
ovs-appctl -t `pwd`/c2 ofctl/send 051800180000000300000002000000008000000000000003

# controller 1: Become slave
ovs-appctl -t `pwd`/c3 ofctl/send 051800180000000300000003000000008000000000000004

# controller 1: Enabled requestforward using set Asynchronous message
ovs-appctl -t `pwd`/c1 ofctl/send 061c00280000000200000008000000050002000800000002000400080000001a000a000800000003

# controller 2: Enabled requestforward using set Asynchronous message
ovs-appctl -t `pwd`/c2 ofctl/send 051c002800000002000100080000000200030008000000050005000800000005000b000800000003

# controller 1: Enabled requestforward using set Asynchronous message
ovs-appctl -t `pwd`/c3 ofctl/send 051c00280000000200000008000000050002000800000002000400080000001a000a000800000003
check_async 1 OFPGC_ADD OFPGC_MODIFY

{ set +x
$as_echo "$at_srcdir/ofproto.at:4003: check_logs "
at_fn_check_prepare_trace "ofproto.at:4003"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4003"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor1.log" \
"expout1" \
"monitor2.log" \
"expout2" \
"monitor3.log" \
"expout3"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:4003: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:4003"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4003"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor1.log" \
"expout1" \
"monitor2.log" \
"expout2" \
"monitor3.log" \
"expout3"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4003: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:4003"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4003"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor1.log" \
"expout1" \
"monitor2.log" \
"expout2" \
"monitor3.log" \
"expout3"
$at_traceon; }

   $as_echo "ofproto.at:4003: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4003: wait failed" >&5

    $as_echo "ofproto.at:4003" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4003"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:4003: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:4003"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4003"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor1.log" \
"expout1" \
"monitor2.log" \
"expout2" \
"monitor3.log" \
"expout3"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4003: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:4003"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4003"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor1.log" \
"expout1" \
"monitor2.log" \
"expout2" \
"monitor3.log" \
"expout3"
$at_traceon; }

   $as_echo "ofproto.at:4003: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4003: wait failed" >&5

    $as_echo "ofproto.at:4003" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4003"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_960
#AT_START_961
at_fn_group_banner 961 'ofproto.at:4010' \
  "ofproto - packet-out from controller (OpenFlow 1.0)" "" 51
at_xfail=no
(
  $as_echo "961. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:4011: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:4011"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4011"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4011: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:4011"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4011"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4011: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4011"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4011"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:4011: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:4011"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4011"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4011: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:4011"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4011"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4011: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4011"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4011"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:4011: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:4011"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4011"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1

# Start a monitor listening for packet-ins.
{ set +x
$as_echo "$at_srcdir/ofproto.at:4015: ovs-ofctl -P standard monitor br0 --detach --no-chdir --pidfile"
at_fn_check_prepare_trace "ofproto.at:4015"
( $at_check_trace; ovs-ofctl -P standard monitor br0 --detach --no-chdir --pidfile
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4015"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl -t ovs-ofctl ofctl/send 0109000c0123456700000080
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log


# Send some packet-outs with OFPP_NONE and OFPP_CONTROLLER (65533) as in_port.
{ set +x
$as_echo "$at_srcdir/ofproto.at:4022: ovs-ofctl packet-out br0 \"in_port=none packet=0001020304050010203040501234 actions=controller,1\""
at_fn_check_prepare_trace "ofproto.at:4022"
( $at_check_trace; ovs-ofctl packet-out br0 "in_port=none packet=0001020304050010203040501234 actions=controller,1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4022"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:4023: ovs-ofctl packet-out br0 \"in_port=controller packet=0001020304050010203040505678 actions=controller,1\""
at_fn_check_prepare_trace "ofproto.at:4023"
( $at_check_trace; ovs-ofctl packet-out br0 "in_port=controller packet=0001020304050010203040505678 actions=controller,1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4023"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


# Stop the monitor and check its output.
ovs-appctl -t ovs-ofctl ofctl/barrier
{ set +x
$as_echo "$at_srcdir/ofproto.at:4027: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:4027"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4027"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4027: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:4027"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4027"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4027: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4027: wait failed" >&5

    $as_echo "ofproto.at:4027" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4027"
fi


ovs-ofctl dump-ports br0

{ set +x
$as_echo "$at_srcdir/ofproto.at:4031: sed 's/ (xid=0x[0-9a-fA-F]*)//' monitor.log"
at_fn_check_prepare_trace "ofproto.at:4031"
( $at_check_trace; sed 's/ (xid=0x[0-9a-fA-F]*)//' monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN: total_len=14 in_port=ANY (via action) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=00:10:20:30:40:50,dl_dst=00:01:02:03:04:05,dl_type=0x1234
OFPT_PACKET_IN: total_len=14 in_port=CONTROLLER (via action) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=00:10:20:30:40:50,dl_dst=00:01:02:03:04:05,dl_type=0x5678
OFPT_BARRIER_REPLY:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4031"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:4039: check_logs "
at_fn_check_prepare_trace "ofproto.at:4039"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4039"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:4039: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:4039"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4039"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4039: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:4039"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4039"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4039: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4039: wait failed" >&5

    $as_echo "ofproto.at:4039" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4039"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:4039: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:4039"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4039"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4039: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:4039"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4039"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4039: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4039: wait failed" >&5

    $as_echo "ofproto.at:4039" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4039"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_961
#AT_START_962
at_fn_group_banner 962 'ofproto.at:4046' \
  "ofproto - packet-out from controller (OpenFlow 1.2)" "" 51
at_xfail=no
(
  $as_echo "962. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:4047: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:4047"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4047"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4047: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:4047"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4047"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4047: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4047"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4047"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:4047: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:4047"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4047"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4047: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:4047"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4047"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4047: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4047"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4047"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:4047: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:4047"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4047"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Start a monitor listening for packet-ins.
{ set +x
$as_echo "$at_srcdir/ofproto.at:4050: ovs-ofctl -O OpenFlow12 -P standard monitor br0 --detach --no-chdir --pidfile"
at_fn_check_prepare_trace "ofproto.at:4050"
( $at_check_trace; ovs-ofctl -O OpenFlow12 -P standard monitor br0 --detach --no-chdir --pidfile
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4050"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl -t ovs-ofctl ofctl/send 0309000c0123456700000080
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log


# Send some packet-outs with OFPP_NONE and OFPP_CONTROLLER (65533) as in_port.
{ set +x
$as_echo "$at_srcdir/ofproto.at:4057: ovs-ofctl -O OpenFlow12 packet-out br0 none controller '0001020304050010203040501234'"
at_fn_check_prepare_trace "ofproto.at:4057"
( $at_check_trace; ovs-ofctl -O OpenFlow12 packet-out br0 none controller '0001020304050010203040501234'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4057"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:4058: ovs-ofctl -O OpenFlow12 packet-out br0 4294967293 controller '0001020304050010203040505678'"
at_fn_check_prepare_trace "ofproto.at:4058"
( $at_check_trace; ovs-ofctl -O OpenFlow12 packet-out br0 4294967293 controller '0001020304050010203040505678'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4058"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


# Stop the monitor and check its output.
ovs-appctl -t ovs-ofctl ofctl/barrier
{ set +x
$as_echo "$at_srcdir/ofproto.at:4062: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:4062"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4062"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4062: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:4062"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4062"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4062: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4062: wait failed" >&5

    $as_echo "ofproto.at:4062" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4062"
fi


{ set +x
$as_echo "$at_srcdir/ofproto.at:4064: sed 's/ (xid=0x[0-9a-fA-F]*)//' monitor.log"
at_fn_check_prepare_trace "ofproto.at:4064"
( $at_check_trace; sed 's/ (xid=0x[0-9a-fA-F]*)//' monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (OF1.2): total_len=14 in_port=ANY (via action) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=00:10:20:30:40:50,dl_dst=00:01:02:03:04:05,dl_type=0x1234
OFPT_PACKET_IN (OF1.2): total_len=14 in_port=CONTROLLER (via action) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=00:10:20:30:40:50,dl_dst=00:01:02:03:04:05,dl_type=0x5678
OFPT_BARRIER_REPLY (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4064"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:4072: check_logs "
at_fn_check_prepare_trace "ofproto.at:4072"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4072"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:4072: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:4072"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4072"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4072: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:4072"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4072"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4072: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4072: wait failed" >&5

    $as_echo "ofproto.at:4072" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4072"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:4072: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:4072"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4072"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4072: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:4072"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4072"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4072: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4072: wait failed" >&5

    $as_echo "ofproto.at:4072" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4072"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_962
#AT_START_963
at_fn_group_banner 963 'ofproto.at:4079' \
  "ofproto - packet-out from controller (OpenFlow 1.1)" "" 51
at_xfail=no
(
  $as_echo "963. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:4080: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:4080"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4080"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4080: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:4080"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4080"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4080: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4080"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4080"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:4080: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:4080"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4080"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4080: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:4080"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4080"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4080: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4080"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4080"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:4080: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:4080"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4080"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Start a monitor listening for packet-ins.
{ set +x
$as_echo "$at_srcdir/ofproto.at:4083: ovs-ofctl -O OpenFlow11 -P standard monitor br0 --detach --no-chdir --pidfile"
at_fn_check_prepare_trace "ofproto.at:4083"
( $at_check_trace; ovs-ofctl -O OpenFlow11 -P standard monitor br0 --detach --no-chdir --pidfile
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4083"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl -t ovs-ofctl ofctl/send 0209000c0123456700000080
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log


# Send some packet-outs with OFPP_NONE and OFPP_CONTROLLER as in_port.
{ set +x
$as_echo "$at_srcdir/ofproto.at:4090: ovs-appctl -t ovs-ofctl ofctl/packet-out \"in_port=none, packet=0001020304050010203040501234 actions=controller\""
at_fn_check_prepare_trace "ofproto.at:4090"
( $at_check_trace; ovs-appctl -t ovs-ofctl ofctl/packet-out "in_port=none, packet=0001020304050010203040501234 actions=controller"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4090"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:4091: ovs-appctl -t ovs-ofctl ofctl/packet-out \"in_port=controller packet=0001020304050010203040505678 actions=controller\""
at_fn_check_prepare_trace "ofproto.at:4091"
( $at_check_trace; ovs-appctl -t ovs-ofctl ofctl/packet-out "in_port=controller packet=0001020304050010203040505678 actions=controller"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4091"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


# Stop the monitor and check its output.
ovs-appctl -t ovs-ofctl ofctl/barrier
{ set +x
$as_echo "$at_srcdir/ofproto.at:4095: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:4095"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4095"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4095: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:4095"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4095"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4095: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4095: wait failed" >&5

    $as_echo "ofproto.at:4095" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4095"
fi


{ set +x
$as_echo "$at_srcdir/ofproto.at:4097: sed 's/ (xid=0x[0-9a-fA-F]*)//
/PACKET_OUT/d' monitor.log"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4097"
( $at_check_trace; sed 's/ (xid=0x[0-9a-fA-F]*)//
/PACKET_OUT/d' monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (OF1.1): total_len=14 in_port=ANY (via action) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=00:10:20:30:40:50,dl_dst=00:01:02:03:04:05,dl_type=0x1234
OFPT_PACKET_IN (OF1.1): total_len=14 in_port=CONTROLLER (via action) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=00:10:20:30:40:50,dl_dst=00:01:02:03:04:05,dl_type=0x5678
OFPT_BARRIER_REPLY (OF1.1):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4097"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:4106: check_logs "
at_fn_check_prepare_trace "ofproto.at:4106"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4106"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:4106: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:4106"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4106"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4106: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:4106"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4106"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4106: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4106: wait failed" >&5

    $as_echo "ofproto.at:4106" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4106"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:4106: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:4106"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4106"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4106: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:4106"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4106"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4106: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4106: wait failed" >&5

    $as_echo "ofproto.at:4106" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4106"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_963
#AT_START_964
at_fn_group_banner 964 'ofproto.at:4109' \
  "ofproto - packet-out from controller (OpenFlow 1.5)" "" 51
at_xfail=no
(
  $as_echo "964. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:4110: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:4110"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4110"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4110: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:4110"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4110"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4110: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4110"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4110"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:4110: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:4110"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4110"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4110: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:4110"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4110"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4110: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4110"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4110"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:4110: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:4110"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4110"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Start a monitor listening for packet-ins.
{ set +x
$as_echo "$at_srcdir/ofproto.at:4113: ovs-ofctl -O OpenFlow15 -P standard monitor br0 --detach --no-chdir --pidfile"
at_fn_check_prepare_trace "ofproto.at:4113"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -P standard monitor br0 --detach --no-chdir --pidfile
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4113"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl -t ovs-ofctl ofctl/send 0609000c0123456700000080
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log


# Send some packet-outs with OFPP_NONE and OFPP_CONTROLLER (65533) as in_port.
{ set +x
$as_echo "$at_srcdir/ofproto.at:4120: ovs-ofctl -O OpenFlow15 packet-out br0 \"in_port=none tun_id=0x11 metadata=0x22 packet=0001020304050010203040501234 actions=controller\""
at_fn_check_prepare_trace "ofproto.at:4120"
( $at_check_trace; ovs-ofctl -O OpenFlow15 packet-out br0 "in_port=none tun_id=0x11 metadata=0x22 packet=0001020304050010203040501234 actions=controller"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4120"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:4121: ovs-ofctl -O OpenFlow15 packet-out br0 \"in_port=controller tun_id=0x11 metadata=0x33 packet=0001020304050010203040505678 actions=controller\""
at_fn_check_prepare_trace "ofproto.at:4121"
( $at_check_trace; ovs-ofctl -O OpenFlow15 packet-out br0 "in_port=controller tun_id=0x11 metadata=0x33 packet=0001020304050010203040505678 actions=controller"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4121"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


# Stop the monitor and check its output.
ovs-appctl -t ovs-ofctl ofctl/barrier
{ set +x
$as_echo "$at_srcdir/ofproto.at:4125: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:4125"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4125"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4125: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:4125"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4125"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4125: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4125: wait failed" >&5

    $as_echo "ofproto.at:4125" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4125"
fi


{ set +x
$as_echo "$at_srcdir/ofproto.at:4127: sed 's/ (xid=0x[0-9a-fA-F]*)//' monitor.log"
at_fn_check_prepare_trace "ofproto.at:4127"
( $at_check_trace; sed 's/ (xid=0x[0-9a-fA-F]*)//' monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (OF1.5): total_len=14 tun_id=0x11,metadata=0x22,in_port=ANY (via packet_out) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=00:10:20:30:40:50,dl_dst=00:01:02:03:04:05,dl_type=0x1234
OFPT_PACKET_IN (OF1.5): total_len=14 tun_id=0x11,metadata=0x33,in_port=CONTROLLER (via packet_out) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=00:10:20:30:40:50,dl_dst=00:01:02:03:04:05,dl_type=0x5678
OFPT_BARRIER_REPLY (OF1.5):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4127"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:4135: check_logs "
at_fn_check_prepare_trace "ofproto.at:4135"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4135"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:4135: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:4135"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4135"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4135: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:4135"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4135"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4135: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4135: wait failed" >&5

    $as_echo "ofproto.at:4135" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4135"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:4135: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:4135"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4135"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4135: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:4135"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4135"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4135: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4135: wait failed" >&5

    $as_echo "ofproto.at:4135" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4135"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_964
#AT_START_965
at_fn_group_banner 965 'ofproto.at:4139' \
  "ofproto - packet-out with metadata and userdata (NXT_PACKET_IN2)" "" 51
at_xfail=no
(
  $as_echo "965. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:4140: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:4140"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4140"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4140: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:4140"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4140"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4140: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4140"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4140"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:4140: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:4140"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4140"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4140: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:4140"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4140"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4140: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4140"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4140"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:4140: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:4140"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4140"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Start a monitor listening for packet-ins.
{ set +x
$as_echo "$at_srcdir/ofproto.at:4143: ovs-ofctl -P nxt_packet_in2 monitor br0 --detach --no-chdir --pidfile"
at_fn_check_prepare_trace "ofproto.at:4143"
( $at_check_trace; ovs-ofctl -P nxt_packet_in2 monitor br0 --detach --no-chdir --pidfile
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4143"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl -t ovs-ofctl ofctl/send 0109000c0123456700000080
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log


# Send a packet-out with a load action to set some metadata, and forward to controller
{ set +x
$as_echo "$at_srcdir/ofproto.at:4150: ovs-ofctl packet-out br0 \"in_port=controller packet=0001020304050010203040501234 actions=load(0xfafafafa5a5a5a5a->OXM_OF_METADATA[0..63]),load(0xaa->NXM_NX_PKT_MARK[]),controller(userdata=01.02.03.04.05)\""
at_fn_check_prepare_trace "ofproto.at:4150"
( $at_check_trace; ovs-ofctl packet-out br0 "in_port=controller packet=0001020304050010203040501234 actions=load(0xfafafafa5a5a5a5a->OXM_OF_METADATA[0..63]),load(0xaa->NXM_NX_PKT_MARK[]),controller(userdata=01.02.03.04.05)"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4150"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


# Stop the monitor and check its output.
ovs-appctl -t ovs-ofctl ofctl/barrier
{ set +x
$as_echo "$at_srcdir/ofproto.at:4154: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:4154"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4154"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4154: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:4154"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4154"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4154: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4154: wait failed" >&5

    $as_echo "ofproto.at:4154" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4154"
fi


{ set +x
$as_echo "$at_srcdir/ofproto.at:4156: sed 's/ (xid=0x[0-9a-fA-F]*)//' monitor.log"
at_fn_check_prepare_trace "ofproto.at:4156"
( $at_check_trace; sed 's/ (xid=0x[0-9a-fA-F]*)//' monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN2: total_len=14 pkt_mark=0xaa,metadata=0xfafafafa5a5a5a5a,in_port=CONTROLLER (via action) data_len=14 (unbuffered)
 userdata=01.02.03.04.05
vlan_tci=0x0000,dl_src=00:10:20:30:40:50,dl_dst=00:01:02:03:04:05,dl_type=0x1234
OFPT_BARRIER_REPLY:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4156"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:4163: check_logs "
at_fn_check_prepare_trace "ofproto.at:4163"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4163"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:4163: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:4163"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4163"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4163: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:4163"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4163"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4163: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4163: wait failed" >&5

    $as_echo "ofproto.at:4163" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4163"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:4163: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:4163"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4163"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4163: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:4163"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4163"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4163: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4163: wait failed" >&5

    $as_echo "ofproto.at:4163" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4163"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_965
#AT_START_966
at_fn_group_banner 966 'ofproto.at:4167' \
  "ofproto - packet-out with set_field metadata (OpenFlow 1.5)" "" 51
at_xfail=no
(
  $as_echo "966. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:4168: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:4168"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4168"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4168: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:4168"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4168"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4168: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4168"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4168"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:4168: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:4168"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4168"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4168: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:4168"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4168"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4168: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4168"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4168"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:4168: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:4168"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4168"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Start a monitor listening for packet-ins.
{ set +x
$as_echo "$at_srcdir/ofproto.at:4171: ovs-ofctl -P standard -O OpenFlow13 monitor br0 --detach --no-chdir --pidfile"
at_fn_check_prepare_trace "ofproto.at:4171"
( $at_check_trace; ovs-ofctl -P standard -O OpenFlow13 monitor br0 --detach --no-chdir --pidfile
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4171"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl -t ovs-ofctl ofctl/send 0409000c0123456700000080
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log


# Send a packet-out with a couple of set-field action to set some metadata, and forward to controller
{ set +x
$as_echo "$at_srcdir/ofproto.at:4178: ovs-ofctl -O OpenFlow15 packet-out br0 CONTROLLER 'set_field:0xfafafafa5a5a5a5a->metadata, controller' '0001020304050010203040501234'"
at_fn_check_prepare_trace "ofproto.at:4178"
( $at_check_trace; ovs-ofctl -O OpenFlow15 packet-out br0 CONTROLLER 'set_field:0xfafafafa5a5a5a5a->metadata, controller' '0001020304050010203040501234'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4178"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


# Stop the monitor and check its output.
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl exit

{ set +x
$as_echo "$at_srcdir/ofproto.at:4184: sed 's/ (xid=0x[0-9a-fA-F]*)//' monitor.log"
at_fn_check_prepare_trace "ofproto.at:4184"
( $at_check_trace; sed 's/ (xid=0x[0-9a-fA-F]*)//' monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (OF1.3): total_len=14 metadata=0xfafafafa5a5a5a5a,in_port=CONTROLLER (via action) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=00:10:20:30:40:50,dl_dst=00:01:02:03:04:05,dl_type=0x1234
OFPT_BARRIER_REPLY (OF1.3):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4184"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:4190: check_logs "
at_fn_check_prepare_trace "ofproto.at:4190"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4190"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:4190: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:4190"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4190"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4190: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:4190"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4190"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4190: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4190: wait failed" >&5

    $as_echo "ofproto.at:4190" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4190"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:4190: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:4190"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4190"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4190: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:4190"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4190"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4190: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4190: wait failed" >&5

    $as_echo "ofproto.at:4190" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4190"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_966
#AT_START_967
at_fn_group_banner 967 'ofproto.at:4194' \
  "ofproto - packet-out with set_field metadata with packet_type PT_ETH (OpenFlow 1.5)" "" 51
at_xfail=no
(
  $as_echo "967. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:4195: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:4195"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4195"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4195: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:4195"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4195"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4195: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4195"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4195"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:4195: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:4195"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4195"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4195: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:4195"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4195"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4195: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4195"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4195"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:4195: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:4195"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4195"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Start a monitor listening for packet-ins.
{ set +x
$as_echo "$at_srcdir/ofproto.at:4198: ovs-ofctl -P standard -O OpenFlow13 monitor br0 --detach --no-chdir --pidfile"
at_fn_check_prepare_trace "ofproto.at:4198"
( $at_check_trace; ovs-ofctl -P standard -O OpenFlow13 monitor br0 --detach --no-chdir --pidfile
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4198"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl -t ovs-ofctl ofctl/send 0409000c0123456700000080
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log


# Send a packet-out with a couple of set-field action to set some metadata, and forward to controller
{ set +x
$as_echo "$at_srcdir/ofproto.at:4205: ovs-ofctl -O OpenFlow15 packet-out br0 \"in_port=controller packet=0001020304050010203040501234 packet_type(0,0x0) actions=set_field:0xfafafafa5a5a5a5a->metadata,controller\""
at_fn_check_prepare_trace "ofproto.at:4205"
( $at_check_trace; ovs-ofctl -O OpenFlow15 packet-out br0 "in_port=controller packet=0001020304050010203040501234 packet_type(0,0x0) actions=set_field:0xfafafafa5a5a5a5a->metadata,controller"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4205"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


# Stop the monitor and check its output.
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl exit

{ set +x
$as_echo "$at_srcdir/ofproto.at:4211: sed 's/ (xid=0x[0-9a-fA-F]*)//' monitor.log"
at_fn_check_prepare_trace "ofproto.at:4211"
( $at_check_trace; sed 's/ (xid=0x[0-9a-fA-F]*)//' monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (OF1.3): total_len=14 metadata=0xfafafafa5a5a5a5a,in_port=CONTROLLER (via action) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=00:10:20:30:40:50,dl_dst=00:01:02:03:04:05,dl_type=0x1234
OFPT_BARRIER_REPLY (OF1.3):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4211"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:4217: check_logs "
at_fn_check_prepare_trace "ofproto.at:4217"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4217"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:4217: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:4217"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4217"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4217: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:4217"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4217"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4217: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4217: wait failed" >&5

    $as_echo "ofproto.at:4217" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4217"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:4217: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:4217"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4217"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4217: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:4217"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4217"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4217: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4217: wait failed" >&5

    $as_echo "ofproto.at:4217" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4217"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_967
#AT_START_968
at_fn_group_banner 968 'ofproto.at:4221' \
  "ofproto - packet-out with set_field metadata with packet_type PT_IPV4 on PTAP bridge (OpenFlow 1.5)" "" 51
at_xfail=no
(
  $as_echo "968. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:4222: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:4222"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4222"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4222: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:4222"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4222"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4222: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4222"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4222"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:4222: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:4222"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4222"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4222: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:4222"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4222"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4222: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4222"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4222"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:4222: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:4222"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4222"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Start a monitor listening for packet-ins.
{ set +x
$as_echo "$at_srcdir/ofproto.at:4225: ovs-ofctl -P standard -O OpenFlow13 monitor br0 --detach --no-chdir --pidfile"
at_fn_check_prepare_trace "ofproto.at:4225"
( $at_check_trace; ovs-ofctl -P standard -O OpenFlow13 monitor br0 --detach --no-chdir --pidfile
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4225"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl -t ovs-ofctl ofctl/send 0409000c0123456700000080
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log


# Send a packet-out with a couple of set-field action to set some metadata, and forward to controller
{ set +x
$as_echo "$at_srcdir/ofproto.at:4232: ovs-ofctl -O OpenFlow15 packet-out br0 \"in_port=controller packet=4500002012344000ff1155670a0000140a00001e006400c8000cea78ffffffff packet_type(1,0x800) actions=set_field:0xfafafafa5a5a5a5a->metadata,controller\""
at_fn_check_prepare_trace "ofproto.at:4232"
( $at_check_trace; ovs-ofctl -O OpenFlow15 packet-out br0 "in_port=controller packet=4500002012344000ff1155670a0000140a00001e006400c8000cea78ffffffff packet_type(1,0x800) actions=set_field:0xfafafafa5a5a5a5a->metadata,controller"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4232"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


# Stop the monitor and check its output.
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl exit

{ set +x
$as_echo "$at_srcdir/ofproto.at:4238: sed 's/ (xid=0x[0-9a-fA-F]*)//' monitor.log"
at_fn_check_prepare_trace "ofproto.at:4238"
( $at_check_trace; sed 's/ (xid=0x[0-9a-fA-F]*)//' monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (OF1.3): total_len=32 packet_type=(1,0x800),metadata=0xfafafafa5a5a5a5a,in_port=CONTROLLER (via action) data_len=32 (unbuffered)
packet_type=(1,0x800),nw_src=10.0.0.20,nw_dst=10.0.0.30,nw_proto=17,nw_tos=0,nw_ecn=0,nw_ttl=255,tp_src=100,tp_dst=200 udp_csum:ea78
OFPT_BARRIER_REPLY (OF1.3):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4238"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:4244: check_logs "
at_fn_check_prepare_trace "ofproto.at:4244"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4244"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:4244: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:4244"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4244"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4244: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:4244"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4244"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4244: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4244: wait failed" >&5

    $as_echo "ofproto.at:4244" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4244"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:4244: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:4244"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4244"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4244: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:4244"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4244"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4244: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4244: wait failed" >&5

    $as_echo "ofproto.at:4244" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4244"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_968
#AT_START_969
at_fn_group_banner 969 'ofproto.at:4249' \
  "ofproto - packet-out with metadata (NXM)" "       " 51
at_xfail=no
(
  $as_echo "969. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:4250: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:4250"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4250"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4250: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:4250"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4250"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4250: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4250"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4250"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:4250: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:4250"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4250"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4250: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:4250"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4250"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4250: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4250"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4250"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:4250: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:4250"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4250"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Start a monitor listening for packet-ins.
{ set +x
$as_echo "$at_srcdir/ofproto.at:4253: ovs-ofctl -P nxt_packet_in monitor br0 --detach --no-chdir --pidfile"
at_fn_check_prepare_trace "ofproto.at:4253"
( $at_check_trace; ovs-ofctl -P nxt_packet_in monitor br0 --detach --no-chdir --pidfile
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4253"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl -t ovs-ofctl ofctl/send 0109000c0123456700000080
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log


# Send a packet-out with a load action to set some metadata, and forward to controller
{ set +x
$as_echo "$at_srcdir/ofproto.at:4260: ovs-ofctl packet-out br0 \"in_port=controller packet=0001020304050010203040501234 actions=load(0xfafafafa5a5a5a5a->OXM_OF_METADATA[0..63]),load(0xaa->NXM_NX_PKT_MARK[]),controller\""
at_fn_check_prepare_trace "ofproto.at:4260"
( $at_check_trace; ovs-ofctl packet-out br0 "in_port=controller packet=0001020304050010203040501234 actions=load(0xfafafafa5a5a5a5a->OXM_OF_METADATA[0..63]),load(0xaa->NXM_NX_PKT_MARK[]),controller"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4260"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


# Stop the monitor and check its output.
ovs-appctl -t ovs-ofctl ofctl/barrier
{ set +x
$as_echo "$at_srcdir/ofproto.at:4264: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:4264"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4264"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4264: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:4264"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4264"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4264: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4264: wait failed" >&5

    $as_echo "ofproto.at:4264" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4264"
fi


{ set +x
$as_echo "$at_srcdir/ofproto.at:4266: sed 's/ (xid=0x[0-9a-fA-F]*)//' monitor.log"
at_fn_check_prepare_trace "ofproto.at:4266"
( $at_check_trace; sed 's/ (xid=0x[0-9a-fA-F]*)//' monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN: total_len=14 pkt_mark=0xaa,metadata=0xfafafafa5a5a5a5a,in_port=CONTROLLER (via action) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=00:10:20:30:40:50,dl_dst=00:01:02:03:04:05,dl_type=0x1234
OFPT_BARRIER_REPLY:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4266"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:4272: check_logs "
at_fn_check_prepare_trace "ofproto.at:4272"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4272"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:4272: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:4272"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4272"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4272: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:4272"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4272"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4272: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4272: wait failed" >&5

    $as_echo "ofproto.at:4272" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4272"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:4272: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:4272"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4272"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4272: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:4272"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4272"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4272: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4272: wait failed" >&5

    $as_echo "ofproto.at:4272" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4272"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_969
#AT_START_970
at_fn_group_banner 970 'ofproto.at:4277' \
  "ofproto - packet-out with metadata (OpenFlow 1.2)" "" 51
at_xfail=no
(
  $as_echo "970. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:4278: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:4278"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4278"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4278: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:4278"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4278"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4278: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4278"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4278"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:4278: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:4278"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4278"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4278: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:4278"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4278"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4278: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4278"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4278"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:4278: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:4278"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4278"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Start a monitor listening for packet-ins.
{ set +x
$as_echo "$at_srcdir/ofproto.at:4281: ovs-ofctl -O OpenFlow12 -P standard monitor br0 --detach --no-chdir --pidfile"
at_fn_check_prepare_trace "ofproto.at:4281"
( $at_check_trace; ovs-ofctl -O OpenFlow12 -P standard monitor br0 --detach --no-chdir --pidfile
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4281"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl -t ovs-ofctl ofctl/send 0309000c0123456700000080
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log


# Send a packet-out with a set-field action to set some metadata, and forward to controller
{ set +x
$as_echo "$at_srcdir/ofproto.at:4288: ovs-ofctl -O OpenFlow12 packet-out br0 none 'set_field:0xfafafafa5a5a5a5a->metadata, controller' '0001020304050010203040501234'"
at_fn_check_prepare_trace "ofproto.at:4288"
( $at_check_trace; ovs-ofctl -O OpenFlow12 packet-out br0 none 'set_field:0xfafafafa5a5a5a5a->metadata, controller' '0001020304050010203040501234'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4288"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


# Stop the monitor and check its output.
ovs-appctl -t ovs-ofctl ofctl/barrier
{ set +x
$as_echo "$at_srcdir/ofproto.at:4292: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:4292"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4292"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4292: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:4292"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4292"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4292: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4292: wait failed" >&5

    $as_echo "ofproto.at:4292" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4292"
fi


{ set +x
$as_echo "$at_srcdir/ofproto.at:4294: sed 's/ (xid=0x[0-9a-fA-F]*)//' monitor.log"
at_fn_check_prepare_trace "ofproto.at:4294"
( $at_check_trace; sed 's/ (xid=0x[0-9a-fA-F]*)//' monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (OF1.2): total_len=14 metadata=0xfafafafa5a5a5a5a,in_port=ANY (via action) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=00:10:20:30:40:50,dl_dst=00:01:02:03:04:05,dl_type=0x1234
OFPT_BARRIER_REPLY (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4294"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:4300: check_logs "
at_fn_check_prepare_trace "ofproto.at:4300"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4300"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:4300: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:4300"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4300"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4300: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:4300"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4300"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4300: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4300: wait failed" >&5

    $as_echo "ofproto.at:4300" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4300"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:4300: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:4300"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4300"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4300: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:4300"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4300"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4300: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4300: wait failed" >&5

    $as_echo "ofproto.at:4300" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4300"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_970
#AT_START_971
at_fn_group_banner 971 'ofproto.at:4305' \
  "ofproto - packet-out with metadata and dual set_field (OpenFlow 1.3)" "" 51
at_xfail=no
(
  $as_echo "971. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:4306: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:4306"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4306"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4306: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:4306"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4306"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4306: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4306"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4306"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:4306: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:4306"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4306"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4306: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:4306"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4306"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4306: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4306"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4306"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:4306: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:4306"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4306"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Start a monitor listening for packet-ins.
{ set +x
$as_echo "$at_srcdir/ofproto.at:4309: ovs-ofctl -O OpenFlow13 -P standard monitor br0 --detach --no-chdir --pidfile"
at_fn_check_prepare_trace "ofproto.at:4309"
( $at_check_trace; ovs-ofctl -O OpenFlow13 -P standard monitor br0 --detach --no-chdir --pidfile
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4309"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl -t ovs-ofctl ofctl/send 0409000c0123456700000080
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log


# Send a packet-out with a couple of set-field action to set some metadata, and forward to controller
{ set +x
$as_echo "$at_srcdir/ofproto.at:4316: ovs-ofctl -O OpenFlow13 packet-out br0 none 'set_field:0xfafafafa5a5a5a5a->metadata, set_field:0x6b->metadata, controller' '0001020304050010203040501234'"
at_fn_check_prepare_trace "ofproto.at:4316"
( $at_check_trace; ovs-ofctl -O OpenFlow13 packet-out br0 none 'set_field:0xfafafafa5a5a5a5a->metadata, set_field:0x6b->metadata, controller' '0001020304050010203040501234'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4316"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


# Stop the monitor and check its output.
ovs-appctl -t ovs-ofctl ofctl/barrier
{ set +x
$as_echo "$at_srcdir/ofproto.at:4320: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:4320"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4320"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4320: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:4320"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4320"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4320: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4320: wait failed" >&5

    $as_echo "ofproto.at:4320" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4320"
fi


{ set +x
$as_echo "$at_srcdir/ofproto.at:4322: sed 's/ (xid=0x[0-9a-fA-F]*)//' monitor.log"
at_fn_check_prepare_trace "ofproto.at:4322"
( $at_check_trace; sed 's/ (xid=0x[0-9a-fA-F]*)//' monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (OF1.3): total_len=14 metadata=0x6b,in_port=ANY (via action) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=00:10:20:30:40:50,dl_dst=00:01:02:03:04:05,dl_type=0x1234
OFPT_BARRIER_REPLY (OF1.3):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4322"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:4328: check_logs "
at_fn_check_prepare_trace "ofproto.at:4328"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4328"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:4328: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:4328"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4328"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4328: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:4328"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4328"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4328: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4328: wait failed" >&5

    $as_echo "ofproto.at:4328" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4328"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:4328: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:4328"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4328"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4328: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:4328"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4328"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4328: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4328: wait failed" >&5

    $as_echo "ofproto.at:4328" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4328"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_971
#AT_START_972
at_fn_group_banner 972 'ofproto.at:4332' \
  "ofproto - packet-out with tunnel metadata (OpenFlow 1.2)" "" 51
at_xfail=no
(
  $as_echo "972. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:4333: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:4333"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4333"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4333: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:4333"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4333"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4333: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4333"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4333"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:4333: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:4333"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4333"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4333: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:4333"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4333"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4333: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4333"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4333"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:4333: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:4333"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4333"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Start a monitor listening for packet-ins.
{ set +x
$as_echo "$at_srcdir/ofproto.at:4336: ovs-ofctl -O OpenFlow12 -P standard monitor br0 --detach --no-chdir --pidfile"
at_fn_check_prepare_trace "ofproto.at:4336"
( $at_check_trace; ovs-ofctl -O OpenFlow12 -P standard monitor br0 --detach --no-chdir --pidfile
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4336"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl -t ovs-ofctl ofctl/send 0309000c0123456700000080
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log


# Send a packet-out with set field actions to set some tunnel metadata, and forward to controller
{ set +x
$as_echo "$at_srcdir/ofproto.at:4343: ovs-ofctl -O OpenFlow12 packet-out br0 none 'set_field:127.0.0.1->tun_src,set_field:0x01020304->tun_id,set_field:192.168.0.1->tun_dst, controller' '0001020304050010203040501234'"
at_fn_check_prepare_trace "ofproto.at:4343"
( $at_check_trace; ovs-ofctl -O OpenFlow12 packet-out br0 none 'set_field:127.0.0.1->tun_src,set_field:0x01020304->tun_id,set_field:192.168.0.1->tun_dst, controller' '0001020304050010203040501234'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4343"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


# Stop the monitor and check its output.
ovs-appctl -t ovs-ofctl ofctl/barrier
{ set +x
$as_echo "$at_srcdir/ofproto.at:4347: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:4347"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4347"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4347: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:4347"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4347"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4347: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4347: wait failed" >&5

    $as_echo "ofproto.at:4347" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4347"
fi


{ set +x
$as_echo "$at_srcdir/ofproto.at:4349: sed 's/ (xid=0x[0-9a-fA-F]*)//' monitor.log"
at_fn_check_prepare_trace "ofproto.at:4349"
( $at_check_trace; sed 's/ (xid=0x[0-9a-fA-F]*)//' monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (OF1.2): total_len=14 tun_id=0x1020304,tun_src=127.0.0.1,tun_dst=192.168.0.1,in_port=ANY (via action) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=00:10:20:30:40:50,dl_dst=00:01:02:03:04:05,dl_type=0x1234
OFPT_BARRIER_REPLY (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4349"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:4355: check_logs "
at_fn_check_prepare_trace "ofproto.at:4355"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4355"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:4355: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:4355"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4355"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4355: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:4355"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4355"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4355: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4355: wait failed" >&5

    $as_echo "ofproto.at:4355" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4355"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:4355: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:4355"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4355"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4355: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:4355"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4355"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4355: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4355: wait failed" >&5

    $as_echo "ofproto.at:4355" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4355"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_972
#AT_START_973
at_fn_group_banner 973 'ofproto.at:4383' \
  "ofproto - flow monitoring" "                      " 51
at_xfail=no
(
  $as_echo "973. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:4385: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:4385"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4385"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4385: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:4385"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4385"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4385: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4385"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4385"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:4385: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:4385"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4385"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4385: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:4385"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4385"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4385: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4385"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4385"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:4385: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:4385"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4385"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



ovs-ofctl add-flow br0 in_port=0,dl_vlan=123,actions=output:1

# Start a monitor watching the flow table and check the initial reply.
ovs-ofctl monitor br0 watch: --detach --no-chdir --pidfile >monitor.log 2>&1

ovs-appctl -t ovs-ofctl ofctl/barrier
{ set +x
$as_echo "$at_srcdir/ofproto.at:4393: sed 's/ (xid=0x[1-9a-fA-F][0-9a-fA-F]*)//' monitor.log"
at_fn_check_prepare_trace "ofproto.at:4393"
( $at_check_trace; sed 's/ (xid=0x[1-9a-fA-F][0-9a-fA-F]*)//' monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW_MONITOR reply:
 event=ADDED table=0 cookie=0 in_port=0,dl_vlan=123 actions=output:1
OFPT_BARRIER_REPLY:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4393"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


# Add, delete, and modify some flows and check the updates.
ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log
ovs-ofctl add-flow br0 in_port=0,dl_vlan=124,actions=output:2
ovs-ofctl add-flow br0 in_port=0,dl_vlan=123,actions=output:5
ovs-ofctl add-flow br0 in_port=0,dl_vlan=123,dl_vlan_pcp=0,actions=output:6
ovs-ofctl add-flow br0 in_port=0,dl_vlan=123,dl_vlan_pcp=1,actions=output:7
ovs-ofctl add-flow br0 in_port=0,dl_vlan=123,actions=output:8
ovs-ofctl add-flow br0 in_port=0,dl_vlan=65535,dl_vlan_pcp=0,actions=output:9
ovs-ofctl add-flow br0 in_port=0,dl_vlan=65535,dl_vlan_pcp=1,actions=output:10
ovs-ofctl add-flow br0 in_port=0,dl_vlan=65535,actions=output:11
ovs-ofctl add-flow br0 in_port=0,dl_vlan=8191,dl_vlan_pcp=0,actions=output:12
ovs-ofctl add-flow br0 in_port=0,dl_vlan=8191,dl_vlan_pcp=1,actions=output:13
ovs-ofctl add-flow br0 in_port=0,dl_vlan=8191,actions=output:14
ovs-ofctl add-flow br0 in_port=0,dl_vlan=0,dl_vlan_pcp=0,actions=output:15
ovs-ofctl add-flow br0 in_port=0,dl_vlan=0,dl_vlan_pcp=1,actions=output:16
ovs-ofctl add-flow br0 in_port=0,dl_vlan=0,actions=output:17
ovs-ofctl add-flow br0 in_port=0,dl_vlan=0,dl_vlan_pcp=0,actions=output:18
ovs-ofctl add-flow br0 in_port=0,dl_vlan=0,dl_vlan_pcp=1,actions=output:19
ovs-ofctl add-flow br0 in_port=0,dl_vlan=0,actions=output:20
ovs-ofctl add-flow br0 in_port=0,dl_vlan_pcp=0,actions=output:21
ovs-ofctl add-flow br0 in_port=0,dl_vlan_pcp=1,actions=output:22
ovs-ofctl add-flow br0 in_port=0,actions=output:23
ovs-ofctl mod-flows br0 dl_vlan=123,actions=output:3
ovs-ofctl mod-flows br0 cookie=5,dl_vlan=123,actions=output:3
ovs-ofctl del-flows br0 dl_vlan=123
ovs-ofctl del-flows br0
ovs-appctl -t ovs-ofctl ofctl/barrier
{ set +x
$as_echo "$at_srcdir/ofproto.at:4426: sed 's/ (xid=0x[1-9a-fA-F][0-9a-fA-F]*)//' monitor.log | multiline_sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:4426"
( $at_check_trace; sed 's/ (xid=0x[1-9a-fA-F][0-9a-fA-F]*)//' monitor.log | multiline_sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW_MONITOR reply (xid=0x0):
 event=ADDED table=0 cookie=0 in_port=0,dl_vlan=124 actions=output:2
NXST_FLOW_MONITOR reply (xid=0x0):
 event=ADDED table=0 cookie=0 in_port=0,dl_vlan=123 actions=output:5
NXST_FLOW_MONITOR reply (xid=0x0):
 event=ADDED table=0 cookie=0 in_port=0,dl_vlan=123,dl_vlan_pcp=0 actions=output:6
NXST_FLOW_MONITOR reply (xid=0x0):
 event=ADDED table=0 cookie=0 in_port=0,dl_vlan=123,dl_vlan_pcp=1 actions=output:7
NXST_FLOW_MONITOR reply (xid=0x0):
 event=ADDED table=0 cookie=0 in_port=0,dl_vlan=123 actions=output:8
NXST_FLOW_MONITOR reply (xid=0x0):
 event=ADDED table=0 cookie=0 in_port=0,dl_vlan=0,dl_vlan_pcp=0 actions=output:9
NXST_FLOW_MONITOR reply (xid=0x0):
 event=ADDED table=0 cookie=0 in_port=0,dl_vlan=0,dl_vlan_pcp=1 actions=output:10
NXST_FLOW_MONITOR reply (xid=0x0):
 event=ADDED table=0 cookie=0 in_port=0,vlan_tci=0x0000 actions=output:11
NXST_FLOW_MONITOR reply (xid=0x0):
 event=ADDED table=0 cookie=0 in_port=0,dl_vlan=4095,dl_vlan_pcp=0 actions=output:12
NXST_FLOW_MONITOR reply (xid=0x0):
 event=ADDED table=0 cookie=0 in_port=0,dl_vlan=4095,dl_vlan_pcp=1 actions=output:13
NXST_FLOW_MONITOR reply (xid=0x0):
 event=ADDED table=0 cookie=0 in_port=0,dl_vlan=4095 actions=output:14
NXST_FLOW_MONITOR reply (xid=0x0):
 event=ADDED table=0 cookie=0 in_port=0,dl_vlan=0,dl_vlan_pcp=0 actions=output:15
NXST_FLOW_MONITOR reply (xid=0x0):
 event=ADDED table=0 cookie=0 in_port=0,dl_vlan=0,dl_vlan_pcp=1 actions=output:16
NXST_FLOW_MONITOR reply (xid=0x0):
 event=ADDED table=0 cookie=0 in_port=0,dl_vlan=0 actions=output:17
NXST_FLOW_MONITOR reply (xid=0x0):
 event=ADDED table=0 cookie=0 in_port=0,dl_vlan=0,dl_vlan_pcp=0 actions=output:18
NXST_FLOW_MONITOR reply (xid=0x0):
 event=ADDED table=0 cookie=0 in_port=0,dl_vlan=0,dl_vlan_pcp=1 actions=output:19
NXST_FLOW_MONITOR reply (xid=0x0):
 event=ADDED table=0 cookie=0 in_port=0,dl_vlan=0 actions=output:20
NXST_FLOW_MONITOR reply (xid=0x0):
 event=ADDED table=0 cookie=0 in_port=0,dl_vlan_pcp=0 actions=output:21
NXST_FLOW_MONITOR reply (xid=0x0):
 event=ADDED table=0 cookie=0 in_port=0,dl_vlan_pcp=1 actions=output:22
NXST_FLOW_MONITOR reply (xid=0x0):
 event=ADDED table=0 cookie=0 in_port=0 actions=output:23
NXST_FLOW_MONITOR reply (xid=0x0):
 event=MODIFIED table=0 cookie=0 in_port=0,dl_vlan=123 actions=output:3
 event=MODIFIED table=0 cookie=0 in_port=0,dl_vlan=123,dl_vlan_pcp=0 actions=output:3
 event=MODIFIED table=0 cookie=0 in_port=0,dl_vlan=123,dl_vlan_pcp=1 actions=output:3
NXST_FLOW_MONITOR reply (xid=0x0):
 event=MODIFIED table=0 cookie=0x5 in_port=0,dl_vlan=123 actions=output:3
 event=MODIFIED table=0 cookie=0x5 in_port=0,dl_vlan=123,dl_vlan_pcp=0 actions=output:3
 event=MODIFIED table=0 cookie=0x5 in_port=0,dl_vlan=123,dl_vlan_pcp=1 actions=output:3
NXST_FLOW_MONITOR reply (xid=0x0):
 event=DELETED reason=delete table=0 cookie=0x5 in_port=0,dl_vlan=123 actions=output:3
 event=DELETED reason=delete table=0 cookie=0x5 in_port=0,dl_vlan=123,dl_vlan_pcp=0 actions=output:3
 event=DELETED reason=delete table=0 cookie=0x5 in_port=0,dl_vlan=123,dl_vlan_pcp=1 actions=output:3
NXST_FLOW_MONITOR reply (xid=0x0):
 event=DELETED reason=delete table=0 cookie=0 in_port=0 actions=output:23
 event=DELETED reason=delete table=0 cookie=0 in_port=0,dl_vlan=0 actions=output:20
 event=DELETED reason=delete table=0 cookie=0 in_port=0,dl_vlan=0,dl_vlan_pcp=0 actions=output:18
 event=DELETED reason=delete table=0 cookie=0 in_port=0,dl_vlan=0,dl_vlan_pcp=1 actions=output:19
 event=DELETED reason=delete table=0 cookie=0 in_port=0,dl_vlan=124 actions=output:2
 event=DELETED reason=delete table=0 cookie=0 in_port=0,dl_vlan=4095 actions=output:14
 event=DELETED reason=delete table=0 cookie=0 in_port=0,dl_vlan=4095,dl_vlan_pcp=0 actions=output:12
 event=DELETED reason=delete table=0 cookie=0 in_port=0,dl_vlan=4095,dl_vlan_pcp=1 actions=output:13
 event=DELETED reason=delete table=0 cookie=0 in_port=0,dl_vlan_pcp=0 actions=output:21
 event=DELETED reason=delete table=0 cookie=0 in_port=0,dl_vlan_pcp=1 actions=output:22
 event=DELETED reason=delete table=0 cookie=0 in_port=0,vlan_tci=0x0000 actions=output:11
OFPT_BARRIER_REPLY:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4426"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


# Check that our own changes are reported as full updates.
ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log
ovs-ofctl add-flow br0 in_port=1,actions=output:2
ovs-ofctl add-flow br0 in_port=2,actions=output:1
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/send 010e004812345678003fffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000ffffffffffff0000
ovs-appctl -t ovs-ofctl ofctl/barrier
{ set +x
$as_echo "$at_srcdir/ofproto.at:4501: ovs-ofctl dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:4501"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4501"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:4503: sed 's/ (xid=0x[1-9a-fA-F][0-9a-fA-F]*)//' monitor.log | multiline_sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:4503"
( $at_check_trace; sed 's/ (xid=0x[1-9a-fA-F][0-9a-fA-F]*)//' monitor.log | multiline_sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW_MONITOR reply (xid=0x0):
 event=ADDED table=0 cookie=0 in_port=1 actions=output:2
NXST_FLOW_MONITOR reply (xid=0x0):
 event=ADDED table=0 cookie=0 in_port=2 actions=output:1
OFPT_BARRIER_REPLY:
send: OFPT_FLOW_MOD: DEL priority=0 actions=drop
NXST_FLOW_MONITOR reply (xid=0x0):
 event=DELETED reason=delete table=0 cookie=0 in_port=1 actions=output:2
 event=DELETED reason=delete table=0 cookie=0 in_port=2 actions=output:1
OFPT_BARRIER_REPLY:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4503"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:4516: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:4516"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4516"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4516: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:4516"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4516"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4516: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4516: wait failed" >&5

    $as_echo "ofproto.at:4516" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4516"
fi

{ set +x
$as_echo "$at_srcdir/ofproto.at:4517: check_logs "
at_fn_check_prepare_trace "ofproto.at:4517"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4517"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:4517: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:4517"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4517"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4517: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:4517"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4517"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4517: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4517: wait failed" >&5

    $as_echo "ofproto.at:4517" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4517"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:4517: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:4517"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4517"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4517: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:4517"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4517"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4517: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4517: wait failed" >&5

    $as_echo "ofproto.at:4517" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4517"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_973
#AT_START_974
at_fn_group_banner 974 'ofproto.at:4520' \
  "ofproto - flow monitoring with !own" "            " 51
at_xfail=no
(
  $as_echo "974. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:4522: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:4522"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4522"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4522: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:4522"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4522"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4522: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4522"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4522"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:4522: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:4522"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4522"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4522: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:4522"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4522"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4522: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4522"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4522"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:4522: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:4522"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4522"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



ovs-ofctl add-flow br0 in_port=0,dl_vlan=123,actions=output:1

# Start a monitor watching the flow table and check the initial reply.
ovs-ofctl monitor br0 watch:\!own --detach --no-chdir --pidfile >monitor.log 2>&1

ovs-appctl -t ovs-ofctl ofctl/barrier
{ set +x
$as_echo "$at_srcdir/ofproto.at:4530: sed 's/ (xid=0x[1-9a-fA-F][0-9a-fA-F]*)//' monitor.log"
at_fn_check_prepare_trace "ofproto.at:4530"
( $at_check_trace; sed 's/ (xid=0x[1-9a-fA-F][0-9a-fA-F]*)//' monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW_MONITOR reply:
 event=ADDED table=0 cookie=0 in_port=0,dl_vlan=123 actions=output:1
OFPT_BARRIER_REPLY:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4530"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


# Check that our own changes are reported as abbreviations.
ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log
ovs-ofctl add-flow br0 in_port=1,actions=output:2
ovs-ofctl add-flow br0 in_port=2,actions=output:1
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/send 010e004812345678003fffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000ffffffffffff0000
ovs-appctl -t ovs-ofctl ofctl/barrier
{ set +x
$as_echo "$at_srcdir/ofproto.at:4543: ovs-ofctl dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:4543"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4543"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:4545: sed 's/ (xid=0x[1-9a-fA-F][0-9a-fA-F]*)//' monitor.log"
at_fn_check_prepare_trace "ofproto.at:4545"
( $at_check_trace; sed 's/ (xid=0x[1-9a-fA-F][0-9a-fA-F]*)//' monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW_MONITOR reply (xid=0x0):
 event=ADDED table=0 cookie=0 in_port=1 actions=output:2
NXST_FLOW_MONITOR reply (xid=0x0):
 event=ADDED table=0 cookie=0 in_port=2 actions=output:1
OFPT_BARRIER_REPLY:
send: OFPT_FLOW_MOD: DEL priority=0 actions=drop
NXST_FLOW_MONITOR reply (xid=0x0):
 event=ABBREV xid=0x12345678
OFPT_BARRIER_REPLY:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4545"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:4557: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:4557"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4557"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4557: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:4557"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4557"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4557: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4557: wait failed" >&5

    $as_echo "ofproto.at:4557" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4557"
fi

{ set +x
$as_echo "$at_srcdir/ofproto.at:4558: check_logs "
at_fn_check_prepare_trace "ofproto.at:4558"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4558"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:4558: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:4558"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4558"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4558: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:4558"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4558"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4558: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4558: wait failed" >&5

    $as_echo "ofproto.at:4558" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4558"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:4558: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:4558"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4558"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4558: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:4558"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4558"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4558: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4558: wait failed" >&5

    $as_echo "ofproto.at:4558" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4558"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_974
#AT_START_975
at_fn_group_banner 975 'ofproto.at:4561' \
  "ofproto - flow monitoring with out_port" "        " 51
at_xfail=no
(
  $as_echo "975. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:4563: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:4563"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4563"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4563: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:4563"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4563"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4563: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4563"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4563"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:4563: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:4563"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4563"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4563: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:4563"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4563"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4563: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4563"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4563"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:4563: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:4563"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4563"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



ovs-ofctl add-flow br0 in_port=0,dl_vlan=121,actions=output:1
ovs-ofctl add-flow br0 in_port=0,dl_vlan=122,actions=output:1
ovs-ofctl add-flow br0 in_port=0,dl_vlan=123,actions=output:2

# Start a monitor watching the flow table and check the initial reply.
ovs-ofctl monitor br0 watch:out_port=2 --detach --no-chdir --pidfile >monitor.log 2>&1

ovs-appctl -t ovs-ofctl ofctl/barrier
{ set +x
$as_echo "$at_srcdir/ofproto.at:4573: sed 's/ (xid=0x[1-9a-fA-F][0-9a-fA-F]*)//' monitor.log"
at_fn_check_prepare_trace "ofproto.at:4573"
( $at_check_trace; sed 's/ (xid=0x[1-9a-fA-F][0-9a-fA-F]*)//' monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW_MONITOR reply:
 event=ADDED table=0 cookie=0 in_port=0,dl_vlan=123 actions=output:2
OFPT_BARRIER_REPLY:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4573"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log

# Add, modify flows and check the updates.
ovs-ofctl mod-flows br0 dl_vlan=121,actions=drop
ovs-ofctl mod-flows br0 dl_vlan=122,actions=output:1,output:2
ovs-appctl -t ovs-ofctl ofctl/barrier

ovs-ofctl mod-flows br0 dl_vlan=123,actions=output:1,output:2
ovs-appctl -t ovs-ofctl ofctl/barrier

ovs-ofctl mod-flows br0 dl_vlan=122,actions=output:1
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-ofctl mod-flows br0 dl_vlan=123,actions=output:2
ovs-appctl -t ovs-ofctl ofctl/barrier

{ set +x
$as_echo "$at_srcdir/ofproto.at:4594: sed 's/ (xid=0x[1-9a-fA-F][0-9a-fA-F]*)//' monitor.log"
at_fn_check_prepare_trace "ofproto.at:4594"
( $at_check_trace; sed 's/ (xid=0x[1-9a-fA-F][0-9a-fA-F]*)//' monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW_MONITOR reply (xid=0x0):
 event=MODIFIED table=0 cookie=0 in_port=0,dl_vlan=122 actions=output:1,output:2
OFPT_BARRIER_REPLY:
NXST_FLOW_MONITOR reply (xid=0x0):
 event=MODIFIED table=0 cookie=0 in_port=0,dl_vlan=123 actions=output:1,output:2
OFPT_BARRIER_REPLY:
NXST_FLOW_MONITOR reply (xid=0x0):
 event=MODIFIED table=0 cookie=0 in_port=0,dl_vlan=122 actions=output:1
OFPT_BARRIER_REPLY:
NXST_FLOW_MONITOR reply (xid=0x0):
 event=MODIFIED table=0 cookie=0 in_port=0,dl_vlan=123 actions=output:2
OFPT_BARRIER_REPLY:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4594"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:4609: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:4609"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4609"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4609: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:4609"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4609"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4609: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4609: wait failed" >&5

    $as_echo "ofproto.at:4609" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4609"
fi

{ set +x
$as_echo "$at_srcdir/ofproto.at:4610: check_logs "
at_fn_check_prepare_trace "ofproto.at:4610"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4610"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:4610: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:4610"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4610"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4610: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:4610"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4610"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4610: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4610: wait failed" >&5

    $as_echo "ofproto.at:4610" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4610"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:4610: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:4610"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4610"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4610: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:4610"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4610"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4610: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4610: wait failed" >&5

    $as_echo "ofproto.at:4610" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4610"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_975
#AT_START_976
at_fn_group_banner 976 'ofproto.at:4613' \
  "ofproto - flow monitoring pause and resume" "     " 51
at_xfail=no
(
  $as_echo "976. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



# The maximum socket receive buffer size is important for this test, which
# tests behavior when the receive buffer overflows.
if test -e /proc/sys/net/core/rmem_max; then
    # Linux
    rmem_max=`cat /proc/sys/net/core/rmem_max`
elif rmem_max=`sysctl -n net.inet.tcp.recvbuf_max 2>/dev/null`; then
    : # FreeBSD, NetBSD
else
    # Don't know how to get maximum socket receive buffer on this OS
    $as_echo "ofproto.at:4625" >"$at_check_line_file"
at_fn_check_skip 77 "$at_srcdir/ofproto.at:4625"
fi
# Calculate the total amount of queuing: rmem_max in the kernel, 128 kB
# in ofproto sending userspace (see ofmonitor_flush() in connmgr.c).
queue_size=`expr $rmem_max + 128 \* 1024`
echo rmem_max=$rmem_max queue_size=$queue_size

# If there's too much queuing skip the test to avoid timing out.
$as_echo "ofproto.at:4633" >"$at_check_line_file"
(test $rmem_max -gt 1048576) \
  && at_fn_check_skip 77 "$at_srcdir/ofproto.at:4633"

# Each flow update message takes up at least 48 bytes of space in queues
# and in practice more than that.
n_msgs=`expr $queue_size / 48`
echo n_msgs=$n_msgs

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:4640: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:4640"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4640"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4640: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:4640"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4640"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4640: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4640"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4640"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:4640: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:4640"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4640"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4640: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:4640"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4640"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4640: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4640"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4640"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:4640: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:4640"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4640"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Start a monitor watching the flow table, then make it block.
on_exit 'kill `cat ovs-ofctl.pid`'
ovs-ofctl monitor br0 watch: --detach --no-chdir --pidfile >monitor.log 2>&1

ovs-appctl -t ovs-ofctl ofctl/block

# Add $n_msgs flows.
(echo "in_port=2,actions=output:2"
$PYTHON -c '
for i in range('$n_msgs'):
    print("cookie=1,reg1=%d,actions=drop" % i)
') > flows.txt
{ set +x
$as_echo "$at_srcdir/ofproto.at:4654: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto.at:4654"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4654"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

# Check that multipart flow dumps work properly:
{ set +x
$as_echo "$at_srcdir/ofproto.at:4656: ovs-ofctl diff-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto.at:4656"
( $at_check_trace; ovs-ofctl diff-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4656"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:4657: ovs-ofctl add-flow br0 in_port=1,cookie=3,actions=drop"
at_fn_check_prepare_trace "ofproto.at:4657"
( $at_check_trace; ovs-ofctl add-flow br0 in_port=1,cookie=3,actions=drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4657"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:4658: ovs-ofctl mod-flows br0 in_port=2,cookie=2,actions=output:2"
at_fn_check_prepare_trace "ofproto.at:4658"
( $at_check_trace; ovs-ofctl mod-flows br0 in_port=2,cookie=2,actions=output:2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4658"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:4659: ovs-ofctl del-flows br0 cookie=1/-1"
at_fn_check_prepare_trace "ofproto.at:4659"
( $at_check_trace; ovs-ofctl del-flows br0 cookie=1/-1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4659"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


ovs-appctl -t ovs-ofctl ofctl/unblock

# Wait for the connection resumed.
# A barrier doesn't work for this purpose.
#    https://www.mail-archive.com/dev@openvswitch.org/msg27013.html
#    https://www.mail-archive.com/dev@openvswitch.org/msg27675.html
$as_echo "ofproto.at:4667: waiting until grep NXT_FLOW_MONITOR_RESUMED monitor.log..." >&5
ovs_wait_cond () {
    grep NXT_FLOW_MONITOR_RESUMED monitor.log
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4667: wait failed" >&5

    $as_echo "ofproto.at:4667" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4667"
fi


{ set +x
$as_echo "$at_srcdir/ofproto.at:4669: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:4669"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4669"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4669: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:4669"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4669"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4669: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4669: wait failed" >&5

    $as_echo "ofproto.at:4669" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4669"
fi


# Check that the flow monitor reported the same number of flows
# added and deleted, but fewer than we actually added and deleted.
adds=`grep -c 'ADDED.*reg1=' monitor.log`
deletes=`grep -c 'DELETED.*reg1=' monitor.log`
echo adds=$adds deletes=$deletes
{ set +x
$as_echo "$at_srcdir/ofproto.at:4676: test \$adds -gt 100 && test \$adds -lt \$n_msgs"
at_fn_check_prepare_dynamic "test $adds -gt 100 && test $adds -lt $n_msgs" "ofproto.at:4676"
( $at_check_trace; test $adds -gt 100 && test $adds -lt $n_msgs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4676"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:4677: test \$adds = \$deletes"
at_fn_check_prepare_dynamic "test $adds = $deletes" "ofproto.at:4677"
( $at_check_trace; test $adds = $deletes
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4677"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


# Check that the flow monitor reported everything in the expected order:
#
#     event=ADDED table=0 cookie=0x1 reg1=0x22
# ...
#    NXT_FLOW_MONITOR_PAUSED:
# ...
#     event=DELETED reason=delete table=0 cookie=0x1 reg1=0x22
# ...
#     event=ADDED table=0 cookie=0x3 in_port=1
#     event=MODIFIED table=0 cookie=0x2 in_port=2 actions=output:2
#    NXT_FLOW_MONITOR_RESUMED:
#
# except that, between the PAUSED and RESUMED, the order of the ADDED
# and MODIFIED lines lines depends on hash order, that is, it varies
# as we change the hash function or change architecture.  Therefore,
# we use a couple of tests below to accept both orders.
{ set +x
$as_echo "$at_srcdir/ofproto.at:4695: ofctl_strip < monitor.log | sed -n -e '
/reg1=0x22\$/p
/cookie=0x[23]/p
/NXT_FLOW_MONITOR_PAUSED:/p
/NXT_FLOW_MONITOR_RESUMED:/p
' > monitor.log.subset"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4695"
( $at_check_trace; ofctl_strip < monitor.log | sed -n -e '
/reg1=0x22$/p
/cookie=0x[23]/p
/NXT_FLOW_MONITOR_PAUSED:/p
/NXT_FLOW_MONITOR_RESUMED:/p
' > monitor.log.subset
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4695"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:4701: grep -v MODIFIED monitor.log.subset"
at_fn_check_prepare_trace "ofproto.at:4701"
( $at_check_trace; grep -v MODIFIED monitor.log.subset
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " event=ADDED table=0 cookie=0x1 reg1=0x22
NXT_FLOW_MONITOR_PAUSED:
 event=DELETED reason=delete table=0 cookie=0x1 reg1=0x22
 event=ADDED table=0 cookie=0x3 in_port=1
NXT_FLOW_MONITOR_RESUMED:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4701"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:4708: grep -v ADDED monitor.log.subset"
at_fn_check_prepare_trace "ofproto.at:4708"
( $at_check_trace; grep -v ADDED monitor.log.subset
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_FLOW_MONITOR_PAUSED:
 event=DELETED reason=delete table=0 cookie=0x1 reg1=0x22
 event=MODIFIED table=0 cookie=0x2 in_port=2 actions=output:2
NXT_FLOW_MONITOR_RESUMED:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4708"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:4715: check_logs "
at_fn_check_prepare_trace "ofproto.at:4715"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4715"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:4715: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:4715"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4715"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4715: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:4715"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4715"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4715: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4715: wait failed" >&5

    $as_echo "ofproto.at:4715" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4715"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:4715: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:4715"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4715"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4715: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:4715"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4715"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4715: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4715: wait failed" >&5

    $as_echo "ofproto.at:4715" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4715"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_976
#AT_START_977
at_fn_group_banner 977 'ofproto.at:4718' \
  "ofproto - event filtering (OpenFlow 1.3)" "       " 51
at_xfail=no
(
  $as_echo "977. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:4720: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:4720"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4720"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4720: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:4720"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4720"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4720: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4720"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4720"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:4720: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:4720"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4720"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4720: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:4720"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4720"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4720: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4720"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4720"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:4720: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:4720"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4720"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Start a monitor, use the required protocol version
ovs-ofctl -O OpenFlow13 monitor br0 --detach --no-chdir --pidfile >monitor.log 2>&1


# Send an OpenFlow13 message (04), OFPT_GET_ASYNC_REQUEST (1a), length (8), xid (0a)
ovs-appctl -t ovs-ofctl ofctl/send 041a00080000000a
ovs-appctl -t ovs-ofctl ofctl/barrier

# Check default setting
read -r -d '' expected <<'EOF'
EOF

{ set +x
$as_echo "$at_srcdir/ofproto.at:4734: ofctl_strip < monitor.log"
at_fn_check_prepare_trace "ofproto.at:4734"
( $at_check_trace; ofctl_strip < monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "send: OFPT_GET_ASYNC_REQUEST (OF1.3):
OFPT_GET_ASYNC_REPLY (OF1.3):
 master:
       PACKET_IN: no_match action
     PORT_STATUS: add delete modify
    FLOW_REMOVED: idle hard delete group_delete
     ROLE_STATUS: (off)
    TABLE_STATUS: (off)
  REQUESTFORWARD: (off)

 slave:
       PACKET_IN: (off)
     PORT_STATUS: add delete modify
    FLOW_REMOVED: (off)
     ROLE_STATUS: (off)
    TABLE_STATUS: (off)
  REQUESTFORWARD: (off)
OFPT_BARRIER_REPLY (OF1.3):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4734"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:4755: check_logs "
at_fn_check_prepare_trace "ofproto.at:4755"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4755"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:4755: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:4755"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4755"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4755: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:4755"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4755"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4755: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4755: wait failed" >&5

    $as_echo "ofproto.at:4755" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4755"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:4755: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:4755"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4755"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4755: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:4755"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4755"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4755: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4755: wait failed" >&5

    $as_echo "ofproto.at:4755" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4755"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_977
#AT_START_978
at_fn_group_banner 978 'ofproto.at:4758' \
  "ofproto - ofport_request" "                       " 51
at_xfail=no
(
  $as_echo "978. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:4759: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:4759"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4759"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4759: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:4759"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4759"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4759: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4759"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4759"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:4759: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:4759"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4759"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4759: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:4759"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4759"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4759: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4759"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4759"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:4759: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:4759"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4759"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3

set_and_check_specific_ofports () {
    ovs-vsctl set Interface p1 ofport_request="$1" -- \
	      set Interface p2 ofport_request="$2" -- \
	      set Interface p3 ofport_request="$3"
    ofports=`ovs-vsctl get Interface p1 ofport -- \
		       get Interface p2 ofport -- \
		       get Interface p3 ofport`
    { set +x
$as_echo "$at_srcdir/ofproto.at:4769: echo \$ofports"
at_fn_check_prepare_dynamic "echo $ofports" "ofproto.at:4769"
( $at_check_trace; echo $ofports
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "$1 $2 $3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4769"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

}
for pre in      '1 2 3' '1 3 2' '2 1 3' '2 3 1' '3 1 2' '3 2 1'; do
    for post in '1 2 3' '1 3 2' '2 1 3' '2 3 1' '3 1 2' '3 2 1'; do
        echo -----------------------------------------------------------
        echo "Check changing port numbers from $pre to $post"
	set_and_check_specific_ofports $pre
	set_and_check_specific_ofports $post
    done
done

ovs-vsctl del-port p3

set_and_check_poorly_specified_ofports () {
    ovs-vsctl set Interface p1 ofport_request="$1" -- \
	      set Interface p2 ofport_request="$2"
    p1=`ovs-vsctl get Interface p1 ofport`
    p2=`ovs-vsctl get Interface p2 ofport`
    echo $p1 $p2

    { set +x
$as_echo "$at_srcdir/ofproto.at:4790: test \"\$p1\" != \"\$p2\""
at_fn_check_prepare_dynamic "test \"$p1\" != \"$p2\"" "ofproto.at:4790"
( $at_check_trace; test "$p1" != "$p2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4790"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    if test "$1" = "$2" && test "$1" != '[]'; then
        # One port number must be the requested one.
	{ set +x
$as_echo "$at_srcdir/ofproto.at:4793: test \"\$p1\" = \"\$1\" || test \"\$p2\" = \"\$1\""
at_fn_check_prepare_dynamic "test \"$p1\" = \"$1\" || test \"$p2\" = \"$1\"" "ofproto.at:4793"
( $at_check_trace; test "$p1" = "$1" || test "$p2" = "$1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4793"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

	# The other port number must be different (already tested above).
    else
        { set +x
$as_echo "$at_srcdir/ofproto.at:4796: test \"\$1\" = '[]' || test \"\$p1\" = \"\$1\""
at_fn_check_prepare_dynamic "test \"$1\" = '[]' || test \"$p1\" = \"$1\"" "ofproto.at:4796"
( $at_check_trace; test "$1" = '[]' || test "$p1" = "$1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4796"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

        { set +x
$as_echo "$at_srcdir/ofproto.at:4797: test \"\$2\" = '[]' || test \"\$p2\" = \"\$2\""
at_fn_check_prepare_dynamic "test \"$2\" = '[]' || test \"$p2\" = \"$2\"" "ofproto.at:4797"
( $at_check_trace; test "$2" = '[]' || test "$p2" = "$2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4797"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    fi
}
for pre in      '1 2' '[] 2' '1 []' '[] []' '2 1' '[] 1' '2 []' \
                '1 1' '2 2'; do
    for post in '1 2' '[] 2' '1 []' '[] []' '2 1' '[] 1' '2 []' \
                '1 1' '2 2'; do
        echo -----------------------------------------------------------
        echo "Check changing port numbers from $pre to $post"
        set_and_check_poorly_specified_ofports $pre
        set_and_check_poorly_specified_ofports $post
    done
done
{ set +x
$as_echo "$at_srcdir/ofproto.at:4810: check_logs "
at_fn_check_prepare_trace "ofproto.at:4810"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4810"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:4810: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:4810"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4810"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4810: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:4810"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4810"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:4810: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4810: wait failed" >&5

    $as_echo "ofproto.at:4810" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4810"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:4810: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:4810"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4810"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4810: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:4810"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4810"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:4810: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4810: wait failed" >&5

    $as_echo "ofproto.at:4810" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4810"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_978
#AT_START_979
at_fn_group_banner 979 'ofproto.at:4814' \
  "ofproto - bundle open (OpenFlow 1.4)" "           " 51
at_xfail=no
(
  $as_echo "979. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:4816: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:4816"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4816"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4816: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:4816"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4816"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4816: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4816"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4816"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:4816: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:4816"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4816"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4816: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:4816"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4816"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4816: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4816"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4816"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:4816: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:4816"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4816"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Start a monitor, use the required protocol version
ovs-ofctl -O OpenFlow14 monitor br0 --detach --no-chdir --pidfile >monitor.log 2>&1


# Send an OpenFlow14 message (05), OFPT_BUNDLE_CONTROL (21), length (10), xid (0a)
ovs-appctl -t ovs-ofctl ofctl/send "05 21 00 10 00 00 00 0a 00 00 00 01 00 00 00 02"
ovs-appctl -t ovs-ofctl ofctl/barrier
{ set +x
$as_echo "$at_srcdir/ofproto.at:4825: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:4825"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4825"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4825: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:4825"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4825"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4825: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4825: wait failed" >&5

    $as_echo "ofproto.at:4825" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4825"
fi


{ set +x
$as_echo "$at_srcdir/ofproto.at:4827: ofctl_strip < monitor.log"
at_fn_check_prepare_trace "ofproto.at:4827"
( $at_check_trace; ofctl_strip < monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "send: OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0x1 type=OPEN_REQUEST flags=ordered
OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0x1 type=OPEN_REPLY flags=0
OFPT_BARRIER_REPLY (OF1.4):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4827"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:4835: check_logs "
at_fn_check_prepare_trace "ofproto.at:4835"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4835"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:4835: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:4835"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4835"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4835: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:4835"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4835"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4835: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4835: wait failed" >&5

    $as_echo "ofproto.at:4835" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4835"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:4835: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:4835"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4835"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4835: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:4835"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4835"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4835: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4835: wait failed" >&5

    $as_echo "ofproto.at:4835" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4835"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_979
#AT_START_980
at_fn_group_banner 980 'ofproto.at:4838' \
  "ofproto - bundle double open (OpenFlow 1.4)" "    " 51
at_xfail=no
(
  $as_echo "980. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:4840: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:4840"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4840"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4840: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:4840"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4840"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4840: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4840"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4840"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:4840: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:4840"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4840"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4840: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:4840"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4840"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4840: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4840"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4840"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:4840: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:4840"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4840"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Start a monitor, use the required protocol version
ovs-ofctl -O OpenFlow14 monitor br0 --detach --no-chdir --pidfile >monitor.log 2>&1


# Send twice an OpenFlow14 message (05), OFPT_BUNDLE_CONTROL (21), length (10), xid (0a)
ovs-appctl -t ovs-ofctl ofctl/send "05 21 00 10 00 00 00 0a 00 00 00 01 00 00 00 02"
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/send "05 21 00 10 00 00 00 0a 00 00 00 01 00 00 00 02"
ovs-appctl -t ovs-ofctl ofctl/barrier
{ set +x
$as_echo "$at_srcdir/ofproto.at:4851: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:4851"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4851"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4851: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:4851"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4851"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4851: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4851: wait failed" >&5

    $as_echo "ofproto.at:4851" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4851"
fi


{ set +x
$as_echo "$at_srcdir/ofproto.at:4853: ofctl_strip < monitor.log"
at_fn_check_prepare_trace "ofproto.at:4853"
( $at_check_trace; ofctl_strip < monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "send: OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0x1 type=OPEN_REQUEST flags=ordered
OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0x1 type=OPEN_REPLY flags=0
OFPT_BARRIER_REPLY (OF1.4):
send: OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0x1 type=OPEN_REQUEST flags=ordered
OFPT_ERROR (OF1.4): OFPBFC_BAD_ID
OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0x1 type=OPEN_REQUEST flags=ordered
OFPT_BARRIER_REPLY (OF1.4):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4853"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:4867: check_logs "
at_fn_check_prepare_trace "ofproto.at:4867"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4867"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:4867: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:4867"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4867"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4867: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:4867"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4867"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4867: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4867: wait failed" >&5

    $as_echo "ofproto.at:4867" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4867"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:4867: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:4867"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4867"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4867: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:4867"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4867"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4867: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4867: wait failed" >&5

    $as_echo "ofproto.at:4867" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4867"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_980
#AT_START_981
at_fn_group_banner 981 'ofproto.at:4870' \
  "ofproto - bundle close without open (OpenFlow 1.4)" "" 51
at_xfail=no
(
  $as_echo "981. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:4872: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:4872"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4872"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4872: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:4872"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4872"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4872: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4872"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4872"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:4872: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:4872"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4872"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4872: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:4872"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4872"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4872: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4872"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4872"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:4872: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:4872"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4872"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Start a monitor, use the required protocol version
ovs-ofctl -O OpenFlow14 monitor br0 --detach --no-chdir --pidfile >monitor.log 2>&1


ovs-appctl -t ovs-ofctl ofctl/send "05 21 00 10 00 00 00 0a 00 00 00 01 00 02 00 02"
ovs-appctl -t ovs-ofctl ofctl/barrier
{ set +x
$as_echo "$at_srcdir/ofproto.at:4880: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:4880"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4880"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4880: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:4880"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4880"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4880: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4880: wait failed" >&5

    $as_echo "ofproto.at:4880" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4880"
fi


{ set +x
$as_echo "$at_srcdir/ofproto.at:4882: ofctl_strip < monitor.log"
at_fn_check_prepare_trace "ofproto.at:4882"
( $at_check_trace; ofctl_strip < monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "send: OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0x1 type=CLOSE_REQUEST flags=ordered
OFPT_ERROR (OF1.4): OFPBFC_BAD_ID
OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0x1 type=CLOSE_REQUEST flags=ordered
OFPT_BARRIER_REPLY (OF1.4):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4882"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:4891: check_logs "
at_fn_check_prepare_trace "ofproto.at:4891"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4891"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:4891: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:4891"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4891"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4891: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:4891"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4891"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4891: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4891: wait failed" >&5

    $as_echo "ofproto.at:4891" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4891"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:4891: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:4891"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4891"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4891: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:4891"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4891"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4891: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4891: wait failed" >&5

    $as_echo "ofproto.at:4891" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4891"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_981
#AT_START_982
at_fn_group_banner 982 'ofproto.at:4894' \
  "ofproto - bundle double close (OpenFlow 1.4)" "   " 51
at_xfail=no
(
  $as_echo "982. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:4896: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:4896"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4896"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4896: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:4896"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4896"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4896: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4896"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4896"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:4896: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:4896"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4896"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4896: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:4896"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4896"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4896: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4896"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4896"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:4896: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:4896"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4896"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Start a monitor, use the required protocol version
ovs-ofctl -O OpenFlow14 monitor br0 --detach --no-chdir --pidfile >monitor.log 2>&1


# Open, Close, Close
ovs-appctl -t ovs-ofctl ofctl/send "05 21 00 10 00 00 00 0a 00 00 00 01 00 00 00 02"
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/send "05 21 00 10 00 00 00 0a 00 00 00 01 00 02 00 02"
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/send "05 21 00 10 00 00 00 0a 00 00 00 01 00 02 00 02"
ovs-appctl -t ovs-ofctl ofctl/barrier
{ set +x
$as_echo "$at_srcdir/ofproto.at:4909: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:4909"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4909"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4909: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:4909"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4909"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4909: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4909: wait failed" >&5

    $as_echo "ofproto.at:4909" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4909"
fi


{ set +x
$as_echo "$at_srcdir/ofproto.at:4911: ofctl_strip < monitor.log"
at_fn_check_prepare_trace "ofproto.at:4911"
( $at_check_trace; ofctl_strip < monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "send: OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0x1 type=OPEN_REQUEST flags=ordered
OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0x1 type=OPEN_REPLY flags=0
OFPT_BARRIER_REPLY (OF1.4):
send: OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0x1 type=CLOSE_REQUEST flags=ordered
OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0x1 type=CLOSE_REPLY flags=0
OFPT_BARRIER_REPLY (OF1.4):
send: OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0x1 type=CLOSE_REQUEST flags=ordered
OFPT_ERROR (OF1.4): OFPBFC_BUNDLE_CLOSED
OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0x1 type=CLOSE_REQUEST flags=ordered
OFPT_BARRIER_REPLY (OF1.4):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4911"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:4930: check_logs "
at_fn_check_prepare_trace "ofproto.at:4930"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4930"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:4930: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:4930"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4930"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4930: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:4930"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4930"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4930: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4930: wait failed" >&5

    $as_echo "ofproto.at:4930" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4930"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:4930: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:4930"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4930"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4930: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:4930"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4930"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4930: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4930: wait failed" >&5

    $as_echo "ofproto.at:4930" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4930"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_982
#AT_START_983
at_fn_group_banner 983 'ofproto.at:4933' \
  "ofproto - bundle close, different flags (OpenFlow 1.4)" "" 51
at_xfail=no
(
  $as_echo "983. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:4935: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:4935"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4935"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4935: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:4935"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4935"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4935: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4935"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4935"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:4935: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:4935"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4935"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4935: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:4935"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4935"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4935: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4935"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4935"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:4935: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:4935"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4935"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Start a monitor, use the required protocol version
ovs-ofctl -O OpenFlow14 monitor br0 --detach --no-chdir --pidfile >monitor.log 2>&1


# Open, Close
ovs-appctl -t ovs-ofctl ofctl/send "05 21 00 10 00 00 00 0a 00 00 00 01 00 00 00 02"
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/send "05 21 00 10 00 00 00 0a 00 00 00 01 00 02 00 01"
ovs-appctl -t ovs-ofctl ofctl/barrier
{ set +x
$as_echo "$at_srcdir/ofproto.at:4946: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:4946"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4946"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4946: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:4946"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4946"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4946: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4946: wait failed" >&5

    $as_echo "ofproto.at:4946" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4946"
fi


{ set +x
$as_echo "$at_srcdir/ofproto.at:4948: ofctl_strip < monitor.log"
at_fn_check_prepare_trace "ofproto.at:4948"
( $at_check_trace; ofctl_strip < monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "send: OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0x1 type=OPEN_REQUEST flags=ordered
OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0x1 type=OPEN_REPLY flags=0
OFPT_BARRIER_REPLY (OF1.4):
send: OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0x1 type=CLOSE_REQUEST flags=atomic
OFPT_ERROR (OF1.4): OFPBFC_BAD_FLAGS
OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0x1 type=CLOSE_REQUEST flags=atomic
OFPT_BARRIER_REPLY (OF1.4):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4948"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:4962: check_logs "
at_fn_check_prepare_trace "ofproto.at:4962"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4962"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:4962: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:4962"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4962"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4962: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:4962"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4962"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4962: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4962: wait failed" >&5

    $as_echo "ofproto.at:4962" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4962"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:4962: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:4962"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4962"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4962: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:4962"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4962"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4962: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4962: wait failed" >&5

    $as_echo "ofproto.at:4962" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4962"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_983
#AT_START_984
at_fn_group_banner 984 'ofproto.at:4965' \
  "ofproto - bundle commit without open (OpenFlow 1.4)" "" 51
at_xfail=no
(
  $as_echo "984. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:4967: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:4967"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4967"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4967: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:4967"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4967"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4967: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4967"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4967"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:4967: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:4967"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4967"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4967: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:4967"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4967"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4967: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4967"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4967"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:4967: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:4967"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4967"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Start a monitor, use the required protocol version
ovs-ofctl -O OpenFlow14 monitor br0 --detach --no-chdir --pidfile >monitor.log 2>&1


# Commit
ovs-appctl -t ovs-ofctl ofctl/send "05 21 00 10 00 00 00 0a 00 00 00 01 00 04 00 02"
ovs-appctl -t ovs-ofctl ofctl/barrier
{ set +x
$as_echo "$at_srcdir/ofproto.at:4976: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:4976"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4976"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4976: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:4976"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4976"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4976: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4976: wait failed" >&5

    $as_echo "ofproto.at:4976" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4976"
fi


{ set +x
$as_echo "$at_srcdir/ofproto.at:4978: ofctl_strip < monitor.log"
at_fn_check_prepare_trace "ofproto.at:4978"
( $at_check_trace; ofctl_strip < monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "send: OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0x1 type=COMMIT_REQUEST flags=ordered
OFPT_ERROR (OF1.4): OFPBFC_BAD_ID
OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0x1 type=COMMIT_REQUEST flags=ordered
OFPT_BARRIER_REPLY (OF1.4):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4978"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:4987: check_logs "
at_fn_check_prepare_trace "ofproto.at:4987"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4987"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:4987: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:4987"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4987"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4987: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:4987"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4987"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4987: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4987: wait failed" >&5

    $as_echo "ofproto.at:4987" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4987"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:4987: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:4987"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4987"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:4987: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:4987"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4987"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:4987: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:4987: wait failed" >&5

    $as_echo "ofproto.at:4987" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:4987"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_984
#AT_START_985
at_fn_group_banner 985 'ofproto.at:4990' \
  "ofproto - bundle commit, different flags (OpenFlow 1.4)" "" 51
at_xfail=no
(
  $as_echo "985. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:4992: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:4992"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4992"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4992: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:4992"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4992"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4992: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4992"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4992"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:4992: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:4992"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4992"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:4992: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:4992"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4992"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:4992: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:4992"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4992"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:4992: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:4992"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:4992"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Start a monitor, use the required protocol version
ovs-ofctl -O OpenFlow14 monitor br0 --detach --no-chdir --pidfile >monitor.log 2>&1


# Open, Commit
ovs-appctl -t ovs-ofctl ofctl/send "05 21 00 10 00 00 00 0a 00 00 00 01 00 00 00 02"
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/send "05 21 00 10 00 00 00 0a 00 00 00 01 00 04 00 01"
ovs-appctl -t ovs-ofctl ofctl/barrier
{ set +x
$as_echo "$at_srcdir/ofproto.at:5003: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:5003"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5003"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5003: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:5003"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5003"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:5003: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5003: wait failed" >&5

    $as_echo "ofproto.at:5003" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5003"
fi


{ set +x
$as_echo "$at_srcdir/ofproto.at:5005: ofctl_strip < monitor.log"
at_fn_check_prepare_trace "ofproto.at:5005"
( $at_check_trace; ofctl_strip < monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "send: OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0x1 type=OPEN_REQUEST flags=ordered
OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0x1 type=OPEN_REPLY flags=0
OFPT_BARRIER_REPLY (OF1.4):
send: OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0x1 type=COMMIT_REQUEST flags=atomic
OFPT_ERROR (OF1.4): OFPBFC_BAD_FLAGS
OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0x1 type=COMMIT_REQUEST flags=atomic
OFPT_BARRIER_REPLY (OF1.4):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5005"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5019: check_logs "
at_fn_check_prepare_trace "ofproto.at:5019"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5019"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:5019: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:5019"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5019"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5019: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:5019"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5019"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:5019: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5019: wait failed" >&5

    $as_echo "ofproto.at:5019" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5019"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:5019: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:5019"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5019"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5019: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:5019"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5019"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:5019: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5019: wait failed" >&5

    $as_echo "ofproto.at:5019" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5019"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_985
#AT_START_986
at_fn_group_banner 986 'ofproto.at:5022' \
  "ofproto - bundle discard without open (OpenFlow 1.4)" "" 51
at_xfail=no
(
  $as_echo "986. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:5024: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:5024"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5024"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:5024: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:5024"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5024"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:5024: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:5024"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5024"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:5024: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:5024"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5024"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:5024: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:5024"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5024"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:5024: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:5024"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5024"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:5024: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:5024"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5024"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Start a monitor, use the required protocol version
ovs-ofctl -O OpenFlow14 monitor br0 --detach --no-chdir --pidfile >monitor.log 2>&1


# Discard
ovs-appctl -t ovs-ofctl ofctl/send "05 21 00 10 00 00 00 0a 00 00 00 01 00 06 00 02"
ovs-appctl -t ovs-ofctl ofctl/barrier
{ set +x
$as_echo "$at_srcdir/ofproto.at:5033: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:5033"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5033"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5033: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:5033"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5033"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:5033: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5033: wait failed" >&5

    $as_echo "ofproto.at:5033" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5033"
fi


{ set +x
$as_echo "$at_srcdir/ofproto.at:5035: ofctl_strip < monitor.log"
at_fn_check_prepare_trace "ofproto.at:5035"
( $at_check_trace; ofctl_strip < monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "send: OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0x1 type=DISCARD_REQUEST flags=ordered
OFPT_ERROR (OF1.4): OFPBFC_BAD_ID
OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0x1 type=DISCARD_REQUEST flags=ordered
OFPT_BARRIER_REPLY (OF1.4):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5035"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5044: check_logs "
at_fn_check_prepare_trace "ofproto.at:5044"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5044"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:5044: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:5044"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5044"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5044: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:5044"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5044"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:5044: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5044: wait failed" >&5

    $as_echo "ofproto.at:5044" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5044"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:5044: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:5044"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5044"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5044: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:5044"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5044"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:5044: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5044: wait failed" >&5

    $as_echo "ofproto.at:5044" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5044"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_986
#AT_START_987
at_fn_group_banner 987 'ofproto.at:5048' \
  "ofproto - bundle with multiple flow mods (OpenFlow 1.4)" "" 51
at_xfail=no
(
  $as_echo "987. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:5049: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:5049"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5049"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:5049: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:5049"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5049"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:5049: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:5049"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5049"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:5049: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:5049"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5049"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:5049: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:5049"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5049"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:5049: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:5049"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5049"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:5049: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:5049"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5049"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto.at:5051: ovs-appctl vlog/set vconn:dbg"
at_fn_check_prepare_trace "ofproto.at:5051"
( $at_check_trace; ovs-appctl vlog/set vconn:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5051"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5053: ovs-ofctl --no-names del-flows br0"
at_fn_check_prepare_trace "ofproto.at:5053"
( $at_check_trace; ovs-ofctl --no-names del-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5053"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
add idle_timeout=50 in_port=2 dl_src=00:66:77:88:99:aa actions=1
add idle_timeout=60 in_port=2 dl_src=00:77:88:99:aa:bb actions=2
add idle_timeout=70 in_port=2 dl_src=00:88:99:aa:bb:cc actions=3
add idle_timeout=50 in_port=2 dl_src=00:66:77:88:99:aa actions=4
delete
add idle_timeout=50 in_port=2 dl_src=00:66:77:88:99:aa actions=5
add idle_timeout=60 in_port=2 dl_src=00:77:88:99:aa:bb actions=6
add idle_timeout=70 in_port=2 dl_src=00:88:99:aa:bb:cc actions=7
delete in_port=2 dl_src=00:88:99:aa:bb:cc
_ATEOF


{ set +x
$as_echo "$at_srcdir/ofproto.at:5067: ovs-ofctl --no-names --bundle add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto.at:5067"
( $at_check_trace; ovs-ofctl --no-names --bundle add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5067"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5069: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:5069"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " idle_timeout=50, in_port=2,dl_src=00:66:77:88:99:aa actions=output:5
 idle_timeout=60, in_port=2,dl_src=00:77:88:99:aa:bb actions=output:6
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5069"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
modify actions=drop
modify_strict in_port=2 dl_src=00:77:88:99:aa:bb actions=7
_ATEOF


{ set +x
$as_echo "$at_srcdir/ofproto.at:5080: ovs-ofctl --no-names --bundle add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto.at:5080"
( $at_check_trace; ovs-ofctl --no-names --bundle add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5080"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5082: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:5082"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " idle_timeout=50, in_port=2,dl_src=00:66:77:88:99:aa actions=drop
 idle_timeout=60, in_port=2,dl_src=00:77:88:99:aa:bb actions=output:7
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5082"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Adding an existing flow acts as a modify, and delete_strict also works.
cat >flows.txt <<'_ATEOF'
add idle_timeout=60 in_port=2 dl_src=00:77:88:99:aa:bb actions=8
delete_strict in_port=2 dl_src=00:66:77:88:99:aa
add in_port=2 dl_src=00:66:77:88:99:aa actions=drop
_ATEOF


{ set +x
$as_echo "$at_srcdir/ofproto.at:5095: ovs-ofctl --no-names --bundle add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto.at:5095"
( $at_check_trace; ovs-ofctl --no-names --bundle add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5095"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5097: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:5097"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " idle_timeout=60, in_port=2,dl_src=00:77:88:99:aa:bb actions=output:8
 in_port=2,dl_src=00:66:77:88:99:aa actions=drop
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5097"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Prevent race.
$as_echo "ofproto.at:5105: waiting until vconn_sub < ovs-vswitchd.log | test \`grep -- \"|vconn|DBG|unix: sent (Success): NXST_FLOW reply\" | wc -l\` -ge 3..." >&5
ovs_wait_cond () {
    vconn_sub < ovs-vswitchd.log | test `grep -- "|vconn|DBG|unix: sent (Success): NXST_FLOW reply" | wc -l` -ge 3
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5105: wait failed" >&5

    $as_echo "ofproto.at:5105" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5105"
fi

{ set +x
$as_echo "$at_srcdir/ofproto.at:5106: print_vconn_debug | vconn_sub | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:5106"
( $at_check_trace; print_vconn_debug | vconn_sub | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "vconn|DBG|unix: sent (Success): OFPT_HELLO (OF1.6):
 version bitmap: 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
vconn|DBG|unix: received: OFPT_HELLO:
 version bitmap: 0x01
vconn|DBG|unix: negotiated OpenFlow version 0x01 (we support version 0x07 and earlier, peer supports version 0x01)
vconn|DBG|unix: received: OFPT_FLOW_MOD: DEL actions=drop
vconn|DBG|unix: received: OFPT_BARRIER_REQUEST:
vconn|DBG|unix: sent (Success): OFPT_BARRIER_REPLY:
vconn|DBG|unix: sent (Success): OFPT_HELLO (OF1.6):
 version bitmap: 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
vconn|DBG|unix: received: OFPT_HELLO (OF1.4):
 version bitmap: 0x05
vconn|DBG|unix: negotiated OpenFlow version 0x05 (we support version 0x07 and earlier, peer supports version 0x05)
vconn|DBG|unix: received: OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0 type=OPEN_REQUEST flags=atomic ordered
vconn|DBG|unix: sent (Success): OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0 type=OPEN_REPLY flags=0
vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.4): ADD in_port=2,dl_src=00:66:77:88:99:aa idle:50 actions=output:1
vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.4): ADD in_port=2,dl_src=00:77:88:99:aa:bb idle:60 actions=output:2
vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.4): ADD in_port=2,dl_src=00:88:99:aa:bb:cc idle:70 actions=output:3
vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.4): ADD in_port=2,dl_src=00:66:77:88:99:aa idle:50 actions=output:4
vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.4): DEL table:255 actions=drop
vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.4): ADD in_port=2,dl_src=00:66:77:88:99:aa idle:50 actions=output:5
vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.4): ADD in_port=2,dl_src=00:77:88:99:aa:bb idle:60 actions=output:6
vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.4): ADD in_port=2,dl_src=00:88:99:aa:bb:cc idle:70 actions=output:7
vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.4): DEL table:255 in_port=2,dl_src=00:88:99:aa:bb:cc actions=drop
vconn|DBG|unix: received: OFPT_BARRIER_REQUEST (OF1.4):
vconn|DBG|unix: sent (Success): OFPT_BARRIER_REPLY (OF1.4):
vconn|DBG|unix: received: OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0 type=COMMIT_REQUEST flags=atomic ordered
vconn|DBG|unix: sent (Success): OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0 type=COMMIT_REPLY flags=0
vconn|DBG|unix: sent (Success): OFPT_HELLO (OF1.6):
 version bitmap: 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
vconn|DBG|unix: received: OFPT_HELLO:
 version bitmap: 0x01
vconn|DBG|unix: negotiated OpenFlow version 0x01 (we support version 0x07 and earlier, peer supports version 0x01)
vconn|DBG|unix: received: NXT_SET_FLOW_FORMAT: format=nxm
vconn|DBG|unix: received: OFPT_BARRIER_REQUEST:
vconn|DBG|unix: sent (Success): OFPT_BARRIER_REPLY:
vconn|DBG|unix: received: NXST_FLOW request:
vconn|DBG|unix: sent (Success): NXST_FLOW reply:
 idle_timeout=50, in_port=2,dl_src=00:66:77:88:99:aa actions=output:5
 idle_timeout=60, in_port=2,dl_src=00:77:88:99:aa:bb actions=output:6
vconn|DBG|unix: sent (Success): OFPT_HELLO (OF1.6):
 version bitmap: 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
vconn|DBG|unix: received: OFPT_HELLO (OF1.4):
 version bitmap: 0x05
vconn|DBG|unix: negotiated OpenFlow version 0x05 (we support version 0x07 and earlier, peer supports version 0x05)
vconn|DBG|unix: received: OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0 type=OPEN_REQUEST flags=atomic ordered
vconn|DBG|unix: sent (Success): OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0 type=OPEN_REPLY flags=0
vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.4): MOD actions=drop
vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.4): MOD_STRICT in_port=2,dl_src=00:77:88:99:aa:bb actions=output:7
vconn|DBG|unix: received: OFPT_BARRIER_REQUEST (OF1.4):
vconn|DBG|unix: sent (Success): OFPT_BARRIER_REPLY (OF1.4):
vconn|DBG|unix: received: OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0 type=COMMIT_REQUEST flags=atomic ordered
vconn|DBG|unix: sent (Success): OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0 type=COMMIT_REPLY flags=0
vconn|DBG|unix: sent (Success): OFPT_HELLO (OF1.6):
 version bitmap: 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
vconn|DBG|unix: received: OFPT_HELLO:
 version bitmap: 0x01
vconn|DBG|unix: negotiated OpenFlow version 0x01 (we support version 0x07 and earlier, peer supports version 0x01)
vconn|DBG|unix: received: NXT_SET_FLOW_FORMAT: format=nxm
vconn|DBG|unix: received: OFPT_BARRIER_REQUEST:
vconn|DBG|unix: sent (Success): OFPT_BARRIER_REPLY:
vconn|DBG|unix: received: NXST_FLOW request:
vconn|DBG|unix: sent (Success): NXST_FLOW reply:
 idle_timeout=50, in_port=2,dl_src=00:66:77:88:99:aa actions=drop
 idle_timeout=60, in_port=2,dl_src=00:77:88:99:aa:bb actions=output:7
vconn|DBG|unix: sent (Success): OFPT_HELLO (OF1.6):
 version bitmap: 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
vconn|DBG|unix: received: OFPT_HELLO (OF1.4):
 version bitmap: 0x05
vconn|DBG|unix: negotiated OpenFlow version 0x05 (we support version 0x07 and earlier, peer supports version 0x05)
vconn|DBG|unix: received: OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0 type=OPEN_REQUEST flags=atomic ordered
vconn|DBG|unix: sent (Success): OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0 type=OPEN_REPLY flags=0
vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.4): ADD in_port=2,dl_src=00:77:88:99:aa:bb idle:60 actions=output:8
vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.4): DEL_STRICT table:255 in_port=2,dl_src=00:66:77:88:99:aa actions=drop
vconn|DBG|unix: received: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.4): ADD in_port=2,dl_src=00:66:77:88:99:aa actions=drop
vconn|DBG|unix: received: OFPT_BARRIER_REQUEST (OF1.4):
vconn|DBG|unix: sent (Success): OFPT_BARRIER_REPLY (OF1.4):
vconn|DBG|unix: received: OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0 type=COMMIT_REQUEST flags=atomic ordered
vconn|DBG|unix: sent (Success): OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0 type=COMMIT_REPLY flags=0
vconn|DBG|unix: sent (Success): OFPT_HELLO (OF1.6):
 version bitmap: 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
vconn|DBG|unix: received: OFPT_HELLO:
 version bitmap: 0x01
vconn|DBG|unix: negotiated OpenFlow version 0x01 (we support version 0x07 and earlier, peer supports version 0x01)
vconn|DBG|unix: received: NXT_SET_FLOW_FORMAT: format=nxm
vconn|DBG|unix: received: OFPT_BARRIER_REQUEST:
vconn|DBG|unix: sent (Success): OFPT_BARRIER_REPLY:
vconn|DBG|unix: received: NXST_FLOW request:
vconn|DBG|unix: sent (Success): NXST_FLOW reply:
 idle_timeout=60, in_port=2,dl_src=00:77:88:99:aa:bb actions=output:8
 in_port=2,dl_src=00:66:77:88:99:aa actions=drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5106"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5240: grep \" flow_mods in the last \" ovs-vswitchd.log | sed -e 's/^.*connmgr|INFO|//' | vconn_sub"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:5240"
( $at_check_trace; grep " flow_mods in the last " ovs-vswitchd.log | sed -e 's/^.*connmgr|INFO|//' | vconn_sub
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0<->unix: 1 flow_mods in the last 0 s (1 deletes)
br0<->unix: 9 flow_mods in the last 0 s (7 adds, 2 deletes)
br0<->unix: 2 flow_mods in the last 0 s (2 modifications)
br0<->unix: 3 flow_mods in the last 0 s (2 adds, 1 deletes)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5240"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5247: check_logs "
at_fn_check_prepare_trace "ofproto.at:5247"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5247"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:5247: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:5247"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5247"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5247: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:5247"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5247"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:5247: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5247: wait failed" >&5

    $as_echo "ofproto.at:5247" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5247"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:5247: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:5247"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5247"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5247: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:5247"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5247"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:5247: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5247: wait failed" >&5

    $as_echo "ofproto.at:5247" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5247"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_987
#AT_START_988
at_fn_group_banner 988 'ofproto.at:5251' \
  "ofproto - failing bundle commit (OpenFlow 1.4)" " " 51
at_xfail=no
(
  $as_echo "988. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:5252: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:5252"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5252"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:5252: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:5252"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5252"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:5252: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:5252"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5252"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:5252: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:5252"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5252"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:5252: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:5252"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5252"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:5252: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:5252"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5252"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:5252: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:5252"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5252"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto.at:5254: ovs-ofctl del-flows br0"
at_fn_check_prepare_trace "ofproto.at:5254"
( $at_check_trace; ovs-ofctl del-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5254"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-ofctl add-flows br0 - <<EOF
idle_timeout=50 in_port=2 dl_src=00:66:77:88:99:aa actions=11
idle_timeout=60 in_port=2 dl_src=00:77:88:99:aa:bb actions=22
idle_timeout=70 in_port=2 dl_src=00:88:99:aa:bb:cc actions=33
EOF
{ set +x
$as_echo "$at_srcdir/ofproto.at:5261: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:5261"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " idle_timeout=50, in_port=2,dl_src=00:66:77:88:99:aa actions=output:11
 idle_timeout=60, in_port=2,dl_src=00:77:88:99:aa:bb actions=output:22
 idle_timeout=70, in_port=2,dl_src=00:88:99:aa:bb:cc actions=output:33
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5261"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# last line uses illegal table number (OVS internal table)
cat >flows.txt <<'_ATEOF'
add idle_timeout=50 in_port=2 dl_src=00:66:77:88:99:aa actions=1
add idle_timeout=60 in_port=2 dl_src=00:77:88:99:aa:bb actions=2
add idle_timeout=70 in_port=2 dl_src=00:88:99:aa:bb:cc actions=3
modify idle_timeout=50 in_port=2 dl_src=00:66:77:88:99:aa actions=4
delete
add idle_timeout=50 in_port=2 dl_src=00:66:77:88:99:aa actions=5
add idle_timeout=60 in_port=2 dl_src=00:77:88:99:aa:bb actions=6
add idle_timeout=70 in_port=2 dl_src=00:88:99:aa:bb:cc actions=7
delete in_port=2 dl_src=00:88:99:aa:bb:cc
add table=254 actions=drop
_ATEOF


{ set +x
$as_echo "$at_srcdir/ofproto.at:5282: ovs-ofctl --bundle add-flows br0 flows.txt 2>&1 | sed '/talking to/,\$d' | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:5282"
( $at_check_trace; ovs-ofctl --bundle add-flows br0 flows.txt 2>&1 | sed '/talking to/,$d' | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Error OFPBRC_EPERM for: OFPT_FLOW_MOD (OF1.4): ADD table:254 actions=drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5282"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5287: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:5287"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " idle_timeout=50, in_port=2,dl_src=00:66:77:88:99:aa actions=output:11
 idle_timeout=60, in_port=2,dl_src=00:77:88:99:aa:bb actions=output:22
 idle_timeout=70, in_port=2,dl_src=00:88:99:aa:bb:cc actions=output:33
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5287"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5294: check_logs "
at_fn_check_prepare_trace "ofproto.at:5294"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5294"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:5294: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:5294"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5294"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5294: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:5294"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5294"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:5294: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5294: wait failed" >&5

    $as_echo "ofproto.at:5294" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5294"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:5294: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:5294"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5294"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5294: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:5294"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5294"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:5294: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5294: wait failed" >&5

    $as_echo "ofproto.at:5294" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5294"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_988
#AT_START_989
at_fn_group_banner 989 'ofproto.at:5298' \
  "ofproto - bundle timeout (OpenFlow 1.4)" "        " 51
at_xfail=no
(
  $as_echo "989. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:5300: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:5300"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5300"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:5300: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:5300"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5300"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:5300: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:5300"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5300"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:5300: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:5300"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5300"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:5300: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:5300"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5300"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:5300: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:5300"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5300"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:5300: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:5300"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5300"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Start a monitor, use the required protocol version
ovs-ofctl -O OpenFlow14 monitor br0 --detach --no-chdir --pidfile >monitor.log 2>&1


ovs-appctl time/stop

# Send an OpenFlow14 message (05), OFPT_BUNDLE_CONTROL (21), length (10), xid (01)
ovs-appctl -t ovs-ofctl ofctl/send "05 21 00 10 00 00 00 01 00 00 00 01 00 00 00 03"
ovs-appctl time/warp 8000
# Send a bundle flow mod, it should keep the bundle alive.
ovs-appctl -t ovs-ofctl ofctl/send "05 22 00 a0 00 00 00 02 00 00 00 01 00 00 00 03 \
05 0e 00 90 00 00 00 02 00 00 00 00 00 00 00 00 \
00 00 00 00 00 00 00 00 01 00 00 00 00 00 ff ff \
ff ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 \
00 01 00 42 80 00 00 04 00 00 00 01 80 00 08 06 \
50 54 00 00 00 06 80 00 06 06 50 54 00 00 00 05 \
80 00 0a 02 08 06 80 00 0c 02 00 00 80 00 2a 02 \
00 02 80 00 2c 04 c0 a8 00 02 80 00 2e 04 c0 a8 \
00 01 00 00 00 00 00 00 00 04 00 18 00 00 00 00 \
00 00 00 10 00 00 00 03 00 00 00 00 00 00 00 00 \
"
ovs-appctl time/warp 8000
# Send a bundle close, it should keep the bundle alive.
ovs-appctl -t ovs-ofctl ofctl/send "05 21 00 10 00 00 00 03 00 00 00 01 00 02 00 03"
ovs-appctl time/warp 11000
# Make sure that timeouts are processed after the expiry
ovs-appctl time/warp 1000
# Send a Commit, but too late.
ovs-appctl -t ovs-ofctl ofctl/send "05 21 00 10 00 00 00 04 00 00 00 01 00 04 00 03"
ovs-appctl -t ovs-ofctl ofctl/barrier
{ set +x
$as_echo "$at_srcdir/ofproto.at:5332: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:5332"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5332"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5332: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:5332"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5332"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:5332: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5332: wait failed" >&5

    $as_echo "ofproto.at:5332" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5332"
fi


{ set +x
$as_echo "$at_srcdir/ofproto.at:5334: ofctl_strip < monitor.log"
at_fn_check_prepare_trace "ofproto.at:5334"
( $at_check_trace; ofctl_strip < monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "send: OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0x1 type=OPEN_REQUEST flags=atomic ordered
OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0x1 type=OPEN_REPLY flags=0
send: OFPT_BUNDLE_ADD_MESSAGE (OF1.4):
 bundle_id=0x1 flags=atomic ordered
OFPT_FLOW_MOD (OF1.4): ADD table:1 priority=65535,arp,in_port=1,vlan_tci=0x0000/0x1fff,dl_src=50:54:00:00:00:06,dl_dst=50:54:00:00:00:05,arp_spa=192.168.0.2,arp_tpa=192.168.0.1,arp_op=2 actions=output:3
send: OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0x1 type=CLOSE_REQUEST flags=atomic ordered
OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0x1 type=CLOSE_REPLY flags=0
OFPT_ERROR (OF1.4): OFPBFC_TIMEOUT
OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0x1 type=OPEN_REQUEST flags=atomic ordered
send: OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0x1 type=COMMIT_REQUEST flags=atomic ordered
OFPT_ERROR (OF1.4): OFPBFC_BAD_ID
OFPT_BUNDLE_CONTROL (OF1.4):
 bundle_id=0x1 type=COMMIT_REQUEST flags=atomic ordered
OFPT_BARRIER_REPLY (OF1.4):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5334"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5357: check_logs "
at_fn_check_prepare_trace "ofproto.at:5357"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5357"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:5357: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:5357"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5357"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5357: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:5357"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5357"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:5357: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5357: wait failed" >&5

    $as_echo "ofproto.at:5357" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5357"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:5357: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:5357"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5357"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5357: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:5357"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5357"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:5357: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5357: wait failed" >&5

    $as_echo "ofproto.at:5357" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5357"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_989
#AT_START_990
at_fn_group_banner 990 'ofproto.at:5361' \
  "ofproto - bundle open (OpenFlow 1.3)" "           " 51
at_xfail=no
(
  $as_echo "990. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:5363: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:5363"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5363"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:5363: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:5363"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5363"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:5363: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:5363"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5363"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:5363: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:5363"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5363"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:5363: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:5363"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5363"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:5363: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:5363"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5363"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:5363: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:5363"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5363"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Start a monitor, use the required protocol version
ovs-ofctl -O OpenFlow13 monitor br0 --detach --no-chdir --pidfile >monitor.log 2>&1


# Send an OpenFlow13 message (04), OFPT_EXPERIMENTER (04), length (0018),
# xid (0000000a), ONF_EXPERIMENTER_ID (4F4E4600),
# ONFT_BUNDLE_CONTROL (2300 = 0x08FC), bundle id (00000001),
# message type (0000), and flags (0002)
ovs-appctl -t ovs-ofctl ofctl/send "04 04 00 18 00 00 00 0a 4F 4E 46 00 00 00 08 FC 00 00 00 01 00 00 00 02"
ovs-appctl -t ovs-ofctl ofctl/barrier
{ set +x
$as_echo "$at_srcdir/ofproto.at:5375: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:5375"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5375"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5375: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:5375"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5375"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:5375: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5375: wait failed" >&5

    $as_echo "ofproto.at:5375" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5375"
fi


{ set +x
$as_echo "$at_srcdir/ofproto.at:5377: ofctl_strip < monitor.log"
at_fn_check_prepare_trace "ofproto.at:5377"
( $at_check_trace; ofctl_strip < monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "send: ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0x1 type=OPEN_REQUEST flags=ordered
ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0x1 type=OPEN_REPLY flags=0
OFPT_BARRIER_REPLY (OF1.3):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5377"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5385: check_logs "
at_fn_check_prepare_trace "ofproto.at:5385"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5385"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:5385: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:5385"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5385"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5385: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:5385"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5385"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:5385: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5385: wait failed" >&5

    $as_echo "ofproto.at:5385" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5385"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:5385: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:5385"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5385"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5385: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:5385"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5385"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:5385: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5385: wait failed" >&5

    $as_echo "ofproto.at:5385" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5385"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_990
#AT_START_991
at_fn_group_banner 991 'ofproto.at:5388' \
  "ofproto - bundle double open (OpenFlow 1.3)" "    " 51
at_xfail=no
(
  $as_echo "991. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:5390: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:5390"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5390"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:5390: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:5390"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5390"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:5390: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:5390"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5390"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:5390: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:5390"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5390"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:5390: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:5390"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5390"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:5390: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:5390"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5390"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:5390: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:5390"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5390"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Start a monitor, use the required protocol version
ovs-ofctl -O OpenFlow13 monitor br0 --detach --no-chdir --pidfile >monitor.log 2>&1


# Send twice an OpenFlow13 message (04), OFPT_EXPERIMENTER (04), length (0018),
# xid (0000000a), ONF_EXPERIMENTER_ID (4F4E4600),
# ONFT_BUNDLE_CONTROL (2300 = 0x08FC), bundle id (00000001),
# message type (0000), and flags (0002)
ovs-appctl -t ovs-ofctl ofctl/send "04 04 00 18 00 00 00 0a 4F 4E 46 00 00 00 08 FC 00 00 00 01 00 00 00 02"
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/send "04 04 00 18 00 00 00 0a 4F 4E 46 00 00 00 08 FC 00 00 00 01 00 00 00 02"
ovs-appctl -t ovs-ofctl ofctl/barrier
{ set +x
$as_echo "$at_srcdir/ofproto.at:5404: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:5404"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5404"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5404: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:5404"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5404"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:5404: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5404: wait failed" >&5

    $as_echo "ofproto.at:5404" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5404"
fi


{ set +x
$as_echo "$at_srcdir/ofproto.at:5406: ofctl_strip < monitor.log"
at_fn_check_prepare_trace "ofproto.at:5406"
( $at_check_trace; ofctl_strip < monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "send: ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0x1 type=OPEN_REQUEST flags=ordered
ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0x1 type=OPEN_REPLY flags=0
OFPT_BARRIER_REPLY (OF1.3):
send: ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0x1 type=OPEN_REQUEST flags=ordered
OFPT_ERROR (OF1.3): OFPBFC_BAD_ID
ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0x1 type=OPEN_REQUEST flags=ordered
OFPT_BARRIER_REPLY (OF1.3):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5406"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5420: check_logs "
at_fn_check_prepare_trace "ofproto.at:5420"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5420"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:5420: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:5420"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5420"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5420: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:5420"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5420"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:5420: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5420: wait failed" >&5

    $as_echo "ofproto.at:5420" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5420"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:5420: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:5420"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5420"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5420: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:5420"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5420"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:5420: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5420: wait failed" >&5

    $as_echo "ofproto.at:5420" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5420"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_991
#AT_START_992
at_fn_group_banner 992 'ofproto.at:5423' \
  "ofproto - bundle close without open (OpenFlow 1.3)" "" 51
at_xfail=no
(
  $as_echo "992. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:5425: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:5425"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5425"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:5425: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:5425"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5425"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:5425: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:5425"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5425"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:5425: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:5425"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5425"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:5425: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:5425"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5425"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:5425: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:5425"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5425"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:5425: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:5425"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5425"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Start a monitor, use the required protocol version
ovs-ofctl -O OpenFlow13 monitor br0 --detach --no-chdir --pidfile >monitor.log 2>&1


ovs-appctl -t ovs-ofctl ofctl/send "04 04 00 18 00 00 00 0a 4F 4E 46 00 00 00 08 FC 00 00 00 01 00 02 00 02"
ovs-appctl -t ovs-ofctl ofctl/barrier
{ set +x
$as_echo "$at_srcdir/ofproto.at:5433: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:5433"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5433"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5433: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:5433"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5433"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:5433: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5433: wait failed" >&5

    $as_echo "ofproto.at:5433" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5433"
fi


{ set +x
$as_echo "$at_srcdir/ofproto.at:5435: ofctl_strip < monitor.log"
at_fn_check_prepare_trace "ofproto.at:5435"
( $at_check_trace; ofctl_strip < monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "send: ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0x1 type=CLOSE_REQUEST flags=ordered
OFPT_ERROR (OF1.3): OFPBFC_BAD_ID
ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0x1 type=CLOSE_REQUEST flags=ordered
OFPT_BARRIER_REPLY (OF1.3):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5435"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5444: check_logs "
at_fn_check_prepare_trace "ofproto.at:5444"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5444"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:5444: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:5444"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5444"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5444: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:5444"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5444"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:5444: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5444: wait failed" >&5

    $as_echo "ofproto.at:5444" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5444"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:5444: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:5444"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5444"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5444: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:5444"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5444"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:5444: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5444: wait failed" >&5

    $as_echo "ofproto.at:5444" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5444"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_992
#AT_START_993
at_fn_group_banner 993 'ofproto.at:5447' \
  "ofproto - bundle double close (OpenFlow 1.3)" "   " 51
at_xfail=no
(
  $as_echo "993. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:5449: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:5449"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5449"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:5449: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:5449"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5449"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:5449: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:5449"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5449"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:5449: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:5449"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5449"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:5449: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:5449"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5449"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:5449: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:5449"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5449"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:5449: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:5449"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5449"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Start a monitor, use the required protocol version
ovs-ofctl -O OpenFlow13 monitor br0 --detach --no-chdir --pidfile >monitor.log 2>&1


# Open, Close, Close
ovs-appctl -t ovs-ofctl ofctl/send "04 04 00 18 00 00 00 0a 4F 4E 46 00 00 00 08 FC 00 00 00 01 00 00 00 02"
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/send "04 04 00 18 00 00 00 0a 4F 4E 46 00 00 00 08 FC 00 00 00 01 00 02 00 02"
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/send "04 04 00 18 00 00 00 0a 4F 4E 46 00 00 00 08 FC 00 00 00 01 00 02 00 02"
ovs-appctl -t ovs-ofctl ofctl/barrier
{ set +x
$as_echo "$at_srcdir/ofproto.at:5462: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:5462"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5462"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5462: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:5462"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5462"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:5462: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5462: wait failed" >&5

    $as_echo "ofproto.at:5462" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5462"
fi


{ set +x
$as_echo "$at_srcdir/ofproto.at:5464: ofctl_strip < monitor.log"
at_fn_check_prepare_trace "ofproto.at:5464"
( $at_check_trace; ofctl_strip < monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "send: ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0x1 type=OPEN_REQUEST flags=ordered
ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0x1 type=OPEN_REPLY flags=0
OFPT_BARRIER_REPLY (OF1.3):
send: ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0x1 type=CLOSE_REQUEST flags=ordered
ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0x1 type=CLOSE_REPLY flags=0
OFPT_BARRIER_REPLY (OF1.3):
send: ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0x1 type=CLOSE_REQUEST flags=ordered
OFPT_ERROR (OF1.3): OFPBFC_BUNDLE_CLOSED
ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0x1 type=CLOSE_REQUEST flags=ordered
OFPT_BARRIER_REPLY (OF1.3):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5464"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5483: check_logs "
at_fn_check_prepare_trace "ofproto.at:5483"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5483"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:5483: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:5483"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5483"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5483: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:5483"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5483"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:5483: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5483: wait failed" >&5

    $as_echo "ofproto.at:5483" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5483"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:5483: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:5483"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5483"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5483: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:5483"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5483"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:5483: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5483: wait failed" >&5

    $as_echo "ofproto.at:5483" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5483"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_993
#AT_START_994
at_fn_group_banner 994 'ofproto.at:5486' \
  "ofproto - bundle close, different flags (OpenFlow 1.3)" "" 51
at_xfail=no
(
  $as_echo "994. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:5488: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:5488"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5488"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:5488: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:5488"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5488"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:5488: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:5488"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5488"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:5488: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:5488"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5488"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:5488: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:5488"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5488"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:5488: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:5488"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5488"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:5488: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:5488"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5488"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Start a monitor, use the required protocol version
ovs-ofctl -O OpenFlow13 monitor br0 --detach --no-chdir --pidfile >monitor.log 2>&1


# Open, Close
ovs-appctl -t ovs-ofctl ofctl/send "04 04 00 18 00 00 00 0a 4F 4E 46 00 00 00 08 FC 00 00 00 01 00 00 00 02"
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/send "04 04 00 18 00 00 00 0a 4F 4E 46 00 00 00 08 FC 00 00 00 01 00 02 00 01"
ovs-appctl -t ovs-ofctl ofctl/barrier
{ set +x
$as_echo "$at_srcdir/ofproto.at:5499: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:5499"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5499"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5499: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:5499"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5499"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:5499: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5499: wait failed" >&5

    $as_echo "ofproto.at:5499" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5499"
fi


{ set +x
$as_echo "$at_srcdir/ofproto.at:5501: ofctl_strip < monitor.log"
at_fn_check_prepare_trace "ofproto.at:5501"
( $at_check_trace; ofctl_strip < monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "send: ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0x1 type=OPEN_REQUEST flags=ordered
ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0x1 type=OPEN_REPLY flags=0
OFPT_BARRIER_REPLY (OF1.3):
send: ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0x1 type=CLOSE_REQUEST flags=atomic
OFPT_ERROR (OF1.3): OFPBFC_BAD_FLAGS
ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0x1 type=CLOSE_REQUEST flags=atomic
OFPT_BARRIER_REPLY (OF1.3):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5501"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5515: check_logs "
at_fn_check_prepare_trace "ofproto.at:5515"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5515"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:5515: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:5515"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5515"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5515: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:5515"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5515"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:5515: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5515: wait failed" >&5

    $as_echo "ofproto.at:5515" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5515"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:5515: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:5515"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5515"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5515: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:5515"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5515"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:5515: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5515: wait failed" >&5

    $as_echo "ofproto.at:5515" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5515"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_994
#AT_START_995
at_fn_group_banner 995 'ofproto.at:5518' \
  "ofproto - bundle commit without open (OpenFlow 1.3)" "" 51
at_xfail=no
(
  $as_echo "995. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:5520: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:5520"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5520"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:5520: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:5520"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5520"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:5520: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:5520"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5520"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:5520: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:5520"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5520"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:5520: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:5520"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5520"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:5520: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:5520"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5520"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:5520: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:5520"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5520"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Start a monitor, use the required protocol version
ovs-ofctl -O OpenFlow13 monitor br0 --detach --no-chdir --pidfile >monitor.log 2>&1


# Commit
ovs-appctl -t ovs-ofctl ofctl/send "04 04 00 18 00 00 00 0a 4F 4E 46 00 00 00 08 FC 00 00 00 01 00 04 00 02"
ovs-appctl -t ovs-ofctl ofctl/barrier
{ set +x
$as_echo "$at_srcdir/ofproto.at:5529: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:5529"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5529"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5529: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:5529"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5529"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:5529: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5529: wait failed" >&5

    $as_echo "ofproto.at:5529" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5529"
fi


{ set +x
$as_echo "$at_srcdir/ofproto.at:5531: ofctl_strip < monitor.log"
at_fn_check_prepare_trace "ofproto.at:5531"
( $at_check_trace; ofctl_strip < monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "send: ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0x1 type=COMMIT_REQUEST flags=ordered
OFPT_ERROR (OF1.3): OFPBFC_BAD_ID
ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0x1 type=COMMIT_REQUEST flags=ordered
OFPT_BARRIER_REPLY (OF1.3):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5531"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5540: check_logs "
at_fn_check_prepare_trace "ofproto.at:5540"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5540"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:5540: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:5540"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5540"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5540: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:5540"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5540"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:5540: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5540: wait failed" >&5

    $as_echo "ofproto.at:5540" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5540"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:5540: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:5540"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5540"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5540: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:5540"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5540"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:5540: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5540: wait failed" >&5

    $as_echo "ofproto.at:5540" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5540"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_995
#AT_START_996
at_fn_group_banner 996 'ofproto.at:5543' \
  "ofproto - bundle commit, different flags (OpenFlow 1.3)" "" 51
at_xfail=no
(
  $as_echo "996. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:5545: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:5545"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5545"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:5545: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:5545"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5545"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:5545: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:5545"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5545"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:5545: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:5545"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5545"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:5545: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:5545"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5545"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:5545: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:5545"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5545"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:5545: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:5545"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5545"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Start a monitor, use the required protocol version
ovs-ofctl -O OpenFlow13 monitor br0 --detach --no-chdir --pidfile >monitor.log 2>&1


# Open, Commit
ovs-appctl -t ovs-ofctl ofctl/send "04 04 00 18 00 00 00 0a 4F 4E 46 00 00 00 08 FC 00 00 00 01 00 00 00 02"
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/send "04 04 00 18 00 00 00 0a 4F 4E 46 00 00 00 08 FC 00 00 00 01 00 04 00 01"
ovs-appctl -t ovs-ofctl ofctl/barrier
{ set +x
$as_echo "$at_srcdir/ofproto.at:5556: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:5556"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5556"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5556: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:5556"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5556"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:5556: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5556: wait failed" >&5

    $as_echo "ofproto.at:5556" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5556"
fi


{ set +x
$as_echo "$at_srcdir/ofproto.at:5558: ofctl_strip < monitor.log"
at_fn_check_prepare_trace "ofproto.at:5558"
( $at_check_trace; ofctl_strip < monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "send: ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0x1 type=OPEN_REQUEST flags=ordered
ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0x1 type=OPEN_REPLY flags=0
OFPT_BARRIER_REPLY (OF1.3):
send: ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0x1 type=COMMIT_REQUEST flags=atomic
OFPT_ERROR (OF1.3): OFPBFC_BAD_FLAGS
ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0x1 type=COMMIT_REQUEST flags=atomic
OFPT_BARRIER_REPLY (OF1.3):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5558"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5572: check_logs "
at_fn_check_prepare_trace "ofproto.at:5572"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5572"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:5572: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:5572"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5572"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5572: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:5572"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5572"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:5572: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5572: wait failed" >&5

    $as_echo "ofproto.at:5572" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5572"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:5572: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:5572"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5572"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5572: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:5572"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5572"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:5572: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5572: wait failed" >&5

    $as_echo "ofproto.at:5572" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5572"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_996
#AT_START_997
at_fn_group_banner 997 'ofproto.at:5575' \
  "ofproto - bundle discard without open (OpenFlow 1.3)" "" 51
at_xfail=no
(
  $as_echo "997. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:5577: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:5577"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5577"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:5577: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:5577"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5577"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:5577: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:5577"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5577"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:5577: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:5577"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5577"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:5577: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:5577"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5577"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:5577: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:5577"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5577"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:5577: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:5577"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5577"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Start a monitor, use the required protocol version
ovs-ofctl -O OpenFlow13 monitor br0 --detach --no-chdir --pidfile >monitor.log 2>&1


# Discard
ovs-appctl -t ovs-ofctl ofctl/send "04 04 00 18 00 00 00 0a 4F 4E 46 00 00 00 08 FC 00 00 00 01 00 06 00 02"
ovs-appctl -t ovs-ofctl ofctl/barrier
{ set +x
$as_echo "$at_srcdir/ofproto.at:5586: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:5586"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5586"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5586: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:5586"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5586"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:5586: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5586: wait failed" >&5

    $as_echo "ofproto.at:5586" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5586"
fi


{ set +x
$as_echo "$at_srcdir/ofproto.at:5588: ofctl_strip < monitor.log"
at_fn_check_prepare_trace "ofproto.at:5588"
( $at_check_trace; ofctl_strip < monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "send: ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0x1 type=DISCARD_REQUEST flags=ordered
OFPT_ERROR (OF1.3): OFPBFC_BAD_ID
ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0x1 type=DISCARD_REQUEST flags=ordered
OFPT_BARRIER_REPLY (OF1.3):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5588"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5597: check_logs "
at_fn_check_prepare_trace "ofproto.at:5597"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5597"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:5597: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:5597"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5597"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5597: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:5597"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5597"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:5597: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5597: wait failed" >&5

    $as_echo "ofproto.at:5597" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5597"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:5597: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:5597"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5597"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5597: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:5597"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5597"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:5597: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5597: wait failed" >&5

    $as_echo "ofproto.at:5597" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5597"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_997
#AT_START_998
at_fn_group_banner 998 'ofproto.at:5601' \
  "ofproto - bundle with multiple flow mods (OpenFlow 1.3)" "" 51
at_xfail=no
(
  $as_echo "998. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:5602: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:5602"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5602"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:5602: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:5602"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5602"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:5602: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:5602"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5602"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:5602: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:5602"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5602"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:5602: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:5602"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5602"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:5602: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:5602"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5602"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:5602: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:5602"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5602"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto.at:5604: ovs-appctl vlog/set vconn:dbg"
at_fn_check_prepare_trace "ofproto.at:5604"
( $at_check_trace; ovs-appctl vlog/set vconn:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5604"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5606: ovs-ofctl --no-names del-flows br0"
at_fn_check_prepare_trace "ofproto.at:5606"
( $at_check_trace; ovs-ofctl --no-names del-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5606"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
add idle_timeout=50 in_port=2 dl_src=00:66:77:88:99:aa actions=1
add idle_timeout=60 in_port=2 dl_src=00:77:88:99:aa:bb actions=2
add idle_timeout=70 in_port=2 dl_src=00:88:99:aa:bb:cc actions=3
add idle_timeout=50 in_port=2 dl_src=00:66:77:88:99:aa actions=4
delete
add idle_timeout=50 in_port=2 dl_src=00:66:77:88:99:aa actions=5
add idle_timeout=60 in_port=2 dl_src=00:77:88:99:aa:bb actions=6
add idle_timeout=70 in_port=2 dl_src=00:88:99:aa:bb:cc actions=7
delete in_port=2 dl_src=00:88:99:aa:bb:cc
_ATEOF


{ set +x
$as_echo "$at_srcdir/ofproto.at:5620: ovs-ofctl -O OpenFlow13 --no-names --bundle add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto.at:5620"
( $at_check_trace; ovs-ofctl -O OpenFlow13 --no-names --bundle add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5620"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5622: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:5622"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " idle_timeout=50, in_port=2,dl_src=00:66:77:88:99:aa actions=output:5
 idle_timeout=60, in_port=2,dl_src=00:77:88:99:aa:bb actions=output:6
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5622"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
modify actions=drop
modify_strict in_port=2 dl_src=00:77:88:99:aa:bb actions=7
_ATEOF


{ set +x
$as_echo "$at_srcdir/ofproto.at:5633: ovs-ofctl -O OpenFlow13 --no-names --bundle add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto.at:5633"
( $at_check_trace; ovs-ofctl -O OpenFlow13 --no-names --bundle add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5633"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5635: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:5635"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " idle_timeout=50, in_port=2,dl_src=00:66:77:88:99:aa actions=drop
 idle_timeout=60, in_port=2,dl_src=00:77:88:99:aa:bb actions=output:7
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5635"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Adding an existing flow acts as a modify, and delete_strict also works.
cat >flows.txt <<'_ATEOF'
add idle_timeout=60 in_port=2 dl_src=00:77:88:99:aa:bb actions=8
delete_strict in_port=2 dl_src=00:66:77:88:99:aa
add in_port=2 dl_src=00:66:77:88:99:aa actions=drop
_ATEOF


{ set +x
$as_echo "$at_srcdir/ofproto.at:5648: ovs-ofctl -O OpenFlow13 --bundle --no-names add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto.at:5648"
( $at_check_trace; ovs-ofctl -O OpenFlow13 --bundle --no-names add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5648"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5650: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:5650"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " idle_timeout=60, in_port=2,dl_src=00:77:88:99:aa:bb actions=output:8
 in_port=2,dl_src=00:66:77:88:99:aa actions=drop
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5650"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Prevent race.
$as_echo "ofproto.at:5658: waiting until vconn_sub < ovs-vswitchd.log | test \`grep -- \"|vconn|DBG|unix: sent (Success): NXST_FLOW reply\" | wc -l\` -ge 3..." >&5
ovs_wait_cond () {
    vconn_sub < ovs-vswitchd.log | test `grep -- "|vconn|DBG|unix: sent (Success): NXST_FLOW reply" | wc -l` -ge 3
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5658: wait failed" >&5

    $as_echo "ofproto.at:5658" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5658"
fi

{ set +x
$as_echo "$at_srcdir/ofproto.at:5659: print_vconn_debug | vconn_sub | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:5659"
( $at_check_trace; print_vconn_debug | vconn_sub | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "vconn|DBG|unix: sent (Success): OFPT_HELLO (OF1.6):
 version bitmap: 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
vconn|DBG|unix: received: OFPT_HELLO:
 version bitmap: 0x01
vconn|DBG|unix: negotiated OpenFlow version 0x01 (we support version 0x07 and earlier, peer supports version 0x01)
vconn|DBG|unix: received: OFPT_FLOW_MOD: DEL actions=drop
vconn|DBG|unix: received: OFPT_BARRIER_REQUEST:
vconn|DBG|unix: sent (Success): OFPT_BARRIER_REPLY:
vconn|DBG|unix: sent (Success): OFPT_HELLO (OF1.6):
 version bitmap: 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
vconn|DBG|unix: received: OFPT_HELLO (OF1.3):
 version bitmap: 0x04
vconn|DBG|unix: negotiated OpenFlow version 0x04 (we support version 0x07 and earlier, peer supports version 0x04)
vconn|DBG|unix: received: ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0 type=OPEN_REQUEST flags=atomic ordered
vconn|DBG|unix: sent (Success): ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0 type=OPEN_REPLY flags=0
vconn|DBG|unix: received: ONFT_BUNDLE_ADD_MESSAGE (OF1.3):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.3): ADD in_port=2,dl_src=00:66:77:88:99:aa idle:50 actions=output:1
vconn|DBG|unix: received: ONFT_BUNDLE_ADD_MESSAGE (OF1.3):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.3): ADD in_port=2,dl_src=00:77:88:99:aa:bb idle:60 actions=output:2
vconn|DBG|unix: received: ONFT_BUNDLE_ADD_MESSAGE (OF1.3):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.3): ADD in_port=2,dl_src=00:88:99:aa:bb:cc idle:70 actions=output:3
vconn|DBG|unix: received: ONFT_BUNDLE_ADD_MESSAGE (OF1.3):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.3): ADD in_port=2,dl_src=00:66:77:88:99:aa idle:50 actions=output:4
vconn|DBG|unix: received: ONFT_BUNDLE_ADD_MESSAGE (OF1.3):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.3): DEL table:255 actions=drop
vconn|DBG|unix: received: ONFT_BUNDLE_ADD_MESSAGE (OF1.3):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.3): ADD in_port=2,dl_src=00:66:77:88:99:aa idle:50 actions=output:5
vconn|DBG|unix: received: ONFT_BUNDLE_ADD_MESSAGE (OF1.3):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.3): ADD in_port=2,dl_src=00:77:88:99:aa:bb idle:60 actions=output:6
vconn|DBG|unix: received: ONFT_BUNDLE_ADD_MESSAGE (OF1.3):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.3): ADD in_port=2,dl_src=00:88:99:aa:bb:cc idle:70 actions=output:7
vconn|DBG|unix: received: ONFT_BUNDLE_ADD_MESSAGE (OF1.3):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.3): DEL table:255 in_port=2,dl_src=00:88:99:aa:bb:cc actions=drop
vconn|DBG|unix: received: OFPT_BARRIER_REQUEST (OF1.3):
vconn|DBG|unix: sent (Success): OFPT_BARRIER_REPLY (OF1.3):
vconn|DBG|unix: received: ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0 type=COMMIT_REQUEST flags=atomic ordered
vconn|DBG|unix: sent (Success): ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0 type=COMMIT_REPLY flags=0
vconn|DBG|unix: sent (Success): OFPT_HELLO (OF1.6):
 version bitmap: 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
vconn|DBG|unix: received: OFPT_HELLO:
 version bitmap: 0x01
vconn|DBG|unix: negotiated OpenFlow version 0x01 (we support version 0x07 and earlier, peer supports version 0x01)
vconn|DBG|unix: received: NXT_SET_FLOW_FORMAT: format=nxm
vconn|DBG|unix: received: OFPT_BARRIER_REQUEST:
vconn|DBG|unix: sent (Success): OFPT_BARRIER_REPLY:
vconn|DBG|unix: received: NXST_FLOW request:
vconn|DBG|unix: sent (Success): NXST_FLOW reply:
 idle_timeout=50, in_port=2,dl_src=00:66:77:88:99:aa actions=output:5
 idle_timeout=60, in_port=2,dl_src=00:77:88:99:aa:bb actions=output:6
vconn|DBG|unix: sent (Success): OFPT_HELLO (OF1.6):
 version bitmap: 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
vconn|DBG|unix: received: OFPT_HELLO (OF1.3):
 version bitmap: 0x04
vconn|DBG|unix: negotiated OpenFlow version 0x04 (we support version 0x07 and earlier, peer supports version 0x04)
vconn|DBG|unix: received: ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0 type=OPEN_REQUEST flags=atomic ordered
vconn|DBG|unix: sent (Success): ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0 type=OPEN_REPLY flags=0
vconn|DBG|unix: received: ONFT_BUNDLE_ADD_MESSAGE (OF1.3):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.3): MOD actions=drop
vconn|DBG|unix: received: ONFT_BUNDLE_ADD_MESSAGE (OF1.3):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.3): MOD_STRICT in_port=2,dl_src=00:77:88:99:aa:bb actions=output:7
vconn|DBG|unix: received: OFPT_BARRIER_REQUEST (OF1.3):
vconn|DBG|unix: sent (Success): OFPT_BARRIER_REPLY (OF1.3):
vconn|DBG|unix: received: ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0 type=COMMIT_REQUEST flags=atomic ordered
vconn|DBG|unix: sent (Success): ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0 type=COMMIT_REPLY flags=0
vconn|DBG|unix: sent (Success): OFPT_HELLO (OF1.6):
 version bitmap: 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
vconn|DBG|unix: received: OFPT_HELLO:
 version bitmap: 0x01
vconn|DBG|unix: negotiated OpenFlow version 0x01 (we support version 0x07 and earlier, peer supports version 0x01)
vconn|DBG|unix: received: NXT_SET_FLOW_FORMAT: format=nxm
vconn|DBG|unix: received: OFPT_BARRIER_REQUEST:
vconn|DBG|unix: sent (Success): OFPT_BARRIER_REPLY:
vconn|DBG|unix: received: NXST_FLOW request:
vconn|DBG|unix: sent (Success): NXST_FLOW reply:
 idle_timeout=50, in_port=2,dl_src=00:66:77:88:99:aa actions=drop
 idle_timeout=60, in_port=2,dl_src=00:77:88:99:aa:bb actions=output:7
vconn|DBG|unix: sent (Success): OFPT_HELLO (OF1.6):
 version bitmap: 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
vconn|DBG|unix: received: OFPT_HELLO (OF1.3):
 version bitmap: 0x04
vconn|DBG|unix: negotiated OpenFlow version 0x04 (we support version 0x07 and earlier, peer supports version 0x04)
vconn|DBG|unix: received: ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0 type=OPEN_REQUEST flags=atomic ordered
vconn|DBG|unix: sent (Success): ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0 type=OPEN_REPLY flags=0
vconn|DBG|unix: received: ONFT_BUNDLE_ADD_MESSAGE (OF1.3):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.3): ADD in_port=2,dl_src=00:77:88:99:aa:bb idle:60 actions=output:8
vconn|DBG|unix: received: ONFT_BUNDLE_ADD_MESSAGE (OF1.3):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.3): DEL_STRICT table:255 in_port=2,dl_src=00:66:77:88:99:aa actions=drop
vconn|DBG|unix: received: ONFT_BUNDLE_ADD_MESSAGE (OF1.3):
 bundle_id=0 flags=atomic ordered
OFPT_FLOW_MOD (OF1.3): ADD in_port=2,dl_src=00:66:77:88:99:aa actions=drop
vconn|DBG|unix: received: OFPT_BARRIER_REQUEST (OF1.3):
vconn|DBG|unix: sent (Success): OFPT_BARRIER_REPLY (OF1.3):
vconn|DBG|unix: received: ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0 type=COMMIT_REQUEST flags=atomic ordered
vconn|DBG|unix: sent (Success): ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0 type=COMMIT_REPLY flags=0
vconn|DBG|unix: sent (Success): OFPT_HELLO (OF1.6):
 version bitmap: 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
vconn|DBG|unix: received: OFPT_HELLO:
 version bitmap: 0x01
vconn|DBG|unix: negotiated OpenFlow version 0x01 (we support version 0x07 and earlier, peer supports version 0x01)
vconn|DBG|unix: received: NXT_SET_FLOW_FORMAT: format=nxm
vconn|DBG|unix: received: OFPT_BARRIER_REQUEST:
vconn|DBG|unix: sent (Success): OFPT_BARRIER_REPLY:
vconn|DBG|unix: received: NXST_FLOW request:
vconn|DBG|unix: sent (Success): NXST_FLOW reply:
 idle_timeout=60, in_port=2,dl_src=00:77:88:99:aa:bb actions=output:8
 in_port=2,dl_src=00:66:77:88:99:aa actions=drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5659"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5793: check_logs "
at_fn_check_prepare_trace "ofproto.at:5793"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5793"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:5793: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:5793"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5793"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5793: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:5793"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5793"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:5793: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5793: wait failed" >&5

    $as_echo "ofproto.at:5793" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5793"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:5793: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:5793"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5793"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5793: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:5793"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5793"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:5793: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5793: wait failed" >&5

    $as_echo "ofproto.at:5793" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5793"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_998
#AT_START_999
at_fn_group_banner 999 'ofproto.at:5797' \
  "ofproto - failing bundle add message (OpenFlow 1.3)" "" 51
at_xfail=no
(
  $as_echo "999. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:5798: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:5798"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5798"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:5798: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:5798"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5798"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:5798: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:5798"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5798"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:5798: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:5798"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5798"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:5798: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:5798"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5798"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:5798: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:5798"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5798"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:5798: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:5798"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5798"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto.at:5800: ovs-ofctl del-flows br0"
at_fn_check_prepare_trace "ofproto.at:5800"
( $at_check_trace; ovs-ofctl del-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5800"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-ofctl add-flows br0 - <<EOF
idle_timeout=50 in_port=2 dl_src=00:66:77:88:99:aa actions=11
idle_timeout=60 in_port=2 dl_src=00:77:88:99:aa:bb actions=22
idle_timeout=70 in_port=2 dl_src=00:88:99:aa:bb:cc actions=33
EOF
{ set +x
$as_echo "$at_srcdir/ofproto.at:5807: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:5807"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " idle_timeout=50, in_port=2,dl_src=00:66:77:88:99:aa actions=output:11
 idle_timeout=60, in_port=2,dl_src=00:77:88:99:aa:bb actions=output:22
 idle_timeout=70, in_port=2,dl_src=00:88:99:aa:bb:cc actions=output:33
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5807"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# last line uses illegal table number (OVS internal table)
cat >flows.txt <<'_ATEOF'
add idle_timeout=50 in_port=2 dl_src=00:66:77:88:99:aa actions=1
add idle_timeout=60 in_port=2 dl_src=00:77:88:99:aa:bb actions=2
add idle_timeout=70 in_port=2 dl_src=00:88:99:aa:bb:cc actions=3
modify idle_timeout=50 in_port=2 dl_src=00:66:77:88:99:aa actions=4
delete
add idle_timeout=50 in_port=2 dl_src=00:66:77:88:99:aa actions=5
add idle_timeout=60 in_port=2 dl_src=00:77:88:99:aa:bb actions=6
add idle_timeout=70 in_port=2 dl_src=00:88:99:aa:bb:cc actions=7
delete in_port=2 dl_src=00:88:99:aa:bb:cc
add table=254 actions=drop
_ATEOF


{ set +x
$as_echo "$at_srcdir/ofproto.at:5828: ovs-ofctl -O OpenFlow13 --bundle add-flows br0 flows.txt 2>&1 | sed '/talking to/,\$d' | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:5828"
( $at_check_trace; ovs-ofctl -O OpenFlow13 --bundle add-flows br0 flows.txt 2>&1 | sed '/talking to/,$d' | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Error OFPBRC_EPERM for: OFPT_FLOW_MOD (OF1.3): ADD table:254 actions=drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5828"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5833: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:5833"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " idle_timeout=50, in_port=2,dl_src=00:66:77:88:99:aa actions=output:11
 idle_timeout=60, in_port=2,dl_src=00:77:88:99:aa:bb actions=output:22
 idle_timeout=70, in_port=2,dl_src=00:88:99:aa:bb:cc actions=output:33
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5833"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5840: check_logs "
at_fn_check_prepare_trace "ofproto.at:5840"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5840"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:5840: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:5840"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5840"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5840: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:5840"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5840"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:5840: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5840: wait failed" >&5

    $as_echo "ofproto.at:5840" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5840"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:5840: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:5840"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5840"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5840: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:5840"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5840"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:5840: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5840: wait failed" >&5

    $as_echo "ofproto.at:5840" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5840"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_999
#AT_START_1000
at_fn_group_banner 1000 'ofproto.at:5844' \
  "ofproto - failing bundle commit (OpenFlow 1.3)" " " 51
at_xfail=no
(
  $as_echo "1000. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:5845: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:5845"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5845"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:5845: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:5845"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5845"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:5845: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:5845"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5845"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:5845: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:5845"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5845"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:5845: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:5845"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5845"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:5845: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:5845"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5845"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:5845: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:5845"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5845"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto.at:5847: ovs-ofctl del-flows br0"
at_fn_check_prepare_trace "ofproto.at:5847"
( $at_check_trace; ovs-ofctl del-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5847"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Invalid group numbers are detected at commit time
cat >flows.txt <<'_ATEOF'
add idle_timeout=50 in_port=2 dl_src=00:66:77:88:99:aa actions=group:1
add idle_timeout=60 in_port=2 dl_src=00:77:88:99:aa:bb actions=group:2
add idle_timeout=70 in_port=2 dl_src=00:88:99:aa:bb:cc actions=group:3
_ATEOF


{ set +x
$as_echo "$at_srcdir/ofproto.at:5856: ovs-ofctl -O OpenFlow13 --bundle add-flows br0 flows.txt 2>&1 | sed '/talking to/,\$d' | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:5856"
( $at_check_trace; ovs-ofctl -O OpenFlow13 --bundle add-flows br0 flows.txt 2>&1 | sed '/talking to/,$d' | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Error OFPBAC_BAD_OUT_GROUP for: OFPT_FLOW_MOD (OF1.3): ADD in_port=2,dl_src=00:66:77:88:99:aa idle:50 actions=group:1
Error OFPBFC_MSG_FAILED for: ONFT_BUNDLE_CONTROL (OF1.3):
 bundle_id=0 type=COMMIT_REQUEST flags=atomic ordered
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5856"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5863: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:5863"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5863"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5867: check_logs "
at_fn_check_prepare_trace "ofproto.at:5867"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5867"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:5867: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:5867"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5867"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5867: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:5867"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5867"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:5867: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5867: wait failed" >&5

    $as_echo "ofproto.at:5867" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5867"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:5867: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:5867"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5867"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5867: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:5867"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5867"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:5867: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5867: wait failed" >&5

    $as_echo "ofproto.at:5867" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5867"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1000
#AT_START_1001
at_fn_group_banner 1001 'ofproto.at:5870' \
  "ofproto - monitor flows with tun_md" "            " 51
at_xfail=no
(
  $as_echo "1001. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:5871: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:5871"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5871"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:5871: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:5871"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5871"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:5871: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:5871"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5871"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:5871: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:5871"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5871"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:5871: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:5871"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5871"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:5871: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:5871"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5871"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:5871: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:5871"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5871"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto.at:5873: ovs-ofctl add-tlv-map br0 \"{class=0xffff,type=0,len=4}->tun_metadata0\""
at_fn_check_prepare_trace "ofproto.at:5873"
( $at_check_trace; ovs-ofctl add-tlv-map br0 "{class=0xffff,type=0,len=4}->tun_metadata0"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5873"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:5874: ovs-ofctl add-flow br0 tun_metadata0=0x1,actions=drop"
at_fn_check_prepare_trace "ofproto.at:5874"
( $at_check_trace; ovs-ofctl add-flow br0 tun_metadata0=0x1,actions=drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5874"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5876: ovs-ofctl dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:5876"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW reply:
 tun_metadata0=0x1 actions=drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5876"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto.at:5885: ovs-ofctl monitor br0 65534 watch: --detach --no-chdir --pidfile >ofctl_monitor.log 2>&1"
at_fn_check_prepare_trace "ofproto.at:5885"
( $at_check_trace; ovs-ofctl monitor br0 65534 watch: --detach --no-chdir --pidfile >ofctl_monitor.log 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5885"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


$as_echo "ofproto.at:5887: waiting until test \`wc -l < ofctl_monitor.log\` -ge 2..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 2
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5887: wait failed" >&5

    $as_echo "ofproto.at:5887" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5887"
fi


{ set +x
$as_echo "$at_srcdir/ofproto.at:5889: cat ofctl_monitor.log | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:5889"
( $at_check_trace; cat ofctl_monitor.log | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW_MONITOR reply:
 event=ADDED table=0 cookie=0 tun_metadata0=0x1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5889"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5894: ovs-ofctl del-flows br0"
at_fn_check_prepare_trace "ofproto.at:5894"
( $at_check_trace; ovs-ofctl del-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5894"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


$as_echo "ofproto.at:5896: waiting until test \`wc -l < ofctl_monitor.log\` -ge 4..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 4
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5896: wait failed" >&5

    $as_echo "ofproto.at:5896" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5896"
fi


{ set +x
$as_echo "$at_srcdir/ofproto.at:5898: cat ofctl_monitor.log | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:5898"
( $at_check_trace; cat ofctl_monitor.log | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW_MONITOR reply:
 event=ADDED table=0 cookie=0 tun_metadata0=0x1
NXST_FLOW_MONITOR reply:
 event=DELETED reason=delete table=0 cookie=0 tun_metadata0=0x1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5898"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5905: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto.at:5905"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5905"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5905: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto.at:5905"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5905"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:5905: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5905: wait failed" >&5

    $as_echo "ofproto.at:5905" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5905"
fi


{ set +x
$as_echo "$at_srcdir/ofproto.at:5908: ovs-ofctl dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:5908"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5908"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5912: check_logs "
at_fn_check_prepare_trace "ofproto.at:5912"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5912"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:5912: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:5912"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5912"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5912: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:5912"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5912"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:5912: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5912: wait failed" >&5

    $as_echo "ofproto.at:5912" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5912"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:5912: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:5912"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5912"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:5912: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:5912"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5912"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto.at:5912: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:5912: wait failed" >&5

    $as_echo "ofproto.at:5912" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:5912"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1001
#AT_START_1002
at_fn_group_banner 1002 'ofproto.at:5915' \
  "ofproto - flow mod with tunnel metadata" "        " 51
at_xfail=no
(
  $as_echo "1002. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:5917: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:5917"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5917"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:5917: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:5917"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5917"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:5917: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:5917"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5917"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:5917: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:5917"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5917"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:5917: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:5917"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5917"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:5917: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:5917"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5917"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:5917: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:5917"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5917"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto.at:5919: ovs-ofctl add-tlv-map br0 \"{class=0xffff,type=0,len=4}->tun_metadata0\""
at_fn_check_prepare_trace "ofproto.at:5919"
( $at_check_trace; ovs-ofctl add-tlv-map br0 "{class=0xffff,type=0,len=4}->tun_metadata0"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5919"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:5920: ovs-ofctl add-flow br0 \"in_port=1 actions=move:tun_metadata0[0..31]->NXM_NX_REG0[]\""
at_fn_check_prepare_trace "ofproto.at:5920"
( $at_check_trace; ovs-ofctl add-flow br0 "in_port=1 actions=move:tun_metadata0[0..31]->NXM_NX_REG0[]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5920"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5925: ovs-ofctl dump-flows br0 -mmmm"
at_fn_check_prepare_trace "ofproto.at:5925"
( $at_check_trace; ovs-ofctl dump-flows br0 -mmmm
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5925"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:5926: sed -e 's/duration=[0-9.]*s/duration=?s/' -e 's/idle_age=[0-9]*/idle_age=?/' -e '/^000000[0-4]0 / d' stdout | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:5926"
( $at_check_trace; sed -e 's/duration=[0-9.]*s/duration=?s/' -e 's/idle_age=[0-9]*/idle_age=?/' -e '/^000000[0-4]0 / d' stdout | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW reply:
 cookie=0x0, duration=?s, table=0, n_packets=0, n_bytes=0, idle_age=?, in_port=1 actions=move:NXM_NX_TUN_METADATA0[0..31]->NXM_NX_REG0[]
00000050  ff ff 00 18 00 00 23 20-00 06 00 20 00 00 00 00 |......# ... ....|
00000060  00 01 50 04 00 01 00 04-                        |..P.....        |
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5926"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5934: ovs-ofctl add-flow br0 \"in_port=2 actions=move:tun_metadata1[0..31]->NXM_NX_REG0[]\""
at_fn_check_prepare_trace "ofproto.at:5934"
( $at_check_trace; ovs-ofctl add-flow br0 "in_port=2 actions=move:tun_metadata1[0..31]->NXM_NX_REG0[]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:5934"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:5935: strip_xids < stderr | sed '/FLOW_MOD/,\$d'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:5935"
( $at_check_trace; strip_xids < stderr | sed '/FLOW_MOD/,$d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR: NXFMFC_INVALID_TLV_FIELD
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5935"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5939: ovs-ofctl add-flow br0 \"in_port=2 actions=move:tun_metadata0[32..63]->NXM_NX_REG0[]\""
at_fn_check_prepare_trace "ofproto.at:5939"
( $at_check_trace; ovs-ofctl add-flow br0 "in_port=2 actions=move:tun_metadata0[32..63]->NXM_NX_REG0[]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:5939"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:5940: strip_xids < stderr | sed '/FLOW_MOD/,\$d'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:5940"
( $at_check_trace; strip_xids < stderr | sed '/FLOW_MOD/,$d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR: OFPBAC_BAD_SET_LEN
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5940"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5944: ovs-ofctl add-flow br0 \"in_port=2 actions=push:tun_metadata1[0..31]\""
at_fn_check_prepare_trace "ofproto.at:5944"
( $at_check_trace; ovs-ofctl add-flow br0 "in_port=2 actions=push:tun_metadata1[0..31]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:5944"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:5945: strip_xids < stderr | sed '/FLOW_MOD/,\$d'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:5945"
( $at_check_trace; strip_xids < stderr | sed '/FLOW_MOD/,$d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR: NXFMFC_INVALID_TLV_FIELD
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5945"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5949: ovs-ofctl add-flow br0 \"in_port=2 actions=pop:tun_metadata0[32..63]\""
at_fn_check_prepare_trace "ofproto.at:5949"
( $at_check_trace; ovs-ofctl add-flow br0 "in_port=2 actions=pop:tun_metadata0[32..63]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:5949"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:5950: strip_xids < stderr | sed '/FLOW_MOD/,\$d'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:5950"
( $at_check_trace; strip_xids < stderr | sed '/FLOW_MOD/,$d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR: OFPBAC_BAD_SET_LEN
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5950"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5954: ovs-ofctl add-flow br0 \"in_port=3, actions=load:0x11223344->tun_metadata1\""
at_fn_check_prepare_trace "ofproto.at:5954"
( $at_check_trace; ovs-ofctl add-flow br0 "in_port=3, actions=load:0x11223344->tun_metadata1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:5954"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:5955: strip_xids < stderr | sed '/FLOW_MOD/,\$d'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:5955"
( $at_check_trace; strip_xids < stderr | sed '/FLOW_MOD/,$d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR: NXFMFC_INVALID_TLV_FIELD
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5955"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5959: ovs-ofctl add-flow br0 \"in_port=2 actions=output:tun_metadata1[0..31]\""
at_fn_check_prepare_trace "ofproto.at:5959"
( $at_check_trace; ovs-ofctl add-flow br0 "in_port=2 actions=output:tun_metadata1[0..31]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:5959"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:5960: strip_xids < stderr | sed '/FLOW_MOD/,\$d'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:5960"
( $at_check_trace; strip_xids < stderr | sed '/FLOW_MOD/,$d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR: NXFMFC_INVALID_TLV_FIELD
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5960"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5964: ovs-ofctl add-flow br0 \"in_port=2 actions=output:tun_metadata0[32..63]\""
at_fn_check_prepare_trace "ofproto.at:5964"
( $at_check_trace; ovs-ofctl add-flow br0 "in_port=2 actions=output:tun_metadata0[32..63]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:5964"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:5965: strip_xids < stderr | sed '/FLOW_MOD/,\$d'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:5965"
( $at_check_trace; strip_xids < stderr | sed '/FLOW_MOD/,$d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR: OFPBAC_BAD_SET_LEN
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5965"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5969: ovs-ofctl add-flow br0 \"in_port=2 actions=multipath(eth_src,50,modulo_n,1,0,tun_metadata1[0..31])\""
at_fn_check_prepare_trace "ofproto.at:5969"
( $at_check_trace; ovs-ofctl add-flow br0 "in_port=2 actions=multipath(eth_src,50,modulo_n,1,0,tun_metadata1[0..31])"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:5969"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:5970: strip_xids < stderr | sed '/FLOW_MOD/,\$d'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:5970"
( $at_check_trace; strip_xids < stderr | sed '/FLOW_MOD/,$d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR: NXFMFC_INVALID_TLV_FIELD
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5970"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5974: ovs-ofctl add-flow br0 \"in_port=2 actions=multipath(eth_src,50,modulo_n,1,0,tun_metadata0[32..63])\""
at_fn_check_prepare_trace "ofproto.at:5974"
( $at_check_trace; ovs-ofctl add-flow br0 "in_port=2 actions=multipath(eth_src,50,modulo_n,1,0,tun_metadata0[32..63])"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:5974"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:5975: strip_xids < stderr | sed '/FLOW_MOD/,\$d'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:5975"
( $at_check_trace; strip_xids < stderr | sed '/FLOW_MOD/,$d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR: OFPBAC_BAD_SET_LEN
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5975"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5979: ovs-ofctl add-flow br0 \"in_port=2 actions=bundle_load(eth_src,50,hrw,ofport,tun_metadata1[0..31], slaves:4,8)\""
at_fn_check_prepare_trace "ofproto.at:5979"
( $at_check_trace; ovs-ofctl add-flow br0 "in_port=2 actions=bundle_load(eth_src,50,hrw,ofport,tun_metadata1[0..31], slaves:4,8)"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:5979"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:5980: strip_xids < stderr | sed '/FLOW_MOD/,\$d'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:5980"
( $at_check_trace; strip_xids < stderr | sed '/FLOW_MOD/,$d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR: NXFMFC_INVALID_TLV_FIELD
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5980"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5984: ovs-ofctl add-flow br0 \"in_port=2 actions=bundle_load(eth_src,50,hrw,ofport,tun_metadata0[32..63], slaves:4,8)\""
at_fn_check_prepare_trace "ofproto.at:5984"
( $at_check_trace; ovs-ofctl add-flow br0 "in_port=2 actions=bundle_load(eth_src,50,hrw,ofport,tun_metadata0[32..63], slaves:4,8)"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:5984"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:5985: strip_xids < stderr | sed '/FLOW_MOD/,\$d'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:5985"
( $at_check_trace; strip_xids < stderr | sed '/FLOW_MOD/,$d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR: OFPBAC_BAD_SET_LEN
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5985"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5989: ovs-ofctl add-flow br0 \"in_port=2 actions=learn(tun_metadata1[0..31]=reg0[0..31])\""
at_fn_check_prepare_trace "ofproto.at:5989"
( $at_check_trace; ovs-ofctl add-flow br0 "in_port=2 actions=learn(tun_metadata1[0..31]=reg0[0..31])"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:5989"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:5990: strip_xids < stderr | sed '/FLOW_MOD/,\$d'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:5990"
( $at_check_trace; strip_xids < stderr | sed '/FLOW_MOD/,$d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR: NXFMFC_INVALID_TLV_FIELD
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5990"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5994: ovs-ofctl add-flow br0 \"in_port=2 actions=learn(tun_metadata0[32..63]=reg0[0..31])\""
at_fn_check_prepare_trace "ofproto.at:5994"
( $at_check_trace; ovs-ofctl add-flow br0 "in_port=2 actions=learn(tun_metadata0[32..63]=reg0[0..31])"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:5994"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:5995: strip_xids < stderr | sed '/FLOW_MOD/,\$d'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:5995"
( $at_check_trace; strip_xids < stderr | sed '/FLOW_MOD/,$d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR: OFPBAC_BAD_SET_LEN
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:5995"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:5999: ovs-ofctl add-flow br0 \"in_port=2 actions=clone(move:tun_metadata1[0..31]->reg0[0..31])\""
at_fn_check_prepare_trace "ofproto.at:5999"
( $at_check_trace; ovs-ofctl add-flow br0 "in_port=2 actions=clone(move:tun_metadata1[0..31]->reg0[0..31])"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:5999"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:6000: strip_xids < stderr | sed '/FLOW_MOD/,\$d'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:6000"
( $at_check_trace; strip_xids < stderr | sed '/FLOW_MOD/,$d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR: NXFMFC_INVALID_TLV_FIELD
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6000"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:6004: ovs-ofctl add-flow br0 \"in_port=2 actions=clone(move:tun_metadata0[32..63]->reg0[0..31])\""
at_fn_check_prepare_trace "ofproto.at:6004"
( $at_check_trace; ovs-ofctl add-flow br0 "in_port=2 actions=clone(move:tun_metadata0[32..63]->reg0[0..31])"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:6004"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:6005: strip_xids < stderr | sed '/FLOW_MOD/,\$d'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:6005"
( $at_check_trace; strip_xids < stderr | sed '/FLOW_MOD/,$d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR: OFPBAC_BAD_SET_LEN
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6005"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:6009: ovs-ofctl add-flow br0 \"ip actions=ct(commit,zone=tun_metadata1[0..15],exec(set_field:0x01->ct_mark))\""
at_fn_check_prepare_trace "ofproto.at:6009"
( $at_check_trace; ovs-ofctl add-flow br0 "ip actions=ct(commit,zone=tun_metadata1[0..15],exec(set_field:0x01->ct_mark))"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:6009"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:6010: strip_xids < stderr | sed '/FLOW_MOD/,\$d'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:6010"
( $at_check_trace; strip_xids < stderr | sed '/FLOW_MOD/,$d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR: NXFMFC_INVALID_TLV_FIELD
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6010"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:6014: ovs-ofctl add-flow br0 \"ip actions=ct(commit,zone=tun_metadata0[32..47],exec(set_field:0x01->ct_mark))\""
at_fn_check_prepare_trace "ofproto.at:6014"
( $at_check_trace; ovs-ofctl add-flow br0 "ip actions=ct(commit,zone=tun_metadata0[32..47],exec(set_field:0x01->ct_mark))"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:6014"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:6015: strip_xids < stderr | sed '/FLOW_MOD/,\$d'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:6015"
( $at_check_trace; strip_xids < stderr | sed '/FLOW_MOD/,$d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR: OFPBAC_BAD_SET_LEN
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6015"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:6019: ovs-ofctl add-flow br0 \"ip actions=ct(commit,zone=1,exec(move:tun_metadata1[0..31]->ct_mark))\""
at_fn_check_prepare_trace "ofproto.at:6019"
( $at_check_trace; ovs-ofctl add-flow br0 "ip actions=ct(commit,zone=1,exec(move:tun_metadata1[0..31]->ct_mark))"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:6019"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:6020: strip_xids < stderr | sed '/FLOW_MOD/,\$d'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:6020"
( $at_check_trace; strip_xids < stderr | sed '/FLOW_MOD/,$d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR: NXFMFC_INVALID_TLV_FIELD
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6020"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:6024: ovs-ofctl add-flow br0 \"ip actions=ct(commit,zone=1,exec(move:tun_metadata0[32..63]->ct_mark))\""
at_fn_check_prepare_trace "ofproto.at:6024"
( $at_check_trace; ovs-ofctl add-flow br0 "ip actions=ct(commit,zone=1,exec(move:tun_metadata0[32..63]->ct_mark))"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:6024"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:6025: strip_xids < stderr | sed '/FLOW_MOD/,\$d'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:6025"
( $at_check_trace; strip_xids < stderr | sed '/FLOW_MOD/,$d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR: OFPBAC_BAD_SET_LEN
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6025"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:6030: ovs-ofctl add-flow br0 \"tun_metadata0=0x11223344 actions=output:2\""
at_fn_check_prepare_trace "ofproto.at:6030"
( $at_check_trace; ovs-ofctl add-flow br0 "tun_metadata0=0x11223344 actions=output:2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6030"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:6031: ovs-ofctl add-flow br0 \"tun_metadata1=0x11223344 actions=output:2\""
at_fn_check_prepare_trace "ofproto.at:6031"
( $at_check_trace; ovs-ofctl add-flow br0 "tun_metadata1=0x11223344 actions=output:2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto.at:6031"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto.at:6032: strip_xids < stderr | sed '/FLOW_MOD/,\$d'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:6032"
( $at_check_trace; strip_xids < stderr | sed '/FLOW_MOD/,$d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR: NXFMFC_INVALID_TLV_FIELD
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6032"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:6036: ovs-ofctl dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto.at:6036"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW reply:
 in_port=1 actions=move:NXM_NX_TUN_METADATA0[0..31]->NXM_NX_REG0[]
 tun_metadata0=0x11223344 actions=output:2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6036"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto.at:6042: check_logs \"/NXFMFC_INVALID_TLV_FIELD/d
/tun_metadata0/d
/OFPBAC_BAD_SET_LEN/d\""
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:6042"
( $at_check_trace; check_logs "/NXFMFC_INVALID_TLV_FIELD/d
/tun_metadata0/d
/OFPBAC_BAD_SET_LEN/d"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6042"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:6042: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:6042"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6042"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:6042: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:6042"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6042"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:6042: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:6042: wait failed" >&5

    $as_echo "ofproto.at:6042" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:6042"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:6042: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:6042"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6042"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:6042: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:6042"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6042"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:6042: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:6042: wait failed" >&5

    $as_echo "ofproto.at:6042" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:6042"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1002
#AT_START_1003
at_fn_group_banner 1003 'ofproto.at:6047' \
  "ofproto - flush flows, groups, and meters for controller change" "" 51
at_xfail=no
(
  $as_echo "1003. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto.at:6049: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto.at:6049"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6049"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:6049: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto.at:6049"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6049"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:6049: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:6049"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6049"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto.at:6049: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto.at:6049"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6049"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto.at:6049: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto.at:6049"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6049"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto.at:6049: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:6049"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6049"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto.at:6049: add_of_br 0  "
at_fn_check_prepare_trace "ofproto.at:6049"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6049"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



add_flow_group_and_meter () {
    { set +x
$as_echo "$at_srcdir/ofproto.at:6052: ovs-ofctl add-flow br0 in_port=1,actions=2"
at_fn_check_prepare_trace "ofproto.at:6052"
( $at_check_trace; ovs-ofctl add-flow br0 in_port=1,actions=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6052"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ofproto.at:6053: ovs-ofctl -O OpenFlow11 add-group br0 group_id=1234,type=all,bucket=output:10
    { set +x
\$as_echo \"\$at_srcdir/ofproto.at:6053: ovs-ofctl -O OpenFlow13 add-meter br0 'meter=1 pktps burst stats bands=type=drop rate=1 burst_size=1'\"
at_fn_check_prepare_trace \"ofproto.at:6053\"
( \$at_check_trace; ovs-ofctl -O OpenFlow13 add-meter br0 'meter=1 pktps burst stats bands=type=drop rate=1 burst_size=1'
) >>\"\$at_stdout\" 2>>\"\$at_stderr\" 5>&-
at_status=\$? at_failed=false
\$at_check_filter
at_fn_diff_devnull \"\$at_stderr\" || at_failed=:
at_fn_diff_devnull \"\$at_stdout\" || at_failed=:
at_fn_check_status 0 \$at_status \"\$at_srcdir/ofproto.at:6053\"
\$at_failed && at_fn_log_failure  \\
\"ovsdb-server.log\" \\
\"ovs-vswitchd.log\"
\$at_traceon; }

"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto.at:6053"
( $at_check_trace; ovs-ofctl -O OpenFlow11 add-group br0 group_id=1234,type=all,bucket=output:10
    { set +x
$as_echo "$at_srcdir/ofproto.at:6053: ovs-ofctl -O OpenFlow13 add-meter br0 'meter=1 pktps burst stats bands=type=drop rate=1 burst_size=1'"
at_fn_check_prepare_trace "ofproto.at:6053"
( $at_check_trace; ovs-ofctl -O OpenFlow13 add-meter br0 'meter=1 pktps burst stats bands=type=drop rate=1 burst_size=1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6053"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6053"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

}

verify_added () {
    { set +x
$as_echo "$at_srcdir/ofproto.at:6059: ovs-ofctl --no-stats dump-flows br0"
at_fn_check_prepare_trace "ofproto.at:6059"
( $at_check_trace; ovs-ofctl --no-stats dump-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " in_port=1 actions=output:2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6059"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ofproto.at:6062: ovs-ofctl -O OpenFlow11 dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:6062"
( $at_check_trace; ovs-ofctl -O OpenFlow11 dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.1) (xid=0x2):
 group_id=1234,type=all,bucket=actions=output:10
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6062"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ofproto.at:6066: ovs-ofctl -O OpenFlow13 dump-meters br0"
at_fn_check_prepare_trace "ofproto.at:6066"
( $at_check_trace; ovs-ofctl -O OpenFlow13 dump-meters br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_METER_CONFIG reply (OF1.3) (xid=0x2):
meter=1 pktps burst stats bands=
type=drop rate=1 burst_size=1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6066"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

}

verify_deleted () {
    { set +x
$as_echo "$at_srcdir/ofproto.at:6074: ovs-ofctl --no-stats dump-flows br0"
at_fn_check_prepare_trace "ofproto.at:6074"
( $at_check_trace; ovs-ofctl --no-stats dump-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6074"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ofproto.at:6075: ovs-ofctl -O OpenFlow11 dump-groups br0"
at_fn_check_prepare_trace "ofproto.at:6075"
( $at_check_trace; ovs-ofctl -O OpenFlow11 dump-groups br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_GROUP_DESC reply (OF1.1) (xid=0x2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6075"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ofproto.at:6078: ovs-ofctl -O OpenFlow13 dump-meters br0"
at_fn_check_prepare_trace "ofproto.at:6078"
( $at_check_trace; ovs-ofctl -O OpenFlow13 dump-meters br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_METER_CONFIG reply (OF1.3) (xid=0x2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6078"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

}

# Add flow, group, meter and check that they're there, without a controller.
add_flow_group_and_meter
verify_added

# Set up a controller and verify that the flow and group were deleted,
# then add them back.
{ set +x
$as_echo "$at_srcdir/ofproto.at:6089: ovs-vsctl set-controller br0 'tcp:<invalid>:6653'"
at_fn_check_prepare_trace "ofproto.at:6089"
( $at_check_trace; ovs-vsctl set-controller br0 'tcp:<invalid>:6653'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6089"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

verify_deleted
add_flow_group_and_meter
verify_added

# Change the controller and verify that the flow and group are still there.
{ set +x
$as_echo "$at_srcdir/ofproto.at:6095: ovs-vsctl set-controller br0 'tcp:<invalid2>:6653'"
at_fn_check_prepare_trace "ofproto.at:6095"
( $at_check_trace; ovs-vsctl set-controller br0 'tcp:<invalid2>:6653'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6095"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

verify_added

# Clear the controller and verify that the flow and group were deleted.
{ set +x
$as_echo "$at_srcdir/ofproto.at:6099: ovs-vsctl del-controller br0"
at_fn_check_prepare_trace "ofproto.at:6099"
( $at_check_trace; ovs-vsctl del-controller br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6099"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

verify_deleted

{ set +x
$as_echo "$at_srcdir/ofproto.at:6102: check_logs \"/<invalid/d\""
at_fn_check_prepare_trace "ofproto.at:6102"
( $at_check_trace; check_logs "/<invalid/d"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6102"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto.at:6102: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto.at:6102"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6102"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:6102: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto.at:6102"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6102"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:6102: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:6102: wait failed" >&5

    $as_echo "ofproto.at:6102" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:6102"
fi

   { set +x
$as_echo "$at_srcdir/ofproto.at:6102: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto.at:6102"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6102"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto.at:6102: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto.at:6102"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto.at:6102"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto.at:6102: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto.at:6102: wait failed" >&5

    $as_echo "ofproto.at:6102" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto.at:6102"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1003
#AT_START_1004
at_fn_group_banner 1004 'dpif-netdev.at:50' \
  "dpif-netdev - netdev-dummy/receive" "             " 52
at_xfail=no
(
  $as_echo "1004. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

# Create br0 with interfaces p0
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:52: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "dpif-netdev.at:52"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:52"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/dpif-netdev.at:52: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "dpif-netdev.at:52"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:52"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:52: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "dpif-netdev.at:52"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:52"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/dpif-netdev.at:52: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "dpif-netdev.at:52"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:52"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/dpif-netdev.at:52: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "dpif-netdev.at:52"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:52"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:52: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "dpif-netdev.at:52"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:52"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:52: add_of_br 0 add-port br0 p1 -- set interface p1 type=dummy ofport_request=1 --  "
at_fn_check_prepare_trace "dpif-netdev.at:52"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set interface p1 type=dummy ofport_request=1 --
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:52"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:53: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "dpif-netdev.at:53"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:53"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:55: ovs-ofctl add-flow br0 action=normal"
at_fn_check_prepare_trace "dpif-netdev.at:55"
( $at_check_trace; ovs-ofctl add-flow br0 action=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:55"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/stop
ovs-appctl time/warp 5000
{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:58: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:01,dst=50:54:00:00:02:00),eth_type(0x0800),ipv4(src=10.0.0.1,dst=10.0.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9),tcp_flags(ack)'"
at_fn_check_prepare_trace "dpif-netdev.at:58"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:01,dst=50:54:00:00:02:00),eth_type(0x0800),ipv4(src=10.0.0.1,dst=10.0.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9),tcp_flags(ack)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:58"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:59: grep -A 1 'miss upcall' ovs-vswitchd.log | tail -n 1"
at_fn_check_prepare_notrace 'a shell pipeline' "dpif-netdev.at:59"
( $at_check_trace; grep -A 1 'miss upcall' ovs-vswitchd.log | tail -n 1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "skb_priority(0),skb_mark(0),ct_state(0),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:01,dst=50:54:00:00:02:00),eth_type(0x0800),ipv4(src=10.0.0.1,dst=10.0.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9),tcp_flags(ack)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:59"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:63: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:06:00),eth_type(0x0800),ipv4(src=10.0.0.5,dst=10.0.0.6,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9),tcp_flags(ack)' --len 1024"
at_fn_check_prepare_trace "dpif-netdev.at:63"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:06:00),eth_type(0x0800),ipv4(src=10.0.0.5,dst=10.0.0.6,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9),tcp_flags(ack)' --len 1024
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:63"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:64: grep -A 1 'miss upcall' ovs-vswitchd.log | tail -n 1"
at_fn_check_prepare_notrace 'a shell pipeline' "dpif-netdev.at:64"
( $at_check_trace; grep -A 1 'miss upcall' ovs-vswitchd.log | tail -n 1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "skb_priority(0),skb_mark(0),ct_state(0),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:05,dst=50:54:00:00:06:00),eth_type(0x0800),ipv4(src=10.0.0.5,dst=10.0.0.6,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9),tcp_flags(ack)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:64"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:67: check_logs "
at_fn_check_prepare_trace "dpif-netdev.at:67"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:67"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:67: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "dpif-netdev.at:67"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:67"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:67: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "dpif-netdev.at:67"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:67"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "dpif-netdev.at:67: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "dpif-netdev.at:67: wait failed" >&5

    $as_echo "dpif-netdev.at:67" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/dpif-netdev.at:67"
fi

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:67: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "dpif-netdev.at:67"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:67"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:67: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "dpif-netdev.at:67"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:67"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "dpif-netdev.at:67: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "dpif-netdev.at:67: wait failed" >&5

    $as_echo "dpif-netdev.at:67" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/dpif-netdev.at:67"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1004
#AT_START_1005
at_fn_group_banner 1005 'dpif-netdev.at:107' \
  "dpif-netdev - dummy interface" "                  " 52
at_xfail=no
(
  $as_echo "1005. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   # Create br0 with interfaces p1 and p7
   #    and br1 with interfaces p2 and p8
   # with p1 and p2 connected via unix domain socket
      touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:107: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "dpif-netdev.at:107"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:107"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/dpif-netdev.at:107: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "dpif-netdev.at:107"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:107"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:107: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "dpif-netdev.at:107"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:107"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/dpif-netdev.at:107: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "dpif-netdev.at:107"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/dpif-netdev.at:107: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "dpif-netdev.at:107"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:107: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "dpif-netdev.at:107"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:107: add_of_br 0 add-port br0 p1 -- set interface p1 type=dummy options:pstream=punix:\$OVS_RUNDIR/p0.sock ofport_request=1 -- \\
      add-port br0 p7 -- set interface p7 ofport_request=7 type=dummy -- \\
      add-br br1 -- \\
      set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \\
      set bridge br1 datapath-type=dummy other-config:datapath-id=1234 \\
                     fail-mode=secure -- \\
      add-port br1 p2 -- set interface p2 type=dummy options:stream=unix:\$OVS_RUNDIR/p0.sock ofport_request=2 -- \\
      add-port br1 p8 -- set interface p8 ofport_request=8 type=dummy -- "
at_fn_check_prepare_notrace 'an embedded newline' "dpif-netdev.at:107"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set interface p1 type=dummy options:pstream=punix:$OVS_RUNDIR/p0.sock ofport_request=1 -- \
      add-port br0 p7 -- set interface p7 ofport_request=7 type=dummy -- \
      add-br br1 -- \
      set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \
      set bridge br1 datapath-type=dummy other-config:datapath-id=1234 \
                     fail-mode=secure -- \
      add-port br1 p2 -- set interface p2 type=dummy options:stream=unix:$OVS_RUNDIR/p0.sock ofport_request=2 -- \
      add-port br1 p8 -- set interface p8 ofport_request=8 type=dummy --
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:107: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "dpif-netdev.at:107"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:107: ovs-ofctl add-flow br0 action=normal"
at_fn_check_prepare_trace "dpif-netdev.at:107"
( $at_check_trace; ovs-ofctl add-flow br0 action=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:107: ovs-ofctl add-flow br1 action=normal"
at_fn_check_prepare_trace "dpif-netdev.at:107"
( $at_check_trace; ovs-ofctl add-flow br1 action=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   ovs-appctl time/stop
   ovs-appctl time/warp 5000
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:107: ovs-appctl netdev-dummy/receive p7 'in_port(7),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "dpif-netdev.at:107"
( $at_check_trace; ovs-appctl netdev-dummy/receive p7 'in_port(7),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:107: ovs-appctl netdev-dummy/receive p8 'in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "dpif-netdev.at:107"
( $at_check_trace; ovs-appctl netdev-dummy/receive p8 'in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   ovs-appctl time/warp 100
   sleep 1  # wait for forwarders process packets

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:107: filter_flow_install < ovs-vswitchd.log | strip_xout"
at_fn_check_prepare_notrace 'a shell pipeline' "dpif-netdev.at:107"
( $at_check_trace; filter_flow_install < ovs-vswitchd.log | strip_xout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(frag=no), actions: <del>
recirc_id(0),in_port(2),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(frag=no), actions: <del>
recirc_id(0),in_port(7),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(frag=no), actions: <del>
recirc_id(0),in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(frag=no), actions: <del>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:107: check_logs "
at_fn_check_prepare_trace "dpif-netdev.at:107"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:107: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "dpif-netdev.at:107"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:107: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "dpif-netdev.at:107"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "dpif-netdev.at:107: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "dpif-netdev.at:107: wait failed" >&5

    $as_echo "dpif-netdev.at:107" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/dpif-netdev.at:107"
fi

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:107: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "dpif-netdev.at:107"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:107: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "dpif-netdev.at:107"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "dpif-netdev.at:107: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "dpif-netdev.at:107: wait failed" >&5

    $as_echo "dpif-netdev.at:107" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/dpif-netdev.at:107"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1005
#AT_START_1006
at_fn_group_banner 1006 'dpif-netdev.at:108' \
  "dpif-netdev - dummy-pmd interface" "              " 52
at_xfail=no
(
  $as_echo "1006. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   # Create br0 with interfaces p1 and p7
   #    and br1 with interfaces p2 and p8
   # with p1 and p2 connected via unix domain socket
      touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:108: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "dpif-netdev.at:108"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:108"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/dpif-netdev.at:108: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "dpif-netdev.at:108"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:108"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:108: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "dpif-netdev.at:108"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:108"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/dpif-netdev.at:108: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "dpif-netdev.at:108"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:108"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/dpif-netdev.at:108: ovs-vswitchd --enable-dummy --disable-system --dummy-numa=\"0,0,0,0,1,1,1,1\" --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "dpif-netdev.at:108"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system --dummy-numa="0,0,0,0,1,1,1,1" --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:108"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:108: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "dpif-netdev.at:108"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:108"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:108: add_of_br 0 add-port br0 p1 -- set interface p1 type=dummy-pmd options:pstream=punix:\$OVS_RUNDIR/p0.sock ofport_request=1 -- \\
      add-port br0 p7 -- set interface p7 ofport_request=7 type=dummy-pmd -- \\
      add-br br1 -- \\
      set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \\
      set bridge br1 datapath-type=dummy other-config:datapath-id=1234 \\
                     fail-mode=secure -- \\
      add-port br1 p2 -- set interface p2 type=dummy-pmd options:stream=unix:\$OVS_RUNDIR/p0.sock ofport_request=2 -- \\
      add-port br1 p8 -- set interface p8 ofport_request=8 type=dummy-pmd -- "
at_fn_check_prepare_notrace 'an embedded newline' "dpif-netdev.at:108"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set interface p1 type=dummy-pmd options:pstream=punix:$OVS_RUNDIR/p0.sock ofport_request=1 -- \
      add-port br0 p7 -- set interface p7 ofport_request=7 type=dummy-pmd -- \
      add-br br1 -- \
      set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \
      set bridge br1 datapath-type=dummy other-config:datapath-id=1234 \
                     fail-mode=secure -- \
      add-port br1 p2 -- set interface p2 type=dummy-pmd options:stream=unix:$OVS_RUNDIR/p0.sock ofport_request=2 -- \
      add-port br1 p8 -- set interface p8 ofport_request=8 type=dummy-pmd --
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:108"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:108: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "dpif-netdev.at:108"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:108"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:108: ovs-ofctl add-flow br0 action=normal"
at_fn_check_prepare_trace "dpif-netdev.at:108"
( $at_check_trace; ovs-ofctl add-flow br0 action=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:108"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:108: ovs-ofctl add-flow br1 action=normal"
at_fn_check_prepare_trace "dpif-netdev.at:108"
( $at_check_trace; ovs-ofctl add-flow br1 action=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:108"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   ovs-appctl time/stop
   ovs-appctl time/warp 5000
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:108: ovs-appctl netdev-dummy/receive p7 'in_port(7),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "dpif-netdev.at:108"
( $at_check_trace; ovs-appctl netdev-dummy/receive p7 'in_port(7),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:108"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:108: ovs-appctl netdev-dummy/receive p8 'in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "dpif-netdev.at:108"
( $at_check_trace; ovs-appctl netdev-dummy/receive p8 'in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:108"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   ovs-appctl time/warp 100
   sleep 1  # wait for forwarders process packets

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:108: filter_flow_install < ovs-vswitchd.log | strip_xout"
at_fn_check_prepare_notrace 'a shell pipeline' "dpif-netdev.at:108"
( $at_check_trace; filter_flow_install < ovs-vswitchd.log | strip_xout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(frag=no), actions: <del>
recirc_id(0),in_port(2),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(frag=no), actions: <del>
recirc_id(0),in_port(7),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(frag=no), actions: <del>
recirc_id(0),in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(frag=no), actions: <del>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:108"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:108: check_logs "
at_fn_check_prepare_trace "dpif-netdev.at:108"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:108"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:108: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "dpif-netdev.at:108"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:108"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:108: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "dpif-netdev.at:108"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:108"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "dpif-netdev.at:108: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "dpif-netdev.at:108: wait failed" >&5

    $as_echo "dpif-netdev.at:108" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/dpif-netdev.at:108"
fi

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:108: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "dpif-netdev.at:108"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:108"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:108: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "dpif-netdev.at:108"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:108"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "dpif-netdev.at:108: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "dpif-netdev.at:108: wait failed" >&5

    $as_echo "dpif-netdev.at:108" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/dpif-netdev.at:108"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1006
#AT_START_1007
at_fn_group_banner 1007 'dpif-netdev.at:147' \
  "dpif-netdev - miss upcall key matches flow_install - dummy" "" 52
at_xfail=no
(
  $as_echo "1007. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

      touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:147: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "dpif-netdev.at:147"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:147"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/dpif-netdev.at:147: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "dpif-netdev.at:147"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:147"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:147: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "dpif-netdev.at:147"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:147"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/dpif-netdev.at:147: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "dpif-netdev.at:147"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:147"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/dpif-netdev.at:147: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "dpif-netdev.at:147"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:147"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:147: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "dpif-netdev.at:147"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:147"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:147: add_of_br 0 add-port br0 p1 -- set interface p1 type=dummy options:pstream=punix:\$OVS_RUNDIR/p0.sock
      set bridge br0 datapath-type=dummy other-config:datapath-id=1234 fail-mode=secure "
at_fn_check_prepare_notrace 'an embedded newline' "dpif-netdev.at:147"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set interface p1 type=dummy options:pstream=punix:$OVS_RUNDIR/p0.sock
      set bridge br0 datapath-type=dummy other-config:datapath-id=1234 fail-mode=secure
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:147"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:147: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "dpif-netdev.at:147"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:147"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:147: ovs-ofctl add-flow br0 action=normal"
at_fn_check_prepare_trace "dpif-netdev.at:147"
( $at_check_trace; ovs-ofctl add-flow br0 action=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:147"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:147: ovs-appctl netdev-dummy/receive p1 'in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "dpif-netdev.at:147"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:147"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   ovs-appctl ofproto/trace 'in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
   sleep 1

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:147: grep -A 1 'miss upcall' ovs-vswitchd.log | tail -n 1"
at_fn_check_prepare_notrace 'a shell pipeline' "dpif-netdev.at:147"
( $at_check_trace; grep -A 1 'miss upcall' ovs-vswitchd.log | tail -n 1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "skb_priority(0),skb_mark(0),ct_state(0),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:147"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:147: filter_flow_install < ovs-vswitchd.log | strip_xout"
at_fn_check_prepare_notrace 'a shell pipeline' "dpif-netdev.at:147"
( $at_check_trace; filter_flow_install < ovs-vswitchd.log | strip_xout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(frag=no), actions: <del>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:147"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   # Now, the same again without megaflows.
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:147: ovs-appctl upcall/disable-megaflows"
at_fn_check_prepare_trace "dpif-netdev.at:147"
( $at_check_trace; ovs-appctl upcall/disable-megaflows
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "megaflows disabled
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:147"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:147: ovs-appctl netdev-dummy/receive p1 'in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "dpif-netdev.at:147"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:147"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   sleep 1

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:147: grep -A 1 'miss upcall' ovs-vswitchd.log | tail -n 1"
at_fn_check_prepare_notrace 'a shell pipeline' "dpif-netdev.at:147"
( $at_check_trace; grep -A 1 'miss upcall' ovs-vswitchd.log | tail -n 1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "skb_priority(0),skb_mark(0),ct_state(0),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:147"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:147: filter_flow_install < ovs-vswitchd.log | strip_xout"
at_fn_check_prepare_notrace 'a shell pipeline' "dpif-netdev.at:147"
( $at_check_trace; filter_flow_install < ovs-vswitchd.log | strip_xout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(frag=no), actions: <del>
skb_priority(0),skb_mark(0),ct_state(-new-est-rel-rpl-inv-trk-snat-dnat),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0), actions: <del>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:147"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:147: check_logs "
at_fn_check_prepare_trace "dpif-netdev.at:147"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:147"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:147: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "dpif-netdev.at:147"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:147"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:147: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "dpif-netdev.at:147"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:147"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "dpif-netdev.at:147: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "dpif-netdev.at:147: wait failed" >&5

    $as_echo "dpif-netdev.at:147" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/dpif-netdev.at:147"
fi

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:147: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "dpif-netdev.at:147"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:147"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:147: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "dpif-netdev.at:147"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:147"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "dpif-netdev.at:147: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "dpif-netdev.at:147: wait failed" >&5

    $as_echo "dpif-netdev.at:147" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/dpif-netdev.at:147"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1007
#AT_START_1008
at_fn_group_banner 1008 'dpif-netdev.at:148' \
  "dpif-netdev - miss upcall key matches flow_install - dummy-pmd" "" 52
at_xfail=no
(
  $as_echo "1008. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

      touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:148: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "dpif-netdev.at:148"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:148"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/dpif-netdev.at:148: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "dpif-netdev.at:148"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:148"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:148: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "dpif-netdev.at:148"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:148"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/dpif-netdev.at:148: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "dpif-netdev.at:148"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:148"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/dpif-netdev.at:148: ovs-vswitchd --enable-dummy --disable-system --dummy-numa=\"0,0,0,0,1,1,1,1\" --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "dpif-netdev.at:148"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system --dummy-numa="0,0,0,0,1,1,1,1" --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:148"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:148: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "dpif-netdev.at:148"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:148"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:148: add_of_br 0 add-port br0 p1 -- set interface p1 type=dummy-pmd options:pstream=punix:\$OVS_RUNDIR/p0.sock
      set bridge br0 datapath-type=dummy other-config:datapath-id=1234 fail-mode=secure "
at_fn_check_prepare_notrace 'an embedded newline' "dpif-netdev.at:148"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set interface p1 type=dummy-pmd options:pstream=punix:$OVS_RUNDIR/p0.sock
      set bridge br0 datapath-type=dummy other-config:datapath-id=1234 fail-mode=secure
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:148"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:148: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "dpif-netdev.at:148"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:148"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:148: ovs-ofctl add-flow br0 action=normal"
at_fn_check_prepare_trace "dpif-netdev.at:148"
( $at_check_trace; ovs-ofctl add-flow br0 action=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:148"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:148: ovs-appctl netdev-dummy/receive p1 'in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "dpif-netdev.at:148"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:148"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   ovs-appctl ofproto/trace 'in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
   sleep 1

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:148: grep -A 1 'miss upcall' ovs-vswitchd.log | tail -n 1"
at_fn_check_prepare_notrace 'a shell pipeline' "dpif-netdev.at:148"
( $at_check_trace; grep -A 1 'miss upcall' ovs-vswitchd.log | tail -n 1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "skb_priority(0),skb_mark(0),ct_state(0),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:148"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:148: filter_flow_install < ovs-vswitchd.log | strip_xout"
at_fn_check_prepare_notrace 'a shell pipeline' "dpif-netdev.at:148"
( $at_check_trace; filter_flow_install < ovs-vswitchd.log | strip_xout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(frag=no), actions: <del>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:148"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   # Now, the same again without megaflows.
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:148: ovs-appctl upcall/disable-megaflows"
at_fn_check_prepare_trace "dpif-netdev.at:148"
( $at_check_trace; ovs-appctl upcall/disable-megaflows
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "megaflows disabled
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:148"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:148: ovs-appctl netdev-dummy/receive p1 'in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "dpif-netdev.at:148"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:148"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   sleep 1

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:148: grep -A 1 'miss upcall' ovs-vswitchd.log | tail -n 1"
at_fn_check_prepare_notrace 'a shell pipeline' "dpif-netdev.at:148"
( $at_check_trace; grep -A 1 'miss upcall' ovs-vswitchd.log | tail -n 1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "skb_priority(0),skb_mark(0),ct_state(0),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:148"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:148: filter_flow_install < ovs-vswitchd.log | strip_xout"
at_fn_check_prepare_notrace 'a shell pipeline' "dpif-netdev.at:148"
( $at_check_trace; filter_flow_install < ovs-vswitchd.log | strip_xout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(frag=no), actions: <del>
skb_priority(0),skb_mark(0),ct_state(-new-est-rel-rpl-inv-trk-snat-dnat),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0), actions: <del>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:148"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:148: check_logs "
at_fn_check_prepare_trace "dpif-netdev.at:148"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:148"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:148: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "dpif-netdev.at:148"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:148"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:148: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "dpif-netdev.at:148"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:148"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "dpif-netdev.at:148: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "dpif-netdev.at:148: wait failed" >&5

    $as_echo "dpif-netdev.at:148" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/dpif-netdev.at:148"
fi

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:148: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "dpif-netdev.at:148"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:148"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:148: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "dpif-netdev.at:148"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:148"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "dpif-netdev.at:148: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "dpif-netdev.at:148: wait failed" >&5

    $as_echo "dpif-netdev.at:148" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/dpif-netdev.at:148"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1008
#AT_START_1009
at_fn_group_banner 1009 'dpif-netdev.at:190' \
  "dpif-netdev - miss upcall key matches flow_dump - dummy" "" 52
at_xfail=no
(
  $as_echo "1009. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

      touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:190: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "dpif-netdev.at:190"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:190"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/dpif-netdev.at:190: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "dpif-netdev.at:190"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:190"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:190: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "dpif-netdev.at:190"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:190"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/dpif-netdev.at:190: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "dpif-netdev.at:190"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:190"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/dpif-netdev.at:190: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "dpif-netdev.at:190"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:190"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:190: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "dpif-netdev.at:190"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:190"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:190: add_of_br 0 add-port br0 p1 -- set interface p1 type=dummy options:pstream=punix:\$OVS_RUNDIR/p0.sock
      set bridge br0 datapath-type=dummy other-config:datapath-id=1234 fail-mode=secure "
at_fn_check_prepare_notrace 'an embedded newline' "dpif-netdev.at:190"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set interface p1 type=dummy options:pstream=punix:$OVS_RUNDIR/p0.sock
      set bridge br0 datapath-type=dummy other-config:datapath-id=1234 fail-mode=secure
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:190"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:190: ovs-appctl upcall/disable-ufid"
at_fn_check_prepare_trace "dpif-netdev.at:190"
( $at_check_trace; ovs-appctl upcall/disable-ufid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath dumping tersely using UFID disabled
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:190"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:190: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "dpif-netdev.at:190"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:190"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:190: ovs-ofctl add-flow br0 action=normal"
at_fn_check_prepare_trace "dpif-netdev.at:190"
( $at_check_trace; ovs-ofctl add-flow br0 action=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:190"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:190: ovs-appctl netdev-dummy/receive p1 'in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "dpif-netdev.at:190"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:190"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   sleep 1

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:190: grep -A 1 'miss upcall' ovs-vswitchd.log | tail -n 1"
at_fn_check_prepare_notrace 'a shell pipeline' "dpif-netdev.at:190"
( $at_check_trace; grep -A 1 'miss upcall' ovs-vswitchd.log | tail -n 1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "skb_priority(0),skb_mark(0),ct_state(0),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:190"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:190: filter_flow_dump < ovs-vswitchd.log | strip_xout"
at_fn_check_prepare_notrace 'a shell pipeline' "dpif-netdev.at:190"
( $at_check_trace; filter_flow_dump < ovs-vswitchd.log | strip_xout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2/0.0.0.0,dst=10.0.0.1/0.0.0.0,proto=1/0,tos=0/0,ttl=64/0,frag=no),icmp(type=8/0,code=0/0), packets:0, bytes:0, used:never, actions: <del>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:190"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   # Now, the same again without megaflows.
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:190: ovs-appctl upcall/disable-megaflows"
at_fn_check_prepare_trace "dpif-netdev.at:190"
( $at_check_trace; ovs-appctl upcall/disable-megaflows
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "megaflows disabled
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:190"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:190: ovs-appctl upcall/disable-ufid"
at_fn_check_prepare_trace "dpif-netdev.at:190"
( $at_check_trace; ovs-appctl upcall/disable-ufid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath dumping tersely using UFID disabled
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:190"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:190: ovs-appctl netdev-dummy/receive p1 'in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "dpif-netdev.at:190"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:190"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   sleep 1

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:190: grep -A 1 'miss upcall' ovs-vswitchd.log | tail -n 1"
at_fn_check_prepare_notrace 'a shell pipeline' "dpif-netdev.at:190"
( $at_check_trace; grep -A 1 'miss upcall' ovs-vswitchd.log | tail -n 1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "skb_priority(0),skb_mark(0),ct_state(0),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:190"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:190: filter_flow_dump < ovs-vswitchd.log | strip_xout"
at_fn_check_prepare_notrace 'a shell pipeline' "dpif-netdev.at:190"
( $at_check_trace; filter_flow_dump < ovs-vswitchd.log | strip_xout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "skb_priority(0),skb_mark(0),ct_state(0/0xff),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0), packets:0, bytes:0, used:never, actions: <del>
skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2/0.0.0.0,dst=10.0.0.1/0.0.0.0,proto=1/0,tos=0/0,ttl=64/0,frag=no),icmp(type=8/0,code=0/0), packets:0, bytes:0, used:never, actions: <del>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:190"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:190: check_logs "
at_fn_check_prepare_trace "dpif-netdev.at:190"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:190"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:190: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "dpif-netdev.at:190"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:190"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:190: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "dpif-netdev.at:190"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:190"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "dpif-netdev.at:190: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "dpif-netdev.at:190: wait failed" >&5

    $as_echo "dpif-netdev.at:190" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/dpif-netdev.at:190"
fi

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:190: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "dpif-netdev.at:190"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:190"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:190: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "dpif-netdev.at:190"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:190"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "dpif-netdev.at:190: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "dpif-netdev.at:190: wait failed" >&5

    $as_echo "dpif-netdev.at:190" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/dpif-netdev.at:190"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1009
#AT_START_1010
at_fn_group_banner 1010 'dpif-netdev.at:191' \
  "dpif-netdev - miss upcall key matches flow_dump - dummy-pmd" "" 52
at_xfail=no
(
  $as_echo "1010. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

      touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:191: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "dpif-netdev.at:191"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:191"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/dpif-netdev.at:191: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "dpif-netdev.at:191"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:191"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:191: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "dpif-netdev.at:191"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:191"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/dpif-netdev.at:191: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "dpif-netdev.at:191"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/dpif-netdev.at:191: ovs-vswitchd --enable-dummy --disable-system --dummy-numa=\"0,0,0,0,1,1,1,1\" --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "dpif-netdev.at:191"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system --dummy-numa="0,0,0,0,1,1,1,1" --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:191: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "dpif-netdev.at:191"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:191: add_of_br 0 add-port br0 p1 -- set interface p1 type=dummy-pmd options:pstream=punix:\$OVS_RUNDIR/p0.sock
      set bridge br0 datapath-type=dummy other-config:datapath-id=1234 fail-mode=secure "
at_fn_check_prepare_notrace 'an embedded newline' "dpif-netdev.at:191"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set interface p1 type=dummy-pmd options:pstream=punix:$OVS_RUNDIR/p0.sock
      set bridge br0 datapath-type=dummy other-config:datapath-id=1234 fail-mode=secure
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:191: ovs-appctl upcall/disable-ufid"
at_fn_check_prepare_trace "dpif-netdev.at:191"
( $at_check_trace; ovs-appctl upcall/disable-ufid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath dumping tersely using UFID disabled
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:191: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "dpif-netdev.at:191"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:191: ovs-ofctl add-flow br0 action=normal"
at_fn_check_prepare_trace "dpif-netdev.at:191"
( $at_check_trace; ovs-ofctl add-flow br0 action=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:191: ovs-appctl netdev-dummy/receive p1 'in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "dpif-netdev.at:191"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   sleep 1

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:191: grep -A 1 'miss upcall' ovs-vswitchd.log | tail -n 1"
at_fn_check_prepare_notrace 'a shell pipeline' "dpif-netdev.at:191"
( $at_check_trace; grep -A 1 'miss upcall' ovs-vswitchd.log | tail -n 1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "skb_priority(0),skb_mark(0),ct_state(0),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:191: filter_flow_dump < ovs-vswitchd.log | strip_xout"
at_fn_check_prepare_notrace 'a shell pipeline' "dpif-netdev.at:191"
( $at_check_trace; filter_flow_dump < ovs-vswitchd.log | strip_xout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2/0.0.0.0,dst=10.0.0.1/0.0.0.0,proto=1/0,tos=0/0,ttl=64/0,frag=no),icmp(type=8/0,code=0/0), packets:0, bytes:0, used:never, actions: <del>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   # Now, the same again without megaflows.
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:191: ovs-appctl upcall/disable-megaflows"
at_fn_check_prepare_trace "dpif-netdev.at:191"
( $at_check_trace; ovs-appctl upcall/disable-megaflows
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "megaflows disabled
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:191: ovs-appctl upcall/disable-ufid"
at_fn_check_prepare_trace "dpif-netdev.at:191"
( $at_check_trace; ovs-appctl upcall/disable-ufid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath dumping tersely using UFID disabled
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:191: ovs-appctl netdev-dummy/receive p1 'in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "dpif-netdev.at:191"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   sleep 1

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:191: grep -A 1 'miss upcall' ovs-vswitchd.log | tail -n 1"
at_fn_check_prepare_notrace 'a shell pipeline' "dpif-netdev.at:191"
( $at_check_trace; grep -A 1 'miss upcall' ovs-vswitchd.log | tail -n 1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "skb_priority(0),skb_mark(0),ct_state(0),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:191: filter_flow_dump < ovs-vswitchd.log | strip_xout"
at_fn_check_prepare_notrace 'a shell pipeline' "dpif-netdev.at:191"
( $at_check_trace; filter_flow_dump < ovs-vswitchd.log | strip_xout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "skb_priority(0),skb_mark(0),ct_state(0/0xff),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0), packets:0, bytes:0, used:never, actions: <del>
skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2/0.0.0.0,dst=10.0.0.1/0.0.0.0,proto=1/0,tos=0/0,ttl=64/0,frag=no),icmp(type=8/0,code=0/0), packets:0, bytes:0, used:never, actions: <del>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:191: check_logs "
at_fn_check_prepare_trace "dpif-netdev.at:191"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:191: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "dpif-netdev.at:191"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:191: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "dpif-netdev.at:191"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "dpif-netdev.at:191: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "dpif-netdev.at:191: wait failed" >&5

    $as_echo "dpif-netdev.at:191" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/dpif-netdev.at:191"
fi

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:191: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "dpif-netdev.at:191"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:191: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "dpif-netdev.at:191"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "dpif-netdev.at:191: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "dpif-netdev.at:191: wait failed" >&5

    $as_echo "dpif-netdev.at:191" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/dpif-netdev.at:191"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1010
#AT_START_1011
at_fn_group_banner 1011 'dpif-netdev.at:193' \
  "dpif-netdev - meters" "                           " 52
at_xfail=no
(
  $as_echo "1011. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

# Create br0 with interfaces p1 and p7
#    and br1 with interfaces p2 and p8
# with p1 and p2 connected via unix domain socket
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:197: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "dpif-netdev.at:197"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:197"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/dpif-netdev.at:197: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "dpif-netdev.at:197"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:197"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:197: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "dpif-netdev.at:197"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:197"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/dpif-netdev.at:197: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "dpif-netdev.at:197"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:197"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/dpif-netdev.at:197: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "dpif-netdev.at:197"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:197"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:197: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "dpif-netdev.at:197"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:197"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:197: add_of_br 0 add-port br0 p1 -- set interface p1 type=dummy options:pstream=punix:\$OVS_RUNDIR/p0.sock ofport_request=1 -- \\
   add-port br0 p7 -- set interface p7 ofport_request=7 type=dummy -- \\
   add-br br1 -- \\
   set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \\
   set bridge br1 datapath-type=dummy other-config:datapath-id=1234 \\
                  fail-mode=secure -- \\
   add-port br1 p2 -- set interface p2 type=dummy options:stream=unix:\$OVS_RUNDIR/p0.sock ofport_request=2 -- \\
   add-port br1 p8 -- set interface p8 ofport_request=8 type=dummy -- "
at_fn_check_prepare_notrace 'an embedded newline' "dpif-netdev.at:197"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set interface p1 type=dummy options:pstream=punix:$OVS_RUNDIR/p0.sock ofport_request=1 -- \
   add-port br0 p7 -- set interface p7 ofport_request=7 type=dummy -- \
   add-br br1 -- \
   set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \
   set bridge br1 datapath-type=dummy other-config:datapath-id=1234 \
                  fail-mode=secure -- \
   add-port br1 p2 -- set interface p2 type=dummy options:stream=unix:$OVS_RUNDIR/p0.sock ofport_request=2 -- \
   add-port br1 p8 -- set interface p8 ofport_request=8 type=dummy --
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:197"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:206: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "dpif-netdev.at:206"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:206"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:208: ovs-ofctl -O OpenFlow13 add-meter br0 'meter=1 pktps burst stats bands=type=drop rate=1 burst_size=1'"
at_fn_check_prepare_trace "dpif-netdev.at:208"
( $at_check_trace; ovs-ofctl -O OpenFlow13 add-meter br0 'meter=1 pktps burst stats bands=type=drop rate=1 burst_size=1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:208"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:209: ovs-ofctl -O OpenFlow13 add-meter br0 'meter=2 kbps burst stats bands=type=drop rate=1 burst_size=2'"
at_fn_check_prepare_trace "dpif-netdev.at:209"
( $at_check_trace; ovs-ofctl -O OpenFlow13 add-meter br0 'meter=2 kbps burst stats bands=type=drop rate=1 burst_size=2'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:209"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:210: ovs-ofctl -O OpenFlow13 add-flow br0 'in_port=1 action=meter:1,7'"
at_fn_check_prepare_trace "dpif-netdev.at:210"
( $at_check_trace; ovs-ofctl -O OpenFlow13 add-flow br0 'in_port=1 action=meter:1,7'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:210"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:211: ovs-ofctl -O OpenFlow13 add-flow br0 'in_port=7 action=meter:2,1'"
at_fn_check_prepare_trace "dpif-netdev.at:211"
( $at_check_trace; ovs-ofctl -O OpenFlow13 add-flow br0 'in_port=7 action=meter:2,1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:211"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:212: ovs-ofctl add-flow br1 'in_port=2 action=8'"
at_fn_check_prepare_trace "dpif-netdev.at:212"
( $at_check_trace; ovs-ofctl add-flow br1 'in_port=2 action=8'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:212"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:213: ovs-ofctl add-flow br1 'in_port=8 action=2'"
at_fn_check_prepare_trace "dpif-netdev.at:213"
( $at_check_trace; ovs-ofctl add-flow br1 'in_port=8 action=2'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:213"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/stop

{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:216: ovs-ofctl -O OpenFlow13 dump-meters br0"
at_fn_check_prepare_trace "dpif-netdev.at:216"
( $at_check_trace; ovs-ofctl -O OpenFlow13 dump-meters br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_METER_CONFIG reply (OF1.3) (xid=0x2):
meter=1 pktps burst stats bands=
type=drop rate=1 burst_size=1

meter=2 kbps burst stats bands=
type=drop rate=1 burst_size=2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:216"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 5000
{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:226: ovs-appctl netdev-dummy/receive p7 'in_port(7),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60"
at_fn_check_prepare_trace "dpif-netdev.at:226"
( $at_check_trace; ovs-appctl netdev-dummy/receive p7 'in_port(7),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:226"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:227: ovs-appctl netdev-dummy/receive p7 'in_port(7),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60"
at_fn_check_prepare_trace "dpif-netdev.at:227"
( $at_check_trace; ovs-appctl netdev-dummy/receive p7 'in_port(7),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:227"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:228: ovs-appctl netdev-dummy/receive p7 'in_port(7),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60"
at_fn_check_prepare_trace "dpif-netdev.at:228"
( $at_check_trace; ovs-appctl netdev-dummy/receive p7 'in_port(7),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:228"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:229: ovs-appctl netdev-dummy/receive p7 'in_port(7),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60"
at_fn_check_prepare_trace "dpif-netdev.at:229"
( $at_check_trace; ovs-appctl netdev-dummy/receive p7 'in_port(7),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:229"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:230: ovs-appctl netdev-dummy/receive p7 'in_port(7),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60"
at_fn_check_prepare_trace "dpif-netdev.at:230"
( $at_check_trace; ovs-appctl netdev-dummy/receive p7 'in_port(7),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:230"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:231: ovs-appctl netdev-dummy/receive p8 'in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60"
at_fn_check_prepare_trace "dpif-netdev.at:231"
( $at_check_trace; ovs-appctl netdev-dummy/receive p8 'in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:231"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:232: ovs-appctl netdev-dummy/receive p8 'in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60"
at_fn_check_prepare_trace "dpif-netdev.at:232"
( $at_check_trace; ovs-appctl netdev-dummy/receive p8 'in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:232"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:233: ovs-appctl netdev-dummy/receive p8 'in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60"
at_fn_check_prepare_trace "dpif-netdev.at:233"
( $at_check_trace; ovs-appctl netdev-dummy/receive p8 'in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:233"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:234: ovs-appctl netdev-dummy/receive p8 'in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60"
at_fn_check_prepare_trace "dpif-netdev.at:234"
( $at_check_trace; ovs-appctl netdev-dummy/receive p8 'in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:234"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:235: ovs-appctl netdev-dummy/receive p8 'in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60"
at_fn_check_prepare_trace "dpif-netdev.at:235"
( $at_check_trace; ovs-appctl netdev-dummy/receive p8 'in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:235"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

sleep 1  # wait for forwarders process packets

# Meter 1 is measuring packets, allowing one packet per second with
# bursts of one packet, so 4 out of 5 packets should hit the drop
# band.
# Meter 2 is measuring kbps, with burst size 2 (== 2000 bits). 4 packets
# (240 bytes == 1920 bits) pass, but the last packet should hit the drop band.
{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:243: ovs-ofctl -O OpenFlow13 meter-stats br0 | strip_timers"
at_fn_check_prepare_notrace 'a shell pipeline' "dpif-netdev.at:243"
( $at_check_trace; ovs-ofctl -O OpenFlow13 meter-stats br0 | strip_timers
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_METER reply (OF1.3) (xid=0x2):
meter:1 flow_count:1 packet_in_count:5 byte_in_count:300 duration:0.0s bands:
0: packet_count:4 byte_count:240

meter:2 flow_count:1 packet_in_count:5 byte_in_count:300 duration:0.0s bands:
0: packet_count:1 byte_count:60
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:243"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Advance time by 1/2 second
ovs-appctl time/warp 500

{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:255: ovs-appctl netdev-dummy/receive p7 'in_port(7),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60"
at_fn_check_prepare_trace "dpif-netdev.at:255"
( $at_check_trace; ovs-appctl netdev-dummy/receive p7 'in_port(7),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:255"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:256: ovs-appctl netdev-dummy/receive p7 'in_port(7),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60"
at_fn_check_prepare_trace "dpif-netdev.at:256"
( $at_check_trace; ovs-appctl netdev-dummy/receive p7 'in_port(7),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:256"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:257: ovs-appctl netdev-dummy/receive p7 'in_port(7),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60"
at_fn_check_prepare_trace "dpif-netdev.at:257"
( $at_check_trace; ovs-appctl netdev-dummy/receive p7 'in_port(7),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:257"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:258: ovs-appctl netdev-dummy/receive p7 'in_port(7),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60"
at_fn_check_prepare_trace "dpif-netdev.at:258"
( $at_check_trace; ovs-appctl netdev-dummy/receive p7 'in_port(7),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:258"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:259: ovs-appctl netdev-dummy/receive p7 'in_port(7),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60"
at_fn_check_prepare_trace "dpif-netdev.at:259"
( $at_check_trace; ovs-appctl netdev-dummy/receive p7 'in_port(7),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:259"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:260: ovs-appctl netdev-dummy/receive p8 'in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60"
at_fn_check_prepare_trace "dpif-netdev.at:260"
( $at_check_trace; ovs-appctl netdev-dummy/receive p8 'in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:260"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:261: ovs-appctl netdev-dummy/receive p8 'in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60"
at_fn_check_prepare_trace "dpif-netdev.at:261"
( $at_check_trace; ovs-appctl netdev-dummy/receive p8 'in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:261"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:262: ovs-appctl netdev-dummy/receive p8 'in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60"
at_fn_check_prepare_trace "dpif-netdev.at:262"
( $at_check_trace; ovs-appctl netdev-dummy/receive p8 'in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:262"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:263: ovs-appctl netdev-dummy/receive p8 'in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60"
at_fn_check_prepare_trace "dpif-netdev.at:263"
( $at_check_trace; ovs-appctl netdev-dummy/receive p8 'in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:264: ovs-appctl netdev-dummy/receive p8 'in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60"
at_fn_check_prepare_trace "dpif-netdev.at:264"
( $at_check_trace; ovs-appctl netdev-dummy/receive p8 'in_port(8),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' --len 60
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:264"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

sleep 1  # wait for forwarders process packets

# Meter 1 is measuring packets, allowing one packet per second with
# bursts of one packet, so all 5 of the new packets should hit the drop
# band.
# Meter 2 is measuring kbps, with burst size 2 (== 2000 bits). After 500ms
# there should be space for 80 + 500 bits, so one new 60 byte (480 bit) packet
# should pass, remaining 4 should hit the drop band.
{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:273: ovs-ofctl -O OpenFlow13 meter-stats br0 | strip_timers"
at_fn_check_prepare_notrace 'a shell pipeline' "dpif-netdev.at:273"
( $at_check_trace; ovs-ofctl -O OpenFlow13 meter-stats br0 | strip_timers
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_METER reply (OF1.3) (xid=0x2):
meter:1 flow_count:1 packet_in_count:10 byte_in_count:600 duration:0.0s bands:
0: packet_count:9 byte_count:540

meter:2 flow_count:1 packet_in_count:10 byte_in_count:600 duration:0.0s bands:
0: packet_count:5 byte_count:300
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:273"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:282: cat ovs-vswitchd.log | filter_flow_install | strip_xout_keep_actions"
at_fn_check_prepare_notrace 'a shell pipeline' "dpif-netdev.at:282"
( $at_check_trace; cat ovs-vswitchd.log | filter_flow_install | strip_xout_keep_actions
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), actions:meter(0),7
recirc_id(0),in_port(2),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), actions:8
recirc_id(0),in_port(7),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), actions:meter(1),1
recirc_id(0),in_port(8),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), actions:2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:282"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/dpif-netdev.at:289: check_logs "
at_fn_check_prepare_trace "dpif-netdev.at:289"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:289"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:289: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "dpif-netdev.at:289"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:289"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:289: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "dpif-netdev.at:289"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:289"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "dpif-netdev.at:289: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "dpif-netdev.at:289: wait failed" >&5

    $as_echo "dpif-netdev.at:289" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/dpif-netdev.at:289"
fi

   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:289: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "dpif-netdev.at:289"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:289"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/dpif-netdev.at:289: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "dpif-netdev.at:289"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpif-netdev.at:289"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "dpif-netdev.at:289: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "dpif-netdev.at:289: wait failed" >&5

    $as_echo "dpif-netdev.at:289" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/dpif-netdev.at:289"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1011
#AT_START_1012
at_fn_group_banner 1012 'pmd.at:67' \
  "PMD - creating a thread/add-port" "               " 53
at_xfail=no
(
  $as_echo "1012. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/pmd.at:68: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "pmd.at:68"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:68"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/pmd.at:68: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "pmd.at:68"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:68"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/pmd.at:68: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "pmd.at:68"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:68"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/pmd.at:68: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "pmd.at:68"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:68"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/pmd.at:68: ovs-vswitchd --enable-dummy --disable-system --dummy-numa=\"0,0,0,0\" --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "pmd.at:68"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system --dummy-numa="0,0,0,0" --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:68"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/pmd.at:68: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "pmd.at:68"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:68"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/pmd.at:68: add_of_br 0 add-port br0 p0 -- set Interface p0 type=dummy-pmd "
at_fn_check_prepare_trace "pmd.at:68"
( $at_check_trace; add_of_br 0 add-port br0 p0 -- set Interface p0 type=dummy-pmd
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:68"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }




    PATTERN="Discovered [0-9]* NUMA nodes and [0-9]* CPU cores"
    $as_echo "pmd.at:70: waiting until grep \"\$PATTERN\" ovs-vswitchd.log..." >&5
ovs_wait_cond () {
    grep "$PATTERN" ovs-vswitchd.log
}
if ovs_wait; then :
else
    $as_echo "pmd.at:70: wait failed" >&5

    $as_echo "pmd.at:70" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:70"
fi

    N_CPU=$(grep "$PATTERN" ovs-vswitchd.log | sed -e 's/.* \([0-9]*\) CPU cores/\1/')
    if [ -z "" ]
        then { set +x
$as_echo "$at_srcdir/pmd.at:70: test \"\$N_CPU\" -gt \"0\""
at_fn_check_prepare_dynamic "test \"$N_CPU\" -gt \"0\"" "pmd.at:70"
( $at_check_trace; test "$N_CPU" -gt "0"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:70"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

        else $as_echo "pmd.at:70" >"$at_check_line_file"
(test "$N_CPU" -lt "") \
  && at_fn_check_skip 77 "$at_srcdir/pmd.at:70"
    fi


    PATTERN="There are [0-9]* pmd threads on numa node "
    line_st=
    if [ -z "$line_st" ]
    then
        line_st="+0"
    fi
    $as_echo "pmd.at:71: waiting until tail -n \$line_st ovs-vswitchd.log | grep \"\$PATTERN\"..." >&5
ovs_wait_cond () {
    tail -n $line_st ovs-vswitchd.log | grep "$PATTERN"
}
if ovs_wait; then :
else
    $as_echo "pmd.at:71: wait failed" >&5

    $as_echo "pmd.at:71" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:71"
fi

    N_THREADS=$(tail -n $line_st ovs-vswitchd.log | grep "$PATTERN" | tail -1 | sed -e 's/.* \([0-9]*\) pmd .*/\1/')
    if [ -z "" ]
        then { set +x
$as_echo "$at_srcdir/pmd.at:71: test \"\$N_THREADS\" -gt 0"
at_fn_check_prepare_dynamic "test \"$N_THREADS\" -gt 0" "pmd.at:71"
( $at_check_trace; test "$N_THREADS" -gt 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:71"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

        else { set +x
$as_echo "$at_srcdir/pmd.at:71: test \"\$N_THREADS\" -eq \"\""
at_fn_check_prepare_dynamic "test \"$N_THREADS\" -eq \"\"" "pmd.at:71"
( $at_check_trace; test "$N_THREADS" -eq ""
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:71"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    fi


{ set +x
$as_echo "$at_srcdir/pmd.at:73: ovs-appctl dpif-netdev/pmd-rxq-show | sed \"s/\\(numa_id \\)[0-9]*\\( core_id \\)[0-9]*:/\\1<cleared>\\2<cleared>:/\""
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:73"
( $at_check_trace; ovs-appctl dpif-netdev/pmd-rxq-show | sed "s/\(numa_id \)[0-9]*\( core_id \)[0-9]*:/\1<cleared>\2<cleared>:/"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "pmd thread numa_id <cleared> core_id <cleared>:
	isolated : false
	port: p0              	queue-id:  0	pmd usage: NOT AVAIL
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:73"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:79: ovs-appctl dpif/show | sed 's/\\(tx_queues=\\)[0-9]*/\\1<cleared>/g'"
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:79"
( $at_check_trace; ovs-appctl dpif/show | sed 's/\(tx_queues=\)[0-9]*/\1<cleared>/g'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dummy@ovs-dummy: hit:0 missed:0
	br0:
		br0 65534/100: (dummy-internal)
		p0 1/1: (dummy-pmd: configured_rx_queues=1, configured_tx_queues=<cleared>, requested_rx_queues=1, requested_tx_queues=<cleared>)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:79"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:86: check_logs "
at_fn_check_prepare_trace "pmd.at:86"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:86"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/pmd.at:86: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "pmd.at:86"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:86"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/pmd.at:86: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "pmd.at:86"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:86"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "pmd.at:86: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "pmd.at:86: wait failed" >&5

    $as_echo "pmd.at:86" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:86"
fi

   { set +x
$as_echo "$at_srcdir/pmd.at:86: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "pmd.at:86"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:86"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/pmd.at:86: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "pmd.at:86"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:86"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "pmd.at:86: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "pmd.at:86: wait failed" >&5

    $as_echo "pmd.at:86" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:86"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1012
#AT_START_1013
at_fn_group_banner 1013 'pmd.at:89' \
  "PMD - multiqueue support" "                       " 53
at_xfail=no
(
  $as_echo "1013. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/pmd.at:90: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "pmd.at:90"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:90"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/pmd.at:90: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "pmd.at:90"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:90"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/pmd.at:90: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "pmd.at:90"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:90"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/pmd.at:90: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "pmd.at:90"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:90"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/pmd.at:90: ovs-vswitchd --enable-dummy --disable-system --dummy-numa=\"0,0,0,0\" --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "pmd.at:90"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system --dummy-numa="0,0,0,0" --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:90"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/pmd.at:90: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "pmd.at:90"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:90"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/pmd.at:90: add_of_br 0 add-port br0 p0 -- set Interface p0 type=dummy-pmd "
at_fn_check_prepare_trace "pmd.at:90"
( $at_check_trace; add_of_br 0 add-port br0 p0 -- set Interface p0 type=dummy-pmd
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:90"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }




    PATTERN="Discovered [0-9]* NUMA nodes and [0-9]* CPU cores"
    $as_echo "pmd.at:92: waiting until grep \"\$PATTERN\" ovs-vswitchd.log..." >&5
ovs_wait_cond () {
    grep "$PATTERN" ovs-vswitchd.log
}
if ovs_wait; then :
else
    $as_echo "pmd.at:92: wait failed" >&5

    $as_echo "pmd.at:92" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:92"
fi

    N_CPU=$(grep "$PATTERN" ovs-vswitchd.log | sed -e 's/.* \([0-9]*\) CPU cores/\1/')
    if [ -z "" ]
        then { set +x
$as_echo "$at_srcdir/pmd.at:92: test \"\$N_CPU\" -gt \"0\""
at_fn_check_prepare_dynamic "test \"$N_CPU\" -gt \"0\"" "pmd.at:92"
( $at_check_trace; test "$N_CPU" -gt "0"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:92"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

        else $as_echo "pmd.at:92" >"$at_check_line_file"
(test "$N_CPU" -lt "") \
  && at_fn_check_skip 77 "$at_srcdir/pmd.at:92"
    fi


    PATTERN="There are [0-9]* pmd threads on numa node "
    line_st=
    if [ -z "$line_st" ]
    then
        line_st="+0"
    fi
    $as_echo "pmd.at:93: waiting until tail -n \$line_st ovs-vswitchd.log | grep \"\$PATTERN\"..." >&5
ovs_wait_cond () {
    tail -n $line_st ovs-vswitchd.log | grep "$PATTERN"
}
if ovs_wait; then :
else
    $as_echo "pmd.at:93: wait failed" >&5

    $as_echo "pmd.at:93" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:93"
fi

    N_THREADS=$(tail -n $line_st ovs-vswitchd.log | grep "$PATTERN" | tail -1 | sed -e 's/.* \([0-9]*\) pmd .*/\1/')
    if [ -z "" ]
        then { set +x
$as_echo "$at_srcdir/pmd.at:93: test \"\$N_THREADS\" -gt 0"
at_fn_check_prepare_dynamic "test \"$N_THREADS\" -gt 0" "pmd.at:93"
( $at_check_trace; test "$N_THREADS" -gt 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:93"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

        else { set +x
$as_echo "$at_srcdir/pmd.at:93: test \"\$N_THREADS\" -eq \"\""
at_fn_check_prepare_dynamic "test \"$N_THREADS\" -eq \"\"" "pmd.at:93"
( $at_check_trace; test "$N_THREADS" -eq ""
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:93"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    fi


{ set +x
$as_echo "$at_srcdir/pmd.at:95: ovs-vsctl set interface p0 options:n_rxq=8"
at_fn_check_prepare_trace "pmd.at:95"
( $at_check_trace; ovs-vsctl set interface p0 options:n_rxq=8
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:95"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:97: ovs-appctl dpif/show | sed 's/\\(tx_queues=\\)[0-9]*/\\1<cleared>/g'"
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:97"
( $at_check_trace; ovs-appctl dpif/show | sed 's/\(tx_queues=\)[0-9]*/\1<cleared>/g'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dummy@ovs-dummy: hit:0 missed:0
	br0:
		br0 65534/100: (dummy-internal)
		p0 1/1: (dummy-pmd: configured_rx_queues=8, configured_tx_queues=<cleared>, requested_rx_queues=8, requested_tx_queues=<cleared>)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:97"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:104: ovs-appctl dpif-netdev/pmd-rxq-show | sed \"s/\\(numa_id \\)[0-9]*\\( core_id \\)[0-9]*:/\\1<cleared>\\2<cleared>:/\""
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:104"
( $at_check_trace; ovs-appctl dpif-netdev/pmd-rxq-show | sed "s/\(numa_id \)[0-9]*\( core_id \)[0-9]*:/\1<cleared>\2<cleared>:/"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "pmd thread numa_id <cleared> core_id <cleared>:
	isolated : false
	port: p0              	queue-id:  0	pmd usage: NOT AVAIL
	port: p0              	queue-id:  1	pmd usage: NOT AVAIL
	port: p0              	queue-id:  2	pmd usage: NOT AVAIL
	port: p0              	queue-id:  3	pmd usage: NOT AVAIL
	port: p0              	queue-id:  4	pmd usage: NOT AVAIL
	port: p0              	queue-id:  5	pmd usage: NOT AVAIL
	port: p0              	queue-id:  6	pmd usage: NOT AVAIL
	port: p0              	queue-id:  7	pmd usage: NOT AVAIL
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:104"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:117: check_logs "
at_fn_check_prepare_trace "pmd.at:117"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:117"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/pmd.at:117: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "pmd.at:117"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:117"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/pmd.at:117: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "pmd.at:117"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:117"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "pmd.at:117: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "pmd.at:117: wait failed" >&5

    $as_echo "pmd.at:117" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:117"
fi

   { set +x
$as_echo "$at_srcdir/pmd.at:117: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "pmd.at:117"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:117"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/pmd.at:117: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "pmd.at:117"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:117"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "pmd.at:117: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "pmd.at:117: wait failed" >&5

    $as_echo "pmd.at:117" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:117"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1013
#AT_START_1014
at_fn_group_banner 1014 'pmd.at:121' \
  "PMD - pmd-cpu-mask/distribution of rx queues" "   " 53
at_xfail=no
(
  $as_echo "1014. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/pmd.at:122: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "pmd.at:122"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:122"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/pmd.at:122: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "pmd.at:122"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:122"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/pmd.at:122: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "pmd.at:122"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:122"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/pmd.at:122: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "pmd.at:122"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:122"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/pmd.at:122: ovs-vswitchd --enable-dummy --disable-system --dummy-numa=\"0,0,0,0\" --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "pmd.at:122"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system --dummy-numa="0,0,0,0" --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:122"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/pmd.at:122: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "pmd.at:122"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:122"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/pmd.at:122: add_of_br 0 add-port br0 p0 -- set Interface p0 type=dummy-pmd options:n_rxq=8 "
at_fn_check_prepare_trace "pmd.at:122"
( $at_check_trace; add_of_br 0 add-port br0 p0 -- set Interface p0 type=dummy-pmd options:n_rxq=8
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:122"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }




    PATTERN="Discovered [0-9]* NUMA nodes and [0-9]* CPU cores"
    $as_echo "pmd.at:125: waiting until grep \"\$PATTERN\" ovs-vswitchd.log..." >&5
ovs_wait_cond () {
    grep "$PATTERN" ovs-vswitchd.log
}
if ovs_wait; then :
else
    $as_echo "pmd.at:125: wait failed" >&5

    $as_echo "pmd.at:125" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:125"
fi

    N_CPU=$(grep "$PATTERN" ovs-vswitchd.log | sed -e 's/.* \([0-9]*\) CPU cores/\1/')
    if [ -z "2" ]
        then { set +x
$as_echo "$at_srcdir/pmd.at:125: test \"\$N_CPU\" -gt \"0\""
at_fn_check_prepare_dynamic "test \"$N_CPU\" -gt \"0\"" "pmd.at:125"
( $at_check_trace; test "$N_CPU" -gt "0"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:125"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

        else $as_echo "pmd.at:125" >"$at_check_line_file"
(test "$N_CPU" -lt "2") \
  && at_fn_check_skip 77 "$at_srcdir/pmd.at:125"
    fi


    PATTERN="There are [0-9]* pmd threads on numa node "
    line_st=
    if [ -z "$line_st" ]
    then
        line_st="+0"
    fi
    $as_echo "pmd.at:126: waiting until tail -n \$line_st ovs-vswitchd.log | grep \"\$PATTERN\"..." >&5
ovs_wait_cond () {
    tail -n $line_st ovs-vswitchd.log | grep "$PATTERN"
}
if ovs_wait; then :
else
    $as_echo "pmd.at:126: wait failed" >&5

    $as_echo "pmd.at:126" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:126"
fi

    N_THREADS=$(tail -n $line_st ovs-vswitchd.log | grep "$PATTERN" | tail -1 | sed -e 's/.* \([0-9]*\) pmd .*/\1/')
    if [ -z "" ]
        then { set +x
$as_echo "$at_srcdir/pmd.at:126: test \"\$N_THREADS\" -gt 0"
at_fn_check_prepare_dynamic "test \"$N_THREADS\" -gt 0" "pmd.at:126"
( $at_check_trace; test "$N_THREADS" -gt 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:126"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

        else { set +x
$as_echo "$at_srcdir/pmd.at:126: test \"\$N_THREADS\" -eq \"\""
at_fn_check_prepare_dynamic "test \"$N_THREADS\" -eq \"\"" "pmd.at:126"
( $at_check_trace; test "$N_THREADS" -eq ""
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:126"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    fi


{ set +x
$as_echo "$at_srcdir/pmd.at:128: ovs-appctl dpif/show | sed 's/\\(tx_queues=\\)[0-9]*/\\1<cleared>/g'"
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:128"
( $at_check_trace; ovs-appctl dpif/show | sed 's/\(tx_queues=\)[0-9]*/\1<cleared>/g'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dummy@ovs-dummy: hit:0 missed:0
	br0:
		br0 65534/100: (dummy-internal)
		p0 1/1: (dummy-pmd: configured_rx_queues=8, configured_tx_queues=<cleared>, requested_rx_queues=8, requested_tx_queues=<cleared>)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:128"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:135: ovs-appctl dpif-netdev/pmd-rxq-show | sed \"s/\\(numa_id \\)[0-9]*\\( core_id \\)[0-9]*:/\\1<cleared>\\2<cleared>:/\""
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:135"
( $at_check_trace; ovs-appctl dpif-netdev/pmd-rxq-show | sed "s/\(numa_id \)[0-9]*\( core_id \)[0-9]*:/\1<cleared>\2<cleared>:/"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "pmd thread numa_id <cleared> core_id <cleared>:
	isolated : false
	port: p0              	queue-id:  0	pmd usage: NOT AVAIL
	port: p0              	queue-id:  1	pmd usage: NOT AVAIL
	port: p0              	queue-id:  2	pmd usage: NOT AVAIL
	port: p0              	queue-id:  3	pmd usage: NOT AVAIL
	port: p0              	queue-id:  4	pmd usage: NOT AVAIL
	port: p0              	queue-id:  5	pmd usage: NOT AVAIL
	port: p0              	queue-id:  6	pmd usage: NOT AVAIL
	port: p0              	queue-id:  7	pmd usage: NOT AVAIL
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:135"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


TMP=$(cat ovs-vswitchd.log | wc -l | tr -d [:blank:])
{ set +x
$as_echo "$at_srcdir/pmd.at:149: ovs-vsctl set Open_vSwitch . other_config:pmd-cpu-mask=0x3"
at_fn_check_prepare_trace "pmd.at:149"
( $at_check_trace; ovs-vsctl set Open_vSwitch . other_config:pmd-cpu-mask=0x3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:149"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


    PATTERN="There are [0-9]* pmd threads on numa node "
    line_st=+$TMP
    if [ -z "$line_st" ]
    then
        line_st="+0"
    fi
    $as_echo "pmd.at:150: waiting until tail -n \$line_st ovs-vswitchd.log | grep \"\$PATTERN\"..." >&5
ovs_wait_cond () {
    tail -n $line_st ovs-vswitchd.log | grep "$PATTERN"
}
if ovs_wait; then :
else
    $as_echo "pmd.at:150: wait failed" >&5

    $as_echo "pmd.at:150" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:150"
fi

    N_THREADS=$(tail -n $line_st ovs-vswitchd.log | grep "$PATTERN" | tail -1 | sed -e 's/.* \([0-9]*\) pmd .*/\1/')
    if [ -z "2" ]
        then { set +x
$as_echo "$at_srcdir/pmd.at:150: test \"\$N_THREADS\" -gt 0"
at_fn_check_prepare_dynamic "test \"$N_THREADS\" -gt 0" "pmd.at:150"
( $at_check_trace; test "$N_THREADS" -gt 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:150"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

        else { set +x
$as_echo "$at_srcdir/pmd.at:150: test \"\$N_THREADS\" -eq \"2\""
at_fn_check_prepare_dynamic "test \"$N_THREADS\" -eq \"2\"" "pmd.at:150"
( $at_check_trace; test "$N_THREADS" -eq "2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:150"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    fi


{ set +x
$as_echo "$at_srcdir/pmd.at:152: ovs-appctl dpif-netdev/pmd-rxq-show | sed ':a;/AVAIL\$/{N;s/\\n//;ba;}' | parse_pmd_rxq_show_group | sed \"s/1 2 5 6/<group>/;s/0 3 4 7/<group>/\""
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:152"
( $at_check_trace; ovs-appctl dpif-netdev/pmd-rxq-show | sed ':a;/AVAIL$/{N;s/\n//;ba;}' | parse_pmd_rxq_show_group | sed "s/1 2 5 6/<group>/;s/0 3 4 7/<group>/"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "port: p0 queue-id: <group>
port: p0 queue-id: <group>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:152"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


TMP=$(cat ovs-vswitchd.log | wc -l | tr -d [:blank:])
{ set +x
$as_echo "$at_srcdir/pmd.at:158: ovs-vsctl set Open_vSwitch . other_config:pmd-cpu-mask=0x1"
at_fn_check_prepare_trace "pmd.at:158"
( $at_check_trace; ovs-vsctl set Open_vSwitch . other_config:pmd-cpu-mask=0x1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:158"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


    PATTERN="There are [0-9]* pmd threads on numa node "
    line_st=+$TMP
    if [ -z "$line_st" ]
    then
        line_st="+0"
    fi
    $as_echo "pmd.at:159: waiting until tail -n \$line_st ovs-vswitchd.log | grep \"\$PATTERN\"..." >&5
ovs_wait_cond () {
    tail -n $line_st ovs-vswitchd.log | grep "$PATTERN"
}
if ovs_wait; then :
else
    $as_echo "pmd.at:159: wait failed" >&5

    $as_echo "pmd.at:159" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:159"
fi

    N_THREADS=$(tail -n $line_st ovs-vswitchd.log | grep "$PATTERN" | tail -1 | sed -e 's/.* \([0-9]*\) pmd .*/\1/')
    if [ -z "1" ]
        then { set +x
$as_echo "$at_srcdir/pmd.at:159: test \"\$N_THREADS\" -gt 0"
at_fn_check_prepare_dynamic "test \"$N_THREADS\" -gt 0" "pmd.at:159"
( $at_check_trace; test "$N_THREADS" -gt 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:159"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

        else { set +x
$as_echo "$at_srcdir/pmd.at:159: test \"\$N_THREADS\" -eq \"1\""
at_fn_check_prepare_dynamic "test \"$N_THREADS\" -eq \"1\"" "pmd.at:159"
( $at_check_trace; test "$N_THREADS" -eq "1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:159"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    fi


{ set +x
$as_echo "$at_srcdir/pmd.at:161: ovs-appctl dpif-netdev/pmd-rxq-show | sed \"s/\\(numa_id \\)[0-9]*\\( core_id \\)[0-9]*:/\\1<cleared>\\2<cleared>:/\""
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:161"
( $at_check_trace; ovs-appctl dpif-netdev/pmd-rxq-show | sed "s/\(numa_id \)[0-9]*\( core_id \)[0-9]*:/\1<cleared>\2<cleared>:/"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "pmd thread numa_id <cleared> core_id <cleared>:
	isolated : false
	port: p0              	queue-id:  0	pmd usage: NOT AVAIL
	port: p0              	queue-id:  1	pmd usage: NOT AVAIL
	port: p0              	queue-id:  2	pmd usage: NOT AVAIL
	port: p0              	queue-id:  3	pmd usage: NOT AVAIL
	port: p0              	queue-id:  4	pmd usage: NOT AVAIL
	port: p0              	queue-id:  5	pmd usage: NOT AVAIL
	port: p0              	queue-id:  6	pmd usage: NOT AVAIL
	port: p0              	queue-id:  7	pmd usage: NOT AVAIL
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:161"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:174: check_logs "
at_fn_check_prepare_trace "pmd.at:174"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:174"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/pmd.at:174: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "pmd.at:174"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:174"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/pmd.at:174: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "pmd.at:174"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:174"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "pmd.at:174: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "pmd.at:174: wait failed" >&5

    $as_echo "pmd.at:174" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:174"
fi

   { set +x
$as_echo "$at_srcdir/pmd.at:174: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "pmd.at:174"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:174"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/pmd.at:174: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "pmd.at:174"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:174"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "pmd.at:174: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "pmd.at:174: wait failed" >&5

    $as_echo "pmd.at:174" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:174"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1014
#AT_START_1015
at_fn_group_banner 1015 'pmd.at:178' \
  "PMD - stats" "                                    " 53
at_xfail=no
(
  $as_echo "1015. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/pmd.at:179: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "pmd.at:179"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:179"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/pmd.at:179: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "pmd.at:179"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:179"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/pmd.at:179: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "pmd.at:179"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:179"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/pmd.at:179: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "pmd.at:179"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:179"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/pmd.at:179: ovs-vswitchd --enable-dummy --disable-system --dummy-numa=\"0,0,0,0\" --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "pmd.at:179"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system --dummy-numa="0,0,0,0" --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:179"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/pmd.at:179: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "pmd.at:179"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:179"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/pmd.at:179: add_of_br 0 add-port br0 p0 -- set Interface p0 ofport_request=7 type=dummy-pmd options:n_rxq=4 "
at_fn_check_prepare_trace "pmd.at:179"
( $at_check_trace; add_of_br 0 add-port br0 p0 -- set Interface p0 ofport_request=7 type=dummy-pmd options:n_rxq=4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:179"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }




    PATTERN="Discovered [0-9]* NUMA nodes and [0-9]* CPU cores"
    $as_echo "pmd.at:182: waiting until grep \"\$PATTERN\" ovs-vswitchd.log..." >&5
ovs_wait_cond () {
    grep "$PATTERN" ovs-vswitchd.log
}
if ovs_wait; then :
else
    $as_echo "pmd.at:182: wait failed" >&5

    $as_echo "pmd.at:182" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:182"
fi

    N_CPU=$(grep "$PATTERN" ovs-vswitchd.log | sed -e 's/.* \([0-9]*\) CPU cores/\1/')
    if [ -z "" ]
        then { set +x
$as_echo "$at_srcdir/pmd.at:182: test \"\$N_CPU\" -gt \"0\""
at_fn_check_prepare_dynamic "test \"$N_CPU\" -gt \"0\"" "pmd.at:182"
( $at_check_trace; test "$N_CPU" -gt "0"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:182"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

        else $as_echo "pmd.at:182" >"$at_check_line_file"
(test "$N_CPU" -lt "") \
  && at_fn_check_skip 77 "$at_srcdir/pmd.at:182"
    fi


    PATTERN="There are [0-9]* pmd threads on numa node "
    line_st=
    if [ -z "$line_st" ]
    then
        line_st="+0"
    fi
    $as_echo "pmd.at:183: waiting until tail -n \$line_st ovs-vswitchd.log | grep \"\$PATTERN\"..." >&5
ovs_wait_cond () {
    tail -n $line_st ovs-vswitchd.log | grep "$PATTERN"
}
if ovs_wait; then :
else
    $as_echo "pmd.at:183: wait failed" >&5

    $as_echo "pmd.at:183" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:183"
fi

    N_THREADS=$(tail -n $line_st ovs-vswitchd.log | grep "$PATTERN" | tail -1 | sed -e 's/.* \([0-9]*\) pmd .*/\1/')
    if [ -z "" ]
        then { set +x
$as_echo "$at_srcdir/pmd.at:183: test \"\$N_THREADS\" -gt 0"
at_fn_check_prepare_dynamic "test \"$N_THREADS\" -gt 0" "pmd.at:183"
( $at_check_trace; test "$N_THREADS" -gt 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:183"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

        else { set +x
$as_echo "$at_srcdir/pmd.at:183: test \"\$N_THREADS\" -eq \"\""
at_fn_check_prepare_dynamic "test \"$N_THREADS\" -eq \"\"" "pmd.at:183"
( $at_check_trace; test "$N_THREADS" -eq ""
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:183"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    fi


{ set +x
$as_echo "$at_srcdir/pmd.at:185: ovs-appctl vlog/set dpif_netdev:dbg"
at_fn_check_prepare_trace "pmd.at:185"
( $at_check_trace; ovs-appctl vlog/set dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:185"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/pmd.at:186: ovs-ofctl add-flow br0 action=normal"
at_fn_check_prepare_trace "pmd.at:186"
( $at_check_trace; ovs-ofctl add-flow br0 action=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:186"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/pmd.at:187: ovs-vsctl set Open_vSwitch . other_config:emc-insert-inv-prob=1"
at_fn_check_prepare_trace "pmd.at:187"
( $at_check_trace; ovs-vsctl set Open_vSwitch . other_config:emc-insert-inv-prob=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:187"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


sleep 1

{ set +x
$as_echo "$at_srcdir/pmd.at:191: ovs-appctl dpif/show | sed 's/\\(tx_queues=\\)[0-9]*/\\1<cleared>/g'"
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:191"
( $at_check_trace; ovs-appctl dpif/show | sed 's/\(tx_queues=\)[0-9]*/\1<cleared>/g'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dummy@ovs-dummy: hit:0 missed:0
	br0:
		br0 65534/100: (dummy-internal)
		p0 7/1: (dummy-pmd: configured_rx_queues=4, configured_tx_queues=<cleared>, requested_rx_queues=4, requested_tx_queues=<cleared>)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:198: ovs-appctl dpif-netdev/pmd-stats-show | sed \"s/\\(numa_id \\)[0-9]*\\( core_id \\)[0-9]*:/\\1<cleared>\\2<cleared>:/\" | sed '/cycles/d' | grep pmd -A 8"
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:198"
( $at_check_trace; ovs-appctl dpif-netdev/pmd-stats-show | sed "s/\(numa_id \)[0-9]*\( core_id \)[0-9]*:/\1<cleared>\2<cleared>:/" | sed '/cycles/d' | grep pmd -A 8
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "pmd thread numa_id <cleared> core_id <cleared>:
	packets received: 0
	packet recirculations: 0
	avg. datapath passes per packet: 0.00
	emc hits: 0
	megaflow hits: 0
	avg. subtable lookups per megaflow hit: 0.00
	miss with success upcall: 0
	miss with failed upcall: 0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:198"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/stop
ovs-appctl time/warp 100
(
for i in `seq 0 19`;
    do
    pkt="in_port(7),eth(src=50:54:00:00:00:77,dst=50:54:00:00:01:78),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)"
    { set +x
$as_echo "$at_srcdir/pmd.at:216: ovs-appctl netdev-dummy/receive p0 \$pkt"
at_fn_check_prepare_dynamic "ovs-appctl netdev-dummy/receive p0 $pkt" "pmd.at:216"
( $at_check_trace; ovs-appctl netdev-dummy/receive p0 $pkt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:216"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    done
)
ovs-appctl time/warp 100

{ set +x
$as_echo "$at_srcdir/pmd.at:221: grep -A 1 'miss upcall' ovs-vswitchd.log | tail -n 1"
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:221"
( $at_check_trace; grep -A 1 'miss upcall' ovs-vswitchd.log | tail -n 1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "skb_priority(0),skb_mark(0),ct_state(0),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:77,dst=50:54:00:00:01:78),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:221"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/pmd.at:224: cat ovs-vswitchd.log | filter_flow_install | strip_xout"
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:224"
( $at_check_trace; cat ovs-vswitchd.log | filter_flow_install | strip_xout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:77,dst=50:54:00:00:01:78),eth_type(0x0800),ipv4(frag=no), actions: <del>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:224"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:228: ovs-appctl dpif-netdev/pmd-stats-show | sed \"s/\\(numa_id \\)[0-9]*\\( core_id \\)[0-9]*:/\\1<cleared>\\2<cleared>:/\" | sed '/cycles/d' | grep pmd -A 8"
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:228"
( $at_check_trace; ovs-appctl dpif-netdev/pmd-stats-show | sed "s/\(numa_id \)[0-9]*\( core_id \)[0-9]*:/\1<cleared>\2<cleared>:/" | sed '/cycles/d' | grep pmd -A 8
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "pmd thread numa_id <cleared> core_id <cleared>:
	packets received: 20
	packet recirculations: 0
	avg. datapath passes per packet: 1.00
	emc hits: 19
	megaflow hits: 0
	avg. subtable lookups per megaflow hit: 0.00
	miss with success upcall: 1
	miss with failed upcall: 0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:228"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:240: check_logs "
at_fn_check_prepare_trace "pmd.at:240"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:240"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/pmd.at:240: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "pmd.at:240"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:240"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/pmd.at:240: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "pmd.at:240"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:240"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "pmd.at:240: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "pmd.at:240: wait failed" >&5

    $as_echo "pmd.at:240" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:240"
fi

   { set +x
$as_echo "$at_srcdir/pmd.at:240: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "pmd.at:240"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:240"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/pmd.at:240: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "pmd.at:240"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:240"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "pmd.at:240: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "pmd.at:240: wait failed" >&5

    $as_echo "pmd.at:240" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:240"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1015
#AT_START_1016
at_fn_group_banner 1016 'pmd.at:245' \
  "PMD - reconfigure n_rxq" "                        " 53
at_xfail=no
(
  $as_echo "1016. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/pmd.at:246: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "pmd.at:246"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:246"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/pmd.at:246: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "pmd.at:246"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:246"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/pmd.at:246: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "pmd.at:246"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:246"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/pmd.at:246: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "pmd.at:246"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:246"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/pmd.at:246: ovs-vswitchd --enable-dummy --disable-system --dummy-numa 0 --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "pmd.at:246"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system --dummy-numa 0 --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:246"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/pmd.at:246: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "pmd.at:246"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:246"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/pmd.at:246: add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy-pmd ofport_request=1 options:n_rxq=2 -- \\
   add-port br0 p2 -- set Interface p2 type=dummy-pmd ofport_request=2
 "
at_fn_check_prepare_notrace 'an embedded newline' "pmd.at:246"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy-pmd ofport_request=1 options:n_rxq=2 -- \
   add-port br0 p2 -- set Interface p2 type=dummy-pmd ofport_request=2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:246"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:250: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "pmd.at:250"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:250"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:252: ovs-ofctl add-flow br0 action=controller"
at_fn_check_prepare_trace "pmd.at:252"
( $at_check_trace; ovs-ofctl add-flow br0 action=controller
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:252"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:254: ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show"
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:254"
( $at_check_trace; ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "p1 0 0 0
p1 1 0 0
p2 0 0 0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:254"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/pmd.at:261: ovs-ofctl monitor br0 65534 invalid_ttl --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "pmd.at:261"
( $at_check_trace; ovs-ofctl monitor br0 65534 invalid_ttl --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:261"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:263: ovs-appctl netdev-dummy/receive p1 --qid 1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "pmd.at:263"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 --qid 1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


$as_echo "pmd.at:265: waiting until test \`wc -l < ofctl_monitor.log\` -ge 2..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 2
}
if ovs_wait; then :
else
    $as_echo "pmd.at:265: wait failed" >&5

    $as_echo "pmd.at:265" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:265"
fi

$as_echo "pmd.at:266: waiting until ovs-appctl -t ovs-ofctl exit..." >&5
ovs_wait_cond () {
    ovs-appctl -t ovs-ofctl exit
}
if ovs_wait; then :
else
    $as_echo "pmd.at:266: wait failed" >&5

    $as_echo "pmd.at:266" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:266"
fi


{ set +x
$as_echo "$at_srcdir/pmd.at:268: cat ofctl_monitor.log"
at_fn_check_prepare_trace "pmd.at:268"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN2 (xid=0x0): cookie=0x0 total_len=42 in_port=1 (via action) data_len=42 (unbuffered)
icmp,vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,nw_src=10.0.0.2,nw_dst=10.0.0.1,nw_tos=0,nw_ecn=0,nw_ttl=64,icmp_type=8,icmp_code=0 icmp_csum:f7ff
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:268"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:273: ovs-vsctl set interface p1 options:n_rxq=4"
at_fn_check_prepare_trace "pmd.at:273"
( $at_check_trace; ovs-vsctl set interface p1 options:n_rxq=4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:273"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:275: ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show"
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:275"
( $at_check_trace; ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "p1 0 0 0
p1 1 0 0
p1 2 0 0
p1 3 0 0
p2 0 0 0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:275"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:283: ovs-ofctl monitor br0 65534 invalid_ttl --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "pmd.at:283"
( $at_check_trace; ovs-ofctl monitor br0 65534 invalid_ttl --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:283"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:285: ovs-appctl netdev-dummy/receive p1 --qid 3 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "pmd.at:285"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 --qid 3 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:285"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


$as_echo "pmd.at:287: waiting until test \`wc -l < ofctl_monitor.log\` -ge 2..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 2
}
if ovs_wait; then :
else
    $as_echo "pmd.at:287: wait failed" >&5

    $as_echo "pmd.at:287" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:287"
fi

$as_echo "pmd.at:288: waiting until ovs-appctl -t ovs-ofctl exit..." >&5
ovs_wait_cond () {
    ovs-appctl -t ovs-ofctl exit
}
if ovs_wait; then :
else
    $as_echo "pmd.at:288: wait failed" >&5

    $as_echo "pmd.at:288" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:288"
fi


{ set +x
$as_echo "$at_srcdir/pmd.at:290: cat ofctl_monitor.log"
at_fn_check_prepare_trace "pmd.at:290"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN2 (xid=0x0): cookie=0x0 total_len=42 in_port=1 (via action) data_len=42 (unbuffered)
icmp,vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,nw_src=10.0.0.2,nw_dst=10.0.0.1,nw_tos=0,nw_ecn=0,nw_ttl=64,icmp_type=8,icmp_code=0 icmp_csum:f7ff
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:290"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:296: ovs-vsctl remove interface p1 options n_rxq"
at_fn_check_prepare_trace "pmd.at:296"
( $at_check_trace; ovs-vsctl remove interface p1 options n_rxq
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:296"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:298: ovs-appctl dpif/show | grep p1 | sed 's/\\(tx_queues=\\)[0-9]*/\\1<cleared>/g'"
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:298"
( $at_check_trace; ovs-appctl dpif/show | grep p1 | sed 's/\(tx_queues=\)[0-9]*/\1<cleared>/g'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "		p1 1/1: (dummy-pmd: configured_rx_queues=1, configured_tx_queues=<cleared>, requested_rx_queues=1, requested_tx_queues=<cleared>)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:298"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:302: check_logs "
at_fn_check_prepare_trace "pmd.at:302"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:302"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/pmd.at:302: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "pmd.at:302"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:302"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/pmd.at:302: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "pmd.at:302"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:302"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "pmd.at:302: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "pmd.at:302: wait failed" >&5

    $as_echo "pmd.at:302" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:302"
fi

   { set +x
$as_echo "$at_srcdir/pmd.at:302: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "pmd.at:302"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:302"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/pmd.at:302: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "pmd.at:302"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:302"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "pmd.at:302: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "pmd.at:302: wait failed" >&5

    $as_echo "pmd.at:302" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:302"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1016
#AT_START_1017
at_fn_group_banner 1017 'pmd.at:308' \
  "PMD - same flow multiple threads" "               " 53
at_xfail=no
(
  $as_echo "1017. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/pmd.at:309: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "pmd.at:309"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:309"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/pmd.at:309: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "pmd.at:309"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:309"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/pmd.at:309: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "pmd.at:309"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:309"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/pmd.at:309: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "pmd.at:309"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:309"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/pmd.at:309: ovs-vswitchd --enable-dummy --disable-system --dummy-numa 0,0 --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "pmd.at:309"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system --dummy-numa 0,0 --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:309"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/pmd.at:309: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "pmd.at:309"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:309"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/pmd.at:309: add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy-pmd ofport_request=1 options:n_rxq=2 -- \\
   set Open_vSwitch . other_config:pmd-cpu-mask=3
 "
at_fn_check_prepare_notrace 'an embedded newline' "pmd.at:309"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy-pmd ofport_request=1 options:n_rxq=2 -- \
   set Open_vSwitch . other_config:pmd-cpu-mask=3

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:309"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:313: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "pmd.at:313"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:313"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:315: ovs-ofctl add-flow br0 action=controller"
at_fn_check_prepare_trace "pmd.at:315"
( $at_check_trace; ovs-ofctl add-flow br0 action=controller
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:315"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:320: ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show | cut -f 4 -d ' ' | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:320"
( $at_check_trace; ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show | cut -f 4 -d ' ' | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:320"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/pmd.at:326: ovs-ofctl monitor br0 65534 invalid_ttl --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "pmd.at:326"
( $at_check_trace; ovs-ofctl monitor br0 65534 invalid_ttl --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:326"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:328: ovs-appctl netdev-dummy/receive p1 --qid 0 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "pmd.at:328"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 --qid 0 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:328"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:330: ovs-appctl netdev-dummy/receive p1 --qid 1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "pmd.at:330"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 --qid 1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:330"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


$as_echo "pmd.at:332: waiting until test \`wc -l < ofctl_monitor.log\` -ge 4..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 4
}
if ovs_wait; then :
else
    $as_echo "pmd.at:332: wait failed" >&5

    $as_echo "pmd.at:332" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:332"
fi

$as_echo "pmd.at:333: waiting until ovs-appctl -t ovs-ofctl exit..." >&5
ovs_wait_cond () {
    ovs-appctl -t ovs-ofctl exit
}
if ovs_wait; then :
else
    $as_echo "pmd.at:333: wait failed" >&5

    $as_echo "pmd.at:333" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:333"
fi


{ set +x
$as_echo "$at_srcdir/pmd.at:336: ovs-appctl dpctl/dump-flows | flow_dump_prepend_pmd"
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:336"
( $at_check_trace; ovs-appctl dpctl/dump-flows | flow_dump_prepend_pmd
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0 recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), packets:0, bytes:0, used:never, actions:userspace(pid=0,controller(reason=1,dont_send=0,continuation=0,recirc_id=1,rule_cookie=0,controller_id=0,max_len=65535))
1 recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), packets:0, bytes:0, used:never, actions:userspace(pid=0,controller(reason=1,dont_send=0,continuation=0,recirc_id=1,rule_cookie=0,controller_id=0,max_len=65535))
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:336"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:341: cat ofctl_monitor.log"
at_fn_check_prepare_trace "pmd.at:341"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN2 (xid=0x0): cookie=0x0 total_len=42 in_port=1 (via action) data_len=42 (unbuffered)
icmp,vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,nw_src=10.0.0.2,nw_dst=10.0.0.1,nw_tos=0,nw_ecn=0,nw_ttl=64,icmp_type=8,icmp_code=0 icmp_csum:f7ff
NXT_PACKET_IN2 (xid=0x0): cookie=0x0 total_len=42 in_port=1 (via action) data_len=42 (unbuffered)
icmp,vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,nw_src=10.0.0.2,nw_dst=10.0.0.1,nw_tos=0,nw_ecn=0,nw_ttl=64,icmp_type=8,icmp_code=0 icmp_csum:f7ff
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:341"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:348: check_logs "
at_fn_check_prepare_trace "pmd.at:348"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:348"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/pmd.at:348: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "pmd.at:348"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:348"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/pmd.at:348: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "pmd.at:348"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:348"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "pmd.at:348: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "pmd.at:348: wait failed" >&5

    $as_echo "pmd.at:348" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:348"
fi

   { set +x
$as_echo "$at_srcdir/pmd.at:348: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "pmd.at:348"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:348"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/pmd.at:348: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "pmd.at:348"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:348"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "pmd.at:348: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "pmd.at:348: wait failed" >&5

    $as_echo "pmd.at:348" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:348"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1017
#AT_START_1018
at_fn_group_banner 1018 'pmd.at:351' \
  "PMD - change numa node" "                         " 53
at_xfail=no
(
  $as_echo "1018. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/pmd.at:352: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "pmd.at:352"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:352"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/pmd.at:352: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "pmd.at:352"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:352"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/pmd.at:352: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "pmd.at:352"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:352"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/pmd.at:352: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "pmd.at:352"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:352"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/pmd.at:352: ovs-vswitchd --enable-dummy --disable-system --dummy-numa 0,1 --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "pmd.at:352"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system --dummy-numa 0,1 --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:352"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/pmd.at:352: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "pmd.at:352"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:352"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/pmd.at:352: add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy-pmd ofport_request=1 options:n_rxq=2 -- \\
   add-port br0 p2 -- set Interface p2 type=dummy-pmd ofport_request=2 options:n_rxq=2 -- \\
   set Open_vSwitch . other_config:pmd-cpu-mask=3
 "
at_fn_check_prepare_notrace 'an embedded newline' "pmd.at:352"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy-pmd ofport_request=1 options:n_rxq=2 -- \
   add-port br0 p2 -- set Interface p2 type=dummy-pmd ofport_request=2 options:n_rxq=2 -- \
   set Open_vSwitch . other_config:pmd-cpu-mask=3

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:352"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:357: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "pmd.at:357"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:357"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:359: ovs-ofctl add-flow br0 action=controller"
at_fn_check_prepare_trace "pmd.at:359"
( $at_check_trace; ovs-ofctl add-flow br0 action=controller
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:359"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:361: ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show"
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:361"
( $at_check_trace; ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "p1 0 0 0
p1 1 0 0
p2 0 0 0
p2 1 0 0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:361"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/pmd.at:369: ovs-ofctl monitor br0 65534 invalid_ttl --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "pmd.at:369"
( $at_check_trace; ovs-ofctl monitor br0 65534 invalid_ttl --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:369"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:371: ovs-appctl netdev-dummy/receive p1 --qid 0 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "pmd.at:371"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 --qid 0 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:371"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


$as_echo "pmd.at:373: waiting until test \`wc -l < ofctl_monitor.log\` -ge 2..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 2
}
if ovs_wait; then :
else
    $as_echo "pmd.at:373: wait failed" >&5

    $as_echo "pmd.at:373" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:373"
fi

$as_echo "pmd.at:374: waiting until ovs-appctl -t ovs-ofctl exit..." >&5
ovs_wait_cond () {
    ovs-appctl -t ovs-ofctl exit
}
if ovs_wait; then :
else
    $as_echo "pmd.at:374: wait failed" >&5

    $as_echo "pmd.at:374" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:374"
fi


{ set +x
$as_echo "$at_srcdir/pmd.at:376: cat ofctl_monitor.log"
at_fn_check_prepare_trace "pmd.at:376"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN2 (xid=0x0): cookie=0x0 total_len=42 in_port=1 (via action) data_len=42 (unbuffered)
icmp,vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,nw_src=10.0.0.2,nw_dst=10.0.0.1,nw_tos=0,nw_ecn=0,nw_ttl=64,icmp_type=8,icmp_code=0 icmp_csum:f7ff
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:376"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:381: ovs-ofctl monitor br0 65534 invalid_ttl --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "pmd.at:381"
( $at_check_trace; ovs-ofctl monitor br0 65534 invalid_ttl --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:381"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:383: ovs-appctl netdev-dummy/receive p2 --qid 1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "pmd.at:383"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 --qid 1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:383"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


$as_echo "pmd.at:385: waiting until test \`wc -l < ofctl_monitor.log\` -ge 2..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 2
}
if ovs_wait; then :
else
    $as_echo "pmd.at:385: wait failed" >&5

    $as_echo "pmd.at:385" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:385"
fi

$as_echo "pmd.at:386: waiting until ovs-appctl -t ovs-ofctl exit..." >&5
ovs_wait_cond () {
    ovs-appctl -t ovs-ofctl exit
}
if ovs_wait; then :
else
    $as_echo "pmd.at:386: wait failed" >&5

    $as_echo "pmd.at:386" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:386"
fi


{ set +x
$as_echo "$at_srcdir/pmd.at:388: cat ofctl_monitor.log"
at_fn_check_prepare_trace "pmd.at:388"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN2 (xid=0x0): cookie=0x0 total_len=42 in_port=2 (via action) data_len=42 (unbuffered)
icmp,vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,nw_src=10.0.0.2,nw_dst=10.0.0.1,nw_tos=0,nw_ecn=0,nw_ttl=64,icmp_type=8,icmp_code=0 icmp_csum:f7ff
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:388"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:393: ovs-vsctl set Interface p2 options:numa_id=1"
at_fn_check_prepare_trace "pmd.at:393"
( $at_check_trace; ovs-vsctl set Interface p2 options:numa_id=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:393"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:395: ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show"
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:395"
( $at_check_trace; ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "p1 0 0 0
p1 1 0 0
p2 0 1 1
p2 1 1 1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:395"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:402: ovs-ofctl monitor br0 65534 invalid_ttl --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "pmd.at:402"
( $at_check_trace; ovs-ofctl monitor br0 65534 invalid_ttl --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:402"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:404: ovs-appctl netdev-dummy/receive p1 --qid 1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "pmd.at:404"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 --qid 1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:404"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


$as_echo "pmd.at:406: waiting until test \`wc -l < ofctl_monitor.log\` -ge 2..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 2
}
if ovs_wait; then :
else
    $as_echo "pmd.at:406: wait failed" >&5

    $as_echo "pmd.at:406" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:406"
fi

$as_echo "pmd.at:407: waiting until ovs-appctl -t ovs-ofctl exit..." >&5
ovs_wait_cond () {
    ovs-appctl -t ovs-ofctl exit
}
if ovs_wait; then :
else
    $as_echo "pmd.at:407: wait failed" >&5

    $as_echo "pmd.at:407" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:407"
fi


{ set +x
$as_echo "$at_srcdir/pmd.at:409: cat ofctl_monitor.log"
at_fn_check_prepare_trace "pmd.at:409"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN2 (xid=0x0): cookie=0x0 total_len=42 in_port=1 (via action) data_len=42 (unbuffered)
icmp,vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,nw_src=10.0.0.2,nw_dst=10.0.0.1,nw_tos=0,nw_ecn=0,nw_ttl=64,icmp_type=8,icmp_code=0 icmp_csum:f7ff
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:409"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:414: ovs-ofctl monitor br0 65534 invalid_ttl --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "pmd.at:414"
( $at_check_trace; ovs-ofctl monitor br0 65534 invalid_ttl --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:414"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:416: ovs-appctl netdev-dummy/receive p2 --qid 0 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "pmd.at:416"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 --qid 0 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:416"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


$as_echo "pmd.at:418: waiting until test \`wc -l < ofctl_monitor.log\` -ge 2..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 2
}
if ovs_wait; then :
else
    $as_echo "pmd.at:418: wait failed" >&5

    $as_echo "pmd.at:418" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:418"
fi

$as_echo "pmd.at:419: waiting until ovs-appctl -t ovs-ofctl exit..." >&5
ovs_wait_cond () {
    ovs-appctl -t ovs-ofctl exit
}
if ovs_wait; then :
else
    $as_echo "pmd.at:419: wait failed" >&5

    $as_echo "pmd.at:419" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:419"
fi


{ set +x
$as_echo "$at_srcdir/pmd.at:421: cat ofctl_monitor.log"
at_fn_check_prepare_trace "pmd.at:421"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN2 (xid=0x0): cookie=0x0 total_len=42 in_port=2 (via action) data_len=42 (unbuffered)
icmp,vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,nw_src=10.0.0.2,nw_dst=10.0.0.1,nw_tos=0,nw_ecn=0,nw_ttl=64,icmp_type=8,icmp_code=0 icmp_csum:f7ff
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:421"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:426: check_logs "
at_fn_check_prepare_trace "pmd.at:426"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:426"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/pmd.at:426: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "pmd.at:426"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:426"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/pmd.at:426: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "pmd.at:426"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:426"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "pmd.at:426: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "pmd.at:426: wait failed" >&5

    $as_echo "pmd.at:426" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:426"
fi

   { set +x
$as_echo "$at_srcdir/pmd.at:426: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "pmd.at:426"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:426"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/pmd.at:426: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "pmd.at:426"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:426"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "pmd.at:426: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "pmd.at:426: wait failed" >&5

    $as_echo "pmd.at:426" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:426"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1018
#AT_START_1019
at_fn_group_banner 1019 'pmd.at:429' \
  "PMD - non pmd device" "                           " 53
at_xfail=no
(
  $as_echo "1019. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/pmd.at:430: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "pmd.at:430"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:430"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/pmd.at:430: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "pmd.at:430"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:430"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/pmd.at:430: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "pmd.at:430"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:430"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/pmd.at:430: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "pmd.at:430"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:430"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/pmd.at:430: ovs-vswitchd --enable-dummy --disable-system --dummy-numa 0,0 --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "pmd.at:430"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system --dummy-numa 0,0 --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:430"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/pmd.at:430: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "pmd.at:430"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:430"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/pmd.at:430: add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy-pmd ofport_request=1 options:n_rxq=1 -- \\
   add-port br0 p2 -- set Interface p2 type=dummy ofport_request=2 -- \\
   set Interface br0 options:tx_pcap=br0.pcap -- \\
   set Open_vSwitch . other_config:pmd-cpu-mask=1
 "
at_fn_check_prepare_notrace 'an embedded newline' "pmd.at:430"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy-pmd ofport_request=1 options:n_rxq=1 -- \
   add-port br0 p2 -- set Interface p2 type=dummy ofport_request=2 -- \
   set Interface br0 options:tx_pcap=br0.pcap -- \
   set Open_vSwitch . other_config:pmd-cpu-mask=1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:430"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:436: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "pmd.at:436"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:436"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:438: ovs-ofctl add-flow br0 actions=LOCAL"
at_fn_check_prepare_trace "pmd.at:438"
( $at_check_trace; ovs-ofctl add-flow br0 actions=LOCAL
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:438"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:440: ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show"
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:440"
( $at_check_trace; ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "p1 0 0 0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:440"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:444: ovs-appctl netdev-dummy/receive p1 --qid 0 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "pmd.at:444"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 --qid 0 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:444"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:446: ovs-appctl netdev-dummy/receive p2 --qid 0 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "pmd.at:446"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 --qid 0 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:446"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


$as_echo "pmd.at:448: waiting until test \`ovs-pcap br0.pcap | wc -l\` -ge 2..." >&5
ovs_wait_cond () {
    test `ovs-pcap br0.pcap | wc -l` -ge 2
}
if ovs_wait; then :
else
    $as_echo "pmd.at:448: wait failed" >&5

    $as_echo "pmd.at:448" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:448"
fi


{ set +x
$as_echo "$at_srcdir/pmd.at:450: ovs-pcap br0.pcap"
at_fn_check_prepare_trace "pmd.at:450"
( $at_check_trace; ovs-pcap br0.pcap
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "50540000000a50540000000908004500001c00000000400166df0a0000020a0000010800f7ff00000000
50540000000a50540000000908004500001c00000000400166df0a0000020a0000010800f7ff00000000
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:450"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:455: ovs-vsctl set Open_vSwitch . other_config:pmd-cpu-mask=2"
at_fn_check_prepare_trace "pmd.at:455"
( $at_check_trace; ovs-vsctl set Open_vSwitch . other_config:pmd-cpu-mask=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:455"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:457: ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show"
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:457"
( $at_check_trace; ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "p1 0 0 1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:457"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:461: ovs-ofctl monitor br0 65534 invalid_ttl --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "pmd.at:461"
( $at_check_trace; ovs-ofctl monitor br0 65534 invalid_ttl --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:461"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:463: ovs-appctl netdev-dummy/receive p1 --qid 0 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "pmd.at:463"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 --qid 0 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:463"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:465: ovs-appctl netdev-dummy/receive p2 --qid 0 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "pmd.at:465"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 --qid 0 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:465"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


$as_echo "pmd.at:467: waiting until test \`ovs-pcap br0.pcap | wc -l\` -ge 4..." >&5
ovs_wait_cond () {
    test `ovs-pcap br0.pcap | wc -l` -ge 4
}
if ovs_wait; then :
else
    $as_echo "pmd.at:467: wait failed" >&5

    $as_echo "pmd.at:467" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:467"
fi


{ set +x
$as_echo "$at_srcdir/pmd.at:469: ovs-pcap br0.pcap"
at_fn_check_prepare_trace "pmd.at:469"
( $at_check_trace; ovs-pcap br0.pcap
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "50540000000a50540000000908004500001c00000000400166df0a0000020a0000010800f7ff00000000
50540000000a50540000000908004500001c00000000400166df0a0000020a0000010800f7ff00000000
50540000000a50540000000908004500001c00000000400166df0a0000020a0000010800f7ff00000000
50540000000a50540000000908004500001c00000000400166df0a0000020a0000010800f7ff00000000
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:469"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:476: check_logs "
at_fn_check_prepare_trace "pmd.at:476"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:476"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/pmd.at:476: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "pmd.at:476"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:476"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/pmd.at:476: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "pmd.at:476"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:476"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "pmd.at:476: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "pmd.at:476: wait failed" >&5

    $as_echo "pmd.at:476" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:476"
fi

   { set +x
$as_echo "$at_srcdir/pmd.at:476: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "pmd.at:476"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:476"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/pmd.at:476: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "pmd.at:476"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:476"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "pmd.at:476: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "pmd.at:476: wait failed" >&5

    $as_echo "pmd.at:476" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:476"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1019
#AT_START_1020
at_fn_group_banner 1020 'pmd.at:479' \
  "PMD - add remove ports" "                         " 53
at_xfail=no
(
  $as_echo "1020. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/pmd.at:480: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "pmd.at:480"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:480"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/pmd.at:480: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "pmd.at:480"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:480"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/pmd.at:480: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "pmd.at:480"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:480"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/pmd.at:480: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "pmd.at:480"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:480"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/pmd.at:480: ovs-vswitchd --enable-dummy --disable-system --dummy-numa 0,0 --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "pmd.at:480"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system --dummy-numa 0,0 --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:480"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/pmd.at:480: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "pmd.at:480"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:480"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/pmd.at:480: add_of_br 0  "
at_fn_check_prepare_trace "pmd.at:480"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:480"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:482: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "pmd.at:482"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:482"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:484: ovs-ofctl add-flow br0 actions=controller"
at_fn_check_prepare_trace "pmd.at:484"
( $at_check_trace; ovs-ofctl add-flow br0 actions=controller
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:484"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:486: ovs-vsctl add-port br0 p1 -- set Interface p1 type=dummy-pmd ofport_request=1 options:n_rxq=1"
at_fn_check_prepare_trace "pmd.at:486"
( $at_check_trace; ovs-vsctl add-port br0 p1 -- set Interface p1 type=dummy-pmd ofport_request=1 options:n_rxq=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:486"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:488: ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show"
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:488"
( $at_check_trace; ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "p1 0 0 0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:488"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/pmd.at:493: ovs-ofctl monitor br0 65534 invalid_ttl --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "pmd.at:493"
( $at_check_trace; ovs-ofctl monitor br0 65534 invalid_ttl --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:493"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:495: ovs-appctl netdev-dummy/receive p1 --qid 0 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "pmd.at:495"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 --qid 0 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:495"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


$as_echo "pmd.at:497: waiting until test \`wc -l < ofctl_monitor.log\` -ge 2..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 2
}
if ovs_wait; then :
else
    $as_echo "pmd.at:497: wait failed" >&5

    $as_echo "pmd.at:497" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:497"
fi

$as_echo "pmd.at:498: waiting until ovs-appctl -t ovs-ofctl exit..." >&5
ovs_wait_cond () {
    ovs-appctl -t ovs-ofctl exit
}
if ovs_wait; then :
else
    $as_echo "pmd.at:498: wait failed" >&5

    $as_echo "pmd.at:498" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:498"
fi


{ set +x
$as_echo "$at_srcdir/pmd.at:500: cat ofctl_monitor.log"
at_fn_check_prepare_trace "pmd.at:500"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN2 (xid=0x0): cookie=0x0 total_len=42 in_port=1 (via action) data_len=42 (unbuffered)
icmp,vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,nw_src=10.0.0.2,nw_dst=10.0.0.1,nw_tos=0,nw_ecn=0,nw_ttl=64,icmp_type=8,icmp_code=0 icmp_csum:f7ff
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:500"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:505: ovs-vsctl del-port br0 p1"
at_fn_check_prepare_trace "pmd.at:505"
( $at_check_trace; ovs-vsctl del-port br0 p1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:505"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/pmd.at:506: ovs-vsctl add-port br0 p1 -- set Interface p1 type=dummy-pmd ofport_request=1 options:n_rxq=1"
at_fn_check_prepare_trace "pmd.at:506"
( $at_check_trace; ovs-vsctl add-port br0 p1 -- set Interface p1 type=dummy-pmd ofport_request=1 options:n_rxq=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:506"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:508: ovs-ofctl monitor br0 65534 invalid_ttl --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "pmd.at:508"
( $at_check_trace; ovs-ofctl monitor br0 65534 invalid_ttl --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:508"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:510: ovs-appctl netdev-dummy/receive p1 --qid 0 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "pmd.at:510"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 --qid 0 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:510"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


$as_echo "pmd.at:512: waiting until test \`wc -l < ofctl_monitor.log\` -ge 2..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 2
}
if ovs_wait; then :
else
    $as_echo "pmd.at:512: wait failed" >&5

    $as_echo "pmd.at:512" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:512"
fi

$as_echo "pmd.at:513: waiting until ovs-appctl -t ovs-ofctl exit..." >&5
ovs_wait_cond () {
    ovs-appctl -t ovs-ofctl exit
}
if ovs_wait; then :
else
    $as_echo "pmd.at:513: wait failed" >&5

    $as_echo "pmd.at:513" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:513"
fi


{ set +x
$as_echo "$at_srcdir/pmd.at:515: cat ofctl_monitor.log"
at_fn_check_prepare_trace "pmd.at:515"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN2 (xid=0x0): cookie=0x0 total_len=42 in_port=1 (via action) data_len=42 (unbuffered)
icmp,vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,nw_src=10.0.0.2,nw_dst=10.0.0.1,nw_tos=0,nw_ecn=0,nw_ttl=64,icmp_type=8,icmp_code=0 icmp_csum:f7ff
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:515"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:520: check_logs "
at_fn_check_prepare_trace "pmd.at:520"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:520"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/pmd.at:520: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "pmd.at:520"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:520"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/pmd.at:520: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "pmd.at:520"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:520"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "pmd.at:520: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "pmd.at:520: wait failed" >&5

    $as_echo "pmd.at:520" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:520"
fi

   { set +x
$as_echo "$at_srcdir/pmd.at:520: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "pmd.at:520"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:520"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/pmd.at:520: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "pmd.at:520"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:520"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "pmd.at:520: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "pmd.at:520: wait failed" >&5

    $as_echo "pmd.at:520" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:520"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1020
#AT_START_1021
at_fn_group_banner 1021 'pmd.at:523' \
  "PMD - rxq affinity" "                             " 53
at_xfail=no
(
  $as_echo "1021. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/pmd.at:524: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "pmd.at:524"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:524"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/pmd.at:524: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "pmd.at:524"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:524"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/pmd.at:524: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "pmd.at:524"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:524"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/pmd.at:524: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "pmd.at:524"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:524"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/pmd.at:524: ovs-vswitchd --enable-dummy --disable-system --dummy-numa 0,0,0,0,0,0,0,0,0 --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "pmd.at:524"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system --dummy-numa 0,0,0,0,0,0,0,0,0 --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:524"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/pmd.at:524: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "pmd.at:524"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:524"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/pmd.at:524: add_of_br 0  "
at_fn_check_prepare_trace "pmd.at:524"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:524"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:526: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "pmd.at:526"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:526"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:528: ovs-ofctl add-flow br0 actions=controller"
at_fn_check_prepare_trace "pmd.at:528"
( $at_check_trace; ovs-ofctl add-flow br0 actions=controller
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:528"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:530: ovs-vsctl set Open_vSwitch . other_config:pmd-cpu-mask=0x1fe"
at_fn_check_prepare_trace "pmd.at:530"
( $at_check_trace; ovs-vsctl set Open_vSwitch . other_config:pmd-cpu-mask=0x1fe
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:530"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:532: ovs-vsctl add-port br0 p1 -- set Interface p1 type=dummy-pmd ofport_request=1 options:n_rxq=4 other_config:pmd-rxq-affinity=\"0:3,1:7,2:2,3:8\""
at_fn_check_prepare_trace "pmd.at:532"
( $at_check_trace; ovs-vsctl add-port br0 p1 -- set Interface p1 type=dummy-pmd ofport_request=1 options:n_rxq=4 other_config:pmd-rxq-affinity="0:3,1:7,2:2,3:8"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:532"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:535: ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show"
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:535"
( $at_check_trace; ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "p1 0 0 3
p1 1 0 7
p1 2 0 2
p1 3 0 8
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:535"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:542: ovs-vsctl set Open_vSwitch . other_config:pmd-cpu-mask=6"
at_fn_check_prepare_trace "pmd.at:542"
( $at_check_trace; ovs-vsctl set Open_vSwitch . other_config:pmd-cpu-mask=6
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:542"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:546: ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show"
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:546"
( $at_check_trace; ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "p1 2 0 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:546"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:550: ovs-vsctl remove Interface p1 other_config pmd-rxq-affinity"
at_fn_check_prepare_trace "pmd.at:550"
( $at_check_trace; ovs-vsctl remove Interface p1 other_config pmd-rxq-affinity
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:550"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:555: ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show | cut -f 1,2 -d ' ' | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:555"
( $at_check_trace; ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show | cut -f 1,2 -d ' ' | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "p1 0
p1 1
p1 2
p1 3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:555"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:562: ovs-vsctl set Interface p1 other_config:pmd-rxq-affinity='0:1'"
at_fn_check_prepare_trace "pmd.at:562"
( $at_check_trace; ovs-vsctl set Interface p1 other_config:pmd-rxq-affinity='0:1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:562"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:566: ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show"
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:566"
( $at_check_trace; ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "p1 0 0 1
p1 1 0 2
p1 2 0 2
p1 3 0 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:566"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:573: check_logs \"/dpif_netdev|WARN|There is no PMD thread on core/d\""
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:573"
( $at_check_trace; check_logs "/dpif_netdev|WARN|There is no PMD thread on core/d"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:573"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/pmd.at:573: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "pmd.at:573"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:573"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/pmd.at:573: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "pmd.at:573"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:573"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "pmd.at:573: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "pmd.at:573: wait failed" >&5

    $as_echo "pmd.at:573" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:573"
fi

   { set +x
$as_echo "$at_srcdir/pmd.at:573: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "pmd.at:573"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:573"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/pmd.at:573: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "pmd.at:573"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:573"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "pmd.at:573: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "pmd.at:573: wait failed" >&5

    $as_echo "pmd.at:573" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:573"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1021
#AT_START_1022
at_fn_group_banner 1022 'pmd.at:576' \
  "PMD - rxq affinity - NUMA" "                      " 53
at_xfail=no
(
  $as_echo "1022. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/pmd.at:577: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "pmd.at:577"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:577"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/pmd.at:577: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "pmd.at:577"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:577"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/pmd.at:577: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "pmd.at:577"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:577"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/pmd.at:577: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "pmd.at:577"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:577"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/pmd.at:577: ovs-vswitchd --enable-dummy --disable-system --dummy-numa 0,0,0,1,1 --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "pmd.at:577"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system --dummy-numa 0,0,0,1,1 --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:577"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/pmd.at:577: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "pmd.at:577"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:577"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/pmd.at:577: add_of_br 0  "
at_fn_check_prepare_trace "pmd.at:577"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:577"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:579: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "pmd.at:579"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:579"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:581: ovs-ofctl add-flow br0 actions=controller"
at_fn_check_prepare_trace "pmd.at:581"
( $at_check_trace; ovs-ofctl add-flow br0 actions=controller
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:581"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:583: ovs-vsctl set Open_vSwitch . other_config:pmd-cpu-mask=7e"
at_fn_check_prepare_trace "pmd.at:583"
( $at_check_trace; ovs-vsctl set Open_vSwitch . other_config:pmd-cpu-mask=7e
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:583"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:585: ovs-vsctl add-port br0 p1 -- set Interface p1 type=dummy-pmd ofport_request=1 options:n_rxq=2 options:numa_id=0 other_config:pmd-rxq-affinity=\"0:1,1:2\""
at_fn_check_prepare_trace "pmd.at:585"
( $at_check_trace; ovs-vsctl add-port br0 p1 -- set Interface p1 type=dummy-pmd ofport_request=1 options:n_rxq=2 options:numa_id=0 other_config:pmd-rxq-affinity="0:1,1:2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:585"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:588: ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show"
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:588"
( $at_check_trace; ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "p1 0 0 1
p1 1 0 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:588"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:593: ovs-vsctl set Interface p1 other_config:pmd-rxq-affinity=\"0:3,1:4\""
at_fn_check_prepare_trace "pmd.at:593"
( $at_check_trace; ovs-vsctl set Interface p1 other_config:pmd-rxq-affinity="0:3,1:4"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:593"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:597: ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show"
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:597"
( $at_check_trace; ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "p1 0 1 3
p1 1 1 4
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:597"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:602: ovs-vsctl set Interface p1 other_config:pmd-rxq-affinity=\"0:3,1:1\""
at_fn_check_prepare_trace "pmd.at:602"
( $at_check_trace; ovs-vsctl set Interface p1 other_config:pmd-rxq-affinity="0:3,1:1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:602"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:605: ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show"
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:605"
( $at_check_trace; ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "p1 0 1 3
p1 1 0 1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:605"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:610: ovs-vsctl remove Interface p1 other_config pmd-rxq-affinity"
at_fn_check_prepare_trace "pmd.at:610"
( $at_check_trace; ovs-vsctl remove Interface p1 other_config pmd-rxq-affinity
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:610"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:615: ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show | cut -f 1,2 -d ' ' | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:615"
( $at_check_trace; ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show | cut -f 1,2 -d ' ' | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "p1 0
p1 1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:615"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:620: ovs-vsctl set Interface p1 other_config:pmd-rxq-affinity='0:3'"
at_fn_check_prepare_trace "pmd.at:620"
( $at_check_trace; ovs-vsctl set Interface p1 other_config:pmd-rxq-affinity='0:3'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:620"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:624: ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show | cut -f 1,2,3 -d ' '"
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:624"
( $at_check_trace; ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show | cut -f 1,2,3 -d ' '
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "p1 0 1
p1 1 0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:624"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:629: check_logs "
at_fn_check_prepare_trace "pmd.at:629"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:629"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/pmd.at:629: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "pmd.at:629"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:629"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/pmd.at:629: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "pmd.at:629"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:629"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "pmd.at:629: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "pmd.at:629: wait failed" >&5

    $as_echo "pmd.at:629" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:629"
fi

   { set +x
$as_echo "$at_srcdir/pmd.at:629: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "pmd.at:629"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:629"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/pmd.at:629: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "pmd.at:629"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:629"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "pmd.at:629: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "pmd.at:629: wait failed" >&5

    $as_echo "pmd.at:629" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:629"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1022
#AT_START_1023
at_fn_group_banner 1023 'pmd.at:632' \
  "PMD - monitor threads" "                          " 53
at_xfail=no
(
  $as_echo "1023. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/pmd.at:633: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "pmd.at:633"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:633"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/pmd.at:633: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "pmd.at:633"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:633"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/pmd.at:633: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "pmd.at:633"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:633"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/pmd.at:633: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "pmd.at:633"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:633"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/pmd.at:633: ovs-vswitchd --enable-dummy --disable-system --dummy-numa 0,0 --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "pmd.at:633"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system --dummy-numa 0,0 --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:633"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/pmd.at:633: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "pmd.at:633"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:633"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/pmd.at:633: add_of_br 0  "
at_fn_check_prepare_trace "pmd.at:633"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:633"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:635: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "pmd.at:635"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:635"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:638: ovs-vsctl add-port br0 p1 -- set Interface p1 type=dummy-pmd ofport_request=1 options:n_rxq=1 options:pstream=punix:\$OVS_RUNDIR/net.sock"
at_fn_check_prepare_dynamic "ovs-vsctl add-port br0 p1 -- set Interface p1 type=dummy-pmd ofport_request=1 options:n_rxq=1 options:pstream=punix:$OVS_RUNDIR/net.sock" "pmd.at:638"
( $at_check_trace; ovs-vsctl add-port br0 p1 -- set Interface p1 type=dummy-pmd ofport_request=1 options:n_rxq=1 options:pstream=punix:$OVS_RUNDIR/net.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:638"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/pmd.at:639: ovs-vsctl add-port br0 p2 -- set Interface p2 type=dummy-pmd ofport_request=2 options:n_rxq=1 options:stream=unix:\$OVS_RUNDIR/net.sock"
at_fn_check_prepare_dynamic "ovs-vsctl add-port br0 p2 -- set Interface p2 type=dummy-pmd ofport_request=2 options:n_rxq=1 options:stream=unix:$OVS_RUNDIR/net.sock" "pmd.at:639"
( $at_check_trace; ovs-vsctl add-port br0 p2 -- set Interface p2 type=dummy-pmd ofport_request=2 options:n_rxq=1 options:stream=unix:$OVS_RUNDIR/net.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:639"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:641: ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show"
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:641"
( $at_check_trace; ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "p1 0 0 0
p2 0 0 0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:641"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:648: ovs-vsctl set Interface p1 bfd:enable=true bfd:min_rx=1 bfd:min_tx=1"
at_fn_check_prepare_trace "pmd.at:648"
( $at_check_trace; ovs-vsctl set Interface p1 bfd:enable=true bfd:min_rx=1 bfd:min_tx=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:648"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/pmd.at:649: ovs-vsctl set Interface p2 bfd:enable=true bfd:min_rx=1 bfd:min_tx=1"
at_fn_check_prepare_trace "pmd.at:649"
( $at_check_trace; ovs-vsctl set Interface p2 bfd:enable=true bfd:min_rx=1 bfd:min_tx=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:649"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:651: ovs-vsctl --timeout=10 wait-until Interface p1 bfd_status:forwarding=true \\
                              -- wait-until Interface p2 bfd_status:forwarding=true"
at_fn_check_prepare_notrace 'an embedded newline' "pmd.at:651"
( $at_check_trace; ovs-vsctl --timeout=10 wait-until Interface p1 bfd_status:forwarding=true \
                              -- wait-until Interface p2 bfd_status:forwarding=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:651"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:655: ovs-vsctl set Interface p1 options:n_rxq=2"
at_fn_check_prepare_trace "pmd.at:655"
( $at_check_trace; ovs-vsctl set Interface p1 options:n_rxq=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:655"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/pmd.at:656: ovs-vsctl set Interface p2 options:n_rxq=2"
at_fn_check_prepare_trace "pmd.at:656"
( $at_check_trace; ovs-vsctl set Interface p2 options:n_rxq=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:656"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:659: ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show"
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:659"
( $at_check_trace; ovs-appctl dpif-netdev/pmd-rxq-show | parse_pmd_rxq_show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "p1 0 0 0
p1 1 0 0
p2 0 0 0
p2 1 0 0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:659"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:666: check_logs "
at_fn_check_prepare_trace "pmd.at:666"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:666"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/pmd.at:666: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "pmd.at:666"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:666"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/pmd.at:666: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "pmd.at:666"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:666"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "pmd.at:666: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "pmd.at:666: wait failed" >&5

    $as_echo "pmd.at:666" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:666"
fi

   { set +x
$as_echo "$at_srcdir/pmd.at:666: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "pmd.at:666"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:666"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/pmd.at:666: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "pmd.at:666"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:666"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "pmd.at:666: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "pmd.at:666: wait failed" >&5

    $as_echo "pmd.at:666" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:666"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1023
#AT_START_1024
at_fn_group_banner 1024 'pmd.at:669' \
  "PMD - dpctl" "                                    " 53
at_xfail=no
(
  $as_echo "1024. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/pmd.at:670: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "pmd.at:670"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:670"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/pmd.at:670: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "pmd.at:670"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:670"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/pmd.at:670: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "pmd.at:670"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:670"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/pmd.at:670: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "pmd.at:670"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:670"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/pmd.at:670: ovs-vswitchd --enable-dummy --disable-system --dummy-numa 0,0 --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "pmd.at:670"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system --dummy-numa 0,0 --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:670"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/pmd.at:670: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "pmd.at:670"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:670"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/pmd.at:670: add_of_br 0 del-br br0 "
at_fn_check_prepare_trace "pmd.at:670"
( $at_check_trace; add_of_br 0 del-br br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:670"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:672: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "pmd.at:672"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:672"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:674: ovs-appctl dpctl/add-dp dummy@dp0"
at_fn_check_prepare_trace "pmd.at:674"
( $at_check_trace; ovs-appctl dpctl/add-dp dummy@dp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:674"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/pmd.at:675: ovs-appctl dpctl/add-if dummy@dp0 p1,type=dummy-pmd"
at_fn_check_prepare_trace "pmd.at:675"
( $at_check_trace; ovs-appctl dpctl/add-if dummy@dp0 p1,type=dummy-pmd
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:675"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/pmd.at:676: ovs-appctl dpctl/add-if dummy@dp0 p2,type=dummy"
at_fn_check_prepare_trace "pmd.at:676"
( $at_check_trace; ovs-appctl dpctl/add-if dummy@dp0 p2,type=dummy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:676"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:678: ovs-appctl dpif-netdev/pmd-rxq-show dp0 | parse_pmd_rxq_show"
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:678"
( $at_check_trace; ovs-appctl dpif-netdev/pmd-rxq-show dp0 | parse_pmd_rxq_show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "p1 0 0 0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:678"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:682: ovs-appctl dpctl/show dummy@dp0"
at_fn_check_prepare_trace "pmd.at:682"
( $at_check_trace; ovs-appctl dpctl/show dummy@dp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dummy@dp0:
	lookups: hit:0 missed:0 lost:0
	flows: 0
	port 0: dp0 (dummy-internal)
	port 1: p1 (dummy-pmd: configured_rx_queues=1, configured_tx_queues=1, requested_rx_queues=1, requested_tx_queues=1)
	port 2: p2 (dummy)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:682"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:691: ovs-appctl dpctl/add-flow dummy@dp0 'in_port(1),eth(src=00:00:00:00:00:01,dst=00:00:00:00:00:02),eth_type(0x1234)' 2"
at_fn_check_prepare_trace "pmd.at:691"
( $at_check_trace; ovs-appctl dpctl/add-flow dummy@dp0 'in_port(1),eth(src=00:00:00:00:00:01,dst=00:00:00:00:00:02),eth_type(0x1234)' 2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:691"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:694: ovs-appctl dpctl/dump-flows dummy@dp0 | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "pmd.at:694"
( $at_check_trace; ovs-appctl dpctl/dump-flows dummy@dp0 | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
flow-dump from pmd on cpu core: 0
recirc_id(0),in_port(1),eth(src=00:00:00:00:00:01,dst=00:00:00:00:00:02),eth_type(0x1234), packets:0, bytes:0, used:never, actions:2
recirc_id(0),in_port(1),eth(src=00:00:00:00:00:01,dst=00:00:00:00:00:02),eth_type(0x1234), packets:0, bytes:0, used:never, actions:2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:694"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:701: ovs-appctl dpctl/del-flow dummy@dp0 'in_port(1),eth(src=00:00:00:00:00:01,dst=00:00:00:00:00:02),eth_type(0x1234)'"
at_fn_check_prepare_trace "pmd.at:701"
( $at_check_trace; ovs-appctl dpctl/del-flow dummy@dp0 'in_port(1),eth(src=00:00:00:00:00:01,dst=00:00:00:00:00:02),eth_type(0x1234)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:701"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:704: ovs-appctl dpctl/dump-flows dummy@dp0"
at_fn_check_prepare_trace "pmd.at:704"
( $at_check_trace; ovs-appctl dpctl/dump-flows dummy@dp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:704"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:707: ovs-appctl dpctl/del-dp dummy@dp0"
at_fn_check_prepare_trace "pmd.at:707"
( $at_check_trace; ovs-appctl dpctl/del-dp dummy@dp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:707"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/pmd.at:710: check_logs "
at_fn_check_prepare_trace "pmd.at:710"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:710"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/pmd.at:710: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "pmd.at:710"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:710"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/pmd.at:710: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "pmd.at:710"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:710"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "pmd.at:710: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "pmd.at:710: wait failed" >&5

    $as_echo "pmd.at:710" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:710"
fi

   { set +x
$as_echo "$at_srcdir/pmd.at:710: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "pmd.at:710"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:710"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/pmd.at:710: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "pmd.at:710"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pmd.at:710"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "pmd.at:710: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "pmd.at:710: wait failed" >&5

    $as_echo "pmd.at:710" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/pmd.at:710"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1024
#AT_START_1025
at_fn_group_banner 1025 'dpctl.at:3' \
  "dpctl - add-dp del-dp" "                          " 54
at_xfail=no
(
  $as_echo "1025. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/dpctl.at:4: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "dpctl.at:4"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:4"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/dpctl.at:4: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "dpctl.at:4"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:4"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/dpctl.at:4: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "dpctl.at:4"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:4"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/dpctl.at:4: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "dpctl.at:4"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:4"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/dpctl.at:4: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "dpctl.at:4"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:4"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/dpctl.at:4: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "dpctl.at:4"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:4"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/dpctl.at:4: add_of_br 0  "
at_fn_check_prepare_trace "dpctl.at:4"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:4"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/dpctl.at:5: ovs-appctl dpctl/add-dp dummy@br0"
at_fn_check_prepare_trace "dpctl.at:5"
( $at_check_trace; ovs-appctl dpctl/add-dp dummy@br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:5"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpctl.at:6: ovs-appctl dpctl/add-dp dummy@br0"
at_fn_check_prepare_trace "dpctl.at:6"
( $at_check_trace; ovs-appctl dpctl/add-dp dummy@br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vswitchd: add_dp (File exists)
ovs-appctl: ovs-vswitchd: server returned an error
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/dpctl.at:6"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpctl.at:10: ovs-appctl dpctl/del-dp dummy@br0"
at_fn_check_prepare_trace "dpctl.at:10"
( $at_check_trace; ovs-appctl dpctl/del-dp dummy@br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:10"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpctl.at:11: ovs-appctl dpctl/del-dp dummy@br0"
at_fn_check_prepare_trace "dpctl.at:11"
( $at_check_trace; ovs-appctl dpctl/del-dp dummy@br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/dpctl.at:11"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpctl.at:12: sed 's/(.*)/(...)/' stderr"
at_fn_check_prepare_trace "dpctl.at:12"
( $at_check_trace; sed 's/(.*)/(...)/' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ovs-vswitchd: opening datapath (...)
ovs-appctl: ovs-vswitchd: server returned an error
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:12"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpctl.at:16: check_logs "
at_fn_check_prepare_trace "dpctl.at:16"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:16"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/dpctl.at:16: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "dpctl.at:16"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:16"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/dpctl.at:16: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "dpctl.at:16"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:16"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "dpctl.at:16: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "dpctl.at:16: wait failed" >&5

    $as_echo "dpctl.at:16" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/dpctl.at:16"
fi

   { set +x
$as_echo "$at_srcdir/dpctl.at:16: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "dpctl.at:16"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:16"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/dpctl.at:16: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "dpctl.at:16"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:16"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "dpctl.at:16: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "dpctl.at:16: wait failed" >&5

    $as_echo "dpctl.at:16" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/dpctl.at:16"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1025
#AT_START_1026
at_fn_group_banner 1026 'dpctl.at:19' \
  "dpctl - add-if set-if del-if" "                   " 54
at_xfail=no
(
  $as_echo "1026. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/dpctl.at:20: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "dpctl.at:20"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:20"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/dpctl.at:20: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "dpctl.at:20"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:20"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/dpctl.at:20: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "dpctl.at:20"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:20"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/dpctl.at:20: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "dpctl.at:20"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:20"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/dpctl.at:20: ovs-vswitchd --enable-dummy=override --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "dpctl.at:20"
( $at_check_trace; ovs-vswitchd --enable-dummy=override --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:20"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/dpctl.at:20: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "dpctl.at:20"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:20"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/dpctl.at:20: add_of_br 0  "
at_fn_check_prepare_trace "dpctl.at:20"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:20"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/dpctl.at:21: ovs-appctl dpctl/add-dp dummy@br0"
at_fn_check_prepare_trace "dpctl.at:21"
( $at_check_trace; ovs-appctl dpctl/add-dp dummy@br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:21"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpctl.at:22: ovs-appctl dpctl/show dummy@br0"
at_fn_check_prepare_trace "dpctl.at:22"
( $at_check_trace; ovs-appctl dpctl/show dummy@br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dummy@br0:
	lookups: hit:0 missed:0 lost:0
	flows: 0
	port 0: br0 (dummy-internal)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:22"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpctl.at:28: ovs-appctl dpctl/add-if dummy@br0 vif1.0,type=dummy,port_no=5"
at_fn_check_prepare_trace "dpctl.at:28"
( $at_check_trace; ovs-appctl dpctl/add-if dummy@br0 vif1.0,type=dummy,port_no=5
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:28"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpctl.at:29: ovs-appctl dpctl/show dummy@br0"
at_fn_check_prepare_trace "dpctl.at:29"
( $at_check_trace; ovs-appctl dpctl/show dummy@br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dummy@br0:
	lookups: hit:0 missed:0 lost:0
	flows: 0
	port 0: br0 (dummy-internal)
	port 5: vif1.0 (dummy)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:29"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpctl.at:36: ovs-appctl dpctl/add-if dummy@br0 vif1.0,type=dummy"
at_fn_check_prepare_trace "dpctl.at:36"
( $at_check_trace; ovs-appctl dpctl/add-if dummy@br0 vif1.0,type=dummy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/dpctl.at:36"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpctl.at:38: sed 's/(.*)/(...)/' stderr"
at_fn_check_prepare_trace "dpctl.at:38"
( $at_check_trace; sed 's/(.*)/(...)/' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ovs-vswitchd: adding vif1.0 to dummy@br0 failed (...)
ovs-appctl: ovs-vswitchd: server returned an error
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:38"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpctl.at:42: ovs-appctl dpctl/set-if dummy@br0 vif1.0,port_no=5"
at_fn_check_prepare_trace "dpctl.at:42"
( $at_check_trace; ovs-appctl dpctl/set-if dummy@br0 vif1.0,port_no=5
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:42"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpctl.at:43: ovs-appctl dpctl/set-if dummy@br0 vif1.0,type=system"
at_fn_check_prepare_trace "dpctl.at:43"
( $at_check_trace; ovs-appctl dpctl/set-if dummy@br0 vif1.0,type=system
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vswitchd: vif1.0: can't change type from dummy to system
ovs-appctl: ovs-vswitchd: server returned an error
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/dpctl.at:43"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpctl.at:47: ovs-appctl dpctl/set-if dummy@br0 br0,type=dummy-internal"
at_fn_check_prepare_trace "dpctl.at:47"
( $at_check_trace; ovs-appctl dpctl/set-if dummy@br0 br0,type=dummy-internal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:47"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpctl.at:48: ovs-appctl dpctl/set-if dummy@br0 br0,type=internal"
at_fn_check_prepare_trace "dpctl.at:48"
( $at_check_trace; ovs-appctl dpctl/set-if dummy@br0 br0,type=internal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vswitchd: br0: can't change type from dummy-internal to internal
ovs-appctl: ovs-vswitchd: server returned an error
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/dpctl.at:48"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpctl.at:52: ovs-appctl dpctl/del-if dummy@br0 vif1.0"
at_fn_check_prepare_trace "dpctl.at:52"
( $at_check_trace; ovs-appctl dpctl/del-if dummy@br0 vif1.0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:52"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpctl.at:53: ovs-appctl dpctl/show dummy@br0"
at_fn_check_prepare_trace "dpctl.at:53"
( $at_check_trace; ovs-appctl dpctl/show dummy@br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dummy@br0:
	lookups: hit:0 missed:0 lost:0
	flows: 0
	port 0: br0 (dummy-internal)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:53"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpctl.at:59: ovs-appctl dpctl/del-if dummy@br0 vif1.0"
at_fn_check_prepare_trace "dpctl.at:59"
( $at_check_trace; ovs-appctl dpctl/del-if dummy@br0 vif1.0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vswitchd: no port named vif1.0
ovs-appctl: ovs-vswitchd: server returned an error
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/dpctl.at:59"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpctl.at:63: ovs-appctl dpctl/show dummy@br0"
at_fn_check_prepare_trace "dpctl.at:63"
( $at_check_trace; ovs-appctl dpctl/show dummy@br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dummy@br0:
	lookups: hit:0 missed:0 lost:0
	flows: 0
	port 0: br0 (dummy-internal)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:63"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpctl.at:69: ovs-appctl dpctl/del-if dummy@br0 nonexistent"
at_fn_check_prepare_trace "dpctl.at:69"
( $at_check_trace; ovs-appctl dpctl/del-if dummy@br0 nonexistent
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vswitchd: no port named nonexistent
ovs-appctl: ovs-vswitchd: server returned an error
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/dpctl.at:69"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpctl.at:73: ovs-appctl dpctl/del-if dummy@br0 br0"
at_fn_check_prepare_trace "dpctl.at:73"
( $at_check_trace; ovs-appctl dpctl/del-if dummy@br0 br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/dpctl.at:73"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpctl.at:74: sed 's/(.*)/(...)/' stderr"
at_fn_check_prepare_trace "dpctl.at:74"
( $at_check_trace; sed 's/(.*)/(...)/' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ovs-vswitchd: deleting port br0 from dummy@br0 failed (...)
ovs-appctl: ovs-vswitchd: server returned an error
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:74"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpctl.at:78: ovs-appctl dpctl/del-dp dummy@br0"
at_fn_check_prepare_trace "dpctl.at:78"
( $at_check_trace; ovs-appctl dpctl/del-dp dummy@br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:78"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpctl.at:79: ovs-appctl dpctl/del-if dummy@br0 br0"
at_fn_check_prepare_trace "dpctl.at:79"
( $at_check_trace; ovs-appctl dpctl/del-if dummy@br0 br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/dpctl.at:79"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpctl.at:80: sed 's/(.*)/(...)/' stderr"
at_fn_check_prepare_trace "dpctl.at:80"
( $at_check_trace; sed 's/(.*)/(...)/' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ovs-vswitchd: opening datapath (...)
ovs-appctl: ovs-vswitchd: server returned an error
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:80"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/dpctl.at:84: check_logs \"/dummy@br0: port_del failed/d
/dummy@br0: failed to add vif1.0 as port/d
/Dropped 1 log messages in last/d\""
at_fn_check_prepare_notrace 'an embedded newline' "dpctl.at:84"
( $at_check_trace; check_logs "/dummy@br0: port_del failed/d
/dummy@br0: failed to add vif1.0 as port/d
/Dropped 1 log messages in last/d"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:84"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/dpctl.at:84: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "dpctl.at:84"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:84"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/dpctl.at:84: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "dpctl.at:84"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:84"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "dpctl.at:84: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "dpctl.at:84: wait failed" >&5

    $as_echo "dpctl.at:84" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/dpctl.at:84"
fi

   { set +x
$as_echo "$at_srcdir/dpctl.at:84: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "dpctl.at:84"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:84"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/dpctl.at:84: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "dpctl.at:84"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dpctl.at:84"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "dpctl.at:84: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "dpctl.at:84: wait failed" >&5

    $as_echo "dpctl.at:84" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/dpctl.at:84"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1026
#AT_START_1027
at_fn_group_banner 1027 'ofproto-dpif.at:3' \
  "ofproto-dpif - revalidator/wait" "                " 55
at_xfail=no
(
  $as_echo "1027. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:4"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:4"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:4"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:4"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:4"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5: ovs-appctl revalidator/wait"
at_fn_check_prepare_trace "ofproto-dpif.at:5"
( $at_check_trace; ovs-appctl revalidator/wait
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:6"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:6"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:6"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6: wait failed" >&5

    $as_echo "ofproto-dpif.at:6" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:6"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:6"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6: wait failed" >&5

    $as_echo "ofproto-dpif.at:6" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1027
#AT_START_1028
at_fn_group_banner 1028 'ofproto-dpif.at:9' \
  "ofproto-dpif - active-backup bonding" "           " 55
at_xfail=no
(
  $as_echo "1028. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

# Create br0 with interfaces p1, p2 and p7, creating bond0 with p1 and p2
#    and br1 with interfaces p3, p4 and p8.
# toggle p1,p2 of bond0 up and down to test bonding in active-backup mode.
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:13: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:13"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:13"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:13: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:13"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:13"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:13: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:13"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:13"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:13: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:13"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:13"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:13: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:13"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:13"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:13: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:13"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:13"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:13: add_of_br 0 add-bond br0 bond0 p1 p2 bond_mode=active-backup --\\
   set interface p1 type=dummy options:pstream=punix:\$OVS_RUNDIR/p1.sock ofport_request=1 -- \\
   set interface p2 type=dummy options:pstream=punix:\$OVS_RUNDIR/p2.sock ofport_request=2 -- \\
   add-port br0 p7 -- set interface p7 ofport_request=7 type=dummy -- \\
   add-br br1 -- \\
   set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \\
   set bridge br1 datapath-type=dummy other-config:datapath-id=1234 \\
                  fail-mode=secure -- \\
   add-port br1 p3 -- set interface p3 type=dummy options:stream=unix:\$OVS_RUNDIR/p1.sock ofport_request=3 -- \\
   add-port br1 p4 -- set interface p4 type=dummy options:stream=unix:\$OVS_RUNDIR/p2.sock ofport_request=4 -- \\
   add-port br1 p8 -- set interface p8 ofport_request=8 type=dummy -- "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:13"
( $at_check_trace; add_of_br 0 add-bond br0 bond0 p1 p2 bond_mode=active-backup --\
   set interface p1 type=dummy options:pstream=punix:$OVS_RUNDIR/p1.sock ofport_request=1 -- \
   set interface p2 type=dummy options:pstream=punix:$OVS_RUNDIR/p2.sock ofport_request=2 -- \
   add-port br0 p7 -- set interface p7 ofport_request=7 type=dummy -- \
   add-br br1 -- \
   set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \
   set bridge br1 datapath-type=dummy other-config:datapath-id=1234 \
                  fail-mode=secure -- \
   add-port br1 p3 -- set interface p3 type=dummy options:stream=unix:$OVS_RUNDIR/p1.sock ofport_request=3 -- \
   add-port br1 p4 -- set interface p4 type=dummy options:stream=unix:$OVS_RUNDIR/p2.sock ofport_request=4 -- \
   add-port br1 p8 -- set interface p8 ofport_request=8 type=dummy --
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:13"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


\
    \
	 $as_echo "ofproto-dpif.at:25: waiting while ovs-appctl netdev-dummy/conn-state p3 \\
                  | grep 'unknown\\|disconnected'..." >&5
ovs_wait_cond () {
    if ovs-appctl netdev-dummy/conn-state p3 \
                  | grep 'unknown\|disconnected'; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:25: wait failed" >&5

    $as_echo "ofproto-dpif.at:25" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:25"
fi
  \
	 $as_echo "ofproto-dpif.at:25: waiting while ovs-appctl netdev-dummy/conn-state p4 \\
                  | grep 'unknown\\|disconnected'..." >&5
ovs_wait_cond () {
    if ovs-appctl netdev-dummy/conn-state p4 \
                  | grep 'unknown\|disconnected'; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:25: wait failed" >&5

    $as_echo "ofproto-dpif.at:25" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:25"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:26: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:26"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:26"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:28: ovs-ofctl add-flow br0 action=normal"
at_fn_check_prepare_trace "ofproto-dpif.at:28"
( $at_check_trace; ovs-ofctl add-flow br0 action=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:28"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:29: ovs-ofctl add-flow br1 action=normal"
at_fn_check_prepare_trace "ofproto-dpif.at:29"
( $at_check_trace; ovs-ofctl add-flow br1 action=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:29"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl netdev-dummy/set-admin-state up
ovs-appctl time/warp 100
ovs-appctl netdev-dummy/set-admin-state p2 down
ovs-appctl time/stop
ovs-appctl time/warp 100
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:35: ovs-appctl netdev-dummy/receive p7 'in_port(7),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:35"
( $at_check_trace; ovs-appctl netdev-dummy/receive p7 'in_port(7),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:35"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:36: ovs-appctl netdev-dummy/receive p7 'in_port(7),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:36"
( $at_check_trace; ovs-appctl netdev-dummy/receive p7 'in_port(7),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:36"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 100
ovs-appctl netdev-dummy/set-admin-state p2 up
ovs-appctl netdev-dummy/set-admin-state p1 down
ovs-appctl time/warp 100
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:41: ovs-appctl netdev-dummy/receive p7 'in_port(7),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0d),eth_type(0x0800),ipv4(src=10.0.0.5,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:41"
( $at_check_trace; ovs-appctl netdev-dummy/receive p7 'in_port(7),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0d),eth_type(0x0800),ipv4(src=10.0.0.5,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:41"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:42: ovs-appctl netdev-dummy/receive p7 'in_port(7),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0e),eth_type(0x0800),ipv4(src=10.0.0.6,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:42"
( $at_check_trace; ovs-appctl netdev-dummy/receive p7 'in_port(7),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0e),eth_type(0x0800),ipv4(src=10.0.0.6,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:42"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 200 100
sleep 1
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:45: grep 'in_port([348])' ovs-vswitchd.log | filter_flow_install | strip_xout"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:45"
( $at_check_trace; grep 'in_port([348])' ovs-vswitchd.log | filter_flow_install | strip_xout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(3),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(frag=no), actions: <del>
recirc_id(0),in_port(3),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(frag=no), actions: <del>
recirc_id(0),in_port(4),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0d),eth_type(0x0800),ipv4(frag=no), actions: <del>
recirc_id(0),in_port(4),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0e),eth_type(0x0800),ipv4(frag=no), actions: <del>
recirc_id(0),in_port(4),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=ff:ff:ff:ff:ff:ff),eth_type(0x8035), actions: <del>
recirc_id(0),in_port(4),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=ff:ff:ff:ff:ff:ff),eth_type(0x8035), actions: <del>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:45"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:53: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:53"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:53"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:53: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:53"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:53"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:53: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:53"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:53"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:53: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:53: wait failed" >&5

    $as_echo "ofproto-dpif.at:53" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:53"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:53: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:53"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:53"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:53: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:53"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:53"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:53: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:53: wait failed" >&5

    $as_echo "ofproto-dpif.at:53" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:53"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1028
#AT_START_1029
at_fn_group_banner 1029 'ofproto-dpif.at:56' \
  "ofproto-dpif - balance-slb bonding" "             " 55
at_xfail=no
(
  $as_echo "1029. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

# Create br0 with interfaces bond0(p1, p2, p3) and p7,
#    and br1 with interfaces p4, p5, p6 and p8.
#    p1 <-> p4, p2 <-> p5, p3 <-> p6
# Send some traffic, make sure the traffic are spread based on source mac.
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:61: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:61"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:61"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:61: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:61"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:61"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:61: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:61"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:61"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:61: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:61"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:61"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:61: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:61"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:61"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:61: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:61"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:61"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:61: add_of_br 0 add-bond br0 bond0 p1 p2 p3 bond_mode=balance-slb --\\
   set interface p1 type=dummy options:pstream=punix:\$OVS_RUNDIR/p1.sock ofport_request=1 -- \\
   set interface p2 type=dummy options:pstream=punix:\$OVS_RUNDIR/p2.sock ofport_request=2 -- \\
   set interface p3 type=dummy options:pstream=punix:\$OVS_RUNDIR/p3.sock ofport_request=3 -- \\
   add-port br0 p7 -- set interface p7 ofport_request=7 type=dummy -- \\
   add-br br1 -- \\
   set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \\
   set bridge br1 datapath-type=dummy other-config:datapath-id=1234 \\
                  fail-mode=secure -- \\
   add-port br1 p4 -- set interface p4 type=dummy options:stream=unix:\$OVS_RUNDIR/p1.sock ofport_request=4 -- \\
   add-port br1 p5 -- set interface p5 type=dummy options:stream=unix:\$OVS_RUNDIR/p2.sock ofport_request=5 -- \\
   add-port br1 p6 -- set interface p6 type=dummy options:stream=unix:\$OVS_RUNDIR/p3.sock ofport_request=6 -- \\
   add-port br1 p8 -- set interface p8 ofport_request=8 type=dummy -- "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:61"
( $at_check_trace; add_of_br 0 add-bond br0 bond0 p1 p2 p3 bond_mode=balance-slb --\
   set interface p1 type=dummy options:pstream=punix:$OVS_RUNDIR/p1.sock ofport_request=1 -- \
   set interface p2 type=dummy options:pstream=punix:$OVS_RUNDIR/p2.sock ofport_request=2 -- \
   set interface p3 type=dummy options:pstream=punix:$OVS_RUNDIR/p3.sock ofport_request=3 -- \
   add-port br0 p7 -- set interface p7 ofport_request=7 type=dummy -- \
   add-br br1 -- \
   set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \
   set bridge br1 datapath-type=dummy other-config:datapath-id=1234 \
                  fail-mode=secure -- \
   add-port br1 p4 -- set interface p4 type=dummy options:stream=unix:$OVS_RUNDIR/p1.sock ofport_request=4 -- \
   add-port br1 p5 -- set interface p5 type=dummy options:stream=unix:$OVS_RUNDIR/p2.sock ofport_request=5 -- \
   add-port br1 p6 -- set interface p6 type=dummy options:stream=unix:$OVS_RUNDIR/p3.sock ofport_request=6 -- \
   add-port br1 p8 -- set interface p8 ofport_request=8 type=dummy --
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:61"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


\
    \
	 $as_echo "ofproto-dpif.at:75: waiting while ovs-appctl netdev-dummy/conn-state p4 \\
                  | grep 'unknown\\|disconnected'..." >&5
ovs_wait_cond () {
    if ovs-appctl netdev-dummy/conn-state p4 \
                  | grep 'unknown\|disconnected'; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:75: wait failed" >&5

    $as_echo "ofproto-dpif.at:75" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:75"
fi
  \
	 $as_echo "ofproto-dpif.at:75: waiting while ovs-appctl netdev-dummy/conn-state p5 \\
                  | grep 'unknown\\|disconnected'..." >&5
ovs_wait_cond () {
    if ovs-appctl netdev-dummy/conn-state p5 \
                  | grep 'unknown\|disconnected'; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:75: wait failed" >&5

    $as_echo "ofproto-dpif.at:75" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:75"
fi
  \
	 $as_echo "ofproto-dpif.at:75: waiting while ovs-appctl netdev-dummy/conn-state p6 \\
                  | grep 'unknown\\|disconnected'..." >&5
ovs_wait_cond () {
    if ovs-appctl netdev-dummy/conn-state p6 \
                  | grep 'unknown\|disconnected'; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:75: wait failed" >&5

    $as_echo "ofproto-dpif.at:75" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:75"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:76: ovs-ofctl add-flow br0 action=normal"
at_fn_check_prepare_trace "ofproto-dpif.at:76"
( $at_check_trace; ovs-ofctl add-flow br0 action=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:76"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:77: ovs-ofctl add-flow br1 action=normal"
at_fn_check_prepare_trace "ofproto-dpif.at:77"
( $at_check_trace; ovs-ofctl add-flow br1 action=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:77"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:78: ovs-appctl netdev-dummy/set-admin-state up"
at_fn_check_prepare_trace "ofproto-dpif.at:78"
( $at_check_trace; ovs-appctl netdev-dummy/set-admin-state up
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:78"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/stop
ovs-appctl time/warp 100
(
for i in `seq 0 100 |xargs printf '%02x\n'`;
    do
    pkt="in_port(7),eth(src=50:54:00:00:00:$i,dst=50:54:00:00:01:00),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)"
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:86: ovs-appctl netdev-dummy/receive p7 \$pkt"
at_fn_check_prepare_dynamic "ovs-appctl netdev-dummy/receive p7 $pkt" "ofproto-dpif.at:86"
( $at_check_trace; ovs-appctl netdev-dummy/receive p7 $pkt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:86"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    done
)
ovs-appctl time/warp 100
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:90: ovs-appctl dpif/dump-flows br1 > br1_flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:90"
( $at_check_trace; ovs-appctl dpif/dump-flows br1 > br1_flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:90"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Make sure there is resonable distribution to all three ports.
# We don't want to make this check precise, in case hash function changes.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:93: test \`egrep 'in_port\\(4\\)' br1_flows.txt |wc -l\` -gt 3"
at_fn_check_prepare_notrace 'a `...` command substitution' "ofproto-dpif.at:93"
( $at_check_trace; test `egrep 'in_port\(4\)' br1_flows.txt |wc -l` -gt 3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:93"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:94: test \`egrep 'in_port\\(5\\)' br1_flows.txt |wc -l\` -gt 3"
at_fn_check_prepare_notrace 'a `...` command substitution' "ofproto-dpif.at:94"
( $at_check_trace; test `egrep 'in_port\(5\)' br1_flows.txt |wc -l` -gt 3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:94"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:95: test \`egrep 'in_port\\(6\\)' br1_flows.txt |wc -l\` -gt 3"
at_fn_check_prepare_notrace 'a `...` command substitution' "ofproto-dpif.at:95"
( $at_check_trace; test `egrep 'in_port\(6\)' br1_flows.txt |wc -l` -gt 3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:95"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:96: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:96"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:96"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:96: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:96"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:96"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:96: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:96"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:96"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:96: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:96: wait failed" >&5

    $as_echo "ofproto-dpif.at:96" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:96"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:96: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:96"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:96"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:96: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:96"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:96"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:96: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:96: wait failed" >&5

    $as_echo "ofproto-dpif.at:96" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:96"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1029
#AT_START_1030
at_fn_group_banner 1030 'ofproto-dpif.at:99' \
  "ofproto-dpif - balance-tcp bonding" "             " 55
at_xfail=no
(
  $as_echo "1030. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

# Create br0 with interfaces bond0(p1, p2, p3) and p7,
#    and br1 with interfaces bond1(p4, p5, p6) and p8.
#    bond0 <-> bond1
# Send some traffic, make sure the traffic are spread based on L4 headers.
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:104: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:104"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:104"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:104: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:104"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:104"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:104: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:104"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:104"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:104: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:104"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:104"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:104: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:104"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:104"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:104: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:104"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:104"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:104: add_of_br 0 add-bond br0 bond0 p1 p2 p3 bond_mode=balance-tcp lacp=active \\
        other-config:lacp-time=fast other-config:bond-rebalance-interval=0 --\\
   set interface p1 type=dummy options:pstream=punix:\$OVS_RUNDIR/p1.sock ofport_request=1 -- \\
   set interface p2 type=dummy options:pstream=punix:\$OVS_RUNDIR/p2.sock ofport_request=2 -- \\
   set interface p3 type=dummy options:pstream=punix:\$OVS_RUNDIR/p3.sock ofport_request=3 -- \\
   add-port br0 p7 -- set interface p7 ofport_request=7 type=dummy -- \\
   add-br br1 -- \\
   set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \\
   set bridge br1 datapath-type=dummy other-config:datapath-id=1234 \\
                  fail-mode=secure -- \\
   add-bond br1 bond1 p4 p5 p6 bond_mode=balance-tcp lacp=active \\
        other-config:lacp-time=fast other-config:bond-rebalance-interval=0 --\\
   set interface p4 type=dummy options:stream=unix:\$OVS_RUNDIR/p1.sock ofport_request=4 -- \\
   set interface p5 type=dummy options:stream=unix:\$OVS_RUNDIR/p2.sock ofport_request=5 -- \\
   set interface p6 type=dummy options:stream=unix:\$OVS_RUNDIR/p3.sock ofport_request=6 -- \\
   add-port br1 p8 -- set interface p8 ofport_request=8 type=dummy -- "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:104"
( $at_check_trace; add_of_br 0 add-bond br0 bond0 p1 p2 p3 bond_mode=balance-tcp lacp=active \
        other-config:lacp-time=fast other-config:bond-rebalance-interval=0 --\
   set interface p1 type=dummy options:pstream=punix:$OVS_RUNDIR/p1.sock ofport_request=1 -- \
   set interface p2 type=dummy options:pstream=punix:$OVS_RUNDIR/p2.sock ofport_request=2 -- \
   set interface p3 type=dummy options:pstream=punix:$OVS_RUNDIR/p3.sock ofport_request=3 -- \
   add-port br0 p7 -- set interface p7 ofport_request=7 type=dummy -- \
   add-br br1 -- \
   set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \
   set bridge br1 datapath-type=dummy other-config:datapath-id=1234 \
                  fail-mode=secure -- \
   add-bond br1 bond1 p4 p5 p6 bond_mode=balance-tcp lacp=active \
        other-config:lacp-time=fast other-config:bond-rebalance-interval=0 --\
   set interface p4 type=dummy options:stream=unix:$OVS_RUNDIR/p1.sock ofport_request=4 -- \
   set interface p5 type=dummy options:stream=unix:$OVS_RUNDIR/p2.sock ofport_request=5 -- \
   set interface p6 type=dummy options:stream=unix:$OVS_RUNDIR/p3.sock ofport_request=6 -- \
   add-port br1 p8 -- set interface p8 ofport_request=8 type=dummy --
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:104"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:121: ovs-appctl netdev-dummy/set-admin-state up"
at_fn_check_prepare_trace "ofproto-dpif.at:121"
( $at_check_trace; ovs-appctl netdev-dummy/set-admin-state up
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:121"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:123: ovs-ofctl add-flow br0 action=normal"
at_fn_check_prepare_trace "ofproto-dpif.at:123"
( $at_check_trace; ovs-ofctl add-flow br0 action=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:123"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:124: ovs-ofctl add-flow br1 action=normal"
at_fn_check_prepare_trace "ofproto-dpif.at:124"
( $at_check_trace; ovs-ofctl add-flow br1 action=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:124"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:125: ovs-appctl upcall/disable-megaflows"
at_fn_check_prepare_trace "ofproto-dpif.at:125"
( $at_check_trace; ovs-appctl upcall/disable-megaflows
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "megaflows disabled
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:125"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

$as_echo "ofproto-dpif.at:127: waiting while ovs-appctl bond/show | grep \"may_enable: false\"..." >&5
ovs_wait_cond () {
    if ovs-appctl bond/show | grep "may_enable: false"; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:127: wait failed" >&5

    $as_echo "ofproto-dpif.at:127" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:127"
fi

ovs-appctl time/stop
ovs-appctl time/warp 100
ovs-appctl lacp/show > lacp.txt
ovs-appctl bond/show > bond.txt
(
for i in `seq 0 255` ;
    do
    pkt="in_port(7),eth(src=50:54:00:00:00:05,dst=50:54:00:00:01:00),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=$i),tcp_flags(ack)"
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:136: ovs-appctl netdev-dummy/receive p7 \$pkt"
at_fn_check_prepare_dynamic "ovs-appctl netdev-dummy/receive p7 $pkt" "ofproto-dpif.at:136"
( $at_check_trace; ovs-appctl netdev-dummy/receive p7 $pkt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:136"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    done
)
ovs-appctl time/warp 300 100
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:140: ovs-appctl dpif/dump-flows br0 |grep tcp > br0_flows.txt"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:140"
( $at_check_trace; ovs-appctl dpif/dump-flows br0 |grep tcp > br0_flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:140"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:141: ovs-appctl dpif/dump-flows br1 |grep tcp > br1_flows.txt"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:141"
( $at_check_trace; ovs-appctl dpif/dump-flows br1 |grep tcp > br1_flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:141"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Make sure there is resonable distribution to all three ports.
# We don't want to make this check precise, in case hash function changes.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:144: test \`grep in_port.4 br1_flows.txt |wc -l\` -gt 24"
at_fn_check_prepare_notrace 'a `...` command substitution' "ofproto-dpif.at:144"
( $at_check_trace; test `grep in_port.4 br1_flows.txt |wc -l` -gt 24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:144"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:145: test \`grep in_port.5 br1_flows.txt |wc -l\` -gt 24"
at_fn_check_prepare_notrace 'a `...` command substitution' "ofproto-dpif.at:145"
( $at_check_trace; test `grep in_port.5 br1_flows.txt |wc -l` -gt 24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:145"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:146: test \`grep in_port.6 br1_flows.txt |wc -l\` -gt 24"
at_fn_check_prepare_notrace 'a `...` command substitution' "ofproto-dpif.at:146"
( $at_check_trace; test `grep in_port.6 br1_flows.txt |wc -l` -gt 24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:146"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:148: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:148"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:148"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:148: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:148"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:148"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:148: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:148"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:148"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:148: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:148: wait failed" >&5

    $as_echo "ofproto-dpif.at:148" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:148"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:148: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:148"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:148"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:148: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:148"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:148"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:148: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:148: wait failed" >&5

    $as_echo "ofproto-dpif.at:148" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:148"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1030
#AT_START_1031
at_fn_group_banner 1031 'ofproto-dpif.at:152' \
  "ofproto-dpif - balance-tcp bonding, different recirc flow " "" 55
at_xfail=no
(
  $as_echo "1031. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:153: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:153"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:153"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:153: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:153"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:153"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:153: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:153"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:153"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:153: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:153"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:153"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:153: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:153"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:153"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:153: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:153"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:153"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:153: add_of_br 0 add-bond br0 bond0 p1 p2 bond_mode=balance-tcp lacp=active \\
       other-config:lacp-time=fast other-config:bond-rebalance-interval=0 -- \\
   set interface p1 type=dummy options:pstream=punix:\$OVS_RUNDIR/p1.sock ofport_request=1 -- \\
   set interface p2 type=dummy options:pstream=punix:\$OVS_RUNDIR/p2.sock ofport_request=2 -- \\
   add-br br1 -- \\
   set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \\
   set bridge br1 datapath-type=dummy other-config:datapath-id=1234 \\
       fail-mode=standalone -- \\
   add-bond br1 bond1 p3 p4 bond_mode=balance-tcp lacp=active \\
       other-config:lacp-time=fast other-config:bond-rebalance-interval=0 -- \\
   set interface p3 type=dummy options:stream=unix:\$OVS_RUNDIR/p1.sock ofport_request=3 -- \\
   set interface p4 type=dummy options:stream=unix:\$OVS_RUNDIR/p2.sock ofport_request=4 -- \\
   add-port br1 br1- -- set interface br1- type=patch options:peer=br1+ ofport_request=100 -- \\
   add-br br-int -- \\
   set bridge br-int other-config:hwaddr=aa:77:aa:77:00:00 -- \\
   set bridge br-int datapath-type=dummy other-config:datapath-id=1235 \\
       fail-mode=secure -- \\
   add-port br-int br1+ -- set interface br1+ type=patch options:peer=br1- ofport_request=101 -- \\
   add-port br-int p5 -- set interface p5 ofport_request=5 type=dummy
 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:153"
( $at_check_trace; add_of_br 0 add-bond br0 bond0 p1 p2 bond_mode=balance-tcp lacp=active \
       other-config:lacp-time=fast other-config:bond-rebalance-interval=0 -- \
   set interface p1 type=dummy options:pstream=punix:$OVS_RUNDIR/p1.sock ofport_request=1 -- \
   set interface p2 type=dummy options:pstream=punix:$OVS_RUNDIR/p2.sock ofport_request=2 -- \
   add-br br1 -- \
   set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \
   set bridge br1 datapath-type=dummy other-config:datapath-id=1234 \
       fail-mode=standalone -- \
   add-bond br1 bond1 p3 p4 bond_mode=balance-tcp lacp=active \
       other-config:lacp-time=fast other-config:bond-rebalance-interval=0 -- \
   set interface p3 type=dummy options:stream=unix:$OVS_RUNDIR/p1.sock ofport_request=3 -- \
   set interface p4 type=dummy options:stream=unix:$OVS_RUNDIR/p2.sock ofport_request=4 -- \
   add-port br1 br1- -- set interface br1- type=patch options:peer=br1+ ofport_request=100 -- \
   add-br br-int -- \
   set bridge br-int other-config:hwaddr=aa:77:aa:77:00:00 -- \
   set bridge br-int datapath-type=dummy other-config:datapath-id=1235 \
       fail-mode=secure -- \
   add-port br-int br1+ -- set interface br1+ type=patch options:peer=br1- ofport_request=101 -- \
   add-port br-int p5 -- set interface p5 ofport_request=5 type=dummy

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:153"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:174: ovs-appctl netdev-dummy/set-admin-state up"
at_fn_check_prepare_trace "ofproto-dpif.at:174"
( $at_check_trace; ovs-appctl netdev-dummy/set-admin-state up
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:174"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Waits for all ifaces enabled.
$as_echo "ofproto-dpif.at:178: waiting until test \`ovs-appctl bond/show | grep -- \"may_enable: true\" |  wc -l\` -ge 4..." >&5
ovs_wait_cond () {
    test `ovs-appctl bond/show | grep -- "may_enable: true" |  wc -l` -ge 4
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:178: wait failed" >&5

    $as_echo "ofproto-dpif.at:178" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:178"
fi


# The dl_vlan flow should not be ever matched,
# since recirculation should not change the flow handling.
cat >flows.txt <<'_ATEOF'
table=0 priority=1 in_port=5 actions=mod_vlan_vid:1,output(101)
table=0 priority=2 in_port=5 dl_vlan=1 actions=drop
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:186: ovs-ofctl add-flows br-int flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:186"
( $at_check_trace; ovs-ofctl add-flows br-int flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:186"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Sends a packet to trigger recirculation.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:189: ovs-appctl netdev-dummy/receive p5 \"in_port(5),eth(src=50:54:00:00:00:05,dst=50:54:00:00:01:00),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1)\""
at_fn_check_prepare_trace "ofproto-dpif.at:189"
( $at_check_trace; ovs-appctl netdev-dummy/receive p5 "in_port(5),eth(src=50:54:00:00:00:05,dst=50:54:00:00:01:00),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1)"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:189"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Collects flow stats.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:192: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:192"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:192"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Checks the flow stats in br1, should only be one flow with non-zero
# 'n_packets' from internal table.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:196: ovs-appctl bridge/dump-flows br1 | ofctl_strip | grep -- \"n_packets\" | grep -- \"table_id\" | sed -e 's/output:[0-9][0-9]*/output/' "
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:196"
( $at_check_trace; ovs-appctl bridge/dump-flows br1 | ofctl_strip | grep -- "n_packets" | grep -- "table_id" | sed -e 's/output:[0-9][0-9]*/output/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "table_id=254, n_packets=1, n_bytes=38, priority=20,recirc_id=0x0,dp_hash=0x0/0xff,actions=output
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:196"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Checks the flow stats in br-int, should be only one match.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:201: ovs-ofctl dump-flows br-int | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:201"
( $at_check_trace; ovs-ofctl dump-flows br-int | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " n_packets=1, n_bytes=34, priority=1,in_port=5 actions=mod_vlan_vid:1,output:101
 priority=2,in_port=5,dl_vlan=1 actions=drop
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:201"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:207: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:207"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:207"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:207: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:207"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:207"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:207: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:207"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:207"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:207: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:207: wait failed" >&5

    $as_echo "ofproto-dpif.at:207" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:207"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:207: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:207"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:207"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:207: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:207"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:207"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:207: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:207: wait failed" >&5

    $as_echo "ofproto-dpif.at:207" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:207"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1031
#AT_START_1032
at_fn_group_banner 1032 'ofproto-dpif.at:210' \
  "ofproto-dpif - resubmit" "                        " 55
at_xfail=no
(
  $as_echo "1032. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:211: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:211"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:211"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:211: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:211"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:211"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:211: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:211"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:211"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:211: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:211"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:211"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:211: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:211"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:211"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:211: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:211"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:211"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:211: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:211"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:211"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 10 11 12 13 14 15 16 17 18 19 20 21
cat >flows.txt <<'_ATEOF'
table=0 in_port=1 priority=1000 icmp actions=output(10),resubmit(2),output(19),resubmit(3),output(21)
table=0 in_port=2 priority=1500 icmp actions=output(11),resubmit(,1),output(16),resubmit(2,1),output(18)
table=0 in_port=3 priority=2000 icmp actions=output(20)
table=1 in_port=1 priority=1000 icmp actions=output(12),resubmit(4,1),output(13),resubmit(3),output(15)
table=1 in_port=2 priority=1500 icmp actions=output(17),resubmit(,2)
table=1 in_port=3 priority=1500 icmp actions=output(14),resubmit(,2)
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:221: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:221"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:221"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:222: ovs-appctl ofproto/trace br0 'in_port=p1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'"
at_fn_check_prepare_trace "ofproto-dpif.at:222"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=p1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:222"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:223: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:223"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 10,11,12,13,14,15,16,17,18,19,20,21
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:223"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:226: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:226"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:226"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:226: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:226"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:226"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:226: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:226"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:226"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:226: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:226: wait failed" >&5

    $as_echo "ofproto-dpif.at:226" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:226"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:226: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:226"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:226"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:226: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:226"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:226"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:226: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:226: wait failed" >&5

    $as_echo "ofproto-dpif.at:226" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:226"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1032
#AT_START_1033
at_fn_group_banner 1033 'ofproto-dpif.at:229' \
  "ofproto-dpif - goto table" "                      " 55
at_xfail=no
(
  $as_echo "1033. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:230: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:230"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:230"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:230: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:230"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:230"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:230: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:230"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:230"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:230: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:230"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:230"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:230: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:230"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:230"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:230: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:230"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:230"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:230: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:230"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:230"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 10 11
echo "table=0 in_port=1 actions=output(10),goto_table(1)" > flows.txt
for i in `seq 1 63`; do echo "table=$i actions=goto_table($(($i+1)))"; done >> flows.txt
echo "table=64 actions=output(11)" >> flows.txt
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:235: ovs-ofctl -O OpenFlow12 add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:235"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:235"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:236: ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'"
at_fn_check_prepare_trace "ofproto-dpif.at:236"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:236"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:237: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:237"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 10,11
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:237"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:240: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:240"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:240"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:240: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:240"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:240"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:240: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:240"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:240"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:240: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:240: wait failed" >&5

    $as_echo "ofproto-dpif.at:240" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:240"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:240: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:240"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:240"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:240: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:240"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:240"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:240: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:240: wait failed" >&5

    $as_echo "ofproto-dpif.at:240" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:240"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1033
#AT_START_1034
at_fn_group_banner 1034 'ofproto-dpif.at:243' \
  "ofproto-dpif - write actions" "                   " 55
at_xfail=no
(
  $as_echo "1034. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:244: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:244"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:244"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:244: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:244"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:244"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:244: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:244"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:244"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:244: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:244"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:244"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:244: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:244"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:244"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:244: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:244"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:244"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:244: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:244"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:244"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 10 11 12 13
cat >flows.txt <<'_ATEOF'
table=0 in_port=1,ip actions=output(10),write_actions(set_field:192.168.3.90->ip_src,output(12)),goto_table(1)
table=1 ip actions=write_actions(output(13)),goto_table(2)
table=2 ip actions=set_field:192.168.3.91->ip_src,output(11)
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:251: ovs-ofctl -O OpenFlow12 add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:251"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:251"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:252: ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'"
at_fn_check_prepare_trace "ofproto-dpif.at:252"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:252"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:253: tail -2 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:253"
( $at_check_trace; tail -2 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Megaflow: recirc_id=0,eth,ip,in_port=1,nw_src=192.168.0.1,nw_frag=no
Datapath actions: 10,set(ipv4(src=192.168.3.91)),11,set(ipv4(src=192.168.3.90)),13
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:253"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:257: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:257"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:257"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:257: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:257"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:257"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:257: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:257"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:257"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:257: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:257: wait failed" >&5

    $as_echo "ofproto-dpif.at:257" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:257"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:257: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:257"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:257"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:257: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:257"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:257"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:257: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:257: wait failed" >&5

    $as_echo "ofproto-dpif.at:257" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:257"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1034
#AT_START_1035
at_fn_group_banner 1035 'ofproto-dpif.at:260' \
  "ofproto-dpif - modify IPv6 Neighbor Solitication (ND)" "" 55
at_xfail=no
(
  $as_echo "1035. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:261: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:261"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:261"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:261: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:261"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:261"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:261: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:261"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:261"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:261: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:261"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:261"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:261: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:261"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:261"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:261: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:261"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:261"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:261: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:261"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:261"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 10 11 12 13
cat >flows.txt <<'_ATEOF'
table=0 in_port=1,icmp6,icmpv6_type=135 actions=output(10),write_actions(set_field:fe80::3->nd_target,set_field:aa:aa:aa:aa:aa:aa->nd_sll,output(12)),goto_table(1)
table=1 icmp6 actions=write_actions(output(13)),goto_table(2)
table=2 in_port=1,icmp6,icmpv6_type=135 actions=set_field:fe80::4->nd_target,set_field:cc:cc:cc:cc:cc:cc->nd_sll,output(11)
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:268: ovs-ofctl -O OpenFlow12 add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:268"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:268"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:269: ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,icmp6,ipv6_src=fe80::1,ipv6_dst=fe80::2,nw_tos=0,nw_ttl=128,icmpv6_type=135,nd_target=fe80::2020,nd_sll=66:55:44:33:22:11'"
at_fn_check_prepare_trace "ofproto-dpif.at:269"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,icmp6,ipv6_src=fe80::1,ipv6_dst=fe80::2,nw_tos=0,nw_ttl=128,icmpv6_type=135,nd_target=fe80::2020,nd_sll=66:55:44:33:22:11'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:269"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:270: tail -4 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:270"
( $at_check_trace; tail -4 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Megaflow: recirc_id=0,eth,icmp6,in_port=1,nw_frag=no,icmp_type=0x87/0xff,icmp_code=0x0/0xff,nd_target=fe80::2020,nd_sll=66:55:44:33:22:11
Datapath actions: 10,set(nd(target=fe80::4,sll=cc:cc:cc:cc:cc:cc)),11,set(nd(target=fe80::3,sll=aa:aa:aa:aa:aa:aa)),13
This flow is handled by the userspace slow path because it:
	- Uses action(s) not supported by datapath.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:270"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:276: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:276"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:276"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:276: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:276"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:276"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:276: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:276"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:276"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:276: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:276: wait failed" >&5

    $as_echo "ofproto-dpif.at:276" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:276"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:276: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:276"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:276"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:276: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:276"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:276"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:276: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:276: wait failed" >&5

    $as_echo "ofproto-dpif.at:276" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:276"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1035
#AT_START_1036
at_fn_group_banner 1036 'ofproto-dpif.at:279' \
  "ofproto-dpif - clear actions" "                   " 55
at_xfail=no
(
  $as_echo "1036. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:280: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:280"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:280"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:280: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:280"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:280"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:280: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:280"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:280"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:280: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:280"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:280"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:280: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:280"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:280"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:280: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:280"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:280"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:280: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:280"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:280"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 10 11 12
cat >flows.txt <<'_ATEOF'
table=0 in_port=1,ip actions=output(10),write_actions(set_field:192.168.3.90->ip_src,output(12)),goto_table(1)
table=1 tcp actions=set_field:91->tp_src,output(11),clear_actions
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:286: ovs-ofctl -O OpenFlow12 add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:286"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:286"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:287: ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=9'"
at_fn_check_prepare_trace "ofproto-dpif.at:287"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=6,nw_tos=0,nw_ttl=128,tp_src=8,tp_dst=9'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:287"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:288: tail -2 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:288"
( $at_check_trace; tail -2 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Megaflow: recirc_id=0,eth,tcp,in_port=1,nw_frag=no,tp_src=8
Datapath actions: 10,set(tcp(src=91)),11
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:288"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:292: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:292"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:292"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:292: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:292"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:292"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:292: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:292"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:292"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:292: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:292: wait failed" >&5

    $as_echo "ofproto-dpif.at:292" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:292"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:292: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:292"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:292"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:292: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:292"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:292"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:292: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:292: wait failed" >&5

    $as_echo "ofproto-dpif.at:292" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:292"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1036
#AT_START_1037
at_fn_group_banner 1037 'ofproto-dpif.at:295' \
  "ofproto-dpif - group chaining" "                  " 55
at_xfail=no
(
  $as_echo "1037. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:296: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:296"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:296"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:296: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:296"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:296"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:296: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:296"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:296"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:296: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:296"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:296"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:296: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:296"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:296"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:296: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:296"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:296"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:296: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:296"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:296"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 10 11
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:298: ovs-ofctl -O OpenFlow12 add-group br0 'group_id=1234,type=all,bucket=set_field:192.168.3.90->ip_src,group:123,bucket=output:11'"
at_fn_check_prepare_trace "ofproto-dpif.at:298"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-group br0 'group_id=1234,type=all,bucket=set_field:192.168.3.90->ip_src,group:123,bucket=output:11'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:298"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:299: ovs-ofctl -O OpenFlow12 add-group br0 'group_id=123,type=all,bucket=output:10'"
at_fn_check_prepare_trace "ofproto-dpif.at:299"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-group br0 'group_id=123,type=all,bucket=output:10'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:299"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:300: ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=group:1234'"
at_fn_check_prepare_trace "ofproto-dpif.at:300"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=group:1234'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:300"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:301: ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'"
at_fn_check_prepare_trace "ofproto-dpif.at:301"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:301"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:302: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:302"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: set(ipv4(src=192.168.3.90)),10,set(ipv4(src=192.168.0.1)),11
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:302"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:305: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:305"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:305"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:305: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:305"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:305"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:305: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:305"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:305"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:305: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:305: wait failed" >&5

    $as_echo "ofproto-dpif.at:305" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:305"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:305: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:305"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:305"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:305: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:305"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:305"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:305: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:305: wait failed" >&5

    $as_echo "ofproto-dpif.at:305" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:305"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1037
#AT_START_1038
at_fn_group_banner 1038 'ofproto-dpif.at:308' \
  "ofproto-dpif - all group in action list" "        " 55
at_xfail=no
(
  $as_echo "1038. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:309: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:309"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:309"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:309: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:309"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:309"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:309: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:309"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:309"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:309: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:309"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:309"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:309: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:309"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:309"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:309: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:309"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:309"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:309: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:309"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:309"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 10 11
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:311: ovs-ofctl -O OpenFlow12 add-group br0 'group_id=1234,type=all,bucket=output:10,set_field:192.168.3.90->ip_src,bucket=output:11'"
at_fn_check_prepare_trace "ofproto-dpif.at:311"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-group br0 'group_id=1234,type=all,bucket=output:10,set_field:192.168.3.90->ip_src,bucket=output:11'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:311"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:312: ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=group:1234'"
at_fn_check_prepare_trace "ofproto-dpif.at:312"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=group:1234'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:312"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:313: ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'"
at_fn_check_prepare_trace "ofproto-dpif.at:313"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:313"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Must match on the source address to be able to restore it's value for
# the second bucket
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:316: tail -2 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:316"
( $at_check_trace; tail -2 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Megaflow: recirc_id=0,eth,ip,in_port=1,nw_src=192.168.0.1,nw_frag=no
Datapath actions: set(ipv4(src=192.168.3.90)),10,set(ipv4(src=192.168.0.1)),11
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:316"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:320: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:320"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:320"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:320: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:320"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:320"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:320: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:320"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:320"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:320: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:320: wait failed" >&5

    $as_echo "ofproto-dpif.at:320" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:320"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:320: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:320"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:320"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:320: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:320"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:320"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:320: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:320: wait failed" >&5

    $as_echo "ofproto-dpif.at:320" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:320"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1038
#AT_START_1039
at_fn_group_banner 1039 'ofproto-dpif.at:323' \
  "ofproto-dpif - indirect group in action list" "   " 55
at_xfail=no
(
  $as_echo "1039. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:324: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:324"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:324"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:324: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:324"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:324"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:324: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:324"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:324"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:324: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:324"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:324"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:324: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:324"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:324"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:324: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:324"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:324"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:324: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:324"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:324"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 10
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:326: ovs-ofctl -O OpenFlow12 add-group br0 group_id=1234,type=indirect,bucket=output:10"
at_fn_check_prepare_trace "ofproto-dpif.at:326"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-group br0 group_id=1234,type=indirect,bucket=output:10
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:326"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:327: ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=group:1234'"
at_fn_check_prepare_trace "ofproto-dpif.at:327"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=group:1234'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:327"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:328: ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'"
at_fn_check_prepare_trace "ofproto-dpif.at:328"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:328"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:329: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:329"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 10
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:329"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:332: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:332"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:332"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:332: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:332"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:332"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:332: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:332"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:332"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:332: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:332: wait failed" >&5

    $as_echo "ofproto-dpif.at:332" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:332"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:332: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:332"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:332"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:332: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:332"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:332"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:332: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:332: wait failed" >&5

    $as_echo "ofproto-dpif.at:332" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:332"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1039
#AT_START_1040
at_fn_group_banner 1040 'ofproto-dpif.at:335' \
  "ofproto-dpif - group actions have no effect afterwards" "" 55
at_xfail=no
(
  $as_echo "1040. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:336: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:336"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:336"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:336: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:336"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:336"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:336: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:336"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:336"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:336: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:336"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:336"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:336: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:336"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:336"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:336: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:336"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:336"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:336: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:336"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:336"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 10
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:338: ovs-ofctl -O OpenFlow12 add-group br0 'group_id=1234,type=select,bucket=set_field:192.168.3.90->ip_src,output:10'"
at_fn_check_prepare_trace "ofproto-dpif.at:338"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-group br0 'group_id=1234,type=select,bucket=set_field:192.168.3.90->ip_src,output:10'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:338"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:339: ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=group:1234,output:10'"
at_fn_check_prepare_trace "ofproto-dpif.at:339"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=group:1234,output:10'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:339"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:340: ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'"
at_fn_check_prepare_trace "ofproto-dpif.at:340"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:340"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:341: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:341"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: set(ipv4(src=192.168.3.90,dst=192.168.0.2)),10,set(ipv4(src=192.168.0.1,dst=192.168.0.2)),10
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:341"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:344: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:344"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:344"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:344: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:344"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:344"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:344: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:344"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:344"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:344: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:344: wait failed" >&5

    $as_echo "ofproto-dpif.at:344" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:344"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:344: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:344"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:344"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:344: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:344"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:344"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:344: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:344: wait failed" >&5

    $as_echo "ofproto-dpif.at:344" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:344"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1040
#AT_START_1041
at_fn_group_banner 1041 'ofproto-dpif.at:347' \
  "ofproto-dpif - all group in action set" "         " 55
at_xfail=no
(
  $as_echo "1041. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:348: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:348"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:348"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:348: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:348"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:348"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:348: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:348"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:348"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:348: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:348"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:348"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:348: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:348"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:348"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:348: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:348"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:348"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:348: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:348"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:348"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 10 11
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:350: ovs-ofctl -O OpenFlow12 add-group br0 'group_id=1234,type=all,bucket=output:10,set_field:192.168.3.90->ip_src,bucket=output:11'"
at_fn_check_prepare_trace "ofproto-dpif.at:350"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-group br0 'group_id=1234,type=all,bucket=output:10,set_field:192.168.3.90->ip_src,bucket=output:11'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:350"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:351: ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=write_actions(group:1234)'"
at_fn_check_prepare_trace "ofproto-dpif.at:351"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=write_actions(group:1234)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:351"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:352: ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'"
at_fn_check_prepare_trace "ofproto-dpif.at:352"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:352"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Must match on the source address to be able to restore it's value for
# the third bucket
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:355: tail -2 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:355"
( $at_check_trace; tail -2 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Megaflow: recirc_id=0,eth,ip,in_port=1,nw_src=192.168.0.1,nw_frag=no
Datapath actions: set(ipv4(src=192.168.3.90)),10,set(ipv4(src=192.168.0.1)),11
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:355"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:359: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:359"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:359"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:359: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:359"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:359"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:359: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:359"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:359"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:359: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:359: wait failed" >&5

    $as_echo "ofproto-dpif.at:359" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:359"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:359: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:359"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:359"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:359: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:359"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:359"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:359: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:359: wait failed" >&5

    $as_echo "ofproto-dpif.at:359" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:359"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1041
#AT_START_1042
at_fn_group_banner 1042 'ofproto-dpif.at:362' \
  "ofproto-dpif - indirect group in action set" "    " 55
at_xfail=no
(
  $as_echo "1042. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:363: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:363"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:363"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:363: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:363"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:363"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:363: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:363"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:363"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:363: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:363"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:363"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:363: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:363"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:363"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:363: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:363"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:363"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:363: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:363"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:363"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 10
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:365: ovs-ofctl -O OpenFlow12 add-group br0 group_id=1234,type=indirect,bucket=output:10"
at_fn_check_prepare_trace "ofproto-dpif.at:365"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-group br0 group_id=1234,type=indirect,bucket=output:10
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:365"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:366: ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=write_actions(group:1234)'"
at_fn_check_prepare_trace "ofproto-dpif.at:366"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=write_actions(group:1234)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:366"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:367: ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'"
at_fn_check_prepare_trace "ofproto-dpif.at:367"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:367"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:368: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:368"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 10
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:368"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:371: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:371"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:371"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:371: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:371"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:371"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:371: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:371"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:371"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:371: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:371: wait failed" >&5

    $as_echo "ofproto-dpif.at:371" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:371"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:371: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:371"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:371"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:371: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:371"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:371"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:371: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:371: wait failed" >&5

    $as_echo "ofproto-dpif.at:371" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:371"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1042
#AT_START_1043
at_fn_group_banner 1043 'ofproto-dpif.at:374' \
  "ofproto-dpif - patch port with action set" "      " 55
at_xfail=no
(
  $as_echo "1043. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:375: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:375"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:375"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:375: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:375"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:375"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:375: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:375"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:375"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:375: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:375"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:375"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:375: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:375"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:375"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:375: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:375"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:375"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:375: add_of_br 0  \\
    add-br br1 -- \\
    set bridge br1 datapath-type=dummy fail-mode=secure -- \\
    add-port br0 patch10 -- \\
    set interface patch10 type=patch options:peer=patch20 ofport_request=10 -- \\
    add-port br1 patch20 -- \\
    set interface patch20 type=patch options:peer=patch10 ofport_request=20
     "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:375"
( $at_check_trace; add_of_br 0  \
    add-br br1 -- \
    set bridge br1 datapath-type=dummy fail-mode=secure -- \
    add-port br0 patch10 -- \
    set interface patch10 type=patch options:peer=patch20 ofport_request=10 -- \
    add-port br1 patch20 -- \
    set interface patch20 type=patch options:peer=patch10 ofport_request=20

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:375"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1
add_of_ports br1 2
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:385: ovs-ofctl -O OpenFlow12 add-flow br1 'ip actions=write_actions(pop_vlan,output:2)'"
at_fn_check_prepare_trace "ofproto-dpif.at:385"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br1 'ip actions=write_actions(pop_vlan,output:2)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:385"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:386: ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=output:10'"
at_fn_check_prepare_trace "ofproto-dpif.at:386"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=output:10'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:386"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:387: ovs-appctl ofproto/trace br1 'in_port=20,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_vlan=100,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'"
at_fn_check_prepare_trace "ofproto-dpif.at:387"
( $at_check_trace; ovs-appctl ofproto/trace br1 'in_port=20,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_vlan=100,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:387"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:388: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:388"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: pop_vlan,2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:388"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:391: ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_vlan=100,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'"
at_fn_check_prepare_trace "ofproto-dpif.at:391"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_vlan=100,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:391"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:392: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:392"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: pop_vlan,2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:392"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:395: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:395"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:395"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:395: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:395"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:395"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:395: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:395"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:395"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:395: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:395: wait failed" >&5

    $as_echo "ofproto-dpif.at:395" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:395"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:395: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:395"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:395"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:395: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:395"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:395"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:395: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:395: wait failed" >&5

    $as_echo "ofproto-dpif.at:395" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:395"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1043
#AT_START_1044
at_fn_group_banner 1044 'ofproto-dpif.at:399' \
  "ofproto-dpif - select group" "                    " 55
at_xfail=no
(
  $as_echo "1044. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:400: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:400"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:400"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:400: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:400"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:400"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:400: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:400"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:400"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:400: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:400"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:400"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:400: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:400"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:400"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:400: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:400"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:400"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:400: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:400"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:400"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 10 11
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:402: ovs-ofctl -O OpenFlow12 add-group br0 'group_id=1234,type=select,bucket=output:10,bucket=output:11'"
at_fn_check_prepare_trace "ofproto-dpif.at:402"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-group br0 'group_id=1234,type=select,bucket=output:10,bucket=output:11'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:402"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:403: ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=write_actions(group:1234)'"
at_fn_check_prepare_trace "ofproto-dpif.at:403"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=write_actions(group:1234)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:403"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Try a bunch of different flows and make sure that they get distributed
# at least somewhat.
for d in 0 1 2 3 4 5 6 7 8 9 a b c d e f; do
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:408: ovs-appctl ofproto/trace br0 \"in_port=1,dl_src=50:54:00:00:00:07,dl_dst=50:54:00:00:00:0\$d,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace br0 \"in_port=1,dl_src=50:54:00:00:00:07,dl_dst=50:54:00:00:00:0$d,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0\"" "ofproto-dpif.at:408"
( $at_check_trace; ovs-appctl ofproto/trace br0 "in_port=1,dl_src=50:54:00:00:00:07,dl_dst=50:54:00:00:00:0$d,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:408"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    tail -1 stdout >> results
done
sort results | uniq -c
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:412: sort results | uniq"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:412"
( $at_check_trace; sort results | uniq
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 10
Datapath actions: 11
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:412"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:416: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:416"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:416"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:416: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:416"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:416"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:416: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:416"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:416"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:416: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:416: wait failed" >&5

    $as_echo "ofproto-dpif.at:416" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:416"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:416: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:416"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:416"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:416: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:416"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:416"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:416: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:416: wait failed" >&5

    $as_echo "ofproto-dpif.at:416" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:416"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1044
#AT_START_1045
at_fn_group_banner 1045 'ofproto-dpif.at:419' \
  "ofproto-dpif - select group with watch port" "    " 55
at_xfail=no
(
  $as_echo "1045. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:420: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:420"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:420"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:420: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:420"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:420"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:420: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:420"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:420"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:420: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:420"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:420"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:420: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:420"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:420"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:420: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:420"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:420"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:420: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:420"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:420"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 10 11
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:422: ovs-ofctl -O OpenFlow12 add-group br0 'group_id=1234,type=select,bucket=watch_port:10,output:10,bucket=output:11'"
at_fn_check_prepare_trace "ofproto-dpif.at:422"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-group br0 'group_id=1234,type=select,bucket=watch_port:10,output:10,bucket=output:11'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:422"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:423: ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=write_actions(group:1234)'"
at_fn_check_prepare_trace "ofproto-dpif.at:423"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=write_actions(group:1234)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:423"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:424: ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:07,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'"
at_fn_check_prepare_trace "ofproto-dpif.at:424"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:07,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:424"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:425: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:425"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 11
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:425"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:428: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:428"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:428"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:428: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:428"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:428"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:428: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:428"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:428"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:428: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:428: wait failed" >&5

    $as_echo "ofproto-dpif.at:428" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:428"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:428: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:428"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:428"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:428: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:428"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:428"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:428: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:428: wait failed" >&5

    $as_echo "ofproto-dpif.at:428" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:428"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1045
#AT_START_1046
at_fn_group_banner 1046 'ofproto-dpif.at:431' \
  "ofproto-dpif - select group with weight" "        " 55
at_xfail=no
(
  $as_echo "1046. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:432: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:432"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:432"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:432: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:432"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:432"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:432: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:432"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:432"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:432: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:432"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:432"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:432: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:432"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:432"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:432: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:432"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:432"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:432: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:432"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:432"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 10 11 12
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:434: ovs-ofctl -O OpenFlow12 add-group br0 'group_id=1234,type=select,bucket=output:10,bucket=output:11,weight=2000,bucket=output:12,weight=0'"
at_fn_check_prepare_trace "ofproto-dpif.at:434"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-group br0 'group_id=1234,type=select,bucket=output:10,bucket=output:11,weight=2000,bucket=output:12,weight=0'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:434"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:435: ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=write_actions(group:1234)'"
at_fn_check_prepare_trace "ofproto-dpif.at:435"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=write_actions(group:1234)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:435"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:436: ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:07,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'"
at_fn_check_prepare_trace "ofproto-dpif.at:436"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:07,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:436"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:437: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:437"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 11
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:437"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:440: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:440"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:440"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:440: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:440"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:440"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:440: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:440"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:440"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:440: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:440: wait failed" >&5

    $as_echo "ofproto-dpif.at:440" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:440"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:440: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:440"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:440"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:440: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:440"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:440"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:440: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:440: wait failed" >&5

    $as_echo "ofproto-dpif.at:440" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:440"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1046
#AT_START_1047
at_fn_group_banner 1047 'ofproto-dpif.at:443' \
  "ofproto-dpif - select group with hash selection method" "" 55
at_xfail=no
(
  $as_echo "1047. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:444: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:444"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:444"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:444: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:444"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:444"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:444: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:444"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:444"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:444: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:444"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:444"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:444: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:444"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:444"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:444: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:444"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:444"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:444: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:444"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:444"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 10 11
# Check that parse failures after 'fields' parsing work
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:447: ovs-ofctl -O OpenFlow10 add-group br0 'group_id=1,type=select,fields(eth_dst),bukket=output:10'"
at_fn_check_prepare_trace "ofproto-dpif.at:447"
( $at_check_trace; ovs-ofctl -O OpenFlow10 add-group br0 'group_id=1,type=select,fields(eth_dst),bukket=output:10'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: unknown keyword bukket
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto-dpif.at:447"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:450: ovs-ofctl -O OpenFlow15 add-group br0 'group_id=1234,type=select,selection_method=hash,fields(eth_dst,ip_dst,tcp_dst),bucket=output:10,bucket=output:11'"
at_fn_check_prepare_trace "ofproto-dpif.at:450"
( $at_check_trace; ovs-ofctl -O OpenFlow15 add-group br0 'group_id=1234,type=select,selection_method=hash,fields(eth_dst,ip_dst,tcp_dst),bucket=output:10,bucket=output:11'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:450"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:451: ovs-ofctl -O OpenFlow15 add-flow br0 'ip actions=write_actions(group:1234)'"
at_fn_check_prepare_trace "ofproto-dpif.at:451"
( $at_check_trace; ovs-ofctl -O OpenFlow15 add-flow br0 'ip actions=write_actions(group:1234)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:451"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Try a bunch of different flows and make sure that they get distributed
# at least somewhat.
for d in 0 1 2 3 4 5 6 7 8 9 a b c d e f; do
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:456: ovs-appctl ofproto/trace br0 \"in_port=1,dl_src=50:54:00:00:00:07,dl_dst=50:54:00:00:00:0\$d,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace br0 \"in_port=1,dl_src=50:54:00:00:00:07,dl_dst=50:54:00:00:00:0$d,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0\"" "ofproto-dpif.at:456"
( $at_check_trace; ovs-appctl ofproto/trace br0 "in_port=1,dl_src=50:54:00:00:00:07,dl_dst=50:54:00:00:00:0$d,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:456"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    tail -1 stdout >> results
done
sort results | uniq -c
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:460: sort results | uniq"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:460"
( $at_check_trace; sort results | uniq
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 10
Datapath actions: 11
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:460"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


> results
# Try a bunch of different flows and make sure that they are not distributed
# as they only vary a field that is not hashed
for d in 0 1 2 3 4 5 6 7 8 9 a b c d e f; do
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:469: ovs-appctl ofproto/trace br0 \"in_port=1,dl_src=50:54:00:00:00:0\$d,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace br0 \"in_port=1,dl_src=50:54:00:00:00:0$d,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0\"" "ofproto-dpif.at:469"
( $at_check_trace; ovs-appctl ofproto/trace br0 "in_port=1,dl_src=50:54:00:00:00:0$d,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:469"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    tail -1 stdout >> results
done
sort results | uniq -c
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:473: sort results | uniq | sed 's/1[01]/1?/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:473"
( $at_check_trace; sort results | uniq | sed 's/1[01]/1?/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 1?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:473"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Check that fields are rejected without "selection_method=hash".
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:478: ovs-ofctl -O OpenFlow15 add-group br0 'group_id=1235,type=select,fields(eth_dst,ip_dst,tcp_dst),bucket=output:10,bucket=output:11'"
at_fn_check_prepare_trace "ofproto-dpif.at:478"
( $at_check_trace; ovs-ofctl -O OpenFlow15 add-group br0 'group_id=1235,type=select,fields(eth_dst,ip_dst,tcp_dst),bucket=output:10,bucket=output:11'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: fields may only be specified with \"selection_method=hash\"
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto-dpif.at:478"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Check that selection_method_param without selection_method is rejected.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:483: ovs-ofctl -O OpenFlow15 add-group br0 'group_id=1235,type=select,selection_method_param=1,bucket=output:10,bucket=output:11'"
at_fn_check_prepare_trace "ofproto-dpif.at:483"
( $at_check_trace; ovs-ofctl -O OpenFlow15 add-group br0 'group_id=1235,type=select,selection_method_param=1,bucket=output:10,bucket=output:11'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: selection_method_param is only allowed with \"selection_method\"
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto-dpif.at:483"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:487: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:487"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:487"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:487: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:487"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:487"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:487: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:487"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:487"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:487: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:487: wait failed" >&5

    $as_echo "ofproto-dpif.at:487" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:487"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:487: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:487"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:487"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:487: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:487"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:487"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:487: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:487: wait failed" >&5

    $as_echo "ofproto-dpif.at:487" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:487"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1047
#AT_START_1048
at_fn_group_banner 1048 'ofproto-dpif.at:490' \
  "ofproto-dpif - select group with dp_hash selection method" "" 55
at_xfail=no
(
  $as_echo "1048. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:491: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:491"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:491"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:491: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:491"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:491"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:491: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:491"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:491"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:491: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:491"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:491"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:491: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:491"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:491"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:491: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:491"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:491"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:491: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:491"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:491"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 10 11
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:493: ovs-ofctl -O OpenFlow15 add-group br0 'group_id=1234,type=select,selection_method=dp_hash,bucket=output:10,bucket=output:11'"
at_fn_check_prepare_trace "ofproto-dpif.at:493"
( $at_check_trace; ovs-ofctl -O OpenFlow15 add-group br0 'group_id=1234,type=select,selection_method=dp_hash,bucket=output:10,bucket=output:11'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:493"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:494: ovs-ofctl -O OpenFlow15 add-flow br0 'ip,nw_src=192.168.0.1 actions=group:1234'"
at_fn_check_prepare_trace "ofproto-dpif.at:494"
( $at_check_trace; ovs-ofctl -O OpenFlow15 add-flow br0 'ip,nw_src=192.168.0.1 actions=group:1234'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:494"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Try a bunch of different flows and make sure that they get distributed
# at least somewhat.
for d in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do
    pkt="in_port(1),eth(src=50:54:00:00:00:07,dst=50:54:00:00:00:01),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.1.$d,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:500: ovs-appctl netdev-dummy/receive p1 \$pkt"
at_fn_check_prepare_dynamic "ovs-appctl netdev-dummy/receive p1 $pkt" "ofproto-dpif.at:500"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 $pkt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:500"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

done

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:503: ovs-appctl dpctl/dump-flows | sed 's/dp_hash(.*\\/0x1)/dp_hash(0xXXXX\\/0x1)/' | sed 's/packets.*actions:1/actions:1/' | strip_ufid | strip_used | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:503"
( $at_check_trace; ovs-appctl dpctl/dump-flows | sed 's/dp_hash(.*\/0x1)/dp_hash(0xXXXX\/0x1)/' | sed 's/packets.*actions:1/actions:1/' | strip_ufid | strip_used | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(src=192.168.0.1,frag=no), packets:15, bytes:630, used:0.0s, actions:hash(hash_l4(0)),recirc(0x1)
recirc_id(0x1),dp_hash(0xXXXX/0x1),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), actions:10
recirc_id(0x1),dp_hash(0xXXXX/0x1),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), actions:11
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:503"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:510: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:510"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:510"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Try a bunch of different flows and make sure that they are not distributed
# as they only vary a field that is not hashed
for d in 0 1 2 3 4 5 6 7 8 9 a b c d e f; do
    pkt="in_port(1),eth(src=50:54:00:00:00:$d,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:516: ovs-appctl netdev-dummy/receive p1 \$pkt"
at_fn_check_prepare_dynamic "ovs-appctl netdev-dummy/receive p1 $pkt" "ofproto-dpif.at:516"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 $pkt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:516"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

done

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:519: ovs-appctl dpctl/dump-flows | sed 's/dp_hash(.*\\/0x1)/dp_hash(0xXXXX\\/0x1)/' | sed 's/\\(actions:1\\)[01]/\\1X/' | strip_ufid | strip_used | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:519"
( $at_check_trace; ovs-appctl dpctl/dump-flows | sed 's/dp_hash(.*\/0x1)/dp_hash(0xXXXX\/0x1)/' | sed 's/\(actions:1\)[01]/\1X/' | strip_ufid | strip_used | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(src=192.168.0.1,frag=no), packets:15, bytes:630, used:0.0s, actions:hash(hash_l4(0)),recirc(0x2)
recirc_id(0x2),dp_hash(0xXXXX/0x1),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), packets:15, bytes:630, used:0.0s, actions:1X
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:519"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:525: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:525"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:525"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:525: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:525"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:525"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:525: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:525"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:525"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:525: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:525: wait failed" >&5

    $as_echo "ofproto-dpif.at:525" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:525"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:525: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:525"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:525"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:525: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:525"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:525"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:525: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:525: wait failed" >&5

    $as_echo "ofproto-dpif.at:525" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:525"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1048
#AT_START_1049
at_fn_group_banner 1049 'ofproto-dpif.at:528' \
  "ofproto-dpif - fast failover group" "             " 55
at_xfail=no
(
  $as_echo "1049. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:529: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:529"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:529"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:529: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:529"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:529"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:529: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:529"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:529"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:529: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:529"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:529"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:529: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:529"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:529"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:529: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:529"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:529"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:529: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:529"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:529"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 10 11
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:531: ovs-ofctl -O OpenFlow12 add-group br0 'group_id=1234,type=ff,bucket=watch_port:10,output:10,bucket=watch_port:11,output:11'"
at_fn_check_prepare_trace "ofproto-dpif.at:531"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-group br0 'group_id=1234,type=ff,bucket=watch_port:10,output:10,bucket=watch_port:11,output:11'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:531"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:532: ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=write_actions(group:1234)'"
at_fn_check_prepare_trace "ofproto-dpif.at:532"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=write_actions(group:1234)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:532"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:533: ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'"
at_fn_check_prepare_trace "ofproto-dpif.at:533"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:533"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:534: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:534"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:534"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:537: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:537"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:537"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:537: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:537"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:537"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:537: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:537"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:537"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:537: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:537: wait failed" >&5

    $as_echo "ofproto-dpif.at:537" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:537"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:537: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:537"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:537"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:537: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:537"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:537"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:537: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:537: wait failed" >&5

    $as_echo "ofproto-dpif.at:537" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:537"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1049
#AT_START_1050
at_fn_group_banner 1050 'ofproto-dpif.at:540' \
  "ofproto-dpif - group stats single bucket" "       " 55
at_xfail=no
(
  $as_echo "1050. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:541: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:541"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:541"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:541: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:541"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:541"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:541: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:541"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:541"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:541: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:541"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:541"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:541: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:541"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:541"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:541: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:541"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:541"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:541: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:541"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:541"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 10 11
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:543: ovs-ofctl -O OpenFlow12 add-group br0 'group_id=1234,type=select,bucket=output:10,weight=2000,bucket=output:11,weight=0'"
at_fn_check_prepare_trace "ofproto-dpif.at:543"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-group br0 'group_id=1234,type=select,bucket=output:10,weight=2000,bucket=output:11,weight=0'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:543"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:544: ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=write_actions(group:1234)'"
at_fn_check_prepare_trace "ofproto-dpif.at:544"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=write_actions(group:1234)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:544"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

(
for i in `seq 0 2`;
    do
    pkt="in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:01:00),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)"
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:549: ovs-appctl netdev-dummy/receive p1 \$pkt"
at_fn_check_prepare_dynamic "ovs-appctl netdev-dummy/receive p1 $pkt" "ofproto-dpif.at:549"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 $pkt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:549"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    done
)
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:552: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:552"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:552"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:553: ovs-ofctl -O OpenFlow12 -vwarn dump-group-stats br0"
at_fn_check_prepare_trace "ofproto-dpif.at:553"
( $at_check_trace; ovs-ofctl -O OpenFlow12 -vwarn dump-group-stats br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:553"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:554: strip_xids < stdout | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:554"
( $at_check_trace; strip_xids < stdout | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " group_id=1234,ref_count=1,packet_count=3,byte_count=126,bucket0:packet_count=3,byte_count=126,bucket1:packet_count=0,byte_count=0
OFPST_GROUP reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:554"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:558: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:558"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:558"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:558: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:558"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:558"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:558: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:558"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:558"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:558: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:558: wait failed" >&5

    $as_echo "ofproto-dpif.at:558" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:558"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:558: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:558"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:558"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:558: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:558"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:558"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:558: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:558: wait failed" >&5

    $as_echo "ofproto-dpif.at:558" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:558"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1050
#AT_START_1051
at_fn_group_banner 1051 'ofproto-dpif.at:561' \
  "ofproto-dpif - group stats all buckets" "         " 55
at_xfail=no
(
  $as_echo "1051. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:562: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:562"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:562"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:562: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:562"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:562"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:562: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:562"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:562"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:562: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:562"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:562"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:562: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:562"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:562"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:562: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:562"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:562"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:562: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:562"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:562"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 10 11
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:564: ovs-ofctl -O OpenFlow12 add-group br0 'group_id=1234,type=all,bucket=output:10,bucket=output:11'"
at_fn_check_prepare_trace "ofproto-dpif.at:564"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-group br0 'group_id=1234,type=all,bucket=output:10,bucket=output:11'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:564"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:565: ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=write_actions(group:1234)'"
at_fn_check_prepare_trace "ofproto-dpif.at:565"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=write_actions(group:1234)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:565"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

(
for i in `seq 0 2`;
    do
    pkt="in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:01:00),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)"
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:570: ovs-appctl netdev-dummy/receive p1 \$pkt"
at_fn_check_prepare_dynamic "ovs-appctl netdev-dummy/receive p1 $pkt" "ofproto-dpif.at:570"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 $pkt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:570"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    done
)
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:573: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:573"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:573"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:574: ovs-ofctl -O OpenFlow12 -vwarn dump-group-stats br0"
at_fn_check_prepare_trace "ofproto-dpif.at:574"
( $at_check_trace; ovs-ofctl -O OpenFlow12 -vwarn dump-group-stats br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:574"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:575: strip_xids < stdout | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:575"
( $at_check_trace; strip_xids < stdout | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " group_id=1234,ref_count=1,packet_count=3,byte_count=126,bucket0:packet_count=3,byte_count=126,bucket1:packet_count=3,byte_count=126
OFPST_GROUP reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:575"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:579: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:579"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:579"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:579: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:579"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:579"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:579: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:579"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:579"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:579: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:579: wait failed" >&5

    $as_echo "ofproto-dpif.at:579" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:579"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:579: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:579"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:579"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:579: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:579"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:579"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:579: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:579: wait failed" >&5

    $as_echo "ofproto-dpif.at:579" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:579"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1051
#AT_START_1052
at_fn_group_banner 1052 'ofproto-dpif.at:582' \
  "ofproto-dpif - registers" "                       " 55
at_xfail=no
(
  $as_echo "1052. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:583: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:583"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:583"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:583: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:583"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:583"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:583: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:583"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:583"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:583: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:583"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:583"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:583: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:583"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:583"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:583: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:583"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:583"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:583: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:583"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:583"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 20 21 22 33 90
cat >flows.txt <<'_ATEOF'
in_port=90                 actions=resubmit:2,resubmit:3,resubmit:4,resubmit:91
in_port=91                 actions=resubmit:5,resubmit:6,resubmit:7,resubmit:92
in_port=92                 actions=resubmit:8,resubmit:9,resubmit:10,resubmit:11,resubmit:93
in_port=93                 actions=resubmit:12,resubmit:13,resubmit:14,resubmit:15

in_port=2                  actions=load:0x000db000->NXM_NX_REG0[]
in_port=3                  actions=load:0xdea->NXM_NX_REG0[20..31]
in_port=4                  actions=load:0xeef->NXM_NX_REG0[0..11]
in_port=5                  actions=move:NXM_NX_REG0[]->NXM_NX_REG1[]
in_port=6                  actions=load:0x22222222->NXM_NX_REG2[]
in_port=7                  actions=move:NXM_NX_REG1[20..31]->NXM_NX_REG2[0..11]
in_port=8                  actions=move:NXM_NX_REG1[0..11]->NXM_NX_REG2[20..31]
in_port=9,reg0=0xdeadbeef  actions=output:20
in_port=10,reg1=0xdeadbeef actions=output:21
in_port=11,reg2=0xeef22dea actions=output:22

in_port=12 actions=load:0x10->NXM_NX_REG0[],load:0x11->NXM_NX_REG1[],load:0x12->NXM_NX_REG2[]
in_port=13 actions=load:0x13->NXM_NX_REG3[],load:0x14->NXM_NX_REG4[],load:0x15->NXM_NX_REG5[]
in_port=14 actions=load:0x16->NXM_NX_REG6[],load:0x17->NXM_NX_REG7[]
in_port=15,reg0=0x10,reg1=0x11,reg2=0x12,reg3=0x13,reg4=0x14,reg5=0x15,reg6=0x16,reg7=0x17 actions=output:33

_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:609: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:609"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:609"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:610: ovs-appctl ofproto/trace ovs-dummy 'in_port(90),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:610"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(90),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:610"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:611: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:611"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 20,21,22,33
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:611"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:614: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:614"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:614"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:614: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:614"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:614"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:614: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:614"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:614"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:614: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:614: wait failed" >&5

    $as_echo "ofproto-dpif.at:614" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:614"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:614: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:614"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:614"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:614: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:614"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:614"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:614: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:614: wait failed" >&5

    $as_echo "ofproto-dpif.at:614" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:614"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1052
#AT_START_1053
at_fn_group_banner 1053 'ofproto-dpif.at:619' \
  "ofproto-dpif - extended registers" "              " 55
at_xfail=no
(
  $as_echo "1053. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:620: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:620"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:620"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:620: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:620"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:620"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:620: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:620"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:620"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:620: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:620"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:620"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:620: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:620"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:620"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:620: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:620"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:620"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:620: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:620"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:620"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3
cat >flows.txt <<'_ATEOF'
table=0     actions=load:0xfedcba9876543210->OXM_OF_PKT_REG1[],resubmit(,1)
table=1,reg2=0xfedcba98,reg3=0x76543210   actions=2

# These low-priority rules shouldn't match.  They're here only to make really
# sure that the test fails if either of the above rules fails to match.
table=0,priority=0                        actions=3
table=1,priority=0                        actions=3
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:631: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:631"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:631"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:632: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:632"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:632"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:633: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:633"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:633"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:635: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:635"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:635"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:635: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:635"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:635"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:635: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:635"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:635"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:635: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:635: wait failed" >&5

    $as_echo "ofproto-dpif.at:635" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:635"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:635: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:635"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:635"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:635: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:635"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:635"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:635: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:635: wait failed" >&5

    $as_echo "ofproto-dpif.at:635" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:635"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1053
#AT_START_1054
at_fn_group_banner 1054 'ofproto-dpif.at:640' \
  "ofproto-dpif - extended-extended registers" "     " 55
at_xfail=no
(
  $as_echo "1054. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:641: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:641"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:641"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:641: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:641"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:641"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:641: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:641"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:641"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:641: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:641"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:641"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:641: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:641"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:641"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:641: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:641"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:641"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:641: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:641"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:641"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3
cat >flows.txt <<'_ATEOF'
table=0 actions=load:0x0123456789abcdeffedcba9876543210->NXM_NX_XXREG1[],resubmit(,1)
table=1,reg4=0x01234567,reg5=0x89abcdef,reg6=0xfedcba98,reg7=0x76543210   actions=2

# These low-priority rules shouldn't match.  They're here only to make really
# sure that the test fails if either of the above rules fails to match.
table=0,priority=0                        actions=3
table=1,priority=0                        actions=3
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:652: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:652"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:652"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:653: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:653"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:653"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:654: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:654"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:654"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:656: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:656"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:656"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:656: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:656"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:656"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:656: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:656"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:656"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:656: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:656: wait failed" >&5

    $as_echo "ofproto-dpif.at:656" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:656"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:656: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:656"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:656"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:656: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:656"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:656"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:656: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:656: wait failed" >&5

    $as_echo "ofproto-dpif.at:656" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:656"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1054
#AT_START_1055
at_fn_group_banner 1055 'ofproto-dpif.at:659' \
  "ofproto-dpif - load and move order" "             " 55
at_xfail=no
(
  $as_echo "1055. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:660: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:660"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:660"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:660: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:660"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:660"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:660: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:660"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:660"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:660: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:660"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:660"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:660: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:660"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:660"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:660: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:660"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:660"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:660: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:660"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:660"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 10 11
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:662: ovs-ofctl -O OpenFlow12 add-group br0 'group_id=1234,type=all,bucket=output:10,move:NXM_NX_REG1[]->NXM_OF_IP_SRC[],bucket=output:11'"
at_fn_check_prepare_trace "ofproto-dpif.at:662"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-group br0 'group_id=1234,type=all,bucket=output:10,move:NXM_NX_REG1[]->NXM_OF_IP_SRC[],bucket=output:11'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:662"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:663: ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=write_actions(load:0xffffffff->NXM_NX_REG1[],move:NXM_NX_REG1[]->NXM_NX_REG2[],group:1234)'"
at_fn_check_prepare_trace "ofproto-dpif.at:663"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 'ip actions=write_actions(load:0xffffffff->NXM_NX_REG1[],move:NXM_NX_REG1[]->NXM_NX_REG2[],group:1234)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:663"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:664: ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'"
at_fn_check_prepare_trace "ofproto-dpif.at:664"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=1,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,dl_type=0x0800,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=1,nw_tos=0,nw_ttl=128,icmp_type=8,icmp_code=0'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:664"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:665: tail -2 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:665"
( $at_check_trace; tail -2 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Megaflow: recirc_id=0,eth,ip,in_port=1,nw_src=192.168.0.1,nw_frag=no
Datapath actions: set(ipv4(src=255.255.255.255)),10,set(ipv4(src=192.168.0.1)),11
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:665"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:669: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:669"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:669"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:669: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:669"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:669"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:669: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:669"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:669"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:669: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:669: wait failed" >&5

    $as_echo "ofproto-dpif.at:669" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:669"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:669: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:669"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:669"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:669: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:669"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:669"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:669: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:669: wait failed" >&5

    $as_echo "ofproto-dpif.at:669" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:669"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1055
#AT_START_1056
at_fn_group_banner 1056 'ofproto-dpif.at:673' \
  "ofproto-dpif - copy-field into extended registers" "" 55
at_xfail=no
(
  $as_echo "1056. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:674: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:674"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:674"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:674: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:674"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:674"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:674: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:674"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:674"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:674: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:674"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:674"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:674: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:674"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:674"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:674: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:674"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:674"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:674: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:674"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:674"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3
cat >flows.txt <<'_ATEOF'
table=0     actions=move:OXM_OF_ETH_SRC[0..47]->OXM_OF_PKT_REG0[0..47],goto_table(1)
table=1,xreg0=0x0000505400000005   actions=2

# These low-priority rules shouldn't match.  They're here only to make really
# sure that the test fails if either of the above rules fails to match.
table=0,priority=0                        actions=3
table=1,priority=0                        actions=3
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:685: ovs-ofctl -O OpenFlow15 add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:685"
( $at_check_trace; ovs-ofctl -O OpenFlow15 add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:685"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:686: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:686"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:686"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:687: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:687"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:687"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:689: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:689"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:689"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:689: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:689"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:689"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:689: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:689"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:689"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:689: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:689: wait failed" >&5

    $as_echo "ofproto-dpif.at:689" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:689"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:689: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:689"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:689"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:689: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:689"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:689"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:689: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:689: wait failed" >&5

    $as_echo "ofproto-dpif.at:689" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:689"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1056
#AT_START_1057
at_fn_group_banner 1057 'ofproto-dpif.at:693' \
  "ofproto-dpif - masked set-field into metadata" "  " 55
at_xfail=no
(
  $as_echo "1057. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:694: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:694"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:694"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:694: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:694"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:694"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:694: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:694"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:694"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:694: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:694"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:694"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:694: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:694"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:694"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:694: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:694"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:694"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:694: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:694"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:694"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3
cat >flows.txt <<'_ATEOF'
table=0     actions=set_field:0xfafafafa5a5a5a5a->metadata,goto_table(1)
table=1     actions=set_field:0x6b/0xff->metadata,goto_table(2)
table=2,metadata=0xfafafafa5a5a5a6b  actions=2

# These low-priority rules shouldn't match.  They're here only to make really
# sure that the test fails if either of the above rules fails to match.
table=0,priority=0                        actions=3
table=1,priority=0                        actions=3
table=2,priority=0                        actions=3
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:707: ovs-ofctl -O OpenFlow15 add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:707"
( $at_check_trace; ovs-ofctl -O OpenFlow15 add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:707"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:708: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:708"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:708"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:709: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:709"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:709"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:711: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:711"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:711"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:711: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:711"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:711"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:711: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:711"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:711"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:711: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:711: wait failed" >&5

    $as_echo "ofproto-dpif.at:711" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:711"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:711: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:711"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:711"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:711: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:711"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:711"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:711: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:711: wait failed" >&5

    $as_echo "ofproto-dpif.at:711" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:711"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1057
#AT_START_1058
at_fn_group_banner 1058 'ofproto-dpif.at:715' \
  "ofproto-dpif - actset_output" "                   " 55
at_xfail=no
(
  $as_echo "1058. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:716: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:716"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:716"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:716: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:716"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:716"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:716: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:716"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:716"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:716: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:716"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:716"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:716: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:716"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:716"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:716: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:716"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:716"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:716: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:716"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:716"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3 4 5 6 7 8 9 10 11 12 13
cat >flows.txt <<'_ATEOF'
table=0,actset_output=unset     actions=write_actions(output(2)),goto_table(1)
table=1     actions=move:ONFOXM_ET_ACTSET_OUTPUT[0..31]->OXM_OF_PKT_REG0[0..31],goto_table(2)

# Verify that actset_output got set.
table=2,priority=20,actset_output=2  actions=4,goto_table(3)
table=2,priority=10                  actions=5,goto_table(3)

# Verify that xreg0 got copied properly from actset_output.
table=3,priority=20,xreg0=2  actions=6,goto_table(4)
table=3,priority=10          actions=7,goto_table(4)

# Verify that xxreg0 got copied properly from actset_output.
table=3,priority=20,xxreg0=2  actions=6,goto_table(4)
table=3,priority=10           actions=7,goto_table(4)

# Verify that adding a group action unsets actset_output,
# even if output follows group.
table=4 actions=write_actions(group(5),output(10)),goto_table(5)
table=5,priority=20,actset_output=unset  actions=8,goto_table(6)
table=5,priority=10                      actions=9,goto_table(6)

# Verify that adding another output action doesn't change actset_output
# (since there's still a group).
table=6 actions=write_actions(output(3)),goto_table(7)
table=7,priority=20,actset_output=unset  actions=10,goto_table(8)
table=7,priority=10                      actions=11,goto_table(8)

# Verify that clearing the action set, then writing an output action,
# causes actset_output to be set again.
table=8,actions=clear_actions,write_actions(output(3),output(2)),goto_table(9)
table=9,priority=20,actset_output=2 actions=12
table=9,priority=10                 actions=13
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:752: ovs-ofctl -O OpenFlow13 add-group br0 'group_id=5,type=all,bucket=output:1'"
at_fn_check_prepare_trace "ofproto-dpif.at:752"
( $at_check_trace; ovs-ofctl -O OpenFlow13 add-group br0 'group_id=5,type=all,bucket=output:1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:752"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:753: ovs-ofctl -O OpenFlow13 add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:753"
( $at_check_trace; ovs-ofctl -O OpenFlow13 add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:753"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:754: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:754"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:754"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:755: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:755"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 4,6,8,10,12,2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:755"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:757: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:757"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:757"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:757: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:757"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:757"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:757: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:757"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:757"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:757: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:757: wait failed" >&5

    $as_echo "ofproto-dpif.at:757" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:757"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:757: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:757"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:757"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:757: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:757"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:757"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:757: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:757: wait failed" >&5

    $as_echo "ofproto-dpif.at:757" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:757"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1058
#AT_START_1059
at_fn_group_banner 1059 'ofproto-dpif.at:760' \
  "ofproto-dpif - push-pop" "                        " 55
at_xfail=no
(
  $as_echo "1059. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:761: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:761"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:761"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:761: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:761"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:761"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:761: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:761"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:761"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:761: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:761"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:761"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:761: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:761"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:761"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:761: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:761"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:761"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:761: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:761"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:761"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 20 21 22 33 90
cat >flows.txt <<'_ATEOF'
in_port=90           actions=load:20->NXM_NX_REG0[0..7],load:21->NXM_NX_REG1[0..7],load:22->NXM_NX_REG2[0..7], load:33->NXM_NX_REG3[0..7], push:NXM_NX_REG0[], push:NXM_NX_REG1[0..7],push:NXM_NX_REG2[0..15], push:NXM_NX_REG3[], resubmit:2, resubmit:3, resubmit:4, resubmit:5
in_port=2            actions=pop:NXM_NX_REG0[0..7],output:NXM_NX_REG0[]
in_port=3            actions=pop:NXM_NX_REG1[0..7],output:NXM_NX_REG1[]
in_port=4            actions=pop:NXM_NX_REG2[0..15],output:NXM_NX_REG2[]
in_port=5            actions=pop:NXM_NX_REG3[],output:NXM_NX_REG3[]

_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:771: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:771"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:771"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:772: ovs-appctl ofproto/trace ovs-dummy 'in_port(90),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:772"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(90),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:772"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:773: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:773"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 33,22,21,20
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:773"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:776: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:776"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:776"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:776: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:776"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:776"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:776: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:776"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:776"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:776: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:776: wait failed" >&5

    $as_echo "ofproto-dpif.at:776" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:776"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:776: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:776"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:776"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:776: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:776"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:776"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:776: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:776: wait failed" >&5

    $as_echo "ofproto-dpif.at:776" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:776"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1059
#AT_START_1060
at_fn_group_banner 1060 'ofproto-dpif.at:779' \
  "ofproto-dpif - output" "                          " 55
at_xfail=no
(
  $as_echo "1060. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:780: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:780"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:780"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:780: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:780"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:780"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:780: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:780"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:780"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:780: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:780"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:780"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:780: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:780"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:780"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:780: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:780"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:780"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:780: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:780"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:780"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 9 10 11 55 66 77 88
cat >flows.txt <<'_ATEOF'
in_port=1 actions=resubmit:2,resubmit:3,resubmit:4,resubmit:5,resubmit:6,resubmit:7,resubmit:8
in_port=2 actions=output:9
in_port=3 actions=load:55->NXM_NX_REG0[],output:NXM_NX_REG0[],load:66->NXM_NX_REG1[]
in_port=4 actions=output:10,output:NXM_NX_REG0[],output:NXM_NX_REG1[],output:11
in_port=5 actions=load:77->NXM_NX_REG0[0..15],load:88->NXM_NX_REG0[16..31]
in_port=6 actions=output:NXM_NX_REG0[0..15],output:NXM_NX_REG0[16..31]
in_port=7 actions=load:0x110000ff->NXM_NX_REG0[],output:NXM_NX_REG0[]
in_port=8 actions=1,9,load:9->NXM_OF_IN_PORT[],1,9
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:792: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:792"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:792"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:793: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:793"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:793"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:794: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:794"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 9,55,10,55,66,11,77,88,9,1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:794"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:797: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:797"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:797"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:797: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:797"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:797"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:797: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:797"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:797"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:797: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:797: wait failed" >&5

    $as_echo "ofproto-dpif.at:797" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:797"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:797: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:797"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:797"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:797: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:797"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:797"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:797: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:797: wait failed" >&5

    $as_echo "ofproto-dpif.at:797" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:797"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1060
#AT_START_1061
at_fn_group_banner 1061 'ofproto-dpif.at:800' \
  "ofproto-dpif - dec_ttl" "                         " 55
at_xfail=no
(
  $as_echo "1061. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:801: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:801"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:801"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:801: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:801"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:801"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:801: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:801"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:801"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:801: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:801"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:801"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:801: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:801"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:801"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:801: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:801"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:801"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:801: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:801"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:801"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3 4
cat >flows.txt <<'_ATEOF'
table=0 in_port=1 action=dec_ttl,output:2,resubmit(1,1),output:4
table=1 in_port=1 action=dec_ttl,output:3
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:807: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:807"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:807"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:808: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=111,tos=0,ttl=2,frag=no)' -generate"
at_fn_check_prepare_trace "ofproto-dpif.at:808"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=111,tos=0,ttl=2,frag=no)' -generate
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:808"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:809: tail -4 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:809"
( $at_check_trace; tail -4 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "
Final flow: ip,in_port=1,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=111,nw_tos=0,nw_ecn=0,nw_ttl=1
Megaflow: recirc_id=0,eth,ip,in_port=1,nw_ttl=2,nw_frag=no
Datapath actions: set(ipv4(ttl=1)),2,userspace(pid=0,controller(reason=2,dont_send=0,continuation=0,recirc_id=1,rule_cookie=0,controller_id=0,max_len=65535)),4
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:809"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:814: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=111,tos=0,ttl=3,frag=no)'"
at_fn_check_prepare_trace "ofproto-dpif.at:814"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=111,tos=0,ttl=3,frag=no)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:814"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:815: tail -2 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:815"
( $at_check_trace; tail -2 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Megaflow: recirc_id=0,eth,ip,in_port=1,nw_ttl=3,nw_frag=no
Datapath actions: set(ipv4(ttl=2)),2,set(ipv4(ttl=1)),3,4
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:815"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:819: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=10,tclass=0x70,hlimit=128,frag=no)'"
at_fn_check_prepare_trace "ofproto-dpif.at:819"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=10,tclass=0x70,hlimit=128,frag=no)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:819"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:820: tail -2 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:820"
( $at_check_trace; tail -2 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Megaflow: recirc_id=0,eth,ipv6,in_port=1,nw_ttl=128,nw_frag=no
Datapath actions: set(ipv6(hlimit=127)),2,set(ipv6(hlimit=126)),3,4
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:820"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:826: ovs-ofctl -P nxt_packet_in monitor br0 65534 invalid_ttl --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:826"
( $at_check_trace; ovs-ofctl -P nxt_packet_in monitor br0 65534 invalid_ttl --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:826"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=111,tos=0,ttl=2,frag=no)'

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:830: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:830"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:830"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:830: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:830"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:830"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:830: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:830: wait failed" >&5

    $as_echo "ofproto-dpif.at:830" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:830"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:831: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:831"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x0 total_len=34 in_port=1 (via invalid_ttl) data_len=34 (unbuffered)
ip,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=111,nw_tos=0,nw_ecn=0,nw_ttl=1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:831"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:835: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:835"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:835"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:835: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:835"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:835"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:835: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:835"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:835"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:835: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:835: wait failed" >&5

    $as_echo "ofproto-dpif.at:835" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:835"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:835: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:835"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:835"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:835: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:835"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:835"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:835: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:835: wait failed" >&5

    $as_echo "ofproto-dpif.at:835" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:835"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1061
#AT_START_1062
at_fn_group_banner 1062 'ofproto-dpif.at:845' \
  "ofproto-dpif - dec_ttl without arguments at offset 32 in ofpacts" "" 55
at_xfail=no
(
  $as_echo "1062. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:846: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:846"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:846"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:846: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:846"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:846"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:846: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:846"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:846"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:846: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:846"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:846"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:846: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:846"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:846"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:846: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:846"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:846"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:846: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:846"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:846"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1
(for i in `seq 0 255`; do
  printf "dl_src=10:11:11:11:11:%02x actions=output:1,output:1,output:1,dec_ttl,controller\n" $i
 done) > flows.txt
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:851: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:851"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:851"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:852: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:852"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:852"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:852: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:852"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:852"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:852: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:852"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:852"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:852: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:852: wait failed" >&5

    $as_echo "ofproto-dpif.at:852" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:852"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:852: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:852"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:852"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:852: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:852"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:852"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:852: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:852: wait failed" >&5

    $as_echo "ofproto-dpif.at:852" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:852"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1062
#AT_START_1063
at_fn_group_banner 1063 'ofproto-dpif.at:862' \
  "ofproto-dpif - dec_ttl with arguments at offset 32 in ofpacts" "" 55
at_xfail=no
(
  $as_echo "1063. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:863: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:863"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:863"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:863: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:863"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:863"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:863: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:863"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:863"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:863: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:863"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:863"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:863: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:863"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:863"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:863: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:863"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:863"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:863: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:863"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:863"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1
(for i in `seq 0 255`; do
  printf "dl_src=10:11:11:11:11:%02x actions=output:1,output:1,output:1,dec_ttl(1),controller\n" $i
 done) > flows.txt
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:868: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:868"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:868"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:869: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:869"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:869"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:869: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:869"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:869"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:869: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:869"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:869"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:869: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:869: wait failed" >&5

    $as_echo "ofproto-dpif.at:869" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:869"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:869: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:869"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:869"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:869: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:869"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:869"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:869: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:869: wait failed" >&5

    $as_echo "ofproto-dpif.at:869" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:869"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1063
#AT_START_1064
at_fn_group_banner 1064 'ofproto-dpif.at:879' \
  "ofproto-dpif - note at offset 24 in ofpacts" "    " 55
at_xfail=no
(
  $as_echo "1064. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:880: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:880"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:880"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:880: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:880"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:880"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:880: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:880"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:880"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:880: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:880"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:880"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:880: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:880"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:880"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:880: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:880"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:880"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:880: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:880"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:880"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1
(for i in `seq 0 255`; do
  printf "dl_src=10:11:11:11:11:%02x actions=output:1,output:1,note:ff,controller\n" $i
 done) > flows.txt
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:885: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:885"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:885"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:886: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:886"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:886"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:886: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:886"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:886"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:886: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:886"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:886"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:886: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:886: wait failed" >&5

    $as_echo "ofproto-dpif.at:886" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:886"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:886: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:886"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:886"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:886: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:886"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:886"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:886: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:886: wait failed" >&5

    $as_echo "ofproto-dpif.at:886" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:886"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1064
#AT_START_1065
at_fn_group_banner 1065 'ofproto-dpif.at:893' \
  "ofproto-dpif - note action deep inside ofpacts" " " 55
at_xfail=no
(
  $as_echo "1065. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:894: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:894"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:894"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:894: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:894"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:894"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:894: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:894"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:894"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:894: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:894"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:894"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:894: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:894"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:894"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:894: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:894"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:894"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:894: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:894"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:894"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:895: ovs-ofctl add-flow br0 'actions=set_field:0x1->metadata,set_field:0x2->metadata,set_field:0x3->metadata,set_field:0x4->metadata,note:00000000000000000000000000000000,note:00000000000000000000000000000000'"
at_fn_check_prepare_trace "ofproto-dpif.at:895"
( $at_check_trace; ovs-ofctl add-flow br0 'actions=set_field:0x1->metadata,set_field:0x2->metadata,set_field:0x3->metadata,set_field:0x4->metadata,note:00000000000000000000000000000000,note:00000000000000000000000000000000'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:895"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:896: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:896"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:896"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:896: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:896"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:896"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:896: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:896"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:896"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:896: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:896: wait failed" >&5

    $as_echo "ofproto-dpif.at:896" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:896"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:896: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:896"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:896"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:896: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:896"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:896"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:896: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:896: wait failed" >&5

    $as_echo "ofproto-dpif.at:896" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:896"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1065
#AT_START_1066
at_fn_group_banner 1066 'ofproto-dpif.at:899' \
  "ofproto-dpif - output, OFPP_NONE ingress port" "  " 55
at_xfail=no
(
  $as_echo "1066. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:900: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:900"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:900"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:900: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:900"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:900"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:900: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:900"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:900"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:900: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:900"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:900"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:900: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:900"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:900"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:900: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:900"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:900"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:900: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:900"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:900"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:903: ovs-ofctl add-flow br0 action=normal"
at_fn_check_prepare_trace "ofproto-dpif.at:903"
( $at_check_trace; ovs-ofctl add-flow br0 action=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:903"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# "in_port" defaults to OFPP_NONE if it's not specified.
flow="icmp,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,icmp_type=8,icmp_code=0"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:907: ovs-appctl ofproto/trace br0 \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace br0 \"$flow\"" "ofproto-dpif.at:907"
( $at_check_trace; ovs-appctl ofproto/trace br0 "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:907"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:908: tail -1 stdout | sed 's/Datapath actions: //' | tr \",\" \"\\n\" | sort -n"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:908"
( $at_check_trace; tail -1 stdout | sed 's/Datapath actions: //' | tr "," "\n" | sort -n
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
2
100
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:908"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:914: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:914"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:914"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:914: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:914"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:914"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:914: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:914"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:914"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:914: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:914: wait failed" >&5

    $as_echo "ofproto-dpif.at:914" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:914"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:914: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:914"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:914"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:914: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:914"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:914"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:914: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:914: wait failed" >&5

    $as_echo "ofproto-dpif.at:914" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:914"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1066
#AT_START_1067
at_fn_group_banner 1067 'ofproto-dpif.at:917' \
  "ofproto-dpif - DSCP" "                            " 55
at_xfail=no
(
  $as_echo "1067. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:918: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:918"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:918"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:918: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:918"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:918"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:918: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:918"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:918"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:918: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:918"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:918"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:918: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:918"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:918"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:918: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:918"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:918"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:918: add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy "
at_fn_check_prepare_trace "ofproto-dpif.at:918"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:918"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 9
cat >flows.txt <<'_ATEOF'
actions=output:LOCAL,enqueue:1:1,enqueue:1:2,enqueue:1:2,enqueue:1:1,output:1,mod_nw_tos:0,output:1,output:LOCAL
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:923: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:923"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:923"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:924: ovs-vsctl -- \\
        set Port p1 qos=@newqos --\\
        --id=@newqos create QoS type=linux-htb queues=1=@q1,2=@q2 --\\
        --id=@q1 create Queue dscp=1 --\\
        --id=@q2 create Queue dscp=2"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:924"
( $at_check_trace; ovs-vsctl -- \
        set Port p1 qos=@newqos --\
        --id=@newqos create QoS type=linux-htb queues=1=@q1,2=@q2 --\
        --id=@q1 create Queue dscp=1 --\
        --id=@q2 create Queue dscp=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:924"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:929: ovs-appctl ofproto/trace ovs-dummy 'in_port(9),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=1.1.1.1,dst=2.2.2.2,proto=1,tos=0xff,ttl=128,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:929"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(9),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=1.1.1.1,dst=2.2.2.2,proto=1,tos=0xff,ttl=128,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:929"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:930: tail -2 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:930"
( $at_check_trace; tail -2 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Megaflow: recirc_id=0,skb_priority=0,eth,ip,in_port=9,nw_tos=252,nw_frag=no
Datapath actions: 100,set(ipv4(tos=0x4/0xfc)),set(skb_priority(0x1)),1,set(ipv4(tos=0x8/0xfc)),set(skb_priority(0x2)),1,1,set(ipv4(tos=0x4/0xfc)),set(skb_priority(0x1)),1,set(ipv4(tos=0xfc/0xfc)),set(skb_priority(0)),1,set(ipv4(tos=0/0xfc)),1,100
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:930"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:941: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:941"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:941"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:941: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:941"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:941"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:941: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:941"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:941"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:941: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:941: wait failed" >&5

    $as_echo "ofproto-dpif.at:941" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:941"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:941: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:941"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:941"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:941: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:941"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:941"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:941: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:941: wait failed" >&5

    $as_echo "ofproto-dpif.at:941" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:941"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1067
#AT_START_1068
at_fn_group_banner 1068 'ofproto-dpif.at:944' \
  "ofproto-dpif - output/flood flags" "              " 55
at_xfail=no
(
  $as_echo "1068. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:945: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:945"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:945"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:945: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:945"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:945"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:945: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:945"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:945"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:945: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:945"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:945"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:945: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:945"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:945"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:945: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:945"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:945"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:945: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:945"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:945"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3 4 5 6 7

cat >flows.txt <<'_ATEOF'
in_port=local actions=local,flood
in_port=1 actions=flood
in_port=2 actions=all
in_port=3 actions=output:LOCAL,output:1,output:2,output:3,output:4,output:5,output:6,output:7
in_port=4 actions=enqueue:LOCAL:1,enqueue:1:1,enqueue:2:1,enqueue:3:2,enqueue:4:1,enqueue:5:1,enqueue:6:1,enqueue:7:1
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:955: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:955"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:955"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:956: ovs-ofctl mod-port br0 5 noforward"
at_fn_check_prepare_trace "ofproto-dpif.at:956"
( $at_check_trace; ovs-ofctl mod-port br0 5 noforward
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:956"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:957: ovs-ofctl mod-port br0 6 noflood"
at_fn_check_prepare_trace "ofproto-dpif.at:957"
( $at_check_trace; ovs-ofctl mod-port br0 6 noflood
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:957"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:959: ovs-appctl ofproto/trace ovs-dummy 'in_port(100),eth(src=00:00:00:00:00:01,dst=00:00:00:00:00:02),eth_type(0x0900)'"
at_fn_check_prepare_trace "ofproto-dpif.at:959"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(100),eth(src=00:00:00:00:00:01,dst=00:00:00:00:00:02),eth_type(0x0900)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:959"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:960: tail -1 stdout \\
| sed -e 's/Datapath actions: //' | tr ',' '\\n' | sort"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:960"
( $at_check_trace; tail -1 stdout \
| sed -e 's/Datapath actions: //' | tr ',' '\n' | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
2
3
4
7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:960"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:969: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=00:00:00:00:00:01,dst=00:00:00:00:00:02),eth_type(0x0900)'"
at_fn_check_prepare_trace "ofproto-dpif.at:969"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=00:00:00:00:00:01,dst=00:00:00:00:00:02),eth_type(0x0900)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:969"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:970: tail -1 stdout \\
| sed -e 's/Datapath actions: //' | tr ',' '\\n' | sort"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:970"
( $at_check_trace; tail -1 stdout \
| sed -e 's/Datapath actions: //' | tr ',' '\n' | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "100
2
3
4
7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:970"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:979: ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=00:00:00:00:00:01,dst=00:00:00:00:00:02),eth_type(0x0900)'"
at_fn_check_prepare_trace "ofproto-dpif.at:979"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=00:00:00:00:00:01,dst=00:00:00:00:00:02),eth_type(0x0900)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:979"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:980: tail -1 stdout \\
| sed -e 's/Datapath actions: //' | tr ',' '\\n' | sort"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:980"
( $at_check_trace; tail -1 stdout \
| sed -e 's/Datapath actions: //' | tr ',' '\n' | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
100
3
4
6
7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:980"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:990: ovs-appctl ofproto/trace ovs-dummy 'in_port(3),eth(src=00:00:00:00:00:01,dst=00:00:00:00:00:02),eth_type(0x0900)'"
at_fn_check_prepare_trace "ofproto-dpif.at:990"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(3),eth(src=00:00:00:00:00:01,dst=00:00:00:00:00:02),eth_type(0x0900)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:990"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:991: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:991"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 100,1,2,4,6,7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:991"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:995: ovs-appctl ofproto/trace ovs-dummy 'in_port(4),eth(src=00:00:00:00:00:01,dst=00:00:00:00:00:02),eth_type(0x0900)'"
at_fn_check_prepare_trace "ofproto-dpif.at:995"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(4),eth(src=00:00:00:00:00:01,dst=00:00:00:00:00:02),eth_type(0x0900)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:995"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:996: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:996"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: set(skb_priority(0x1)),100,1,2,set(skb_priority(0x2)),3,set(skb_priority(0x1)),6,7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:996"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:999: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:999"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:999"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:999: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:999"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:999"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:999: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:999"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:999"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:999: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:999: wait failed" >&5

    $as_echo "ofproto-dpif.at:999" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:999"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:999: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:999"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:999"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:999: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:999"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:999"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:999: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:999: wait failed" >&5

    $as_echo "ofproto-dpif.at:999" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:999"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1068
#AT_START_1069
at_fn_group_banner 1069 'ofproto-dpif.at:1002' \
  "ofproto-dpif - Default Table Miss - OF1.0 (OFPTC_TABLE_MISS_CONTROLLER)" "" 55
at_xfail=no
(
  $as_echo "1069. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1003: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:1003"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1003"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1003: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:1003"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1003"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1003: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1003"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1003"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1003: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:1003"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1003"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1003: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:1003"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1003"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1003: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1003"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1003"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1003: add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy
 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1003"
( $at_check_trace; add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1003"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


on_exit 'kill `cat ovs-ofctl.pid`'



{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1010: ovs-ofctl -P nxt_packet_in monitor br0 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1010"
( $at_check_trace; ovs-ofctl -P nxt_packet_in monitor br0 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1010"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3 ; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9),tcp_flags(syn)'
done
$as_echo "ofproto-dpif.at:1015: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1015: wait failed" >&5

    $as_echo "ofproto-dpif.at:1015" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1015"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1016: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:1016"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1016"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1016: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1016"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1016"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1016: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1016: wait failed" >&5

    $as_echo "ofproto-dpif.at:1016" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1016"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1017: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1017"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0x0 total_len=54 in_port=1 (via no_match) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=9,tcp_flags=syn tcp_csum:2e7e
NXT_PACKET_IN (xid=0x0): cookie=0x0 total_len=54 in_port=1 (via no_match) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=9,tcp_flags=syn tcp_csum:2e7e
NXT_PACKET_IN (xid=0x0): cookie=0x0 total_len=54 in_port=1 (via no_match) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=9,tcp_flags=syn tcp_csum:2e7e
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1017"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1028: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:1028"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1028"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1029: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:1029"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1029"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1033: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:1033"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1033"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1033: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:1033"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1033"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1033: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:1033"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1033"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1033: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1033: wait failed" >&5

    $as_echo "ofproto-dpif.at:1033" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1033"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1033: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:1033"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1033"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1033: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1033"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1033"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1033: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1033: wait failed" >&5

    $as_echo "ofproto-dpif.at:1033" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1033"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1069
#AT_START_1070
at_fn_group_banner 1070 'ofproto-dpif.at:1036' \
  "ofproto-dpif - Default Table Miss - OF1.3 (OFPTC_TABLE_MISS_DROP)" "" 55
at_xfail=no
(
  $as_echo "1070. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1037: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:1037"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1037"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1037: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:1037"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1037"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1037: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1037"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1037"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1037: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:1037"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1037"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1037: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:1037"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1037"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1037: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1037"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1037"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1037: add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy
 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1037"
( $at_check_trace; add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1037"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


on_exit 'kill `cat ovs-ofctl.pid`'


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1043: ovs-ofctl del-flows br0"
at_fn_check_prepare_trace "ofproto-dpif.at:1043"
( $at_check_trace; ovs-ofctl del-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1043"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1045: ovs-ofctl monitor -OOpenFlow13 -P standard br0 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1045"
( $at_check_trace; ovs-ofctl monitor -OOpenFlow13 -P standard br0 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1045"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3 ; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9),tcp_flags(ack,syn)'
done
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1051: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:1051"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1051"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1051: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1051"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1051"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1051: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1051: wait failed" >&5

    $as_echo "ofproto-dpif.at:1051" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1051"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1053: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1053"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1053"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1056: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:1056"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1056"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1057: ovs-ofctl -OOpenFlow13 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:1057"
( $at_check_trace; ovs-ofctl -OOpenFlow13 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_FLOW reply (OF1.3):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1057"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1061: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:1061"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1061"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1061: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:1061"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1061"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1061: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:1061"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1061"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1061: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1061: wait failed" >&5

    $as_echo "ofproto-dpif.at:1061" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1061"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1061: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:1061"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1061"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1061: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1061"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1061"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1061: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1061: wait failed" >&5

    $as_echo "ofproto-dpif.at:1061" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1061"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1070
#AT_START_1071
at_fn_group_banner 1071 'ofproto-dpif.at:1064' \
  "ofproto-dpif - Table Miss - goto table and OFPTC_TABLE_MISS_CONTROLLER" "" 55
at_xfail=no
(
  $as_echo "1071. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1065: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:1065"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1065"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1065: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:1065"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1065"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1065: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1065"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1065"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1065: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:1065"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1065"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1065: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:1065"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1065"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1065: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1065"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1065"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1065: add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy
 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1065"
( $at_check_trace; add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1065"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


on_exit 'kill `cat ovs-ofctl.pid`'


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1071: ovs-ofctl -OOpenFlow12 add-flow br0 'table=0 actions=goto_table(1)'"
at_fn_check_prepare_trace "ofproto-dpif.at:1071"
( $at_check_trace; ovs-ofctl -OOpenFlow12 add-flow br0 'table=0 actions=goto_table(1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1071"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1073: ovs-ofctl monitor -P standard br0 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1073"
( $at_check_trace; ovs-ofctl monitor -P standard br0 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1073"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3 ; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9),tcp_flags(urg|rst)'
done
$as_echo "ofproto-dpif.at:1078: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1078: wait failed" >&5

    $as_echo "ofproto-dpif.at:1078" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1078"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1079: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:1079"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1079"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1079: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1079"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1079"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1079: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1079: wait failed" >&5

    $as_echo "ofproto-dpif.at:1079" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1079"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1080: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1080"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (xid=0x0): total_len=54 in_port=1 (via no_match) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=9,tcp_flags=rst|urg tcp_csum:2e5c
OFPT_PACKET_IN (xid=0x0): total_len=54 in_port=1 (via no_match) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=9,tcp_flags=rst|urg tcp_csum:2e5c
OFPT_PACKET_IN (xid=0x0): total_len=54 in_port=1 (via no_match) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=9,tcp_flags=rst|urg tcp_csum:2e5c
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1080"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1091: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:1091"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1091"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1092: ovs-ofctl -OOpenFlow12 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:1092"
( $at_check_trace; ovs-ofctl -OOpenFlow12 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " n_packets=3, n_bytes=162, actions=goto_table:1
OFPST_FLOW reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1092"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1097: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:1097"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1097"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1097: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:1097"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1097"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1097: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:1097"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1097"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1097: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1097: wait failed" >&5

    $as_echo "ofproto-dpif.at:1097" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1097"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1097: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:1097"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1097"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1097: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1097"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1097"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1097: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1097: wait failed" >&5

    $as_echo "ofproto-dpif.at:1097" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1097"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1071
#AT_START_1072
at_fn_group_banner 1072 'ofproto-dpif.at:1100' \
  "ofproto-dpif - Table Miss - resubmit and OFPTC_TABLE_MISS_CONTROLLER" "" 55
at_xfail=no
(
  $as_echo "1072. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1101: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:1101"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1101"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1101: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:1101"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1101"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1101: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1101"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1101"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1101: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:1101"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1101"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1101: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:1101"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1101"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1101: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1101"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1101"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1101: add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy
 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1101"
( $at_check_trace; add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1101"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


on_exit 'kill `cat ovs-ofctl.pid`'


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1107: ovs-ofctl -OOpenFlow12 add-flow br0 'table=0 actions=resubmit(1,1)'"
at_fn_check_prepare_trace "ofproto-dpif.at:1107"
( $at_check_trace; ovs-ofctl -OOpenFlow12 add-flow br0 'table=0 actions=resubmit(1,1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1109: ovs-ofctl monitor -P standard br0 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1109"
( $at_check_trace; ovs-ofctl monitor -P standard br0 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1109"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3 ; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9),tcp_flags(0x010)'
done

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1115: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:1115"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1115"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1115: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1115"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1115"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1115: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1115: wait failed" >&5

    $as_echo "ofproto-dpif.at:1115" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1115"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1116: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1116"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1116"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1119: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:1119"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1119"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1120: ovs-ofctl -OOpenFlow12 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:1120"
( $at_check_trace; ovs-ofctl -OOpenFlow12 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " n_packets=3, n_bytes=162, actions=resubmit(1,1)
OFPST_FLOW reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1120"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1125: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:1125"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1125"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1125: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:1125"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1125"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1125: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:1125"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1125"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1125: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1125: wait failed" >&5

    $as_echo "ofproto-dpif.at:1125" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1125"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1125: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:1125"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1125"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1125: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1125"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1125"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1125: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1125: wait failed" >&5

    $as_echo "ofproto-dpif.at:1125" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1125"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1072
#AT_START_1073
at_fn_group_banner 1073 'ofproto-dpif.at:1128' \
  "ofproto-dpif - Table Miss - OFPTC_TABLE_MISS_CONTINUE" "" 55
at_xfail=no
(
  $as_echo "1073. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1129: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:1129"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1129"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1129: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:1129"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1129"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1129: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1129"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1129"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1129: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:1129"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1129"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1129: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:1129"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1129"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1129: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1129"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1129"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1129: add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy
 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1129"
( $at_check_trace; add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1129"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


on_exit 'kill `cat ovs-ofctl.pid`'


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1135: ovs-ofctl add-flow br0 'table=1 dl_src=10:11:11:11:11:11 actions=controller'"
at_fn_check_prepare_trace "ofproto-dpif.at:1135"
( $at_check_trace; ovs-ofctl add-flow br0 'table=1 dl_src=10:11:11:11:11:11 actions=controller'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1135"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1136: ovs-ofctl -OOpenFlow11 mod-table br0 all continue"
at_fn_check_prepare_trace "ofproto-dpif.at:1136"
( $at_check_trace; ovs-ofctl -OOpenFlow11 mod-table br0 all continue
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1136"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1139: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1139"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1139"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3 ; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=10:11:11:11:11:11,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9),tcp_flags(0x010)'
done
$as_echo "ofproto-dpif.at:1144: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1144: wait failed" >&5

    $as_echo "ofproto-dpif.at:1144" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1144"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1145: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:1145"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1145"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1145: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1145"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1145"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1145: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1145: wait failed" >&5

    $as_echo "ofproto-dpif.at:1145" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1145"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1147: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1147"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x0 total_len=54 in_port=1 (via action) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=9,tcp_flags=ack tcp_csum:2e70
NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x0 total_len=54 in_port=1 (via action) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=9,tcp_flags=ack tcp_csum:2e70
NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x0 total_len=54 in_port=1 (via action) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=9,tcp_flags=ack tcp_csum:2e70
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1147"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1159: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1159"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1159"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3 ; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9),tcp_flags(0x010)'
done
$as_echo "ofproto-dpif.at:1164: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1164: wait failed" >&5

    $as_echo "ofproto-dpif.at:1164" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1164"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1165: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:1165"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1165"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1165: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1165"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1165"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1165: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1165: wait failed" >&5

    $as_echo "ofproto-dpif.at:1165" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1165"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1167: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1167"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): table_id=253 cookie=0x0 total_len=54 in_port=1 (via no_match) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=9,tcp_flags=ack tcp_csum:2e70
NXT_PACKET_IN (xid=0x0): table_id=253 cookie=0x0 total_len=54 in_port=1 (via no_match) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=9,tcp_flags=ack tcp_csum:2e70
NXT_PACKET_IN (xid=0x0): table_id=253 cookie=0x0 total_len=54 in_port=1 (via no_match) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=9,tcp_flags=ack tcp_csum:2e70
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1167"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1178: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:1178"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1178"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1179: ovs-ofctl -OOpenFlow12 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:1179"
( $at_check_trace; ovs-ofctl -OOpenFlow12 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " table=1, n_packets=3, n_bytes=162, dl_src=10:11:11:11:11:11 actions=CONTROLLER:65535
OFPST_FLOW reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1179"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1184: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:1184"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1184"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1184: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:1184"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1184"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1184: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:1184"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1184"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1184: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1184: wait failed" >&5

    $as_echo "ofproto-dpif.at:1184" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1184"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1184: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:1184"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1184"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1184: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1184"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1184"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1184: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1184: wait failed" >&5

    $as_echo "ofproto-dpif.at:1184" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1184"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1073
#AT_START_1074
at_fn_group_banner 1074 'ofproto-dpif.at:1187' \
  "ofproto-dpif - Table Miss - goto table and OFPTC_TABLE_MISS_CONTINUE" "" 55
at_xfail=no
(
  $as_echo "1074. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1188: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:1188"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1188"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1188: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:1188"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1188"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1188: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1188"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1188"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1188: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:1188"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1188"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1188: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:1188"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1188"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1188: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1188"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1188"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1188: add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy
 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1188"
( $at_check_trace; add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1188"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


on_exit 'kill `cat ovs-ofctl.pid`'


cat >flows.txt <<'_ATEOF'
table=0 actions=goto_table(1)
table=2 dl_src=10:11:11:11:11:11 actions=controller
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1198: ovs-ofctl -OOpenFlow12 add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:1198"
( $at_check_trace; ovs-ofctl -OOpenFlow12 add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1198"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1199: ovs-ofctl -OOpenFlow11 mod-table br0 all continue"
at_fn_check_prepare_trace "ofproto-dpif.at:1199"
( $at_check_trace; ovs-ofctl -OOpenFlow11 mod-table br0 all continue
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1199"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1202: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1202"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1202"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3 ; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=10:11:11:11:11:11,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9),tcp_flags(0x010)'
done
$as_echo "ofproto-dpif.at:1207: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1207: wait failed" >&5

    $as_echo "ofproto-dpif.at:1207" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1207"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1208: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:1208"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1208"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1208: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1208"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1208"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1208: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1208: wait failed" >&5

    $as_echo "ofproto-dpif.at:1208" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1208"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1210: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1210"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): table_id=2 cookie=0x0 total_len=54 in_port=1 (via action) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=9,tcp_flags=ack tcp_csum:2e70
NXT_PACKET_IN (xid=0x0): table_id=2 cookie=0x0 total_len=54 in_port=1 (via action) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=9,tcp_flags=ack tcp_csum:2e70
NXT_PACKET_IN (xid=0x0): table_id=2 cookie=0x0 total_len=54 in_port=1 (via action) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=9,tcp_flags=ack tcp_csum:2e70
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1210"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1222: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1222"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1222"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3 ; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9),tcp_flags(0x010)'
done
$as_echo "ofproto-dpif.at:1227: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1227: wait failed" >&5

    $as_echo "ofproto-dpif.at:1227" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1227"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1228: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:1228"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1228"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1228: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1228"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1228"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1228: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1228: wait failed" >&5

    $as_echo "ofproto-dpif.at:1228" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1228"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1230: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1230"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): table_id=253 cookie=0x0 total_len=54 in_port=1 (via no_match) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=9,tcp_flags=ack tcp_csum:2e70
NXT_PACKET_IN (xid=0x0): table_id=253 cookie=0x0 total_len=54 in_port=1 (via no_match) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=9,tcp_flags=ack tcp_csum:2e70
NXT_PACKET_IN (xid=0x0): table_id=253 cookie=0x0 total_len=54 in_port=1 (via no_match) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=9,tcp_flags=ack tcp_csum:2e70
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1230"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1241: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:1241"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1241"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1242: ovs-ofctl -OOpenFlow12 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:1242"
( $at_check_trace; ovs-ofctl -OOpenFlow12 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " n_packets=6, n_bytes=324, actions=goto_table:1
 table=2, n_packets=3, n_bytes=162, dl_src=10:11:11:11:11:11 actions=CONTROLLER:65535
OFPST_FLOW reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1242"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1248: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:1248"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1248"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1248: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:1248"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1248"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1248: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:1248"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1248"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1248: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1248: wait failed" >&5

    $as_echo "ofproto-dpif.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1248"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1248: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:1248"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1248"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1248: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1248"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1248"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1248: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1248: wait failed" >&5

    $as_echo "ofproto-dpif.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1248"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1074
#AT_START_1075
at_fn_group_banner 1075 'ofproto-dpif.at:1251' \
  "ofproto-dpif - Table Miss - resubmit and OFPTC_TABLE_MISS_CONTINUE" "" 55
at_xfail=no
(
  $as_echo "1075. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1252: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:1252"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1252"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1252: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:1252"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1252"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1252: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1252"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1252"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1252: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:1252"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1252"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1252: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:1252"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1252"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1252: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1252"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1252"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1252: add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy
 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1252"
( $at_check_trace; add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1252"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


on_exit 'kill `cat ovs-ofctl.pid`'


cat >flows.txt <<'_ATEOF'
table=0 actions=resubmit(1,1)
table=2 dl_src=10:11:11:11:11:11 actions=controller
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1262: ovs-ofctl -OOpenFlow12 add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:1262"
( $at_check_trace; ovs-ofctl -OOpenFlow12 add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1262"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1263: ovs-ofctl -OOpenFlow11 mod-table br0 all continue"
at_fn_check_prepare_trace "ofproto-dpif.at:1263"
( $at_check_trace; ovs-ofctl -OOpenFlow11 mod-table br0 all continue
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1266: ovs-ofctl monitor br0 65534 -P standard --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1266"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P standard --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1266"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3 ; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=10:11:11:11:11:11,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9),tcp_flags(0x010)'
done
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1271: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:1271"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1271"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1271: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1271"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1271"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1271: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1271: wait failed" >&5

    $as_echo "ofproto-dpif.at:1271" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1271"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1273: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1273"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1273"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1277: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1277"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1277"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3 ; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9),tcp_flags(0x010)'
done
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1282: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:1282"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1282"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1282: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1282"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1282"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1282: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1282: wait failed" >&5

    $as_echo "ofproto-dpif.at:1282" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1282"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1284: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1284"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1284"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1287: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:1287"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1287"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1288: ovs-ofctl -OOpenFlow12 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:1288"
( $at_check_trace; ovs-ofctl -OOpenFlow12 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " n_packets=6, n_bytes=324, actions=resubmit(1,1)
 table=2, dl_src=10:11:11:11:11:11 actions=CONTROLLER:65535
OFPST_FLOW reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1288"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1294: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:1294"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1294"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1294: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:1294"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1294"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1294: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:1294"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1294"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1294: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1294: wait failed" >&5

    $as_echo "ofproto-dpif.at:1294" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1294"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1294: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:1294"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1294"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1294: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1294"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1294"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1294: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1294: wait failed" >&5

    $as_echo "ofproto-dpif.at:1294" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1294"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1075
#AT_START_1076
at_fn_group_banner 1076 'ofproto-dpif.at:1297' \
  "ofproto-dpif - Table Miss - OFPTC_TABLE_MISS_DROP" "" 55
at_xfail=no
(
  $as_echo "1076. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1298: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:1298"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1298"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1298: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:1298"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1298"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1298: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1298"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1298"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1298: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:1298"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1298"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1298: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:1298"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1298"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1298: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1298"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1298"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1298: add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy
 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1298"
( $at_check_trace; add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1298"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


on_exit 'kill `cat ovs-ofctl.pid`'


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1304: ovs-ofctl -OOpenFlow11 mod-table br0 all drop"
at_fn_check_prepare_trace "ofproto-dpif.at:1304"
( $at_check_trace; ovs-ofctl -OOpenFlow11 mod-table br0 all drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1304"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1306: ovs-ofctl monitor -P standard br0 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1306"
( $at_check_trace; ovs-ofctl monitor -P standard br0 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1306"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3 ; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9),tcp_flags(0x010)'
done
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1312: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:1312"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1312"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1312: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1312"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1312"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1312: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1312: wait failed" >&5

    $as_echo "ofproto-dpif.at:1312" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1312"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1314: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1314"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1314"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1317: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:1317"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1317"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1318: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:1318"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1318"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1322: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:1322"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1322"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1322: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:1322"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1322"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1322: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:1322"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1322"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1322: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1322: wait failed" >&5

    $as_echo "ofproto-dpif.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1322"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1322: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:1322"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1322"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1322: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1322"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1322"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1322: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1322: wait failed" >&5

    $as_echo "ofproto-dpif.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1322"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1076
#AT_START_1077
at_fn_group_banner 1077 'ofproto-dpif.at:1325' \
  "ofproto-dpif - Table Miss - goto table and OFPTC_TABLE_MISS_DROP" "" 55
at_xfail=no
(
  $as_echo "1077. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1326: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:1326"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1326"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1326: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:1326"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1326"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1326: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1326"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1326"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1326: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:1326"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1326"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1326: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:1326"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1326"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1326: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1326"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1326"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1326: add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy
 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1326"
( $at_check_trace; add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1326"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


on_exit 'kill `cat ovs-ofctl.pid`'


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1332: ovs-ofctl del-flows br0"
at_fn_check_prepare_trace "ofproto-dpif.at:1332"
( $at_check_trace; ovs-ofctl del-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1332"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1333: ovs-ofctl -OOpenFlow12 add-flow br0 'table=0 actions=goto_table(1)'"
at_fn_check_prepare_trace "ofproto-dpif.at:1333"
( $at_check_trace; ovs-ofctl -OOpenFlow12 add-flow br0 'table=0 actions=goto_table(1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1333"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1334: ovs-ofctl -OOpenFlow11 mod-table br0 all drop"
at_fn_check_prepare_trace "ofproto-dpif.at:1334"
( $at_check_trace; ovs-ofctl -OOpenFlow11 mod-table br0 all drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1334"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1336: ovs-ofctl monitor -P standard br0 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1336"
( $at_check_trace; ovs-ofctl monitor -P standard br0 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1336"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3 ; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9),tcp_flags(0x010)'
done
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1342: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:1342"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1342"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1342: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1342"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1342"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1342: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1342: wait failed" >&5

    $as_echo "ofproto-dpif.at:1342" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1342"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1344: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1344"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1344"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1347: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:1347"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1347"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1348: ovs-ofctl -OOpenFlow12 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:1348"
( $at_check_trace; ovs-ofctl -OOpenFlow12 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " n_packets=3, n_bytes=162, actions=goto_table:1
OFPST_FLOW reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1348"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1353: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:1353"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1353"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1353: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:1353"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1353"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1353: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:1353"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1353"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1353: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1353: wait failed" >&5

    $as_echo "ofproto-dpif.at:1353" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1353"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1353: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:1353"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1353"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1353: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1353"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1353"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1353: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1353: wait failed" >&5

    $as_echo "ofproto-dpif.at:1353" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1353"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1077
#AT_START_1078
at_fn_group_banner 1078 'ofproto-dpif.at:1356' \
  "ofproto-dpif - Table Miss - resubmit and OFPTC_TABLE_MISS_DROP" "" 55
at_xfail=no
(
  $as_echo "1078. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1357: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:1357"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1357"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1357: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:1357"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1357"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1357: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1357"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1357"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1357: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:1357"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1357"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1357: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:1357"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1357"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1357: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1357"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1357"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1357: add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy
 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1357"
( $at_check_trace; add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1357"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


on_exit 'kill `cat ovs-ofctl.pid`'


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1363: ovs-ofctl del-flows br0"
at_fn_check_prepare_trace "ofproto-dpif.at:1363"
( $at_check_trace; ovs-ofctl del-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1363"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1364: ovs-ofctl -OOpenFlow12 add-flow br0 'table=0 actions=resubmit(1,1)'"
at_fn_check_prepare_trace "ofproto-dpif.at:1364"
( $at_check_trace; ovs-ofctl -OOpenFlow12 add-flow br0 'table=0 actions=resubmit(1,1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1364"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1365: ovs-ofctl -OOpenFlow11 mod-table br0 all drop"
at_fn_check_prepare_trace "ofproto-dpif.at:1365"
( $at_check_trace; ovs-ofctl -OOpenFlow11 mod-table br0 all drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1365"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1367: ovs-ofctl monitor -P standard br0 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1367"
( $at_check_trace; ovs-ofctl monitor -P standard br0 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1367"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3 ; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9),tcp_flags(0x010)'
done
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1373: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:1373"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1373"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1373: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1373"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1373"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1373: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1373: wait failed" >&5

    $as_echo "ofproto-dpif.at:1373" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1373"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1375: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1375"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1375"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1378: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:1378"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1378"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1379: ovs-ofctl -OOpenFlow12 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:1379"
( $at_check_trace; ovs-ofctl -OOpenFlow12 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " n_packets=3, n_bytes=162, actions=resubmit(1,1)
OFPST_FLOW reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1379"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1384: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:1384"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1384"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1384: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:1384"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1384"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1384: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:1384"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1384"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1384: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1384: wait failed" >&5

    $as_echo "ofproto-dpif.at:1384" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1384"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1384: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:1384"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1384"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1384: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1384"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1384"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1384: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1384: wait failed" >&5

    $as_echo "ofproto-dpif.at:1384" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1384"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1078
#AT_START_1079
at_fn_group_banner 1079 'ofproto-dpif.at:1387' \
  "ofproto-dpif - controller" "                      " 55
at_xfail=no
(
  $as_echo "1079. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1388: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:1388"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1388"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1388: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:1388"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1388"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1388: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1388"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1388"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1388: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:1388"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1388"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1388: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:1388"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1388"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1388: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1388"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1388"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1388: add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy
 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1388"
( $at_check_trace; add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1388"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


on_exit 'kill `cat ovs-ofctl.pid`'


cat >flows.txt <<'_ATEOF'
cookie=0x0 dl_src=10:11:11:11:11:11 actions=controller
cookie=0x1 dl_src=20:22:22:22:22:22 actions=controller,resubmit(80,1)
cookie=0x2 dl_src=30:33:33:33:33:33 actions=mod_vlan_vid:15,controller

cookie=0x3 table=1 in_port=80 actions=load:1->NXM_NX_REG0[],mod_vlan_vid:80,controller,resubmit(81,2)
cookie=0x4 table=2 in_port=81 actions=load:2->NXM_NX_REG1[],mod_dl_src:80:81:81:81:81:81,controller,resubmit(82,3)
cookie=0x5 table=3 in_port=82 actions=load:3->NXM_NX_REG2[],mod_dl_dst:82:82:82:82:82:82,controller,resubmit(83,4)
cookie=0x6 table=4 in_port=83 actions=load:4->NXM_NX_REG3[],mod_nw_src:83.83.83.83,controller,resubmit(84,5)
cookie=0x7 table=5 in_port=84 actions=load:5->NXM_NX_REG4[],load:6->NXM_NX_TUN_ID[],mod_nw_dst:84.84.84.84,controller,resubmit(85,6)
cookie=0x8 table=6 in_port=85 actions=mod_tp_src:85,controller,resubmit(86,7)
cookie=0x9 table=7 in_port=86 actions=mod_tp_dst:86,controller,controller
cookie=0xa dl_src=40:44:44:44:44:41 actions=mod_vlan_vid:99,mod_vlan_pcp:1,controller
cookie=0xd dl_src=80:88:88:88:88:88 arp actions=load:2->OXM_OF_ARP_OP[],controller,load:0xc0a88001->OXM_OF_ARP_SPA[],controller,load:0x404444444441->OXM_OF_ARP_THA[],load:0x01010101->OXM_OF_ARP_SPA[],load:0x02020202->OXM_OF_ARP_TPA[],controller
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1409: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:1409"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1409"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1412: ovs-ofctl monitor -P standard br0 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1412"
( $at_check_trace; ovs-ofctl monitor -P standard br0 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1412"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3 ; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9),tcp_flags(0x010)'
done
$as_echo "ofproto-dpif.at:1417: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1417: wait failed" >&5

    $as_echo "ofproto-dpif.at:1417" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1417"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1418: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:1418"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1418"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1418: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1418"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1418"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1418: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1418: wait failed" >&5

    $as_echo "ofproto-dpif.at:1418" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1418"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1420: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1420"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (xid=0x0): total_len=54 in_port=1 (via no_match) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=9,tcp_flags=ack tcp_csum:2e70
OFPT_PACKET_IN (xid=0x0): total_len=54 in_port=1 (via no_match) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=9,tcp_flags=ack tcp_csum:2e70
OFPT_PACKET_IN (xid=0x0): total_len=54 in_port=1 (via no_match) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=9,tcp_flags=ack tcp_csum:2e70
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1420"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1432: ovs-ofctl monitor -P standard br0 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1432"
( $at_check_trace; ovs-ofctl monitor -P standard br0 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1432"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3 ; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=10:11:11:11:11:11,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=10),tcp_flags(0x002)'
done
$as_echo "ofproto-dpif.at:1437: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1437: wait failed" >&5

    $as_echo "ofproto-dpif.at:1437" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1437"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1438: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:1438"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1438"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1438: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1438"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1438"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1438: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1438: wait failed" >&5

    $as_echo "ofproto-dpif.at:1438" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1438"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1440: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1440"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (xid=0x0): total_len=54 in_port=1 (via action) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn tcp_csum:2e7d
OFPT_PACKET_IN (xid=0x0): total_len=54 in_port=1 (via action) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn tcp_csum:2e7d
OFPT_PACKET_IN (xid=0x0): total_len=54 in_port=1 (via action) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn tcp_csum:2e7d
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1440"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1452: ovs-ofctl monitor -P standard br0 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1452"
( $at_check_trace; ovs-ofctl monitor -P standard br0 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1452"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3 ; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=30:33:33:33:33:33,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=10),tcp_flags(0x001)'
done
$as_echo "ofproto-dpif.at:1457: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1457: wait failed" >&5

    $as_echo "ofproto-dpif.at:1457" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1457"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1458: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:1458"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1458"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1458: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1458"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1458"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1458: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1458: wait failed" >&5

    $as_echo "ofproto-dpif.at:1458" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1458"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1460: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1460"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (xid=0x0): total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,dl_vlan=15,dl_vlan_pcp=0,vlan_tci1=0x0000,dl_src=30:33:33:33:33:33,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=fin tcp_csum:2e7e
OFPT_PACKET_IN (xid=0x0): total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,dl_vlan=15,dl_vlan_pcp=0,vlan_tci1=0x0000,dl_src=30:33:33:33:33:33,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=fin tcp_csum:2e7e
OFPT_PACKET_IN (xid=0x0): total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,dl_vlan=15,dl_vlan_pcp=0,vlan_tci1=0x0000,dl_src=30:33:33:33:33:33,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=fin tcp_csum:2e7e
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1460"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1472: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1472"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1472"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=40:44:44:44:44:41,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=16,tos=0,ttl=64,frag=no)'
done
$as_echo "ofproto-dpif.at:1477: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1477: wait failed" >&5

    $as_echo "ofproto-dpif.at:1477" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1477"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1478: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:1478"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1478"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1478: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1478"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1478"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1478: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1478: wait failed" >&5

    $as_echo "ofproto-dpif.at:1478" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1478"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1480: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1480"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=38 in_port=1 (via action) data_len=38 (unbuffered)
ip,dl_vlan=99,dl_vlan_pcp=1,vlan_tci1=0x0000,dl_src=40:44:44:44:44:41,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=16,nw_tos=0,nw_ecn=0,nw_ttl=64
NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=38 in_port=1 (via action) data_len=38 (unbuffered)
ip,dl_vlan=99,dl_vlan_pcp=1,vlan_tci1=0x0000,dl_src=40:44:44:44:44:41,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=16,nw_tos=0,nw_ecn=0,nw_ttl=64
NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=38 in_port=1 (via action) data_len=38 (unbuffered)
ip,dl_vlan=99,dl_vlan_pcp=1,vlan_tci1=0x0000,dl_src=40:44:44:44:44:41,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=16,nw_tos=0,nw_ecn=0,nw_ttl=64
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1480"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1492: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1492"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1492"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 ; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=20:22:22:22:22:22,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=11),tcp_flags(0x001)'
done
$as_echo "ofproto-dpif.at:1497: waiting until test \`wc -l < ofctl_monitor.log\` -ge 18..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 18
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1497: wait failed" >&5

    $as_echo "ofproto-dpif.at:1497" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1497"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1498: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:1498"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1498"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1498: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1498"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1498"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1498: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1498: wait failed" >&5

    $as_echo "ofproto-dpif.at:1498" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1498"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1500: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1500"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0x1 total_len=54 in_port=1 (via action) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=20:22:22:22:22:22,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=11,tcp_flags=fin tcp_csum:2e7d
NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x3 total_len=58 reg0=0x1,in_port=1 (via action) data_len=58 (unbuffered)
tcp,dl_vlan=80,dl_vlan_pcp=0,vlan_tci1=0x0000,dl_src=20:22:22:22:22:22,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=11,tcp_flags=fin tcp_csum:2e7d
NXT_PACKET_IN (xid=0x0): table_id=2 cookie=0x4 total_len=58 reg0=0x1,reg1=0x2,in_port=1 (via action) data_len=58 (unbuffered)
tcp,dl_vlan=80,dl_vlan_pcp=0,vlan_tci1=0x0000,dl_src=80:81:81:81:81:81,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=11,tcp_flags=fin tcp_csum:2e7d
NXT_PACKET_IN (xid=0x0): table_id=3 cookie=0x5 total_len=58 reg0=0x1,reg1=0x2,reg2=0x3,in_port=1 (via action) data_len=58 (unbuffered)
tcp,dl_vlan=80,dl_vlan_pcp=0,vlan_tci1=0x0000,dl_src=80:81:81:81:81:81,dl_dst=82:82:82:82:82:82,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=11,tcp_flags=fin tcp_csum:2e7d
NXT_PACKET_IN (xid=0x0): table_id=4 cookie=0x6 total_len=58 reg0=0x1,reg1=0x2,reg2=0x3,reg3=0x4,in_port=1 (via action) data_len=58 (unbuffered)
tcp,dl_vlan=80,dl_vlan_pcp=0,vlan_tci1=0x0000,dl_src=80:81:81:81:81:81,dl_dst=82:82:82:82:82:82,nw_src=83.83.83.83,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=11,tcp_flags=fin tcp_csum:4880
NXT_PACKET_IN (xid=0x0): table_id=5 cookie=0x7 total_len=58 reg0=0x1,reg1=0x2,reg2=0x3,reg3=0x4,reg4=0x5,tun_id=0x6,in_port=1 (via action) data_len=58 (unbuffered)
tcp,dl_vlan=80,dl_vlan_pcp=0,vlan_tci1=0x0000,dl_src=80:81:81:81:81:81,dl_dst=82:82:82:82:82:82,nw_src=83.83.83.83,nw_dst=84.84.84.84,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=11,tcp_flags=fin tcp_csum:6082
NXT_PACKET_IN (xid=0x0): table_id=6 cookie=0x8 total_len=58 reg0=0x1,reg1=0x2,reg2=0x3,reg3=0x4,reg4=0x5,tun_id=0x6,in_port=1 (via action) data_len=58 (unbuffered)
tcp,dl_vlan=80,dl_vlan_pcp=0,vlan_tci1=0x0000,dl_src=80:81:81:81:81:81,dl_dst=82:82:82:82:82:82,nw_src=83.83.83.83,nw_dst=84.84.84.84,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=85,tp_dst=11,tcp_flags=fin tcp_csum:6035
NXT_PACKET_IN (xid=0x0): table_id=7 cookie=0x9 total_len=58 reg0=0x1,reg1=0x2,reg2=0x3,reg3=0x4,reg4=0x5,tun_id=0x6,in_port=1 (via action) data_len=58 (unbuffered)
tcp,dl_vlan=80,dl_vlan_pcp=0,vlan_tci1=0x0000,dl_src=80:81:81:81:81:81,dl_dst=82:82:82:82:82:82,nw_src=83.83.83.83,nw_dst=84.84.84.84,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=85,tp_dst=86,tcp_flags=fin tcp_csum:5fea
NXT_PACKET_IN (xid=0x0): table_id=7 cookie=0x9 total_len=58 reg0=0x1,reg1=0x2,reg2=0x3,reg3=0x4,reg4=0x5,tun_id=0x6,in_port=1 (via action) data_len=58 (unbuffered)
tcp,dl_vlan=80,dl_vlan_pcp=0,vlan_tci1=0x0000,dl_src=80:81:81:81:81:81,dl_dst=82:82:82:82:82:82,nw_src=83.83.83.83,nw_dst=84.84.84.84,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=85,tp_dst=86,tcp_flags=fin tcp_csum:5fea
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1500"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1530: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1530"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1530"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 ; do
    ovs-appctl netdev-dummy/receive p1 '50 54 00 00 00 07 20 22 22 22 22 22 08 00 45 00 00 1C 00 00 00 00 00 11 00 00 C0 A8 00 01 C0 A8 00 02 00 08 00 0B 00 00 12 34 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
done
$as_echo "ofproto-dpif.at:1535: waiting until test \`wc -l < ofctl_monitor.log\` -ge 18..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 18
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1535: wait failed" >&5

    $as_echo "ofproto-dpif.at:1535" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1535"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1536: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:1536"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1536"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1536: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1536"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1536"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1536: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1536: wait failed" >&5

    $as_echo "ofproto-dpif.at:1536" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1536"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1538: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1538"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0x1 total_len=60 in_port=1 (via action) data_len=60 (unbuffered)
udp,vlan_tci=0x0000,dl_src=20:22:22:22:22:22,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=0,tp_src=8,tp_dst=11 udp_csum:1234
NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x3 total_len=64 reg0=0x1,in_port=1 (via action) data_len=64 (unbuffered)
udp,dl_vlan=80,dl_vlan_pcp=0,vlan_tci1=0x0000,dl_src=20:22:22:22:22:22,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=0,tp_src=8,tp_dst=11 udp_csum:1234
NXT_PACKET_IN (xid=0x0): table_id=2 cookie=0x4 total_len=64 reg0=0x1,reg1=0x2,in_port=1 (via action) data_len=64 (unbuffered)
udp,dl_vlan=80,dl_vlan_pcp=0,vlan_tci1=0x0000,dl_src=80:81:81:81:81:81,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=0,tp_src=8,tp_dst=11 udp_csum:1234
NXT_PACKET_IN (xid=0x0): table_id=3 cookie=0x5 total_len=64 reg0=0x1,reg1=0x2,reg2=0x3,in_port=1 (via action) data_len=64 (unbuffered)
udp,dl_vlan=80,dl_vlan_pcp=0,vlan_tci1=0x0000,dl_src=80:81:81:81:81:81,dl_dst=82:82:82:82:82:82,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=0,tp_src=8,tp_dst=11 udp_csum:1234
NXT_PACKET_IN (xid=0x0): table_id=4 cookie=0x6 total_len=64 reg0=0x1,reg1=0x2,reg2=0x3,reg3=0x4,in_port=1 (via action) data_len=64 (unbuffered)
udp,dl_vlan=80,dl_vlan_pcp=0,vlan_tci1=0x0000,dl_src=80:81:81:81:81:81,dl_dst=82:82:82:82:82:82,nw_src=83.83.83.83,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=0,tp_src=8,tp_dst=11 udp_csum:2c37
NXT_PACKET_IN (xid=0x0): table_id=5 cookie=0x7 total_len=64 reg0=0x1,reg1=0x2,reg2=0x3,reg3=0x4,reg4=0x5,tun_id=0x6,in_port=1 (via action) data_len=64 (unbuffered)
udp,dl_vlan=80,dl_vlan_pcp=0,vlan_tci1=0x0000,dl_src=80:81:81:81:81:81,dl_dst=82:82:82:82:82:82,nw_src=83.83.83.83,nw_dst=84.84.84.84,nw_tos=0,nw_ecn=0,nw_ttl=0,tp_src=8,tp_dst=11 udp_csum:4439
NXT_PACKET_IN (xid=0x0): table_id=6 cookie=0x8 total_len=64 reg0=0x1,reg1=0x2,reg2=0x3,reg3=0x4,reg4=0x5,tun_id=0x6,in_port=1 (via action) data_len=64 (unbuffered)
udp,dl_vlan=80,dl_vlan_pcp=0,vlan_tci1=0x0000,dl_src=80:81:81:81:81:81,dl_dst=82:82:82:82:82:82,nw_src=83.83.83.83,nw_dst=84.84.84.84,nw_tos=0,nw_ecn=0,nw_ttl=0,tp_src=85,tp_dst=11 udp_csum:43ec
NXT_PACKET_IN (xid=0x0): table_id=7 cookie=0x9 total_len=64 reg0=0x1,reg1=0x2,reg2=0x3,reg3=0x4,reg4=0x5,tun_id=0x6,in_port=1 (via action) data_len=64 (unbuffered)
udp,dl_vlan=80,dl_vlan_pcp=0,vlan_tci1=0x0000,dl_src=80:81:81:81:81:81,dl_dst=82:82:82:82:82:82,nw_src=83.83.83.83,nw_dst=84.84.84.84,nw_tos=0,nw_ecn=0,nw_ttl=0,tp_src=85,tp_dst=86 udp_csum:43a1
NXT_PACKET_IN (xid=0x0): table_id=7 cookie=0x9 total_len=64 reg0=0x1,reg1=0x2,reg2=0x3,reg3=0x4,reg4=0x5,tun_id=0x6,in_port=1 (via action) data_len=64 (unbuffered)
udp,dl_vlan=80,dl_vlan_pcp=0,vlan_tci1=0x0000,dl_src=80:81:81:81:81:81,dl_dst=82:82:82:82:82:82,nw_src=83.83.83.83,nw_dst=84.84.84.84,nw_tos=0,nw_ecn=0,nw_ttl=0,tp_src=85,tp_dst=86 udp_csum:43a1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1538"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1568: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1568"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1568"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=80:88:88:88:88:88,dst=ff:ff:ff:ff:ff:ff),eth_type(0x0806),arp(sip=192.168.0.1,tip=192.168.0.2,op=1,sha=50:54:00:00:00:05,tha=00:00:00:00:00:00)'
done

$as_echo "ofproto-dpif.at:1574: waiting until test \`wc -l < ofctl_monitor.log\` -ge 18..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 18
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1574: wait failed" >&5

    $as_echo "ofproto-dpif.at:1574" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1574"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1575: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:1575"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1575"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1575: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1575"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1575"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1575: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1575: wait failed" >&5

    $as_echo "ofproto-dpif.at:1575" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1575"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1576: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1576"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=42 in_port=1 (via action) data_len=42 (unbuffered)
arp,vlan_tci=0x0000,dl_src=80:88:88:88:88:88,dl_dst=ff:ff:ff:ff:ff:ff,arp_spa=192.168.0.1,arp_tpa=192.168.0.2,arp_op=2,arp_sha=50:54:00:00:00:05,arp_tha=00:00:00:00:00:00
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=42 in_port=1 (via action) data_len=42 (unbuffered)
arp,vlan_tci=0x0000,dl_src=80:88:88:88:88:88,dl_dst=ff:ff:ff:ff:ff:ff,arp_spa=192.168.128.1,arp_tpa=192.168.0.2,arp_op=2,arp_sha=50:54:00:00:00:05,arp_tha=00:00:00:00:00:00
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=42 in_port=1 (via action) data_len=42 (unbuffered)
arp,vlan_tci=0x0000,dl_src=80:88:88:88:88:88,dl_dst=ff:ff:ff:ff:ff:ff,arp_spa=1.1.1.1,arp_tpa=2.2.2.2,arp_op=2,arp_sha=50:54:00:00:00:05,arp_tha=40:44:44:44:44:41
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=42 in_port=1 (via action) data_len=42 (unbuffered)
arp,vlan_tci=0x0000,dl_src=80:88:88:88:88:88,dl_dst=ff:ff:ff:ff:ff:ff,arp_spa=192.168.0.1,arp_tpa=192.168.0.2,arp_op=2,arp_sha=50:54:00:00:00:05,arp_tha=00:00:00:00:00:00
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=42 in_port=1 (via action) data_len=42 (unbuffered)
arp,vlan_tci=0x0000,dl_src=80:88:88:88:88:88,dl_dst=ff:ff:ff:ff:ff:ff,arp_spa=192.168.128.1,arp_tpa=192.168.0.2,arp_op=2,arp_sha=50:54:00:00:00:05,arp_tha=00:00:00:00:00:00
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=42 in_port=1 (via action) data_len=42 (unbuffered)
arp,vlan_tci=0x0000,dl_src=80:88:88:88:88:88,dl_dst=ff:ff:ff:ff:ff:ff,arp_spa=1.1.1.1,arp_tpa=2.2.2.2,arp_op=2,arp_sha=50:54:00:00:00:05,arp_tha=40:44:44:44:44:41
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=42 in_port=1 (via action) data_len=42 (unbuffered)
arp,vlan_tci=0x0000,dl_src=80:88:88:88:88:88,dl_dst=ff:ff:ff:ff:ff:ff,arp_spa=192.168.0.1,arp_tpa=192.168.0.2,arp_op=2,arp_sha=50:54:00:00:00:05,arp_tha=00:00:00:00:00:00
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=42 in_port=1 (via action) data_len=42 (unbuffered)
arp,vlan_tci=0x0000,dl_src=80:88:88:88:88:88,dl_dst=ff:ff:ff:ff:ff:ff,arp_spa=192.168.128.1,arp_tpa=192.168.0.2,arp_op=2,arp_sha=50:54:00:00:00:05,arp_tha=00:00:00:00:00:00
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=42 in_port=1 (via action) data_len=42 (unbuffered)
arp,vlan_tci=0x0000,dl_src=80:88:88:88:88:88,dl_dst=ff:ff:ff:ff:ff:ff,arp_spa=1.1.1.1,arp_tpa=2.2.2.2,arp_op=2,arp_sha=50:54:00:00:00:05,arp_tha=40:44:44:44:44:41
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1576"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1597: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:1597"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1597"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1600: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1600"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1600"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 ; do
    ovs-appctl netdev-dummy/receive p1 '50 54 00 00 00 07 20 22 22 22 22 22 08 00 45 00 00 24 00 00 00 00 00 84 00 00 C0 A8 00 01 C0 A8 00 02 04 58 08 af 00 00 00 00 d9 d7 91 57 01 00 00 34 cf 28 ec 4e 00 01 40 00 00 0a ff ff b7 53 24 19 00 05 00 08 7f 00 00 01 00 05 00 08 c0 a8 02 07 00 0c 00 06 00 05 00 00 80 00 00 04 c0 00 00 04'
done

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1606: ovs-appctl time/warp 1000"
at_fn_check_prepare_trace "ofproto-dpif.at:1606"
( $at_check_trace; ovs-appctl time/warp 1000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1606"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

$as_echo "ofproto-dpif.at:1607: waiting until test \`wc -l < ofctl_monitor.log\` -ge 18..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 18
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1607: wait failed" >&5

    $as_echo "ofproto-dpif.at:1607" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1607"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1608: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:1608"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1608"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1608: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1608"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1608"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1608: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1608: wait failed" >&5

    $as_echo "ofproto-dpif.at:1608" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1608"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1609: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1609"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0x1 total_len=98 in_port=1 (via action) data_len=98 (unbuffered)
sctp,vlan_tci=0x0000,dl_src=20:22:22:22:22:22,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=0,tp_src=1112,tp_dst=2223 sctp_csum:d9d79157
NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x3 total_len=102 reg0=0x1,in_port=1 (via action) data_len=102 (unbuffered)
sctp,dl_vlan=80,dl_vlan_pcp=0,vlan_tci1=0x0000,dl_src=20:22:22:22:22:22,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=0,tp_src=1112,tp_dst=2223 sctp_csum:d9d79157
NXT_PACKET_IN (xid=0x0): table_id=2 cookie=0x4 total_len=102 reg0=0x1,reg1=0x2,in_port=1 (via action) data_len=102 (unbuffered)
sctp,dl_vlan=80,dl_vlan_pcp=0,vlan_tci1=0x0000,dl_src=80:81:81:81:81:81,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=0,tp_src=1112,tp_dst=2223 sctp_csum:d9d79157
NXT_PACKET_IN (xid=0x0): table_id=3 cookie=0x5 total_len=102 reg0=0x1,reg1=0x2,reg2=0x3,in_port=1 (via action) data_len=102 (unbuffered)
sctp,dl_vlan=80,dl_vlan_pcp=0,vlan_tci1=0x0000,dl_src=80:81:81:81:81:81,dl_dst=82:82:82:82:82:82,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=0,tp_src=1112,tp_dst=2223 sctp_csum:d9d79157
NXT_PACKET_IN (xid=0x0): table_id=4 cookie=0x6 total_len=102 reg0=0x1,reg1=0x2,reg2=0x3,reg3=0x4,in_port=1 (via action) data_len=102 (unbuffered)
sctp,dl_vlan=80,dl_vlan_pcp=0,vlan_tci1=0x0000,dl_src=80:81:81:81:81:81,dl_dst=82:82:82:82:82:82,nw_src=83.83.83.83,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=0,tp_src=1112,tp_dst=2223 sctp_csum:d9d79157
NXT_PACKET_IN (xid=0x0): table_id=5 cookie=0x7 total_len=102 reg0=0x1,reg1=0x2,reg2=0x3,reg3=0x4,reg4=0x5,tun_id=0x6,in_port=1 (via action) data_len=102 (unbuffered)
sctp,dl_vlan=80,dl_vlan_pcp=0,vlan_tci1=0x0000,dl_src=80:81:81:81:81:81,dl_dst=82:82:82:82:82:82,nw_src=83.83.83.83,nw_dst=84.84.84.84,nw_tos=0,nw_ecn=0,nw_ttl=0,tp_src=1112,tp_dst=2223 sctp_csum:d9d79157
NXT_PACKET_IN (xid=0x0): table_id=6 cookie=0x8 total_len=102 reg0=0x1,reg1=0x2,reg2=0x3,reg3=0x4,reg4=0x5,tun_id=0x6,in_port=1 (via action) data_len=102 (unbuffered)
sctp,dl_vlan=80,dl_vlan_pcp=0,vlan_tci1=0x0000,dl_src=80:81:81:81:81:81,dl_dst=82:82:82:82:82:82,nw_src=83.83.83.83,nw_dst=84.84.84.84,nw_tos=0,nw_ecn=0,nw_ttl=0,tp_src=85,tp_dst=2223 sctp_csum:dd778f5f
NXT_PACKET_IN (xid=0x0): table_id=7 cookie=0x9 total_len=102 reg0=0x1,reg1=0x2,reg2=0x3,reg3=0x4,reg4=0x5,tun_id=0x6,in_port=1 (via action) data_len=102 (unbuffered)
sctp,dl_vlan=80,dl_vlan_pcp=0,vlan_tci1=0x0000,dl_src=80:81:81:81:81:81,dl_dst=82:82:82:82:82:82,nw_src=83.83.83.83,nw_dst=84.84.84.84,nw_tos=0,nw_ecn=0,nw_ttl=0,tp_src=85,tp_dst=86 sctp_csum:62051f56
NXT_PACKET_IN (xid=0x0): table_id=7 cookie=0x9 total_len=102 reg0=0x1,reg1=0x2,reg2=0x3,reg3=0x4,reg4=0x5,tun_id=0x6,in_port=1 (via action) data_len=102 (unbuffered)
sctp,dl_vlan=80,dl_vlan_pcp=0,vlan_tci1=0x0000,dl_src=80:81:81:81:81:81,dl_dst=82:82:82:82:82:82,nw_src=83.83.83.83,nw_dst=84.84.84.84,nw_tos=0,nw_ecn=0,nw_ttl=0,tp_src=85,tp_dst=86 sctp_csum:62051f56
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1609"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1638: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:1638"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x1, n_packets=3, n_bytes=212, dl_src=20:22:22:22:22:22 actions=CONTROLLER:65535,resubmit(80,1)
 cookie=0x2, n_packets=3, n_bytes=162, dl_src=30:33:33:33:33:33 actions=mod_vlan_vid:15,CONTROLLER:65535
 cookie=0x3, table=1, n_packets=3, n_bytes=212, in_port=80 actions=load:0x1->NXM_NX_REG0[],mod_vlan_vid:80,CONTROLLER:65535,resubmit(81,2)
 cookie=0x4, table=2, n_packets=3, n_bytes=212, in_port=81 actions=load:0x2->NXM_NX_REG1[],mod_dl_src:80:81:81:81:81:81,CONTROLLER:65535,resubmit(82,3)
 cookie=0x5, table=3, n_packets=3, n_bytes=212, in_port=82 actions=load:0x3->NXM_NX_REG2[],mod_dl_dst:82:82:82:82:82:82,CONTROLLER:65535,resubmit(83,4)
 cookie=0x6, table=4, n_packets=3, n_bytes=212, in_port=83 actions=load:0x4->NXM_NX_REG3[],mod_nw_src:83.83.83.83,CONTROLLER:65535,resubmit(84,5)
 cookie=0x7, table=5, n_packets=3, n_bytes=212, in_port=84 actions=load:0x5->NXM_NX_REG4[],load:0x6->NXM_NX_TUN_ID[],mod_nw_dst:84.84.84.84,CONTROLLER:65535,resubmit(85,6)
 cookie=0x8, table=6, n_packets=3, n_bytes=212, in_port=85 actions=mod_tp_src:85,CONTROLLER:65535,resubmit(86,7)
 cookie=0x9, table=7, n_packets=3, n_bytes=212, in_port=86 actions=mod_tp_dst:86,CONTROLLER:65535,CONTROLLER:65535
 cookie=0xa, n_packets=3, n_bytes=102, dl_src=40:44:44:44:44:41 actions=mod_vlan_vid:99,mod_vlan_pcp:1,CONTROLLER:65535
 cookie=0xd, n_packets=3, n_bytes=126, arp,dl_src=80:88:88:88:88:88 actions=load:0x2->NXM_OF_ARP_OP[],CONTROLLER:65535,load:0xc0a88001->NXM_OF_ARP_SPA[],CONTROLLER:65535,load:0x404444444441->NXM_NX_ARP_THA[],load:0x1010101->NXM_OF_ARP_SPA[],load:0x2020202->NXM_OF_ARP_TPA[],CONTROLLER:65535
 n_packets=3, n_bytes=162, dl_src=10:11:11:11:11:11 actions=CONTROLLER:65535
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1638"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1654: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:1654"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1654"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1654: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:1654"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1654"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1654: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:1654"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1654"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1654: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1654: wait failed" >&5

    $as_echo "ofproto-dpif.at:1654" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1654"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1654: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:1654"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1654"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1654: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1654"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1654"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1654: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1654: wait failed" >&5

    $as_echo "ofproto-dpif.at:1654" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1654"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1079
#AT_START_1080
at_fn_group_banner 1080 'ofproto-dpif.at:1658' \
  "ofproto-dpif - controller with slow-path action" "" 55
at_xfail=no
(
  $as_echo "1080. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1659: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:1659"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1659"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1659: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:1659"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1659"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1659: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1659"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1659"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1659: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:1659"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1659"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1659: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:1659"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1659"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1659: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1659"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1659"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1659: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:1659"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1659"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1662: ovs-ofctl add-flow br0 \"in_port=1,actions=debug_slow,controller\""
at_fn_check_prepare_trace "ofproto-dpif.at:1662"
( $at_check_trace; ovs-ofctl add-flow br0 "in_port=1,actions=debug_slow,controller"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1662"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1664: ovs-ofctl monitor -P standard br0 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1664"
( $at_check_trace; ovs-ofctl monitor -P standard br0 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1664"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


for i in 1 2 3 ; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9),tcp_flags(0x010)'
done

$as_echo "ofproto-dpif.at:1670: waiting until test \`wc -l < ofctl_monitor.log\` -ge 3..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 3
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1670: wait failed" >&5

    $as_echo "ofproto-dpif.at:1670" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1670"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1671: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:1671"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1671"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1671: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1671"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1671"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1671: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1671: wait failed" >&5

    $as_echo "ofproto-dpif.at:1671" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1671"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1673: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1673"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (xid=0x0): total_len=54 in_port=1 (via action) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=9,tcp_flags=ack tcp_csum:2e70
OFPT_PACKET_IN (xid=0x0): total_len=54 in_port=1 (via action) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=9,tcp_flags=ack tcp_csum:2e70
OFPT_PACKET_IN (xid=0x0): total_len=54 in_port=1 (via action) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=9,tcp_flags=ack tcp_csum:2e70
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1673"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1684: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:1684"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1684"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1684: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:1684"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1684"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1684: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:1684"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1684"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1684: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1684: wait failed" >&5

    $as_echo "ofproto-dpif.at:1684" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1684"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1684: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:1684"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1684"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1684: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1684"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1684"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1684: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1684: wait failed" >&5

    $as_echo "ofproto-dpif.at:1684" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1684"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1080
#AT_START_1081
at_fn_group_banner 1081 'ofproto-dpif.at:1688' \
  "ofproto-dpif - controller action without megaflows" "" 55
at_xfail=no
(
  $as_echo "1081. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1689: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:1689"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1689"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1689: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:1689"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1689"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1689: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1689"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1689"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1689: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:1689"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1689"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1689: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:1689"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1689"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1689: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1689"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1689"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1689: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:1689"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1689"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1692: ovs-ofctl add-flow br0 in_port=1,action=controller"
at_fn_check_prepare_trace "ofproto-dpif.at:1692"
( $at_check_trace; ovs-ofctl add-flow br0 in_port=1,action=controller
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1692"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1693: ovs-appctl upcall/disable-megaflows"
at_fn_check_prepare_trace "ofproto-dpif.at:1693"
( $at_check_trace; ovs-appctl upcall/disable-megaflows
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "megaflows disabled
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1693"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1698: ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1698"
( $at_check_trace; ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1698"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2; do
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1701: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x1234)'"
at_fn_check_prepare_trace "ofproto-dpif.at:1701"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x1234)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1701"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

done

$as_echo "ofproto-dpif.at:1704: waiting until test \`wc -l < ofctl_monitor.log\` -ge 4..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 4
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1704: wait failed" >&5

    $as_echo "ofproto-dpif.at:1704" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1704"
fi

$as_echo "ofproto-dpif.at:1705: waiting until ovs-appctl -t ovs-ofctl exit..." >&5
ovs_wait_cond () {
    ovs-appctl -t ovs-ofctl exit
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1705: wait failed" >&5

    $as_echo "ofproto-dpif.at:1705" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1705"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1707: ovs-appctl dpctl/dump-flows | sed 's/.*\\(packets:\\)/\\1/' | sed 's/used:[0-9].[0-9]*s/used:0.001s/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:1707"
( $at_check_trace; ovs-appctl dpctl/dump-flows | sed 's/.*\(packets:\)/\1/' | sed 's/used:[0-9].[0-9]*s/used:0.001s/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
packets:1, bytes:14, used:0.001s, actions:userspace(pid=0,controller(reason=1,dont_send=0,continuation=0,recirc_id=1,rule_cookie=0,controller_id=0,max_len=65535))
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1707"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1712: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1712"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0x0 total_len=14 in_port=1 (via action) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,dl_type=0x1234
NXT_PACKET_IN (xid=0x0): cookie=0x0 total_len=14 in_port=1 (via action) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,dl_type=0x1234
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1712"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1719: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:1719"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1719"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1720: ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1720"
( $at_check_trace; ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1720"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1723: ovs-ofctl -O OpenFlow13 add-meter br0 'meter=controller pktps stats bands=type=drop rate=2'"
at_fn_check_prepare_trace "ofproto-dpif.at:1723"
( $at_check_trace; ovs-ofctl -O OpenFlow13 add-meter br0 'meter=controller pktps stats bands=type=drop rate=2'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1723"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1726: ovs-appctl time/warp 1000"
at_fn_check_prepare_trace "ofproto-dpif.at:1726"
( $at_check_trace; ovs-appctl time/warp 1000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1726"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in `seq 1 8`; do
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1729: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x4321)'"
at_fn_check_prepare_trace "ofproto-dpif.at:1729"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x4321)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1729"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

done

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1732: ovs-appctl dpctl/dump-flows | sed 's/.*\\(packets:\\)/\\1/' | sed 's/used:[0-9].[0-9]*s/used:0.001s/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:1732"
( $at_check_trace; ovs-appctl dpctl/dump-flows | sed 's/.*\(packets:\)/\1/' | sed 's/used:[0-9].[0-9]*s/used:0.001s/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
packets:7, bytes:98, used:0.001s, actions:sample(sample=100.0%,actions(meter(0),userspace(pid=0,controller(reason=1,dont_send=0,continuation=0,recirc_id=2,rule_cookie=0,controller_id=0,max_len=65535))))
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1732"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1737: ovs-appctl time/warp 1"
at_fn_check_prepare_trace "ofproto-dpif.at:1737"
( $at_check_trace; ovs-appctl time/warp 1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1737"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

$as_echo "ofproto-dpif.at:1738: waiting until ovs-appctl -t ovs-ofctl exit..." >&5
ovs_wait_cond () {
    ovs-appctl -t ovs-ofctl exit
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1738: wait failed" >&5

    $as_echo "ofproto-dpif.at:1738" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1738"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1742: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1742"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0x0 total_len=14 in_port=1 (via action) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,dl_type=0x4321
NXT_PACKET_IN (xid=0x0): cookie=0x0 total_len=14 in_port=1 (via action) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,dl_type=0x4321
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1742"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1750: ovs-ofctl -O OpenFlow13 meter-stats br0 | strip_timers"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:1750"
( $at_check_trace; ovs-ofctl -O OpenFlow13 meter-stats br0 | strip_timers
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_METER reply (OF1.3) (xid=0x2):
meter:controller flow_count:0 packet_in_count:8 byte_in_count:112 duration:0.0s bands:
0: packet_count:6 byte_count:84
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1750"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1756: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:1756"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1756"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1756: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:1756"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1756"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1756: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:1756"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1756"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1756: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1756: wait failed" >&5

    $as_echo "ofproto-dpif.at:1756" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1756"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1756: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:1756"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1756"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1756: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1756"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1756"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1756: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1756: wait failed" >&5

    $as_echo "ofproto-dpif.at:1756" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1756"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1081
#AT_START_1082
at_fn_group_banner 1082 'ofproto-dpif.at:1759' \
  "ofproto-dpif - MPLS handling" "                   " 55
at_xfail=no
(
  $as_echo "1082. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1760: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:1760"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1760"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1760: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:1760"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1760"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1760: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1760"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1760"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1760: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:1760"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1760"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1760: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:1760"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1760"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1760: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1760"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1760"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1760: add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy
 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:1760"
( $at_check_trace; add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1760"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


on_exit 'kill `cat ovs-ofctl.pid`'


cat >flows.txt <<'_ATEOF'
cookie=0xa dl_src=40:44:44:44:44:42 actions=push_mpls:0x8847,load:10->OXM_OF_MPLS_LABEL[],load:3->OXM_OF_MPLS_TC[],controller
cookie=0xa dl_src=41:44:44:44:44:42 actions=push_mpls:0x8847,load:10->OXM_OF_MPLS_LABEL[],load:3->OXM_OF_MPLS_TC[],pop_mpls:0x0800,controller
cookie=0xa dl_src=40:44:44:44:44:43 actions=push_mpls:0x8847,load:10->OXM_OF_MPLS_LABEL[],load:3->OXM_OF_MPLS_TC[],controller
cookie=0xa dl_src=40:44:44:44:44:44 actions=push_mpls:0x8847,load:10->OXM_OF_MPLS_LABEL[],load:3->OXM_OF_MPLS_TC[],controller
cookie=0xa dl_src=40:44:44:44:44:45 actions=push_mpls:0x8847,load:10->OXM_OF_MPLS_LABEL[],load:3->OXM_OF_MPLS_TC[],dec_mpls_ttl,controller
cookie=0xa dl_src=40:44:44:44:44:46 actions=push_mpls:0x8847,load:10->OXM_OF_MPLS_LABEL[],load:3->OXM_OF_MPLS_TC[],set_mpls_ttl(10),controller
cookie=0xa dl_src=40:44:44:44:44:47 actions=push_mpls:0x8847,load:10->OXM_OF_MPLS_LABEL[],load:3->OXM_OF_MPLS_TC[],dec_mpls_ttl,set_mpls_ttl(10),controller
cookie=0xa dl_src=40:44:44:44:44:48 actions=push_mpls:0x8847,load:10->OXM_OF_MPLS_LABEL[],load:3->OXM_OF_MPLS_TC[],set_mpls_ttl(10),dec_mpls_ttl,controller
cookie=0xa mpls,dl_src=40:44:44:44:44:49 actions=push_mpls:0x8848,load:10->OXM_OF_MPLS_LABEL[],CONTROLLER:65535
cookie=0xb dl_src=50:55:55:55:55:55 dl_type=0x8847 actions=load:1000->OXM_OF_MPLS_LABEL[],controller
cookie=0xd dl_src=60:66:66:66:66:66 actions=pop_mpls:0x0800,controller
cookie=0xc dl_src=70:77:77:77:77:77 actions=push_mpls:0x8848,load:1000->OXM_OF_MPLS_LABEL[],load:7->OXM_OF_MPLS_TC[],controller

cookie=0xd dl_src=60:66:66:66:00:01 actions=pop_mpls:0x0800,dec_ttl,controller
cookie=0xd dl_src=60:66:66:66:00:02 actions=pop_mpls:0x0800,load:0xa000001->OXM_OF_IPV4_DST[],controller
cookie=0xd dl_src=60:66:66:66:00:03 actions=pop_mpls:0x0800,move:OXM_OF_IPV4_DST[]->OXM_OF_IPV4_SRC[],controller
cookie=0xd dl_src=60:66:66:66:00:04 actions=pop_mpls:0x0800,push:OXM_OF_IPV4_DST[],pop:OXM_OF_IPV4_SRC[],controller
cookie=0xd dl_src=60:66:66:66:00:05 actions=pop_mpls:0x0800,multipath(eth_src,50,modulo_n,1,0,OXM_OF_IPV4_SRC[0..7]),controller
cookie=0xd dl_src=60:66:66:66:00:06 actions=pop_mpls:0x0800,bundle_load(eth_src,50,hrw,ofport,OXM_OF_IPV4_SRC[0..15],slaves:1,2),controller
cookie=0xd dl_src=60:66:66:66:00:07 actions=pop_mpls:0x0800,learn(table=1,hard_timeout=60,eth_type=0x800,nw_proto=6,OXM_OF_IPV4_SRC[]=OXM_OF_IPV4_DST[]),controller

cookie=0xd dl_src=60:66:66:66:00:08 actions=pop_mpls:0x0806,resubmit(1,1)
cookie=0xd table=1 arp actions=controller

cookie=0xdeadbeef table=2 dl_src=60:66:66:66:00:09 actions=pop_mpls:0x0800,mod_nw_tos:48
cookie=0xd dl_src=60:66:66:66:00:09 actions=resubmit(,2),controller
cookie=0xd dl_src=60:66:66:66:00:0a actions=pop_mpls:0x0800,mod_nw_dst:10.0.0.1,controller
cookie=0xd dl_src=60:66:66:66:00:0b actions=pop_mpls:0x0800,mod_nw_src:10.0.0.1,controller

cookie=0xd dl_src=60:66:66:66:01:00 actions=pop_mpls:0x8848,controller
cookie=0xd dl_src=60:66:66:66:01:01 actions=pop_mpls:0x8847,dec_mpls_ttl,controller
cookie=0xd dl_src=60:66:66:66:01:02 actions=pop_mpls:0x8848,load:3->OXM_OF_MPLS_TC[],controller

cookie=0xd dl_src=60:66:66:66:02:00 actions=pop_mpls:0x8847,pop_mpls:0x0800,controller
cookie=0xe dl_src=60:66:66:66:02:01 actions=pop_mpls:0x8848,pop_mpls:0x0800,dec_ttl,controller
cookie=0xe dl_src=60:66:66:66:02:10 actions=pop_mpls:0x8847,dec_mpls_ttl,pop_mpls:0x0800,dec_ttl,controller

cookie=0xe dl_src=60:66:66:66:03:00 actions=pop_mpls:0x8848,pop_mpls:0x8848,controller
cookie=0xe dl_src=60:66:66:66:03:01 actions=pop_mpls:0x8847,pop_mpls:0x8847,dec_mpls_ttl,controller
cookie=0xe dl_src=60:66:66:66:03:10 actions=pop_mpls:0x8848,dec_mpls_ttl,pop_mpls:0x8848,dec_mpls_ttl,controller

cookie=0xf dl_src=60:66:66:66:04:00 actions=pop_mpls:0x0800,push_mpls:0x8847,controller
cookie=0xf dl_src=60:66:66:66:04:01 actions=pop_mpls:0x0800,push_mpls:0x8848,dec_mpls_ttl,controller
cookie=0xf dl_src=60:66:66:66:04:10 actions=pop_mpls:0x0800,dec_ttl,push_mpls:0x8848,dec_mpls_ttl,controller

cookie=0x5 dl_src=60:66:66:66:05:00 actions=push_mpls:0x8848,pop_mpls:0x8847,controller
cookie=0x5 dl_src=60:66:66:66:05:01 actions=push_mpls:0x8847,pop_mpls:0x8848,dec_mpls_ttl,controller
cookie=0x5 dl_src=60:66:66:66:05:10 actions=push_mpls:0x8848,dec_mpls_ttl,pop_mpls:0x8847,dec_mpls_ttl,controller
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1816: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:1816"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1816"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1819: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1819"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1819"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=40:44:44:44:44:42,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=17,tos=0,ttl=64,frag=no),udp(src=7777,dst=80)'
done
$as_echo "ofproto-dpif.at:1824: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1824: wait failed" >&5

    $as_echo "ofproto-dpif.at:1824" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1824"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1825: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:1825"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1825"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1825: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1825"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1825"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1825: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1825: wait failed" >&5

    $as_echo "ofproto-dpif.at:1825" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1825"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1827: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1827"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=46 in_port=1 (via action) data_len=46 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=40:44:44:44:44:42,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=3,mpls_ttl=64,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=46 in_port=1 (via action) data_len=46 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=40:44:44:44:44:42,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=3,mpls_ttl=64,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=46 in_port=1 (via action) data_len=46 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=40:44:44:44:44:42,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=3,mpls_ttl=64,mpls_bos=1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1827"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1839: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1839"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1839"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=41:44:44:44:44:42,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=16,tos=0,ttl=64,frag=no)'
done
$as_echo "ofproto-dpif.at:1844: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1844: wait failed" >&5

    $as_echo "ofproto-dpif.at:1844" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1844"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1845: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:1845"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1845"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1845: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1845"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1845"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1845: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1845: wait failed" >&5

    $as_echo "ofproto-dpif.at:1845" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1845"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1847: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1847"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=34 in_port=1 (via action) data_len=34 (unbuffered)
ip,vlan_tci=0x0000,dl_src=41:44:44:44:44:42,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=16,nw_tos=0,nw_ecn=0,nw_ttl=64
NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=34 in_port=1 (via action) data_len=34 (unbuffered)
ip,vlan_tci=0x0000,dl_src=41:44:44:44:44:42,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=16,nw_tos=0,nw_ecn=0,nw_ttl=64
NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=34 in_port=1 (via action) data_len=34 (unbuffered)
ip,vlan_tci=0x0000,dl_src=41:44:44:44:44:42,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_proto=16,nw_tos=0,nw_ecn=0,nw_ttl=64
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1847"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1859: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1859"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1859"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }



for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=40:44:44:44:44:43,dst=50:54:00:00:00:07),eth_type(0x8847),mpls(label=11,tc=3,ttl=64,bos=1)'
done
$as_echo "ofproto-dpif.at:1866: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1866: wait failed" >&5

    $as_echo "ofproto-dpif.at:1866" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1866"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1867: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:1867"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1867"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1867: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1867"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1867"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1867: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1867: wait failed" >&5

    $as_echo "ofproto-dpif.at:1867" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1867"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1869: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1869"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=22 in_port=1 (via action) data_len=22 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=40:44:44:44:44:43,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=3,mpls_ttl=64,mpls_bos=0,mpls_lse1=46912
NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=22 in_port=1 (via action) data_len=22 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=40:44:44:44:44:43,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=3,mpls_ttl=64,mpls_bos=0,mpls_lse1=46912
NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=22 in_port=1 (via action) data_len=22 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=40:44:44:44:44:43,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=3,mpls_ttl=64,mpls_bos=0,mpls_lse1=46912
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1869"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1881: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1881"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1881"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=40:44:44:44:44:44,dst=50:54:00:00:00:07),eth_type(0x8100),vlan(vid=99,pcp=7),encap(eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=16,tos=0,ttl=64,frag=no))'
done
$as_echo "ofproto-dpif.at:1886: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1886: wait failed" >&5

    $as_echo "ofproto-dpif.at:1886" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1886"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1887: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:1887"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1887"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1887: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1887"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1887"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1887: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1887: wait failed" >&5

    $as_echo "ofproto-dpif.at:1887" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1887"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1889: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1889"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=42 in_port=1 (via action) data_len=42 (unbuffered)
mpls,dl_vlan=99,dl_vlan_pcp=7,vlan_tci1=0x0000,dl_src=40:44:44:44:44:44,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=3,mpls_ttl=64,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=42 in_port=1 (via action) data_len=42 (unbuffered)
mpls,dl_vlan=99,dl_vlan_pcp=7,vlan_tci1=0x0000,dl_src=40:44:44:44:44:44,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=3,mpls_ttl=64,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=42 in_port=1 (via action) data_len=42 (unbuffered)
mpls,dl_vlan=99,dl_vlan_pcp=7,vlan_tci1=0x0000,dl_src=40:44:44:44:44:44,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=3,mpls_ttl=64,mpls_bos=1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1889"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1901: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1901"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1901"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=40:44:44:44:44:45,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=16,tos=0,ttl=64,frag=no)'
done
$as_echo "ofproto-dpif.at:1906: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1906: wait failed" >&5

    $as_echo "ofproto-dpif.at:1906" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1906"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1907: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:1907"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1907"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1907: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1907"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1907"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1907: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1907: wait failed" >&5

    $as_echo "ofproto-dpif.at:1907" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1907"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1909: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1909"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=38 in_port=1 (via action) data_len=38 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=40:44:44:44:44:45,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=3,mpls_ttl=63,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=38 in_port=1 (via action) data_len=38 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=40:44:44:44:44:45,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=3,mpls_ttl=63,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=38 in_port=1 (via action) data_len=38 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=40:44:44:44:44:45,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=3,mpls_ttl=63,mpls_bos=1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1909"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1921: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1921"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1921"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=40:44:44:44:44:46,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=16,tos=0,ttl=64,frag=no)'
done
$as_echo "ofproto-dpif.at:1926: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1926: wait failed" >&5

    $as_echo "ofproto-dpif.at:1926" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1926"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1927: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:1927"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1927"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1927: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1927"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1927"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1927: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1927: wait failed" >&5

    $as_echo "ofproto-dpif.at:1927" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1927"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1929: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1929"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=38 in_port=1 (via action) data_len=38 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=40:44:44:44:44:46,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=3,mpls_ttl=10,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=38 in_port=1 (via action) data_len=38 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=40:44:44:44:44:46,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=3,mpls_ttl=10,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=38 in_port=1 (via action) data_len=38 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=40:44:44:44:44:46,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=3,mpls_ttl=10,mpls_bos=1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1929"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1941: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1941"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1941"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=40:44:44:44:44:47,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=16,tos=0,ttl=64,frag=no)'
done
$as_echo "ofproto-dpif.at:1946: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1946: wait failed" >&5

    $as_echo "ofproto-dpif.at:1946" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1946"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1947: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:1947"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1947"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1947: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1947"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1947"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1947: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1947: wait failed" >&5

    $as_echo "ofproto-dpif.at:1947" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1947"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1949: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1949"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=38 in_port=1 (via action) data_len=38 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=40:44:44:44:44:47,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=3,mpls_ttl=10,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=38 in_port=1 (via action) data_len=38 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=40:44:44:44:44:47,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=3,mpls_ttl=10,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=38 in_port=1 (via action) data_len=38 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=40:44:44:44:44:47,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=3,mpls_ttl=10,mpls_bos=1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1949"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1960: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:1960"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1960"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1963: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1963"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1963"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=40:44:44:44:44:49,dst=50:54:00:00:00:07),eth_type(0x8847),mpls(label=10,tc=3,ttl=64,bos=1)'
done
$as_echo "ofproto-dpif.at:1968: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1968: wait failed" >&5

    $as_echo "ofproto-dpif.at:1968" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1968"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1969: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:1969"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1969"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1969: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1969"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1969"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1969: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1969: wait failed" >&5

    $as_echo "ofproto-dpif.at:1969" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1969"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1971: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1971"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=22 in_port=1 (via action) data_len=22 (unbuffered)
mplsm,vlan_tci=0x0000,dl_src=40:44:44:44:44:49,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=3,mpls_ttl=64,mpls_bos=0,mpls_lse1=42816
NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=22 in_port=1 (via action) data_len=22 (unbuffered)
mplsm,vlan_tci=0x0000,dl_src=40:44:44:44:44:49,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=3,mpls_ttl=64,mpls_bos=0,mpls_lse1=42816
NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=22 in_port=1 (via action) data_len=22 (unbuffered)
mplsm,vlan_tci=0x0000,dl_src=40:44:44:44:44:49,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=3,mpls_ttl=64,mpls_bos=0,mpls_lse1=42816
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1971"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1982: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:1982"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1982"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1985: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1985"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1985"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=40:44:44:44:44:48,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=16,tos=0,ttl=64,frag=no)'
done
$as_echo "ofproto-dpif.at:1990: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1990: wait failed" >&5

    $as_echo "ofproto-dpif.at:1990" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1990"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1991: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:1991"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1991"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1991: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:1991"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1991"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:1991: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:1991: wait failed" >&5

    $as_echo "ofproto-dpif.at:1991" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:1991"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:1993: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:1993"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=38 in_port=1 (via action) data_len=38 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=40:44:44:44:44:48,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=3,mpls_ttl=9,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=38 in_port=1 (via action) data_len=38 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=40:44:44:44:44:48,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=3,mpls_ttl=9,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0xa total_len=38 in_port=1 (via action) data_len=38 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=40:44:44:44:44:48,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=3,mpls_ttl=9,mpls_bos=1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:1993"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2005: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2005"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2005"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:55:55:55:55:55,dst=50:54:00:00:00:07),eth_type(0x8847),mpls(label=100,tc=7,ttl=64,bos=1)'
done
$as_echo "ofproto-dpif.at:2010: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2010: wait failed" >&5

    $as_echo "ofproto-dpif.at:2010" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2010"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2011: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:2011"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2011"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2011: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2011"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2011"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2011: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2011: wait failed" >&5

    $as_echo "ofproto-dpif.at:2011" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2011"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2013: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2013"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0xb total_len=18 in_port=1 (via action) data_len=18 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=50:55:55:55:55:55,dl_dst=50:54:00:00:00:07,mpls_label=1000,mpls_tc=7,mpls_ttl=64,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0xb total_len=18 in_port=1 (via action) data_len=18 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=50:55:55:55:55:55,dl_dst=50:54:00:00:00:07,mpls_label=1000,mpls_tc=7,mpls_ttl=64,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0xb total_len=18 in_port=1 (via action) data_len=18 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=50:55:55:55:55:55,dl_dst=50:54:00:00:00:07,mpls_label=1000,mpls_tc=7,mpls_ttl=64,mpls_bos=1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2013"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2025: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2025"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2025"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=70:77:77:77:77:77,dst=50:54:00:00:00:07),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=10,tclass=0x70,hlimit=128,frag=no)'
done
$as_echo "ofproto-dpif.at:2030: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2030: wait failed" >&5

    $as_echo "ofproto-dpif.at:2030" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2030"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2031: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:2031"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2031"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2031: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2031"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2031"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2031: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2031: wait failed" >&5

    $as_echo "ofproto-dpif.at:2031" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2031"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2033: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2033"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0xc total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
mplsm,vlan_tci=0x0000,dl_src=70:77:77:77:77:77,dl_dst=50:54:00:00:00:07,mpls_label=1000,mpls_tc=7,mpls_ttl=128,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0xc total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
mplsm,vlan_tci=0x0000,dl_src=70:77:77:77:77:77,dl_dst=50:54:00:00:00:07,mpls_label=1000,mpls_tc=7,mpls_ttl=128,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0xc total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
mplsm,vlan_tci=0x0000,dl_src=70:77:77:77:77:77,dl_dst=50:54:00:00:00:07,mpls_label=1000,mpls_tc=7,mpls_ttl=128,mpls_bos=1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2033"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }




{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2050: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2050"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2050"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 '50 54 00 00 00 07 60 66 66 66 66 66 88 47 00 01 41 20 45 00 00 2c 00 00 00 00 40 06 3b 78 c0 a8 00 01 c0 a8 00 02 00 50 00 00 00 00 00 2a 00 00 00 2a 50 00 27 10 77 44 00 00 48 4f 47 45'
done
#for i in 2 3; do
#    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=60:66:66:66:66:66,dst=50:54:00:00:00:07),eth_type(0x8847),mpls(label=10,tc=3,ttl=100,bos=1)'
#done
$as_echo "ofproto-dpif.at:2058: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2058: wait failed" >&5

    $as_echo "ofproto-dpif.at:2058" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2058"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2059: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:2059"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2059"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2059: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2059"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2059"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2059: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2059: wait failed" >&5

    $as_echo "ofproto-dpif.at:2059" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2059"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2061: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2061"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:66:66,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7744
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:66:66,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7744
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:66:66,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7744
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2061"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2072: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:2072"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2072"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2079: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2079"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2079"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 '50 54 00 00 00 07 60 66 66 66 00 01 88 48 00 01 41 20 45 00 00 2c 00 00 00 00 ff 06 3a 78 c0 a8 00 01 c0 a8 00 02 00 50 00 00 00 00 00 2a 00 00 00 2a 50 00 27 10 77 44 00 00 48 4f 47 45'
done
$as_echo "ofproto-dpif.at:2084: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2084: wait failed" >&5

    $as_echo "ofproto-dpif.at:2084" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2084"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2085: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:2085"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2085"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2085: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2085"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2085"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2085: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2085: wait failed" >&5

    $as_echo "ofproto-dpif.at:2085" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2085"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2087: strip_metadata < ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2087"
( $at_check_trace; strip_metadata < ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:00:01,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=254,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7744
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:00:01,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=254,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7744
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:00:01,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=254,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7744
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2087"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2098: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:2098"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2098"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2105: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2105"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2105"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 '50 54 00 00 00 07 60 66 66 66 00 02 88 47 00 01 41 20 45 00 00 2c 00 00 00 00 ff 06 3a 78 c0 a8 00 01 c0 a8 00 02 00 50 00 00 00 00 00 2a 00 00 00 2a 50 00 27 10 77 44 00 00 48 4f 47 45'
done
$as_echo "ofproto-dpif.at:2110: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2110: wait failed" >&5

    $as_echo "ofproto-dpif.at:2110" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2110"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2111: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:2111"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2111"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2111: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2111"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2111"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2111: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2111: wait failed" >&5

    $as_echo "ofproto-dpif.at:2111" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2111"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2113: strip_metadata < ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2113"
( $at_check_trace; strip_metadata < ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:00:02,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=10.0.0.1,nw_tos=0,nw_ecn=0,nw_ttl=255,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:2dee
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:00:02,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=10.0.0.1,nw_tos=0,nw_ecn=0,nw_ttl=255,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:2dee
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:00:02,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=10.0.0.1,nw_tos=0,nw_ecn=0,nw_ttl=255,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:2dee
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2113"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2124: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:2124"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2124"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2131: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2131"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2131"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 '50 54 00 00 00 07 60 66 66 66 00 03 88 48 00 01 41 20 45 00 00 2c 00 00 00 00 ff 06 3a 78 c0 a8 00 01 c0 a8 00 02 00 50 00 00 00 00 00 2a 00 00 00 2a 50 00 27 10 77 44 00 00 48 4f 47 45'
done
$as_echo "ofproto-dpif.at:2136: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2136: wait failed" >&5

    $as_echo "ofproto-dpif.at:2136" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2136"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2137: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:2137"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2137"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2137: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2137"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2137"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2137: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2137: wait failed" >&5

    $as_echo "ofproto-dpif.at:2137" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2137"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2139: strip_metadata < ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2139"
( $at_check_trace; strip_metadata < ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:00:03,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.2,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=255,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7743
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:00:03,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.2,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=255,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7743
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:00:03,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.2,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=255,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7743
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2139"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2150: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:2150"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2150"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2157: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2157"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2157"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 '50 54 00 00 00 07 60 66 66 66 00 04 88 47 00 01 41 20 45 00 00 2c 00 00 00 00 ff 06 3a 78 c0 a8 00 01 c0 a8 00 02 00 50 00 00 00 00 00 2a 00 00 00 2a 50 00 27 10 77 44 00 00 48 4f 47 45'
done
$as_echo "ofproto-dpif.at:2162: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2162: wait failed" >&5

    $as_echo "ofproto-dpif.at:2162" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2162"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2163: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:2163"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2163"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2163: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2163"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2163"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2163: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2163: wait failed" >&5

    $as_echo "ofproto-dpif.at:2163" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2163"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2165: strip_metadata < ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2165"
( $at_check_trace; strip_metadata < ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:00:04,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.2,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=255,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7743
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:00:04,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.2,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=255,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7743
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:00:04,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.2,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=255,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7743
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2165"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2176: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:2176"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2176"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2183: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2183"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2183"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 '50 54 00 00 00 07 60 66 66 66 00 05 88 48 00 01 41 20 45 00 00 2c 00 00 00 00 ff 06 3a 78 c0 a8 00 01 c0 a8 00 02 00 50 00 00 00 00 00 2a 00 00 00 2a 50 00 27 10 77 44 00 00 48 4f 47 45'
done
$as_echo "ofproto-dpif.at:2188: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2188: wait failed" >&5

    $as_echo "ofproto-dpif.at:2188" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2188"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2189: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:2189"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2189"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2189: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2189"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2189"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2189: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2189: wait failed" >&5

    $as_echo "ofproto-dpif.at:2189" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2189"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2191: strip_metadata < ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2191"
( $at_check_trace; strip_metadata < ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:00:05,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.0,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=255,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7745
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:00:05,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.0,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=255,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7745
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:00:05,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.0,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=255,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7745
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2202: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:2202"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2202"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2209: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2209"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2209"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 '50 54 00 00 00 07 60 66 66 66 00 06 88 47 00 01 41 20 45 00 00 2c 00 00 00 00 ff 06 3a 78 c0 a8 00 01 c0 a8 00 02 00 50 00 00 00 00 00 2a 00 00 00 2a 50 00 27 10 77 44 00 00 48 4f 47 45'
done
$as_echo "ofproto-dpif.at:2214: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2214: wait failed" >&5

    $as_echo "ofproto-dpif.at:2214" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2214"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2215: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:2215"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2215"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2215: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2215"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2215"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2215: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2215: wait failed" >&5

    $as_echo "ofproto-dpif.at:2215" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2215"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2217: strip_metadata < ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2217"
( $at_check_trace; strip_metadata < ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:00:06,dl_dst=50:54:00:00:00:07,nw_src=192.168.255.255,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=255,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7745
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:00:06,dl_dst=50:54:00:00:00:07,nw_src=192.168.255.255,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=255,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7745
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:00:06,dl_dst=50:54:00:00:00:07,nw_src=192.168.255.255,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=255,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7745
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2217"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2228: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:2228"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2228"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2235: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2235"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2235"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 '50 54 00 00 00 07 60 66 66 66 00 07 88 48 00 01 41 20 45 00 00 2c 00 00 00 00 ff 06 3a 78 c0 a8 00 01 c0 a8 00 02 00 50 00 00 00 00 00 2a 00 00 00 2a 50 00 27 10 77 44 00 00 48 4f 47 45'
done
$as_echo "ofproto-dpif.at:2240: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2240: wait failed" >&5

    $as_echo "ofproto-dpif.at:2240" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2240"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2241: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:2241"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2241"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2241: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2241"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2241"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2241: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2241: wait failed" >&5

    $as_echo "ofproto-dpif.at:2241" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2241"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2243: strip_metadata < ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2243"
( $at_check_trace; strip_metadata < ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:00:07,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=255,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7744
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:00:07,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=255,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7744
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:00:07,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=255,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7744
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2243"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2254: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:2254"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2254"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2259: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2259"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2259"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 'ff ff ff ff ff ff 60 66 66 66 00 08 88 47 00 01 41 20 00 01 08 00 06 04 00 02 60 66 66 66 00 08 c0 a8 00 01 ff ff ff ff ff ff ff ff ff ff'
done
$as_echo "ofproto-dpif.at:2264: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2264: wait failed" >&5

    $as_echo "ofproto-dpif.at:2264" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2264"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2265: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:2265"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2265"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2265: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2265"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2265"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2265: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2265: wait failed" >&5

    $as_echo "ofproto-dpif.at:2265" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2265"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2267: strip_metadata < ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2267"
( $at_check_trace; strip_metadata < ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0xd total_len=42 in_port=1 (via action) data_len=42 (unbuffered)
arp,vlan_tci=0x0000,dl_src=60:66:66:66:00:08,dl_dst=ff:ff:ff:ff:ff:ff,arp_spa=192.168.0.1,arp_tpa=255.255.255.255,arp_op=2,arp_sha=60:66:66:66:00:08,arp_tha=ff:ff:ff:ff:ff:ff
NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0xd total_len=42 in_port=1 (via action) data_len=42 (unbuffered)
arp,vlan_tci=0x0000,dl_src=60:66:66:66:00:08,dl_dst=ff:ff:ff:ff:ff:ff,arp_spa=192.168.0.1,arp_tpa=255.255.255.255,arp_op=2,arp_sha=60:66:66:66:00:08,arp_tha=ff:ff:ff:ff:ff:ff
NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0xd total_len=42 in_port=1 (via action) data_len=42 (unbuffered)
arp,vlan_tci=0x0000,dl_src=60:66:66:66:00:08,dl_dst=ff:ff:ff:ff:ff:ff,arp_spa=192.168.0.1,arp_tpa=255.255.255.255,arp_op=2,arp_sha=60:66:66:66:00:08,arp_tha=ff:ff:ff:ff:ff:ff
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2267"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2278: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:2278"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2278"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2285: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2285"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2285"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 '50 54 00 00 00 07 60 66 66 66 00 09 88 48 00 01 41 20 45 00 00 2c 00 00 00 00 ff 06 3a 78 c0 a8 00 01 c0 a8 00 02 00 50 00 00 00 00 00 2a 00 00 00 2a 50 00 27 10 77 44 00 00 48 4f 47 45'
done
$as_echo "ofproto-dpif.at:2290: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2290: wait failed" >&5

    $as_echo "ofproto-dpif.at:2290" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2290"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2291: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:2291"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2291"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2291: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2291"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2291"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2291: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2291: wait failed" >&5

    $as_echo "ofproto-dpif.at:2291" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2291"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2293: strip_metadata < ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2293"
( $at_check_trace; strip_metadata < ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:00:09,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=48,nw_ecn=0,nw_ttl=255,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7744
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:00:09,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=48,nw_ecn=0,nw_ttl=255,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7744
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:00:09,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=48,nw_ecn=0,nw_ttl=255,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7744
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2293"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2304: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:2304"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2304"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2311: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2311"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2311"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 '50 54 00 00 00 07 60 66 66 66 00 0a 88 48 00 01 41 20 45 00 00 2c 00 00 00 00 ff 06 3a 78 c0 a8 00 01 c0 a8 00 02 00 50 00 00 00 00 00 2a 00 00 00 2a 50 00 27 10 77 44 00 00 48 4f 47 45'
done
$as_echo "ofproto-dpif.at:2316: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2316: wait failed" >&5

    $as_echo "ofproto-dpif.at:2316" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2316"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2317: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:2317"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2317"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2317: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2317"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2317"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2317: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2317: wait failed" >&5

    $as_echo "ofproto-dpif.at:2317" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2317"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2319: strip_metadata < ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2319"
( $at_check_trace; strip_metadata < ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:00:0a,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=10.0.0.1,nw_tos=0,nw_ecn=0,nw_ttl=255,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:2dee
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:00:0a,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=10.0.0.1,nw_tos=0,nw_ecn=0,nw_ttl=255,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:2dee
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:00:0a,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=10.0.0.1,nw_tos=0,nw_ecn=0,nw_ttl=255,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:2dee
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2319"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2330: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:2330"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2330"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2337: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2337"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2337"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 '50 54 00 00 00 07 60 66 66 66 00 0b 88 48 00 01 41 20 45 00 00 2c 00 00 00 00 ff 06 3a 78 c0 a8 00 01 c0 a8 00 02 00 50 00 00 00 00 00 2a 00 00 00 2a 50 00 27 10 77 44 00 00 48 4f 47 45'
done
$as_echo "ofproto-dpif.at:2342: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2342: wait failed" >&5

    $as_echo "ofproto-dpif.at:2342" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2342"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2343: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:2343"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2343"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2343: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2343"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2343"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2343: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2343: wait failed" >&5

    $as_echo "ofproto-dpif.at:2343" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2343"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2345: strip_metadata < ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2345"
( $at_check_trace; strip_metadata < ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:00:0b,dl_dst=50:54:00:00:00:07,nw_src=10.0.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=255,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:2ded
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:00:0b,dl_dst=50:54:00:00:00:07,nw_src=10.0.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=255,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:2ded
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:00:0b,dl_dst=50:54:00:00:00:07,nw_src=10.0.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=255,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:2ded
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2345"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2356: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:2356"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2356"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2364: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2364"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2364"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 '50 54 00 00 00 07 60 66 66 66 01 00 88 48 00 01 40 20 00 01 41 1f 45 00 00 2c 00 00 00 00 ff 06 3b 78 c0 a8 00 01 c0 a8 00 02 00 50 00 00 00 00 00 2a 00 00 00 2a 50 00 27 10 77 44 00 00 48 4f 47 45'
done
$as_echo "ofproto-dpif.at:2369: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2369: wait failed" >&5

    $as_echo "ofproto-dpif.at:2369" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2369"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2370: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:2370"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2370"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2370: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2370"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2370"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2370: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2370: wait failed" >&5

    $as_echo "ofproto-dpif.at:2370" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2370"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2372: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2372"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mplsm,vlan_tci=0x0000,dl_src=60:66:66:66:01:00,dl_dst=50:54:00:00:00:07,mpls_label=20,mpls_tc=0,mpls_ttl=31,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mplsm,vlan_tci=0x0000,dl_src=60:66:66:66:01:00,dl_dst=50:54:00:00:00:07,mpls_label=20,mpls_tc=0,mpls_ttl=31,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mplsm,vlan_tci=0x0000,dl_src=60:66:66:66:01:00,dl_dst=50:54:00:00:00:07,mpls_label=20,mpls_tc=0,mpls_ttl=31,mpls_bos=1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2372"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2383: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:2383"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2383"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2391: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2391"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2391"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 '50 54 00 00 00 07 60 66 66 66 01 01 88 47 00 01 40 20 00 01 41 1f 45 00 00 2c 00 00 00 00 ff 06 3b 78 c0 a8 00 01 c0 a8 00 02 00 50 00 00 00 00 00 2a 00 00 00 2a 50 00 27 10 77 44 00 00 48 4f 47 45'
done
$as_echo "ofproto-dpif.at:2396: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2396: wait failed" >&5

    $as_echo "ofproto-dpif.at:2396" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2396"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2397: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:2397"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2397"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2397: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2397"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2397"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2397: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2397: wait failed" >&5

    $as_echo "ofproto-dpif.at:2397" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2397"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2399: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2399"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=60:66:66:66:01:01,dl_dst=50:54:00:00:00:07,mpls_label=20,mpls_tc=0,mpls_ttl=30,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=60:66:66:66:01:01,dl_dst=50:54:00:00:00:07,mpls_label=20,mpls_tc=0,mpls_ttl=30,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=60:66:66:66:01:01,dl_dst=50:54:00:00:00:07,mpls_label=20,mpls_tc=0,mpls_ttl=30,mpls_bos=1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2399"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2410: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:2410"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2410"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2418: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2418"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2418"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 '50 54 00 00 00 07 60 66 66 66 01 02 88 48 00 01 40 20 00 01 41 1f 45 00 00 2c 00 00 00 00 ff 06 3b 78 c0 a8 00 01 c0 a8 00 02 00 50 00 00 00 00 00 2a 00 00 00 2a 50 00 27 10 77 44 00 00 48 4f 47 45'
done
$as_echo "ofproto-dpif.at:2423: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2423: wait failed" >&5

    $as_echo "ofproto-dpif.at:2423" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2423"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2424: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:2424"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2424"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2424: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2424"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2424"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2424: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2424: wait failed" >&5

    $as_echo "ofproto-dpif.at:2424" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2424"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2426: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2426"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mplsm,vlan_tci=0x0000,dl_src=60:66:66:66:01:02,dl_dst=50:54:00:00:00:07,mpls_label=20,mpls_tc=3,mpls_ttl=31,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mplsm,vlan_tci=0x0000,dl_src=60:66:66:66:01:02,dl_dst=50:54:00:00:00:07,mpls_label=20,mpls_tc=3,mpls_ttl=31,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mplsm,vlan_tci=0x0000,dl_src=60:66:66:66:01:02,dl_dst=50:54:00:00:00:07,mpls_label=20,mpls_tc=3,mpls_ttl=31,mpls_bos=1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2426"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2437: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:2437"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2437"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2445: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2445"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2445"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 '50 54 00 00 00 07 60 66 66 66 02 00 88 47 00 01 40 20 00 01 41 1f 45 00 00 2c 00 00 00 00 ff 06 3b 78 c0 a8 00 01 c0 a8 00 02 00 50 00 00 00 00 00 2a 00 00 00 2a 50 00 27 10 77 44 00 00 48 4f 47 45'
done
$as_echo "ofproto-dpif.at:2450: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2450: wait failed" >&5

    $as_echo "ofproto-dpif.at:2450" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2450"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2451: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:2451"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2451"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2451: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2451"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2451"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2451: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2451: wait failed" >&5

    $as_echo "ofproto-dpif.at:2451" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2451"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2453: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2453"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:02:00,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=255,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7744
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:02:00,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=255,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7744
NXT_PACKET_IN (xid=0x0): cookie=0xd total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:02:00,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=255,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7744
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2453"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2464: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:2464"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2464"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2472: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2472"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2472"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 '50 54 00 00 00 07 60 66 66 66 02 01 88 48 00 01 40 20 00 01 41 1f 45 00 00 2c 00 00 00 00 ff 06 3b 78 c0 a8 00 01 c0 a8 00 02 00 50 00 00 00 00 00 2a 00 00 00 2a 50 00 27 10 77 44 00 00 48 4f 47 45'
done

$as_echo "ofproto-dpif.at:2478: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2478: wait failed" >&5

    $as_echo "ofproto-dpif.at:2478" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2478"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2479: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:2479"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2479"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2479: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2479"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2479"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2479: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2479: wait failed" >&5

    $as_echo "ofproto-dpif.at:2479" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2479"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2481: strip_metadata < ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2481"
( $at_check_trace; strip_metadata < ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0xe total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:02:01,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=254,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7744
NXT_PACKET_IN (xid=0x0): cookie=0xe total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:02:01,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=254,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7744
NXT_PACKET_IN (xid=0x0): cookie=0xe total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:02:01,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=254,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7744
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2481"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2492: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:2492"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2492"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2500: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2500"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2500"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 '50 54 00 00 00 07 60 66 66 66 02 10 88 47 00 01 40 20 00 01 41 1f 45 00 00 2c 00 00 00 00 ff 06 3b 78 c0 a8 00 01 c0 a8 00 02 00 50 00 00 00 00 00 2a 00 00 00 2a 50 00 27 10 77 44 00 00 48 4f 47 45'
done
$as_echo "ofproto-dpif.at:2505: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2505: wait failed" >&5

    $as_echo "ofproto-dpif.at:2505" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2505"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2506: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:2506"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2506"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2506: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2506"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2506"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2506: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2506: wait failed" >&5

    $as_echo "ofproto-dpif.at:2506" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2506"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2508: strip_metadata < ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2508"
( $at_check_trace; strip_metadata < ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0xe total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:02:10,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=254,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7744
NXT_PACKET_IN (xid=0x0): cookie=0xe total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:02:10,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=254,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7744
NXT_PACKET_IN (xid=0x0): cookie=0xe total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:02:10,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=254,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7744
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2508"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2519: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:2519"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2519"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2528: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2528"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2528"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 '50 54 00 00 00 07 60 66 66 66 03 00 88 47 00 01 40 20 00 01 40 1f 00 01 41 1e 45 00 00 2c 00 00 00 00 ff 06 3b 78 c0 a8 00 01 c0 a8 00 02 00 50 00 00 00 00 00 2a 00 00 00 2a 50 00 27 10 77 44 00 00 48 4f 47 45'
done
$as_echo "ofproto-dpif.at:2533: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2533: wait failed" >&5

    $as_echo "ofproto-dpif.at:2533" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2533"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2534: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:2534"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2534"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2534: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2534"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2534"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2534: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2534: wait failed" >&5

    $as_echo "ofproto-dpif.at:2534" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2534"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2536: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2536"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0xe total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mplsm,vlan_tci=0x0000,dl_src=60:66:66:66:03:00,dl_dst=50:54:00:00:00:07,mpls_label=20,mpls_tc=0,mpls_ttl=30,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0xe total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mplsm,vlan_tci=0x0000,dl_src=60:66:66:66:03:00,dl_dst=50:54:00:00:00:07,mpls_label=20,mpls_tc=0,mpls_ttl=30,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0xe total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mplsm,vlan_tci=0x0000,dl_src=60:66:66:66:03:00,dl_dst=50:54:00:00:00:07,mpls_label=20,mpls_tc=0,mpls_ttl=30,mpls_bos=1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2536"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2547: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:2547"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2547"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2556: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2556"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2556"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 '50 54 00 00 00 07 60 66 66 66 03 01 88 48 00 01 40 20 00 01 40 1f 00 01 41 1e 45 00 00 2c 00 00 00 00 ff 06 3b 78 c0 a8 00 01 c0 a8 00 02 00 50 00 00 00 00 00 2a 00 00 00 2a 50 00 27 10 77 44 00 00 48 4f 47 45'
done
$as_echo "ofproto-dpif.at:2561: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2561: wait failed" >&5

    $as_echo "ofproto-dpif.at:2561" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2561"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2562: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:2562"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2562"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2562: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2562"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2562"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2562: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2562: wait failed" >&5

    $as_echo "ofproto-dpif.at:2562" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2562"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2564: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2564"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0xe total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=60:66:66:66:03:01,dl_dst=50:54:00:00:00:07,mpls_label=20,mpls_tc=0,mpls_ttl=29,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0xe total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=60:66:66:66:03:01,dl_dst=50:54:00:00:00:07,mpls_label=20,mpls_tc=0,mpls_ttl=29,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0xe total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=60:66:66:66:03:01,dl_dst=50:54:00:00:00:07,mpls_label=20,mpls_tc=0,mpls_ttl=29,mpls_bos=1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2564"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2575: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:2575"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2575"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2584: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2584"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2584"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 '50 54 00 00 00 07 60 66 66 66 03 10 88 47 00 01 40 20 00 01 40 1f 00 01 41 1e 45 00 00 2c 00 00 00 00 ff 06 3b 78 c0 a8 00 01 c0 a8 00 02 00 50 00 00 00 00 00 2a 00 00 00 2a 50 00 27 10 77 44 00 00 48 4f 47 45'
done
$as_echo "ofproto-dpif.at:2589: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2589: wait failed" >&5

    $as_echo "ofproto-dpif.at:2589" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2589"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2590: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:2590"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2590"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2590: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2590"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2590"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2590: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2590: wait failed" >&5

    $as_echo "ofproto-dpif.at:2590" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2590"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2592: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2592"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0xe total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mplsm,vlan_tci=0x0000,dl_src=60:66:66:66:03:10,dl_dst=50:54:00:00:00:07,mpls_label=20,mpls_tc=0,mpls_ttl=29,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0xe total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mplsm,vlan_tci=0x0000,dl_src=60:66:66:66:03:10,dl_dst=50:54:00:00:00:07,mpls_label=20,mpls_tc=0,mpls_ttl=29,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0xe total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mplsm,vlan_tci=0x0000,dl_src=60:66:66:66:03:10,dl_dst=50:54:00:00:00:07,mpls_label=20,mpls_tc=0,mpls_ttl=29,mpls_bos=1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2592"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2603: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:2603"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2603"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2610: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2610"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2610"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 '50 54 00 00 00 07 60 66 66 66 04 00 88 48 00 01 41 20 45 00 00 2c 00 00 00 00 ff 06 3a 78 c0 a8 00 01 c0 a8 00 02 00 50 00 00 00 00 00 2a 00 00 00 2a 50 00 27 10 77 44 00 00 48 4f 47 45'
done
$as_echo "ofproto-dpif.at:2615: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2615: wait failed" >&5

    $as_echo "ofproto-dpif.at:2615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2615"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2616: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:2616"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2616"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2616: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2616"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2616"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2616: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2616: wait failed" >&5

    $as_echo "ofproto-dpif.at:2616" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2616"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2618: strip_metadata < ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2618"
( $at_check_trace; strip_metadata < ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0xf total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=60:66:66:66:04:00,dl_dst=50:54:00:00:00:07,mpls_label=0,mpls_tc=0,mpls_ttl=255,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0xf total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=60:66:66:66:04:00,dl_dst=50:54:00:00:00:07,mpls_label=0,mpls_tc=0,mpls_ttl=255,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0xf total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=60:66:66:66:04:00,dl_dst=50:54:00:00:00:07,mpls_label=0,mpls_tc=0,mpls_ttl=255,mpls_bos=1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2618"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2629: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:2629"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2629"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2636: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2636"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2636"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 '50 54 00 00 00 07 60 66 66 66 04 01 88 47 00 01 41 20 45 00 00 2c 00 00 00 00 ff 06 3a 78 c0 a8 00 01 c0 a8 00 02 00 50 00 00 00 00 00 2a 00 00 00 2a 50 00 27 10 77 44 00 00 48 4f 47 45'
done
$as_echo "ofproto-dpif.at:2641: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2641: wait failed" >&5

    $as_echo "ofproto-dpif.at:2641" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2641"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2642: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:2642"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2642"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2642: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2642"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2642"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2642: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2642: wait failed" >&5

    $as_echo "ofproto-dpif.at:2642" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2642"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2644: strip_metadata < ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2644"
( $at_check_trace; strip_metadata < ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0xf total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mplsm,vlan_tci=0x0000,dl_src=60:66:66:66:04:01,dl_dst=50:54:00:00:00:07,mpls_label=0,mpls_tc=0,mpls_ttl=254,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0xf total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mplsm,vlan_tci=0x0000,dl_src=60:66:66:66:04:01,dl_dst=50:54:00:00:00:07,mpls_label=0,mpls_tc=0,mpls_ttl=254,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0xf total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mplsm,vlan_tci=0x0000,dl_src=60:66:66:66:04:01,dl_dst=50:54:00:00:00:07,mpls_label=0,mpls_tc=0,mpls_ttl=254,mpls_bos=1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2644"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2655: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:2655"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2655"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2662: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2662"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2662"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 '50 54 00 00 00 07 60 66 66 66 04 10 88 48 00 01 41 20 45 00 00 2c 00 00 00 00 ff 06 3a 78 c0 a8 00 01 c0 a8 00 02 00 50 00 00 00 00 00 2a 00 00 00 2a 50 00 27 10 77 44 00 00 48 4f 47 45'
done
$as_echo "ofproto-dpif.at:2667: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2667: wait failed" >&5

    $as_echo "ofproto-dpif.at:2667" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2667"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2668: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:2668"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2668"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2668: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2668"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2668"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2668: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2668: wait failed" >&5

    $as_echo "ofproto-dpif.at:2668" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2668"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2670: strip_metadata <  ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2670"
( $at_check_trace; strip_metadata <  ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0xf total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mplsm,vlan_tci=0x0000,dl_src=60:66:66:66:04:10,dl_dst=50:54:00:00:00:07,mpls_label=0,mpls_tc=0,mpls_ttl=253,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0xf total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mplsm,vlan_tci=0x0000,dl_src=60:66:66:66:04:10,dl_dst=50:54:00:00:00:07,mpls_label=0,mpls_tc=0,mpls_ttl=253,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0xf total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mplsm,vlan_tci=0x0000,dl_src=60:66:66:66:04:10,dl_dst=50:54:00:00:00:07,mpls_label=0,mpls_tc=0,mpls_ttl=253,mpls_bos=1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2670"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2681: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:2681"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2681"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2688: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2688"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2688"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 '50 54 00 00 00 07 60 66 66 66 05 00 88 47 00 01 41 20 45 00 00 2c 00 00 00 00 ff 06 3a 78 c0 a8 00 01 c0 a8 00 02 00 50 00 00 00 00 00 2a 00 00 00 2a 50 00 27 10 77 44 00 00 48 4f 47 45'
done

$as_echo "ofproto-dpif.at:2694: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2694: wait failed" >&5

    $as_echo "ofproto-dpif.at:2694" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2694"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2695: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:2695"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2695"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2695: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2695"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2695"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2695: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2695: wait failed" >&5

    $as_echo "ofproto-dpif.at:2695" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2695"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2697: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2697"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0x5 total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=60:66:66:66:05:00,dl_dst=50:54:00:00:00:07,mpls_label=20,mpls_tc=0,mpls_ttl=32,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0x5 total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=60:66:66:66:05:00,dl_dst=50:54:00:00:00:07,mpls_label=20,mpls_tc=0,mpls_ttl=32,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0x5 total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=60:66:66:66:05:00,dl_dst=50:54:00:00:00:07,mpls_label=20,mpls_tc=0,mpls_ttl=32,mpls_bos=1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2697"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2708: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:2708"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2708"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2715: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2715"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2715"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 '50 54 00 00 00 07 60 66 66 66 05 01 88 48 00 01 41 20 45 00 00 2c 00 00 00 00 ff 06 3a 78 c0 a8 00 01 c0 a8 00 02 00 50 00 00 00 00 00 2a 00 00 00 2a 50 00 27 10 77 44 00 00 48 4f 47 45'
done
$as_echo "ofproto-dpif.at:2720: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2720: wait failed" >&5

    $as_echo "ofproto-dpif.at:2720" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2720"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2721: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:2721"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2721"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2721: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2721"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2721"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2721: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2721: wait failed" >&5

    $as_echo "ofproto-dpif.at:2721" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2721"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2723: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2723"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0x5 total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mplsm,vlan_tci=0x0000,dl_src=60:66:66:66:05:01,dl_dst=50:54:00:00:00:07,mpls_label=20,mpls_tc=0,mpls_ttl=31,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0x5 total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mplsm,vlan_tci=0x0000,dl_src=60:66:66:66:05:01,dl_dst=50:54:00:00:00:07,mpls_label=20,mpls_tc=0,mpls_ttl=31,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0x5 total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mplsm,vlan_tci=0x0000,dl_src=60:66:66:66:05:01,dl_dst=50:54:00:00:00:07,mpls_label=20,mpls_tc=0,mpls_ttl=31,mpls_bos=1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2723"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2734: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:2734"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2734"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2741: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2741"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2741"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 '50 54 00 00 00 07 60 66 66 66 05 10 88 47 00 01 41 20 45 00 00 2c 00 00 00 00 ff 06 3a 78 c0 a8 00 01 c0 a8 00 02 00 50 00 00 00 00 00 2a 00 00 00 2a 50 00 27 10 77 44 00 00 48 4f 47 45'
done

$as_echo "ofproto-dpif.at:2747: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2747: wait failed" >&5

    $as_echo "ofproto-dpif.at:2747" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2747"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2748: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:2748"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2748"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2748: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2748"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2748"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2748: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2748: wait failed" >&5

    $as_echo "ofproto-dpif.at:2748" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2748"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2750: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2750"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0x5 total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=60:66:66:66:05:10,dl_dst=50:54:00:00:00:07,mpls_label=20,mpls_tc=0,mpls_ttl=31,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0x5 total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=60:66:66:66:05:10,dl_dst=50:54:00:00:00:07,mpls_label=20,mpls_tc=0,mpls_ttl=31,mpls_bos=1
NXT_PACKET_IN (xid=0x0): cookie=0x5 total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=60:66:66:66:05:10,dl_dst=50:54:00:00:00:07,mpls_label=20,mpls_tc=0,mpls_ttl=31,mpls_bos=1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2750"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2761: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:2761"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2761"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2762: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:2762"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x5, n_packets=3, n_bytes=186, dl_src=60:66:66:66:05:00 actions=push_mpls:0x8848,pop_mpls:0x8847,CONTROLLER:65535
 cookie=0x5, n_packets=3, n_bytes=186, dl_src=60:66:66:66:05:01 actions=push_mpls:0x8847,pop_mpls:0x8848,dec_mpls_ttl,CONTROLLER:65535
 cookie=0x5, n_packets=3, n_bytes=186, dl_src=60:66:66:66:05:10 actions=push_mpls:0x8848,dec_mpls_ttl,pop_mpls:0x8847,dec_mpls_ttl,CONTROLLER:65535
 cookie=0xa, n_packets=3, n_bytes=102, dl_src=40:44:44:44:44:45 actions=push_mpls:0x8847,load:0xa->OXM_OF_MPLS_LABEL[],load:0x3->OXM_OF_MPLS_TC[],dec_mpls_ttl,CONTROLLER:65535
 cookie=0xa, n_packets=3, n_bytes=102, dl_src=40:44:44:44:44:46 actions=push_mpls:0x8847,load:0xa->OXM_OF_MPLS_LABEL[],load:0x3->OXM_OF_MPLS_TC[],set_mpls_ttl(10),CONTROLLER:65535
 cookie=0xa, n_packets=3, n_bytes=102, dl_src=40:44:44:44:44:47 actions=push_mpls:0x8847,load:0xa->OXM_OF_MPLS_LABEL[],load:0x3->OXM_OF_MPLS_TC[],dec_mpls_ttl,set_mpls_ttl(10),CONTROLLER:65535
 cookie=0xa, n_packets=3, n_bytes=102, dl_src=40:44:44:44:44:48 actions=push_mpls:0x8847,load:0xa->OXM_OF_MPLS_LABEL[],load:0x3->OXM_OF_MPLS_TC[],set_mpls_ttl(10),dec_mpls_ttl,CONTROLLER:65535
 cookie=0xa, n_packets=3, n_bytes=102, dl_src=41:44:44:44:44:42 actions=push_mpls:0x8847,load:0xa->OXM_OF_MPLS_LABEL[],load:0x3->OXM_OF_MPLS_TC[],pop_mpls:0x0800,CONTROLLER:65535
 cookie=0xa, n_packets=3, n_bytes=114, dl_src=40:44:44:44:44:44 actions=push_mpls:0x8847,load:0xa->OXM_OF_MPLS_LABEL[],load:0x3->OXM_OF_MPLS_TC[],CONTROLLER:65535
 cookie=0xa, n_packets=3, n_bytes=126, dl_src=40:44:44:44:44:42 actions=push_mpls:0x8847,load:0xa->OXM_OF_MPLS_LABEL[],load:0x3->OXM_OF_MPLS_TC[],CONTROLLER:65535
 cookie=0xa, n_packets=3, n_bytes=54, dl_src=40:44:44:44:44:43 actions=push_mpls:0x8847,load:0xa->OXM_OF_MPLS_LABEL[],load:0x3->OXM_OF_MPLS_TC[],CONTROLLER:65535
 cookie=0xa, n_packets=3, n_bytes=54, mpls,dl_src=40:44:44:44:44:49 actions=push_mpls:0x8848,load:0xa->OXM_OF_MPLS_LABEL[],CONTROLLER:65535
 cookie=0xb, n_packets=3, n_bytes=54, mpls,dl_src=50:55:55:55:55:55 actions=load:0x3e8->OXM_OF_MPLS_LABEL[],CONTROLLER:65535
 cookie=0xc, n_packets=3, n_bytes=162, dl_src=70:77:77:77:77:77 actions=push_mpls:0x8848,load:0x3e8->OXM_OF_MPLS_LABEL[],load:0x7->OXM_OF_MPLS_TC[],CONTROLLER:65535
 cookie=0xd, n_packets=3, n_bytes=138, dl_src=60:66:66:66:00:08 actions=pop_mpls:0x0806,resubmit(1,1)
 cookie=0xd, n_packets=3, n_bytes=186, dl_src=60:66:66:66:00:01 actions=pop_mpls:0x0800,dec_ttl,CONTROLLER:65535
 cookie=0xd, n_packets=3, n_bytes=186, dl_src=60:66:66:66:00:02 actions=pop_mpls:0x0800,load:0xa000001->NXM_OF_IP_DST[],CONTROLLER:65535
 cookie=0xd, n_packets=3, n_bytes=186, dl_src=60:66:66:66:00:03 actions=pop_mpls:0x0800,move:NXM_OF_IP_DST[]->NXM_OF_IP_SRC[],CONTROLLER:65535
 cookie=0xd, n_packets=3, n_bytes=186, dl_src=60:66:66:66:00:04 actions=pop_mpls:0x0800,push:NXM_OF_IP_DST[],pop:NXM_OF_IP_SRC[],CONTROLLER:65535
 cookie=0xd, n_packets=3, n_bytes=186, dl_src=60:66:66:66:00:05 actions=pop_mpls:0x0800,multipath(eth_src,50,modulo_n,1,0,NXM_OF_IP_SRC[0..7]),CONTROLLER:65535
 cookie=0xd, n_packets=3, n_bytes=186, dl_src=60:66:66:66:00:06 actions=pop_mpls:0x0800,bundle_load(eth_src,50,hrw,ofport,NXM_OF_IP_SRC[0..15],slaves:1,2),CONTROLLER:65535
 cookie=0xd, n_packets=3, n_bytes=186, dl_src=60:66:66:66:00:07 actions=pop_mpls:0x0800,learn(table=1,hard_timeout=60,eth_type=0x800,nw_proto=6,NXM_OF_IP_SRC[]=NXM_OF_IP_DST[]),CONTROLLER:65535
 cookie=0xd, n_packets=3, n_bytes=186, dl_src=60:66:66:66:00:09 actions=resubmit(,2),CONTROLLER:65535
 cookie=0xd, n_packets=3, n_bytes=186, dl_src=60:66:66:66:00:0a actions=pop_mpls:0x0800,mod_nw_dst:10.0.0.1,CONTROLLER:65535
 cookie=0xd, n_packets=3, n_bytes=186, dl_src=60:66:66:66:00:0b actions=pop_mpls:0x0800,mod_nw_src:10.0.0.1,CONTROLLER:65535
 cookie=0xd, n_packets=3, n_bytes=186, dl_src=60:66:66:66:66:66 actions=pop_mpls:0x0800,CONTROLLER:65535
 cookie=0xd, n_packets=3, n_bytes=198, dl_src=60:66:66:66:01:00 actions=pop_mpls:0x8848,CONTROLLER:65535
 cookie=0xd, n_packets=3, n_bytes=198, dl_src=60:66:66:66:01:01 actions=pop_mpls:0x8847,dec_mpls_ttl,CONTROLLER:65535
 cookie=0xd, n_packets=3, n_bytes=198, dl_src=60:66:66:66:01:02 actions=pop_mpls:0x8848,load:0x3->OXM_OF_MPLS_TC[],CONTROLLER:65535
 cookie=0xd, n_packets=3, n_bytes=198, dl_src=60:66:66:66:02:00 actions=pop_mpls:0x8847,pop_mpls:0x0800,CONTROLLER:65535
 cookie=0xd, table=1, n_packets=3, n_bytes=126, arp actions=CONTROLLER:65535
 cookie=0xdeadbeef, table=2, n_packets=3, n_bytes=186, dl_src=60:66:66:66:00:09 actions=pop_mpls:0x0800,mod_nw_tos:48
 cookie=0xe, n_packets=3, n_bytes=198, dl_src=60:66:66:66:02:01 actions=pop_mpls:0x8848,pop_mpls:0x0800,dec_ttl,CONTROLLER:65535
 cookie=0xe, n_packets=3, n_bytes=198, dl_src=60:66:66:66:02:10 actions=pop_mpls:0x8847,dec_mpls_ttl,pop_mpls:0x0800,dec_ttl,CONTROLLER:65535
 cookie=0xe, n_packets=3, n_bytes=210, dl_src=60:66:66:66:03:00 actions=pop_mpls:0x8848,pop_mpls:0x8848,CONTROLLER:65535
 cookie=0xe, n_packets=3, n_bytes=210, dl_src=60:66:66:66:03:01 actions=pop_mpls:0x8847,pop_mpls:0x8847,dec_mpls_ttl,CONTROLLER:65535
 cookie=0xe, n_packets=3, n_bytes=210, dl_src=60:66:66:66:03:10 actions=pop_mpls:0x8848,dec_mpls_ttl,pop_mpls:0x8848,dec_mpls_ttl,CONTROLLER:65535
 cookie=0xf, n_packets=3, n_bytes=186, dl_src=60:66:66:66:04:00 actions=pop_mpls:0x0800,push_mpls:0x8847,CONTROLLER:65535
 cookie=0xf, n_packets=3, n_bytes=186, dl_src=60:66:66:66:04:01 actions=pop_mpls:0x0800,push_mpls:0x8848,dec_mpls_ttl,CONTROLLER:65535
 cookie=0xf, n_packets=3, n_bytes=186, dl_src=60:66:66:66:04:10 actions=pop_mpls:0x0800,dec_ttl,push_mpls:0x8848,dec_mpls_ttl,CONTROLLER:65535
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2762"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2806: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:2806"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2806"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2806: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:2806"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2806"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2806: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:2806"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2806"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2806: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2806: wait failed" >&5

    $as_echo "ofproto-dpif.at:2806" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2806"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2806: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:2806"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2806"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2806: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2806"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2806"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2806: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2806: wait failed" >&5

    $as_echo "ofproto-dpif.at:2806" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2806"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1082
#AT_START_1083
at_fn_group_banner 1083 'ofproto-dpif.at:2809' \
  "ofproto-dpif - MPLS handling with goto_table" "   " 55
at_xfail=no
(
  $as_echo "1083. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2810: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:2810"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2810"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2810: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:2810"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2810"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2810: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:2810"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2810"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2810: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:2810"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2810"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2810: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:2810"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2810"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2810: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:2810"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2810"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2810: add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy
 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:2810"
( $at_check_trace; add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2810"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


on_exit 'kill `cat ovs-ofctl.pid`'


cat >flows.txt <<'_ATEOF'
table=0 mplsm actions=pop_mpls:0x800,goto_table(1)
table=1 ip,ip_dscp=8 actions=controller
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2820: ovs-ofctl -O OpenFlow12 add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:2820"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2820"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2828: ovs-ofctl -O OpenFlow12 monitor br0 65534 -P standard --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2828"
( $at_check_trace; ovs-ofctl -O OpenFlow12 monitor br0 65534 -P standard --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2828"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 '50 54 00 00 00 01 60 66 66 66 00 08 88 48 00 01 41 20 45 20 00 2c 00 00 00 00 ff 06 3a 78 c0 a8 00 01 c0 a8 00 02 00 50 00 00 00 00 00 2a 00 00 00 2a 50 00 27 10 77 44 00 00 48 4f 47 45'
done
$as_echo "ofproto-dpif.at:2833: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2833: wait failed" >&5

    $as_echo "ofproto-dpif.at:2833" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2833"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2834: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:2834"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2834"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2834: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2834"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2834"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2834: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2834: wait failed" >&5

    $as_echo "ofproto-dpif.at:2834" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2834"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2836: strip_metadata < ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2836"
( $at_check_trace; strip_metadata < ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (OF1.2) (xid=0x0): table_id=1 total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:00:08,dl_dst=50:54:00:00:00:01,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=32,nw_ecn=0,nw_ttl=255,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7744
OFPT_PACKET_IN (OF1.2) (xid=0x0): table_id=1 total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:00:08,dl_dst=50:54:00:00:00:01,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=32,nw_ecn=0,nw_ttl=255,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7744
OFPT_PACKET_IN (OF1.2) (xid=0x0): table_id=1 total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:00:08,dl_dst=50:54:00:00:00:01,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=32,nw_ecn=0,nw_ttl=255,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7744
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2836"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2847: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:2847"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2847"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2848: ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:2848"
( $at_check_trace; ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " n_packets=3, n_bytes=186, mplsm actions=pop_mpls:0x0800,goto_table:1
 table=1, n_packets=3, n_bytes=174, ip,nw_tos=32 actions=CONTROLLER:65535
OFPST_FLOW reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2848"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2854: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:2854"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2854"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2854: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:2854"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2854"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2854: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:2854"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2854"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2854: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2854: wait failed" >&5

    $as_echo "ofproto-dpif.at:2854" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2854"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2854: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:2854"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2854"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2854: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2854"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2854"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2854: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2854: wait failed" >&5

    $as_echo "ofproto-dpif.at:2854" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2854"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1083
#AT_START_1084
at_fn_group_banner 1084 'ofproto-dpif.at:2857' \
  "ofproto-dpif - MPLS handling with write_actions" "" 55
at_xfail=no
(
  $as_echo "1084. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2858: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:2858"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2858"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2858: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:2858"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2858"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2858: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:2858"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2858"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2858: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:2858"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2858"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2858: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:2858"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2858"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2858: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:2858"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2858"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2858: add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy
 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:2858"
( $at_check_trace; add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2858"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


on_exit 'kill `cat ovs-ofctl.pid`'


cat >flows.txt <<'_ATEOF'
mplsm actions=pop_mpls:0x800,write_actions(dec_ttl,controller)
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2870: ovs-ofctl -O OpenFlow12 add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:2870"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2870"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2877: ovs-ofctl -O OpenFlow12 monitor br0 65534 -P standard --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2877"
( $at_check_trace; ovs-ofctl -O OpenFlow12 monitor br0 65534 -P standard --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2877"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 '50 54 00 00 00 01 60 66 66 66 00 08 88 48 00 01 41 20 45 20 00 2c 00 00 00 00 ff 06 3a 78 c0 a8 00 01 c0 a8 00 02 00 50 00 00 00 00 00 2a 00 00 00 2a 50 00 27 10 77 44 00 00 48 4f 47 45'
done
$as_echo "ofproto-dpif.at:2882: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2882: wait failed" >&5

    $as_echo "ofproto-dpif.at:2882" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2882"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2883: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:2883"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2883"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2883: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2883"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2883"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2883: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2883: wait failed" >&5

    $as_echo "ofproto-dpif.at:2883" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2883"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2885: strip_metadata < ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2885"
( $at_check_trace; strip_metadata < ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (OF1.2) (xid=0x0): total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:00:08,dl_dst=50:54:00:00:00:01,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=32,nw_ecn=0,nw_ttl=254,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7744
OFPT_PACKET_IN (OF1.2) (xid=0x0): total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:00:08,dl_dst=50:54:00:00:00:01,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=32,nw_ecn=0,nw_ttl=254,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7744
OFPT_PACKET_IN (OF1.2) (xid=0x0): total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=60:66:66:66:00:08,dl_dst=50:54:00:00:00:01,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=32,nw_ecn=0,nw_ttl=254,tp_src=80,tp_dst=0,tcp_flags=0 tcp_csum:7744
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2885"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2896: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:2896"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2896"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2897: ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:2897"
( $at_check_trace; ovs-ofctl -O OpenFlow12 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " n_packets=3, n_bytes=186, mplsm actions=pop_mpls:0x0800,write_actions(dec_ttl,CONTROLLER:65535)
OFPST_FLOW reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2897"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2902: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:2902"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2902"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2902: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:2902"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2902"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2902: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:2902"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2902"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2902: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2902: wait failed" >&5

    $as_echo "ofproto-dpif.at:2902" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2902"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2902: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:2902"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2902"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2902: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2902"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2902"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2902: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2902: wait failed" >&5

    $as_echo "ofproto-dpif.at:2902" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2902"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1084
#AT_START_1085
at_fn_group_banner 1085 'ofproto-dpif.at:2905' \
  "ofproto-dpif - table-miss flow (OpenFlow 1.0)" "  " 55
at_xfail=no
(
  $as_echo "1085. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2906: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:2906"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2906"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2906: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:2906"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2906"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2906: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:2906"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2906"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2906: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:2906"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2906"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2906: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:2906"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2906"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2906: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:2906"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2906"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2906: add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy
 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:2906"
( $at_check_trace; add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2906"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


on_exit 'kill `cat ovs-ofctl.pid`'


# A table-miss flow has priority 0 and no match
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2913: ovs-ofctl --protocols=OpenFlow10 add-flow br0 'priority=0 actions=output:CONTROLLER'"
at_fn_check_prepare_trace "ofproto-dpif.at:2913"
( $at_check_trace; ovs-ofctl --protocols=OpenFlow10 add-flow br0 'priority=0 actions=output:CONTROLLER'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2913"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2916: ovs-ofctl monitor -P standard --protocols=OpenFlow10 br0 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2916"
( $at_check_trace; ovs-ofctl monitor -P standard --protocols=OpenFlow10 br0 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2916"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3 ; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=10:11:11:11:11:11,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=10),tcp_flags(0x002)'
done
$as_echo "ofproto-dpif.at:2921: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2921: wait failed" >&5

    $as_echo "ofproto-dpif.at:2921" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2921"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2922: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:2922"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2922"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2922: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2922"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2922"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2922: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2922: wait failed" >&5

    $as_echo "ofproto-dpif.at:2922" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2922"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2924: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2924"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (xid=0x0): total_len=54 in_port=1 (via action) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn tcp_csum:2e7d
OFPT_PACKET_IN (xid=0x0): total_len=54 in_port=1 (via action) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn tcp_csum:2e7d
OFPT_PACKET_IN (xid=0x0): total_len=54 in_port=1 (via action) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn tcp_csum:2e7d
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2924"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2935: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:2935"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2935"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2936: ovs-ofctl --protocols=OpenFlow10 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:2936"
( $at_check_trace; ovs-ofctl --protocols=OpenFlow10 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " n_packets=3, n_bytes=162, priority=0 actions=CONTROLLER:65535
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2936"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2941: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:2941"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2941"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2941: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:2941"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2941"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2941: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:2941"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2941"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2941: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2941: wait failed" >&5

    $as_echo "ofproto-dpif.at:2941" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2941"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2941: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:2941"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2941"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2941: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2941"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2941"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2941: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2941: wait failed" >&5

    $as_echo "ofproto-dpif.at:2941" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2941"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1085
#AT_START_1086
at_fn_group_banner 1086 'ofproto-dpif.at:2945' \
  "ofproto-dpif - table-miss flow (OpenFlow 1.3)" "  " 55
at_xfail=no
(
  $as_echo "1086. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2946: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:2946"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2946"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2946: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:2946"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2946"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2946: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:2946"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2946"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2946: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:2946"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2946"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2946: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:2946"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2946"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2946: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:2946"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2946"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2946: add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy
 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:2946"
( $at_check_trace; add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2946"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


on_exit 'kill `cat ovs-ofctl.pid`'


# A table-miss flow has priority 0 and no match
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2953: ovs-ofctl --protocols=OpenFlow13 add-flow br0 'priority=0 actions=output:CONTROLLER'"
at_fn_check_prepare_trace "ofproto-dpif.at:2953"
( $at_check_trace; ovs-ofctl --protocols=OpenFlow13 add-flow br0 'priority=0 actions=output:CONTROLLER'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2953"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2956: ovs-ofctl monitor -P standard --protocols=OpenFlow13 br0 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2956"
( $at_check_trace; ovs-ofctl monitor -P standard --protocols=OpenFlow13 br0 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2956"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3 ; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=10:11:11:11:11:11,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=10),tcp_flags(0x002)'
done
$as_echo "ofproto-dpif.at:2961: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2961: wait failed" >&5

    $as_echo "ofproto-dpif.at:2961" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2961"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2962: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:2962"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2962"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2962: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2962"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2962"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2962: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2962: wait failed" >&5

    $as_echo "ofproto-dpif.at:2962" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2962"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2964: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:2964"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2964"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2966: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2966"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (OF1.3) (xid=0x0): cookie=0x0 total_len=54 in_port=1 (via no_match) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn tcp_csum:2e7d
OFPT_PACKET_IN (OF1.3) (xid=0x0): cookie=0x0 total_len=54 in_port=1 (via no_match) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn tcp_csum:2e7d
OFPT_PACKET_IN (OF1.3) (xid=0x0): cookie=0x0 total_len=54 in_port=1 (via no_match) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn tcp_csum:2e7d
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2966"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2977: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:2977"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2977"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2978: ovs-ofctl --protocols=OpenFlow13 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:2978"
( $at_check_trace; ovs-ofctl --protocols=OpenFlow13 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " n_packets=3, n_bytes=162, priority=0 actions=CONTROLLER:65535
OFPST_FLOW reply (OF1.3):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2978"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2983: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:2983"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2983"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2983: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:2983"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2983"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2983: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:2983"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2983"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2983: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2983: wait failed" >&5

    $as_echo "ofproto-dpif.at:2983" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2983"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2983: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:2983"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2983"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2983: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:2983"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2983"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:2983: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:2983: wait failed" >&5

    $as_echo "ofproto-dpif.at:2983" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:2983"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1086
#AT_START_1087
at_fn_group_banner 1087 'ofproto-dpif.at:2986' \
  "ofproto-dpif - table-miss flow with async config (OpenFlow 1.3)" "" 55
at_xfail=no
(
  $as_echo "1087. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2987: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:2987"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2987"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2987: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:2987"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2987"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2987: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:2987"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2987"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2987: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:2987"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2987"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2987: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:2987"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2987"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2987: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:2987"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2987"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2987: add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy
 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:2987"
( $at_check_trace; add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2987"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


on_exit 'kill `cat ovs-ofctl.pid`'

ovs-appctl time/stop


# A table-miss flow has priority 0 and no match
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2996: ovs-ofctl --protocols=OpenFlow13 add-flow br0 'priority=0 actions=output:CONTROLLER'"
at_fn_check_prepare_trace "ofproto-dpif.at:2996"
( $at_check_trace; ovs-ofctl --protocols=OpenFlow13 add-flow br0 'priority=0 actions=output:CONTROLLER'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2996"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:2999: ovs-ofctl monitor -P standard --protocols=OpenFlow13 br0 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:2999"
( $at_check_trace; ovs-ofctl monitor -P standard --protocols=OpenFlow13 br0 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:2999"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


# Become slave (OF 1.3), which should disable everything except port status.
ovs-appctl -t ovs-ofctl ofctl/send 041800180000000200000003000000000000000000000001

# Ensure that ovs-vswitchd gets a chance to reply before sending another command.
ovs-appctl time/warp 500 100

# Use OF 1.3 OFPT_SET_ASYNC to enable OFPR_NO_MATCH for slave only.
ovs-appctl -t ovs-ofctl ofctl/send 041c002000000002000000000000000100000000000000000000000000000000

ovs-appctl time/warp 500 100
for i in 1 2 3 ; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=10:11:11:11:11:11,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=10),tcp_flags(0x002)'
done
$as_echo "ofproto-dpif.at:3014: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3014: wait failed" >&5

    $as_echo "ofproto-dpif.at:3014" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3014"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3015: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:3015"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3015"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3015: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:3015"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3015"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:3015: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3015: wait failed" >&5

    $as_echo "ofproto-dpif.at:3015" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3015"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3017: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:3017"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3017"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3018: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:3018"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "send: OFPT_ROLE_REQUEST (OF1.3) (xid=0x2): role=slave generation_id=1
OFPT_ROLE_REPLY (OF1.3) (xid=0x2): role=slave generation_id=1
send: OFPT_SET_ASYNC (OF1.3) (xid=0x2):
 master:
       PACKET_IN: (off)
     PORT_STATUS: (off)
    FLOW_REMOVED: (off)
     ROLE_STATUS: (off)
    TABLE_STATUS: (off)
  REQUESTFORWARD: (off)

 slave:
       PACKET_IN: no_match
     PORT_STATUS: (off)
    FLOW_REMOVED: (off)
     ROLE_STATUS: (off)
    TABLE_STATUS: (off)
  REQUESTFORWARD: (off)
OFPT_PACKET_IN (OF1.3) (xid=0x0): cookie=0x0 total_len=54 in_port=1 (via no_match) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn tcp_csum:2e7d
OFPT_PACKET_IN (OF1.3) (xid=0x0): cookie=0x0 total_len=54 in_port=1 (via no_match) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn tcp_csum:2e7d
OFPT_PACKET_IN (OF1.3) (xid=0x0): cookie=0x0 total_len=54 in_port=1 (via no_match) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn tcp_csum:2e7d
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3018"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3049: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:3049"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3049"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3051: ovs-ofctl --protocols=OpenFlow13 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:3051"
( $at_check_trace; ovs-ofctl --protocols=OpenFlow13 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " n_packets=3, n_bytes=162, priority=0 actions=CONTROLLER:65535
OFPST_FLOW reply (OF1.3):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3051"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3056: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:3056"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3056"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3056: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:3056"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3056"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3056: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:3056"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3056"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:3056: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3056: wait failed" >&5

    $as_echo "ofproto-dpif.at:3056" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3056"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3056: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:3056"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3056"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3056: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:3056"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3056"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:3056: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3056: wait failed" >&5

    $as_echo "ofproto-dpif.at:3056" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3056"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1087
#AT_START_1088
at_fn_group_banner 1088 'ofproto-dpif.at:3060' \
  "ofproto-dpif - table-miss flow (OpenFlow 1.4)" "  " 55
at_xfail=no
(
  $as_echo "1088. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3061: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:3061"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3061"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3061: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:3061"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3061"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3061: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:3061"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3061"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3061: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:3061"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3061"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3061: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:3061"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3061"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3061: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:3061"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3061"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3061: add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy
 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:3061"
( $at_check_trace; add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3061"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


on_exit 'kill `cat ovs-ofctl.pid`'


# A table-miss flow has priority 0 and no match
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3068: ovs-ofctl --protocols=OpenFlow14 add-flow br0 'priority=0 actions=output:CONTROLLER'"
at_fn_check_prepare_trace "ofproto-dpif.at:3068"
( $at_check_trace; ovs-ofctl --protocols=OpenFlow14 add-flow br0 'priority=0 actions=output:CONTROLLER'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3068"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3071: ovs-ofctl monitor -P standard --protocols=OpenFlow14 br0 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:3071"
( $at_check_trace; ovs-ofctl monitor -P standard --protocols=OpenFlow14 br0 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3071"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3 ; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=10:11:11:11:11:11,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=10),tcp_flags(0x002)'
done
$as_echo "ofproto-dpif.at:3076: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3076: wait failed" >&5

    $as_echo "ofproto-dpif.at:3076" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3076"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3077: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:3077"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3077"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3077: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:3077"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3077"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:3077: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3077: wait failed" >&5

    $as_echo "ofproto-dpif.at:3077" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3077"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3079: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:3079"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3079"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3080: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:3080"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (OF1.4) (xid=0x0): cookie=0x0 total_len=54 in_port=1 (via no_match) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn tcp_csum:2e7d
OFPT_PACKET_IN (OF1.4) (xid=0x0): cookie=0x0 total_len=54 in_port=1 (via no_match) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn tcp_csum:2e7d
OFPT_PACKET_IN (OF1.4) (xid=0x0): cookie=0x0 total_len=54 in_port=1 (via no_match) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn tcp_csum:2e7d
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3080"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3091: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:3091"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3091"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3093: ovs-ofctl --protocols=OpenFlow14 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:3093"
( $at_check_trace; ovs-ofctl --protocols=OpenFlow14 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " n_packets=3, n_bytes=162, priority=0 actions=CONTROLLER:65535
OFPST_FLOW reply (OF1.4):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3093"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3098: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:3098"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3098"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3098: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:3098"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3098"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3098: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:3098"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3098"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:3098: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3098: wait failed" >&5

    $as_echo "ofproto-dpif.at:3098" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3098"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3098: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:3098"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3098"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3098: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:3098"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3098"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:3098: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3098: wait failed" >&5

    $as_echo "ofproto-dpif.at:3098" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3098"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1088
#AT_START_1089
at_fn_group_banner 1089 'ofproto-dpif.at:3102' \
  "ofproto-dpif - packet-in reasons (Openflow 1.3)" "" 55
at_xfail=no
(
  $as_echo "1089. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3103: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:3103"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3103"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3103: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:3103"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3103"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3103: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:3103"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3103"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3103: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:3103"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3103"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3103: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:3103"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3103"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3103: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:3103"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3103"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3103: add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy
 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:3103"
( $at_check_trace; add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3103"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


on_exit 'kill `cat ovs-ofctl.pid`'


cat >flows.txt <<'_ATEOF'
table=0 in_port=1 actions=write_actions(output(CONTROLLER)),goto_table(1)
table=1 actions=output(CONTROLLER),goto_table(2)
table=2 actions=group:1234
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3114: ovs-ofctl --protocols=OpenFlow13 add-group br0 'group_id=1234,type=all,bucket=output:10,bucket=output:CONTROLLER'"
at_fn_check_prepare_trace "ofproto-dpif.at:3114"
( $at_check_trace; ovs-ofctl --protocols=OpenFlow13 add-group br0 'group_id=1234,type=all,bucket=output:10,bucket=output:CONTROLLER'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3114"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3115: ovs-ofctl --protocols=OpenFlow13 add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:3115"
( $at_check_trace; ovs-ofctl --protocols=OpenFlow13 add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3115"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3118: ovs-ofctl monitor -P standard --protocols=OpenFlow13 br0 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:3118"
( $at_check_trace; ovs-ofctl monitor -P standard --protocols=OpenFlow13 br0 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3118"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3 ; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=10:11:11:11:11:11,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=10),tcp_flags(0x002)'
done
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3123: ovs-ofctl packet-out br0 'in_port=NONE, packet=505400000007101111111111080045000028000000004006f97cc0a80001c0a800020008000a0000000000000000500200002e7d0000, actions=controller'"
at_fn_check_prepare_trace "ofproto-dpif.at:3123"
( $at_check_trace; ovs-ofctl packet-out br0 'in_port=NONE, packet=505400000007101111111111080045000028000000004006f97cc0a80001c0a800020008000a0000000000000000500200002e7d0000, actions=controller'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3123"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

$as_echo "ofproto-dpif.at:3124: waiting until test \`wc -l < ofctl_monitor.log\` -ge 7..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 7
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3124: wait failed" >&5

    $as_echo "ofproto-dpif.at:3124" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3124"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3125: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:3125"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3125"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3125: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:3125"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3125"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:3125: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3125: wait failed" >&5

    $as_echo "ofproto-dpif.at:3125" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3125"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3127: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:3127"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3127"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3129: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:3129"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (OF1.3) (xid=0x0): table_id=1 cookie=0x0 total_len=54 in_port=1 (via action) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn tcp_csum:2e7d
OFPT_PACKET_IN (OF1.3) (xid=0x0): table_id=2 cookie=0x0 total_len=54 in_port=1 (via action) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn tcp_csum:2e7d
OFPT_PACKET_IN (OF1.3) (xid=0x0): cookie=0x0 total_len=54 in_port=1 (via action) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn tcp_csum:2e7d
OFPT_PACKET_IN (OF1.3) (xid=0x0): table_id=1 cookie=0x0 total_len=54 in_port=1 (via action) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn tcp_csum:2e7d
OFPT_PACKET_IN (OF1.3) (xid=0x0): table_id=2 cookie=0x0 total_len=54 in_port=1 (via action) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn tcp_csum:2e7d
OFPT_PACKET_IN (OF1.3) (xid=0x0): cookie=0x0 total_len=54 in_port=1 (via action) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn tcp_csum:2e7d
OFPT_PACKET_IN (OF1.3) (xid=0x0): table_id=1 cookie=0x0 total_len=54 in_port=1 (via action) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn tcp_csum:2e7d
OFPT_PACKET_IN (OF1.3) (xid=0x0): table_id=2 cookie=0x0 total_len=54 in_port=1 (via action) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn tcp_csum:2e7d
OFPT_PACKET_IN (OF1.3) (xid=0x0): cookie=0x0 total_len=54 in_port=1 (via action) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn tcp_csum:2e7d
OFPT_PACKET_IN (OF1.3) (xid=0x0): total_len=54 in_port=ANY (via action) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn tcp_csum:2e7d
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3129"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3161: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:3161"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3161"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3163: ovs-ofctl --protocols=OpenFlow13 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:3163"
( $at_check_trace; ovs-ofctl --protocols=OpenFlow13 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " n_packets=3, n_bytes=162, in_port=1 actions=write_actions(CONTROLLER:65535),goto_table:1
 table=1, n_packets=3, n_bytes=162, actions=CONTROLLER:65535,goto_table:2
 table=2, n_packets=3, n_bytes=162, actions=group:1234
OFPST_FLOW reply (OF1.3):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3163"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3170: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:3170"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3170"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3170: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:3170"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3170"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3170: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:3170"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3170"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:3170: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3170: wait failed" >&5

    $as_echo "ofproto-dpif.at:3170" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3170"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3170: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:3170"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3170"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3170: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:3170"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3170"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:3170: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3170: wait failed" >&5

    $as_echo "ofproto-dpif.at:3170" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3170"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1089
#AT_START_1090
at_fn_group_banner 1090 'ofproto-dpif.at:3174' \
  "ofproto-dpif - packet-in reasons (Openflow 1.4)" "" 55
at_xfail=no
(
  $as_echo "1090. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3175: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:3175"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3175"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3175: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:3175"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3175"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3175: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:3175"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3175"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3175: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:3175"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3175"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3175: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:3175"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3175"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3175: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:3175"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3175"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3175: add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy
 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:3175"
( $at_check_trace; add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3175"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


on_exit 'kill `cat ovs-ofctl.pid`'


cat >flows.txt <<'_ATEOF'
table=0 in_port=1 actions=write_actions(output(CONTROLLER)),goto_table(1)
table=1 actions=output(CONTROLLER),goto_table(2)
table=2 actions=group:1234
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3186: ovs-ofctl --protocols=OpenFlow14 add-group br0 'group_id=1234,type=all,bucket=output:10,bucket=output:CONTROLLER'"
at_fn_check_prepare_trace "ofproto-dpif.at:3186"
( $at_check_trace; ovs-ofctl --protocols=OpenFlow14 add-group br0 'group_id=1234,type=all,bucket=output:10,bucket=output:CONTROLLER'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3186"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3187: ovs-ofctl --protocols=OpenFlow14 add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:3187"
( $at_check_trace; ovs-ofctl --protocols=OpenFlow14 add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3187"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3190: ovs-ofctl monitor -P standard --protocols=OpenFlow14 br0 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:3190"
( $at_check_trace; ovs-ofctl monitor -P standard --protocols=OpenFlow14 br0 65534 --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3190"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3 ; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=10:11:11:11:11:11,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=10),tcp_flags(0x002)'
done
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3195: ovs-ofctl packet-out br0 'in_port=NONE, packet=505400000007101111111111080045000028000000004006f97cc0a80001c0a800020008000a0000000000000000500200002e7d0000, actions=controller'"
at_fn_check_prepare_trace "ofproto-dpif.at:3195"
( $at_check_trace; ovs-ofctl packet-out br0 'in_port=NONE, packet=505400000007101111111111080045000028000000004006f97cc0a80001c0a800020008000a0000000000000000500200002e7d0000, actions=controller'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3195"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

$as_echo "ofproto-dpif.at:3196: waiting until test \`wc -l < ofctl_monitor.log\` -ge 7..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 7
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3196: wait failed" >&5

    $as_echo "ofproto-dpif.at:3196" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3196"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3197: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:3197"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3197"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3197: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:3197"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3197"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:3197: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3197: wait failed" >&5

    $as_echo "ofproto-dpif.at:3197" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3197"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3199: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:3199"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3199"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3201: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:3201"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (OF1.4) (xid=0x0): table_id=1 cookie=0x0 total_len=54 in_port=1 (via action) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn tcp_csum:2e7d
OFPT_PACKET_IN (OF1.4) (xid=0x0): table_id=2 cookie=0x0 total_len=54 in_port=1 (via group) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn tcp_csum:2e7d
OFPT_PACKET_IN (OF1.4) (xid=0x0): cookie=0x0 total_len=54 in_port=1 (via action_set) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn tcp_csum:2e7d
OFPT_PACKET_IN (OF1.4) (xid=0x0): table_id=1 cookie=0x0 total_len=54 in_port=1 (via action) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn tcp_csum:2e7d
OFPT_PACKET_IN (OF1.4) (xid=0x0): table_id=2 cookie=0x0 total_len=54 in_port=1 (via group) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn tcp_csum:2e7d
OFPT_PACKET_IN (OF1.4) (xid=0x0): cookie=0x0 total_len=54 in_port=1 (via action_set) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn tcp_csum:2e7d
OFPT_PACKET_IN (OF1.4) (xid=0x0): table_id=1 cookie=0x0 total_len=54 in_port=1 (via action) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn tcp_csum:2e7d
OFPT_PACKET_IN (OF1.4) (xid=0x0): table_id=2 cookie=0x0 total_len=54 in_port=1 (via group) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn tcp_csum:2e7d
OFPT_PACKET_IN (OF1.4) (xid=0x0): cookie=0x0 total_len=54 in_port=1 (via action_set) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn tcp_csum:2e7d
OFPT_PACKET_IN (OF1.4) (xid=0x0): total_len=54 in_port=ANY (via packet_out) data_len=54 (unbuffered)
tcp,vlan_tci=0x0000,dl_src=10:11:11:11:11:11,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=8,tp_dst=10,tcp_flags=syn tcp_csum:2e7d
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3201"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3233: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:3233"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3233"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3235: ovs-ofctl --protocols=OpenFlow14 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:3235"
( $at_check_trace; ovs-ofctl --protocols=OpenFlow14 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " n_packets=3, n_bytes=162, in_port=1 actions=write_actions(CONTROLLER:65535),goto_table:1
 table=1, n_packets=3, n_bytes=162, actions=CONTROLLER:65535,goto_table:2
 table=2, n_packets=3, n_bytes=162, actions=group:1234
OFPST_FLOW reply (OF1.4):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3235"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3242: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:3242"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3242"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3242: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:3242"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3242"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3242: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:3242"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3242"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:3242: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3242: wait failed" >&5

    $as_echo "ofproto-dpif.at:3242" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3242"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3242: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:3242"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3242"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3242: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:3242"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3242"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:3242: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3242: wait failed" >&5

    $as_echo "ofproto-dpif.at:3242" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3242"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1090
#AT_START_1091
at_fn_group_banner 1091 'ofproto-dpif.at:3246' \
  "ofproto-dpif - ARP modification slow-path" "      " 55
at_xfail=no
(
  $as_echo "1091. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3247: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:3247"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3247"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3247: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:3247"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3247"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3247: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:3247"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3247"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3247: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:3247"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3247"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3247: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:3247"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3247"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3247: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:3247"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3247"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3247: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:3247"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3247"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2

ovs-vsctl -- set Interface p2 type=dummy options:pcap=p2.pcap
ovs-ofctl add-flow br0 'in_port=1,arp actions=load:2->OXM_OF_ARP_OP[],2,load:0xc0a88001->OXM_OF_ARP_SPA[],2,load:0x404444444441->OXM_OF_ARP_THA[],2'

# Input some packets that should follow the arp modification slow-path.
for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=80:88:88:88:88:88,dst=ff:ff:ff:ff:ff:ff),eth_type(0x0806),arp(sip=192.168.0.1,tip=192.168.0.2,op=1,sha=50:54:00:00:00:05,tha=00:00:00:00:00:00)'
done
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3257: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "ofproto-dpif.at:3257"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3257"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Check the packets that were output.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3260: ovs-ofctl parse-pcap p2.pcap"
at_fn_check_prepare_trace "ofproto-dpif.at:3260"
( $at_check_trace; ovs-ofctl parse-pcap p2.pcap
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "arp,in_port=ANY,vlan_tci=0x0000,dl_src=80:88:88:88:88:88,dl_dst=ff:ff:ff:ff:ff:ff,arp_spa=192.168.0.1,arp_tpa=192.168.0.2,arp_op=2,arp_sha=50:54:00:00:00:05,arp_tha=00:00:00:00:00:00
arp,in_port=ANY,vlan_tci=0x0000,dl_src=80:88:88:88:88:88,dl_dst=ff:ff:ff:ff:ff:ff,arp_spa=192.168.128.1,arp_tpa=192.168.0.2,arp_op=2,arp_sha=50:54:00:00:00:05,arp_tha=00:00:00:00:00:00
arp,in_port=ANY,vlan_tci=0x0000,dl_src=80:88:88:88:88:88,dl_dst=ff:ff:ff:ff:ff:ff,arp_spa=192.168.128.1,arp_tpa=192.168.0.2,arp_op=2,arp_sha=50:54:00:00:00:05,arp_tha=40:44:44:44:44:41
arp,in_port=ANY,vlan_tci=0x0000,dl_src=80:88:88:88:88:88,dl_dst=ff:ff:ff:ff:ff:ff,arp_spa=192.168.0.1,arp_tpa=192.168.0.2,arp_op=2,arp_sha=50:54:00:00:00:05,arp_tha=00:00:00:00:00:00
arp,in_port=ANY,vlan_tci=0x0000,dl_src=80:88:88:88:88:88,dl_dst=ff:ff:ff:ff:ff:ff,arp_spa=192.168.128.1,arp_tpa=192.168.0.2,arp_op=2,arp_sha=50:54:00:00:00:05,arp_tha=00:00:00:00:00:00
arp,in_port=ANY,vlan_tci=0x0000,dl_src=80:88:88:88:88:88,dl_dst=ff:ff:ff:ff:ff:ff,arp_spa=192.168.128.1,arp_tpa=192.168.0.2,arp_op=2,arp_sha=50:54:00:00:00:05,arp_tha=40:44:44:44:44:41
arp,in_port=ANY,vlan_tci=0x0000,dl_src=80:88:88:88:88:88,dl_dst=ff:ff:ff:ff:ff:ff,arp_spa=192.168.0.1,arp_tpa=192.168.0.2,arp_op=2,arp_sha=50:54:00:00:00:05,arp_tha=00:00:00:00:00:00
arp,in_port=ANY,vlan_tci=0x0000,dl_src=80:88:88:88:88:88,dl_dst=ff:ff:ff:ff:ff:ff,arp_spa=192.168.128.1,arp_tpa=192.168.0.2,arp_op=2,arp_sha=50:54:00:00:00:05,arp_tha=00:00:00:00:00:00
arp,in_port=ANY,vlan_tci=0x0000,dl_src=80:88:88:88:88:88,dl_dst=ff:ff:ff:ff:ff:ff,arp_spa=192.168.128.1,arp_tpa=192.168.0.2,arp_op=2,arp_sha=50:54:00:00:00:05,arp_tha=40:44:44:44:44:41
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3260"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3272: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:3272"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3272"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3272: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:3272"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3272"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3272: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:3272"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3272"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:3272: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3272: wait failed" >&5

    $as_echo "ofproto-dpif.at:3272" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3272"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3272: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:3272"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3272"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3272: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:3272"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3272"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:3272: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3272: wait failed" >&5

    $as_echo "ofproto-dpif.at:3272" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3272"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1091
#AT_START_1092
at_fn_group_banner 1092 'ofproto-dpif.at:3275' \
  "ofproto-dpif - VLAN handling" "                   " 55
at_xfail=no
(
  $as_echo "1092. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3276: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:3276"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3276"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3276: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:3276"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3276"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3276: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:3276"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3276"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3276: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:3276"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3276"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3276: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:3276"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3276"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3276: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:3276"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3276"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3276: add_of_br 0 set Bridge br0 fail-mode=standalone -- \\
   add-port br0 p1                                  trunks=10,12 -- \\
   add-port br0 p2                           tag=10              -- \\
   add-port br0 p3                           tag=12              \\
                   other-config:priority-tags=true               -- \\
   add-port br0 p4                           tag=12              -- \\
   add-port br0 p5 vlan_mode=native-tagged   tag=10              -- \\
   add-port br0 p6 vlan_mode=native-tagged   tag=10 trunks=10,12 -- \\
   add-port br0 p7 vlan_mode=native-untagged tag=12              -- \\
   add-port br0 p8 vlan_mode=native-untagged tag=12 trunks=10,12 \\
                   other-config:priority-tags=true               -- \\
   add-port br0 p9 vlan_mode=dot1q-tunnel    tag=10              other-config:qinq-ethtype=802.1q  -- \\
   add-port br0 p10 vlan_mode=dot1q-tunnel   tag=10 cvlans=10,12 other-config:qinq-ethtype=802.1q  -- \\
   add-port br0 p11 vlan_mode=dot1q-tunnel   tag=12              other-config:qinq-ethtype=802.1q  -- \\
   add-port br0 p12 vlan_mode=dot1q-tunnel   tag=12              other-config:qinq-ethtype=802.1q  \\
                   other-config:priority-tags=true               -- \\
   set Interface p1 type=dummy -- \\
   set Interface p2 type=dummy -- \\
   set Interface p3 type=dummy -- \\
   set Interface p4 type=dummy -- \\
   set Interface p5 type=dummy -- \\
   set Interface p6 type=dummy -- \\
   set Interface p7 type=dummy -- \\
   set Interface p8 type=dummy -- \\
   set Interface p9 type=dummy -- \\
   set Interface p10 type=dummy -- \\
   set Interface p11 type=dummy -- \\
   set Interface p12 type=dummy -- "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:3276"
( $at_check_trace; add_of_br 0 set Bridge br0 fail-mode=standalone -- \
   add-port br0 p1                                  trunks=10,12 -- \
   add-port br0 p2                           tag=10              -- \
   add-port br0 p3                           tag=12              \
                   other-config:priority-tags=true               -- \
   add-port br0 p4                           tag=12              -- \
   add-port br0 p5 vlan_mode=native-tagged   tag=10              -- \
   add-port br0 p6 vlan_mode=native-tagged   tag=10 trunks=10,12 -- \
   add-port br0 p7 vlan_mode=native-untagged tag=12              -- \
   add-port br0 p8 vlan_mode=native-untagged tag=12 trunks=10,12 \
                   other-config:priority-tags=true               -- \
   add-port br0 p9 vlan_mode=dot1q-tunnel    tag=10              other-config:qinq-ethtype=802.1q  -- \
   add-port br0 p10 vlan_mode=dot1q-tunnel   tag=10 cvlans=10,12 other-config:qinq-ethtype=802.1q  -- \
   add-port br0 p11 vlan_mode=dot1q-tunnel   tag=12              other-config:qinq-ethtype=802.1q  -- \
   add-port br0 p12 vlan_mode=dot1q-tunnel   tag=12              other-config:qinq-ethtype=802.1q  \
                   other-config:priority-tags=true               -- \
   set Interface p1 type=dummy -- \
   set Interface p2 type=dummy -- \
   set Interface p3 type=dummy -- \
   set Interface p4 type=dummy -- \
   set Interface p5 type=dummy -- \
   set Interface p6 type=dummy -- \
   set Interface p7 type=dummy -- \
   set Interface p8 type=dummy -- \
   set Interface p9 type=dummy -- \
   set Interface p10 type=dummy -- \
   set Interface p11 type=dummy -- \
   set Interface p12 type=dummy --
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3276"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



for tuple in \
        "100 none 0 drop" \
        "100 0    0 drop" \
        "100 0    1 drop" \
        "100 10   0 1,5,6,7,8,pop_vlan,2,9" \
        "100 10   1 1,5,6,7,8,pop_vlan,2,9" \
        "100 11   0 5,7" \
        "100 11   1 5,7" \
        "100 12   0 1,5,6,pop_vlan,3,4,7,8,11,12" \
        "100 12   1 1,5,6,pop_vlan,4,7,11,push_vlan(vid=0,pcp=1),3,8,12" \
        "1  none 0 drop" \
        "1  0    0 drop" \
        "1  0    1 drop" \
        "1  10   0 5,6,7,8,100,pop_vlan,2,9" \
        "1  10   1 5,6,7,8,100,pop_vlan,2,9" \
        "1  11   0 drop" \
        "1  11   1 drop" \
        "1  12   0 5,6,100,pop_vlan,3,4,7,8,11,12" \
        "1  12   1 5,6,100,pop_vlan,4,7,11,push_vlan(vid=0,pcp=1),3,8,12" \
        "2  none 0 9,push_vlan(vid=10,pcp=0),1,5,6,7,8,100" \
        "2  0    0 pop_vlan,9,push_vlan(vid=10,pcp=0),1,5,6,7,8,100" \
        "2  0    1 pop_vlan,9,push_vlan(vid=10,pcp=1),1,5,6,7,8,100" \
        "2  10   0 drop" \
        "2  10   1 drop" \
        "2  11   0 drop" \
        "2  11   1 drop" \
        "2  12   0 drop" \
        "2  12   1 drop" \
        "3  none 0 4,7,8,11,12,push_vlan(vid=12,pcp=0),1,5,6,100" \
        "3  0    0 pop_vlan,4,7,8,11,12,push_vlan(vid=12,pcp=0),1,5,6,100" \
        "3  0    1 8,12,pop_vlan,4,7,11,push_vlan(vid=12,pcp=1),1,5,6,100" \
        "3  10   0 drop" \
        "3  10   1 drop" \
        "3  11   0 drop" \
        "3  11   1 drop" \
        "3  12   0 drop" \
        "3  12   1 drop" \
        "4  none 0 3,7,8,11,12,push_vlan(vid=12,pcp=0),1,5,6,100" \
        "4  0    0 pop_vlan,3,7,8,11,12,push_vlan(vid=12,pcp=0),1,5,6,100" \
        "4  0    1 3,8,12,pop_vlan,7,11,push_vlan(vid=12,pcp=1),1,5,6,100" \
        "4  10   0 drop" \
        "4  10   1 drop" \
        "4  11   0 drop" \
        "4  11   1 drop" \
        "4  12   0 drop" \
        "4  12   1 drop" \
        "5  none 0 2,9,push_vlan(vid=10,pcp=0),1,6,7,8,100" \
        "5  0    0 pop_vlan,2,9,push_vlan(vid=10,pcp=0),1,6,7,8,100" \
        "5  0    1 pop_vlan,2,9,push_vlan(vid=10,pcp=1),1,6,7,8,100" \
        "5  10   0 1,6,7,8,100,pop_vlan,2,9" \
        "5  10   1 1,6,7,8,100,pop_vlan,2,9" \
        "5  11   0 7,100" \
        "5  11   1 7,100" \
        "5  12   0 1,6,100,pop_vlan,3,4,7,8,11,12" \
        "5  12   1 1,6,100,pop_vlan,4,7,11,push_vlan(vid=0,pcp=1),3,8,12" \
        "6  none 0 2,9,push_vlan(vid=10,pcp=0),1,5,7,8,100" \
        "6  0    0 pop_vlan,2,9,push_vlan(vid=10,pcp=0),1,5,7,8,100" \
        "6  0    1 pop_vlan,2,9,push_vlan(vid=10,pcp=1),1,5,7,8,100" \
        "6  10   0 1,5,7,8,100,pop_vlan,2,9" \
        "6  10   1 1,5,7,8,100,pop_vlan,2,9" \
        "6  11   0 drop" \
        "6  11   1 drop" \
        "6  12   0 1,5,100,pop_vlan,3,4,7,8,11,12" \
        "6  12   1 1,5,100,pop_vlan,4,7,11,push_vlan(vid=0,pcp=1),3,8,12" \
        "7  none 0 3,4,8,11,12,push_vlan(vid=12,pcp=0),1,5,6,100" \
        "7  0    0 pop_vlan,3,4,8,11,12,push_vlan(vid=12,pcp=0),1,5,6,100" \
        "7  0    1 3,8,12,pop_vlan,4,11,push_vlan(vid=12,pcp=1),1,5,6,100" \
        "7  10   0 1,5,6,8,100,pop_vlan,2,9" \
        "7  10   1 1,5,6,8,100,pop_vlan,2,9" \
        "7  11   0 5,100" \
        "7  11   1 5,100" \
        "7  12   0 1,5,6,100,pop_vlan,3,4,8,11,12" \
        "7  12   1 1,5,6,100,pop_vlan,4,11,push_vlan(vid=0,pcp=1),3,8,12" \
        "8  none 0 3,4,7,11,12,push_vlan(vid=12,pcp=0),1,5,6,100" \
        "8  0    0 pop_vlan,3,4,7,11,12,push_vlan(vid=12,pcp=0),1,5,6,100" \
        "8  0    1 3,12,pop_vlan,4,7,11,push_vlan(vid=12,pcp=1),1,5,6,100" \
        "8  10   0 1,5,6,7,100,pop_vlan,2,9" \
        "8  10   1 1,5,6,7,100,pop_vlan,2,9" \
        "8  11   0 drop" \
        "8  11   1 drop" \
        "8  12   0 1,5,6,100,pop_vlan,3,4,7,11,12" \
        "8  12   1 1,5,6,100,pop_vlan,4,7,11,push_vlan(vid=0,pcp=1),3,12" \
        "9  none 0 2,push_vlan(vid=10,pcp=0),1,5,6,7,8,100" \
        "9  10   0 10,push_vlan(vid=10,pcp=0),1,5,6,7,8,100" \
        "9  11   0 push_vlan(vid=10,pcp=0),1,5,6,7,8,100" \
        "10 none 0 drop" \
        "10 0    0 drop" \
        "10 11   0 drop" \
        "10 12   0 9,push_vlan(vid=10,pcp=0),1,5,6,7,8,100" \
        "11 10   0 7,8,12,push_vlan(vid=12,pcp=0),1,5,6,100" \
        "11 10   1 7,8,12,push_vlan(vid=12,pcp=0),1,5,6,100"
do
  set $tuple
  in_port=$1
  vlan=$2
  pcp=$3
  expected=$4

  if test $vlan = none; then
    flow="in_port($in_port),eth(src=50:54:00:00:00:01,dst=ff:ff:ff:ff:ff:ff),eth_type(0xabcd)"
  else
    flow="in_port($in_port),eth(src=50:54:00:00:00:01,dst=ff:ff:ff:ff:ff:ff),eth_type(0x8100),vlan(vid=$vlan,pcp=$pcp),encap(eth_type(0xabcd))"
  fi

  echo "----------------------------------------------------------------------"
  echo "in_port=$in_port vlan=$vlan pcp=$pcp"

  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3416: ovs-appctl ofproto/trace ovs-dummy \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\"" "ofproto-dpif.at:3416"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3416"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

  actual=`tail -1 stdout | sed 's/Datapath actions: //'`

  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3419: ovs-dpctl normalize-actions \"\$flow\" \"\$expected\""
at_fn_check_prepare_dynamic "ovs-dpctl normalize-actions \"$flow\" \"$expected\"" "ofproto-dpif.at:3419"
( $at_check_trace; ovs-dpctl normalize-actions "$flow" "$expected"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3419"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

  mv stdout expout
  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3421: ovs-dpctl normalize-actions \"\$flow\" \"\$actual\""
at_fn_check_prepare_dynamic "ovs-dpctl normalize-actions \"$flow\" \"$actual\"" "ofproto-dpif.at:3421"
( $at_check_trace; ovs-dpctl normalize-actions "$flow" "$actual"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3421"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

done

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3424: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:3424"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3424"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3424: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:3424"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3424"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3424: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:3424"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3424"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:3424: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3424: wait failed" >&5

    $as_echo "ofproto-dpif.at:3424" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3424"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3424: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:3424"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3424"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3424: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:3424"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3424"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:3424: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3424: wait failed" >&5

    $as_echo "ofproto-dpif.at:3424" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3424"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1092
#AT_START_1093
at_fn_group_banner 1093 'ofproto-dpif.at:3427' \
  "ofproto-dpif - VLAN depth limit" "                " 55
at_xfail=no
(
  $as_echo "1093. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3428: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:3428"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3428"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3428: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:3428"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3428"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3428: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:3428"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3428"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3428: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:3428"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3428"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3428: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:3428"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3428"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3428: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:3428"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3428"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3428: add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1 -- \\
   add-port br0 p2 -- set Interface p2 type=dummy ofport_request=2 -- \\
   add-port br0 p3 -- set Interface p3 type=dummy ofport_request=3
 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:3428"
( $at_check_trace; add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1 -- \
   add-port br0 p2 -- set Interface p2 type=dummy ofport_request=2 -- \
   add-port br0 p3 -- set Interface p3 type=dummy ofport_request=3

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3428"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



cat >flows.txt <<'_ATEOF'
table=0 in_port=1,eth_type=0x8100,vlan_tci=0x0010/0x01ff actions=output:2
table=0 in_port=1,eth_type=0xabcd,vlan_tci=0x0010/0x01ff actions=output:3
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3438: ovs-ofctl -O OpenFlow13 add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:3438"
( $at_check_trace; ovs-ofctl -O OpenFlow13 add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3438"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

flow="in_port(1),eth(src=00:11:22:33:44:55,dst=00:22:44:66:88:00),eth_type(0x8100),vlan(vid=16,pcp=0), \
      encap(eth_type(0x8100),vlan(vid=17,pcp=0),encap(eth_type(0xabcd)))"

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3442: ovs-appctl ofproto/trace ovs-dummy \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\"" "ofproto-dpif.at:3442"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3442"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3443: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:3443"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3443"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3447: ovs-vsctl set Open_vswitch \`ovs-vsctl show | head -n1\` other_config:vlan-limit=0"
at_fn_check_prepare_notrace 'a `...` command substitution' "ofproto-dpif.at:3447"
( $at_check_trace; ovs-vsctl set Open_vswitch `ovs-vsctl show | head -n1` other_config:vlan-limit=0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3447"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3448: ovs-appctl ofproto/trace ovs-dummy \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\"" "ofproto-dpif.at:3448"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3448"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3449: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:3449"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3449"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3453: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:3453"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3453"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3453: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:3453"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3453"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3453: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:3453"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3453"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:3453: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3453: wait failed" >&5

    $as_echo "ofproto-dpif.at:3453" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3453"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3453: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:3453"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3453"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3453: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:3453"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3453"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:3453: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3453: wait failed" >&5

    $as_echo "ofproto-dpif.at:3453" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3453"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1093
#AT_START_1094
at_fn_group_banner 1094 'ofproto-dpif.at:3456' \
  "ofproto-dpif - Multi-VLAN actions" "              " 55
at_xfail=no
(
  $as_echo "1094. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3457: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:3457"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3457"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3457: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:3457"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3457"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3457: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:3457"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3457"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3457: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:3457"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3457"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3457: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:3457"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3457"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3457: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:3457"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3457"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3457: add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1 -- \\
   add-port br0 p2 -- set Interface p2 type=dummy ofport_request=2
 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:3457"
( $at_check_trace; add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1 -- \
   add-port br0 p2 -- set Interface p2 type=dummy ofport_request=2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3457"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3461: ovs-vsctl set Open_vswitch \`ovs-vsctl show | head -n1\` other_config:vlan-limit=0"
at_fn_check_prepare_notrace 'a `...` command substitution' "ofproto-dpif.at:3461"
( $at_check_trace; ovs-vsctl set Open_vswitch `ovs-vsctl show | head -n1` other_config:vlan-limit=0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3461"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
table=0 in_port=1,vlan_tci=0x1100/0x1fff actions=pop_vlan,output:2
table=0 in_port=1,vlan_tci=0x1101/0x1fff actions=push_vlan:0x8100,set_field:0x1201/0x1fff->vlan_tci,output:2
table=0 in_port=1,vlan_tci=0x1102/0x1fff actions=push_vlan:0x88a8,set_field:0x1202/0x1fff->vlan_tci,output:2
table=0 in_port=1,vlan_tci=0x1103/0x1fff actions=set_field:0x1203/0x1fff->vlan_tci,output:2
table=0 in_port=1,vlan_tci=0x1104/0x1fff actions=pop_vlan,goto_table:1
table=1 vlan_tci=0 actions=output:2
table=1 vlan_tci=0x1300/0x1fff actions=pop_vlan,output:2
table=1 vlan_tci=0x1301/0x1fff actions=push_vlan:0x88a8,set_field:0x1401/0x1fff->vlan_tci,output:2
table=1 vlan_tci=0x1302/0x1fff actions=set_field:0x1402/0x1fff->vlan_tci,output:2
_ATEOF


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3475: ovs-ofctl -O OpenFlow13 add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:3475"
( $at_check_trace; ovs-ofctl -O OpenFlow13 add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3475"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


check_act() {
    psd_hdr="in_port(1),eth(src=00:11:22:33:44:55,dst=00:22:44:66:88:00),"
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3479: ovs-appctl ofproto/trace ovs-dummy \"\$psd_hdr\$1\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$psd_hdr$1\"" "ofproto-dpif.at:3479"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$psd_hdr$1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3479"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3480: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:3480"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: $2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3480"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

}

check_act "eth_type(0x8100),vlan(vid=0x0100,pcp=0),encap(eth_type(0xabcd))" \
          "pop_vlan,2"

check_act "eth_type(0x8100),vlan(vid=0x0101,pcp=0),encap(eth_type(0xabcd))" \
          "push_vlan(vid=513,pcp=0),2"

check_act "eth_type(0x8100),vlan(vid=0x0102,pcp=0),encap(eth_type(0xabcd))" \
          "push_vlan(tpid=0x88a8,vid=514,pcp=0),2"

check_act "eth_type(0x8100),vlan(vid=0x0103,pcp=0),encap(eth_type(0xabcd))" \
          "pop_vlan,push_vlan(vid=515,pcp=0),2"

check_act "eth_type(0x8100),vlan(vid=0x0104,pcp=0),encap(eth_type(0xabcd))" \
          "pop_vlan,2"

check_act "eth_type(0x88a8),vlan(vid=0x0104,pcp=0),encap(eth_type(0x8100),\
vlan(vid=0x0300,pcp=0),encap(eth_type(0xabcd)))" "pop_vlan,pop_vlan,2"

check_act "eth_type(0x88a8),vlan(vid=0x0104,pcp=0),encap(eth_type(0x8100),\
vlan(vid=0x0301,pcp=0),encap(eth_type(0xabcd)))" \
          "pop_vlan,push_vlan(tpid=0x88a8,vid=1025,pcp=0),2"

check_act "eth_type(0x88a8),vlan(vid=0x0104,pcp=0),encap(eth_type(0x8100),\
vlan(vid=0x0302,pcp=0),encap(eth_type(0xabcd)))" \
          "pop_vlan,pop_vlan,push_vlan(vid=1026,pcp=0),2"

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3510: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:3510"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3510"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3510: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:3510"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3510"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3510: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:3510"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3510"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:3510: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3510: wait failed" >&5

    $as_echo "ofproto-dpif.at:3510" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3510"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3510: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:3510"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3510"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3510: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:3510"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3510"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:3510: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3510: wait failed" >&5

    $as_echo "ofproto-dpif.at:3510" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3510"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1094
#AT_START_1095
at_fn_group_banner 1095 'ofproto-dpif.at:3513' \
  "ofproto-dpif - MPLS handling" "                   " 55
at_xfail=no
(
  $as_echo "1095. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3514: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:3514"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3514"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3514: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:3514"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3514"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3514: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:3514"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3514"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3514: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:3514"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3514"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3514: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:3514"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3514"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3514: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:3514"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3514"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3514: add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy
 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:3514"
( $at_check_trace; add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3514"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


on_exit 'kill `cat ovs-ofctl.pid`'


cat >flows.txt <<'_ATEOF'
dl_src=40:44:44:44:00:00 actions=push_mpls:0x8847,controller
dl_src=40:44:44:44:00:01,mpls actions=push_mpls:0x8847,controller
dl_src=40:44:44:44:00:02,mpls actions=push_mpls:0x8848,controller
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3525: ovs-ofctl --protocols=OpenFlow12 add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:3525"
( $at_check_trace; ovs-ofctl --protocols=OpenFlow12 add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3525"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3528: ovs-ofctl --protocols=OpenFlow12 monitor br0 65534 -m -P standard --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:3528"
( $at_check_trace; ovs-ofctl --protocols=OpenFlow12 monitor br0 65534 -m -P standard --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3528"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=40:44:44:44:00:00,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no)'
done
$as_echo "ofproto-dpif.at:3533: waiting until test \`grep OFPT_PACKET_IN ofctl_monitor.log | wc -l\` -ge 3..." >&5
ovs_wait_cond () {
    test `grep OFPT_PACKET_IN ofctl_monitor.log | wc -l` -ge 3
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3533: wait failed" >&5

    $as_echo "ofproto-dpif.at:3533" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3533"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3534: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:3534"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3534"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3534: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:3534"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3534"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:3534: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3534: wait failed" >&5

    $as_echo "ofproto-dpif.at:3534" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3534"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3536: ofctl_strip < ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:3536"
( $at_check_trace; ofctl_strip < ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (OF1.2): total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=40:44:44:44:00:00,dl_dst=50:54:00:00:00:07,mpls_label=0,mpls_tc=0,mpls_ttl=64,mpls_bos=1
00000000  50 54 00 00 00 07 40 44-44 44 00 00 88 47 00 00
00000010  01 40 45 00 00 28 00 00-00 00 40 06 f9 7c c0 a8
00000020  00 01 c0 a8 00 02 00 00-00 00 00 00 00 00 00 00
00000030  00 00 50 00 00 00 2e 91-00 00
OFPT_PACKET_IN (OF1.2): total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=40:44:44:44:00:00,dl_dst=50:54:00:00:00:07,mpls_label=0,mpls_tc=0,mpls_ttl=64,mpls_bos=1
00000000  50 54 00 00 00 07 40 44-44 44 00 00 88 47 00 00
00000010  01 40 45 00 00 28 00 00-00 00 40 06 f9 7c c0 a8
00000020  00 01 c0 a8 00 02 00 00-00 00 00 00 00 00 00 00
00000030  00 00 50 00 00 00 2e 91-00 00
OFPT_PACKET_IN (OF1.2): total_len=58 in_port=1 (via action) data_len=58 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=40:44:44:44:00:00,dl_dst=50:54:00:00:00:07,mpls_label=0,mpls_tc=0,mpls_ttl=64,mpls_bos=1
00000000  50 54 00 00 00 07 40 44-44 44 00 00 88 47 00 00
00000010  01 40 45 00 00 28 00 00-00 00 40 06 f9 7c c0 a8
00000020  00 01 c0 a8 00 02 00 00-00 00 00 00 00 00 00 00
00000030  00 00 50 00 00 00 2e 91-00 00
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3536"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3561: ovs-ofctl --protocols=OpenFlow12 monitor br0 65534 -m -P standard --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:3561"
( $at_check_trace; ovs-ofctl --protocols=OpenFlow12 monitor br0 65534 -m -P standard --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3561"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=40:44:44:44:00:01,dst=50:54:00:00:00:07),eth_type(0x8847),mpls(label=10,tc=0,ttl=64,bos=1)'
done
$as_echo "ofproto-dpif.at:3566: waiting until test \`grep OFPT_PACKET_IN ofctl_monitor.log | wc -l\` -ge 3..." >&5
ovs_wait_cond () {
    test `grep OFPT_PACKET_IN ofctl_monitor.log | wc -l` -ge 3
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3566: wait failed" >&5

    $as_echo "ofproto-dpif.at:3566" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3566"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3567: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:3567"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3567"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3567: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:3567"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3567"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:3567: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3567: wait failed" >&5

    $as_echo "ofproto-dpif.at:3567" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3567"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3569: ofctl_strip < ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:3569"
( $at_check_trace; ofctl_strip < ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (OF1.2): total_len=22 in_port=1 (via action) data_len=22 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=40:44:44:44:00:01,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=0,mpls_lse1=41280
00000000  50 54 00 00 00 07 40 44-44 44 00 01 88 47 00 00
00000010  a0 40 00 00 a1 40
OFPT_PACKET_IN (OF1.2): total_len=22 in_port=1 (via action) data_len=22 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=40:44:44:44:00:01,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=0,mpls_lse1=41280
00000000  50 54 00 00 00 07 40 44-44 44 00 01 88 47 00 00
00000010  a0 40 00 00 a1 40
OFPT_PACKET_IN (OF1.2): total_len=22 in_port=1 (via action) data_len=22 (unbuffered)
mpls,vlan_tci=0x0000,dl_src=40:44:44:44:00:01,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=0,mpls_lse1=41280
00000000  50 54 00 00 00 07 40 44-44 44 00 01 88 47 00 00
00000010  a0 40 00 00 a1 40
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3569"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3590: ovs-ofctl --protocols=OpenFlow12 monitor br0 65534 -m -P standard --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:3590"
( $at_check_trace; ovs-ofctl --protocols=OpenFlow12 monitor br0 65534 -m -P standard --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3590"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=40:44:44:44:00:02,dst=50:54:00:00:00:07),eth_type(0x8847),mpls(label=10,tc=0,ttl=64,bos=1)'
done
$as_echo "ofproto-dpif.at:3595: waiting until test \`grep OFPT_PACKET_IN ofctl_monitor.log | wc -l\` -ge 3..." >&5
ovs_wait_cond () {
    test `grep OFPT_PACKET_IN ofctl_monitor.log | wc -l` -ge 3
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3595: wait failed" >&5

    $as_echo "ofproto-dpif.at:3595" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3595"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3596: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:3596"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3596"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3596: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:3596"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3596"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:3596: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3596: wait failed" >&5

    $as_echo "ofproto-dpif.at:3596" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3596"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3598: ofctl_strip < ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:3598"
( $at_check_trace; ofctl_strip < ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (OF1.2): total_len=22 in_port=1 (via action) data_len=22 (unbuffered)
mplsm,vlan_tci=0x0000,dl_src=40:44:44:44:00:02,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=0,mpls_lse1=41280
00000000  50 54 00 00 00 07 40 44-44 44 00 02 88 48 00 00
00000010  a0 40 00 00 a1 40
OFPT_PACKET_IN (OF1.2): total_len=22 in_port=1 (via action) data_len=22 (unbuffered)
mplsm,vlan_tci=0x0000,dl_src=40:44:44:44:00:02,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=0,mpls_lse1=41280
00000000  50 54 00 00 00 07 40 44-44 44 00 02 88 48 00 00
00000010  a0 40 00 00 a1 40
OFPT_PACKET_IN (OF1.2): total_len=22 in_port=1 (via action) data_len=22 (unbuffered)
mplsm,vlan_tci=0x0000,dl_src=40:44:44:44:00:02,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=0,mpls_lse1=41280
00000000  50 54 00 00 00 07 40 44-44 44 00 02 88 48 00 00
00000010  a0 40 00 00 a1 40
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3598"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3615: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:3615"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3615"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3615: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:3615"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3615"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3615: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:3615"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3615"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:3615: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3615: wait failed" >&5

    $as_echo "ofproto-dpif.at:3615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3615"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3615: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:3615"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3615"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3615: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:3615"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3615"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:3615: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3615: wait failed" >&5

    $as_echo "ofproto-dpif.at:3615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3615"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1095
#AT_START_1096
at_fn_group_banner 1096 'ofproto-dpif.at:3618' \
  "ofproto-dpif - VLAN+MPLS handling" "              " 55
at_xfail=no
(
  $as_echo "1096. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3619: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:3619"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3619"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3619: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:3619"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3619"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3619: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:3619"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3619"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3619: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:3619"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3619"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3619: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:3619"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3619"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3619: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:3619"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3619"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3619: add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy
 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:3619"
( $at_check_trace; add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3619"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


on_exit 'kill `cat ovs-ofctl.pid`'


cat >flows.txt <<'_ATEOF'
cookie=0xa dl_src=40:44:44:44:54:50 actions=push_mpls:0x8847,load:10->OXM_OF_MPLS_LABEL[],push_vlan:0x8100,set_vlan_vid:99,set_vlan_pcp:1,controller
cookie=0xa dl_src=40:44:44:44:54:51 actions=push_mpls:0x8847,load:10->OXM_OF_MPLS_LABEL[],push_vlan:0x8100,set_vlan_vid:99,set_vlan_pcp:1,controller
cookie=0xa dl_src=40:44:44:44:54:52 actions=push_mpls:0x8847,load:10->OXM_OF_MPLS_LABEL[],push_vlan:0x8100,load:99->OXM_OF_VLAN_VID[],set_vlan_pcp:1,controller
cookie=0xa dl_src=40:44:44:44:54:53 actions=push_mpls:0x8847,load:10->OXM_OF_MPLS_LABEL[],push_vlan:0x8100,load:99->OXM_OF_VLAN_VID[],set_vlan_pcp:1,controller
cookie=0xa dl_src=40:44:44:44:54:54 actions=push_vlan:0x8100,set_vlan_vid:99,set_vlan_pcp:1,push_mpls:0x8847,load:10->OXM_OF_MPLS_LABEL[],controller
cookie=0xa dl_src=40:44:44:44:54:55 actions=push_vlan:0x8100,set_vlan_vid:99,set_vlan_pcp:1,push_mpls:0x8847,load:10->OXM_OF_MPLS_LABEL[],controller
cookie=0xa dl_src=40:44:44:44:54:56 actions=push_vlan:0x8100,load:99->OXM_OF_VLAN_VID[],set_vlan_pcp:1,push_mpls:0x8847,load:10->OXM_OF_MPLS_LABEL[],controller
cookie=0xa dl_src=40:44:44:44:54:57 actions=push_vlan:0x8100,load:99->OXM_OF_VLAN_VID[],set_vlan_pcp:1,push_mpls:0x8847,load:10->OXM_OF_MPLS_LABEL[],controller
cookie=0xa dl_src=40:44:44:44:54:58,vlan_tci=0x1000/0x1000 actions=load:99->OXM_OF_VLAN_VID[],set_vlan_pcp:1,push_mpls:0x8847,load:10->OXM_OF_MPLS_LABEL[],controller
cookie=0xa dl_src=40:44:44:44:54:59,vlan_tci=0x1000/0x1000 actions=push_mpls:0x8847,load:10->OXM_OF_MPLS_LABEL[],set_vlan_pcp:1,load:99->OXM_OF_VLAN_VID[],controller
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3637: ovs-ofctl --protocols=OpenFlow12 add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:3637"
( $at_check_trace; ovs-ofctl --protocols=OpenFlow12 add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3637"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3642: ovs-ofctl --protocols=OpenFlow12 monitor br0 65534 -m -P standard --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:3642"
( $at_check_trace; ovs-ofctl --protocols=OpenFlow12 monitor br0 65534 -m -P standard --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3642"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=40:44:44:44:54:50,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no)'
done
$as_echo "ofproto-dpif.at:3647: waiting until test \`grep OFPT_PACKET_IN ofctl_monitor.log | wc -l\` -ge 3..." >&5
ovs_wait_cond () {
    test `grep OFPT_PACKET_IN ofctl_monitor.log | wc -l` -ge 3
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3647: wait failed" >&5

    $as_echo "ofproto-dpif.at:3647" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3647"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3648: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:3648"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3648"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3648: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:3648"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3648"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:3648: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3648: wait failed" >&5

    $as_echo "ofproto-dpif.at:3648" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3648"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3650: ofctl_strip < ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:3650"
( $at_check_trace; ofctl_strip < ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (OF1.2): total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mpls,dl_vlan=99,dl_vlan_pcp=1,vlan_tci1=0x0000,dl_src=40:44:44:44:54:50,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=1
00000000  50 54 00 00 00 07 40 44-44 44 54 50 81 00 20 63
00000010  88 47 00 00 a1 40 45 00-00 28 00 00 00 00 40 06
00000020  f9 7c c0 a8 00 01 c0 a8-00 02 00 00 00 00 00 00
00000030  00 00 00 00 00 00 50 00-00 00 2e 91 00 00
OFPT_PACKET_IN (OF1.2): total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mpls,dl_vlan=99,dl_vlan_pcp=1,vlan_tci1=0x0000,dl_src=40:44:44:44:54:50,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=1
00000000  50 54 00 00 00 07 40 44-44 44 54 50 81 00 20 63
00000010  88 47 00 00 a1 40 45 00-00 28 00 00 00 00 40 06
00000020  f9 7c c0 a8 00 01 c0 a8-00 02 00 00 00 00 00 00
00000030  00 00 00 00 00 00 50 00-00 00 2e 91 00 00
OFPT_PACKET_IN (OF1.2): total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mpls,dl_vlan=99,dl_vlan_pcp=1,vlan_tci1=0x0000,dl_src=40:44:44:44:54:50,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=1
00000000  50 54 00 00 00 07 40 44-44 44 54 50 81 00 20 63
00000010  88 47 00 00 a1 40 45 00-00 28 00 00 00 00 40 06
00000020  f9 7c c0 a8 00 01 c0 a8-00 02 00 00 00 00 00 00
00000030  00 00 00 00 00 00 50 00-00 00 2e 91 00 00
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3650"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3676: ovs-ofctl --protocols=OpenFlow12 monitor br0 65534 -m -P standard --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:3676"
( $at_check_trace; ovs-ofctl --protocols=OpenFlow12 monitor br0 65534 -m -P standard --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3676"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=40:44:44:44:54:51,dst=50:54:00:00:00:07),eth_type(0x8100),vlan(vid=88,pcp=7),encap(eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no))'
done
$as_echo "ofproto-dpif.at:3681: waiting until test \`grep OFPT_PACKET_IN ofctl_monitor.log | wc -l\` -ge 3..." >&5
ovs_wait_cond () {
    test `grep OFPT_PACKET_IN ofctl_monitor.log | wc -l` -ge 3
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3681: wait failed" >&5

    $as_echo "ofproto-dpif.at:3681" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3681"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3682: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:3682"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3682"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3682: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:3682"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3682"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:3682: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3682: wait failed" >&5

    $as_echo "ofproto-dpif.at:3682" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3682"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3684: ofctl_strip < ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:3684"
( $at_check_trace; ofctl_strip < ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (OF1.2): total_len=66 in_port=1 (via action) data_len=66 (unbuffered)
mpls,dl_vlan=99,dl_vlan_pcp=1,dl_vlan1=88,dl_vlan_pcp1=7,dl_src=40:44:44:44:54:51,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=1
00000000  50 54 00 00 00 07 40 44-44 44 54 51 81 00 20 63
00000010  81 00 e0 58 88 47 00 00-a1 40 45 00 00 28 00 00
00000020  00 00 40 06 f9 7c c0 a8-00 01 c0 a8 00 02 00 00
00000030  00 00 00 00 00 00 00 00-00 00 50 00 00 00 2e 91
00000040  00 00
OFPT_PACKET_IN (OF1.2): total_len=66 in_port=1 (via action) data_len=66 (unbuffered)
mpls,dl_vlan=99,dl_vlan_pcp=1,dl_vlan1=88,dl_vlan_pcp1=7,dl_src=40:44:44:44:54:51,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=1
00000000  50 54 00 00 00 07 40 44-44 44 54 51 81 00 20 63
00000010  81 00 e0 58 88 47 00 00-a1 40 45 00 00 28 00 00
00000020  00 00 40 06 f9 7c c0 a8-00 01 c0 a8 00 02 00 00
00000030  00 00 00 00 00 00 00 00-00 00 50 00 00 00 2e 91
00000040  00 00
OFPT_PACKET_IN (OF1.2): total_len=66 in_port=1 (via action) data_len=66 (unbuffered)
mpls,dl_vlan=99,dl_vlan_pcp=1,dl_vlan1=88,dl_vlan_pcp1=7,dl_src=40:44:44:44:54:51,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=1
00000000  50 54 00 00 00 07 40 44-44 44 54 51 81 00 20 63
00000010  81 00 e0 58 88 47 00 00-a1 40 45 00 00 28 00 00
00000020  00 00 40 06 f9 7c c0 a8-00 01 c0 a8 00 02 00 00
00000030  00 00 00 00 00 00 00 00-00 00 50 00 00 00 2e 91
00000040  00 00
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3684"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3713: ovs-ofctl --protocols=OpenFlow12 monitor br0 65534 -m -P standard --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:3713"
( $at_check_trace; ovs-ofctl --protocols=OpenFlow12 monitor br0 65534 -m -P standard --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3713"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=40:44:44:44:54:52,dst=52:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no)'
done
$as_echo "ofproto-dpif.at:3718: waiting until test \`grep OFPT_PACKET_IN ofctl_monitor.log | wc -l\` -ge 3..." >&5
ovs_wait_cond () {
    test `grep OFPT_PACKET_IN ofctl_monitor.log | wc -l` -ge 3
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3718: wait failed" >&5

    $as_echo "ofproto-dpif.at:3718" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3718"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3719: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:3719"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3719"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3719: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:3719"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3719"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:3719: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3719: wait failed" >&5

    $as_echo "ofproto-dpif.at:3719" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3719"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3721: ofctl_strip < ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:3721"
( $at_check_trace; ofctl_strip < ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (OF1.2): total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mpls,dl_vlan=99,dl_vlan_pcp=1,vlan_tci1=0x0000,dl_src=40:44:44:44:54:52,dl_dst=52:54:00:00:00:07,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=1
00000000  52 54 00 00 00 07 40 44-44 44 54 52 81 00 20 63
00000010  88 47 00 00 a1 40 45 00-00 28 00 00 00 00 40 06
00000020  f9 7c c0 a8 00 01 c0 a8-00 02 00 00 00 00 00 00
00000030  00 00 00 00 00 00 50 00-00 00 2e 91 00 00
OFPT_PACKET_IN (OF1.2): total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mpls,dl_vlan=99,dl_vlan_pcp=1,vlan_tci1=0x0000,dl_src=40:44:44:44:54:52,dl_dst=52:54:00:00:00:07,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=1
00000000  52 54 00 00 00 07 40 44-44 44 54 52 81 00 20 63
00000010  88 47 00 00 a1 40 45 00-00 28 00 00 00 00 40 06
00000020  f9 7c c0 a8 00 01 c0 a8-00 02 00 00 00 00 00 00
00000030  00 00 00 00 00 00 50 00-00 00 2e 91 00 00
OFPT_PACKET_IN (OF1.2): total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mpls,dl_vlan=99,dl_vlan_pcp=1,vlan_tci1=0x0000,dl_src=40:44:44:44:54:52,dl_dst=52:54:00:00:00:07,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=1
00000000  52 54 00 00 00 07 40 44-44 44 54 52 81 00 20 63
00000010  88 47 00 00 a1 40 45 00-00 28 00 00 00 00 40 06
00000020  f9 7c c0 a8 00 01 c0 a8-00 02 00 00 00 00 00 00
00000030  00 00 00 00 00 00 50 00-00 00 2e 91 00 00
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3721"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3747: ovs-ofctl --protocols=OpenFlow12 monitor br0 65534 -m -P standard --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:3747"
( $at_check_trace; ovs-ofctl --protocols=OpenFlow12 monitor br0 65534 -m -P standard --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3747"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=40:44:44:44:54:53,dst=50:54:00:00:00:07),eth_type(0x8100),vlan(vid=88,pcp=7),encap(eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no))'
done
$as_echo "ofproto-dpif.at:3752: waiting until test \`grep OFPT_PACKET_IN ofctl_monitor.log | wc -l\` -ge 3..." >&5
ovs_wait_cond () {
    test `grep OFPT_PACKET_IN ofctl_monitor.log | wc -l` -ge 3
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3752: wait failed" >&5

    $as_echo "ofproto-dpif.at:3752" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3752"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3753: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:3753"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3753"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3753: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:3753"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3753"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:3753: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3753: wait failed" >&5

    $as_echo "ofproto-dpif.at:3753" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3753"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3755: ofctl_strip < ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:3755"
( $at_check_trace; ofctl_strip < ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (OF1.2): total_len=66 in_port=1 (via action) data_len=66 (unbuffered)
mpls,dl_vlan=99,dl_vlan_pcp=1,dl_vlan1=88,dl_vlan_pcp1=7,dl_src=40:44:44:44:54:53,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=1
00000000  50 54 00 00 00 07 40 44-44 44 54 53 81 00 20 63
00000010  81 00 e0 58 88 47 00 00-a1 40 45 00 00 28 00 00
00000020  00 00 40 06 f9 7c c0 a8-00 01 c0 a8 00 02 00 00
00000030  00 00 00 00 00 00 00 00-00 00 50 00 00 00 2e 91
00000040  00 00
OFPT_PACKET_IN (OF1.2): total_len=66 in_port=1 (via action) data_len=66 (unbuffered)
mpls,dl_vlan=99,dl_vlan_pcp=1,dl_vlan1=88,dl_vlan_pcp1=7,dl_src=40:44:44:44:54:53,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=1
00000000  50 54 00 00 00 07 40 44-44 44 54 53 81 00 20 63
00000010  81 00 e0 58 88 47 00 00-a1 40 45 00 00 28 00 00
00000020  00 00 40 06 f9 7c c0 a8-00 01 c0 a8 00 02 00 00
00000030  00 00 00 00 00 00 00 00-00 00 50 00 00 00 2e 91
00000040  00 00
OFPT_PACKET_IN (OF1.2): total_len=66 in_port=1 (via action) data_len=66 (unbuffered)
mpls,dl_vlan=99,dl_vlan_pcp=1,dl_vlan1=88,dl_vlan_pcp1=7,dl_src=40:44:44:44:54:53,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=1
00000000  50 54 00 00 00 07 40 44-44 44 54 53 81 00 20 63
00000010  81 00 e0 58 88 47 00 00-a1 40 45 00 00 28 00 00
00000020  00 00 40 06 f9 7c c0 a8-00 01 c0 a8 00 02 00 00
00000030  00 00 00 00 00 00 00 00-00 00 50 00 00 00 2e 91
00000040  00 00
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3755"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3784: ovs-ofctl --protocols=OpenFlow12 monitor br0 65534 -m -P standard --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:3784"
( $at_check_trace; ovs-ofctl --protocols=OpenFlow12 monitor br0 65534 -m -P standard --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3784"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=40:44:44:44:54:54,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no)'
done
$as_echo "ofproto-dpif.at:3789: waiting until test \`grep OFPT_PACKET_IN ofctl_monitor.log | wc -l\` -ge 3..." >&5
ovs_wait_cond () {
    test `grep OFPT_PACKET_IN ofctl_monitor.log | wc -l` -ge 3
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3789: wait failed" >&5

    $as_echo "ofproto-dpif.at:3789" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3789"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3790: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:3790"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3790"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3790: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:3790"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3790"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:3790: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3790: wait failed" >&5

    $as_echo "ofproto-dpif.at:3790" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3790"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3792: ofctl_strip < ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:3792"
( $at_check_trace; ofctl_strip < ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (OF1.2): total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mpls,dl_vlan=99,dl_vlan_pcp=1,vlan_tci1=0x0000,dl_src=40:44:44:44:54:54,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=1
00000000  50 54 00 00 00 07 40 44-44 44 54 54 81 00 20 63
00000010  88 47 00 00 a1 40 45 00-00 28 00 00 00 00 40 06
00000020  f9 7c c0 a8 00 01 c0 a8-00 02 00 00 00 00 00 00
00000030  00 00 00 00 00 00 50 00-00 00 2e 91 00 00
OFPT_PACKET_IN (OF1.2): total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mpls,dl_vlan=99,dl_vlan_pcp=1,vlan_tci1=0x0000,dl_src=40:44:44:44:54:54,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=1
00000000  50 54 00 00 00 07 40 44-44 44 54 54 81 00 20 63
00000010  88 47 00 00 a1 40 45 00-00 28 00 00 00 00 40 06
00000020  f9 7c c0 a8 00 01 c0 a8-00 02 00 00 00 00 00 00
00000030  00 00 00 00 00 00 50 00-00 00 2e 91 00 00
OFPT_PACKET_IN (OF1.2): total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mpls,dl_vlan=99,dl_vlan_pcp=1,vlan_tci1=0x0000,dl_src=40:44:44:44:54:54,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=1
00000000  50 54 00 00 00 07 40 44-44 44 54 54 81 00 20 63
00000010  88 47 00 00 a1 40 45 00-00 28 00 00 00 00 40 06
00000020  f9 7c c0 a8 00 01 c0 a8-00 02 00 00 00 00 00 00
00000030  00 00 00 00 00 00 50 00-00 00 2e 91 00 00
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3792"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3818: ovs-ofctl --protocols=OpenFlow12 monitor br0 65534 -m -P standard --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:3818"
( $at_check_trace; ovs-ofctl --protocols=OpenFlow12 monitor br0 65534 -m -P standard --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3818"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=40:44:44:44:54:55,dst=50:54:00:00:00:07),eth_type(0x8100),vlan(vid=88,pcp=7),encap(eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no))'
done
$as_echo "ofproto-dpif.at:3823: waiting until test \`grep OFPT_PACKET_IN ofctl_monitor.log | wc -l\` -ge 3..." >&5
ovs_wait_cond () {
    test `grep OFPT_PACKET_IN ofctl_monitor.log | wc -l` -ge 3
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3823: wait failed" >&5

    $as_echo "ofproto-dpif.at:3823" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3823"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3824: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:3824"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3824"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3824: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:3824"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3824"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:3824: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3824: wait failed" >&5

    $as_echo "ofproto-dpif.at:3824" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3824"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3826: ofctl_strip < ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:3826"
( $at_check_trace; ofctl_strip < ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (OF1.2): total_len=66 in_port=1 (via action) data_len=66 (unbuffered)
mpls,dl_vlan=99,dl_vlan_pcp=1,dl_vlan1=88,dl_vlan_pcp1=7,dl_src=40:44:44:44:54:55,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=1
00000000  50 54 00 00 00 07 40 44-44 44 54 55 81 00 20 63
00000010  81 00 e0 58 88 47 00 00-a1 40 45 00 00 28 00 00
00000020  00 00 40 06 f9 7c c0 a8-00 01 c0 a8 00 02 00 00
00000030  00 00 00 00 00 00 00 00-00 00 50 00 00 00 2e 91
00000040  00 00
OFPT_PACKET_IN (OF1.2): total_len=66 in_port=1 (via action) data_len=66 (unbuffered)
mpls,dl_vlan=99,dl_vlan_pcp=1,dl_vlan1=88,dl_vlan_pcp1=7,dl_src=40:44:44:44:54:55,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=1
00000000  50 54 00 00 00 07 40 44-44 44 54 55 81 00 20 63
00000010  81 00 e0 58 88 47 00 00-a1 40 45 00 00 28 00 00
00000020  00 00 40 06 f9 7c c0 a8-00 01 c0 a8 00 02 00 00
00000030  00 00 00 00 00 00 00 00-00 00 50 00 00 00 2e 91
00000040  00 00
OFPT_PACKET_IN (OF1.2): total_len=66 in_port=1 (via action) data_len=66 (unbuffered)
mpls,dl_vlan=99,dl_vlan_pcp=1,dl_vlan1=88,dl_vlan_pcp1=7,dl_src=40:44:44:44:54:55,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=1
00000000  50 54 00 00 00 07 40 44-44 44 54 55 81 00 20 63
00000010  81 00 e0 58 88 47 00 00-a1 40 45 00 00 28 00 00
00000020  00 00 40 06 f9 7c c0 a8-00 01 c0 a8 00 02 00 00
00000030  00 00 00 00 00 00 00 00-00 00 50 00 00 00 2e 91
00000040  00 00
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3826"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3855: ovs-ofctl --protocols=OpenFlow12 monitor br0 65534 -m -P standard --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:3855"
( $at_check_trace; ovs-ofctl --protocols=OpenFlow12 monitor br0 65534 -m -P standard --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3855"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=40:44:44:44:54:56,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no)'
done
$as_echo "ofproto-dpif.at:3860: waiting until test \`grep OFPT_PACKET_IN ofctl_monitor.log | wc -l\` -ge 3..." >&5
ovs_wait_cond () {
    test `grep OFPT_PACKET_IN ofctl_monitor.log | wc -l` -ge 3
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3860: wait failed" >&5

    $as_echo "ofproto-dpif.at:3860" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3860"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3861: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:3861"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3861"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3861: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:3861"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3861"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:3861: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3861: wait failed" >&5

    $as_echo "ofproto-dpif.at:3861" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3861"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3863: ofctl_strip < ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:3863"
( $at_check_trace; ofctl_strip < ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (OF1.2): total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mpls,dl_vlan=99,dl_vlan_pcp=1,vlan_tci1=0x0000,dl_src=40:44:44:44:54:56,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=1
00000000  50 54 00 00 00 07 40 44-44 44 54 56 81 00 20 63
00000010  88 47 00 00 a1 40 45 00-00 28 00 00 00 00 40 06
00000020  f9 7c c0 a8 00 01 c0 a8-00 02 00 00 00 00 00 00
00000030  00 00 00 00 00 00 50 00-00 00 2e 91 00 00
OFPT_PACKET_IN (OF1.2): total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mpls,dl_vlan=99,dl_vlan_pcp=1,vlan_tci1=0x0000,dl_src=40:44:44:44:54:56,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=1
00000000  50 54 00 00 00 07 40 44-44 44 54 56 81 00 20 63
00000010  88 47 00 00 a1 40 45 00-00 28 00 00 00 00 40 06
00000020  f9 7c c0 a8 00 01 c0 a8-00 02 00 00 00 00 00 00
00000030  00 00 00 00 00 00 50 00-00 00 2e 91 00 00
OFPT_PACKET_IN (OF1.2): total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mpls,dl_vlan=99,dl_vlan_pcp=1,vlan_tci1=0x0000,dl_src=40:44:44:44:54:56,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=1
00000000  50 54 00 00 00 07 40 44-44 44 54 56 81 00 20 63
00000010  88 47 00 00 a1 40 45 00-00 28 00 00 00 00 40 06
00000020  f9 7c c0 a8 00 01 c0 a8-00 02 00 00 00 00 00 00
00000030  00 00 00 00 00 00 50 00-00 00 2e 91 00 00
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3863"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3889: ovs-ofctl --protocols=OpenFlow12 monitor br0 -m 65534 -P standard --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:3889"
( $at_check_trace; ovs-ofctl --protocols=OpenFlow12 monitor br0 -m 65534 -P standard --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3889"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=40:44:44:44:54:57,dst=50:54:00:00:00:07),eth_type(0x8100),vlan(vid=88,pcp=7),encap(eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no))'
done
$as_echo "ofproto-dpif.at:3894: waiting until test \`grep OFPT_PACKET_IN ofctl_monitor.log | wc -l\` -ge 3..." >&5
ovs_wait_cond () {
    test `grep OFPT_PACKET_IN ofctl_monitor.log | wc -l` -ge 3
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3894: wait failed" >&5

    $as_echo "ofproto-dpif.at:3894" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3894"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3895: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:3895"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3895"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3895: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:3895"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3895"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:3895: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3895: wait failed" >&5

    $as_echo "ofproto-dpif.at:3895" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3895"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3897: ofctl_strip < ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:3897"
( $at_check_trace; ofctl_strip < ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (OF1.2): total_len=66 in_port=1 (via action) data_len=66 (unbuffered)
mpls,dl_vlan=99,dl_vlan_pcp=1,dl_vlan1=88,dl_vlan_pcp1=7,dl_src=40:44:44:44:54:57,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=1
00000000  50 54 00 00 00 07 40 44-44 44 54 57 81 00 20 63
00000010  81 00 e0 58 88 47 00 00-a1 40 45 00 00 28 00 00
00000020  00 00 40 06 f9 7c c0 a8-00 01 c0 a8 00 02 00 00
00000030  00 00 00 00 00 00 00 00-00 00 50 00 00 00 2e 91
00000040  00 00
OFPT_PACKET_IN (OF1.2): total_len=66 in_port=1 (via action) data_len=66 (unbuffered)
mpls,dl_vlan=99,dl_vlan_pcp=1,dl_vlan1=88,dl_vlan_pcp1=7,dl_src=40:44:44:44:54:57,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=1
00000000  50 54 00 00 00 07 40 44-44 44 54 57 81 00 20 63
00000010  81 00 e0 58 88 47 00 00-a1 40 45 00 00 28 00 00
00000020  00 00 40 06 f9 7c c0 a8-00 01 c0 a8 00 02 00 00
00000030  00 00 00 00 00 00 00 00-00 00 50 00 00 00 2e 91
00000040  00 00
OFPT_PACKET_IN (OF1.2): total_len=66 in_port=1 (via action) data_len=66 (unbuffered)
mpls,dl_vlan=99,dl_vlan_pcp=1,dl_vlan1=88,dl_vlan_pcp1=7,dl_src=40:44:44:44:54:57,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=1
00000000  50 54 00 00 00 07 40 44-44 44 54 57 81 00 20 63
00000010  81 00 e0 58 88 47 00 00-a1 40 45 00 00 28 00 00
00000020  00 00 40 06 f9 7c c0 a8-00 01 c0 a8 00 02 00 00
00000030  00 00 00 00 00 00 00 00-00 00 50 00 00 00 2e 91
00000040  00 00
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3897"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3926: ovs-ofctl --protocols=OpenFlow12 monitor br0 65534 -m -P standard --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:3926"
( $at_check_trace; ovs-ofctl --protocols=OpenFlow12 monitor br0 65534 -m -P standard --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3926"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=40:44:44:44:54:58,dst=50:54:00:00:00:07),eth_type(0x8100),vlan(vid=88,pcp=7),encap(eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no))'
done
$as_echo "ofproto-dpif.at:3931: waiting until test \`grep OFPT_PACKET_IN ofctl_monitor.log | wc -l\` -ge 3..." >&5
ovs_wait_cond () {
    test `grep OFPT_PACKET_IN ofctl_monitor.log | wc -l` -ge 3
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3931: wait failed" >&5

    $as_echo "ofproto-dpif.at:3931" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3931"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3932: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:3932"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3932"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3932: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:3932"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3932"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:3932: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3932: wait failed" >&5

    $as_echo "ofproto-dpif.at:3932" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3932"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3934: ofctl_strip < ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:3934"
( $at_check_trace; ofctl_strip < ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (OF1.2): total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mpls,dl_vlan=99,dl_vlan_pcp=1,vlan_tci1=0x0000,dl_src=40:44:44:44:54:58,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=1
00000000  50 54 00 00 00 07 40 44-44 44 54 58 81 00 20 63
00000010  88 47 00 00 a1 40 45 00-00 28 00 00 00 00 40 06
00000020  f9 7c c0 a8 00 01 c0 a8-00 02 00 00 00 00 00 00
00000030  00 00 00 00 00 00 50 00-00 00 2e 91 00 00
OFPT_PACKET_IN (OF1.2): total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mpls,dl_vlan=99,dl_vlan_pcp=1,vlan_tci1=0x0000,dl_src=40:44:44:44:54:58,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=1
00000000  50 54 00 00 00 07 40 44-44 44 54 58 81 00 20 63
00000010  88 47 00 00 a1 40 45 00-00 28 00 00 00 00 40 06
00000020  f9 7c c0 a8 00 01 c0 a8-00 02 00 00 00 00 00 00
00000030  00 00 00 00 00 00 50 00-00 00 2e 91 00 00
OFPT_PACKET_IN (OF1.2): total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mpls,dl_vlan=99,dl_vlan_pcp=1,vlan_tci1=0x0000,dl_src=40:44:44:44:54:58,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=1
00000000  50 54 00 00 00 07 40 44-44 44 54 58 81 00 20 63
00000010  88 47 00 00 a1 40 45 00-00 28 00 00 00 00 40 06
00000020  f9 7c c0 a8 00 01 c0 a8-00 02 00 00 00 00 00 00
00000030  00 00 00 00 00 00 50 00-00 00 2e 91 00 00
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3934"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3960: ovs-ofctl --protocols=OpenFlow12 monitor br0 65534 -m -P standard --detach --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:3960"
( $at_check_trace; ovs-ofctl --protocols=OpenFlow12 monitor br0 65534 -m -P standard --detach --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3960"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=40:44:44:44:54:59,dst=50:54:00:00:00:07),eth_type(0x8100),vlan(vid=88,pcp=7),encap(eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no))'
done
$as_echo "ofproto-dpif.at:3965: waiting until test \`grep OFPT_PACKET_IN ofctl_monitor.log | wc -l\` -ge 3..." >&5
ovs_wait_cond () {
    test `grep OFPT_PACKET_IN ofctl_monitor.log | wc -l` -ge 3
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3965: wait failed" >&5

    $as_echo "ofproto-dpif.at:3965" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3965"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3966: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:3966"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3966"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3966: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:3966"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3966"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:3966: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:3966: wait failed" >&5

    $as_echo "ofproto-dpif.at:3966" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:3966"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3968: ofctl_strip < ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:3968"
( $at_check_trace; ofctl_strip < ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (OF1.2): total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mpls,dl_vlan=99,dl_vlan_pcp=1,vlan_tci1=0x0000,dl_src=40:44:44:44:54:59,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=1
00000000  50 54 00 00 00 07 40 44-44 44 54 59 81 00 20 63
00000010  88 47 00 00 a1 40 45 00-00 28 00 00 00 00 40 06
00000020  f9 7c c0 a8 00 01 c0 a8-00 02 00 00 00 00 00 00
00000030  00 00 00 00 00 00 50 00-00 00 2e 91 00 00
OFPT_PACKET_IN (OF1.2): total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mpls,dl_vlan=99,dl_vlan_pcp=1,vlan_tci1=0x0000,dl_src=40:44:44:44:54:59,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=1
00000000  50 54 00 00 00 07 40 44-44 44 54 59 81 00 20 63
00000010  88 47 00 00 a1 40 45 00-00 28 00 00 00 00 40 06
00000020  f9 7c c0 a8 00 01 c0 a8-00 02 00 00 00 00 00 00
00000030  00 00 00 00 00 00 50 00-00 00 2e 91 00 00
OFPT_PACKET_IN (OF1.2): total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
mpls,dl_vlan=99,dl_vlan_pcp=1,vlan_tci1=0x0000,dl_src=40:44:44:44:54:59,dl_dst=50:54:00:00:00:07,mpls_label=10,mpls_tc=0,mpls_ttl=64,mpls_bos=1
00000000  50 54 00 00 00 07 40 44-44 44 54 59 81 00 20 63
00000010  88 47 00 00 a1 40 45 00-00 28 00 00 00 00 40 06
00000020  f9 7c c0 a8 00 01 c0 a8-00 02 00 00 00 00 00 00
00000030  00 00 00 00 00 00 50 00-00 00 2e 91 00 00
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3968"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3991: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:3991"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3991"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:3992: ovs-ofctl --protocols=OpenFlow12 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:3992"
( $at_check_trace; ovs-ofctl --protocols=OpenFlow12 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0xa, n_packets=3, n_bytes=162, dl_src=40:44:44:44:54:50 actions=push_mpls:0x8847,load:0xa->OXM_OF_MPLS_LABEL[],push_vlan:0x8100,set_field:4195->vlan_vid,set_field:1->vlan_pcp,CONTROLLER:65535
 cookie=0xa, n_packets=3, n_bytes=162, dl_src=40:44:44:44:54:52 actions=push_mpls:0x8847,load:0xa->OXM_OF_MPLS_LABEL[],push_vlan:0x8100,load:0x63->OXM_OF_VLAN_VID[],set_field:1->vlan_pcp,CONTROLLER:65535
 cookie=0xa, n_packets=3, n_bytes=162, dl_src=40:44:44:44:54:54 actions=push_vlan:0x8100,set_field:4195->vlan_vid,set_field:1->vlan_pcp,push_mpls:0x8847,load:0xa->OXM_OF_MPLS_LABEL[],CONTROLLER:65535
 cookie=0xa, n_packets=3, n_bytes=162, dl_src=40:44:44:44:54:56 actions=push_vlan:0x8100,load:0x63->OXM_OF_VLAN_VID[],set_field:1->vlan_pcp,push_mpls:0x8847,load:0xa->OXM_OF_MPLS_LABEL[],CONTROLLER:65535
 cookie=0xa, n_packets=3, n_bytes=174, dl_src=40:44:44:44:54:51 actions=push_mpls:0x8847,load:0xa->OXM_OF_MPLS_LABEL[],push_vlan:0x8100,set_field:4195->vlan_vid,set_field:1->vlan_pcp,CONTROLLER:65535
 cookie=0xa, n_packets=3, n_bytes=174, dl_src=40:44:44:44:54:53 actions=push_mpls:0x8847,load:0xa->OXM_OF_MPLS_LABEL[],push_vlan:0x8100,load:0x63->OXM_OF_VLAN_VID[],set_field:1->vlan_pcp,CONTROLLER:65535
 cookie=0xa, n_packets=3, n_bytes=174, dl_src=40:44:44:44:54:55 actions=push_vlan:0x8100,set_field:4195->vlan_vid,set_field:1->vlan_pcp,push_mpls:0x8847,load:0xa->OXM_OF_MPLS_LABEL[],CONTROLLER:65535
 cookie=0xa, n_packets=3, n_bytes=174, dl_src=40:44:44:44:54:57 actions=push_vlan:0x8100,load:0x63->OXM_OF_VLAN_VID[],set_field:1->vlan_pcp,push_mpls:0x8847,load:0xa->OXM_OF_MPLS_LABEL[],CONTROLLER:65535
 cookie=0xa, n_packets=3, n_bytes=174, vlan_tci=0x1000/0x1000,dl_src=40:44:44:44:54:58 actions=load:0x63->OXM_OF_VLAN_VID[],set_field:1->vlan_pcp,push_mpls:0x8847,load:0xa->OXM_OF_MPLS_LABEL[],CONTROLLER:65535
 cookie=0xa, n_packets=3, n_bytes=174, vlan_tci=0x1000/0x1000,dl_src=40:44:44:44:54:59 actions=push_mpls:0x8847,load:0xa->OXM_OF_MPLS_LABEL[],set_field:1->vlan_pcp,load:0x63->OXM_OF_VLAN_VID[],CONTROLLER:65535
OFPST_FLOW reply (OF1.2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:3992"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4006: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:4006"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4006"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4006: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:4006"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4006"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4006: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:4006"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4006"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4006: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4006: wait failed" >&5

    $as_echo "ofproto-dpif.at:4006" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4006"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4006: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:4006"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4006"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4006: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:4006"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4006"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4006: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4006: wait failed" >&5

    $as_echo "ofproto-dpif.at:4006" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4006"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1096
#AT_START_1097
at_fn_group_banner 1097 'ofproto-dpif.at:4009' \
  "ofproto-dpif - fragment handling - trace" "       " 55
at_xfail=no
(
  $as_echo "1097. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4010: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:4010"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4010"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4010: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:4010"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4010"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4010: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4010"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4010"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4010: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:4010"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4010"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4010: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:4010"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4010"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4010: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4010"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4010"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4010: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:4010"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4010"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3 4 5 6 90
cat >flows.txt <<'_ATEOF'
priority=75 tcp ip_frag=no    tp_dst=80 actions=move:OXM_OF_TCP_DST[]->OXM_OF_TCP_SRC[],output:1
priority=75 tcp ip_frag=first tp_dst=80 actions=move:OXM_OF_TCP_DST[]->OXM_OF_TCP_SRC[],output:2
priority=50 tcp ip_frag=no              actions=move:OXM_OF_TCP_DST[]->OXM_OF_TCP_SRC[],output:4
priority=50 tcp ip_frag=first           actions=move:OXM_OF_TCP_DST[]->OXM_OF_TCP_SRC[],output:5
priority=50 tcp ip_frag=later           actions=output:6
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4019: ovs-ofctl replace-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:4019"
( $at_check_trace; ovs-ofctl replace-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4019"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


base_flow="in_port(90),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=128"
no_flow="$base_flow,frag=no),tcp(src=12345,dst=80)"
first_flow="$base_flow,frag=first),tcp(src=12345,dst=80)"
later_flow="$base_flow,frag=later)"

    # mode    no  first  later
for tuple in \
    'normal    1     5      6' \
    'drop      1  drop   drop' \
    'nx-match  1     2      6'
do
  set $tuple
  mode=$1
  no=$2
  first=$3
  later=$4

  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4038: ovs-ofctl set-frags br0 \$mode"
at_fn_check_prepare_dynamic "ovs-ofctl set-frags br0 $mode" "ofproto-dpif.at:4038"
( $at_check_trace; ovs-ofctl set-frags br0 $mode
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4038"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

  for type in no first later; do
    eval flow=\$${type}_flow exp_output=\$$type
    printf "\n%s\n" "----$mode $type-----"
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4042: ovs-appctl ofproto/trace ovs-dummy \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\"" "ofproto-dpif.at:4042"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4042"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    : > expout
    if test $mode = drop && test $type != no; then
        echo ' 0. Packets are IP fragments and the fragment handling mode is "drop".' >> expout
        echo "Datapath actions: $exp_output" >> expout
    elif test $type = later; then
        echo "Datapath actions: $exp_output" >> expout
    else
        echo "Datapath actions: set(tcp(src=80,dst=80)),$exp_output" >> expout
    fi
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4052: grep 'IP fragments' stdout; tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4052"
( $at_check_trace; grep 'IP fragments' stdout; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4052"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

  done
done
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4055: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:4055"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4055"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4055: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:4055"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4055"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4055: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:4055"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4055"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4055: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4055: wait failed" >&5

    $as_echo "ofproto-dpif.at:4055" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4055"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4055: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:4055"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4055"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4055: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:4055"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4055"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4055: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4055: wait failed" >&5

    $as_echo "ofproto-dpif.at:4055" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4055"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1097
#AT_START_1098
at_fn_group_banner 1098 'ofproto-dpif.at:4058' \
  "ofproto-dpif - fragment handling - upcall" "      " 55
at_xfail=no
(
  $as_echo "1098. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4059: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:4059"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4059"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4059: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:4059"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4059"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4059: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4059"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4059"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4059: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:4059"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4059"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4059: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:4059"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4059"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4059: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4059"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4059"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4059: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:4059"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4059"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3 4 5 6 90
cat >flows.txt <<'_ATEOF'
priority=75 tcp ip_frag=no    tp_dst=80 actions=set_field:81->tcp_dst,output:1
priority=75 tcp ip_frag=first tp_dst=80 actions=set_field:81->tcp_dst,output:2
priority=50 tcp ip_frag=no              actions=set_field:81->tcp_dst,output:4
priority=50 tcp ip_frag=first           actions=set_field:81->tcp_dst,output:5
priority=50 tcp ip_frag=later           actions=output:6
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4068: ovs-ofctl replace-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:4068"
( $at_check_trace; ovs-ofctl replace-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4068"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


base_flow="in_port(90),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=128"
no_flow="$base_flow,frag=no),tcp(src=12345,dst=80)"
first_flow="$base_flow,frag=first),tcp(src=12345,dst=80)"
later_flow="$base_flow,frag=later)"

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4075: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:4075"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4075"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


mode=normal

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4079: ovs-ofctl set-frags br0 \$mode"
at_fn_check_prepare_dynamic "ovs-ofctl set-frags br0 $mode" "ofproto-dpif.at:4079"
( $at_check_trace; ovs-ofctl set-frags br0 $mode
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4079"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

for type in no first later; do
  eval flow=\$${type}_flow
  printf "\n%s\n" "----$mode $type-----"

  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4084: ovs-appctl netdev-dummy/receive p90 \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl netdev-dummy/receive p90 \"$flow\"" "ofproto-dpif.at:4084"
( $at_check_trace; ovs-appctl netdev-dummy/receive p90 "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4084"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

done

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4087: ovs-appctl dpctl/dump-flows"
at_fn_check_prepare_trace "ofproto-dpif.at:4087"
( $at_check_trace; ovs-appctl dpctl/dump-flows
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=6,frag=no),tcp(dst=80), packets:0, bytes:0, used:never, actions:set(tcp(dst=81)),1
recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=6,frag=first),tcp(dst=80), packets:0, bytes:0, used:never, actions:set(tcp(dst=81)),5
recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=6,frag=later), packets:0, bytes:0, used:never, actions:6
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4087"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


mode=drop

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4096: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:4096"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4096"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4097: ovs-ofctl set-frags br0 \$mode"
at_fn_check_prepare_dynamic "ovs-ofctl set-frags br0 $mode" "ofproto-dpif.at:4097"
( $at_check_trace; ovs-ofctl set-frags br0 $mode
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4097"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

for type in no first later; do
  eval flow=\$${type}_flow
  printf "\n%s\n" "----$mode $type-----"

  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4102: ovs-appctl netdev-dummy/receive p90 \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl netdev-dummy/receive p90 \"$flow\"" "ofproto-dpif.at:4102"
( $at_check_trace; ovs-appctl netdev-dummy/receive p90 "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4102"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

done

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4105: ovs-appctl dpctl/dump-flows"
at_fn_check_prepare_trace "ofproto-dpif.at:4105"
( $at_check_trace; ovs-appctl dpctl/dump-flows
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=6,frag=no),tcp(dst=80), packets:0, bytes:0, used:never, actions:set(tcp(dst=81)),1
recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=first), packets:0, bytes:0, used:never, actions:drop
recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=later), packets:0, bytes:0, used:never, actions:drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4105"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


mode=nx-match

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4114: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:4114"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4114"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4115: ovs-ofctl set-frags br0 \$mode"
at_fn_check_prepare_dynamic "ovs-ofctl set-frags br0 $mode" "ofproto-dpif.at:4115"
( $at_check_trace; ovs-ofctl set-frags br0 $mode
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4115"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

for type in no first later; do
  eval flow=\$${type}_flow
  printf "\n%s\n" "----$mode $type-----"

  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4120: ovs-appctl netdev-dummy/receive p90 \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl netdev-dummy/receive p90 \"$flow\"" "ofproto-dpif.at:4120"
( $at_check_trace; ovs-appctl netdev-dummy/receive p90 "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4120"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

done

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4123: ovs-appctl dpctl/dump-flows"
at_fn_check_prepare_trace "ofproto-dpif.at:4123"
( $at_check_trace; ovs-appctl dpctl/dump-flows
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=6,frag=no),tcp(dst=80), packets:0, bytes:0, used:never, actions:set(tcp(dst=81)),1
recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=6,frag=first),tcp(dst=80), packets:0, bytes:0, used:never, actions:set(tcp(dst=81)),2
recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=6,frag=later), packets:0, bytes:0, used:never, actions:6
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4123"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4130: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:4130"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4130"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4130: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:4130"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4130"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4130: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:4130"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4130"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4130: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4130: wait failed" >&5

    $as_echo "ofproto-dpif.at:4130" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4130"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4130: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:4130"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4130"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4130: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:4130"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4130"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4130: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4130: wait failed" >&5

    $as_echo "ofproto-dpif.at:4130" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4130"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1098
#AT_START_1099
at_fn_group_banner 1099 'ofproto-dpif.at:4133' \
  "ofproto-dpif - fragment handling - actions" "     " 55
at_xfail=no
(
  $as_echo "1099. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4134: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:4134"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4134"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4134: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:4134"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4134"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4134: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4134"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4134"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4134: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:4134"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4134"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4134: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:4134"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4134"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4134: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4134"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4134"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4134: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:4134"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4134"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3 4 5 6 90

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4137: ovs-ofctl add-flow br0 \"tcp,ip_frag=later actions=move:OXM_OF_TCP_DST[0..7]->OXM_OF_TCP_SRC[0..7],output:1\""
at_fn_check_prepare_trace "ofproto-dpif.at:4137"
( $at_check_trace; ovs-ofctl add-flow br0 "tcp,ip_frag=later actions=move:OXM_OF_TCP_DST[0..7]->OXM_OF_TCP_SRC[0..7],output:1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto-dpif.at:4137"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4138: tail -2 stderr | sed 's/^.*|WARN|//'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:4138"
( $at_check_trace; tail -2 stderr | sed 's/^.*|WARN|//'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "source field tcp_dst lacks correct prerequisites
ovs-ofctl: actions are invalid with specified match (OFPBAC_MATCH_INCONSISTENT)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4138"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4143: ovs-ofctl -O OpenFlow15 add-flow br0 \"tcp,ip_frag=later actions=move:OXM_OF_PKT_REG0[0..7]->OXM_OF_TCP_SRC[0..7],output:1\""
at_fn_check_prepare_trace "ofproto-dpif.at:4143"
( $at_check_trace; ovs-ofctl -O OpenFlow15 add-flow br0 "tcp,ip_frag=later actions=move:OXM_OF_PKT_REG0[0..7]->OXM_OF_TCP_SRC[0..7],output:1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto-dpif.at:4143"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4144: tail -2 stderr | sed 's/^.*|WARN|//'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:4144"
( $at_check_trace; tail -2 stderr | sed 's/^.*|WARN|//'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "destination field tcp_src lacks correct prerequisites
ovs-ofctl: actions are invalid with specified match (OFPBAC_MATCH_INCONSISTENT)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4144"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4149: ovs-ofctl add-flow br0 \"udp,ip_frag=later actions=set_field:8888->udp_src,output:1\""
at_fn_check_prepare_trace "ofproto-dpif.at:4149"
( $at_check_trace; ovs-ofctl add-flow br0 "udp,ip_frag=later actions=set_field:8888->udp_src,output:1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto-dpif.at:4149"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4150: tail -2 stderr | sed 's/^.*|WARN|//'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:4150"
( $at_check_trace; tail -2 stderr | sed 's/^.*|WARN|//'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "set_field udp_src lacks correct prerequisites
ovs-ofctl: actions are invalid with specified match (OFPBAC_MATCH_INCONSISTENT)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4150"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4155: ovs-ofctl add-flow br0 \"udp,ip_frag=later actions=load:8888->NXM_OF_UDP_DST[],output:1\""
at_fn_check_prepare_trace "ofproto-dpif.at:4155"
( $at_check_trace; ovs-ofctl add-flow br0 "udp,ip_frag=later actions=load:8888->NXM_OF_UDP_DST[],output:1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto-dpif.at:4155"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4156: tail -2 stderr | sed 's/^.*|WARN|//'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:4156"
( $at_check_trace; tail -2 stderr | sed 's/^.*|WARN|//'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "set_field udp_dst lacks correct prerequisites
ovs-ofctl: actions are invalid with specified match (OFPBAC_MATCH_INCONSISTENT)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4156"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4161: ovs-ofctl add-flow br0 \"sctp,ip_frag=later actions=set_field:8888->sctp_src,output:1\""
at_fn_check_prepare_trace "ofproto-dpif.at:4161"
( $at_check_trace; ovs-ofctl add-flow br0 "sctp,ip_frag=later actions=set_field:8888->sctp_src,output:1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto-dpif.at:4161"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4162: tail -2 stderr | sed 's/^.*|WARN|//'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:4162"
( $at_check_trace; tail -2 stderr | sed 's/^.*|WARN|//'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "set_field sctp_src lacks correct prerequisites
ovs-ofctl: actions are invalid with specified match (OFPBAC_MATCH_INCONSISTENT)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4162"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4167: ovs-ofctl add-flow br0 \"sctp,ip_frag=later actions=set_field:8888->sctp_dst,output:1\""
at_fn_check_prepare_trace "ofproto-dpif.at:4167"
( $at_check_trace; ovs-ofctl add-flow br0 "sctp,ip_frag=later actions=set_field:8888->sctp_dst,output:1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto-dpif.at:4167"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4168: tail -2 stderr | sed 's/^.*|WARN|//'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:4168"
( $at_check_trace; tail -2 stderr | sed 's/^.*|WARN|//'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "set_field sctp_dst lacks correct prerequisites
ovs-ofctl: actions are invalid with specified match (OFPBAC_MATCH_INCONSISTENT)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4168"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4173: ovs-ofctl add-flow br0 \"tcp,ip_frag=later actions=learn(table=1,hard_timeout=60,eth_type=0x800,nw_proto=6,NXM_OF_IP_SRC[]=NXM_OF_IP_DST[],NXM_OF_TCP_SRC[]=NXM_OF_TCP_DST[],output:NXM_NX_REG0[0..15]),output:1\""
at_fn_check_prepare_trace "ofproto-dpif.at:4173"
( $at_check_trace; ovs-ofctl add-flow br0 "tcp,ip_frag=later actions=learn(table=1,hard_timeout=60,eth_type=0x800,nw_proto=6,NXM_OF_IP_SRC[]=NXM_OF_IP_DST[],NXM_OF_TCP_SRC[]=NXM_OF_TCP_DST[],output:NXM_NX_REG0[0..15]),output:1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto-dpif.at:4173"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4174: tail -2 stderr | sed 's/^.*|WARN|//'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:4174"
( $at_check_trace; tail -2 stderr | sed 's/^.*|WARN|//'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "source field tcp_dst lacks correct prerequisites
ovs-ofctl: actions are invalid with specified match (OFPBAC_MATCH_INCONSISTENT)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4174"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
priority=75 tcp actions=load:42->OXM_OF_TCP_SRC[0..7],output:1
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4182: ovs-ofctl -O OpenFlow12 replace-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:4182"
( $at_check_trace; ovs-ofctl -O OpenFlow12 replace-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4182"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4184: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:4184"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4184"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


mode=normal

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4188: ovs-ofctl set-frags br0 \$mode"
at_fn_check_prepare_dynamic "ovs-ofctl set-frags br0 $mode" "ofproto-dpif.at:4188"
( $at_check_trace; ovs-ofctl set-frags br0 $mode
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4188"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

for frag in 4000 6000 6008 4010; do
  printf "\n%s\n" "----$mode $frag-----"

  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4192: ovs-appctl netdev-dummy/receive p90 \"0021853763af 0026b98cb0f9 0800 4500 003c 2e24 \$frag 40 06 465d ac11370d ac11370b 828b 0016 751e267b 00000000 a002 16d0 1736 0000 02 04 05 b4 04 02 08 0a 2d 25 08 5f 00 00 00 00 01 03 03 07\""
at_fn_check_prepare_dynamic "ovs-appctl netdev-dummy/receive p90 \"0021853763af 0026b98cb0f9 0800 4500 003c 2e24 $frag 40 06 465d ac11370d ac11370b 828b 0016 751e267b 00000000 a002 16d0 1736 0000 02 04 05 b4 04 02 08 0a 2d 25 08 5f 00 00 00 00 01 03 03 07\"" "ofproto-dpif.at:4192"
( $at_check_trace; ovs-appctl netdev-dummy/receive p90 "0021853763af 0026b98cb0f9 0800 4500 003c 2e24 $frag 40 06 465d ac11370d ac11370b 828b 0016 751e267b 00000000 a002 16d0 1736 0000 02 04 05 b4 04 02 08 0a 2d 25 08 5f 00 00 00 00 01 03 03 07"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4192"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

done

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4198: ovs-appctl dpctl/dump-flows | sed 's/used:[0-9].[0-9]*s/used:0.001s/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:4198"
( $at_check_trace; ovs-appctl dpctl/dump-flows | sed 's/used:[0-9].[0-9]*s/used:0.001s/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=6,frag=no),tcp(src=33419/0xff), packets:0, bytes:0, used:never, actions:set(tcp(src=42/0xff)),1
recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=6,frag=first),tcp(src=33419/0xff), packets:0, bytes:0, used:never, actions:set(tcp(src=42/0xff)),1
recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=6,frag=later), packets:1, bytes:74, used:0.001s, actions:1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4198"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4205: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:4205"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4205"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4206: ovs-ofctl set-frags br0 \$mode"
at_fn_check_prepare_dynamic "ovs-ofctl set-frags br0 $mode" "ofproto-dpif.at:4206"
( $at_check_trace; ovs-ofctl set-frags br0 $mode
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4206"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

for frag in 4000 6000 6008 4010; do
  printf "\n%s\n" "----$mode $frag truncated transport header -----"

  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4210: ovs-appctl netdev-dummy/receive p90 \"0021853763af 0026b98cb0f9 0800 4500 0018 2e24 \$frag 40 06 465d ac11370d ac11370b 828b 0016\""
at_fn_check_prepare_dynamic "ovs-appctl netdev-dummy/receive p90 \"0021853763af 0026b98cb0f9 0800 4500 0018 2e24 $frag 40 06 465d ac11370d ac11370b 828b 0016\"" "ofproto-dpif.at:4210"
( $at_check_trace; ovs-appctl netdev-dummy/receive p90 "0021853763af 0026b98cb0f9 0800 4500 0018 2e24 $frag 40 06 465d ac11370d ac11370b 828b 0016"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4210"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

done

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4213: ovs-appctl dpctl/dump-flows | sed 's/used:[0-9].[0-9]*s/used:0.001s/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:4213"
( $at_check_trace; ovs-appctl dpctl/dump-flows | sed 's/used:[0-9].[0-9]*s/used:0.001s/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=6,frag=no),tcp(src=0/0xff), packets:0, bytes:0, used:never, actions:set(tcp(src=42/0xff)),1
recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=6,frag=first),tcp(src=0/0xff), packets:0, bytes:0, used:never, actions:set(tcp(src=42/0xff)),1
recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=6,frag=later), packets:1, bytes:38, used:0.001s, actions:1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4213"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4220: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:4220"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4220"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4221: ovs-ofctl set-frags br0 \$mode"
at_fn_check_prepare_dynamic "ovs-ofctl set-frags br0 $mode" "ofproto-dpif.at:4221"
( $at_check_trace; ovs-ofctl set-frags br0 $mode
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4221"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

for frag in 4000 6000 6001 4002; do
  printf "\n%s\n" "----$mode $frag missing transport header-----"

  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4225: ovs-appctl netdev-dummy/receive p90 \"0021853763af 0026b98cb0f9 0800 4500 0014 2e24 \$frag 40 06 465d ac11370d ac11370b\""
at_fn_check_prepare_dynamic "ovs-appctl netdev-dummy/receive p90 \"0021853763af 0026b98cb0f9 0800 4500 0014 2e24 $frag 40 06 465d ac11370d ac11370b\"" "ofproto-dpif.at:4225"
( $at_check_trace; ovs-appctl netdev-dummy/receive p90 "0021853763af 0026b98cb0f9 0800 4500 0014 2e24 $frag 40 06 465d ac11370d ac11370b"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4225"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

done

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4228: ovs-appctl dpctl/dump-flows | sed 's/used:[0-9].[0-9]*s/used:0.001s/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:4228"
( $at_check_trace; ovs-appctl dpctl/dump-flows | sed 's/used:[0-9].[0-9]*s/used:0.001s/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=6,frag=no),tcp(src=0/0xff), packets:0, bytes:0, used:never, actions:set(tcp(src=42/0xff)),1
recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=6,frag=first),tcp(src=0/0xff), packets:0, bytes:0, used:never, actions:set(tcp(src=42/0xff)),1
recirc_id(0),in_port(90),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=6,frag=later), packets:1, bytes:34, used:0.001s, actions:1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4228"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4235: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:4235"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4235"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4235: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:4235"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4235"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4235: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:4235"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4235"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4235: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4235: wait failed" >&5

    $as_echo "ofproto-dpif.at:4235" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4235"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4235: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:4235"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4235"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4235: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:4235"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4235"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4235: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4235: wait failed" >&5

    $as_echo "ofproto-dpif.at:4235" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4235"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1099
#AT_START_1100
at_fn_group_banner 1100 'ofproto-dpif.at:4238' \
  "ofproto-dpif - exit" "                            " 55
at_xfail=no
(
  $as_echo "1100. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4239: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:4239"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4239"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4239: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:4239"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4239"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4239: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4239"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4239"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4239: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:4239"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4239"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4239: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:4239"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4239"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4239: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4239"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4239"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4239: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:4239"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4239"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3 10 11 12 13 14
cat >flows.txt <<'_ATEOF'
in_port=1 actions=output:10,exit,output:11
in_port=2 actions=output:12,resubmit:1,output:12
in_port=3 actions=output:13,resubmit:2,output:14
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4246: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:4246"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4246"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4247: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:4247"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4247"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4248: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4248"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 10
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4248"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4251: ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:4251"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4251"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4252: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4252"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 12,10
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4252"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4255: ovs-appctl ofproto/trace ovs-dummy 'in_port(3),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:4255"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(3),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4255"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4256: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4256"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 13,12,10
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4256"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4259: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:4259"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4259"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4259: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:4259"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4259"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4259: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:4259"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4259"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4259: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4259: wait failed" >&5

    $as_echo "ofproto-dpif.at:4259" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4259"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4259: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:4259"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4259"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4259: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:4259"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4259"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4259: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4259: wait failed" >&5

    $as_echo "ofproto-dpif.at:4259" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4259"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1100
#AT_START_1101
at_fn_group_banner 1101 'ofproto-dpif.at:4263' \
  "ofproto-dpif - mirroring, select_all" "           " 55
at_xfail=no
(
  $as_echo "1101. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4265: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:4265"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4265"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4265: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:4265"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4265"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4265: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4265"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4265"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4265: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:4265"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4265"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4265: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:4265"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4265"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4265: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4265"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4265"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4265: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:4265"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4265"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3
ovs-vsctl \
        set Bridge br0 mirrors=@m --\
        --id=@p3 get Port p3 --\
        --id=@m create Mirror name=mymirror select_all=true output_port=@p3

cat >flows.txt <<'_ATEOF'
in_port=1 actions=output:2
in_port=2 actions=output:1
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4276: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:4276"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4276"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


flow="in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4279: ovs-appctl ofproto/trace ovs-dummy \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\"" "ofproto-dpif.at:4279"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4279"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4280: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4280"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 3,2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4280"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


flow="in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4285: ovs-appctl ofproto/trace ovs-dummy \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\"" "ofproto-dpif.at:4285"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4285"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4286: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4286"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 3,1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4286"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4290: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:4290"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4290"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4290: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:4290"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4290"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4290: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:4290"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4290"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4290: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4290: wait failed" >&5

    $as_echo "ofproto-dpif.at:4290" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4290"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4290: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:4290"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4290"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4290: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:4290"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4290"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4290: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4290: wait failed" >&5

    $as_echo "ofproto-dpif.at:4290" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4290"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1101
#AT_START_1102
at_fn_group_banner 1102 'ofproto-dpif.at:4294' \
  "ofproto-dpif - mirroring, select_src" "           " 55
at_xfail=no
(
  $as_echo "1102. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4296: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:4296"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4296"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4296: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:4296"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4296"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4296: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4296"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4296"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4296: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:4296"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4296"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4296: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:4296"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4296"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4296: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4296"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4296"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4296: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:4296"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4296"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3
ovs-vsctl \
        set Bridge br0 mirrors=@m --\
        --id=@p1 get Port p1 -- --id=@p3 get Port p3 --\
        --id=@m create Mirror name=mymirror select_src_port=@p1 output_port=@p3

cat >flows.txt <<'_ATEOF'
in_port=1 actions=output:2
in_port=2 actions=output:1
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4307: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:4307"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4307"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


flow="in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4310: ovs-appctl ofproto/trace ovs-dummy \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\"" "ofproto-dpif.at:4310"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4310"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4311: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4311"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 3,2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4311"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


flow="in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4316: ovs-appctl ofproto/trace ovs-dummy \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\"" "ofproto-dpif.at:4316"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4316"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4317: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4317"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4317"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4320: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:4320"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4320"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4320: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:4320"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4320"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4320: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:4320"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4320"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4320: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4320: wait failed" >&5

    $as_echo "ofproto-dpif.at:4320" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4320"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4320: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:4320"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4320"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4320: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:4320"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4320"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4320: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4320: wait failed" >&5

    $as_echo "ofproto-dpif.at:4320" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4320"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1102
#AT_START_1103
at_fn_group_banner 1103 'ofproto-dpif.at:4323' \
  "ofproto-dpif - mirroring, OFPP_NONE ingress port" "" 55
at_xfail=no
(
  $as_echo "1103. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4325: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:4325"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4325"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4325: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:4325"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4325"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4325: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4325"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4325"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4325: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:4325"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4325"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4325: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:4325"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4325"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4325: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4325"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4325"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4325: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:4325"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4325"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2
ovs-vsctl \
        set Bridge br0 mirrors=@m --\
        --id=@p2 get Port p2 --\
        --id=@m create Mirror name=mymirror select_all=true output_port=@p2

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4332: ovs-ofctl add-flow br0 action=output:1"
at_fn_check_prepare_trace "ofproto-dpif.at:4332"
( $at_check_trace; ovs-ofctl add-flow br0 action=output:1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4332"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# "in_port" defaults to OFPP_NONE if it's not specified.
flow="icmp,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_ttl=128,icmp_type=8,icmp_code=0"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4336: ovs-appctl ofproto/trace br0 \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace br0 \"$flow\"" "ofproto-dpif.at:4336"
( $at_check_trace; ovs-appctl ofproto/trace br0 "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4336"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4337: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4337"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 1,2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4337"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4341: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:4341"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4341"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4341: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:4341"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4341"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4341: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:4341"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4341"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4341: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4341: wait failed" >&5

    $as_echo "ofproto-dpif.at:4341" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4341"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4341: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:4341"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4341"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4341: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:4341"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4341"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4341: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4341: wait failed" >&5

    $as_echo "ofproto-dpif.at:4341" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4341"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1103
#AT_START_1104
at_fn_group_banner 1104 'ofproto-dpif.at:4345' \
  "ofproto-dpif - mirroring, select_dst" "           " 55
at_xfail=no
(
  $as_echo "1104. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4347: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:4347"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4347"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4347: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:4347"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4347"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4347: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4347"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4347"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4347: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:4347"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4347"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4347: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:4347"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4347"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4347: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4347"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4347"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4347: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:4347"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4347"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3
ovs-vsctl \
        set Bridge br0 mirrors=@m --\
        --id=@p2 get Port p2 -- --id=@p3 get Port p3 --\
        --id=@m create Mirror name=mymirror select_dst_port=@p2 output_port=@p3

cat >flows.txt <<'_ATEOF'
in_port=1 actions=output:2
in_port=2 actions=output:1
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4358: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:4358"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4358"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


flow="in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4361: ovs-appctl ofproto/trace ovs-dummy \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\"" "ofproto-dpif.at:4361"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4361"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4362: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4362"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 2,3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4362"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


flow="in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4367: ovs-appctl ofproto/trace ovs-dummy \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\"" "ofproto-dpif.at:4367"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4367"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4368: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4368"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4368"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4372: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:4372"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4372"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4372: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:4372"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4372"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4372: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:4372"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4372"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4372: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4372: wait failed" >&5

    $as_echo "ofproto-dpif.at:4372" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4372"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4372: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:4372"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4372"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4372: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:4372"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4372"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4372: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4372: wait failed" >&5

    $as_echo "ofproto-dpif.at:4372" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4372"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1104
#AT_START_1105
at_fn_group_banner 1105 'ofproto-dpif.at:4376' \
  "ofproto-dpif - mirroring, select_vlan" "          " 55
at_xfail=no
(
  $as_echo "1105. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4378: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:4378"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4378"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4378: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:4378"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4378"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4378: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4378"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4378"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4378: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:4378"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4378"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4378: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:4378"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4378"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4378: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4378"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4378"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4378: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:4378"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4378"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3
ovs-vsctl \
        set Bridge br0 mirrors=@m --\
        --id=@p2 get Port p2 -- --id=@p3 get Port p3 --\
        --id=@m create Mirror name=mymirror select_all=true select_vlan=11 output_port=@p3

cat >flows.txt <<'_ATEOF'
in_port=1, actions=output:2
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4388: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:4388"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4388"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


flow="in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4391: ovs-appctl ofproto/trace ovs-dummy \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\"" "ofproto-dpif.at:4391"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4391"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4392: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4392"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4392"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


flow="in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x8100),vlan(vid=10,pcp=0),encap(eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0))"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4397: ovs-appctl ofproto/trace ovs-dummy \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\"" "ofproto-dpif.at:4397"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4397"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4398: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4398"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4398"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


flow="in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x8100),vlan(vid=11,pcp=0),encap(eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0))"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4403: ovs-appctl ofproto/trace ovs-dummy \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\"" "ofproto-dpif.at:4403"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4403"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4404: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4404"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 3,2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4404"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4408: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:4408"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4408"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4408: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:4408"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4408"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4408: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:4408"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4408"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4408: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4408: wait failed" >&5

    $as_echo "ofproto-dpif.at:4408" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4408"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4408: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:4408"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4408"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4408: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:4408"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4408"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4408: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4408: wait failed" >&5

    $as_echo "ofproto-dpif.at:4408" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4408"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1105
#AT_START_1106
at_fn_group_banner 1106 'ofproto-dpif.at:4412' \
  "ofproto-dpif - mirroring, output_port" "          " 55
at_xfail=no
(
  $as_echo "1106. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4414: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:4414"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4414"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4414: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:4414"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4414"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4414: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4414"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4414"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4414: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:4414"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4414"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4414: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:4414"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4414"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4414: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4414"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4414"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4414: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:4414"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4414"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3
ovs-vsctl \
        set Bridge br0 mirrors=@m --\
        --id=@p3 get Port p3 --\
        --id=@m create Mirror name=mymirror select_all=true output_port=@p3

cat >flows.txt <<'_ATEOF'
in_port=1 actions=mod_vlan_vid:17,output:2
in_port=2 actions=output:1
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4425: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:4425"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4425"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


flow="in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4428: ovs-appctl ofproto/trace ovs-dummy \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\"" "ofproto-dpif.at:4428"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4428"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4429: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4429"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 3,push_vlan(vid=17,pcp=0),2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4429"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


flow="in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4434: ovs-appctl ofproto/trace ovs-dummy \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\"" "ofproto-dpif.at:4434"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4434"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4435: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4435"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 3,1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4435"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4439: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:4439"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4439"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4439: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:4439"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4439"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4439: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:4439"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4439"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4439: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4439: wait failed" >&5

    $as_echo "ofproto-dpif.at:4439" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4439"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4439: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:4439"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4439"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4439: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:4439"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4439"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4439: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4439: wait failed" >&5

    $as_echo "ofproto-dpif.at:4439" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4439"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1106
#AT_START_1107
at_fn_group_banner 1107 'ofproto-dpif.at:4442' \
  "ofproto-dpif - mirroring, output_vlan" "          " 55
at_xfail=no
(
  $as_echo "1107. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4444: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:4444"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4444"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4444: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:4444"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4444"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4444: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4444"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4444"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4444: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:4444"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4444"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4444: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:4444"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4444"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4444: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4444"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4444"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4444: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:4444"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4444"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2
ovs-vsctl \
        set Bridge br0 mirrors=@m --\
        --id=@m create Mirror name=mymirror select_all=true output_vlan=12

cat >flows.txt <<'_ATEOF'
in_port=1 actions=output:2
in_port=2 actions=mod_vlan_vid:17,output:1
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4454: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:4454"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4454"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


flow="in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4457: ovs-appctl ofproto/trace ovs-dummy \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\"" "ofproto-dpif.at:4457"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4457"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

actual=`tail -1 stdout | sed 's/Datapath actions: //'`

expected="2,push_vlan(vid=12,pcp=0),1,2,100"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4461: ovs-dpctl normalize-actions \"\$flow\" \"\$expected\""
at_fn_check_prepare_dynamic "ovs-dpctl normalize-actions \"$flow\" \"$expected\"" "ofproto-dpif.at:4461"
( $at_check_trace; ovs-dpctl normalize-actions "$flow" "$expected"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4461"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

mv stdout expout
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4463: ovs-dpctl normalize-actions \"\$flow\" \"\$actual\""
at_fn_check_prepare_dynamic "ovs-dpctl normalize-actions \"$flow\" \"$actual\"" "ofproto-dpif.at:4463"
( $at_check_trace; ovs-dpctl normalize-actions "$flow" "$actual"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4463"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


flow="in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4466: ovs-appctl ofproto/trace ovs-dummy \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\"" "ofproto-dpif.at:4466"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4466"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

actual=`tail -1 stdout | sed 's/Datapath actions: //'`

expected="push_vlan(vid=17,pcp=0),1,pop_vlan,push_vlan(vid=12,pcp=0),1,2,100"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4470: ovs-dpctl normalize-actions \"\$flow\" \"\$expected\""
at_fn_check_prepare_dynamic "ovs-dpctl normalize-actions \"$flow\" \"$expected\"" "ofproto-dpif.at:4470"
( $at_check_trace; ovs-dpctl normalize-actions "$flow" "$expected"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4470"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

mv stdout expout
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4472: ovs-dpctl normalize-actions \"\$flow\" \"\$actual\""
at_fn_check_prepare_dynamic "ovs-dpctl normalize-actions \"$flow\" \"$actual\"" "ofproto-dpif.at:4472"
( $at_check_trace; ovs-dpctl normalize-actions "$flow" "$actual"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4472"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4474: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:4474"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4474"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4474: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:4474"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4474"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4474: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:4474"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4474"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4474: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4474: wait failed" >&5

    $as_echo "ofproto-dpif.at:4474" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4474"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4474: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:4474"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4474"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4474: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:4474"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4474"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4474: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4474: wait failed" >&5

    $as_echo "ofproto-dpif.at:4474" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4474"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1107
#AT_START_1108
at_fn_group_banner 1108 'ofproto-dpif.at:4479' \
  "ofproto-dpif - multiple VLAN output mirrors" "    " 55
at_xfail=no
(
  $as_echo "1108. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4481: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:4481"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4481"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4481: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:4481"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4481"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4481: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4481"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4481"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4481: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:4481"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4481"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4481: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:4481"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4481"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4481: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4481"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4481"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4481: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:4481"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4481"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3
ovs-vsctl \
        -- set Bridge br0 fail-mode=standalone mirrors=@m1,@m2 \
	-- --id=@m1 create Mirror name=m1 select_all=true output_vlan=500 \
	-- --id=@m2 create Mirror name=m2 select_all=true output_vlan=501 \
	-- set Port br0 tag=0 \
	-- set Port p1 tag=0 \
	-- set Port p2 tag=500 \
	-- set Port p3 tag=501

flow='in_port=1'
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4493: ovs-appctl ofproto/trace br0 \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace br0 \"$flow\"" "ofproto-dpif.at:4493"
( $at_check_trace; ovs-appctl ofproto/trace br0 "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4493"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4494: tail -1 stdout | sed 's/Datapath actions: //
s/,/\\
/g' | sort"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4494"
( $at_check_trace; tail -1 stdout | sed 's/Datapath actions: //
s/,/\
/g' | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "100
2
3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4494"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4501: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:4501"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4501"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4501: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:4501"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4501"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4501: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:4501"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4501"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4501: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4501: wait failed" >&5

    $as_echo "ofproto-dpif.at:4501" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4501"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4501: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:4501"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4501"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4501: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:4501"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4501"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4501: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4501: wait failed" >&5

    $as_echo "ofproto-dpif.at:4501" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4501"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1108
#AT_START_1109
at_fn_group_banner 1109 'ofproto-dpif.at:4508' \
  "ofproto-dpif - mirroring with recirculation" "    " 55
at_xfail=no
(
  $as_echo "1109. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4510: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:4510"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4510"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4510: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:4510"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4510"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4510: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4510"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4510"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4510: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:4510"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4510"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4510: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:4510"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4510"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4510: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4510"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4510"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4510: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:4510"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4510"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3 4
ovs-vsctl \
        set Bridge br0 mirrors=@m --\
        --id=@p3 get Port p3 --\
        --id=@m create Mirror name=mymirror select_all=true output_port=@p3

cat >flows.txt <<'_ATEOF'
in_port=1 actions=2,debug_recirc,4
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4520: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:4520"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4520"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


flow="in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4523: ovs-appctl ofproto/trace ovs-dummy \"\$flow\" -generate"
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\" -generate" "ofproto-dpif.at:4523"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow" -generate
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4523"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4524: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4524"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 3,2,recirc(0x1)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4524"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4526: ovs-appctl ofproto/trace ovs-dummy \"\$flow,recirc_id(1)\" -generate"
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow,recirc_id(1)\" -generate" "ofproto-dpif.at:4526"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow,recirc_id(1)" -generate
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4526"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4527: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4527"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 4
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4527"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4530: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:4530"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4530"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4530: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:4530"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4530"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4530: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:4530"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4530"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4530: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4530: wait failed" >&5

    $as_echo "ofproto-dpif.at:4530" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4530"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4530: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:4530"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4530"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4530: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:4530"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4530"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4530: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4530: wait failed" >&5

    $as_echo "ofproto-dpif.at:4530" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4530"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1109
#AT_START_1110
at_fn_group_banner 1110 'ofproto-dpif.at:4534' \
  "ofproto-dpif - mirroring, select_all with snaplen" "" 55
at_xfail=no
(
  $as_echo "1110. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4536: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:4536"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4536"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4536: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:4536"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4536"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4536: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4536"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4536"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4536: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:4536"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4536"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4536: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:4536"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4536"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4536: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4536"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4536"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4536: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:4536"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4536"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3
ovs-vsctl \
        set Bridge br0 mirrors=@m --\
        --id=@p3 get Port p3 --\
        --id=@m create Mirror name=mymirror select_all=true output_port=@p3 snaplen=100

cat >flows.txt <<'_ATEOF'
in_port=1 actions=output:2
in_port=2 actions=output:1
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4547: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:4547"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4547"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


flow="in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4550: ovs-appctl ofproto/trace ovs-dummy \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\"" "ofproto-dpif.at:4550"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4550"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4551: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4551"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: trunc(100),3,2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4551"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


flow="in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4556: ovs-appctl ofproto/trace ovs-dummy \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\"" "ofproto-dpif.at:4556"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4556"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4557: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4557"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: trunc(100),3,1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4557"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4561: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:4561"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4561"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4561: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:4561"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4561"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4561: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:4561"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4561"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4561: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4561: wait failed" >&5

    $as_echo "ofproto-dpif.at:4561" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4561"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4561: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:4561"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4561"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4561: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:4561"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4561"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4561: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4561: wait failed" >&5

    $as_echo "ofproto-dpif.at:4561" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4561"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1110
#AT_START_1111
at_fn_group_banner 1111 'ofproto-dpif.at:4564' \
  "ofproto-dpif - mirroring, select_all with snaplen and reset snaplen" "" 55
at_xfail=no
(
  $as_echo "1111. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4566: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:4566"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4566"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4566: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:4566"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4566"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4566: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4566"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4566"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4566: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:4566"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4566"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4566: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:4566"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4566"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4566: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4566"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4566"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4566: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:4566"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4566"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3
ovs-vsctl \
        set Bridge br0 mirrors=@m --\
        --id=@p3 get Port p3 --\
        --id=@m create Mirror name=mymirror select_all=true output_port=@p3 snaplen=100

cat >flows.txt <<'_ATEOF'
in_port=1 actions=output:2
in_port=2 actions=output:1
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4577: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:4577"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4577"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


flow="in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4580: ovs-appctl ofproto/trace ovs-dummy \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\"" "ofproto-dpif.at:4580"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4580"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4581: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4581"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: trunc(100),3,2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4581"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-vsctl set mirror mymirror snaplen=77

flow="in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4588: ovs-appctl ofproto/trace ovs-dummy \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\"" "ofproto-dpif.at:4588"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4588"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4589: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4589"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: trunc(77),3,1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4589"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-vsctl set mirror mymirror snaplen=65535

flow="in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4596: ovs-appctl ofproto/trace ovs-dummy \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\"" "ofproto-dpif.at:4596"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4596"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4597: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4597"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 3,1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4597"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4601: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:4601"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4601"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4601: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:4601"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4601"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4601: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:4601"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4601"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4601: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4601: wait failed" >&5

    $as_echo "ofproto-dpif.at:4601" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4601"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4601: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:4601"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4601"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4601: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:4601"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4601"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4601: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4601: wait failed" >&5

    $as_echo "ofproto-dpif.at:4601" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4601"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1111
#AT_START_1112
at_fn_group_banner 1112 'ofproto-dpif.at:4604' \
  "ofproto-dpif - mirroring, select_src with snaplen" "" 55
at_xfail=no
(
  $as_echo "1112. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4606: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:4606"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4606"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4606: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:4606"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4606"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4606: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4606"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4606"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4606: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:4606"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4606"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4606: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:4606"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4606"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4606: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4606"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4606"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4606: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:4606"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4606"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3
ovs-vsctl \
        set Bridge br0 mirrors=@m --\
        --id=@p1 get Port p1 -- --id=@p3 get Port p3 --\
        --id=@m create Mirror name=mymirror select_src_port=@p1 output_port=@p3 snaplen=100

cat >flows.txt <<'_ATEOF'
in_port=1 actions=output:2
in_port=2 actions=output:1
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4617: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:4617"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4617"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


flow="in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4620: ovs-appctl ofproto/trace ovs-dummy \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\"" "ofproto-dpif.at:4620"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4620"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4621: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4621"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: trunc(100),3,2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4621"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


flow="in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4626: ovs-appctl ofproto/trace ovs-dummy \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\"" "ofproto-dpif.at:4626"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4626"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4627: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4627"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4627"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4630: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:4630"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4630"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4630: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:4630"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4630"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4630: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:4630"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4630"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4630: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4630: wait failed" >&5

    $as_echo "ofproto-dpif.at:4630" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4630"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4630: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:4630"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4630"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4630: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:4630"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4630"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4630: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4630: wait failed" >&5

    $as_echo "ofproto-dpif.at:4630" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4630"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1112
#AT_START_1113
at_fn_group_banner 1113 'ofproto-dpif.at:4633' \
  "ofproto-dpif - mirroring, OFPP_NONE ingress port with snaplen" "" 55
at_xfail=no
(
  $as_echo "1113. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4635: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:4635"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4635"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4635: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:4635"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4635"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4635: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4635"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4635"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4635: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:4635"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4635"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4635: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:4635"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4635"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4635: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4635"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4635"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4635: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:4635"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4635"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2
ovs-vsctl \
        set Bridge br0 mirrors=@m --\
        --id=@p2 get Port p2 --\
        --id=@m create Mirror name=mymirror select_all=true output_port=@p2 snaplen=100

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4642: ovs-ofctl add-flow br0 action=output:1"
at_fn_check_prepare_trace "ofproto-dpif.at:4642"
( $at_check_trace; ovs-ofctl add-flow br0 action=output:1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4642"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# "in_port" defaults to OFPP_NONE if it's not specified.
flow="icmp,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_ttl=128,icmp_type=8,icmp_code=0"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4646: ovs-appctl ofproto/trace br0 \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace br0 \"$flow\"" "ofproto-dpif.at:4646"
( $at_check_trace; ovs-appctl ofproto/trace br0 "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4646"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4647: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4647"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 1,trunc(100),2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4647"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4651: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:4651"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4651"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4651: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:4651"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4651"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4651: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:4651"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4651"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4651: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4651: wait failed" >&5

    $as_echo "ofproto-dpif.at:4651" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4651"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4651: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:4651"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4651"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4651: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:4651"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4651"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4651: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4651: wait failed" >&5

    $as_echo "ofproto-dpif.at:4651" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4651"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1113
#AT_START_1114
at_fn_group_banner 1114 'ofproto-dpif.at:4654' \
  "ofproto-dpif - mirroring, select_dst with snaplen" "" 55
at_xfail=no
(
  $as_echo "1114. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4656: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:4656"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4656"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4656: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:4656"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4656"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4656: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4656"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4656"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4656: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:4656"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4656"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4656: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:4656"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4656"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4656: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4656"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4656"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4656: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:4656"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4656"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3
ovs-vsctl \
        set Bridge br0 mirrors=@m --\
        --id=@p2 get Port p2 -- --id=@p3 get Port p3 --\
        --id=@m create Mirror name=mymirror select_dst_port=@p2 output_port=@p3 snaplen=100

cat >flows.txt <<'_ATEOF'
in_port=1 actions=output:2
in_port=2 actions=output:1
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4667: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:4667"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4667"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


flow="in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4670: ovs-appctl ofproto/trace ovs-dummy \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\"" "ofproto-dpif.at:4670"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4670"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4671: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4671"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 2,trunc(100),3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4671"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


flow="in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4676: ovs-appctl ofproto/trace ovs-dummy \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\"" "ofproto-dpif.at:4676"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4676"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4677: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4677"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4677"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4681: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:4681"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4681"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4681: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:4681"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4681"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4681: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:4681"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4681"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4681: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4681: wait failed" >&5

    $as_echo "ofproto-dpif.at:4681" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4681"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4681: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:4681"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4681"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4681: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:4681"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4681"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4681: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4681: wait failed" >&5

    $as_echo "ofproto-dpif.at:4681" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4681"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1114
#AT_START_1115
at_fn_group_banner 1115 'ofproto-dpif.at:4684' \
  "ofproto-dpif - mirroring, select_vlan with snaplen" "" 55
at_xfail=no
(
  $as_echo "1115. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4686: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:4686"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4686"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4686: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:4686"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4686"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4686: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4686"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4686"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4686: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:4686"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4686"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4686: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:4686"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4686"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4686: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4686"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4686"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4686: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:4686"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4686"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3
ovs-vsctl \
        set Bridge br0 mirrors=@m --\
        --id=@p2 get Port p2 -- --id=@p3 get Port p3 --\
        --id=@m create Mirror name=mymirror select_all=true select_vlan=11 output_port=@p3 snaplen=100

cat >flows.txt <<'_ATEOF'
in_port=1, actions=output:2
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4696: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:4696"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4696"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


flow="in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4699: ovs-appctl ofproto/trace ovs-dummy \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\"" "ofproto-dpif.at:4699"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4699"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4700: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4700"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4700"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


flow="in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x8100),vlan(vid=10,pcp=0),encap(eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0))"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4705: ovs-appctl ofproto/trace ovs-dummy \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\"" "ofproto-dpif.at:4705"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4705"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4706: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4706"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4706"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


flow="in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x8100),vlan(vid=11,pcp=0),encap(eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0))"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4711: ovs-appctl ofproto/trace ovs-dummy \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\"" "ofproto-dpif.at:4711"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4711"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4712: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4712"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: trunc(100),3,2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4712"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4716: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:4716"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4716"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4716: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:4716"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4716"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4716: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:4716"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4716"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4716: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4716: wait failed" >&5

    $as_echo "ofproto-dpif.at:4716" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4716"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4716: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:4716"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4716"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4716: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:4716"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4716"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4716: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4716: wait failed" >&5

    $as_echo "ofproto-dpif.at:4716" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4716"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1115
#AT_START_1116
at_fn_group_banner 1116 'ofproto-dpif.at:4719' \
  "ofproto-dpif - mirroring, output_port with snaplen" "" 55
at_xfail=no
(
  $as_echo "1116. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4721: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:4721"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4721"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4721: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:4721"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4721"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4721: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4721"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4721"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4721: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:4721"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4721"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4721: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:4721"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4721"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4721: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4721"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4721"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4721: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:4721"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4721"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3
ovs-vsctl \
        set Bridge br0 mirrors=@m --\
        --id=@p3 get Port p3 --\
        --id=@m create Mirror name=mymirror select_all=true output_port=@p3 snaplen=100

cat >flows.txt <<'_ATEOF'
in_port=1 actions=mod_vlan_vid:17,output:2
in_port=2 actions=output:1
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4732: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:4732"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4732"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


flow="in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4735: ovs-appctl ofproto/trace ovs-dummy \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\"" "ofproto-dpif.at:4735"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4735"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4736: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4736"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: trunc(100),3,push_vlan(vid=17,pcp=0),2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4736"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


flow="in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4741: ovs-appctl ofproto/trace ovs-dummy \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\"" "ofproto-dpif.at:4741"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4741"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4742: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4742"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: trunc(100),3,1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4742"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4746: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:4746"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4746"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4746: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:4746"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4746"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4746: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:4746"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4746"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4746: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4746: wait failed" >&5

    $as_echo "ofproto-dpif.at:4746" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4746"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4746: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:4746"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4746"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4746: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:4746"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4746"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4746: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4746: wait failed" >&5

    $as_echo "ofproto-dpif.at:4746" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4746"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1116
#AT_START_1117
at_fn_group_banner 1117 'ofproto-dpif.at:4749' \
  "ofproto-dpif - mirroring, output_vlan with snaplen" "" 55
at_xfail=no
(
  $as_echo "1117. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4751: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:4751"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4751"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4751: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:4751"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4751"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4751: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4751"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4751"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4751: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:4751"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4751"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4751: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:4751"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4751"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4751: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4751"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4751"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4751: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:4751"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4751"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2
ovs-vsctl \
        set Bridge br0 mirrors=@m --\
        --id=@m create Mirror name=mymirror select_all=true output_vlan=12 snaplen=100

cat >flows.txt <<'_ATEOF'
in_port=1 actions=output:2
in_port=2 actions=mod_vlan_vid:17,output:1
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4761: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:4761"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4761"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


flow="in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4764: ovs-appctl ofproto/trace ovs-dummy \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\"" "ofproto-dpif.at:4764"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4764"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

actual=`tail -1 stdout | sed 's/Datapath actions: //'`
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4767: echo \"\$actual\" | sed -n 's/.*\\(trunc(0-9*),0-9*,trunc(0-9*),0-9*,trunc(0-9*),0-9*\\)/\\1/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:4767"
( $at_check_trace; echo "$actual" | sed -n 's/.*\(trunc(0-9*),0-9*,trunc(0-9*),0-9*,trunc(0-9*),0-9*\)/\1/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4767"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


flow="in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4770: ovs-appctl ofproto/trace ovs-dummy \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\"" "ofproto-dpif.at:4770"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4770"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

actual=`tail -1 stdout | sed 's/Datapath actions: //'`
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4772: echo \"\$actual\" | sed -n 's/.*\\(trunc(0-9*),0-9*,trunc(0-9*),0-9*,trunc(0-9*),0-9*\\)/\\1/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:4772"
( $at_check_trace; echo "$actual" | sed -n 's/.*\(trunc(0-9*),0-9*,trunc(0-9*),0-9*,trunc(0-9*),0-9*\)/\1/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4772"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4774: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:4774"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4774"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4774: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:4774"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4774"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4774: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:4774"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4774"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4774: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4774: wait failed" >&5

    $as_echo "ofproto-dpif.at:4774" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4774"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4774: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:4774"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4774"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4774: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:4774"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4774"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4774: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4774: wait failed" >&5

    $as_echo "ofproto-dpif.at:4774" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4774"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1117
#AT_START_1118
at_fn_group_banner 1118 'ofproto-dpif.at:4777' \
  "ofproto-dpif - multiple VLAN output mirrors with snaplen" "" 55
at_xfail=no
(
  $as_echo "1118. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4779: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:4779"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4779"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4779: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:4779"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4779"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4779: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4779"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4779"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4779: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:4779"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4779"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4779: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:4779"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4779"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4779: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4779"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4779"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4779: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:4779"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4779"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3
ovs-vsctl \
        -- set Bridge br0 fail-mode=standalone mirrors=@m1,@m2 \
       -- --id=@m1 create Mirror name=m1 select_all=true output_vlan=500 snaplen=200 \
       -- --id=@m2 create Mirror name=m2 select_all=true output_vlan=501 snaplen=300 \
       -- set Port br0 tag=0 \
       -- set Port p1 tag=0 \
       -- set Port p2 tag=500 \
       -- set Port p3 tag=501

flow="in_port=1"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4791: ovs-appctl ofproto/trace br0 \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace br0 \"$flow\"" "ofproto-dpif.at:4791"
( $at_check_trace; ovs-appctl ofproto/trace br0 "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4791"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4792: tail -1 stdout | egrep \"trunc\\(200\\),2,trunc\\(300\\),3,100|trunc\\(300\\),3,trunc\\(200\\),2,100\""
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:4792"
( $at_check_trace; tail -1 stdout | egrep "trunc\(200\),2,trunc\(300\),3,100|trunc\(300\),3,trunc\(200\),2,100"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4792"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4794: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:4794"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4794"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4794: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:4794"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4794"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4794: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:4794"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4794"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4794: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4794: wait failed" >&5

    $as_echo "ofproto-dpif.at:4794" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4794"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4794: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:4794"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4794"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4794: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:4794"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4794"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4794: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4794: wait failed" >&5

    $as_echo "ofproto-dpif.at:4794" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4794"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1118
#AT_START_1119
at_fn_group_banner 1119 'ofproto-dpif.at:4800' \
  "ofproto-dpif - resubmit with recirculation" "     " 55
at_xfail=no
(
  $as_echo "1119. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4801: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:4801"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4801"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4801: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:4801"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4801"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4801: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4801"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4801"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4801: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:4801"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4801"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4801: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:4801"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4801"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4801: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4801"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4801"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4801: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:4801"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4801"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3

cat >flows.txt <<'_ATEOF'
table=0 in_port=1  actions=2,resubmit(,1)
table=1 in_port=1  actions=debug_recirc,resubmit:55
table=1 in_port=55 actions=3
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4809: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:4809"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4809"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


flow="in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4812: ovs-appctl ofproto/trace ovs-dummy \"\$flow\" -generate"
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\" -generate" "ofproto-dpif.at:4812"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow" -generate
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4812"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4813: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4813"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 2,recirc(0x1)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4813"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4815: ovs-appctl ofproto/trace ovs-dummy \"\$flow,recirc_id(1)\" -generate"
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow,recirc_id(1)\" -generate" "ofproto-dpif.at:4815"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow,recirc_id(1)" -generate
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4815"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4816: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4816"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4816"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4819: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:4819"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4819"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4819: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:4819"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4819"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4819: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:4819"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4819"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4819: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4819: wait failed" >&5

    $as_echo "ofproto-dpif.at:4819" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4819"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4819: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:4819"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4819"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4819: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:4819"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4819"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4819: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4819: wait failed" >&5

    $as_echo "ofproto-dpif.at:4819" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4819"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1119
#AT_START_1120
at_fn_group_banner 1120 'ofproto-dpif.at:4827' \
  "ofproto-dpif - resubmit with tun_id" "            " 55
at_xfail=no
(
  $as_echo "1120. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4828: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:4828"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4828"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4828: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:4828"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4828"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4828: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4828"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4828"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4828: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:4828"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4828"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4828: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:4828"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4828"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4828: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4828"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4828"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4828: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:4828"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4828"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3

cat >flows.txt <<'_ATEOF'
table=0 in_port=1  actions=2,load:6->NXM_NX_TUN_ID[],resubmit(,1)
table=1 in_port=1  actions=debug_recirc,resubmit:55
table=1 in_port=55 actions=3
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4836: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:4836"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4836"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


flow="in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4839: ovs-appctl ofproto/trace ovs-dummy \"\$flow\" -generate"
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\" -generate" "ofproto-dpif.at:4839"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow" -generate
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4839"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4840: grep \"Final flow:\" stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4840"
( $at_check_trace; grep "Final flow:" stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Final flow: icmp,tun_id=0x6,in_port=1,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=128,icmp_type=8,icmp_code=0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4840"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4843: ovs-appctl ofproto/trace ovs-dummy \"\$flow,recirc_id(1)\" -generate"
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow,recirc_id(1)\" -generate" "ofproto-dpif.at:4843"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow,recirc_id(1)" -generate
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4843"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4844: grep \"Final flow:\" stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4844"
( $at_check_trace; grep "Final flow:" stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Final flow: recirc_id=0x1,eth,icmp,tun_id=0x6,in_port=1,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=128,icmp_type=8,icmp_code=0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4844"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4847: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:4847"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4847"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4847: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:4847"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4847"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4847: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:4847"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4847"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4847: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4847: wait failed" >&5

    $as_echo "ofproto-dpif.at:4847" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4847"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4847: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:4847"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4847"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4847: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:4847"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4847"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4847: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4847: wait failed" >&5

    $as_echo "ofproto-dpif.at:4847" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4847"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1120
#AT_START_1121
at_fn_group_banner 1121 'ofproto-dpif.at:4854' \
  "ofproto-dpif - recirculation after resubmit" "    " 55
at_xfail=no
(
  $as_echo "1121. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4855: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:4855"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4855"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4855: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:4855"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4855"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4855: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4855"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4855"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4855: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:4855"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4855"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4855: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:4855"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4855"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4855: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4855"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4855"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4855: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:4855"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4855"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2

cat >flows.txt <<'_ATEOF'
table=0 in_port=1 actions=resubmit(,1),2
table=1 in_port=1 actions=debug_recirc
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4862: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:4862"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4862"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


flow="in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4865: ovs-appctl ofproto/trace ovs-dummy \"\$flow\" -generate"
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\" -generate" "ofproto-dpif.at:4865"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow" -generate
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4865"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4866: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4866"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: recirc(0x1)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4866"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4868: ovs-appctl ofproto/trace ovs-dummy \"\$flow,recirc_id(1)\" -generate"
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow,recirc_id(1)\" -generate" "ofproto-dpif.at:4868"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow,recirc_id(1)" -generate
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4868"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4869: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4869"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4869"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4872: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:4872"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4872"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4872: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:4872"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4872"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4872: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:4872"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4872"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4872: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4872: wait failed" >&5

    $as_echo "ofproto-dpif.at:4872" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4872"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4872: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:4872"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4872"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4872: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:4872"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4872"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4872: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4872: wait failed" >&5

    $as_echo "ofproto-dpif.at:4872" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4872"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1121
#AT_START_1122
at_fn_group_banner 1122 'ofproto-dpif.at:4876' \
  "ofproto-dpif - debug_slow action" "               " 55
at_xfail=no
(
  $as_echo "1122. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4877: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:4877"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4877"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4877: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:4877"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4877"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4877: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4877"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4877"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4877: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:4877"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4877"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4877: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:4877"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4877"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4877: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:4877"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4877"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4877: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:4877"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4877"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4880: ovs-ofctl add-flow br0 \"in_port=1,actions=debug_slow,2\""
at_fn_check_prepare_trace "ofproto-dpif.at:4880"
( $at_check_trace; ovs-ofctl add-flow br0 "in_port=1,actions=debug_slow,2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4880"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


flow="in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4884: ovs-appctl ofproto/trace ovs-dummy \"\$flow\" -generate"
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\" -generate" "ofproto-dpif.at:4884"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow" -generate
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4884"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4885: tail -3 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:4885"
( $at_check_trace; tail -3 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 2
This flow is handled by the userspace slow path because it:
	- Uses action(s) not supported by datapath.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4885"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4890: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:4890"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4890"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4890: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:4890"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4890"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4890: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:4890"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4890"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4890: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4890: wait failed" >&5

    $as_echo "ofproto-dpif.at:4890" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4890"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4890: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:4890"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4890"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:4890: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:4890"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:4890"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:4890: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:4890: wait failed" >&5

    $as_echo "ofproto-dpif.at:4890" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:4890"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1122
#AT_START_1123
at_fn_group_banner 1123 'ofproto-dpif.at:5003' \
  "ofproto-dpif - continuation - pause at end of pipeline" "" 55
at_xfail=no
(
  $as_echo "1123. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


       touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5003: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:5003"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5003"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5003: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:5003"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5003"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5003: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5003"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5003"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5003: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:5003"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5003"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5003: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:5003"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5003"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5003: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5003"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5003"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5003: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:5003"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5003"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



    # count_matches STRING
    #
    # Prints on stdout the number of occurrences of STRING in stdin.
    count_matches () {
        sed -n ":start
    s/$1//p
    t start" | wc -l
    }

    add_of_ports --pcap br0 `seq 1 2`



    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5003: ovs-ofctl monitor br0 resume --detach --no-chdir --pidfile=ovs-ofctl0.pid 2> ofctl_monitor0.log"
at_fn_check_prepare_trace "ofproto-dpif.at:5003"
( $at_check_trace; ovs-ofctl monitor br0 resume --detach --no-chdir --pidfile=ovs-ofctl0.pid 2> ofctl_monitor0.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5003"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }



    actions0='actions=2 pause'
    actions1=''

    flow="in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
    n_packets=0
    n_resumes=0
    while true; do
        printf "\n\nactions for br0:\n%s\n" "$actions0"


        # Add flows.
        { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5003: echo \"\$actions0\" | sed 's/pause/controller(pause)/g' | ovs-ofctl -O OpenFlow13 add-flows br0 -"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:5003"
( $at_check_trace; echo "$actions0" | sed 's/pause/controller(pause)/g' | ovs-ofctl -O OpenFlow13 add-flows br0 -
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5003"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }



        # Make sure the datapath is up-to-date before sending the packet.
        ovs-appctl revalidator/wait

        # Run a packet through the switch.
        { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5003: ovs-appctl netdev-dummy/receive p1 \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl netdev-dummy/receive p1 \"$flow\"" "ofproto-dpif.at:5003"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5003"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }


        # Wait for the expected number of packets to show up.
        n_packets=`expr $n_packets + 2 - 1 + 0`
        echo "waiting for $n_packets packets..."
        $as_echo "ofproto-dpif.at:5003: waiting until test \$n_packets = \`ovs-ofctl parse-pcap p*-tx.pcap | wc -l\`..." >&5
ovs_wait_cond () {
    test $n_packets = `ovs-ofctl parse-pcap p*-tx.pcap | wc -l`
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5003: wait failed" >&5

    $as_echo "ofproto-dpif.at:5003" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5003"
fi


        # Wait for the expected number of NXT_RESUMEs to be logged.
        n_resumes=$(expr $n_resumes + $(echo "$actions0 $actions1" | count_matches pause) )
        echo "waiting for $n_resumes NXT_RESUMEs..."
        $as_echo "ofproto-dpif.at:5003: waiting until test \$n_resumes = \`cat ofctl_monitor*.log | grep -c NXT_RESUME\`..." >&5
ovs_wait_cond () {
    test $n_resumes = `cat ofctl_monitor*.log | grep -c NXT_RESUME`
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5003: wait failed" >&5

    $as_echo "ofproto-dpif.at:5003" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5003"
fi


        # Eliminate one "pause" from the actions.
        #
        # If there were none left, then we're done.
        next_actions0=`echo "$actions0" | sed '1,/pause/s/pause//'`
        if test X"$actions0" = X"$next_actions0"; then
            next_actions1=`echo "$actions1" | sed '1,/pause/s/pause//'`
            if test X"$actions1" = X"$next_actions1"; then
                break
            else
                actions1=$next_actions1
            fi
        else
            actions0=$next_actions0
        fi

        # Delete all the flows and verify that there are none, so that we
        # can be sure that our updated flow tables is actually in use
        # later.
        { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5003: ovs-ofctl del-flows br0 && ovs-ofctl dump-flows br0 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:5003"
( $at_check_trace; ovs-ofctl del-flows br0 && ovs-ofctl dump-flows br0 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5003"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }


    done
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5003: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:5003"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5003"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5003: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:5003"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5003"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5003: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:5003"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5003"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:5003: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5003: wait failed" >&5

    $as_echo "ofproto-dpif.at:5003" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5003"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5003: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:5003"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5003"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5003: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:5003"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5003"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:5003: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5003: wait failed" >&5

    $as_echo "ofproto-dpif.at:5003" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5003"
fi

      set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1123
#AT_START_1124
at_fn_group_banner 1124 'ofproto-dpif.at:5006' \
  "ofproto-dpif - continuation - actions" "          " 55
at_xfail=no
(
  $as_echo "1124. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


       touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5006: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:5006"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5006"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5006: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:5006"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5006"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5006: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5006"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5006"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5006: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:5006"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5006"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5006: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:5006"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5006"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5006: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5006"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5006"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5006: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:5006"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5006"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



    # count_matches STRING
    #
    # Prints on stdout the number of occurrences of STRING in stdin.
    count_matches () {
        sed -n ":start
    s/$1//p
    t start" | wc -l
    }

    add_of_ports --pcap br0 `seq 1 7`



    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5006: ovs-ofctl monitor br0 resume --detach --no-chdir --pidfile=ovs-ofctl0.pid 2> ofctl_monitor0.log"
at_fn_check_prepare_trace "ofproto-dpif.at:5006"
( $at_check_trace; ovs-ofctl monitor br0 resume --detach --no-chdir --pidfile=ovs-ofctl0.pid 2> ofctl_monitor0.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5006"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }



    actions0='in_port=1 actions=pause 2 pause 3 pause 4 pause 5 pause 6 pause 7'
    actions1=''

    flow="in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
    n_packets=0
    n_resumes=0
    while true; do
        printf "\n\nactions for br0:\n%s\n" "$actions0"


        # Add flows.
        { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5006: echo \"\$actions0\" | sed 's/pause/controller(pause)/g' | ovs-ofctl -O OpenFlow13 add-flows br0 -"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:5006"
( $at_check_trace; echo "$actions0" | sed 's/pause/controller(pause)/g' | ovs-ofctl -O OpenFlow13 add-flows br0 -
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5006"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }



        # Make sure the datapath is up-to-date before sending the packet.
        ovs-appctl revalidator/wait

        # Run a packet through the switch.
        { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5006: ovs-appctl netdev-dummy/receive p1 \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl netdev-dummy/receive p1 \"$flow\"" "ofproto-dpif.at:5006"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5006"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }


        # Wait for the expected number of packets to show up.
        n_packets=`expr $n_packets + 7 - 1 + 0`
        echo "waiting for $n_packets packets..."
        $as_echo "ofproto-dpif.at:5006: waiting until test \$n_packets = \`ovs-ofctl parse-pcap p*-tx.pcap | wc -l\`..." >&5
ovs_wait_cond () {
    test $n_packets = `ovs-ofctl parse-pcap p*-tx.pcap | wc -l`
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5006: wait failed" >&5

    $as_echo "ofproto-dpif.at:5006" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5006"
fi


        # Wait for the expected number of NXT_RESUMEs to be logged.
        n_resumes=$(expr $n_resumes + $(echo "$actions0 $actions1" | count_matches pause) )
        echo "waiting for $n_resumes NXT_RESUMEs..."
        $as_echo "ofproto-dpif.at:5006: waiting until test \$n_resumes = \`cat ofctl_monitor*.log | grep -c NXT_RESUME\`..." >&5
ovs_wait_cond () {
    test $n_resumes = `cat ofctl_monitor*.log | grep -c NXT_RESUME`
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5006: wait failed" >&5

    $as_echo "ofproto-dpif.at:5006" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5006"
fi


        # Eliminate one "pause" from the actions.
        #
        # If there were none left, then we're done.
        next_actions0=`echo "$actions0" | sed '1,/pause/s/pause//'`
        if test X"$actions0" = X"$next_actions0"; then
            next_actions1=`echo "$actions1" | sed '1,/pause/s/pause//'`
            if test X"$actions1" = X"$next_actions1"; then
                break
            else
                actions1=$next_actions1
            fi
        else
            actions0=$next_actions0
        fi

        # Delete all the flows and verify that there are none, so that we
        # can be sure that our updated flow tables is actually in use
        # later.
        { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5006: ovs-ofctl del-flows br0 && ovs-ofctl dump-flows br0 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:5006"
( $at_check_trace; ovs-ofctl del-flows br0 && ovs-ofctl dump-flows br0 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5006"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }


    done
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5006: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:5006"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5006"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5006: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:5006"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5006"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5006: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:5006"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5006"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:5006: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5006: wait failed" >&5

    $as_echo "ofproto-dpif.at:5006" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5006"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5006: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:5006"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5006"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5006: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:5006"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5006"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:5006: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5006: wait failed" >&5

    $as_echo "ofproto-dpif.at:5006" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5006"
fi

      set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1124
#AT_START_1125
at_fn_group_banner 1125 'ofproto-dpif.at:5014' \
  "ofproto-dpif - continuation - resubmit" "         " 55
at_xfail=no
(
  $as_echo "1125. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


       touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5014: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:5014"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5014"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5014: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:5014"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5014"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5014: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5014"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5014"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5014: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:5014"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5014"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5014: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:5014"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5014"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5014: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5014"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5014"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5014: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:5014"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5014"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



    # count_matches STRING
    #
    # Prints on stdout the number of occurrences of STRING in stdin.
    count_matches () {
        sed -n ":start
    s/$1//p
    t start" | wc -l
    }

    add_of_ports --pcap br0 `seq 1 10`



    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5014: ovs-ofctl monitor br0 resume --detach --no-chdir --pidfile=ovs-ofctl0.pid 2> ofctl_monitor0.log"
at_fn_check_prepare_trace "ofproto-dpif.at:5014"
( $at_check_trace; ovs-ofctl monitor br0 resume --detach --no-chdir --pidfile=ovs-ofctl0.pid 2> ofctl_monitor0.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5014"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }



    actions0='table=0 in_port=1  actions=pause 2 pause resubmit(,1) pause 10 pause
   table=1 in_port=1  actions=pause 3 pause resubmit(,2) pause 9 pause
   table=2 in_port=1  actions=pause 4 pause resubmit(,3) pause 8 pause
   table=3 in_port=1  actions=pause 5 pause resubmit:55  pause 7 pause
   table=3 in_port=55 actions=pause 6 pause'
    actions1=''

    flow="in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
    n_packets=0
    n_resumes=0
    while true; do
        printf "\n\nactions for br0:\n%s\n" "$actions0"


        # Add flows.
        { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5014: echo \"\$actions0\" | sed 's/pause/controller(pause)/g' | ovs-ofctl -O OpenFlow13 add-flows br0 -"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:5014"
( $at_check_trace; echo "$actions0" | sed 's/pause/controller(pause)/g' | ovs-ofctl -O OpenFlow13 add-flows br0 -
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5014"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }



        # Make sure the datapath is up-to-date before sending the packet.
        ovs-appctl revalidator/wait

        # Run a packet through the switch.
        { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5014: ovs-appctl netdev-dummy/receive p1 \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl netdev-dummy/receive p1 \"$flow\"" "ofproto-dpif.at:5014"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5014"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }


        # Wait for the expected number of packets to show up.
        n_packets=`expr $n_packets + 10 - 1 + 0`
        echo "waiting for $n_packets packets..."
        $as_echo "ofproto-dpif.at:5014: waiting until test \$n_packets = \`ovs-ofctl parse-pcap p*-tx.pcap | wc -l\`..." >&5
ovs_wait_cond () {
    test $n_packets = `ovs-ofctl parse-pcap p*-tx.pcap | wc -l`
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5014: wait failed" >&5

    $as_echo "ofproto-dpif.at:5014" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5014"
fi


        # Wait for the expected number of NXT_RESUMEs to be logged.
        n_resumes=$(expr $n_resumes + $(echo "$actions0 $actions1" | count_matches pause) )
        echo "waiting for $n_resumes NXT_RESUMEs..."
        $as_echo "ofproto-dpif.at:5014: waiting until test \$n_resumes = \`cat ofctl_monitor*.log | grep -c NXT_RESUME\`..." >&5
ovs_wait_cond () {
    test $n_resumes = `cat ofctl_monitor*.log | grep -c NXT_RESUME`
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5014: wait failed" >&5

    $as_echo "ofproto-dpif.at:5014" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5014"
fi


        # Eliminate one "pause" from the actions.
        #
        # If there were none left, then we're done.
        next_actions0=`echo "$actions0" | sed '1,/pause/s/pause//'`
        if test X"$actions0" = X"$next_actions0"; then
            next_actions1=`echo "$actions1" | sed '1,/pause/s/pause//'`
            if test X"$actions1" = X"$next_actions1"; then
                break
            else
                actions1=$next_actions1
            fi
        else
            actions0=$next_actions0
        fi

        # Delete all the flows and verify that there are none, so that we
        # can be sure that our updated flow tables is actually in use
        # later.
        { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5014: ovs-ofctl del-flows br0 && ovs-ofctl dump-flows br0 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:5014"
( $at_check_trace; ovs-ofctl del-flows br0 && ovs-ofctl dump-flows br0 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5014"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }


    done
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5014: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:5014"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5014"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5014: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:5014"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5014"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5014: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:5014"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5014"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:5014: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5014: wait failed" >&5

    $as_echo "ofproto-dpif.at:5014" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5014"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5014: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:5014"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5014"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5014: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:5014"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5014"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:5014: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5014: wait failed" >&5

    $as_echo "ofproto-dpif.at:5014" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5014"
fi

      set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1125
#AT_START_1126
at_fn_group_banner 1126 'ofproto-dpif.at:5022' \
  "ofproto-dpif - continuation - action set" "       " 55
at_xfail=no
(
  $as_echo "1126. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


       touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5022: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:5022"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5022"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5022: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:5022"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5022"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5022: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5022"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5022"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5022: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:5022"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5022"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5022: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:5022"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5022"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5022: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5022"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5022"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5022: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:5022"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5022"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



    # count_matches STRING
    #
    # Prints on stdout the number of occurrences of STRING in stdin.
    count_matches () {
        sed -n ":start
    s/$1//p
    t start" | wc -l
    }

    add_of_ports --pcap br0 `seq 1 3`



    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5022: ovs-ofctl monitor br0 resume --detach --no-chdir --pidfile=ovs-ofctl0.pid 2> ofctl_monitor0.log"
at_fn_check_prepare_trace "ofproto-dpif.at:5022"
( $at_check_trace; ovs-ofctl monitor br0 resume --detach --no-chdir --pidfile=ovs-ofctl0.pid 2> ofctl_monitor0.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5022"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }



    actions0='in_port=1 actions=1 pause resubmit(,1) pause 2
   table=1 actions=write_actions(3)'
    actions1=''

    flow="in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
    n_packets=0
    n_resumes=0
    while true; do
        printf "\n\nactions for br0:\n%s\n" "$actions0"


        # Add flows.
        { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5022: echo \"\$actions0\" | sed 's/pause/controller(pause)/g' | ovs-ofctl -O OpenFlow13 add-flows br0 -"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:5022"
( $at_check_trace; echo "$actions0" | sed 's/pause/controller(pause)/g' | ovs-ofctl -O OpenFlow13 add-flows br0 -
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5022"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }



        # Make sure the datapath is up-to-date before sending the packet.
        ovs-appctl revalidator/wait

        # Run a packet through the switch.
        { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5022: ovs-appctl netdev-dummy/receive p1 \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl netdev-dummy/receive p1 \"$flow\"" "ofproto-dpif.at:5022"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5022"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }


        # Wait for the expected number of packets to show up.
        n_packets=`expr $n_packets + 3 - 1 + 0`
        echo "waiting for $n_packets packets..."
        $as_echo "ofproto-dpif.at:5022: waiting until test \$n_packets = \`ovs-ofctl parse-pcap p*-tx.pcap | wc -l\`..." >&5
ovs_wait_cond () {
    test $n_packets = `ovs-ofctl parse-pcap p*-tx.pcap | wc -l`
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5022: wait failed" >&5

    $as_echo "ofproto-dpif.at:5022" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5022"
fi


        # Wait for the expected number of NXT_RESUMEs to be logged.
        n_resumes=$(expr $n_resumes + $(echo "$actions0 $actions1" | count_matches pause) )
        echo "waiting for $n_resumes NXT_RESUMEs..."
        $as_echo "ofproto-dpif.at:5022: waiting until test \$n_resumes = \`cat ofctl_monitor*.log | grep -c NXT_RESUME\`..." >&5
ovs_wait_cond () {
    test $n_resumes = `cat ofctl_monitor*.log | grep -c NXT_RESUME`
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5022: wait failed" >&5

    $as_echo "ofproto-dpif.at:5022" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5022"
fi


        # Eliminate one "pause" from the actions.
        #
        # If there were none left, then we're done.
        next_actions0=`echo "$actions0" | sed '1,/pause/s/pause//'`
        if test X"$actions0" = X"$next_actions0"; then
            next_actions1=`echo "$actions1" | sed '1,/pause/s/pause//'`
            if test X"$actions1" = X"$next_actions1"; then
                break
            else
                actions1=$next_actions1
            fi
        else
            actions0=$next_actions0
        fi

        # Delete all the flows and verify that there are none, so that we
        # can be sure that our updated flow tables is actually in use
        # later.
        { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5022: ovs-ofctl del-flows br0 && ovs-ofctl dump-flows br0 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:5022"
( $at_check_trace; ovs-ofctl del-flows br0 && ovs-ofctl dump-flows br0 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5022"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }


    done
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5022: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:5022"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5022"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5022: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:5022"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5022"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5022: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:5022"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5022"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:5022: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5022: wait failed" >&5

    $as_echo "ofproto-dpif.at:5022" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5022"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5022: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:5022"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5022"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5022: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:5022"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5022"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:5022: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5022: wait failed" >&5

    $as_echo "ofproto-dpif.at:5022" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5022"
fi

      set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1126
#AT_START_1127
at_fn_group_banner 1127 'ofproto-dpif.at:5028' \
  "ofproto-dpif - continuation - data stack" "       " 55
at_xfail=no
(
  $as_echo "1127. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


       touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5028: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:5028"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5028"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5028: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:5028"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5028"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5028: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5028"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5028"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5028: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:5028"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5028"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5028: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:5028"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5028"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5028: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5028"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5028"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5028: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:5028"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5028"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



    # count_matches STRING
    #
    # Prints on stdout the number of occurrences of STRING in stdin.
    count_matches () {
        sed -n ":start
    s/$1//p
    t start" | wc -l
    }

    add_of_ports --pcap br0 `seq 1 3`



    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5028: ovs-ofctl monitor br0 resume --detach --no-chdir --pidfile=ovs-ofctl0.pid 2> ofctl_monitor0.log"
at_fn_check_prepare_trace "ofproto-dpif.at:5028"
( $at_check_trace; ovs-ofctl monitor br0 resume --detach --no-chdir --pidfile=ovs-ofctl0.pid 2> ofctl_monitor0.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5028"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }



    actions0='in_port=1 actions=pause                      set_field:1->reg0                      pause                      set_field:2->reg1                      pause                      output:NXM_NX_REG0[]                      pause                      push:NXM_NX_REG1[]                                           pop:NXM_NX_REG2[]                      pause                      output:NXM_NX_REG2[]                      pause                      3'
    actions1=''

    flow="in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
    n_packets=0
    n_resumes=0
    while true; do
        printf "\n\nactions for br0:\n%s\n" "$actions0"


        # Add flows.
        { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5028: echo \"\$actions0\" | sed 's/pause/controller(pause)/g' | ovs-ofctl -O OpenFlow13 add-flows br0 -"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:5028"
( $at_check_trace; echo "$actions0" | sed 's/pause/controller(pause)/g' | ovs-ofctl -O OpenFlow13 add-flows br0 -
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5028"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }



        # Make sure the datapath is up-to-date before sending the packet.
        ovs-appctl revalidator/wait

        # Run a packet through the switch.
        { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5028: ovs-appctl netdev-dummy/receive p1 \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl netdev-dummy/receive p1 \"$flow\"" "ofproto-dpif.at:5028"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5028"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }


        # Wait for the expected number of packets to show up.
        n_packets=`expr $n_packets + 3 - 1 + 0`
        echo "waiting for $n_packets packets..."
        $as_echo "ofproto-dpif.at:5028: waiting until test \$n_packets = \`ovs-ofctl parse-pcap p*-tx.pcap | wc -l\`..." >&5
ovs_wait_cond () {
    test $n_packets = `ovs-ofctl parse-pcap p*-tx.pcap | wc -l`
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5028: wait failed" >&5

    $as_echo "ofproto-dpif.at:5028" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5028"
fi


        # Wait for the expected number of NXT_RESUMEs to be logged.
        n_resumes=$(expr $n_resumes + $(echo "$actions0 $actions1" | count_matches pause) )
        echo "waiting for $n_resumes NXT_RESUMEs..."
        $as_echo "ofproto-dpif.at:5028: waiting until test \$n_resumes = \`cat ofctl_monitor*.log | grep -c NXT_RESUME\`..." >&5
ovs_wait_cond () {
    test $n_resumes = `cat ofctl_monitor*.log | grep -c NXT_RESUME`
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5028: wait failed" >&5

    $as_echo "ofproto-dpif.at:5028" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5028"
fi


        # Eliminate one "pause" from the actions.
        #
        # If there were none left, then we're done.
        next_actions0=`echo "$actions0" | sed '1,/pause/s/pause//'`
        if test X"$actions0" = X"$next_actions0"; then
            next_actions1=`echo "$actions1" | sed '1,/pause/s/pause//'`
            if test X"$actions1" = X"$next_actions1"; then
                break
            else
                actions1=$next_actions1
            fi
        else
            actions0=$next_actions0
        fi

        # Delete all the flows and verify that there are none, so that we
        # can be sure that our updated flow tables is actually in use
        # later.
        { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5028: ovs-ofctl del-flows br0 && ovs-ofctl dump-flows br0 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:5028"
( $at_check_trace; ovs-ofctl del-flows br0 && ovs-ofctl dump-flows br0 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5028"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }


    done
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5028: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:5028"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5028"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5028: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:5028"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5028"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5028: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:5028"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5028"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:5028: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5028: wait failed" >&5

    $as_echo "ofproto-dpif.at:5028" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5028"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5028: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:5028"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5028"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5028: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:5028"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5028"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:5028: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5028: wait failed" >&5

    $as_echo "ofproto-dpif.at:5028" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5028"
fi

      set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1127
#AT_START_1128
at_fn_group_banner 1128 'ofproto-dpif.at:5046' \
  "ofproto-dpif - continuation - mirroring" "        " 55
at_xfail=no
(
  $as_echo "1128. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


       touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5046: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:5046"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5046"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5046: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:5046"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5046"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5046: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5046"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5046"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5046: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:5046"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5046"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5046: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:5046"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5046"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5046: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5046"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5046"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5046: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:5046"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5046"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



    # count_matches STRING
    #
    # Prints on stdout the number of occurrences of STRING in stdin.
    count_matches () {
        sed -n ":start
    s/$1//p
    t start" | wc -l
    }

    add_of_ports --pcap br0 `seq 1 5`



    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5046: ovs-ofctl monitor br0 resume --detach --no-chdir --pidfile=ovs-ofctl0.pid 2> ofctl_monitor0.log"
at_fn_check_prepare_trace "ofproto-dpif.at:5046"
( $at_check_trace; ovs-ofctl monitor br0 resume --detach --no-chdir --pidfile=ovs-ofctl0.pid 2> ofctl_monitor0.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5046"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }



    actions0='in_port=1 actions=pause 2 pause 3 pause 4 pause'
    actions1=''
    ovs-vsctl \
       set Bridge br0 mirrors=@m --\
       --id=@p2 get Port p2 --\
       --id=@p3 get Port p3 --\
       --id=@p4 get Port p4 --\
       --id=@p5 get Port p5 --\
       --id=@m create Mirror name=mymirror select_dst_port=@p2,@p3,@p4 output_port=@p5
    flow="in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
    n_packets=0
    n_resumes=0
    while true; do
        printf "\n\nactions for br0:\n%s\n" "$actions0"


        # Add flows.
        { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5046: echo \"\$actions0\" | sed 's/pause/controller(pause)/g' | ovs-ofctl -O OpenFlow13 add-flows br0 -"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:5046"
( $at_check_trace; echo "$actions0" | sed 's/pause/controller(pause)/g' | ovs-ofctl -O OpenFlow13 add-flows br0 -
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5046"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }



        # Make sure the datapath is up-to-date before sending the packet.
        ovs-appctl revalidator/wait

        # Run a packet through the switch.
        { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5046: ovs-appctl netdev-dummy/receive p1 \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl netdev-dummy/receive p1 \"$flow\"" "ofproto-dpif.at:5046"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5046"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }


        # Wait for the expected number of packets to show up.
        n_packets=`expr $n_packets + 5 - 1 + 0`
        echo "waiting for $n_packets packets..."
        $as_echo "ofproto-dpif.at:5046: waiting until test \$n_packets = \`ovs-ofctl parse-pcap p*-tx.pcap | wc -l\`..." >&5
ovs_wait_cond () {
    test $n_packets = `ovs-ofctl parse-pcap p*-tx.pcap | wc -l`
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5046: wait failed" >&5

    $as_echo "ofproto-dpif.at:5046" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5046"
fi


        # Wait for the expected number of NXT_RESUMEs to be logged.
        n_resumes=$(expr $n_resumes + $(echo "$actions0 $actions1" | count_matches pause) )
        echo "waiting for $n_resumes NXT_RESUMEs..."
        $as_echo "ofproto-dpif.at:5046: waiting until test \$n_resumes = \`cat ofctl_monitor*.log | grep -c NXT_RESUME\`..." >&5
ovs_wait_cond () {
    test $n_resumes = `cat ofctl_monitor*.log | grep -c NXT_RESUME`
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5046: wait failed" >&5

    $as_echo "ofproto-dpif.at:5046" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5046"
fi


        # Eliminate one "pause" from the actions.
        #
        # If there were none left, then we're done.
        next_actions0=`echo "$actions0" | sed '1,/pause/s/pause//'`
        if test X"$actions0" = X"$next_actions0"; then
            next_actions1=`echo "$actions1" | sed '1,/pause/s/pause//'`
            if test X"$actions1" = X"$next_actions1"; then
                break
            else
                actions1=$next_actions1
            fi
        else
            actions0=$next_actions0
        fi

        # Delete all the flows and verify that there are none, so that we
        # can be sure that our updated flow tables is actually in use
        # later.
        { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5046: ovs-ofctl del-flows br0 && ovs-ofctl dump-flows br0 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:5046"
( $at_check_trace; ovs-ofctl del-flows br0 && ovs-ofctl dump-flows br0 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5046"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }


    done
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5046: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:5046"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5046"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5046: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:5046"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5046"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5046: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:5046"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5046"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:5046: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5046: wait failed" >&5

    $as_echo "ofproto-dpif.at:5046" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5046"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5046: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:5046"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5046"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5046: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:5046"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5046"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:5046: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5046: wait failed" >&5

    $as_echo "ofproto-dpif.at:5046" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5046"
fi

      set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1128
#AT_START_1129
at_fn_group_banner 1129 'ofproto-dpif.at:5057' \
  "ofproto-dpif - continuation - patch ports" "      " 55
at_xfail=no
(
  $as_echo "1129. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


       touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5057: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:5057"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5057"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5057: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:5057"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5057"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5057: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5057"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5057"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5057: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:5057"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5057"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5057: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:5057"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5057"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5057: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5057"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5057"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5057: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:5057"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5057"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



    # count_matches STRING
    #
    # Prints on stdout the number of occurrences of STRING in stdin.
    count_matches () {
        sed -n ":start
    s/$1//p
    t start" | wc -l
    }

    add_of_ports --pcap br0 `seq 1 4`
    add_of_br 1
       add_of_ports --pcap br1 `seq 5 5`


    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5057: ovs-ofctl monitor br0 resume --detach --no-chdir --pidfile=ovs-ofctl0.pid 2> ofctl_monitor0.log"
at_fn_check_prepare_trace "ofproto-dpif.at:5057"
( $at_check_trace; ovs-ofctl monitor br0 resume --detach --no-chdir --pidfile=ovs-ofctl0.pid 2> ofctl_monitor0.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5057"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }


       { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5057: ovs-ofctl monitor br1 resume --detach --no-chdir --pidfile=ovs-ofctl1.pid 2> ofctl_monitor1.log"
at_fn_check_prepare_trace "ofproto-dpif.at:5057"
( $at_check_trace; ovs-ofctl monitor br1 resume --detach --no-chdir --pidfile=ovs-ofctl1.pid 2> ofctl_monitor1.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5057"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log" \
"ofctl_monitor1.log"
$at_traceon; }


    actions0='table=0 in_port=1  actions=pause 2 resubmit(,1) pause 4
   table=1 in_port=1  actions=pause 3 pause 10 pause'
    actions1='table=0 in_port=11 actions=pause 5 pause'
    ovs-vsctl \
       -- add-port br0 patch10 \
       -- set interface patch10 type=patch options:peer=patch11 \
                                ofport_request=10 \
       -- add-port br1 patch11 \
       -- set interface patch11 type=patch options:peer=patch10 \
                                ofport_request=11
    flow="in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"
    n_packets=0
    n_resumes=0
    while true; do
        printf "\n\nactions for br0:\n%s\n" "$actions0"
        printf "actions for br1:\n%s\n" "$actions1"

        # Add flows.
        { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5057: echo \"\$actions0\" | sed 's/pause/controller(pause)/g' | ovs-ofctl -O OpenFlow13 add-flows br0 -"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:5057"
( $at_check_trace; echo "$actions0" | sed 's/pause/controller(pause)/g' | ovs-ofctl -O OpenFlow13 add-flows br0 -
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5057"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log" \
"ofctl_monitor1.log"
$at_traceon; }

        { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5057: echo \"\$actions1\" | sed 's/pause/controller(pause)/g' | ovs-ofctl -O OpenFlow13 add-flows br1 -"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:5057"
( $at_check_trace; echo "$actions1" | sed 's/pause/controller(pause)/g' | ovs-ofctl -O OpenFlow13 add-flows br1 -
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5057"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log" \
"ofctl_monitor1.log"
$at_traceon; }


        # Make sure the datapath is up-to-date before sending the packet.
        ovs-appctl revalidator/wait

        # Run a packet through the switch.
        { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5057: ovs-appctl netdev-dummy/receive p1 \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl netdev-dummy/receive p1 \"$flow\"" "ofproto-dpif.at:5057"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5057"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log" \
"ofctl_monitor1.log"
$at_traceon; }


        # Wait for the expected number of packets to show up.
        n_packets=`expr $n_packets + 4 - 1 + 1`
        echo "waiting for $n_packets packets..."
        $as_echo "ofproto-dpif.at:5057: waiting until test \$n_packets = \`ovs-ofctl parse-pcap p*-tx.pcap | wc -l\`..." >&5
ovs_wait_cond () {
    test $n_packets = `ovs-ofctl parse-pcap p*-tx.pcap | wc -l`
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5057: wait failed" >&5

    $as_echo "ofproto-dpif.at:5057" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5057"
fi


        # Wait for the expected number of NXT_RESUMEs to be logged.
        n_resumes=$(expr $n_resumes + $(echo "$actions0 $actions1" | count_matches pause) )
        echo "waiting for $n_resumes NXT_RESUMEs..."
        $as_echo "ofproto-dpif.at:5057: waiting until test \$n_resumes = \`cat ofctl_monitor*.log | grep -c NXT_RESUME\`..." >&5
ovs_wait_cond () {
    test $n_resumes = `cat ofctl_monitor*.log | grep -c NXT_RESUME`
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5057: wait failed" >&5

    $as_echo "ofproto-dpif.at:5057" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5057"
fi


        # Eliminate one "pause" from the actions.
        #
        # If there were none left, then we're done.
        next_actions0=`echo "$actions0" | sed '1,/pause/s/pause//'`
        if test X"$actions0" = X"$next_actions0"; then
            next_actions1=`echo "$actions1" | sed '1,/pause/s/pause//'`
            if test X"$actions1" = X"$next_actions1"; then
                break
            else
                actions1=$next_actions1
            fi
        else
            actions0=$next_actions0
        fi

        # Delete all the flows and verify that there are none, so that we
        # can be sure that our updated flow tables is actually in use
        # later.
        { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5057: ovs-ofctl del-flows br0 && ovs-ofctl dump-flows br0 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:5057"
( $at_check_trace; ovs-ofctl del-flows br0 && ovs-ofctl dump-flows br0 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5057"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log" \
"ofctl_monitor1.log"
$at_traceon; }

        { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5057: ovs-ofctl del-flows br1 && ovs-ofctl dump-flows br1 | strip_xids"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:5057"
( $at_check_trace; ovs-ofctl del-flows br1 && ovs-ofctl dump-flows br1 | strip_xids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5057"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log" \
"ofctl_monitor1.log"
$at_traceon; }

    done
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5057: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:5057"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5057"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log" \
"ofctl_monitor1.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5057: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:5057"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5057"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log" \
"ofctl_monitor1.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5057: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:5057"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5057"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log" \
"ofctl_monitor1.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:5057: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5057: wait failed" >&5

    $as_echo "ofproto-dpif.at:5057" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5057"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5057: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:5057"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5057"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log" \
"ofctl_monitor1.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5057: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:5057"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5057"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log" \
"ofctl_monitor1.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:5057: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5057: wait failed" >&5

    $as_echo "ofproto-dpif.at:5057" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5057"
fi

      set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1129
#AT_START_1130
at_fn_group_banner 1130 'ofproto-dpif.at:5071' \
  "ofproto-dpif - continuation after clone" "        " 55
at_xfail=no
(
  $as_echo "1130. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5073: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:5073"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5073"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5073: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:5073"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5073"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5073: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5073"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5073"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5073: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:5073"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5073"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5073: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:5073"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5073"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5073: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5073"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5073"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5073: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:5073"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5073"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



add_of_ports --pcap br0 `seq 1 3`

flow="in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)"

cat >flows.txt <<'_ATEOF'
table=0 in_port=1 actions=set_field:1->reg1 resubmit(,2)
table=1 reg1=0x5 actions=controller(pause) resubmit(,3)
table=1 reg1=0x1 actions=2
table=2 in_port=1 actions=clone(set_field:5->reg1, resubmit(,1))
table=3 reg1=0x1 actions=3
table=3 reg1=0x5 actions=2
_ATEOF


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5088: ovs-ofctl -O OpenFlow13 add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:5088"
( $at_check_trace; ovs-ofctl -O OpenFlow13 add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5088"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



ovs-ofctl monitor br0 resume --detach --no-chdir \
--pidfile=ovs-ofctl0.pid 2> ofctl_monitor0.log

# Run a packet through the switch.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5095: ovs-appctl netdev-dummy/receive p1 \"\$flow\""
at_fn_check_prepare_dynamic "ovs-appctl netdev-dummy/receive p1 \"$flow\"" "ofproto-dpif.at:5095"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 "$flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5095"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }


ovs-vsctl show
ovs-ofctl dump-flows br0

# The packet should be recieved by port 2 and not port 3
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5101: test 1 = \`\$PYTHON \"\$top_srcdir/utilities/ovs-pcap.in\" p2-tx.pcap | wc -l\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ofproto-dpif.at:5101"
( $at_check_trace; test 1 = `$PYTHON "$top_srcdir/utilities/ovs-pcap.in" p2-tx.pcap | wc -l`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5101"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5102: test 0 = \`\$PYTHON \"\$top_srcdir/utilities/ovs-pcap.in\" p3-tx.pcap | wc -l\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ofproto-dpif.at:5102"
( $at_check_trace; test 0 = `$PYTHON "$top_srcdir/utilities/ovs-pcap.in" p3-tx.pcap | wc -l`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5102"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }


# NXT_RESUMEs should be 1 and reg1 should be set to 0x5.
$as_echo "ofproto-dpif.at:5105: waiting until test 1 = \`cat ofctl_monitor*.log | grep NXT_RESUME | grep -c reg1=0x5\`..." >&5
ovs_wait_cond () {
    test 1 = `cat ofctl_monitor*.log | grep NXT_RESUME | grep -c reg1=0x5`
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5105: wait failed" >&5

    $as_echo "ofproto-dpif.at:5105" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5105"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5107: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:5107"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5107: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:5107"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5107: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:5107"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:5107: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5107: wait failed" >&5

    $as_echo "ofproto-dpif.at:5107" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5107"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5107: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:5107"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5107: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:5107"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:5107: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5107: wait failed" >&5

    $as_echo "ofproto-dpif.at:5107" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5107"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1130
#AT_START_1131
at_fn_group_banner 1131 'ofproto-dpif.at:5114' \
  "ofproto-dpif - ofproto/trace command 1" "         " 55
at_xfail=no
(
  $as_echo "1131. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5115: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:5115"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5115"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5115: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:5115"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5115"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5115: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5115"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5115"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5115: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:5115"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5115"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5115: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:5115"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5115"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5115: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5115"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5115"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5115: add_of_br 0 set bridge br0 fail-mode=standalone "
at_fn_check_prepare_trace "ofproto-dpif.at:5115"
( $at_check_trace; add_of_br 0 set bridge br0 fail-mode=standalone
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5115"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3

cat >flows.txt <<'_ATEOF'
in_port=1 actions=output:2
in_port=2 actions=output:1
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5122: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:5122"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5122"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


odp_flow="in_port(p1)"
br_flow="in_port=1"
# Test command: ofproto/trace odp_flow with in_port as a name.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5127: ovs-appctl ofproto/trace \"\$odp_flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace \"$odp_flow\"" "ofproto-dpif.at:5127"
( $at_check_trace; ovs-appctl ofproto/trace "$odp_flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5127"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5128: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:5128"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5128"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


odp_flow="in_port(1)"
# Test command: ofproto/trace odp_flow
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5134: ovs-appctl ofproto/trace \"\$odp_flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace \"$odp_flow\"" "ofproto-dpif.at:5134"
( $at_check_trace; ovs-appctl ofproto/trace "$odp_flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5134"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5135: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:5135"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5135"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Test command: ofproto/trace dp_name odp_flow
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5140: ovs-appctl ofproto/trace ovs-dummy \"\$odp_flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$odp_flow\"" "ofproto-dpif.at:5140"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$odp_flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5140"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5141: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:5141"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5141"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Test commmand: ofproto/trace br_name br_flow
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5145: ovs-appctl ofproto/trace br0 \"\$br_flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace br0 \"$br_flow\"" "ofproto-dpif.at:5145"
( $at_check_trace; ovs-appctl ofproto/trace br0 "$br_flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5145"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5146: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:5146"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5146"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Delete the inserted flows
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5151: ovs-ofctl del-flows br0 \"in_port=1\""
at_fn_check_prepare_trace "ofproto-dpif.at:5151"
( $at_check_trace; ovs-ofctl del-flows br0 "in_port=1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5151"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5152: ovs-ofctl del-flows br0 \"in_port=2\""
at_fn_check_prepare_trace "ofproto-dpif.at:5152"
( $at_check_trace; ovs-ofctl del-flows br0 "in_port=2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5152"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# This section below tests the [-generate] option
odp_flow="in_port(3),eth(src=50:54:00:00:00:05,dst=ff:ff:ff:ff:ff:ff)"
br_flow="arp,in_port=3,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=ff:ff:ff:ff:ff:ff"

# Test command: ofproto/trace odp_flow
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5159: ovs-appctl ofproto/trace \"\$odp_flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace \"$odp_flow\"" "ofproto-dpif.at:5159"
( $at_check_trace; ovs-appctl ofproto/trace "$odp_flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5159"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Check for no MAC learning entry
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5161: ovs-appctl fdb/show br0 | sed 's/[0-9]\\{1,\\}\$/?/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:5161"
( $at_check_trace; ovs-appctl fdb/show br0 | sed 's/[0-9]\{1,\}$/?/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " port  VLAN  MAC                Age
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5161"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Test command: ofproto/trace br_name br_flow
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5166: ovs-appctl ofproto/trace br0 \"\$br_flow\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace br0 \"$br_flow\"" "ofproto-dpif.at:5166"
( $at_check_trace; ovs-appctl ofproto/trace br0 "$br_flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5166"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Check for no MAC learning entry
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5168: ovs-appctl fdb/show br0 | sed 's/[0-9]\\{1,\\}\$/?/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:5168"
( $at_check_trace; ovs-appctl fdb/show br0 | sed 's/[0-9]\{1,\}$/?/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " port  VLAN  MAC                Age
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5168"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Test command: ofproto/trace odp_flow -generate
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5173: ovs-appctl ofproto/trace \"\$odp_flow\" -generate"
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace \"$odp_flow\" -generate" "ofproto-dpif.at:5173"
( $at_check_trace; ovs-appctl ofproto/trace "$odp_flow" -generate
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5173"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Check for the MAC learning entry
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5175: ovs-appctl fdb/show br0 | sed 's/[0-9]\\{1,\\}\$/?/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:5175"
( $at_check_trace; ovs-appctl fdb/show br0 | sed 's/[0-9]\{1,\}$/?/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " port  VLAN  MAC                Age
    3     0  50:54:00:00:00:05    ?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5175"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Test command: ofproto/trace dp_name odp_flow -generate
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5181: ovs-appctl ofproto/trace ovs-dummy \\
  \"in_port(1),eth(src=50:54:00:00:00:06,dst=50:54:00:00:00:05)\" \\
  -generate"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5181"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy \
  "in_port(1),eth(src=50:54:00:00:00:06,dst=50:54:00:00:00:05)" \
  -generate
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5181"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Check for both MAC learning entries
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5185: ovs-appctl fdb/show br0 | sed 's/[0-9]\\{1,\\}\$/?/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:5185"
( $at_check_trace; ovs-appctl fdb/show br0 | sed 's/[0-9]\{1,\}$/?/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " port  VLAN  MAC                Age
    3     0  50:54:00:00:00:05    ?
    1     0  50:54:00:00:00:06    ?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5185"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Test command: ofproto/trace br_name br_flow -generate
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5192: ovs-appctl ofproto/trace br0 \\
  \"in_port=2,dl_src=50:54:00:00:00:07,dl_dst=50:54:00:00:00:06\" \\
  -generate"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5192"
( $at_check_trace; ovs-appctl ofproto/trace br0 \
  "in_port=2,dl_src=50:54:00:00:00:07,dl_dst=50:54:00:00:00:06" \
  -generate
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5192"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Check for both MAC learning entries.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5196: ovs-appctl fdb/show br0 | sed 's/[0-9]\\{1,\\}\$/?/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:5196"
( $at_check_trace; ovs-appctl fdb/show br0 | sed 's/[0-9]\{1,\}$/?/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " port  VLAN  MAC                Age
    3     0  50:54:00:00:00:05    ?
    1     0  50:54:00:00:00:06    ?
    2     0  50:54:00:00:00:07    ?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5196"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# This section beflow tests the [packet] option
# The ovs-tcpundump of packets between port1 and port2
pkt1to2="50540000000250540000000108064500001C000100004001F98CC0A80001C0A800020800F7FF00000000"
pkt2to1="50540000000150540000000208064500001C000100004001F98CC0A80002C0A800010800F7FF00000000"

# Construct the MAC learning table
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5209: ovs-appctl ofproto/trace ovs-dummy \\
  \"in_port(1),eth(src=50:54:00:00:00:01,dst=ff:ff:ff:ff:ff:ff)\" \\
  -generate"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5209"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy \
  "in_port(1),eth(src=50:54:00:00:00:01,dst=ff:ff:ff:ff:ff:ff)" \
  -generate
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5209"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Construct the MAC learning table
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5214: ovs-appctl ofproto/trace ovs-dummy \\
  \"in_port(2),eth(src=50:54:00:00:00:02,dst=ff:ff:ff:ff:ff:ff)\" \\
  -generate"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5214"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy \
  "in_port(2),eth(src=50:54:00:00:00:02,dst=ff:ff:ff:ff:ff:ff)" \
  -generate
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5214"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Test command: ofproto/trace odp_flow packet
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5219: ovs-appctl ofproto/trace \\
  \"in_port(1),skb_priority(1),skb_mark(2)\" \"\$pkt1to2\""
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5219"
( $at_check_trace; ovs-appctl ofproto/trace \
  "in_port(1),skb_priority(1),skb_mark(2)" "$pkt1to2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5219"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5221: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:5221"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5221"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5224: head -n 3 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:5224"
( $at_check_trace; head -n 3 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Flow: pkt_mark=0x2,skb_priority=0x1,arp,in_port=1,vlan_tci=0x0000,dl_src=50:54:00:00:00:01,dl_dst=50:54:00:00:00:02,arp_spa=0.0.0.0,arp_tpa=0.0.0.0,arp_op=0,arp_sha=00:00:00:00:00:00,arp_tha=00:00:00:00:00:00

bridge(\"br0\")
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5224"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Test command: ofproto/trace dp_name odp_flow packet
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5231: ovs-appctl ofproto/trace ovs-dummy \\
  \"in_port(1),skb_priority(1),skb_mark(2)\" \"\$pkt1to2\""
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5231"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy \
  "in_port(1),skb_priority(1),skb_mark(2)" "$pkt1to2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5231"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5233: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:5233"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5233"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5236: head -n 3 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:5236"
( $at_check_trace; head -n 3 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Flow: pkt_mark=0x2,skb_priority=0x1,arp,in_port=1,vlan_tci=0x0000,dl_src=50:54:00:00:00:01,dl_dst=50:54:00:00:00:02,arp_spa=0.0.0.0,arp_tpa=0.0.0.0,arp_op=0,arp_sha=00:00:00:00:00:00,arp_tha=00:00:00:00:00:00

bridge(\"br0\")
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5236"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Test command: ofproto/trace br_name br_flow packet
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5243: ovs-appctl ofproto/trace br0 \\
  \"in_port=2,skb_priority=2,pkt_mark=1\" \"\$pkt2to1\""
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5243"
( $at_check_trace; ovs-appctl ofproto/trace br0 \
  "in_port=2,skb_priority=2,pkt_mark=1" "$pkt2to1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5243"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5245: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:5245"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5245"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5248: head -n 3 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:5248"
( $at_check_trace; head -n 3 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Flow: pkt_mark=0x1,skb_priority=0x2,arp,in_port=2,vlan_tci=0x0000,dl_src=50:54:00:00:00:02,dl_dst=50:54:00:00:00:01,arp_spa=0.0.0.0,arp_tpa=0.0.0.0,arp_op=0,arp_sha=00:00:00:00:00:00,arp_tha=00:00:00:00:00:00

bridge(\"br0\")
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5248"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5254: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:5254"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5254"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5254: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:5254"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5254"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5254: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:5254"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5254"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:5254: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5254: wait failed" >&5

    $as_echo "ofproto-dpif.at:5254" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5254"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5254: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:5254"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5254"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5254: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:5254"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5254"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:5254: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5254: wait failed" >&5

    $as_echo "ofproto-dpif.at:5254" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5254"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1131
#AT_START_1132
at_fn_group_banner 1132 'ofproto-dpif.at:5258' \
  "ofproto-dpif - ofproto/trace command 2" "         " 55
at_xfail=no
(
  $as_echo "1132. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5259: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:5259"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5259"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5259: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:5259"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5259"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5259: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5259"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5259"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5259: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:5259"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5259"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5259: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:5259"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5259"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5259: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5259"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5259"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5259: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:5259"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5259"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2

# Define flows
odp_flow="in_port(1),eth(src=50:54:00:00:00:01,dst=50:54:00:00:00:02)"
br_flow="in_port=1,dl_src=50:54:00:00:00:01,dl_dst=50:54:00:00:00:02"
# Define options
generate="-generate"
pkt="50540000000250540000000108064500001C000100004001F98CC0A80001C0A800020800F7FF00000000"

# Test incorrect command: ofproto/trace wrong_name odp_flow [-generate|packet]
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5270: ovs-appctl ofproto/trace wrong_name \"\$odp_flow\" "
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace wrong_name \"$odp_flow\" " "ofproto-dpif.at:5270"
( $at_check_trace; ovs-appctl ofproto/trace wrong_name "$odp_flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ofproto-dpif.at:5270"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5270: tail -2 stderr"
at_fn_check_prepare_trace "ofproto-dpif.at:5270"
( $at_check_trace; tail -2 stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Cannot find the datapath
ovs-appctl: ovs-vswitchd: server returned an error
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5270"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5270: ovs-appctl ofproto/trace wrong_name \"\$odp_flow\" \"\$generate\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace wrong_name \"$odp_flow\" \"$generate\"" "ofproto-dpif.at:5270"
( $at_check_trace; ovs-appctl ofproto/trace wrong_name "$odp_flow" "$generate"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ofproto-dpif.at:5270"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5270: tail -2 stderr"
at_fn_check_prepare_trace "ofproto-dpif.at:5270"
( $at_check_trace; tail -2 stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Cannot find the datapath
ovs-appctl: ovs-vswitchd: server returned an error
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5270"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5270: ovs-appctl ofproto/trace wrong_name \"\$odp_flow\" \"\$pkt\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace wrong_name \"$odp_flow\" \"$pkt\"" "ofproto-dpif.at:5270"
( $at_check_trace; ovs-appctl ofproto/trace wrong_name "$odp_flow" "$pkt"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ofproto-dpif.at:5270"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5270: tail -2 stderr"
at_fn_check_prepare_trace "ofproto-dpif.at:5270"
( $at_check_trace; tail -2 stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Cannot find the datapath
ovs-appctl: ovs-vswitchd: server returned an error
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5270"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Test incorrect command: ofproto/trace empty_string odp_flow [-generate|packet]
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5283: ovs-appctl ofproto/trace \"\" \"\$odp_flow\" "
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace \"\" \"$odp_flow\" " "ofproto-dpif.at:5283"
( $at_check_trace; ovs-appctl ofproto/trace "" "$odp_flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ofproto-dpif.at:5283"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5283: tail -2 stderr"
at_fn_check_prepare_trace "ofproto-dpif.at:5283"
( $at_check_trace; tail -2 stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Cannot find the datapath
ovs-appctl: ovs-vswitchd: server returned an error
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5283"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5283: ovs-appctl ofproto/trace \"\" \"\$odp_flow\" \"\$generate\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace \"\" \"$odp_flow\" \"$generate\"" "ofproto-dpif.at:5283"
( $at_check_trace; ovs-appctl ofproto/trace "" "$odp_flow" "$generate"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ofproto-dpif.at:5283"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5283: tail -2 stderr"
at_fn_check_prepare_trace "ofproto-dpif.at:5283"
( $at_check_trace; tail -2 stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Cannot find the datapath
ovs-appctl: ovs-vswitchd: server returned an error
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5283"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5283: ovs-appctl ofproto/trace \"\" \"\$odp_flow\" \"\$pkt\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace \"\" \"$odp_flow\" \"$pkt\"" "ofproto-dpif.at:5283"
( $at_check_trace; ovs-appctl ofproto/trace "" "$odp_flow" "$pkt"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ofproto-dpif.at:5283"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5283: tail -2 stderr"
at_fn_check_prepare_trace "ofproto-dpif.at:5283"
( $at_check_trace; tail -2 stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Cannot find the datapath
ovs-appctl: ovs-vswitchd: server returned an error
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5283"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Test incorrect command: ofproto/trace nonexist_dp_name odp_flow [-generate|packet]
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5296: ovs-appctl ofproto/trace ovs-system \"\$odp_flow\" "
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-system \"$odp_flow\" " "ofproto-dpif.at:5296"
( $at_check_trace; ovs-appctl ofproto/trace ovs-system "$odp_flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ofproto-dpif.at:5296"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5296: tail -2 stderr"
at_fn_check_prepare_trace "ofproto-dpif.at:5296"
( $at_check_trace; tail -2 stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Cannot find the datapath
ovs-appctl: ovs-vswitchd: server returned an error
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5296"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5296: ovs-appctl ofproto/trace ovs-system \"\$odp_flow\" \"\$generate\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-system \"$odp_flow\" \"$generate\"" "ofproto-dpif.at:5296"
( $at_check_trace; ovs-appctl ofproto/trace ovs-system "$odp_flow" "$generate"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ofproto-dpif.at:5296"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5296: tail -2 stderr"
at_fn_check_prepare_trace "ofproto-dpif.at:5296"
( $at_check_trace; tail -2 stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Cannot find the datapath
ovs-appctl: ovs-vswitchd: server returned an error
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5296"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5296: ovs-appctl ofproto/trace ovs-system \"\$odp_flow\" \"\$pkt\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-system \"$odp_flow\" \"$pkt\"" "ofproto-dpif.at:5296"
( $at_check_trace; ovs-appctl ofproto/trace ovs-system "$odp_flow" "$pkt"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ofproto-dpif.at:5296"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5296: tail -2 stderr"
at_fn_check_prepare_trace "ofproto-dpif.at:5296"
( $at_check_trace; tail -2 stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Cannot find the datapath
ovs-appctl: ovs-vswitchd: server returned an error
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5296"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Test incorrect command: ofproto/trace br_name odp_flow [-generate|packet]
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5309: ovs-appctl ofproto/trace br0 \"\$odp_flow\" "
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace br0 \"$odp_flow\" " "ofproto-dpif.at:5309"
( $at_check_trace; ovs-appctl ofproto/trace br0 "$odp_flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ofproto-dpif.at:5309"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5309: tail -2 stderr"
at_fn_check_prepare_trace "ofproto-dpif.at:5309"
( $at_check_trace; tail -2 stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Cannot find the datapath
ovs-appctl: ovs-vswitchd: server returned an error
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5309"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5309: ovs-appctl ofproto/trace br0 \"\$odp_flow\" \"\$generate\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace br0 \"$odp_flow\" \"$generate\"" "ofproto-dpif.at:5309"
( $at_check_trace; ovs-appctl ofproto/trace br0 "$odp_flow" "$generate"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ofproto-dpif.at:5309"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5309: tail -2 stderr"
at_fn_check_prepare_trace "ofproto-dpif.at:5309"
( $at_check_trace; tail -2 stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Cannot find the datapath
ovs-appctl: ovs-vswitchd: server returned an error
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5309"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5309: ovs-appctl ofproto/trace br0 \"\$odp_flow\" \"\$pkt\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace br0 \"$odp_flow\" \"$pkt\"" "ofproto-dpif.at:5309"
( $at_check_trace; ovs-appctl ofproto/trace br0 "$odp_flow" "$pkt"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ofproto-dpif.at:5309"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5309: tail -2 stderr"
at_fn_check_prepare_trace "ofproto-dpif.at:5309"
( $at_check_trace; tail -2 stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Cannot find the datapath
ovs-appctl: ovs-vswitchd: server returned an error
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5309"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Test incorrect command: ofproto/trace dp_name br_flow [-generate|packet]
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5322: ovs-appctl ofproto/trace ovs-dummy \"\$br_flow\" "
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$br_flow\" " "ofproto-dpif.at:5322"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$br_flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ofproto-dpif.at:5322"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5322: tail -2 stderr"
at_fn_check_prepare_trace "ofproto-dpif.at:5322"
( $at_check_trace; tail -2 stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Unknown bridge name
ovs-appctl: ovs-vswitchd: server returned an error
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5322"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5322: ovs-appctl ofproto/trace ovs-dummy \"\$br_flow\" \"\$generate\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$br_flow\" \"$generate\"" "ofproto-dpif.at:5322"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$br_flow" "$generate"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ofproto-dpif.at:5322"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5322: tail -2 stderr"
at_fn_check_prepare_trace "ofproto-dpif.at:5322"
( $at_check_trace; tail -2 stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Unknown bridge name
ovs-appctl: ovs-vswitchd: server returned an error
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5322"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5322: ovs-appctl ofproto/trace ovs-dummy \"\$br_flow\" \"\$pkt\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$br_flow\" \"$pkt\"" "ofproto-dpif.at:5322"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$br_flow" "$pkt"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ofproto-dpif.at:5322"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5322: tail -2 stderr"
at_fn_check_prepare_trace "ofproto-dpif.at:5322"
( $at_check_trace; tail -2 stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Unknown bridge name
ovs-appctl: ovs-vswitchd: server returned an error
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5322"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Test incorrect command: ofproto/trace br_flow [-generate|packet]
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5335: ovs-appctl ofproto/trace \"\$br_flow\" "
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace \"$br_flow\" " "ofproto-dpif.at:5335"
( $at_check_trace; ovs-appctl ofproto/trace "$br_flow"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ofproto-dpif.at:5335"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5335: tail -2 stderr"
at_fn_check_prepare_trace "ofproto-dpif.at:5335"
( $at_check_trace; tail -2 stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Must specify bridge name
ovs-appctl: ovs-vswitchd: server returned an error
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5335"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5335: ovs-appctl ofproto/trace \"\$br_flow\" \"\$generate\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace \"$br_flow\" \"$generate\"" "ofproto-dpif.at:5335"
( $at_check_trace; ovs-appctl ofproto/trace "$br_flow" "$generate"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ofproto-dpif.at:5335"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5335: tail -2 stderr"
at_fn_check_prepare_trace "ofproto-dpif.at:5335"
( $at_check_trace; tail -2 stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Must specify bridge name
ovs-appctl: ovs-vswitchd: server returned an error
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5335"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5335: ovs-appctl ofproto/trace \"\$br_flow\" \"\$pkt\""
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace \"$br_flow\" \"$pkt\"" "ofproto-dpif.at:5335"
( $at_check_trace; ovs-appctl ofproto/trace "$br_flow" "$pkt"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ofproto-dpif.at:5335"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5335: tail -2 stderr"
at_fn_check_prepare_trace "ofproto-dpif.at:5335"
( $at_check_trace; tail -2 stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Must specify bridge name
ovs-appctl: ovs-vswitchd: server returned an error
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5335"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Test incorrect command: ofproto/trace dp_name odp_flow garbage_option
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5348: ovs-appctl ofproto/trace \\
  ovs-dummy \"\$odp_flow\" garbage_option"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5348"
( $at_check_trace; ovs-appctl ofproto/trace \
  ovs-dummy "$odp_flow" garbage_option
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 2 $at_status "$at_srcdir/ofproto-dpif.at:5348"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5351: tail -2 stderr"
at_fn_check_prepare_trace "ofproto-dpif.at:5351"
( $at_check_trace; tail -2 stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Trailing garbage in packet data
ovs-appctl: ovs-vswitchd: server returned an error
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5351"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Test incorrect command: ofproto/trace with 0 argument
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5357: ovs-appctl ofproto/trace "
at_fn_check_prepare_trace "ofproto-dpif.at:5357"
( $at_check_trace; ovs-appctl ofproto/trace
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 2 $at_status "$at_srcdir/ofproto-dpif.at:5357"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5358: tail -2 stderr"
at_fn_check_prepare_trace "ofproto-dpif.at:5358"
( $at_check_trace; tail -2 stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"ofproto/trace\" command requires at least 1 arguments
ovs-appctl: ovs-vswitchd: server returned an error
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5358"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5363: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:5363"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5363"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5363: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:5363"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5363"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5363: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:5363"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5363"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:5363: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5363: wait failed" >&5

    $as_echo "ofproto-dpif.at:5363" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5363"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5363: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:5363"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5363"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5363: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:5363"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5363"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:5363: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5363: wait failed" >&5

    $as_echo "ofproto-dpif.at:5363" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5363"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1132
#AT_START_1133
at_fn_group_banner 1133 'ofproto-dpif.at:5367' \
  "ofproto-dpif - ofproto/trace from dpctl output" " " 55
at_xfail=no
(
  $as_echo "1133. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5368: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:5368"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5368"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5368: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:5368"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5368"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5368: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5368"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5368"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5368: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:5368"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5368"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5368: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:5368"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5368"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5368: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5368"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5368"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5368: add_of_br 0     set Open_vSwitch . other_config:max-idle=10000 \\
    -- add-port br0 p1 -- set Interface p1 type=dummy "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5368"
( $at_check_trace; add_of_br 0     set Open_vSwitch . other_config:max-idle=10000 \
    -- add-port br0 p1 -- set Interface p1 type=dummy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5368"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5372: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:5372"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5372"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl revalidator/wait
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5374: ovs-appctl dpif/dump-flows -m br0 | sed 's/, packets.*\$//' > dp_flows1.txt"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:5374"
( $at_check_trace; ovs-appctl dpif/dump-flows -m br0 | sed 's/, packets.*$//' > dp_flows1.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5374"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


odp_flow=`cat dp_flows1.txt`
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5377: ovs-appctl ofproto/trace \"\$odp_flow\" | sed 's/\\([Ff]low:\\).*/\\1 <cleared>/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:5377"
( $at_check_trace; ovs-appctl ofproto/trace "$odp_flow" | sed 's/\([Ff]low:\).*/\1 <cleared>/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Flow: <cleared>

bridge(\"br0\")
-------------
 0. No match.
    drop

Final flow: <cleared>
Megaflow: <cleared>
Datapath actions: drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5377"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl upcall/disable-megaflows

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5393: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:5393"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5393"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl revalidator/wait
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5395: ovs-appctl dpif/dump-flows -m br0 | sed 's/, packets.*\$//' > dp_flows2.txt"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:5395"
( $at_check_trace; ovs-appctl dpif/dump-flows -m br0 | sed 's/, packets.*$//' > dp_flows2.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5395"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


odp_flow=`cat dp_flows2.txt`
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5398: ovs-appctl ofproto/trace \"\$odp_flow\" | sed 's/\\([Ff]low:\\).*/\\1 <cleared>/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:5398"
( $at_check_trace; ovs-appctl ofproto/trace "$odp_flow" | sed 's/\([Ff]low:\).*/\1 <cleared>/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Flow: <cleared>

bridge(\"br0\")
-------------
 0. No match.
    drop

Final flow: <cleared>
Megaflow: <cleared>
Datapath actions: drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5398"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5411: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:5411"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5411"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5411: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:5411"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5411"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5411: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:5411"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5411"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:5411: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5411: wait failed" >&5

    $as_echo "ofproto-dpif.at:5411" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5411"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5411: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:5411"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5411"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5411: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:5411"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5411"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:5411: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5411: wait failed" >&5

    $as_echo "ofproto-dpif.at:5411" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5411"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1133
#AT_START_1134
at_fn_group_banner 1134 'ofproto-dpif.at:5414' \
  "ofproto-dpif - ofproto/trace-packet-out" "        " 55
at_xfail=no
(
  $as_echo "1134. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5415: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:5415"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5415"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5415: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:5415"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5415"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5415: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5415"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5415"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5415: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:5415"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5415"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5415: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:5415"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5415"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5415: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5415"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5415"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5415: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:5415"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5415"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3

cat >flows.txt <<'_ATEOF'
in_port=1 actions=output:2
in_port=2 actions=output:1
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5422: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:5422"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5422"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5424: ovs-appctl ofproto/trace-packet-out br0 in_port=1 'mod_vlan_vid:123,resubmit(,0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:5424"
( $at_check_trace; ovs-appctl ofproto/trace-packet-out br0 in_port=1 'mod_vlan_vid:123,resubmit(,0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5424"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5425: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:5425"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: push_vlan(vid=123,pcp=0),2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5425"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5429: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:5429"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5429"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5429: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:5429"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5429"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5429: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:5429"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5429"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:5429: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5429: wait failed" >&5

    $as_echo "ofproto-dpif.at:5429" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5429"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5429: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:5429"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5429"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5429: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:5429"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5429"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:5429: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5429: wait failed" >&5

    $as_echo "ofproto-dpif.at:5429" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5429"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1134
#AT_START_1135
at_fn_group_banner 1135 'ofproto-dpif.at:5444' \
  "ofproto-dpif - MAC learning" "                    " 55
at_xfail=no
(
  $as_echo "1135. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5445: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:5445"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5445"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5445: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:5445"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5445"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5445: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5445"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5445"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5445: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:5445"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5445"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5445: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:5445"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5445"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5445: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5445"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5445"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5445: add_of_br 0 set bridge br0 fail-mode=standalone "
at_fn_check_prepare_trace "ofproto-dpif.at:5445"
( $at_check_trace; add_of_br 0 set bridge br0 fail-mode=standalone
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5445"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3

arp='eth_type(0x0806),arp(sip=192.168.0.1,tip=192.168.0.2,op=1,sha=50:54:00:00:00:05,tha=00:00:00:00:00:00)'

# Trace an ARP packet arriving on p3, to create a MAC learning entry.
flow="in_port(3),eth(src=50:54:00:00:00:05,dst=ff:ff:ff:ff:ff:ff),$arp"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5451: ovs-appctl ofproto/trace ovs-dummy \"\$flow\" -generate"
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\" -generate" "ofproto-dpif.at:5451"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow" -generate
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5451"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   actual=`tail -1 stdout | sed 's/Datapath actions: //'`
   expected="1,2,100"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5451: ovs-dpctl normalize-actions \"\$flow\" \"\$expected\" "
at_fn_check_prepare_dynamic "ovs-dpctl normalize-actions \"$flow\" \"$expected\" " "ofproto-dpif.at:5451"
( $at_check_trace; ovs-dpctl normalize-actions "$flow" "$expected"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5451"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   mv stdout expout
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5451: ovs-dpctl normalize-actions \"\$flow\" \"\$actual\" "
at_fn_check_prepare_dynamic "ovs-dpctl normalize-actions \"$flow\" \"$actual\" " "ofproto-dpif.at:5451"
( $at_check_trace; ovs-dpctl normalize-actions "$flow" "$actual"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5451"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Check for the MAC learning entry.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5458: ovs-appctl fdb/show br0 | sed 's/[0-9]\\{1,\\}\$/?/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:5458"
( $at_check_trace; ovs-appctl fdb/show br0 | sed 's/[0-9]\{1,\}$/?/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " port  VLAN  MAC                Age
    3     0  50:54:00:00:00:05    ?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5458"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Trace a packet arrival destined for the learned MAC.
# (This will also learn a MAC.)
flow="in_port(1),eth(src=50:54:00:00:00:06,dst=50:54:00:00:00:05),$arp"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5465: ovs-appctl ofproto/trace ovs-dummy \"\$flow\" -generate"
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\" -generate" "ofproto-dpif.at:5465"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow" -generate
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5465"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   actual=`tail -1 stdout | sed 's/Datapath actions: //'`
   expected="3"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5465: ovs-dpctl normalize-actions \"\$flow\" \"\$expected\" "
at_fn_check_prepare_dynamic "ovs-dpctl normalize-actions \"$flow\" \"$expected\" " "ofproto-dpif.at:5465"
( $at_check_trace; ovs-dpctl normalize-actions "$flow" "$expected"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5465"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   mv stdout expout
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5465: ovs-dpctl normalize-actions \"\$flow\" \"\$actual\" "
at_fn_check_prepare_dynamic "ovs-dpctl normalize-actions \"$flow\" \"$actual\" " "ofproto-dpif.at:5465"
( $at_check_trace; ovs-dpctl normalize-actions "$flow" "$actual"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5465"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Check for both MAC learning entries.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5472: ovs-appctl fdb/show br0 | sed 's/[0-9]\\{1,\\}\$/?/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:5472"
( $at_check_trace; ovs-appctl fdb/show br0 | sed 's/[0-9]\{1,\}$/?/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " port  VLAN  MAC                Age
    3     0  50:54:00:00:00:05    ?
    1     0  50:54:00:00:00:06    ?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5472"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Trace a packet arrival that updates the first learned MAC entry.
flow="in_port(2),eth(src=50:54:00:00:00:05,dst=ff:ff:ff:ff:ff:ff),$arp"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5479: ovs-appctl ofproto/trace ovs-dummy \"\$flow\" -generate"
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\" -generate" "ofproto-dpif.at:5479"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow" -generate
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5479"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   actual=`tail -1 stdout | sed 's/Datapath actions: //'`
   expected="1,3,100"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5479: ovs-dpctl normalize-actions \"\$flow\" \"\$expected\" "
at_fn_check_prepare_dynamic "ovs-dpctl normalize-actions \"$flow\" \"$expected\" " "ofproto-dpif.at:5479"
( $at_check_trace; ovs-dpctl normalize-actions "$flow" "$expected"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5479"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   mv stdout expout
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5479: ovs-dpctl normalize-actions \"\$flow\" \"\$actual\" "
at_fn_check_prepare_dynamic "ovs-dpctl normalize-actions \"$flow\" \"$actual\" " "ofproto-dpif.at:5479"
( $at_check_trace; ovs-dpctl normalize-actions "$flow" "$actual"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5479"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Check that the MAC learning entry was updated.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5486: ovs-appctl fdb/show br0 | sed 's/[0-9]\\{1,\\}\$/?/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:5486"
( $at_check_trace; ovs-appctl fdb/show br0 | sed 's/[0-9]\{1,\}$/?/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " port  VLAN  MAC                Age
    1     0  50:54:00:00:00:06    ?
    2     0  50:54:00:00:00:05    ?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5486"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Add another bridge.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5493: ovs-vsctl \\
     -- add-br br1 \\
     -- set bridge br1 datapath-type=dummy"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5493"
( $at_check_trace; ovs-vsctl \
     -- add-br br1 \
     -- set bridge br1 datapath-type=dummy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5493"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

add_of_ports br1 4 5

# Trace some packet arrivals in br1 to create MAC learning entries there too.
flow="in_port(4),eth(src=50:54:00:00:00:06,dst=ff:ff:ff:ff:ff:ff),$arp"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5500: ovs-appctl ofproto/trace ovs-dummy \"\$flow\" -generate"
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\" -generate" "ofproto-dpif.at:5500"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow" -generate
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5500"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   actual=`tail -1 stdout | sed 's/Datapath actions: //'`
   expected="5,101"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5500: ovs-dpctl normalize-actions \"\$flow\" \"\$expected\" "
at_fn_check_prepare_dynamic "ovs-dpctl normalize-actions \"$flow\" \"$expected\" " "ofproto-dpif.at:5500"
( $at_check_trace; ovs-dpctl normalize-actions "$flow" "$expected"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5500"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   mv stdout expout
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5500: ovs-dpctl normalize-actions \"\$flow\" \"\$actual\" "
at_fn_check_prepare_dynamic "ovs-dpctl normalize-actions \"$flow\" \"$actual\" " "ofproto-dpif.at:5500"
( $at_check_trace; ovs-dpctl normalize-actions "$flow" "$actual"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5500"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

flow="in_port(5),eth(src=50:54:00:00:00:07,dst=ff:ff:ff:ff:ff:ff),$arp"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5505: ovs-appctl ofproto/trace ovs-dummy \"\$flow\" -generate"
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\" -generate" "ofproto-dpif.at:5505"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow" -generate
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5505"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   actual=`tail -1 stdout | sed 's/Datapath actions: //'`
   expected="4,101"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5505: ovs-dpctl normalize-actions \"\$flow\" \"\$expected\" "
at_fn_check_prepare_dynamic "ovs-dpctl normalize-actions \"$flow\" \"$expected\" " "ofproto-dpif.at:5505"
( $at_check_trace; ovs-dpctl normalize-actions "$flow" "$expected"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5505"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   mv stdout expout
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5505: ovs-dpctl normalize-actions \"\$flow\" \"\$actual\" "
at_fn_check_prepare_dynamic "ovs-dpctl normalize-actions \"$flow\" \"$actual\" " "ofproto-dpif.at:5505"
( $at_check_trace; ovs-dpctl normalize-actions "$flow" "$actual"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5505"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Check that the MAC learning entries were added.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5512: ovs-appctl fdb/show br1 | sed 's/[0-9]\\{1,\\}\$/?/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:5512"
( $at_check_trace; ovs-appctl fdb/show br1 | sed 's/[0-9]\{1,\}$/?/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " port  VLAN  MAC                Age
    4     0  50:54:00:00:00:06    ?
    5     0  50:54:00:00:00:07    ?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5512"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Delete port p1 and see that its MAC learning entry disappeared, and
# that the MAC learning entry for the same MAC was also deleted from br1.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5520: ovs-vsctl del-port p1"
at_fn_check_prepare_trace "ofproto-dpif.at:5520"
( $at_check_trace; ovs-vsctl del-port p1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5520"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5521: ovs-appctl fdb/show br0 | sed 's/[0-9]\\{1,\\}\$/?/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:5521"
( $at_check_trace; ovs-appctl fdb/show br0 | sed 's/[0-9]\{1,\}$/?/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " port  VLAN  MAC                Age
    2     0  50:54:00:00:00:05    ?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5521"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5525: ovs-appctl fdb/show br1 | sed 's/[0-9]\\{1,\\}\$/?/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:5525"
( $at_check_trace; ovs-appctl fdb/show br1 | sed 's/[0-9]\{1,\}$/?/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " port  VLAN  MAC                Age
    5     0  50:54:00:00:00:07    ?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5525"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5530: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:5530"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5530"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5530: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:5530"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5530"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5530: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:5530"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5530"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:5530: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5530: wait failed" >&5

    $as_echo "ofproto-dpif.at:5530" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5530"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5530: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:5530"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5530"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5530: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:5530"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5530"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:5530: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5530: wait failed" >&5

    $as_echo "ofproto-dpif.at:5530" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5530"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1135
#AT_START_1136
at_fn_group_banner 1136 'ofproto-dpif.at:5533' \
  "ofproto-dpif - MAC table overflow" "              " 55
at_xfail=no
(
  $as_echo "1136. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5534: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:5534"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5534"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5534: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:5534"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5534"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5534: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5534"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5534"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5534: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:5534"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5534"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5534: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:5534"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5534"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5534: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5534"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5534"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5534: add_of_br 0 set bridge br0 fail-mode=standalone other-config:mac-table-size=10 "
at_fn_check_prepare_trace "ofproto-dpif.at:5534"
( $at_check_trace; add_of_br 0 set bridge br0 fail-mode=standalone other-config:mac-table-size=10
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5534"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3

arp='eth_type(0x0806),arp(sip=192.168.0.1,tip=192.168.0.2,op=1,sha=50:54:00:00:00:05,tha=00:00:00:00:00:00)'

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5540: ovs-appctl time/stop"
at_fn_check_prepare_trace "ofproto-dpif.at:5540"
( $at_check_trace; ovs-appctl time/stop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5540"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Trace 10 ARP packets arriving on p3, to create MAC learning entries.
for i in 0 1 2 3 4 5 6 7 8 9; do
    flow="in_port(3),eth(src=50:54:00:00:00:0$i,dst=ff:ff:ff:ff:ff:ff),$arp"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5544: ovs-appctl ofproto/trace ovs-dummy \"\$flow\" -generate"
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\" -generate" "ofproto-dpif.at:5544"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow" -generate
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5544"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   actual=`tail -1 stdout | sed 's/Datapath actions: //'`
   expected="1,2,100"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5544: ovs-dpctl normalize-actions \"\$flow\" \"\$expected\" "
at_fn_check_prepare_dynamic "ovs-dpctl normalize-actions \"$flow\" \"$expected\" " "ofproto-dpif.at:5544"
( $at_check_trace; ovs-dpctl normalize-actions "$flow" "$expected"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5544"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   mv stdout expout
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5544: ovs-dpctl normalize-actions \"\$flow\" \"\$actual\" "
at_fn_check_prepare_dynamic "ovs-dpctl normalize-actions \"$flow\" \"$actual\" " "ofproto-dpif.at:5544"
( $at_check_trace; ovs-dpctl normalize-actions "$flow" "$actual"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5544"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    ovs-appctl time/warp 1000
done

# Check for the MAC learning entries.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5553: ovs-appctl fdb/show br0 | sed 's/ *[0-9]\\{1,\\}\$//' | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:5553"
( $at_check_trace; ovs-appctl fdb/show br0 | sed 's/ *[0-9]\{1,\}$//' | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "    3     0  50:54:00:00:00:00
    3     0  50:54:00:00:00:01
    3     0  50:54:00:00:00:02
    3     0  50:54:00:00:00:03
    3     0  50:54:00:00:00:04
    3     0  50:54:00:00:00:05
    3     0  50:54:00:00:00:06
    3     0  50:54:00:00:00:07
    3     0  50:54:00:00:00:08
    3     0  50:54:00:00:00:09
 port  VLAN  MAC                Age
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5553"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Trace another ARP packet on another MAC.
flow="in_port(3),eth(src=50:54:00:00:00:10,dst=ff:ff:ff:ff:ff:ff),$arp"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5569: ovs-appctl ofproto/trace ovs-dummy \"\$flow\" -generate"
at_fn_check_prepare_dynamic "ovs-appctl ofproto/trace ovs-dummy \"$flow\" -generate" "ofproto-dpif.at:5569"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy "$flow" -generate
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5569"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   actual=`tail -1 stdout | sed 's/Datapath actions: //'`
   expected="1,2,100"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5569: ovs-dpctl normalize-actions \"\$flow\" \"\$expected\" "
at_fn_check_prepare_dynamic "ovs-dpctl normalize-actions \"$flow\" \"$expected\" " "ofproto-dpif.at:5569"
( $at_check_trace; ovs-dpctl normalize-actions "$flow" "$expected"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5569"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   mv stdout expout
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5569: ovs-dpctl normalize-actions \"\$flow\" \"\$actual\" "
at_fn_check_prepare_dynamic "ovs-dpctl normalize-actions \"$flow\" \"$actual\" " "ofproto-dpif.at:5569"
( $at_check_trace; ovs-dpctl normalize-actions "$flow" "$actual"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5569"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Check that the new one chased the oldest one out of the table.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5576: ovs-appctl fdb/show br0 | sed 's/[0-9]\\{1,\\}\$/?/' | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:5576"
( $at_check_trace; ovs-appctl fdb/show br0 | sed 's/[0-9]\{1,\}$/?/' | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "    3     0  50:54:00:00:00:01    ?
    3     0  50:54:00:00:00:02    ?
    3     0  50:54:00:00:00:03    ?
    3     0  50:54:00:00:00:04    ?
    3     0  50:54:00:00:00:05    ?
    3     0  50:54:00:00:00:06    ?
    3     0  50:54:00:00:00:07    ?
    3     0  50:54:00:00:00:08    ?
    3     0  50:54:00:00:00:09    ?
    3     0  50:54:00:00:00:10    ?
 port  VLAN  MAC                Age
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5576"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5590: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:5590"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5590"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5590: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:5590"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5590"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5590: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:5590"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5590"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:5590: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5590: wait failed" >&5

    $as_echo "ofproto-dpif.at:5590" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5590"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5590: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:5590"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5590"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5590: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:5590"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5590"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:5590: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5590: wait failed" >&5

    $as_echo "ofproto-dpif.at:5590" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5590"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1136
#AT_START_1137
at_fn_group_banner 1137 'ofproto-dpif.at:5593' \
  "ofproto-dpif - MAC table overflow fairness" "     " 55
at_xfail=no
(
  $as_echo "1137. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5594: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:5594"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5594"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5594: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:5594"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5594"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5594: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5594"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5594"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5594: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:5594"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5594"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5594: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:5594"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5594"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5594: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:5594"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5594"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5594: add_of_br 0 set bridge br0 fail-mode=standalone other-config:mac-table-size=10 "
at_fn_check_prepare_trace "ofproto-dpif.at:5594"
( $at_check_trace; add_of_br 0 set bridge br0 fail-mode=standalone other-config:mac-table-size=10
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5594"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3 4 5 6

arp='eth_type(0x0806),arp(sip=192.168.0.1,tip=192.168.0.2,op=1,sha=50:54:00:00:00:05,tha=00:00:00:00:00:00)'

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5600: ovs-appctl time/stop"
at_fn_check_prepare_trace "ofproto-dpif.at:5600"
( $at_check_trace; ovs-appctl time/stop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5600"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Trace packets with 2 different source MACs arriving on each of the 5
# ports, filling up the 10-entry learning table.
for i in 0 1 2 3 4 5 6 7 8 9; do
    p=`expr $i / 2 + 1`
    ovs-appctl ofproto/trace ovs-dummy "in_port($p),eth(src=50:54:00:00:00:0$i,dst=ff:ff:ff:ff:ff:ff),$arp" -generate
    ovs-appctl time/warp 1000
done

# Check for the MAC learning entries.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5611: ovs-appctl fdb/show br0 | sed 's/ *[0-9]\\{1,\\}\$//' | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:5611"
( $at_check_trace; ovs-appctl fdb/show br0 | sed 's/ *[0-9]\{1,\}$//' | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "    1     0  50:54:00:00:00:00
    1     0  50:54:00:00:00:01
    2     0  50:54:00:00:00:02
    2     0  50:54:00:00:00:03
    3     0  50:54:00:00:00:04
    3     0  50:54:00:00:00:05
    4     0  50:54:00:00:00:06
    4     0  50:54:00:00:00:07
    5     0  50:54:00:00:00:08
    5     0  50:54:00:00:00:09
 port  VLAN  MAC                Age
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5611"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Now trace 16 new MACs on another port.
for i in 0 1 2 3 4 5 6 7 8 9 a b c d e f; do
    ovs-appctl ofproto/trace ovs-dummy "in_port(6),eth(src=50:54:00:00:0$i:ff,dst=ff:ff:ff:ff:ff:ff),$arp" -generate
    ovs-appctl time/warp 1000
done

# Check the results.
#
# Our eviction algorithm on overflow is that an arbitrary (but deterministic)
# one of the ports with the most learned MACs loses the least recently used
# one.  Thus, the new port will end up with 3 MACs, 3 of the old ports with 1
# MAC each, and the other 2 of the old ports with 2 MACs each.
#
# (If someone changes lib/heap.c to do something different with equal-priority
# nodes, then the output below could change, but it would still follow the
# rules explained above.)
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5642: ovs-appctl fdb/show br0 | sed 's/ *[0-9]\\{1,\\}\$//' | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:5642"
( $at_check_trace; ovs-appctl fdb/show br0 | sed 's/ *[0-9]\{1,\}$//' | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "    1     0  50:54:00:00:00:01
    2     0  50:54:00:00:00:03
    3     0  50:54:00:00:00:04
    3     0  50:54:00:00:00:05
    4     0  50:54:00:00:00:07
    5     0  50:54:00:00:00:08
    5     0  50:54:00:00:00:09
    6     0  50:54:00:00:0d:ff
    6     0  50:54:00:00:0e:ff
    6     0  50:54:00:00:0f:ff
 port  VLAN  MAC                Age
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5642"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5656: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:5656"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5656"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5656: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:5656"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5656"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5656: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:5656"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5656"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:5656: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5656: wait failed" >&5

    $as_echo "ofproto-dpif.at:5656" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5656"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5656: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:5656"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5656"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:5656: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:5656"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:5656"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:5656: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:5656: wait failed" >&5

    $as_echo "ofproto-dpif.at:5656" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:5656"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1137
#AT_START_1138
at_fn_group_banner 1138 'ofproto-dpif.at:6066' \
  "ofproto-dpif - basic truncate action" "           " 55
at_xfail=no
(
  $as_echo "1138. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6067: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:6067"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6067"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6067: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:6067"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6067"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6067: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6067"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6067"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6067: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:6067"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6067"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6067: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:6067"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6067"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6067: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6067"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6067"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6067: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:6067"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6067"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3 4 5

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6070: ovs-vsctl -- set Interface p1 type=dummy options:pcap=p1.pcap"
at_fn_check_prepare_trace "ofproto-dpif.at:6070"
( $at_check_trace; ovs-vsctl -- set Interface p1 type=dummy options:pcap=p1.pcap
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6070"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6071: ovs-vsctl -- set Interface p2 type=dummy options:pstream=punix:p2.sock"
at_fn_check_prepare_trace "ofproto-dpif.at:6071"
( $at_check_trace; ovs-vsctl -- set Interface p2 type=dummy options:pstream=punix:p2.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6071"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6072: ovs-vsctl -- set Interface p3 type=dummy   options:stream=unix:p2.sock"
at_fn_check_prepare_trace "ofproto-dpif.at:6072"
( $at_check_trace; ovs-vsctl -- set Interface p3 type=dummy   options:stream=unix:p2.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6072"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6073: ovs-vsctl -- set Interface p4 type=dummy options:pstream=punix:p4.sock"
at_fn_check_prepare_trace "ofproto-dpif.at:6073"
( $at_check_trace; ovs-vsctl -- set Interface p4 type=dummy options:pstream=punix:p4.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6073"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6074: ovs-vsctl -- set Interface p5 type=dummy   options:stream=unix:p4.sock"
at_fn_check_prepare_trace "ofproto-dpif.at:6074"
( $at_check_trace; ovs-vsctl -- set Interface p5 type=dummy   options:stream=unix:p4.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6074"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
in_port=3,actions=drop
in_port=5,actions=drop
in_port=1,actions=output(port=2,max_len=64),output:4
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6081: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:6081"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6081"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6084: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=4,ttl=128,frag=no),tcp(src=8,dst=9)'"
at_fn_check_prepare_trace "ofproto-dpif.at:6084"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=4,ttl=128,frag=no),tcp(src=8,dst=9)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6084"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6085: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:6085"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: trunc(64),2,4
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6085"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6090: ovs-appctl netdev-dummy/receive p1 '000c29c8a0a4005056c0000808004500009cb4a6000040019003c0a8da01c0a8da640800cb5fa762000556f431ad0009388e08090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f'"
at_fn_check_prepare_trace "ofproto-dpif.at:6090"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 '000c29c8a0a4005056c0000808004500009cb4a6000040019003c0a8da01c0a8da640800cb5fa762000556f431ad0009388e08090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6090"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6092: ovs-ofctl parse-pcap p1.pcap"
at_fn_check_prepare_trace "ofproto-dpif.at:6092"
( $at_check_trace; ovs-ofctl parse-pcap p1.pcap
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "icmp,in_port=ANY,vlan_tci=0x0000,dl_src=00:50:56:c0:00:08,dl_dst=00:0c:29:c8:a0:a4,nw_src=192.168.218.1,nw_dst=192.168.218.100,nw_tos=0,nw_ecn=0,nw_ttl=64,icmp_type=8,icmp_code=0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6092"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6096: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:6096"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6096"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6098: ovs-ofctl dump-flows br0 | grep \"in_port=3\" | sed -n 's/.*\\(n\\_bytes=[0-9]*\\).*/\\1/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:6098"
( $at_check_trace; ovs-ofctl dump-flows br0 | grep "in_port=3" | sed -n 's/.*\(n\_bytes=[0-9]*\).*/\1/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "n_bytes=64
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6098"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6102: ovs-ofctl dump-flows br0 | grep \"in_port=5\" | sed -n 's/.*\\(n\\_bytes=[0-9]*\\).*/\\1/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:6102"
( $at_check_trace; ovs-ofctl dump-flows br0 | grep "in_port=5" | sed -n 's/.*\(n\_bytes=[0-9]*\).*/\1/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "n_bytes=170
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6102"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6107: ovs-ofctl del-flows br0"
at_fn_check_prepare_trace "ofproto-dpif.at:6107"
( $at_check_trace; ovs-ofctl del-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

cat >flows.txt <<'_ATEOF'
in_port=3,actions=drop
in_port=5,actions=drop
in_port=1,actions=output(port=2,max_len=64),output(port=2,max_len=128),output(port=4,max_len=60),output:2,output:4
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6113: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:6113"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6113"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6116: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=4,ttl=128,frag=no),tcp(src=8,dst=9)'"
at_fn_check_prepare_trace "ofproto-dpif.at:6116"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=4,ttl=128,frag=no),tcp(src=8,dst=9)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6116"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6117: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:6117"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: trunc(64),2,trunc(128),2,trunc(60),4,2,4
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6117"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6122: ovs-appctl netdev-dummy/receive p1 '000c29c8a0a4005056c0000808004500009cb4a6000040019003c0a8da01c0a8da640800cb5fa762000556f431ad0009388e08090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f'"
at_fn_check_prepare_trace "ofproto-dpif.at:6122"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 '000c29c8a0a4005056c0000808004500009cb4a6000040019003c0a8da01c0a8da640800cb5fa762000556f431ad0009388e08090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6122"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6124: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:6124"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6124"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6126: ovs-ofctl dump-flows br0 | grep \"in_port=3\" | sed -n 's/.*\\(n\\_bytes=[0-9]*\\).*/\\1/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:6126"
( $at_check_trace; ovs-ofctl dump-flows br0 | grep "in_port=3" | sed -n 's/.*\(n\_bytes=[0-9]*\).*/\1/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "n_bytes=362
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6126"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6130: ovs-ofctl dump-flows br0 | grep \"in_port=5\" | sed -n 's/.*\\(n\\_bytes=[0-9]*\\).*/\\1/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:6130"
( $at_check_trace; ovs-ofctl dump-flows br0 | grep "in_port=5" | sed -n 's/.*\(n\_bytes=[0-9]*\).*/\1/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "n_bytes=230
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6130"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6135: ovs-ofctl add-flow br0 'actions=output(port=ALL,max_len=100)'"
at_fn_check_prepare_trace "ofproto-dpif.at:6135"
( $at_check_trace; ovs-ofctl add-flow br0 'actions=output(port=ALL,max_len=100)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: output to unsupported truncate port: ALL
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto-dpif.at:6135"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6139: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:6139"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6139"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6139: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:6139"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6139"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6139: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:6139"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6139"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6139: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6139: wait failed" >&5

    $as_echo "ofproto-dpif.at:6139" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6139"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6139: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:6139"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6139"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6139: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:6139"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6139"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6139: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6139: wait failed" >&5

    $as_echo "ofproto-dpif.at:6139" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6139"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1138
#AT_START_1139
at_fn_group_banner 1139 'ofproto-dpif.at:6142' \
  "ofproto-dpif - truncate and output to patch port" "" 55
at_xfail=no
(
  $as_echo "1139. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6143: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:6143"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6143"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6143: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:6143"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6143"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6143: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6143"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6143"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6143: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:6143"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6143"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6143: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:6143"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6143"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6143: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6143"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6143"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6143: add_of_br 0 add-br br1 \\
-- set bridge br1 datapath-type=dummy fail-mode=secure \\
-- add-port br1 pbr1 -- set int pbr1 type=patch options:peer=pbr0 ofport_request=1 \\
-- add-port br0 pbr0 -- set int pbr0 type=patch options:peer=pbr1 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6143"
( $at_check_trace; add_of_br 0 add-br br1 \
-- set bridge br1 datapath-type=dummy fail-mode=secure \
-- add-port br1 pbr1 -- set int pbr1 type=patch options:peer=pbr0 ofport_request=1 \
-- add-port br0 pbr0 -- set int pbr0 type=patch options:peer=pbr1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6143"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



add_of_ports br0 2

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6150: ovs-ofctl add-flow br0 actions='output(port=1,max_len=100),output:2'"
at_fn_check_prepare_trace "ofproto-dpif.at:6150"
( $at_check_trace; ovs-ofctl add-flow br0 actions='output(port=1,max_len=100),output:2'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6150"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6151: ovs-ofctl add-flow br1 actions=NORMAL"
at_fn_check_prepare_trace "ofproto-dpif.at:6151"
( $at_check_trace; ovs-ofctl add-flow br1 actions=NORMAL
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6151"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6153: ovs-appctl ofproto/trace br0 in_port=LOCAL,dl_src=10:20:30:40:50:60"
at_fn_check_prepare_trace "ofproto-dpif.at:6153"
( $at_check_trace; ovs-appctl ofproto/trace br0 in_port=LOCAL,dl_src=10:20:30:40:50:60
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6153"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6155: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:6155"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6155"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6158: grep \"output_trunc does not support patch port [0-9]*\" stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:6158"
( $at_check_trace; grep "output_trunc does not support patch port [0-9]*" stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6158"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6160: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:6160"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6160"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6160: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:6160"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6160"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6160: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:6160"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6160"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6160: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6160: wait failed" >&5

    $as_echo "ofproto-dpif.at:6160" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6160"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6160: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:6160"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6160"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6160: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:6160"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6160"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6160: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6160: wait failed" >&5

    $as_echo "ofproto-dpif.at:6160" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6160"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1139
#AT_START_1140
at_fn_group_banner 1140 'ofproto-dpif.at:6163' \
  "ofproto-dpif - truncate and output to gre tunnel" "" 55
at_xfail=no
(
  $as_echo "1140. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6164: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:6164"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6164"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6164: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:6164"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6164"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6164: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6164"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6164"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6164: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:6164"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6164"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6164: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:6164"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6164"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6164: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6164"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6164"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6164: add_of_br 0 add-port br0 p1 -- set Interface p1 type=gre \\
                    options:remote_ip=1.1.1.1 options:local_ip=2.2.2.2 \\
                    options:key=5 ofport_request=1\\
                    -- add-port br0 p2 -- set Interface p2 type=dummy \\
                    ofport_request=2 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6164"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=gre \
                    options:remote_ip=1.1.1.1 options:local_ip=2.2.2.2 \
                    options:key=5 ofport_request=1\
                    -- add-port br0 p2 -- set Interface p2 type=dummy \
                    ofport_request=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6164"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
actions=output(max_len=100, port=1)
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6172: ovs-appctl dpif/set-dp-features br0 tnl_push_pop false"
at_fn_check_prepare_trace "ofproto-dpif.at:6172"
( $at_check_trace; ovs-appctl dpif/set-dp-features br0 tnl_push_pop false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6172"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6173: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:6173"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6173"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6175: ovs-appctl dpif/show | tail -n +3"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:6175"
( $at_check_trace; ovs-appctl dpif/show | tail -n +3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "		br0 65534/100: (dummy-internal)
		p1 1/1: (gre: key=5, local_ip=2.2.2.2, remote_ip=1.1.1.1)
		p2 2/2: (dummy)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6175"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6182: ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=4,ttl=128,frag=no),tcp(src=8,dst=9)'"
at_fn_check_prepare_trace "ofproto-dpif.at:6182"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=4,ttl=128,frag=no),tcp(src=8,dst=9)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6182"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6183: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:6183"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: trunc(100),set(tunnel(tun_id=0x5,src=2.2.2.2,dst=1.1.1.1,ttl=64,flags(df|key))),1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6183"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6187: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:6187"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6187"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6187: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:6187"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6187"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6187: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:6187"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6187"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6187: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6187: wait failed" >&5

    $as_echo "ofproto-dpif.at:6187" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6187"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6187: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:6187"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6187"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6187: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:6187"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6187"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6187: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6187: wait failed" >&5

    $as_echo "ofproto-dpif.at:6187" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6187"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1140
#AT_START_1141
at_fn_group_banner 1141 'ofproto-dpif.at:6190' \
  "ofproto-dpif - sFlow packet sampling - IPv4 collector" "" 55
at_xfail=no
      test "$IS_WIN32" = "yes" && at_xfail=yes
(
  $as_echo "1141. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


     touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6191: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:6191"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6191"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6191: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:6191"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6191"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6191: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6191"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6191"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6191: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:6191"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6191: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:6191"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6191: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6191"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6191: add_of_br 0 set Bridge br0 fail-mode=standalone "
at_fn_check_prepare_trace "ofproto-dpif.at:6191"
( $at_check_trace; add_of_br 0 set Bridge br0 fail-mode=standalone
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



  on_exit 'kill `cat test-sflow.pid`'
  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6191: ovstest test-sflow --log-file --detach --no-chdir --pidfile 0:127.0.0.1 > sflow.log"
at_fn_check_prepare_trace "ofproto-dpif.at:6191"
( $at_check_trace; ovstest test-sflow --log-file --detach --no-chdir --pidfile 0:127.0.0.1 > sflow.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


  $as_echo "ofproto-dpif.at:6191: waiting until SFLOW_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"test-sflow.log\"\` && test X != X\"\$SFLOW_PORT\"..." >&5
ovs_wait_cond () {
    SFLOW_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "test-sflow.log"` && test X != X"$SFLOW_PORT"
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6191: wait failed" >&5

    $as_echo "ofproto-dpif.at:6191" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6191"
fi

  ovs-appctl time/stop

  add_of_ports br0 1 2
  ovs-vsctl \
     set Interface br0 options:ifindex=1002 -- \
     set Interface p1 options:ifindex=1004 -- \
     set Interface p2 options:ifindex=1003 -- \
     set Bridge br0 sflow=@sf -- \
     --id=@sf create sflow targets=\"127.0.0.1:$SFLOW_PORT\" \
       header=128 sampling=1 polling=1 agent=$LOOPBACK_INTERFACE


  ovs-appctl netdev-dummy/receive p1 'in_port(2),eth(src=50:54:00:00:00:05,dst=FF:FF:FF:FF:FF:FF),eth_type(0x0806),arp(sip=192.168.0.2,tip=192.168.0.1,op=1,sha=50:54:00:00:00:05,tha=00:00:00:00:00:00)'
  sleep 1
  ovs-appctl netdev-dummy/receive p2 'in_port(1),eth(src=50:54:00:00:00:07,dst=FF:FF:FF:FF:FF:FF),eth_type(0x0806),arp(sip=192.168.0.1,tip=192.168.0.2,op=1,sha=50:54:00:00:00:07,tha=00:00:00:00:00:00)'
  sleep 1
  ovs-appctl netdev-dummy/receive p1 'in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
  sleep 1
  ovs-appctl netdev-dummy/receive p2 'in_port(1),eth(src=50:54:00:00:00:07,dst=50:54:00:00:00:05),eth_type(0x0800),ipv4(src=192.168.0.2,dst=192.168.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=0,code=0)'
  ovs-appctl netdev-dummy/receive p2 'in_port(1),eth(src=50:54:00:00:00:07,dst=50:54:00:00:00:05),eth_type(0x86dd),ipv6(src=fe80::1,dst=fe80::2,label=0,proto=10,tclass=0x70,hlimit=128,frag=no)'

      ovs-appctl time/warp 2000 100
  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6191: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:6191"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6191: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:6191"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6191: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:6191"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6191: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6191: wait failed" >&5

    $as_echo "ofproto-dpif.at:6191" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6191"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6191: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:6191"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6191: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:6191"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6191: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6191: wait failed" >&5

    $as_echo "ofproto-dpif.at:6191" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6191"
fi

  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6191: test -e \$OVS_RUNDIR/test-sflow.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/test-sflow.pid" "ofproto-dpif.at:6191"
( $at_check_trace; test -e $OVS_RUNDIR/test-sflow.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/test-sflow.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6191: ovs-appctl --timeout=10 -t test-sflow exit"
at_fn_check_prepare_trace "ofproto-dpif.at:6191"
( $at_check_trace; ovs-appctl --timeout=10 -t test-sflow exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6191: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6191: wait failed" >&5

    $as_echo "ofproto-dpif.at:6191" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6191"
fi


  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6191: sort sflow.log | \$EGREP 'HEADER|ERROR' | sed 's/ /\\
	/g'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6191"
( $at_check_trace; sort sflow.log | $EGREP 'HEADER|ERROR' | sed 's/ /\
	/g'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "HEADER
	dgramSeqNo=1
	ds=127.0.0.1>2:1000
	fsSeqNo=1
	in_vlan=0
	in_priority=0
	out_vlan=0
	out_priority=0
	meanSkip=1
	samplePool=1
	dropEvents=0
	in_ifindex=1004
	in_format=0
	out_ifindex=2
	out_format=2
	hdr_prot=1
	pkt_len=46
	stripped=4
	hdr_len=42
	hdr=FF-FF-FF-FF-FF-FF-50-54-00-00-00-05-08-06-00-01-08-00-06-04-00-01-50-54-00-00-00-05-C0-A8-00-02-00-00-00-00-00-00-C0-A8-00-01
HEADER
	dgramSeqNo=1
	ds=127.0.0.1>2:1000
	fsSeqNo=2
	in_vlan=0
	in_priority=0
	out_vlan=0
	out_priority=0
	meanSkip=1
	samplePool=2
	dropEvents=0
	in_ifindex=1003
	in_format=0
	out_ifindex=2
	out_format=2
	hdr_prot=1
	pkt_len=46
	stripped=4
	hdr_len=42
	hdr=FF-FF-FF-FF-FF-FF-50-54-00-00-00-07-08-06-00-01-08-00-06-04-00-01-50-54-00-00-00-07-C0-A8-00-01-00-00-00-00-00-00-C0-A8-00-02
HEADER
	dgramSeqNo=1
	ds=127.0.0.1>2:1000
	fsSeqNo=3
	in_vlan=0
	in_priority=0
	out_vlan=0
	out_priority=0
	meanSkip=1
	samplePool=3
	dropEvents=0
	in_ifindex=1004
	in_format=0
	out_ifindex=1003
	out_format=0
	hdr_prot=1
	pkt_len=46
	stripped=4
	hdr_len=42
	hdr=50-54-00-00-00-07-50-54-00-00-00-05-08-00-45-00-00-1C-00-00-00-00-40-01-F9-8D-C0-A8-00-01-C0-A8-00-02-08-00-F7-FF-00-00-00-00
HEADER
	dgramSeqNo=1
	ds=127.0.0.1>2:1000
	fsSeqNo=4
	in_vlan=0
	in_priority=0
	out_vlan=0
	out_priority=0
	meanSkip=1
	samplePool=4
	dropEvents=0
	in_ifindex=1003
	in_format=0
	out_ifindex=1004
	out_format=0
	hdr_prot=1
	pkt_len=46
	stripped=4
	hdr_len=42
	hdr=50-54-00-00-00-05-50-54-00-00-00-07-08-00-45-00-00-1C-00-00-00-00-40-01-F9-8D-C0-A8-00-02-C0-A8-00-01-00-00-FF-FF-00-00-00-00
HEADER
	dgramSeqNo=1
	ds=127.0.0.1>2:1000
	fsSeqNo=5
	in_vlan=0
	in_priority=0
	out_vlan=0
	out_priority=0
	meanSkip=1
	samplePool=5
	dropEvents=0
	in_ifindex=1003
	in_format=0
	out_ifindex=1004
	out_format=0
	hdr_prot=1
	pkt_len=58
	stripped=4
	hdr_len=54
	hdr=50-54-00-00-00-05-50-54-00-00-00-07-86-DD-67-00-00-00-00-00-0A-80-FE-80-00-00-00-00-00-00-00-00-00-00-00-00-00-01-FE-80-00-00-00-00-00-00-00-00-00-00-00-00-00-02
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }


  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6191: sort sflow.log | \$EGREP 'ETHCOUNTERS|IFCOUNTERS|ERROR|PORTNAME|OPENFLOWPORT' | head -24 | sed 's/ /\\
	/g'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6191"
( $at_check_trace; sort sflow.log | $EGREP 'ETHCOUNTERS|IFCOUNTERS|ERROR|PORTNAME|OPENFLOWPORT' | head -24 | sed 's/ /\
	/g'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ETHCOUNTERS
	dot3StatsAlignmentErrors=4294967295
	dot3StatsFCSErrors=4294967295
	dot3StatsSingleCollisionFrames=4294967295
	dot3StatsMultipleCollisionFrames=4294967295
	dot3StatsSQETestErrors=4294967295
	dot3StatsDeferredTransmissions=4294967295
	dot3StatsLateCollisions=4294967295
	dot3StatsExcessiveCollisions=4294967295
	dot3StatsInternalMacTransmitErrors=4294967295
	dot3StatsCarrierSenseErrors=4294967295
	dot3StatsFrameTooLongs=4294967295
	dot3StatsInternalMacReceiveErrors=4294967295
	dot3StatsSymbolErrors=4294967295
ETHCOUNTERS
	dot3StatsAlignmentErrors=4294967295
	dot3StatsFCSErrors=4294967295
	dot3StatsSingleCollisionFrames=4294967295
	dot3StatsMultipleCollisionFrames=4294967295
	dot3StatsSQETestErrors=4294967295
	dot3StatsDeferredTransmissions=4294967295
	dot3StatsLateCollisions=4294967295
	dot3StatsExcessiveCollisions=4294967295
	dot3StatsInternalMacTransmitErrors=4294967295
	dot3StatsCarrierSenseErrors=4294967295
	dot3StatsFrameTooLongs=4294967295
	dot3StatsInternalMacReceiveErrors=4294967295
	dot3StatsSymbolErrors=4294967295
ETHCOUNTERS
	dot3StatsAlignmentErrors=4294967295
	dot3StatsFCSErrors=4294967295
	dot3StatsSingleCollisionFrames=4294967295
	dot3StatsMultipleCollisionFrames=4294967295
	dot3StatsSQETestErrors=4294967295
	dot3StatsDeferredTransmissions=4294967295
	dot3StatsLateCollisions=4294967295
	dot3StatsExcessiveCollisions=4294967295
	dot3StatsInternalMacTransmitErrors=4294967295
	dot3StatsCarrierSenseErrors=4294967295
	dot3StatsFrameTooLongs=4294967295
	dot3StatsInternalMacReceiveErrors=4294967295
	dot3StatsSymbolErrors=4294967295
ETHCOUNTERS
	dot3StatsAlignmentErrors=4294967295
	dot3StatsFCSErrors=4294967295
	dot3StatsSingleCollisionFrames=4294967295
	dot3StatsMultipleCollisionFrames=4294967295
	dot3StatsSQETestErrors=4294967295
	dot3StatsDeferredTransmissions=4294967295
	dot3StatsLateCollisions=4294967295
	dot3StatsExcessiveCollisions=4294967295
	dot3StatsInternalMacTransmitErrors=4294967295
	dot3StatsCarrierSenseErrors=4294967295
	dot3StatsFrameTooLongs=4294967295
	dot3StatsInternalMacReceiveErrors=4294967295
	dot3StatsSymbolErrors=4294967295
ETHCOUNTERS
	dot3StatsAlignmentErrors=4294967295
	dot3StatsFCSErrors=4294967295
	dot3StatsSingleCollisionFrames=4294967295
	dot3StatsMultipleCollisionFrames=4294967295
	dot3StatsSQETestErrors=4294967295
	dot3StatsDeferredTransmissions=4294967295
	dot3StatsLateCollisions=4294967295
	dot3StatsExcessiveCollisions=4294967295
	dot3StatsInternalMacTransmitErrors=4294967295
	dot3StatsCarrierSenseErrors=4294967295
	dot3StatsFrameTooLongs=4294967295
	dot3StatsInternalMacReceiveErrors=4294967295
	dot3StatsSymbolErrors=4294967295
ETHCOUNTERS
	dot3StatsAlignmentErrors=4294967295
	dot3StatsFCSErrors=4294967295
	dot3StatsSingleCollisionFrames=4294967295
	dot3StatsMultipleCollisionFrames=4294967295
	dot3StatsSQETestErrors=4294967295
	dot3StatsDeferredTransmissions=4294967295
	dot3StatsLateCollisions=4294967295
	dot3StatsExcessiveCollisions=4294967295
	dot3StatsInternalMacTransmitErrors=4294967295
	dot3StatsCarrierSenseErrors=4294967295
	dot3StatsFrameTooLongs=4294967295
	dot3StatsInternalMacReceiveErrors=4294967295
	dot3StatsSymbolErrors=4294967295
IFCOUNTERS
	dgramSeqNo=1
	ds=127.0.0.1>0:1003
	csSeqNo=1
	ifindex=1003
	type=6
	ifspeed=100000000
	direction=0
	status=0
	in_octets=138
	in_unicasts=3
	in_multicasts=4294967295
	in_broadcasts=4294967295
	in_discards=4294967295
	in_errors=4294967295
	in_unknownprotos=4294967295
	out_octets=84
	out_unicasts=2
	out_multicasts=4294967295
	out_broadcasts=4294967295
	out_discards=4294967295
	out_errors=4294967295
	promiscuous=0
IFCOUNTERS
	dgramSeqNo=1
	ds=127.0.0.1>0:1004
	csSeqNo=1
	ifindex=1004
	type=6
	ifspeed=100000000
	direction=0
	status=0
	in_octets=84
	in_unicasts=2
	in_multicasts=4294967295
	in_broadcasts=4294967295
	in_discards=4294967295
	in_errors=4294967295
	in_unknownprotos=4294967295
	out_octets=138
	out_unicasts=3
	out_multicasts=4294967295
	out_broadcasts=4294967295
	out_discards=4294967295
	out_errors=4294967295
	promiscuous=0
IFCOUNTERS
	dgramSeqNo=2
	ds=127.0.0.1>0:1002
	csSeqNo=1
	ifindex=1002
	type=6
	ifspeed=100000000
	direction=0
	status=0
	in_octets=0
	in_unicasts=0
	in_multicasts=4294967295
	in_broadcasts=4294967295
	in_discards=4294967295
	in_errors=4294967295
	in_unknownprotos=4294967295
	out_octets=84
	out_unicasts=2
	out_multicasts=4294967295
	out_broadcasts=4294967295
	out_discards=4294967295
	out_errors=4294967295
	promiscuous=0
IFCOUNTERS
	dgramSeqNo=3
	ds=127.0.0.1>0:1002
	csSeqNo=2
	ifindex=1002
	type=6
	ifspeed=100000000
	direction=0
	status=0
	in_octets=0
	in_unicasts=0
	in_multicasts=4294967295
	in_broadcasts=4294967295
	in_discards=4294967295
	in_errors=4294967295
	in_unknownprotos=4294967295
	out_octets=84
	out_unicasts=2
	out_multicasts=4294967295
	out_broadcasts=4294967295
	out_discards=4294967295
	out_errors=4294967295
	promiscuous=0
IFCOUNTERS
	dgramSeqNo=3
	ds=127.0.0.1>0:1003
	csSeqNo=2
	ifindex=1003
	type=6
	ifspeed=100000000
	direction=0
	status=0
	in_octets=138
	in_unicasts=3
	in_multicasts=4294967295
	in_broadcasts=4294967295
	in_discards=4294967295
	in_errors=4294967295
	in_unknownprotos=4294967295
	out_octets=84
	out_unicasts=2
	out_multicasts=4294967295
	out_broadcasts=4294967295
	out_discards=4294967295
	out_errors=4294967295
	promiscuous=0
IFCOUNTERS
	dgramSeqNo=3
	ds=127.0.0.1>0:1004
	csSeqNo=2
	ifindex=1004
	type=6
	ifspeed=100000000
	direction=0
	status=0
	in_octets=84
	in_unicasts=2
	in_multicasts=4294967295
	in_broadcasts=4294967295
	in_discards=4294967295
	in_errors=4294967295
	in_unknownprotos=4294967295
	out_octets=138
	out_unicasts=3
	out_multicasts=4294967295
	out_broadcasts=4294967295
	out_discards=4294967295
	out_errors=4294967295
	promiscuous=0
OPENFLOWPORT
	datapath_id=18364758544493064720
	port_no=1
OPENFLOWPORT
	datapath_id=18364758544493064720
	port_no=1
OPENFLOWPORT
	datapath_id=18364758544493064720
	port_no=2
OPENFLOWPORT
	datapath_id=18364758544493064720
	port_no=2
OPENFLOWPORT
	datapath_id=18364758544493064720
	port_no=65534
OPENFLOWPORT
	datapath_id=18364758544493064720
	port_no=65534
PORTNAME
	portName=br0
PORTNAME
	portName=br0
PORTNAME
	portName=p1
PORTNAME
	portName=p1
PORTNAME
	portName=p2
PORTNAME
	portName=p2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1141
#AT_START_1142
at_fn_group_banner 1142 'ofproto-dpif.at:6194' \
  "ofproto-dpif - sFlow packet sampling - IPv6 collector" "" 55
at_xfail=no
      test "$IS_WIN32" = "yes" && at_xfail=yes
(
  $as_echo "1142. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ofproto-dpif.at:6195" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ofproto-dpif.at:6195"

     touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6196: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:6196"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6196"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6196: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:6196"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6196"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6196: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6196"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6196"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6196: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:6196"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6196"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6196: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:6196"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6196"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6196: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6196"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6196"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6196: add_of_br 0 set Bridge br0 fail-mode=standalone "
at_fn_check_prepare_trace "ofproto-dpif.at:6196"
( $at_check_trace; add_of_br 0 set Bridge br0 fail-mode=standalone
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6196"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



  on_exit 'kill `cat test-sflow.pid`'
  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6196: ovstest test-sflow --log-file --detach --no-chdir --pidfile 0:[::1] > sflow.log"
at_fn_check_prepare_trace "ofproto-dpif.at:6196"
( $at_check_trace; ovstest test-sflow --log-file --detach --no-chdir --pidfile 0:[::1] > sflow.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6196"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


  $as_echo "ofproto-dpif.at:6196: waiting until SFLOW_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"test-sflow.log\"\` && test X != X\"\$SFLOW_PORT\"..." >&5
ovs_wait_cond () {
    SFLOW_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "test-sflow.log"` && test X != X"$SFLOW_PORT"
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6196: wait failed" >&5

    $as_echo "ofproto-dpif.at:6196" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6196"
fi

  ovs-appctl time/stop

  add_of_ports br0 1 2
  ovs-vsctl \
     set Interface br0 options:ifindex=1002 -- \
     set Interface p1 options:ifindex=1004 -- \
     set Interface p2 options:ifindex=1003 -- \
     set Bridge br0 sflow=@sf -- \
     --id=@sf create sflow targets=\"[::1]:$SFLOW_PORT\" \
       header=128 sampling=1 polling=1 agent=$LOOPBACK_INTERFACE


  ovs-appctl netdev-dummy/receive p1 'in_port(2),eth(src=50:54:00:00:00:05,dst=FF:FF:FF:FF:FF:FF),eth_type(0x0806),arp(sip=192.168.0.2,tip=192.168.0.1,op=1,sha=50:54:00:00:00:05,tha=00:00:00:00:00:00)'
  sleep 1
  ovs-appctl netdev-dummy/receive p2 'in_port(1),eth(src=50:54:00:00:00:07,dst=FF:FF:FF:FF:FF:FF),eth_type(0x0806),arp(sip=192.168.0.1,tip=192.168.0.2,op=1,sha=50:54:00:00:00:07,tha=00:00:00:00:00:00)'
  sleep 1
  ovs-appctl netdev-dummy/receive p1 'in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
  sleep 1
  ovs-appctl netdev-dummy/receive p2 'in_port(1),eth(src=50:54:00:00:00:07,dst=50:54:00:00:00:05),eth_type(0x0800),ipv4(src=192.168.0.2,dst=192.168.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=0,code=0)'
  ovs-appctl netdev-dummy/receive p2 'in_port(1),eth(src=50:54:00:00:00:07,dst=50:54:00:00:00:05),eth_type(0x86dd),ipv6(src=fe80::1,dst=fe80::2,label=0,proto=10,tclass=0x70,hlimit=128,frag=no)'

      ovs-appctl time/warp 2000 100
  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6196: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:6196"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6196"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6196: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:6196"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6196"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6196: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:6196"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6196"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6196: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6196: wait failed" >&5

    $as_echo "ofproto-dpif.at:6196" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6196"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6196: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:6196"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6196"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6196: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:6196"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6196"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6196: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6196: wait failed" >&5

    $as_echo "ofproto-dpif.at:6196" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6196"
fi

  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6196: test -e \$OVS_RUNDIR/test-sflow.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/test-sflow.pid" "ofproto-dpif.at:6196"
( $at_check_trace; test -e $OVS_RUNDIR/test-sflow.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6196"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/test-sflow.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6196: ovs-appctl --timeout=10 -t test-sflow exit"
at_fn_check_prepare_trace "ofproto-dpif.at:6196"
( $at_check_trace; ovs-appctl --timeout=10 -t test-sflow exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6196"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6196: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6196: wait failed" >&5

    $as_echo "ofproto-dpif.at:6196" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6196"
fi


  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6196: sort sflow.log | \$EGREP 'HEADER|ERROR' | sed 's/ /\\
	/g'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6196"
( $at_check_trace; sort sflow.log | $EGREP 'HEADER|ERROR' | sed 's/ /\
	/g'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "HEADER
	dgramSeqNo=1
	ds=127.0.0.1>2:1000
	fsSeqNo=1
	in_vlan=0
	in_priority=0
	out_vlan=0
	out_priority=0
	meanSkip=1
	samplePool=1
	dropEvents=0
	in_ifindex=1004
	in_format=0
	out_ifindex=2
	out_format=2
	hdr_prot=1
	pkt_len=46
	stripped=4
	hdr_len=42
	hdr=FF-FF-FF-FF-FF-FF-50-54-00-00-00-05-08-06-00-01-08-00-06-04-00-01-50-54-00-00-00-05-C0-A8-00-02-00-00-00-00-00-00-C0-A8-00-01
HEADER
	dgramSeqNo=1
	ds=127.0.0.1>2:1000
	fsSeqNo=2
	in_vlan=0
	in_priority=0
	out_vlan=0
	out_priority=0
	meanSkip=1
	samplePool=2
	dropEvents=0
	in_ifindex=1003
	in_format=0
	out_ifindex=2
	out_format=2
	hdr_prot=1
	pkt_len=46
	stripped=4
	hdr_len=42
	hdr=FF-FF-FF-FF-FF-FF-50-54-00-00-00-07-08-06-00-01-08-00-06-04-00-01-50-54-00-00-00-07-C0-A8-00-01-00-00-00-00-00-00-C0-A8-00-02
HEADER
	dgramSeqNo=1
	ds=127.0.0.1>2:1000
	fsSeqNo=3
	in_vlan=0
	in_priority=0
	out_vlan=0
	out_priority=0
	meanSkip=1
	samplePool=3
	dropEvents=0
	in_ifindex=1004
	in_format=0
	out_ifindex=1003
	out_format=0
	hdr_prot=1
	pkt_len=46
	stripped=4
	hdr_len=42
	hdr=50-54-00-00-00-07-50-54-00-00-00-05-08-00-45-00-00-1C-00-00-00-00-40-01-F9-8D-C0-A8-00-01-C0-A8-00-02-08-00-F7-FF-00-00-00-00
HEADER
	dgramSeqNo=1
	ds=127.0.0.1>2:1000
	fsSeqNo=4
	in_vlan=0
	in_priority=0
	out_vlan=0
	out_priority=0
	meanSkip=1
	samplePool=4
	dropEvents=0
	in_ifindex=1003
	in_format=0
	out_ifindex=1004
	out_format=0
	hdr_prot=1
	pkt_len=46
	stripped=4
	hdr_len=42
	hdr=50-54-00-00-00-05-50-54-00-00-00-07-08-00-45-00-00-1C-00-00-00-00-40-01-F9-8D-C0-A8-00-02-C0-A8-00-01-00-00-FF-FF-00-00-00-00
HEADER
	dgramSeqNo=1
	ds=127.0.0.1>2:1000
	fsSeqNo=5
	in_vlan=0
	in_priority=0
	out_vlan=0
	out_priority=0
	meanSkip=1
	samplePool=5
	dropEvents=0
	in_ifindex=1003
	in_format=0
	out_ifindex=1004
	out_format=0
	hdr_prot=1
	pkt_len=58
	stripped=4
	hdr_len=54
	hdr=50-54-00-00-00-05-50-54-00-00-00-07-86-DD-67-00-00-00-00-00-0A-80-FE-80-00-00-00-00-00-00-00-00-00-00-00-00-00-01-FE-80-00-00-00-00-00-00-00-00-00-00-00-00-00-02
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6196"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }


  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6196: sort sflow.log | \$EGREP 'ETHCOUNTERS|IFCOUNTERS|ERROR|PORTNAME|OPENFLOWPORT' | head -24 | sed 's/ /\\
	/g'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6196"
( $at_check_trace; sort sflow.log | $EGREP 'ETHCOUNTERS|IFCOUNTERS|ERROR|PORTNAME|OPENFLOWPORT' | head -24 | sed 's/ /\
	/g'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ETHCOUNTERS
	dot3StatsAlignmentErrors=4294967295
	dot3StatsFCSErrors=4294967295
	dot3StatsSingleCollisionFrames=4294967295
	dot3StatsMultipleCollisionFrames=4294967295
	dot3StatsSQETestErrors=4294967295
	dot3StatsDeferredTransmissions=4294967295
	dot3StatsLateCollisions=4294967295
	dot3StatsExcessiveCollisions=4294967295
	dot3StatsInternalMacTransmitErrors=4294967295
	dot3StatsCarrierSenseErrors=4294967295
	dot3StatsFrameTooLongs=4294967295
	dot3StatsInternalMacReceiveErrors=4294967295
	dot3StatsSymbolErrors=4294967295
ETHCOUNTERS
	dot3StatsAlignmentErrors=4294967295
	dot3StatsFCSErrors=4294967295
	dot3StatsSingleCollisionFrames=4294967295
	dot3StatsMultipleCollisionFrames=4294967295
	dot3StatsSQETestErrors=4294967295
	dot3StatsDeferredTransmissions=4294967295
	dot3StatsLateCollisions=4294967295
	dot3StatsExcessiveCollisions=4294967295
	dot3StatsInternalMacTransmitErrors=4294967295
	dot3StatsCarrierSenseErrors=4294967295
	dot3StatsFrameTooLongs=4294967295
	dot3StatsInternalMacReceiveErrors=4294967295
	dot3StatsSymbolErrors=4294967295
ETHCOUNTERS
	dot3StatsAlignmentErrors=4294967295
	dot3StatsFCSErrors=4294967295
	dot3StatsSingleCollisionFrames=4294967295
	dot3StatsMultipleCollisionFrames=4294967295
	dot3StatsSQETestErrors=4294967295
	dot3StatsDeferredTransmissions=4294967295
	dot3StatsLateCollisions=4294967295
	dot3StatsExcessiveCollisions=4294967295
	dot3StatsInternalMacTransmitErrors=4294967295
	dot3StatsCarrierSenseErrors=4294967295
	dot3StatsFrameTooLongs=4294967295
	dot3StatsInternalMacReceiveErrors=4294967295
	dot3StatsSymbolErrors=4294967295
ETHCOUNTERS
	dot3StatsAlignmentErrors=4294967295
	dot3StatsFCSErrors=4294967295
	dot3StatsSingleCollisionFrames=4294967295
	dot3StatsMultipleCollisionFrames=4294967295
	dot3StatsSQETestErrors=4294967295
	dot3StatsDeferredTransmissions=4294967295
	dot3StatsLateCollisions=4294967295
	dot3StatsExcessiveCollisions=4294967295
	dot3StatsInternalMacTransmitErrors=4294967295
	dot3StatsCarrierSenseErrors=4294967295
	dot3StatsFrameTooLongs=4294967295
	dot3StatsInternalMacReceiveErrors=4294967295
	dot3StatsSymbolErrors=4294967295
ETHCOUNTERS
	dot3StatsAlignmentErrors=4294967295
	dot3StatsFCSErrors=4294967295
	dot3StatsSingleCollisionFrames=4294967295
	dot3StatsMultipleCollisionFrames=4294967295
	dot3StatsSQETestErrors=4294967295
	dot3StatsDeferredTransmissions=4294967295
	dot3StatsLateCollisions=4294967295
	dot3StatsExcessiveCollisions=4294967295
	dot3StatsInternalMacTransmitErrors=4294967295
	dot3StatsCarrierSenseErrors=4294967295
	dot3StatsFrameTooLongs=4294967295
	dot3StatsInternalMacReceiveErrors=4294967295
	dot3StatsSymbolErrors=4294967295
ETHCOUNTERS
	dot3StatsAlignmentErrors=4294967295
	dot3StatsFCSErrors=4294967295
	dot3StatsSingleCollisionFrames=4294967295
	dot3StatsMultipleCollisionFrames=4294967295
	dot3StatsSQETestErrors=4294967295
	dot3StatsDeferredTransmissions=4294967295
	dot3StatsLateCollisions=4294967295
	dot3StatsExcessiveCollisions=4294967295
	dot3StatsInternalMacTransmitErrors=4294967295
	dot3StatsCarrierSenseErrors=4294967295
	dot3StatsFrameTooLongs=4294967295
	dot3StatsInternalMacReceiveErrors=4294967295
	dot3StatsSymbolErrors=4294967295
IFCOUNTERS
	dgramSeqNo=1
	ds=127.0.0.1>0:1003
	csSeqNo=1
	ifindex=1003
	type=6
	ifspeed=100000000
	direction=0
	status=0
	in_octets=138
	in_unicasts=3
	in_multicasts=4294967295
	in_broadcasts=4294967295
	in_discards=4294967295
	in_errors=4294967295
	in_unknownprotos=4294967295
	out_octets=84
	out_unicasts=2
	out_multicasts=4294967295
	out_broadcasts=4294967295
	out_discards=4294967295
	out_errors=4294967295
	promiscuous=0
IFCOUNTERS
	dgramSeqNo=1
	ds=127.0.0.1>0:1004
	csSeqNo=1
	ifindex=1004
	type=6
	ifspeed=100000000
	direction=0
	status=0
	in_octets=84
	in_unicasts=2
	in_multicasts=4294967295
	in_broadcasts=4294967295
	in_discards=4294967295
	in_errors=4294967295
	in_unknownprotos=4294967295
	out_octets=138
	out_unicasts=3
	out_multicasts=4294967295
	out_broadcasts=4294967295
	out_discards=4294967295
	out_errors=4294967295
	promiscuous=0
IFCOUNTERS
	dgramSeqNo=2
	ds=127.0.0.1>0:1002
	csSeqNo=1
	ifindex=1002
	type=6
	ifspeed=100000000
	direction=0
	status=0
	in_octets=0
	in_unicasts=0
	in_multicasts=4294967295
	in_broadcasts=4294967295
	in_discards=4294967295
	in_errors=4294967295
	in_unknownprotos=4294967295
	out_octets=84
	out_unicasts=2
	out_multicasts=4294967295
	out_broadcasts=4294967295
	out_discards=4294967295
	out_errors=4294967295
	promiscuous=0
IFCOUNTERS
	dgramSeqNo=3
	ds=127.0.0.1>0:1002
	csSeqNo=2
	ifindex=1002
	type=6
	ifspeed=100000000
	direction=0
	status=0
	in_octets=0
	in_unicasts=0
	in_multicasts=4294967295
	in_broadcasts=4294967295
	in_discards=4294967295
	in_errors=4294967295
	in_unknownprotos=4294967295
	out_octets=84
	out_unicasts=2
	out_multicasts=4294967295
	out_broadcasts=4294967295
	out_discards=4294967295
	out_errors=4294967295
	promiscuous=0
IFCOUNTERS
	dgramSeqNo=3
	ds=127.0.0.1>0:1003
	csSeqNo=2
	ifindex=1003
	type=6
	ifspeed=100000000
	direction=0
	status=0
	in_octets=138
	in_unicasts=3
	in_multicasts=4294967295
	in_broadcasts=4294967295
	in_discards=4294967295
	in_errors=4294967295
	in_unknownprotos=4294967295
	out_octets=84
	out_unicasts=2
	out_multicasts=4294967295
	out_broadcasts=4294967295
	out_discards=4294967295
	out_errors=4294967295
	promiscuous=0
IFCOUNTERS
	dgramSeqNo=3
	ds=127.0.0.1>0:1004
	csSeqNo=2
	ifindex=1004
	type=6
	ifspeed=100000000
	direction=0
	status=0
	in_octets=84
	in_unicasts=2
	in_multicasts=4294967295
	in_broadcasts=4294967295
	in_discards=4294967295
	in_errors=4294967295
	in_unknownprotos=4294967295
	out_octets=138
	out_unicasts=3
	out_multicasts=4294967295
	out_broadcasts=4294967295
	out_discards=4294967295
	out_errors=4294967295
	promiscuous=0
OPENFLOWPORT
	datapath_id=18364758544493064720
	port_no=1
OPENFLOWPORT
	datapath_id=18364758544493064720
	port_no=1
OPENFLOWPORT
	datapath_id=18364758544493064720
	port_no=2
OPENFLOWPORT
	datapath_id=18364758544493064720
	port_no=2
OPENFLOWPORT
	datapath_id=18364758544493064720
	port_no=65534
OPENFLOWPORT
	datapath_id=18364758544493064720
	port_no=65534
PORTNAME
	portName=br0
PORTNAME
	portName=br0
PORTNAME
	portName=p1
PORTNAME
	portName=p1
PORTNAME
	portName=p2
PORTNAME
	portName=p2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6196"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1142
#AT_START_1143
at_fn_group_banner 1143 'ofproto-dpif.at:6200' \
  "ofproto-dpif - sFlow packet sampling - LACP structures" "" 55
at_xfail=no
(
  $as_echo "1143. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ofproto-dpif.at:6201" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ofproto-dpif.at:6201"
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6202: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:6202"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6202"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6202: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:6202"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6202"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6202: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6202"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6202"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6202: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:6202"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6202"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6202: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:6202"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6202"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6202: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6202"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6202"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6202: add_of_br 0 		    add-bond br0 bond p1 p2 --				\\
		    set Port bond lacp=active bond-mode=active-backup	\\
		    other_config:lacp-time=\"fast\"			\\
		    other_config:lacp-system-id=11:22:33:44:55:66	\\
		    other_config:lacp-system-priority=54321 --		\\
		    set Interface p1 type=dummy				\\
		    other_config:lacp-port-id=11			\\
		    other_config:lacp-port-priority=111			\\
		    other_config:lacp-aggregation-key=3333 --		\\
		    set Interface p2 type=dummy				\\
		    other_config:lacp-port-id=22			\\
		    other_config:lacp-port-priority=222			\\
		    other_config:lacp-aggregation-key=3333  "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6202"
( $at_check_trace; add_of_br 0 		    add-bond br0 bond p1 p2 --				\
		    set Port bond lacp=active bond-mode=active-backup	\
		    other_config:lacp-time="fast"			\
		    other_config:lacp-system-id=11:22:33:44:55:66	\
		    other_config:lacp-system-priority=54321 --		\
		    set Interface p1 type=dummy				\
		    other_config:lacp-port-id=11			\
		    other_config:lacp-port-priority=111			\
		    other_config:lacp-aggregation-key=3333 --		\
		    set Interface p2 type=dummy				\
		    other_config:lacp-port-id=22			\
		    other_config:lacp-port-priority=222			\
		    other_config:lacp-aggregation-key=3333
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6202"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



on_exit 'kill `cat test-sflow.pid`'
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6218: ovstest test-sflow --log-file --detach --no-chdir --pidfile 0:127.0.0.1 > sflow.log"
at_fn_check_prepare_trace "ofproto-dpif.at:6218"
( $at_check_trace; ovstest test-sflow --log-file --detach --no-chdir --pidfile 0:127.0.0.1 > sflow.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6218"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


$as_echo "ofproto-dpif.at:6220: waiting until SFLOW_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"test-sflow.log\"\` && test X != X\"\$SFLOW_PORT\"..." >&5
ovs_wait_cond () {
    SFLOW_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "test-sflow.log"` && test X != X"$SFLOW_PORT"
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6220: wait failed" >&5

    $as_echo "ofproto-dpif.at:6220" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6220"
fi


ovs-appctl time/stop

ovs-vsctl \
      set Interface p1 options:ifindex=1003 --			\
      set Bridge br0 sflow=@sf --				\
      --id=@sf create sflow targets=\"127.0.0.1:$SFLOW_PORT\"	\
      header=128 sampling=1 polling=1

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6231: ovs-appctl time/warp 2000 100"
at_fn_check_prepare_trace "ofproto-dpif.at:6231"
( $at_check_trace; ovs-appctl time/warp 2000 100
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6231"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6232: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:6232"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6232"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6233: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:6233"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6233"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6233: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:6233"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6233"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6233: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:6233"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6233"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6233: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6233: wait failed" >&5

    $as_echo "ofproto-dpif.at:6233" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6233"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6233: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:6233"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6233"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6233: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:6233"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6233"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6233: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6233: wait failed" >&5

    $as_echo "ofproto-dpif.at:6233" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6233"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6234: test -e \$OVS_RUNDIR/test-sflow.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/test-sflow.pid" "ofproto-dpif.at:6234"
( $at_check_trace; test -e $OVS_RUNDIR/test-sflow.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6234"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/test-sflow.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6234: ovs-appctl --timeout=10 -t test-sflow exit"
at_fn_check_prepare_trace "ofproto-dpif.at:6234"
( $at_check_trace; ovs-appctl --timeout=10 -t test-sflow exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6234"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6234: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6234: wait failed" >&5

    $as_echo "ofproto-dpif.at:6234" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6234"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6235: sort sflow.log | \$EGREP 'LACPCOUNTERS|ERROR' | head -n 1 | sed 's/ /\\
	/g'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6235"
( $at_check_trace; sort sflow.log | $EGREP 'LACPCOUNTERS|ERROR' | head -n 1 | sed 's/ /\
	/g'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "LACPCOUNTERS
	sysID=11:22:33:44:55:66
	partnerID=00:00:00:00:00:00
	aggID=3333
	actorAdmin=0x7
	actorOper=0xbf
	partnerAdmin=0x0
	partnerOper=0x2
	LACPDUsRx=0
	markerPDUsRx=4294967295
	markerRespPDUsRx=4294967295
	unknownRx=4294967295
	illegalRx=0
	LACPDUsTx=1
	markerPDUsTx=4294967295
	markerRespPDUsTx=4294967295
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6235"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1143
#AT_START_1144
at_fn_group_banner 1144 'ofproto-dpif.at:6257' \
  "ofproto-dpif - sFlow packet sampling - tunnel set" "" 55
at_xfail=no
      test "$IS_WIN32" = "yes" && at_xfail=yes
(
  $as_echo "1144. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6259: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:6259"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6259"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6259: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:6259"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6259"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6259: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6259"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6259"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6259: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:6259"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6259"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6259: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:6259"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6259"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6259: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6259"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6259"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6259: add_of_br 0 set Bridge br0 fail-mode=standalone "
at_fn_check_prepare_trace "ofproto-dpif.at:6259"
( $at_check_trace; add_of_br 0 set Bridge br0 fail-mode=standalone
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6259"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6262: ovstest test-sflow --log-file --detach --no-chdir --pidfile 0:127.0.0.1 > sflow.log"
at_fn_check_prepare_trace "ofproto-dpif.at:6262"
( $at_check_trace; ovstest test-sflow --log-file --detach --no-chdir --pidfile 0:127.0.0.1 > sflow.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6262"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


$as_echo "ofproto-dpif.at:6264: waiting until SFLOW_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"test-sflow.log\"\` && test X != X\"\$SFLOW_PORT\"..." >&5
ovs_wait_cond () {
    SFLOW_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "test-sflow.log"` && test X != X"$SFLOW_PORT"
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6264: wait failed" >&5

    $as_echo "ofproto-dpif.at:6264" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6264"
fi

ovs-appctl time/stop

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6267: ovs-appctl dpif/set-dp-features br0 tnl_push_pop false"
at_fn_check_prepare_trace "ofproto-dpif.at:6267"
( $at_check_trace; ovs-appctl dpif/set-dp-features br0 tnl_push_pop false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6267"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6268: ovs-vsctl add-port br0 gre0 -- set Interface gre0 type=gre \\
     		    options:remote_ip=1.1.1.1 options:key=456 ofport_request=3"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6268"
( $at_check_trace; ovs-vsctl add-port br0 gre0 -- set Interface gre0 type=gre \
     		    options:remote_ip=1.1.1.1 options:key=456 ofport_request=3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6268"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6270: ovs-vsctl add-port br0 p1 -- set Interface p1 type=dummy ofport_request=4"
at_fn_check_prepare_trace "ofproto-dpif.at:6270"
( $at_check_trace; ovs-vsctl add-port br0 p1 -- set Interface p1 type=dummy ofport_request=4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6270"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6272: ovs-ofctl add-flow br0 action=3"
at_fn_check_prepare_trace "ofproto-dpif.at:6272"
( $at_check_trace; ovs-ofctl add-flow br0 action=3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6272"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }


ovs-vsctl \
   set Bridge br0 sflow=@sf -- \
   --id=@sf create sflow targets=\"127.0.0.1:$SFLOW_PORT\" \
     header=128 sampling=1 polling=0

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6281: ovs-appctl netdev-dummy/receive p1 'in_port(4),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.10.10.2,dst=10.10.10.1,proto=1,tos=1,ttl=128,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:6281"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(4),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.10.10.2,dst=10.10.10.1,proto=1,tos=1,ttl=128,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6281"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }


for i in `seq 1 30`; do
    ovs-appctl time/warp 100
done

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6288: test -e \$OVS_RUNDIR/test-sflow.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/test-sflow.pid" "ofproto-dpif.at:6288"
( $at_check_trace; test -e $OVS_RUNDIR/test-sflow.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6288"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/test-sflow.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6288: ovs-appctl --timeout=10 -t test-sflow exit"
at_fn_check_prepare_trace "ofproto-dpif.at:6288"
( $at_check_trace; ovs-appctl --timeout=10 -t test-sflow exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6288"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6288: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6288: wait failed" >&5

    $as_echo "ofproto-dpif.at:6288" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6288"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6290: sort sflow.log | \$EGREP 'HEADER|ERROR' | sed 's/ /\\
	/g'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6290"
( $at_check_trace; sort sflow.log | $EGREP 'HEADER|ERROR' | sed 's/ /\
	/g'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "HEADER
	dgramSeqNo=1
	ds=127.0.0.1>2:1000
	fsSeqNo=1
	tunnel4_out_length=0
	tunnel4_out_protocol=47
	tunnel4_out_src=0.0.0.0
	tunnel4_out_dst=1.1.1.1
	tunnel4_out_src_port=0
	tunnel4_out_dst_port=0
	tunnel4_out_tcp_flags=0
	tunnel4_out_tos=1
	tunnel_out_vni=456
	in_vlan=0
	in_priority=0
	out_vlan=0
	out_priority=0
	meanSkip=1
	samplePool=1
	dropEvents=0
	in_ifindex=0
	in_format=0
	out_ifindex=1
	out_format=2
	hdr_prot=1
	pkt_len=46
	stripped=4
	hdr_len=42
	hdr=50-54-00-00-00-0A-50-54-00-00-00-09-08-00-45-01-00-1C-00-00-00-00-80-01-12-CA-0A-0A-0A-02-0A-0A-0A-01-08-00-F7-FF-00-00-00-00
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6290"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6323: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:6323"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6323"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6323: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:6323"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6323"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6323: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:6323"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6323"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6323: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6323: wait failed" >&5

    $as_echo "ofproto-dpif.at:6323" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6323"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6323: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:6323"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6323"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6323: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:6323"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6323"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6323: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6323: wait failed" >&5

    $as_echo "ofproto-dpif.at:6323" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6323"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1144
#AT_START_1145
at_fn_group_banner 1145 'ofproto-dpif.at:6326' \
  "ofproto-dpif - sFlow packet sampling - tunnel push" "" 55
at_xfail=no
      test "$IS_WIN32" = "yes" && at_xfail=yes
(
  $as_echo "1145. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6329: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:6329"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6329"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6329: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:6329"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6329"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6329: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6329"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6329"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6329: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:6329"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6329"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6329: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:6329"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6329"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6329: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6329"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6329"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6329: add_of_br 0 add-port br0 p0 -- set Interface p0 type=dummy ofport_request=1 options:ifindex=1010 "
at_fn_check_prepare_trace "ofproto-dpif.at:6329"
( $at_check_trace; add_of_br 0 add-port br0 p0 -- set Interface p0 type=dummy ofport_request=1 options:ifindex=1010
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6329"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6332: ovstest test-sflow --log-file --detach --no-chdir --pidfile 0:127.0.0.1 > sflow.log"
at_fn_check_prepare_trace "ofproto-dpif.at:6332"
( $at_check_trace; ovstest test-sflow --log-file --detach --no-chdir --pidfile 0:127.0.0.1 > sflow.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6332"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


$as_echo "ofproto-dpif.at:6334: waiting until SFLOW_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"test-sflow.log\"\` && test X != X\"\$SFLOW_PORT\"..." >&5
ovs_wait_cond () {
    SFLOW_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "test-sflow.log"` && test X != X"$SFLOW_PORT"
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6334: wait failed" >&5

    $as_echo "ofproto-dpif.at:6334" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6334"
fi

ovs-appctl time/stop

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6337: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:6337"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6337"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6338: ovs-vsctl add-br int-br -- set bridge int-br datapath_type=dummy"
at_fn_check_prepare_trace "ofproto-dpif.at:6338"
( $at_check_trace; ovs-vsctl add-br int-br -- set bridge int-br datapath_type=dummy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6338"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6339: ovs-vsctl -- add-port int-br t1 -- set Interface t1 type=gre \\
                       options:remote_ip=1.1.2.92 options:key=456 ofport_request=4\\
		    -- add-port int-br vm1 -- set Interface vm1 type=dummy \\
		       options:ifindex=2011 ofport_request=5
                       "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6339"
( $at_check_trace; ovs-vsctl -- add-port int-br t1 -- set Interface t1 type=gre \
                       options:remote_ip=1.1.2.92 options:key=456 ofport_request=4\
		    -- add-port int-br vm1 -- set Interface vm1 type=dummy \
		       options:ifindex=2011 ofport_request=5

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6339"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6345: ovs-appctl dpif/show"
at_fn_check_prepare_trace "ofproto-dpif.at:6345"
( $at_check_trace; ovs-appctl dpif/show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dummy@ovs-dummy: hit:0 missed:0
	br0:
		br0 65534/100: (dummy-internal)
		p0 1/1: (dummy: ifindex=1010)
	int-br:
		int-br 65534/2: (dummy-internal)
		t1 4/4: (gre: key=456, remote_ip=1.1.2.92)
		vm1 5/3: (dummy: ifindex=2011)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6345"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6357: ovs-appctl netdev-dummy/ip4addr br0 1.1.2.88/24"
at_fn_check_prepare_trace "ofproto-dpif.at:6357"
( $at_check_trace; ovs-appctl netdev-dummy/ip4addr br0 1.1.2.88/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6357"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6359: ovs-appctl ovs/route/add 1.1.2.92/24 br0"
at_fn_check_prepare_trace "ofproto-dpif.at:6359"
( $at_check_trace; ovs-appctl ovs/route/add 1.1.2.92/24 br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6359"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6361: ovs-ofctl add-flow br0 action=normal"
at_fn_check_prepare_trace "ofproto-dpif.at:6361"
( $at_check_trace; ovs-ofctl add-flow br0 action=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6361"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6364: ovs-appctl netdev-dummy/receive p0 'recirc_id(0),in_port(1),eth(src=f8:bc:12:44:34:b6,dst=ff:ff:ff:ff:ff:ff),eth_type(0x0806),arp(sip=1.1.2.92,tip=1.1.2.88,op=2,sha=f8:bc:12:44:34:b6,tha=00:00:00:00:00:00)'"
at_fn_check_prepare_trace "ofproto-dpif.at:6364"
( $at_check_trace; ovs-appctl netdev-dummy/receive p0 'recirc_id(0),in_port(1),eth(src=f8:bc:12:44:34:b6,dst=ff:ff:ff:ff:ff:ff),eth_type(0x0806),arp(sip=1.1.2.92,tip=1.1.2.88,op=2,sha=f8:bc:12:44:34:b6,tha=00:00:00:00:00:00)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6364"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }


ovs-vsctl \
   set Bridge int-br sflow=@sf -- \
   --id=@sf create sflow targets=\"127.0.0.1:$SFLOW_PORT\" \
     header=128 sampling=1 polling=0

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6373: ovs-appctl netdev-dummy/ip4addr br0 192.168.1.1/16"
at_fn_check_prepare_trace "ofproto-dpif.at:6373"
( $at_check_trace; ovs-appctl netdev-dummy/ip4addr br0 192.168.1.1/16
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6373"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6375: ovs-appctl ovs/route/add 192.168.0.0/16 br0"
at_fn_check_prepare_trace "ofproto-dpif.at:6375"
( $at_check_trace; ovs-appctl ovs/route/add 192.168.0.0/16 br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6375"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6381: ovs-ofctl add-flow int-br \"actions=4\""
at_fn_check_prepare_trace "ofproto-dpif.at:6381"
( $at_check_trace; ovs-ofctl add-flow int-br "actions=4"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6381"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6383: ovs-appctl netdev-dummy/receive vm1 'in_port(3),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=192.168.1.1,dst=192.168.2.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:6383"
( $at_check_trace; ovs-appctl netdev-dummy/receive vm1 'in_port(3),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=192.168.1.1,dst=192.168.2.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6383"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }


for i in `seq 1 30`; do
    ovs-appctl time/warp 100
done

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6390: test -e \$OVS_RUNDIR/test-sflow.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/test-sflow.pid" "ofproto-dpif.at:6390"
( $at_check_trace; test -e $OVS_RUNDIR/test-sflow.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6390"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/test-sflow.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6390: ovs-appctl --timeout=10 -t test-sflow exit"
at_fn_check_prepare_trace "ofproto-dpif.at:6390"
( $at_check_trace; ovs-appctl --timeout=10 -t test-sflow exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6390"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6390: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6390: wait failed" >&5

    $as_echo "ofproto-dpif.at:6390" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6390"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6392: sort sflow.log | \$EGREP 'HEADER|ERROR' | sed 's/ /\\
	/g'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6392"
( $at_check_trace; sort sflow.log | $EGREP 'HEADER|ERROR' | sed 's/ /\
	/g'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "HEADER
	dgramSeqNo=1
	ds=127.0.0.1>2:1000
	fsSeqNo=1
	tunnel4_out_length=0
	tunnel4_out_protocol=47
	tunnel4_out_src=1.1.2.88
	tunnel4_out_dst=1.1.2.92
	tunnel4_out_src_port=0
	tunnel4_out_dst_port=0
	tunnel4_out_tcp_flags=0
	tunnel4_out_tos=0
	tunnel_out_vni=456
	in_vlan=0
	in_priority=0
	out_vlan=0
	out_priority=0
	meanSkip=1
	samplePool=1
	dropEvents=0
	in_ifindex=2011
	in_format=0
	out_ifindex=1
	out_format=2
	hdr_prot=1
	pkt_len=46
	stripped=4
	hdr_len=42
	hdr=50-54-00-00-00-0A-50-54-00-00-00-05-08-00-45-00-00-1C-00-00-00-00-80-01-B6-8D-C0-A8-01-01-C0-A8-02-02-08-00-F7-FF-00-00-00-00
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6392"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6425: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:6425"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6425"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6425: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:6425"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6425"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6425: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:6425"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6425"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6425: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6425: wait failed" >&5

    $as_echo "ofproto-dpif.at:6425" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6425"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6425: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:6425"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6425"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6425: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:6425"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6425"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6425: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6425: wait failed" >&5

    $as_echo "ofproto-dpif.at:6425" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6425"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1145
#AT_START_1146
at_fn_group_banner 1146 'ofproto-dpif.at:6428' \
  "ofproto-dpif - sFlow packet sampling - MPLS" "    " 55
at_xfail=no
      test "$IS_WIN32" = "yes" && at_xfail=yes
(
  $as_echo "1146. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6430: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:6430"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6430"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6430: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:6430"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6430"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6430: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6430"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6430"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6430: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:6430"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6430"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6430: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:6430"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6430"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6430: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6430"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6430"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6430: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:6430"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6430"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6431: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:6431"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6431"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

add_of_ports br0 1 2
cat >flows.txt <<'_ATEOF'
table=0 dl_src=50:54:00:00:00:09 actions=push_mpls:0x8847,set_mpls_label:789,set_mpls_tc:4,set_mpls_ttl:32,2
table=0 dl_src=50:54:00:00:00:0b actions=pop_mpls:0x0800,2
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6437: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:6437"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6437"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6440: ovstest test-sflow --log-file --detach --no-chdir --pidfile 0:127.0.0.1 > sflow.log"
at_fn_check_prepare_trace "ofproto-dpif.at:6440"
( $at_check_trace; ovstest test-sflow --log-file --detach --no-chdir --pidfile 0:127.0.0.1 > sflow.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6440"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


$as_echo "ofproto-dpif.at:6442: waiting until SFLOW_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"test-sflow.log\"\` && test X != X\"\$SFLOW_PORT\"..." >&5
ovs_wait_cond () {
    SFLOW_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "test-sflow.log"` && test X != X"$SFLOW_PORT"
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6442: wait failed" >&5

    $as_echo "ofproto-dpif.at:6442" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6442"
fi

ovs-appctl time/stop

ovs-vsctl \
   set Bridge br0 sflow=@sf -- \
   --id=@sf create sflow targets=\"127.0.0.1:$SFLOW_PORT\" \
     header=128 sampling=1 polling=0

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6451: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x8847),mpls(label=11,tc=3,ttl=64,bos=1)'"
at_fn_check_prepare_trace "ofproto-dpif.at:6451"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x8847),mpls(label=11,tc=3,ttl=64,bos=1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6451"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6452: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800)'"
at_fn_check_prepare_trace "ofproto-dpif.at:6452"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6452"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }


for i in `seq 1 30`; do
    ovs-appctl time/warp 100
done

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6459: test -e \$OVS_RUNDIR/test-sflow.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/test-sflow.pid" "ofproto-dpif.at:6459"
( $at_check_trace; test -e $OVS_RUNDIR/test-sflow.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6459"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/test-sflow.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6459: ovs-appctl --timeout=10 -t test-sflow exit"
at_fn_check_prepare_trace "ofproto-dpif.at:6459"
( $at_check_trace; ovs-appctl --timeout=10 -t test-sflow exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6459"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6459: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6459: wait failed" >&5

    $as_echo "ofproto-dpif.at:6459" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6459"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6461: sort sflow.log | \$EGREP 'HEADER|ERROR' | sed 's/ /\\
	/g'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6461"
( $at_check_trace; sort sflow.log | $EGREP 'HEADER|ERROR' | sed 's/ /\
	/g'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "HEADER
	dgramSeqNo=1
	ds=127.0.0.1>2:1000
	fsSeqNo=1
	mpls_label_0=789
	mpls_tc_0=4
	mpls_ttl_0=32
	mpls_bos_0=0
	mpls_label_1=11
	mpls_tc_1=3
	mpls_ttl_1=64
	mpls_bos_1=1
	in_vlan=0
	in_priority=0
	out_vlan=0
	out_priority=0
	meanSkip=1
	samplePool=1
	dropEvents=0
	in_ifindex=0
	in_format=0
	out_ifindex=1
	out_format=2
	hdr_prot=1
	pkt_len=22
	stripped=4
	hdr_len=18
	hdr=50-54-00-00-00-0A-50-54-00-00-00-09-88-47-00-00-B7-40
HEADER
	dgramSeqNo=1
	ds=127.0.0.1>2:1000
	fsSeqNo=2
	mpls_label_0=789
	mpls_tc_0=4
	mpls_ttl_0=32
	mpls_bos_0=1
	in_vlan=0
	in_priority=0
	out_vlan=0
	out_priority=0
	meanSkip=1
	samplePool=2
	dropEvents=0
	in_ifindex=0
	in_format=0
	out_ifindex=1
	out_format=2
	hdr_prot=1
	pkt_len=38
	stripped=4
	hdr_len=34
	hdr=50-54-00-00-00-0A-50-54-00-00-00-09-08-00-45-00-00-14-00-00-00-00-00-00-BA-EB-00-00-00-00-00-00-00-00
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6461"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6517: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:6517"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6517"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6517: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:6517"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6517"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6517: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:6517"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6517"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6517: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6517: wait failed" >&5

    $as_echo "ofproto-dpif.at:6517" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6517"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6517: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:6517"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6517"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6517: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:6517"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6517"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"sflow.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6517: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6517: wait failed" >&5

    $as_echo "ofproto-dpif.at:6517" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6517"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1146
#AT_START_1147
at_fn_group_banner 1147 'ofproto-dpif.at:6564' \
  "ofproto-dpif - NetFlow flow expiration - IPv4 collector" "" 55
at_xfail=no
(
  $as_echo "1147. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6565: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:6565"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6565"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6565: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:6565"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6565"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6565: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6565"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6565"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6565: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:6565"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6565"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6565: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:6565"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6565"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6565: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6565"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6565"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6565: add_of_br 0 set Bridge br0 fail-mode=standalone "
at_fn_check_prepare_trace "ofproto-dpif.at:6565"
( $at_check_trace; add_of_br 0 set Bridge br0 fail-mode=standalone
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6565"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


  add_of_ports br0 1 2

  ovs-appctl time/stop
  on_exit 'kill `cat test-netflow.pid`'
  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6565: ovstest test-netflow --log-file --detach --no-chdir --pidfile 0:127.0.0.1 > netflow.log"
at_fn_check_prepare_trace "ofproto-dpif.at:6565"
( $at_check_trace; ovstest test-netflow --log-file --detach --no-chdir --pidfile 0:127.0.0.1 > netflow.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6565"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


  $as_echo "ofproto-dpif.at:6565: waiting until NETFLOW_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"test-netflow.log\"\` && test X != X\"\$NETFLOW_PORT\"..." >&5
ovs_wait_cond () {
    NETFLOW_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "test-netflow.log"` && test X != X"$NETFLOW_PORT"
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6565: wait failed" >&5

    $as_echo "ofproto-dpif.at:6565" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6565"
fi


  ovs-vsctl \
     set Bridge br0 netflow=@nf -- \
     --id=@nf create NetFlow targets=\"127.0.0.1:$NETFLOW_PORT\" \
       engine_id=1 engine_type=2 active_timeout=30 add-id-to-interface=false

  for delay in 1000 30000; do
      ovs-appctl netdev-dummy/receive p1 'in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
      sleep 1  # ensure the order in which these two packets are processed
      ovs-appctl netdev-dummy/receive p2 'in_port(1),eth(src=50:54:00:00:00:07,dst=50:54:00:00:00:05),eth_type(0x0800),ipv4(src=192.168.0.2,dst=192.168.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=0,code=0)'

      ovs-appctl time/warp $delay
  done

  ovs-appctl time/warp 6000
  ovs-appctl revalidator/wait
  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6565: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:6565"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6565"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6565: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:6565"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6565"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6565: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:6565"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6565"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6565: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6565: wait failed" >&5

    $as_echo "ofproto-dpif.at:6565" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6565"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6565: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:6565"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6565"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6565: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:6565"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6565"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6565: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6565: wait failed" >&5

    $as_echo "ofproto-dpif.at:6565" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6565"
fi

  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6565: test -e \$OVS_RUNDIR/test-netflow.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/test-netflow.pid" "ofproto-dpif.at:6565"
( $at_check_trace; test -e $OVS_RUNDIR/test-netflow.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6565"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/test-netflow.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6565: ovs-appctl --timeout=10 -t test-netflow exit"
at_fn_check_prepare_trace "ofproto-dpif.at:6565"
( $at_check_trace; ovs-appctl --timeout=10 -t test-netflow exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6565"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6565: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6565: wait failed" >&5

    $as_echo "ofproto-dpif.at:6565" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6565"
fi


  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6565: test \`grep \"192.168.0.1 > 192.168.0.2, if 1 > 65535, 1 pkts, 42 bytes, ICMP 8:0\" netflow.log | wc -l\` -eq 1"
at_fn_check_prepare_notrace 'a `...` command substitution' "ofproto-dpif.at:6565"
( $at_check_trace; test `grep "192.168.0.1 > 192.168.0.2, if 1 > 65535, 1 pkts, 42 bytes, ICMP 8:0" netflow.log | wc -l` -eq 1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6565"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }


  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6565: test \`grep \"192.168.0.1 > 192.168.0.2, if 1 > 2, 1 pkts, 42 bytes, ICMP 8:0\" netflow.log | wc -l\` -eq 1"
at_fn_check_prepare_notrace 'a `...` command substitution' "ofproto-dpif.at:6565"
( $at_check_trace; test `grep "192.168.0.1 > 192.168.0.2, if 1 > 2, 1 pkts, 42 bytes, ICMP 8:0" netflow.log | wc -l` -eq 1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6565"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }


  combined=`grep "192.168.0.2 > 192.168.0.1, if 2 > 1, 2 pkts, 84 bytes, ICMP 0:0" netflow.log | wc -l`
  separate=`grep "192.168.0.2 > 192.168.0.1, if 2 > 1, 1 pkts, 42 bytes, ICMP 0:0" netflow.log | wc -l`
  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6565: test \$separate = 2 || test \$combined = 1"
at_fn_check_prepare_dynamic "test $separate = 2 || test $combined = 1" "ofproto-dpif.at:6565"
( $at_check_trace; test $separate = 2 || test $combined = 1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6565"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1147
#AT_START_1148
at_fn_group_banner 1148 'ofproto-dpif.at:6568' \
  "ofproto-dpif - NetFlow flow expiration - IPv6 collector" "" 55
at_xfail=no
(
  $as_echo "1148. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ofproto-dpif.at:6569" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ofproto-dpif.at:6569"
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6570: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:6570"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6570"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6570: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:6570"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6570"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6570: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6570"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6570"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6570: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:6570"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6570"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6570: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:6570"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6570"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6570: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6570"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6570"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6570: add_of_br 0 set Bridge br0 fail-mode=standalone "
at_fn_check_prepare_trace "ofproto-dpif.at:6570"
( $at_check_trace; add_of_br 0 set Bridge br0 fail-mode=standalone
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6570"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


  add_of_ports br0 1 2

  ovs-appctl time/stop
  on_exit 'kill `cat test-netflow.pid`'
  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6570: ovstest test-netflow --log-file --detach --no-chdir --pidfile 0:[::1] > netflow.log"
at_fn_check_prepare_trace "ofproto-dpif.at:6570"
( $at_check_trace; ovstest test-netflow --log-file --detach --no-chdir --pidfile 0:[::1] > netflow.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6570"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


  $as_echo "ofproto-dpif.at:6570: waiting until NETFLOW_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"test-netflow.log\"\` && test X != X\"\$NETFLOW_PORT\"..." >&5
ovs_wait_cond () {
    NETFLOW_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "test-netflow.log"` && test X != X"$NETFLOW_PORT"
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6570: wait failed" >&5

    $as_echo "ofproto-dpif.at:6570" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6570"
fi


  ovs-vsctl \
     set Bridge br0 netflow=@nf -- \
     --id=@nf create NetFlow targets=\"[::1]:$NETFLOW_PORT\" \
       engine_id=1 engine_type=2 active_timeout=30 add-id-to-interface=false

  for delay in 1000 30000; do
      ovs-appctl netdev-dummy/receive p1 'in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
      sleep 1  # ensure the order in which these two packets are processed
      ovs-appctl netdev-dummy/receive p2 'in_port(1),eth(src=50:54:00:00:00:07,dst=50:54:00:00:00:05),eth_type(0x0800),ipv4(src=192.168.0.2,dst=192.168.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=0,code=0)'

      ovs-appctl time/warp $delay
  done

  ovs-appctl time/warp 6000
  ovs-appctl revalidator/wait
  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6570: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:6570"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6570"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6570: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:6570"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6570"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6570: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:6570"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6570"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6570: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6570: wait failed" >&5

    $as_echo "ofproto-dpif.at:6570" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6570"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6570: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:6570"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6570"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6570: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:6570"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6570"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6570: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6570: wait failed" >&5

    $as_echo "ofproto-dpif.at:6570" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6570"
fi

  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6570: test -e \$OVS_RUNDIR/test-netflow.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/test-netflow.pid" "ofproto-dpif.at:6570"
( $at_check_trace; test -e $OVS_RUNDIR/test-netflow.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6570"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/test-netflow.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6570: ovs-appctl --timeout=10 -t test-netflow exit"
at_fn_check_prepare_trace "ofproto-dpif.at:6570"
( $at_check_trace; ovs-appctl --timeout=10 -t test-netflow exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6570"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6570: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6570: wait failed" >&5

    $as_echo "ofproto-dpif.at:6570" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6570"
fi


  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6570: test \`grep \"192.168.0.1 > 192.168.0.2, if 1 > 65535, 1 pkts, 42 bytes, ICMP 8:0\" netflow.log | wc -l\` -eq 1"
at_fn_check_prepare_notrace 'a `...` command substitution' "ofproto-dpif.at:6570"
( $at_check_trace; test `grep "192.168.0.1 > 192.168.0.2, if 1 > 65535, 1 pkts, 42 bytes, ICMP 8:0" netflow.log | wc -l` -eq 1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6570"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }


  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6570: test \`grep \"192.168.0.1 > 192.168.0.2, if 1 > 2, 1 pkts, 42 bytes, ICMP 8:0\" netflow.log | wc -l\` -eq 1"
at_fn_check_prepare_notrace 'a `...` command substitution' "ofproto-dpif.at:6570"
( $at_check_trace; test `grep "192.168.0.1 > 192.168.0.2, if 1 > 2, 1 pkts, 42 bytes, ICMP 8:0" netflow.log | wc -l` -eq 1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6570"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }


  combined=`grep "192.168.0.2 > 192.168.0.1, if 2 > 1, 2 pkts, 84 bytes, ICMP 0:0" netflow.log | wc -l`
  separate=`grep "192.168.0.2 > 192.168.0.1, if 2 > 1, 1 pkts, 42 bytes, ICMP 0:0" netflow.log | wc -l`
  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6570: test \$separate = 2 || test \$combined = 1"
at_fn_check_prepare_dynamic "test $separate = 2 || test $combined = 1" "ofproto-dpif.at:6570"
( $at_check_trace; test $separate = 2 || test $combined = 1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6570"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1148
#AT_START_1149
at_fn_group_banner 1149 'ofproto-dpif.at:6648' \
  "ofproto-dpif - NetFlow active expiration - IPv4 collector" "" 55
at_xfail=no
(
  $as_echo "1149. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6649: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:6649"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6649"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6649: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:6649"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6649"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6649: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6649"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6649"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6649: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:6649"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6649"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6649: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:6649"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6649"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6649: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6649"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6649"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6649: add_of_br 0 set Bridge br0 fail-mode=standalone "
at_fn_check_prepare_trace "ofproto-dpif.at:6649"
( $at_check_trace; add_of_br 0 set Bridge br0 fail-mode=standalone
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6649"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


  add_of_ports br0 1 2

  on_exit 'kill `cat test-netflow.pid`'
  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6649: ovstest test-netflow --log-file --detach --no-chdir --pidfile 0:127.0.0.1 > netflow.log"
at_fn_check_prepare_trace "ofproto-dpif.at:6649"
( $at_check_trace; ovstest test-netflow --log-file --detach --no-chdir --pidfile 0:127.0.0.1 > netflow.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6649"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


  $as_echo "ofproto-dpif.at:6649: waiting until NETFLOW_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"test-netflow.log\"\` && test X != X\"\$NETFLOW_PORT\"..." >&5
ovs_wait_cond () {
    NETFLOW_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "test-netflow.log"` && test X != X"$NETFLOW_PORT"
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6649: wait failed" >&5

    $as_echo "ofproto-dpif.at:6649" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6649"
fi


  ovs-vsctl \
     set Bridge br0 netflow=@nf -- \
     --id=@nf create NetFlow targets=\"127.0.0.1:$NETFLOW_PORT\" \
       engine_id=1 engine_type=2 active_timeout=10 add-id-to-interface=false

  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6649: ovs-appctl time/stop"
at_fn_check_prepare_trace "ofproto-dpif.at:6649"
( $at_check_trace; ovs-appctl time/stop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6649"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

  n=1
  while test $n -le 60; do
      n=`expr $n + 1`

      ovs-appctl netdev-dummy/receive p1 'in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=1234,dst=80)'
      ovs-appctl netdev-dummy/receive p2 'in_port(1),eth(src=50:54:00:00:00:07,dst=50:54:00:00:00:05),eth_type(0x0800),ipv4(src=192.168.0.2,dst=192.168.0.1,proto=6,tos=0,ttl=64,frag=no),tcp(src=80,dst=1234)'

      ovs-appctl time/warp 1000
  done

  ovs-appctl time/warp 10000

  ovs-appctl revalidator/wait
  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6649: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:6649"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6649"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6649: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:6649"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6649"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6649: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:6649"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6649"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6649: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6649: wait failed" >&5

    $as_echo "ofproto-dpif.at:6649" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6649"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6649: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:6649"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6649"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6649: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:6649"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6649"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6649: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6649: wait failed" >&5

    $as_echo "ofproto-dpif.at:6649" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6649"
fi

  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6649: test -e \$OVS_RUNDIR/test-netflow.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/test-netflow.pid" "ofproto-dpif.at:6649"
( $at_check_trace; test -e $OVS_RUNDIR/test-netflow.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6649"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/test-netflow.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6649: ovs-appctl --timeout=10 -t test-netflow exit"
at_fn_check_prepare_trace "ofproto-dpif.at:6649"
( $at_check_trace; ovs-appctl --timeout=10 -t test-netflow exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6649"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6649: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6649: wait failed" >&5

    $as_echo "ofproto-dpif.at:6649" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6649"
fi


  # Count the number of reported packets:
  # - From source to destination before MAC learning kicks in (just one).
  # - From source to destination after that.
  # - From destination to source.
  n_learn=0
  n_in=0
  n_out=0
  n_other=0
  n_recs=0
  none=0
  while read line; do
      pkts=`echo "$line" | sed 's/.*, \([0-9]*\) pkts,.*/\1/'`
      case $pkts in
           [0-9]*) ;;
       *) continue ;;
      esac

      case $line in
          "seq "*": 192.168.0.1 > 192.168.0.2, if 1 > 65535, "*" pkts, "*" bytes, TCP 1234 > 80, time "*)
              counter=n_learn
          ;;
      "seq "*": 192.168.0.1 > 192.168.0.2, if 1 > 2, "*" pkts, "*" bytes, TCP 1234 > 80, time "*)
          counter=n_in
          ;;
      "seq "*": 192.168.0.2 > 192.168.0.1, if 2 > 1, "*" pkts, "*" bytes, TCP 80 > 1234, time "*)
          counter=n_out
          ;;
      *)
          counter=n_other
          ;;
      esac
      eval $counter=\`expr \$$counter + \$pkts\`
      n_recs=`expr $n_recs + 1`
  done < netflow.log

  # There should be exactly 1 MAC learning packet,
  # exactly 59 other packets in that direction,
  # and exactly 60 packets in the other direction.
  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6649: echo \$n_learn \$n_in \$n_out \$n_other"
at_fn_check_prepare_dynamic "echo $n_learn $n_in $n_out $n_other" "ofproto-dpif.at:6649"
( $at_check_trace; echo $n_learn $n_in $n_out $n_other
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1 59 60 0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6649"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1149
#AT_START_1150
at_fn_group_banner 1150 'ofproto-dpif.at:6652' \
  "ofproto-dpif - NetFlow active expiration - IPv6 collector" "" 55
at_xfail=no
(
  $as_echo "1150. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ofproto-dpif.at:6653" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ofproto-dpif.at:6653"
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6654: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:6654"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6654"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6654: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:6654"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6654"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6654: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6654"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6654"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6654: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:6654"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6654"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6654: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:6654"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6654"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6654: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6654"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6654"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6654: add_of_br 0 set Bridge br0 fail-mode=standalone "
at_fn_check_prepare_trace "ofproto-dpif.at:6654"
( $at_check_trace; add_of_br 0 set Bridge br0 fail-mode=standalone
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6654"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


  add_of_ports br0 1 2

  on_exit 'kill `cat test-netflow.pid`'
  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6654: ovstest test-netflow --log-file --detach --no-chdir --pidfile 0:[::1] > netflow.log"
at_fn_check_prepare_trace "ofproto-dpif.at:6654"
( $at_check_trace; ovstest test-netflow --log-file --detach --no-chdir --pidfile 0:[::1] > netflow.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6654"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


  $as_echo "ofproto-dpif.at:6654: waiting until NETFLOW_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"test-netflow.log\"\` && test X != X\"\$NETFLOW_PORT\"..." >&5
ovs_wait_cond () {
    NETFLOW_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "test-netflow.log"` && test X != X"$NETFLOW_PORT"
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6654: wait failed" >&5

    $as_echo "ofproto-dpif.at:6654" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6654"
fi


  ovs-vsctl \
     set Bridge br0 netflow=@nf -- \
     --id=@nf create NetFlow targets=\"[::1]:$NETFLOW_PORT\" \
       engine_id=1 engine_type=2 active_timeout=10 add-id-to-interface=false

  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6654: ovs-appctl time/stop"
at_fn_check_prepare_trace "ofproto-dpif.at:6654"
( $at_check_trace; ovs-appctl time/stop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6654"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

  n=1
  while test $n -le 60; do
      n=`expr $n + 1`

      ovs-appctl netdev-dummy/receive p1 'in_port(2),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=1234,dst=80)'
      ovs-appctl netdev-dummy/receive p2 'in_port(1),eth(src=50:54:00:00:00:07,dst=50:54:00:00:00:05),eth_type(0x0800),ipv4(src=192.168.0.2,dst=192.168.0.1,proto=6,tos=0,ttl=64,frag=no),tcp(src=80,dst=1234)'

      ovs-appctl time/warp 1000
  done

  ovs-appctl time/warp 10000

  ovs-appctl revalidator/wait
  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6654: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:6654"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6654"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6654: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:6654"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6654"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6654: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:6654"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6654"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6654: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6654: wait failed" >&5

    $as_echo "ofproto-dpif.at:6654" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6654"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6654: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:6654"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6654"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6654: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:6654"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6654"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6654: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6654: wait failed" >&5

    $as_echo "ofproto-dpif.at:6654" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6654"
fi

  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6654: test -e \$OVS_RUNDIR/test-netflow.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/test-netflow.pid" "ofproto-dpif.at:6654"
( $at_check_trace; test -e $OVS_RUNDIR/test-netflow.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6654"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/test-netflow.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6654: ovs-appctl --timeout=10 -t test-netflow exit"
at_fn_check_prepare_trace "ofproto-dpif.at:6654"
( $at_check_trace; ovs-appctl --timeout=10 -t test-netflow exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6654"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6654: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6654: wait failed" >&5

    $as_echo "ofproto-dpif.at:6654" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6654"
fi


  # Count the number of reported packets:
  # - From source to destination before MAC learning kicks in (just one).
  # - From source to destination after that.
  # - From destination to source.
  n_learn=0
  n_in=0
  n_out=0
  n_other=0
  n_recs=0
  none=0
  while read line; do
      pkts=`echo "$line" | sed 's/.*, \([0-9]*\) pkts,.*/\1/'`
      case $pkts in
           [0-9]*) ;;
       *) continue ;;
      esac

      case $line in
          "seq "*": 192.168.0.1 > 192.168.0.2, if 1 > 65535, "*" pkts, "*" bytes, TCP 1234 > 80, time "*)
              counter=n_learn
          ;;
      "seq "*": 192.168.0.1 > 192.168.0.2, if 1 > 2, "*" pkts, "*" bytes, TCP 1234 > 80, time "*)
          counter=n_in
          ;;
      "seq "*": 192.168.0.2 > 192.168.0.1, if 2 > 1, "*" pkts, "*" bytes, TCP 80 > 1234, time "*)
          counter=n_out
          ;;
      *)
          counter=n_other
          ;;
      esac
      eval $counter=\`expr \$$counter + \$pkts\`
      n_recs=`expr $n_recs + 1`
  done < netflow.log

  # There should be exactly 1 MAC learning packet,
  # exactly 59 other packets in that direction,
  # and exactly 60 packets in the other direction.
  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6654: echo \$n_learn \$n_in \$n_out \$n_other"
at_fn_check_prepare_dynamic "echo $n_learn $n_in $n_out $n_other" "ofproto-dpif.at:6654"
( $at_check_trace; echo $n_learn $n_in $n_out $n_other
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1 59 60 0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6654"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1150
#AT_START_1151
at_fn_group_banner 1151 'ofproto-dpif.at:6660' \
  "ofproto-dpif - Bridge IPFIX sanity check" "       " 55
at_xfail=no
(
  $as_echo "1151. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6661: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:6661"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6661"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6661: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:6661"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6661"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6661: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6661"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6661"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6661: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:6661"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6661"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6661: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:6661"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6661"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6661: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6661"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6661"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6661: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:6661"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6661"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6665: ovs-vsctl -- set bridge br0 ipfix=@fix -- \\
                    --id=@fix create ipfix targets=\\\"127.0.0.1:4739\\\" \\
                              sampling=1"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6665"
( $at_check_trace; ovs-vsctl -- set bridge br0 ipfix=@fix -- \
                    --id=@fix create ipfix targets=\"127.0.0.1:4739\" \
                              sampling=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6665"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


for i in `seq 1 3`; do
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6671: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800)'"
at_fn_check_prepare_trace "ofproto-dpif.at:6671"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6671"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

done
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6673: ovs-appctl dpctl/dump-flows | sed 's/.*\\(packets:\\)/\\1/' | sed 's/used:[0-9].[0-9]*s/used:0.001s/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:6673"
( $at_check_trace; ovs-appctl dpctl/dump-flows | sed 's/.*\(packets:\)/\1/' | sed 's/used:[0-9].[0-9]*s/used:0.001s/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
packets:2, bytes:68, used:0.001s, actions:userspace(pid=0,ipfix(output_port=4294967295))
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6673"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6678: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:6678"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6678"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6681: ovs-ofctl -O OpenFlow13 add-meter br0 'meter=slowpath pktps burst stats bands=type=drop rate=3 burst_size=1'"
at_fn_check_prepare_trace "ofproto-dpif.at:6681"
( $at_check_trace; ovs-ofctl -O OpenFlow13 add-meter br0 'meter=slowpath pktps burst stats bands=type=drop rate=3 burst_size=1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6681"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


for i in `seq 1 3`; do
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6685: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800)'"
at_fn_check_prepare_trace "ofproto-dpif.at:6685"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6685"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

done
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6687: ovs-appctl dpctl/dump-flows | sed 's/.*\\(packets:\\)/\\1/' | sed 's/used:[0-9].[0-9]*s/used:0.001s/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:6687"
( $at_check_trace; ovs-appctl dpctl/dump-flows | sed 's/.*\(packets:\)/\1/' | sed 's/used:[0-9].[0-9]*s/used:0.001s/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
packets:2, bytes:68, used:0.001s, actions:sample(sample=100.0%,actions(meter(0),userspace(pid=0,ipfix(output_port=4294967295))))
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6687"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6693: ovs-vsctl clear bridge br0 ipfix"
at_fn_check_prepare_trace "ofproto-dpif.at:6693"
( $at_check_trace; ovs-vsctl clear bridge br0 ipfix
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6693"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6694: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:6694"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6694"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


for i in `seq 1 3`; do
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6698: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800)'"
at_fn_check_prepare_trace "ofproto-dpif.at:6698"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6698"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

done
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6700: ovs-appctl dpctl/dump-flows | sed 's/.*\\(packets:\\)/\\1/' | sed 's/used:[0-9].[0-9]*s/used:0.001s/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:6700"
( $at_check_trace; ovs-appctl dpctl/dump-flows | sed 's/.*\(packets:\)/\1/' | sed 's/used:[0-9].[0-9]*s/used:0.001s/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
packets:2, bytes:68, used:0.001s, actions:drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6700"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6705: check_logs \"/sending to collector failed/d\""
at_fn_check_prepare_trace "ofproto-dpif.at:6705"
( $at_check_trace; check_logs "/sending to collector failed/d"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6705"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6705: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:6705"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6705"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6705: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:6705"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6705"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6705: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6705: wait failed" >&5

    $as_echo "ofproto-dpif.at:6705" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6705"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6705: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:6705"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6705"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6705: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:6705"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6705"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6705: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6705: wait failed" >&5

    $as_echo "ofproto-dpif.at:6705" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6705"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1151
#AT_START_1152
at_fn_group_banner 1152 'ofproto-dpif.at:6709' \
  "ofproto-dpif - Bridge IPFIX statistics check" "   " 55
at_xfail=no
(
  $as_echo "1152. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6710: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:6710"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6710"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6710: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:6710"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6710"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6710: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6710"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6710"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6710: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:6710"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6710"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6710: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:6710"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6710"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6710: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6710"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6710"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6710: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:6710"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6710"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6714: ovs-ofctl dump-ipfix-bridge br0"
at_fn_check_prepare_trace "ofproto-dpif.at:6714"
( $at_check_trace; ovs-ofctl dump-ipfix-bridge br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (xid=0x2): NXST_NOT_CONFIGURED
NXST_IPFIX_BRIDGE request (xid=0x2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6714"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6720: ovs-vsctl -- set bridge br0 ipfix=@fix -- \\
                    --id=@fix create ipfix targets=\\\"127.0.0.1:4739\\\" \\
                              sampling=1"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6720"
( $at_check_trace; ovs-vsctl -- set bridge br0 ipfix=@fix -- \
                    --id=@fix create ipfix targets=\"127.0.0.1:4739\" \
                              sampling=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6720"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


for i in `seq 1 20`; do
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6726: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800)'"
at_fn_check_prepare_trace "ofproto-dpif.at:6726"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6726"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

done

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6730: ovs-ofctl dump-ipfix-bridge br0 | sed 's/tx pkts=[0-9]*/tx pkts=24/' | sed 's/tx errs=[0-9]*/tx errs=0/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:6730"
( $at_check_trace; ovs-ofctl dump-ipfix-bridge br0 | sed 's/tx pkts=[0-9]*/tx pkts=24/' | sed 's/tx errs=[0-9]*/tx errs=0/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_IPFIX_BRIDGE reply (xid=0x2):
  bridge ipfix: flows=20, current flows=0, sampled pkts=20, ipv4 ok=0, ipv6 ok=0, tx pkts=24
                pkts errs=20, ipv4 errs=20, ipv6 errs=0, tx errs=0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6730"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6737: ovs-vsctl clear bridge br0 ipfix"
at_fn_check_prepare_trace "ofproto-dpif.at:6737"
( $at_check_trace; ovs-vsctl clear bridge br0 ipfix
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6737"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6738: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:6738"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6738"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


for i in `seq 1 2`; do
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6742: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800)'"
at_fn_check_prepare_trace "ofproto-dpif.at:6742"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6742"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

done
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6744: ovs-ofctl dump-ipfix-bridge br0"
at_fn_check_prepare_trace "ofproto-dpif.at:6744"
( $at_check_trace; ovs-ofctl dump-ipfix-bridge br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (xid=0x2): NXST_NOT_CONFIGURED
NXST_IPFIX_BRIDGE request (xid=0x2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6744"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6749: check_logs \"/sending to collector failed/d\""
at_fn_check_prepare_trace "ofproto-dpif.at:6749"
( $at_check_trace; check_logs "/sending to collector failed/d"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6749"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6749: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:6749"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6749"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6749: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:6749"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6749"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6749: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6749: wait failed" >&5

    $as_echo "ofproto-dpif.at:6749" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6749"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6749: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:6749"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6749"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6749: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:6749"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6749"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6749: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6749: wait failed" >&5

    $as_echo "ofproto-dpif.at:6749" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6749"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1152
#AT_START_1153
at_fn_group_banner 1153 'ofproto-dpif.at:6753' \
  "ofproto-dpif - Flow IPFIX sanity check" "         " 55
at_xfail=no
(
  $as_echo "1153. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6754: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:6754"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6754"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6754: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:6754"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6754"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6754: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6754"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6754"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6754: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:6754"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6754"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6754: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:6754"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6754"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6754: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6754"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6754"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6754: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:6754"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6754"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2

# Check for regression against a bug where an invalid target caused an
# assertion failure and a crash.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6759: ovs-vsctl -- --id=@br0 get Bridge br0 \\
                    -- --id=@ipfix create IPFIX targets=\\\"xyzzy\\\" \\
                    -- --id=@cs create Flow_Sample_Collector_Set id=0 bridge=@br0 ipfix=@ipfix"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6759"
( $at_check_trace; ovs-vsctl -- --id=@br0 get Bridge br0 \
                    -- --id=@ipfix create IPFIX targets=\"xyzzy\" \
                    -- --id=@cs create Flow_Sample_Collector_Set id=0 bridge=@br0 ipfix=@ipfix
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6759"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6764: ovs-vsctl -- --id=@br0 get Bridge br0 \\
                    -- --id=@ipfix create IPFIX targets=\\\"127.0.0.1:4739\\\" \\
                    -- --id=@cs create Flow_Sample_Collector_Set id=1 bridge=@br0 ipfix=@ipfix"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6764"
( $at_check_trace; ovs-vsctl -- --id=@br0 get Bridge br0 \
                    -- --id=@ipfix create IPFIX targets=\"127.0.0.1:4739\" \
                    -- --id=@cs create Flow_Sample_Collector_Set id=1 bridge=@br0 ipfix=@ipfix
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6764"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
in_port=1, actions=sample(probability=65535,collector_set_id=1),output:2
_ATEOF


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6773: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:6773"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6773"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


for i in `seq 1 3`; do
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6777: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800)'"
at_fn_check_prepare_trace "ofproto-dpif.at:6777"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6777"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

done
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6779: ovs-appctl dpctl/dump-flows | sed 's/.*\\(packets:\\)/\\1/' | sed 's/used:[0-9].[0-9]*s/used:0.001s/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:6779"
( $at_check_trace; ovs-appctl dpctl/dump-flows | sed 's/.*\(packets:\)/\1/' | sed 's/used:[0-9].[0-9]*s/used:0.001s/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
packets:2, bytes:68, used:0.001s, actions:userspace(pid=0,flow_sample(probability=65535,collector_set_id=1,obs_domain_id=0,obs_point_id=0,output_port=4294967295)),2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6779"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6785: ovs-ofctl del-flows br0 in_port=1"
at_fn_check_prepare_trace "ofproto-dpif.at:6785"
( $at_check_trace; ovs-ofctl del-flows br0 in_port=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6785"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6786: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:6786"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6786"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


for i in `seq 1 3`; do
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6790: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800)'"
at_fn_check_prepare_trace "ofproto-dpif.at:6790"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6790"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

done
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6792: ovs-appctl dpctl/dump-flows | sed 's/.*\\(packets:\\)/\\1/' | sed 's/used:[0-9].[0-9]*s/used:0.001s/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:6792"
( $at_check_trace; ovs-appctl dpctl/dump-flows | sed 's/.*\(packets:\)/\1/' | sed 's/used:[0-9].[0-9]*s/used:0.001s/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
packets:2, bytes:68, used:0.001s, actions:drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6792"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6797: check_logs \"/sending to collector failed/d
/xyzzy/d
/no collectors/d\""
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6797"
( $at_check_trace; check_logs "/sending to collector failed/d
/xyzzy/d
/no collectors/d"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6797"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6797: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:6797"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6797"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6797: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:6797"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6797"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6797: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6797: wait failed" >&5

    $as_echo "ofproto-dpif.at:6797" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6797"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6797: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:6797"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6797"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6797: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:6797"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6797"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6797: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6797: wait failed" >&5

    $as_echo "ofproto-dpif.at:6797" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6797"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1153
#AT_START_1154
at_fn_group_banner 1154 'ofproto-dpif.at:6803' \
  "ofproto-dpif - Flow IPFIX sanity check - tunnel set" "" 55
at_xfail=no
(
  $as_echo "1154. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6804: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:6804"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6804"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6804: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:6804"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6804"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6804: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6804"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6804"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6804: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:6804"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6804"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6804: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:6804"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6804"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6804: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6804"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6804"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6804: add_of_br 0 add-port br0 p1 -- set Interface p1 type=gre \\
                    options:remote_ip=1.1.1.1 options:local_ip=2.2.2.2 \\
                    options:key=5 ofport_request=1\\
                    -- add-port br0 p2 -- set Interface p2 type=stt \\
                    options:remote_ip=1.1.1.2 options:local_ip=2.2.2.3 \\
                    options:key=6 ofport_request=2\\
                    -- add-port br0 p3 -- set Interface p3 type=dummy \\
                    ofport_request=3 \\
                    -- --id=@br0 get Bridge br0 \\
                    -- --id=@ipfix create IPFIX targets=\\\"127.0.0.1:4739\\\" \\
                    -- --id=@cs create Flow_Sample_Collector_Set id=1 bridge=@br0 ipfix=@ipfix | uuidfilt"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6804"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=gre \
                    options:remote_ip=1.1.1.1 options:local_ip=2.2.2.2 \
                    options:key=5 ofport_request=1\
                    -- add-port br0 p2 -- set Interface p2 type=stt \
                    options:remote_ip=1.1.1.2 options:local_ip=2.2.2.3 \
                    options:key=6 ofport_request=2\
                    -- add-port br0 p3 -- set Interface p3 type=dummy \
                    ofport_request=3 \
                    -- --id=@br0 get Bridge br0 \
                    -- --id=@ipfix create IPFIX targets=\"127.0.0.1:4739\" \
                    -- --id=@cs create Flow_Sample_Collector_Set id=1 bridge=@br0 ipfix=@ipfix | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<0>
<1>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6804"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6819: ovs-appctl dpif/set-dp-features br0 tnl_push_pop false"
at_fn_check_prepare_trace "ofproto-dpif.at:6819"
( $at_check_trace; ovs-appctl dpif/set-dp-features br0 tnl_push_pop false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6819"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



cat >flows.txt <<'_ATEOF'
in_port=3, actions=sample(probability=65535,collector_set_id=1),output:1
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6825: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:6825"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6825"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6827: ovs-appctl ofproto/trace ovs-dummy 'in_port(3),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.10.10.2,dst=10.10.10.1,proto=1,tos=1,ttl=128,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:6827"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(3),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.10.10.2,dst=10.10.10.1,proto=1,tos=1,ttl=128,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6827"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6828: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:6828"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: userspace(pid=0,flow_sample(probability=65535,collector_set_id=1,obs_domain_id=0,obs_point_id=0,output_port=4294967295)),set(tunnel(tun_id=0x5,src=2.2.2.2,dst=1.1.1.1,tos=0x1,ttl=64,flags(df|key))),1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6828"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6833: ovs-ofctl del-flows br0 in_port=3"
at_fn_check_prepare_trace "ofproto-dpif.at:6833"
( $at_check_trace; ovs-ofctl del-flows br0 in_port=3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6833"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6834: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:6834"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6834"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows2.txt <<'_ATEOF'
in_port=3, actions=sample(probability=65535,collector_set_id=1,sampling_port=1),output:1
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6841: ovs-ofctl add-flows br0 flows2.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:6841"
( $at_check_trace; ovs-ofctl add-flows br0 flows2.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6841"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6843: ovs-appctl ofproto/trace ovs-dummy 'in_port(3),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.10.10.2,dst=10.10.10.1,proto=1,tos=1,ttl=128,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:6843"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(3),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.10.10.2,dst=10.10.10.1,proto=1,tos=1,ttl=128,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6843"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6846: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:6846"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: set(tunnel(tun_id=0x5,src=2.2.2.2,dst=1.1.1.1,tos=0x1,ttl=64,flags(df|key))),userspace(pid=0,flow_sample(probability=65535,collector_set_id=1,obs_domain_id=0,obs_point_id=0,output_port=1),tunnel_out_port=1),1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6846"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6851: ovs-ofctl del-flows br0 in_port=3"
at_fn_check_prepare_trace "ofproto-dpif.at:6851"
( $at_check_trace; ovs-ofctl del-flows br0 in_port=3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6851"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6852: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:6852"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6852"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows3.txt <<'_ATEOF'
in_port=3, actions=sample(probability=65535,collector_set_id=1,sampling_port=1),output:1,sample(probability=65535,collector_set_id=1,sampling_port=2),output:2
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6859: ovs-ofctl add-flows br0 flows3.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:6859"
( $at_check_trace; ovs-ofctl add-flows br0 flows3.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6859"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6861: ovs-appctl ofproto/trace ovs-dummy 'in_port(3),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.10.10.2,dst=10.10.10.1,proto=1,tos=1,ttl=128,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:6861"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(3),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.10.10.2,dst=10.10.10.1,proto=1,tos=1,ttl=128,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6861"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6864: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:6864"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: set(tunnel(tun_id=0x5,src=2.2.2.2,dst=1.1.1.1,tos=0x1,ttl=64,flags(df|key))),userspace(pid=0,flow_sample(probability=65535,collector_set_id=1,obs_domain_id=0,obs_point_id=0,output_port=1),tunnel_out_port=1),1,set(tunnel(tun_id=0x6,src=2.2.2.3,dst=1.1.1.2,tos=0x1,ttl=64,tp_dst=7471,flags(df|key))),userspace(pid=0,flow_sample(probability=65535,collector_set_id=1,obs_domain_id=0,obs_point_id=0,output_port=7471),tunnel_out_port=7471),7471
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6864"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6869: ovs-ofctl del-flows br0 in_port=3"
at_fn_check_prepare_trace "ofproto-dpif.at:6869"
( $at_check_trace; ovs-ofctl del-flows br0 in_port=3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6869"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6870: ovs-vsctl destroy Flow_Sample_Collector_Set 1"
at_fn_check_prepare_trace "ofproto-dpif.at:6870"
( $at_check_trace; ovs-vsctl destroy Flow_Sample_Collector_Set 1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6870"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6872: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:6872"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6872"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6872: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:6872"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6872"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6872: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:6872"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6872"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6872: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6872: wait failed" >&5

    $as_echo "ofproto-dpif.at:6872" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6872"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6872: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:6872"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6872"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6872: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:6872"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6872"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6872: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6872: wait failed" >&5

    $as_echo "ofproto-dpif.at:6872" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6872"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1154
#AT_START_1155
at_fn_group_banner 1155 'ofproto-dpif.at:6875' \
  "ofproto-dpif - clone action" "                    " 55
at_xfail=no
(
  $as_echo "1155. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6876: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:6876"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6876"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6876: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:6876"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6876"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6876: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6876"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6876"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6876: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:6876"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6876"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6876: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:6876"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6876"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6876: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6876"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6876"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6876: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:6876"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6876"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3 4

cat >flows.txt <<'_ATEOF'
in_port=1, ip, actions=clone(set_field:192.168.3.3->ip_src),clone(set_field:192.168.4.4->ip_dst,output:2),clone(mod_dl_src:80:81:81:81:81:81,set_field:192.168.5.5->ip_dst,output:3),output:4
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6883: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:6883"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6883"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6885: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.10.10.2,dst=10.10.10.1,proto=1,tos=1,ttl=128,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:6885"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.10.10.2,dst=10.10.10.1,proto=1,tos=1,ttl=128,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6885"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6887: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:6887"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: set(ipv4(src=10.10.10.2,dst=192.168.4.4)),2,set(eth(src=80:81:81:81:81:81)),set(ipv4(src=10.10.10.2,dst=192.168.5.5)),3,set(eth(src=50:54:00:00:00:09)),set(ipv4(src=10.10.10.2,dst=10.10.10.1)),4
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6887"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6892: ovs-appctl dpif/set-dp-features br0 clone false"
at_fn_check_prepare_trace "ofproto-dpif.at:6892"
( $at_check_trace; ovs-appctl dpif/set-dp-features br0 clone false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6892"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6894: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.10.10.2,dst=10.10.10.1,proto=1,tos=1,ttl=128,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:6894"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.10.10.2,dst=10.10.10.1,proto=1,tos=1,ttl=128,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6894"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6896: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:6896"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: set(ipv4(src=10.10.10.2,dst=192.168.4.4)),2,set(eth(src=80:81:81:81:81:81)),set(ipv4(src=10.10.10.2,dst=192.168.5.5)),3,set(eth(src=50:54:00:00:00:09)),set(ipv4(src=10.10.10.2,dst=10.10.10.1)),4
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6896"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6900: ovs-appctl dpif/set-dp-features br0 sample_nesting 2"
at_fn_check_prepare_trace "ofproto-dpif.at:6900"
( $at_check_trace; ovs-appctl dpif/set-dp-features br0 sample_nesting 2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6900"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6901: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.10.10.2,dst=10.10.10.1,proto=1,tos=1,ttl=128,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:6901"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.10.10.2,dst=10.10.10.1,proto=1,tos=1,ttl=128,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6901"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6903: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:6903"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: set(ipv4(src=10.10.10.2,dst=192.168.4.4)),2,set(eth(src=80:81:81:81:81:81)),set(ipv4(src=10.10.10.2,dst=192.168.5.5)),3,set(eth(src=50:54:00:00:00:09)),set(ipv4(src=10.10.10.2,dst=10.10.10.1)),4
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6903"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6911: ovs-appctl dpif/set-dp-features br0 clone true"
at_fn_check_prepare_trace "ofproto-dpif.at:6911"
( $at_check_trace; ovs-appctl dpif/set-dp-features br0 clone true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6911"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6912: ovs-appctl dpif/set-dp-features br0 sample_nesting 10"
at_fn_check_prepare_trace "ofproto-dpif.at:6912"
( $at_check_trace; ovs-appctl dpif/set-dp-features br0 sample_nesting 10
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6912"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
in_port=1, ip, actions=clone(set_field:192.168.3.3->ip_src),clone(set_field:192.168.4.4->ip_dst,output:2),clone(ct(commit),output:3),output:4
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6917: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:6917"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6917"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6919: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.10.10.2,dst=10.10.10.1,proto=1,tos=1,ttl=128,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:6919"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.10.10.2,dst=10.10.10.1,proto=1,tos=1,ttl=128,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6919"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6921: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:6921"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: set(ipv4(src=10.10.10.2,dst=192.168.4.4)),2,set(ipv4(src=10.10.10.2,dst=10.10.10.1)),clone(ct(commit),3),4
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6921"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6925: ovs-appctl dpif/set-dp-features br0 clone false"
at_fn_check_prepare_trace "ofproto-dpif.at:6925"
( $at_check_trace; ovs-appctl dpif/set-dp-features br0 clone false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6925"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6927: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.10.10.2,dst=10.10.10.1,proto=1,tos=1,ttl=128,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:6927"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.10.10.2,dst=10.10.10.1,proto=1,tos=1,ttl=128,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6927"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6929: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:6929"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: set(ipv4(src=10.10.10.2,dst=192.168.4.4)),2,set(ipv4(src=10.10.10.2,dst=10.10.10.1)),sample(sample=100.0%,actions(ct(commit),3)),4
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6929"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6933: ovs-appctl dpif/set-dp-features br0 sample_nesting 2"
at_fn_check_prepare_trace "ofproto-dpif.at:6933"
( $at_check_trace; ovs-appctl dpif/set-dp-features br0 sample_nesting 2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6933"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6934: ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.10.10.2,dst=10.10.10.1,proto=1,tos=1,ttl=128,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:6934"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.10.10.2,dst=10.10.10.1,proto=1,tos=1,ttl=128,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6934"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6936: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:6936"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: set(ipv4(src=10.10.10.2,dst=192.168.4.4)),2,set(ipv4(src=10.10.10.2,dst=10.10.10.1)),4
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6936"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6939: grep \"Failed to compose clone action\" stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:6939"
( $at_check_trace; grep "Failed to compose clone action" stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6939"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6941: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:6941"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6941"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6941: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:6941"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6941"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6941: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:6941"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6941"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6941: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6941: wait failed" >&5

    $as_echo "ofproto-dpif.at:6941" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6941"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6941: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:6941"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6941"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6941: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:6941"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6941"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6941: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6941: wait failed" >&5

    $as_echo "ofproto-dpif.at:6941" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6941"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1155
#AT_START_1156
at_fn_group_banner 1156 'ofproto-dpif.at:6945' \
  "ofproto-dpif - Flow IPFIX statistics check" "     " 55
at_xfail=no
(
  $as_echo "1156. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6946: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:6946"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6946"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6946: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:6946"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6946"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6946: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6946"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6946"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6946: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:6946"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6946"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6946: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:6946"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6946"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6946: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6946"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6946"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6946: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:6946"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6946"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6950: ovs-ofctl dump-ipfix-flow br0"
at_fn_check_prepare_trace "ofproto-dpif.at:6950"
( $at_check_trace; ovs-ofctl dump-ipfix-flow br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (xid=0x2): NXST_NOT_CONFIGURED
NXST_IPFIX_FLOW request (xid=0x2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6950"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6955: ovs-vsctl -- --id=@br0 get Bridge br0 \\
                    -- --id=@ipfix create IPFIX targets=\\\"127.0.0.1:4739\\\" \\
                    -- --id=@cs create Flow_Sample_Collector_Set id=1 bridge=@br0 ipfix=@ipfix"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6955"
( $at_check_trace; ovs-vsctl -- --id=@br0 get Bridge br0 \
                    -- --id=@ipfix create IPFIX targets=\"127.0.0.1:4739\" \
                    -- --id=@cs create Flow_Sample_Collector_Set id=1 bridge=@br0 ipfix=@ipfix
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6955"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
in_port=1, actions=sample(probability=65535,collector_set_id=1),output:2
_ATEOF


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6964: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:6964"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6964"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


for i in `seq 1 20`; do
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6968: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800)'"
at_fn_check_prepare_trace "ofproto-dpif.at:6968"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6968"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

done

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6972: ovs-ofctl dump-ipfix-flow br0 | sed 's/tx pkts=[0-9]*/tx pkts=24/' | sed 's/tx errs=[0-9]*/tx errs=0/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:6972"
( $at_check_trace; ovs-ofctl dump-ipfix-flow br0 | sed 's/tx pkts=[0-9]*/tx pkts=24/' | sed 's/tx errs=[0-9]*/tx errs=0/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_IPFIX_FLOW reply (xid=0x2): 1 ids
  id   1: flows=20, current flows=0, sampled pkts=20, ipv4 ok=0, ipv6 ok=0, tx pkts=24
          pkts errs=20, ipv4 errs=20, ipv6 errs=0, tx errs=0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6972"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6979: ovs-ofctl del-flows br0 in_port=1"
at_fn_check_prepare_trace "ofproto-dpif.at:6979"
( $at_check_trace; ovs-ofctl del-flows br0 in_port=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6979"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6980: ovs-vsctl destroy Flow_Sample_Collector_Set 1"
at_fn_check_prepare_trace "ofproto-dpif.at:6980"
( $at_check_trace; ovs-vsctl destroy Flow_Sample_Collector_Set 1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6980"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6981: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:6981"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6981"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


for i in `seq 1 3`; do
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6985: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800)'"
at_fn_check_prepare_trace "ofproto-dpif.at:6985"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6985"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

done
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6987: ovs-ofctl dump-ipfix-flow br0"
at_fn_check_prepare_trace "ofproto-dpif.at:6987"
( $at_check_trace; ovs-ofctl dump-ipfix-flow br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_ERROR (xid=0x2): NXST_NOT_CONFIGURED
NXST_IPFIX_FLOW request (xid=0x2):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6987"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6992: check_logs \"/sending to collector failed/d\""
at_fn_check_prepare_trace "ofproto-dpif.at:6992"
( $at_check_trace; check_logs "/sending to collector failed/d"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6992"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6992: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:6992"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6992"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6992: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:6992"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6992"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6992: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6992: wait failed" >&5

    $as_echo "ofproto-dpif.at:6992" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6992"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6992: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:6992"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6992"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6992: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:6992"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6992"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:6992: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:6992: wait failed" >&5

    $as_echo "ofproto-dpif.at:6992" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:6992"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1156
#AT_START_1157
at_fn_group_banner 1157 'ofproto-dpif.at:6995' \
  "ofproto-dpif - flow stats" "                      " 55
at_xfail=no
(
  $as_echo "1157. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6996: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:6996"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6996"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6996: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:6996"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6996"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6996: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6996"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6996"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6996: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:6996"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6996"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6996: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:6996"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6996"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6996: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:6996"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6996"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6996: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:6996"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6996"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6997: ovs-ofctl add-flow br0 \"ip,actions=NORMAL\""
at_fn_check_prepare_trace "ofproto-dpif.at:6997"
( $at_check_trace; ovs-ofctl add-flow br0 "ip,actions=NORMAL"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6997"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:6998: ovs-ofctl add-flow br0 \"icmp,actions=NORMAL\""
at_fn_check_prepare_trace "ofproto-dpif.at:6998"
( $at_check_trace; ovs-ofctl add-flow br0 "icmp,actions=NORMAL"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:6998"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/stop

for i in `seq 1 10`; do
    ovs-appctl netdev-dummy/receive br0 'in_port(0),eth(src=50:54:00:00:00:07,dst=50:54:00:00:00:05),eth_type(0x0800),ipv4(src=192.168.0.2,dst=192.168.0.1,proto=6,tos=0,ttl=64,frag=no)'
done

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7006: ovs-appctl time/warp 1000"
at_fn_check_prepare_trace "ofproto-dpif.at:7006"
( $at_check_trace; ovs-appctl time/warp 1000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7006"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7007: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:7007"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7007"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7008: ovs-ofctl dump-flows br0"
at_fn_check_prepare_trace "ofproto-dpif.at:7008"
( $at_check_trace; ovs-ofctl dump-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7008"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7009: strip_xids < stdout | sed -n 's/duration=[0-9]*\\.[0-9]*s/duration=0.0s/p' | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7009"
( $at_check_trace; strip_xids < stdout | sed -n 's/duration=[0-9]*\.[0-9]*s/duration=0.0s/p' | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x0, duration=0.0s, table=0, n_packets=0, n_bytes=0, idle_age=1, icmp actions=NORMAL
 cookie=0x0, duration=0.0s, table=0, n_packets=10, n_bytes=540, idle_age=1, ip actions=NORMAL
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7009"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7013: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:7013"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7013"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7013: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:7013"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7013"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7013: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:7013"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7013"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7013: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7013: wait failed" >&5

    $as_echo "ofproto-dpif.at:7013" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7013"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7013: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:7013"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7013"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7013: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:7013"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7013"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7013: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7013: wait failed" >&5

    $as_echo "ofproto-dpif.at:7013" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7013"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1157
#AT_START_1158
at_fn_group_banner 1158 'ofproto-dpif.at:7016' \
  "ofproto-dpif - flow stats reset_counts" "         " 55
at_xfail=no
(
  $as_echo "1158. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7017: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:7017"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7017"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7017: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:7017"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7017"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7017: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7017"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7017"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7017: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:7017"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7017"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7017: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:7017"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7017"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7017: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7017"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7017"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7017: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:7017"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7017"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


flow="ip,actions=NORMAL"

ovs-appctl time/stop

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7022: ovs-ofctl add-flow br0 \$flow"
at_fn_check_prepare_dynamic "ovs-ofctl add-flow br0 $flow" "ofproto-dpif.at:7022"
( $at_check_trace; ovs-ofctl add-flow br0 $flow
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7022"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


warp_and_dump_NXM () {
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7025: ovs-appctl time/warp 1000"
at_fn_check_prepare_trace "ofproto-dpif.at:7025"
( $at_check_trace; ovs-appctl time/warp 1000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7025"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7026: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:7026"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7026"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7028: ovs-ofctl dump-flows br0"
at_fn_check_prepare_trace "ofproto-dpif.at:7028"
( $at_check_trace; ovs-ofctl dump-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7028"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    if [ $5 -gt 0 ]; then
        expected=" cookie=0x0, duration=$1s, table=0, n_packets=$2, n_bytes=$3, idle_age=$4, hard_age=$5, ip actions=NORMAL"
    else
        expected=" cookie=0x0, duration=$1s, table=0, n_packets=$2, n_bytes=$3, idle_age=$4, ip actions=NORMAL"
    fi
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7034: strip_xids < stdout | sed -n 's/duration=\\([0-9]*\\)\\.*[0-9]*s/duration=\\1s/p' | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7034"
( $at_check_trace; strip_xids < stdout | sed -n 's/duration=\([0-9]*\)\.*[0-9]*s/duration=\1s/p' | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "$expected
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7034"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

}

warp_and_dump_OF () {
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7040: ovs-appctl time/warp 1000"
at_fn_check_prepare_trace "ofproto-dpif.at:7040"
( $at_check_trace; ovs-appctl time/warp 1000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7040"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7041: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:7041"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7041"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7043: ovs-ofctl -O OpenFlow\$1 dump-flows br0"
at_fn_check_prepare_dynamic "ovs-ofctl -O OpenFlow$1 dump-flows br0" "ofproto-dpif.at:7043"
( $at_check_trace; ovs-ofctl -O OpenFlow$1 dump-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7043"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    if [ $1 -lt 13 -o "$5X" = "X" ]; then
        expected=" cookie=0x0, duration=$2s, table=0, n_packets=$3, n_bytes=$4, ip actions=NORMAL"
    else
        expected=" cookie=0x0, duration=$2s, table=0, n_packets=$3, n_bytes=$4, $5 ip actions=NORMAL"
    fi
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7049: strip_xids < stdout | sed -n 's/duration=\\([0-9]*\\)\\.*[0-9]*s/duration=\\1s/p' | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7049"
( $at_check_trace; strip_xids < stdout | sed -n 's/duration=\([0-9]*\)\.*[0-9]*s/duration=\1s/p' | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "$expected
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7049"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

}

send_packet () {
    ovs-appctl netdev-dummy/receive br0 'in_port(0),eth(src=50:54:00:00:00:07,dst=50:54:00:00:00:05),eth_type(0x0800),ipv4(src=192.168.0.2,dst=192.168.0.1,proto=6,tos=0,ttl=64,frag=no)'
}

# OpenFlow 1.0, implicit reset_counts
send_packet
warp_and_dump_NXM   1 1 54 1
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7061: ovs-ofctl -O OpenFlow10 add-flow br0 \$flow"
at_fn_check_prepare_dynamic "ovs-ofctl -O OpenFlow10 add-flow br0 $flow" "ofproto-dpif.at:7061"
( $at_check_trace; ovs-ofctl -O OpenFlow10 add-flow br0 $flow
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7061"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# add-flow resets duration and counts,
# but idle age is inherited from the old flow
warp_and_dump_NXM   1 0 0  2

send_packet
warp_and_dump_NXM   2 1 54 1
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7068: ovs-ofctl -O OpenFlow10 mod-flows br0 \$flow"
at_fn_check_prepare_dynamic "ovs-ofctl -O OpenFlow10 mod-flows br0 $flow" "ofproto-dpif.at:7068"
( $at_check_trace; ovs-ofctl -O OpenFlow10 mod-flows br0 $flow
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7068"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# mod-flows resets hard_age, but not counts
# but duration and idle_age is inherited from the old flow
warp_and_dump_NXM   3 1 54  2 1

# OpenFlow 1.1, implicit reset_counts
send_packet
warp_and_dump_OF 11 4 2 108
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7076: ovs-ofctl -O OpenFlow11 add-flow br0 \$flow"
at_fn_check_prepare_dynamic "ovs-ofctl -O OpenFlow11 add-flow br0 $flow" "ofproto-dpif.at:7076"
( $at_check_trace; ovs-ofctl -O OpenFlow11 add-flow br0 $flow
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7076"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# add-flow resets duration and counts,
# but idle age is inherited from the old flow
warp_and_dump_NXM   1 0 0  2
warp_and_dump_OF 11 2 0 0

send_packet
warp_and_dump_OF 11 3 1 54
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7084: ovs-ofctl -O OpenFlow11 mod-flows br0 \$flow"
at_fn_check_prepare_dynamic "ovs-ofctl -O OpenFlow11 mod-flows br0 $flow" "ofproto-dpif.at:7084"
( $at_check_trace; ovs-ofctl -O OpenFlow11 mod-flows br0 $flow
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7084"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# mod-flows resets hard_age, but not counts
# but duration and idle_age is inherited from the old flow
warp_and_dump_NXM   4 1 54  2 1
warp_and_dump_OF 11 5 1 54

# OpenFlow 1.2, explicit reset_counts
send_packet
warp_and_dump_OF 12 6 2 108
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7093: ovs-ofctl -O OpenFlow12 add-flow br0 \$flow"
at_fn_check_prepare_dynamic "ovs-ofctl -O OpenFlow12 add-flow br0 $flow" "ofproto-dpif.at:7093"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 $flow
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7093"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# add-flow without flags resets duration, but not counts,
# idle age is inherited from the old flow
warp_and_dump_NXM   1 2 108  2
warp_and_dump_OF 12 2 2 108

send_packet
warp_and_dump_OF 12 3 3 162
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7101: ovs-ofctl -O OpenFlow12 mod-flows br0 \$flow"
at_fn_check_prepare_dynamic "ovs-ofctl -O OpenFlow12 mod-flows br0 $flow" "ofproto-dpif.at:7101"
( $at_check_trace; ovs-ofctl -O OpenFlow12 mod-flows br0 $flow
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7101"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# mod-flows without flags does not reset duration nor counts,
# idle age is inherited from the old flow
warp_and_dump_NXM   4 3 162  2 1
warp_and_dump_OF 12 5 3 162

send_packet
warp_and_dump_OF 12 6 4 216
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7109: ovs-ofctl -O OpenFlow12 add-flow br0 reset_counts,\$flow"
at_fn_check_prepare_dynamic "ovs-ofctl -O OpenFlow12 add-flow br0 reset_counts,$flow" "ofproto-dpif.at:7109"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flow br0 reset_counts,$flow
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7109"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# add-flow with reset_counts resets both duration and counts,
# idle age is inherited from the old flow
warp_and_dump_NXM   1 0 0  2
warp_and_dump_OF 12 2 0 0

send_packet
warp_and_dump_OF 12 3 1 54
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7117: ovs-ofctl -O OpenFlow12 mod-flows br0 reset_counts,\$flow"
at_fn_check_prepare_dynamic "ovs-ofctl -O OpenFlow12 mod-flows br0 reset_counts,$flow" "ofproto-dpif.at:7117"
( $at_check_trace; ovs-ofctl -O OpenFlow12 mod-flows br0 reset_counts,$flow
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7117"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# mod-flows with reset_counts resets counts, but not duration,
# idle age is inherited from the old flow
warp_and_dump_NXM   4 0 0  2 1
warp_and_dump_OF 12 5 0 0

# OpenFlow > 1.3, explicit reset_counts
flow_mods_reset_counts () {
    # Reset to a known state
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7126: ovs-ofctl add-flow br0 \$flow"
at_fn_check_prepare_dynamic "ovs-ofctl add-flow br0 $flow" "ofproto-dpif.at:7126"
( $at_check_trace; ovs-ofctl add-flow br0 $flow
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7126"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


    send_packet
    warp_and_dump_OF $1 1 1 54 reset_counts
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7130: ovs-ofctl -O OpenFlow\$1 add-flow br0 \$flow"
at_fn_check_prepare_dynamic "ovs-ofctl -O OpenFlow$1 add-flow br0 $flow" "ofproto-dpif.at:7130"
( $at_check_trace; ovs-ofctl -O OpenFlow$1 add-flow br0 $flow
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7130"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    # add-flow without flags resets duration, but not counts,
    # idle age is inherited from the old flow
    warp_and_dump_NXM   1 1 54  2
    warp_and_dump_OF $1 2 1 54

    send_packet
    warp_and_dump_OF $1 3 2 108
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7138: ovs-ofctl -O OpenFlow\$1 mod-flows br0 \$flow"
at_fn_check_prepare_dynamic "ovs-ofctl -O OpenFlow$1 mod-flows br0 $flow" "ofproto-dpif.at:7138"
( $at_check_trace; ovs-ofctl -O OpenFlow$1 mod-flows br0 $flow
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7138"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    # mod-flows without flags does not reset duration nor counts,
    # idle age is inherited from the old flow
    warp_and_dump_NXM   4 2 108  2 1
    warp_and_dump_OF $1 5 2 108

    send_packet
    warp_and_dump_OF $1 6 3 162
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7146: ovs-ofctl -O OpenFlow\$1 add-flow br0 reset_counts,\$flow"
at_fn_check_prepare_dynamic "ovs-ofctl -O OpenFlow$1 add-flow br0 reset_counts,$flow" "ofproto-dpif.at:7146"
( $at_check_trace; ovs-ofctl -O OpenFlow$1 add-flow br0 reset_counts,$flow
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7146"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    # add-flow with reset_counts resets both duration and counts,
    # idle age is inherited from the old flow
    warp_and_dump_NXM   1 0 0  2
    warp_and_dump_OF $1 2 0 0 reset_counts

    send_packet
    warp_and_dump_OF $1 3 1 54 reset_counts
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7154: ovs-ofctl -O OpenFlow\$1 mod-flows br0 reset_counts,\$flow"
at_fn_check_prepare_dynamic "ovs-ofctl -O OpenFlow$1 mod-flows br0 reset_counts,$flow" "ofproto-dpif.at:7154"
( $at_check_trace; ovs-ofctl -O OpenFlow$1 mod-flows br0 reset_counts,$flow
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7154"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    # mod-flows with reset_counts resets counts, but not duration,
    # idle age is inherited from the old flow
    warp_and_dump_NXM   4 0 0  2 1
    warp_and_dump_OF $1 5 0 0 reset_counts

    # Modify flow having reset_counts flag without reset_counts
    send_packet
    warp_and_dump_OF $1 6 1 54 reset_counts
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7163: ovs-ofctl -O OpenFlow\$1 mod-flows br0 \$flow"
at_fn_check_prepare_dynamic "ovs-ofctl -O OpenFlow$1 mod-flows br0 $flow" "ofproto-dpif.at:7163"
( $at_check_trace; ovs-ofctl -O OpenFlow$1 mod-flows br0 $flow
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7163"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    warp_and_dump_NXM   7 1 54  2 1
    warp_and_dump_OF $1 8 1 54 reset_counts

    # Add flow having reset_counts flag without reset_counts
    send_packet
    warp_and_dump_OF $1 9 2 108 reset_counts
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7170: ovs-ofctl -O OpenFlow\$1 add-flow br0 \$flow"
at_fn_check_prepare_dynamic "ovs-ofctl -O OpenFlow$1 add-flow br0 $flow" "ofproto-dpif.at:7170"
( $at_check_trace; ovs-ofctl -O OpenFlow$1 add-flow br0 $flow
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7170"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    warp_and_dump_NXM   1 2 108  2
    warp_and_dump_OF $1 2 2 108

    # Modify flow w/o reset_counts flag with a flow_mod having reset_counts
    send_packet
    warp_and_dump_OF $1 3 3 162
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7177: ovs-ofctl -O OpenFlow\$1 mod-flows br0 reset_counts,\$flow"
at_fn_check_prepare_dynamic "ovs-ofctl -O OpenFlow$1 mod-flows br0 reset_counts,$flow" "ofproto-dpif.at:7177"
( $at_check_trace; ovs-ofctl -O OpenFlow$1 mod-flows br0 reset_counts,$flow
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7177"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    warp_and_dump_NXM   4 0 0  2 1
    warp_and_dump_OF $1 5 0 0
}

# OpenFlow versions >= 1.3 should behave the same way
flow_mods_reset_counts 13
flow_mods_reset_counts 14
flow_mods_reset_counts 15

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7187: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:7187"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7187"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7187: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:7187"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7187"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7187: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:7187"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7187"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7187: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7187: wait failed" >&5

    $as_echo "ofproto-dpif.at:7187" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7187"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7187: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:7187"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7187"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7187: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:7187"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7187"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7187: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7187: wait failed" >&5

    $as_echo "ofproto-dpif.at:7187" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7187"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1158
#AT_START_1159
at_fn_group_banner 1159 'ofproto-dpif.at:7190' \
  "ofproto-dpif - flow stats, set-n-threads" "       " 55
at_xfail=no
(
  $as_echo "1159. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7191: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:7191"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7191"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7191: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:7191"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7191"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7191: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7191"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7191"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7191: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:7191"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7191: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:7191"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7191: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7191"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7191: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:7191"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7192: ovs-ofctl add-flow br0 \"ip,actions=NORMAL\""
at_fn_check_prepare_trace "ofproto-dpif.at:7192"
( $at_check_trace; ovs-ofctl add-flow br0 "ip,actions=NORMAL"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7192"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7193: ovs-ofctl add-flow br0 \"icmp,actions=NORMAL\""
at_fn_check_prepare_trace "ofproto-dpif.at:7193"
( $at_check_trace; ovs-ofctl add-flow br0 "icmp,actions=NORMAL"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7193"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/stop

for i in `seq 1 10`; do
    ovs-appctl netdev-dummy/receive br0 'in_port(0),eth(src=50:54:00:00:00:07,dst=50:54:00:00:00:05),eth_type(0x0800),ipv4(src=192.168.0.2,dst=192.168.0.1,proto=6,tos=0,ttl=64,frag=no)'
done

ovs-appctl time/warp 100
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7202: ovs-vsctl set Open_vSwitch . other-config:n-revalidator-threads=2"
at_fn_check_prepare_trace "ofproto-dpif.at:7202"
( $at_check_trace; ovs-vsctl set Open_vSwitch . other-config:n-revalidator-threads=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7202"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 1000

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7205: ovs-ofctl dump-flows br0"
at_fn_check_prepare_trace "ofproto-dpif.at:7205"
( $at_check_trace; ovs-ofctl dump-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7205"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7206: strip_xids < stdout | sed -n 's/duration=[0-9]*\\.[0-9]*s/duration=0.0s/p' | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7206"
( $at_check_trace; strip_xids < stdout | sed -n 's/duration=[0-9]*\.[0-9]*s/duration=0.0s/p' | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " cookie=0x0, duration=0.0s, table=0, n_packets=0, n_bytes=0, idle_age=1, icmp actions=NORMAL
 cookie=0x0, duration=0.0s, table=0, n_packets=10, n_bytes=540, idle_age=1, ip actions=NORMAL
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7206"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7210: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:7210"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7210"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7210: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:7210"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7210"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7210: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:7210"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7210"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7210: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7210: wait failed" >&5

    $as_echo "ofproto-dpif.at:7210" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7210"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7210: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:7210"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7210"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7210: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:7210"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7210"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7210: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7210: wait failed" >&5

    $as_echo "ofproto-dpif.at:7210" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7210"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1159
#AT_START_1160
at_fn_group_banner 1160 'ofproto-dpif.at:7213' \
  "ofproto-dpif - idle_age and hard_age increase over time" "" 55
at_xfail=no
(
  $as_echo "1160. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7214: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:7214"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7214"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7214: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:7214"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7214"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7214: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7214"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7214"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7214: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:7214"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7214"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7214: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:7214"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7214"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7214: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7214"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7214"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7214: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:7214"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7214"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# get_ages DURATION HARD IDLE
#
# Fetch the flow duration, hard age, and idle age into the variables
# whose names are given as arguments.  Rounds DURATION down to the
# nearest integer.  If hard_age doesn't appear in the output, sets
# HARD to "none".  If idle_age doesn't appear in the output, sets IDLE
# to 0.
get_ages () {
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7224: ovs-ofctl dump-flows br0"
at_fn_check_prepare_trace "ofproto-dpif.at:7224"
( $at_check_trace; ovs-ofctl dump-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7224"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


    duration=`sed -n 's/.*duration=\([0-9]*\)\(\.[0-9]*\)\{0,1\}s.*/\1/p' stdout`
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7227: expr X\"\$duration\" : 'X[0-9][0-9]*\$'"
at_fn_check_prepare_dynamic "expr X\"$duration\" : 'X[0-9][0-9]*$'" "ofproto-dpif.at:7227"
( $at_check_trace; expr X"$duration" : 'X[0-9][0-9]*$'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7227"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    eval $1=\$duration

    hard=`sed -n 's/.*hard_age=\([0-9]*\),.*/\1/p' stdout`
    if test X"$hard" = X; then
        hard=none
    else
        { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7234: expr X\"\$hard\" : 'X[0-9][0-9]*\$'"
at_fn_check_prepare_dynamic "expr X\"$hard\" : 'X[0-9][0-9]*$'" "ofproto-dpif.at:7234"
( $at_check_trace; expr X"$hard" : 'X[0-9][0-9]*$'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7234"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    fi
    eval $2=\$hard

    idle=`sed -n 's/.*idle_age=\([0-9]*\),.*/\1/p' stdout`
    if test X"$idle" = X; then
        idle=0
    else
        { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7242: expr X\"\$idle\" : 'X[0-9][0-9]*\$'"
at_fn_check_prepare_dynamic "expr X\"$idle\" : 'X[0-9][0-9]*$'" "ofproto-dpif.at:7242"
( $at_check_trace; expr X"$idle" : 'X[0-9][0-9]*$'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7242"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    fi
    eval $3=\$idle
}

# Add a flow and get its initial hard and idle age.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7248: ovs-ofctl add-flow br0 hard_timeout=199,idle_timeout=188,actions=drop"
at_fn_check_prepare_trace "ofproto-dpif.at:7248"
( $at_check_trace; ovs-ofctl add-flow br0 hard_timeout=199,idle_timeout=188,actions=drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7248"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

get_ages duration1 hard1 idle1

ovs-appctl time/stop
# Warp time forward by 10 seconds, then modify the flow's actions.
ovs-appctl time/warp 10000
get_ages duration2 hard2 idle2
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7255: ovs-ofctl mod-flows br0 actions=flood"
at_fn_check_prepare_trace "ofproto-dpif.at:7255"
( $at_check_trace; ovs-ofctl mod-flows br0 actions=flood
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7255"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Warp time forward by 10 seconds.
ovs-appctl time/warp 10000
get_ages duration3 hard3 idle3

# Warp time forward 10 more seconds, then pass some packets through the flow,
# then warp forward a few more times because idle times are only updated
# occasionally.
ovs-appctl time/warp 10000
ovs-appctl netdev-dummy/receive br0 'in_port(0),eth(src=50:54:00:00:00:07,dst=50:54:00:00:00:05),eth_type(0x0800),ipv4(src=192.168.0.2,dst=192.168.0.1,proto=6,tos=0,ttl=64,frag=no),tcp(src=80,dst=1234)'
ovs-appctl time/warp 3000 1000
sleep 1
get_ages duration4 hard4 idle4

printf "duration: %4s => %4s => %4s => %4s\n" $duration1 $duration2 $duration3 $duration4
printf "hard_age: %4s => %4s => %4s => %4s\n" $hard1 $hard2 $hard3 $hard4
printf "idle_age: %4s => %4s => %4s => %4s\n" $idle1 $idle2 $idle3 $idle4

# Duration should increase steadily over time.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7275: test \$duration1 -lt \$duration2"
at_fn_check_prepare_dynamic "test $duration1 -lt $duration2" "ofproto-dpif.at:7275"
( $at_check_trace; test $duration1 -lt $duration2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7275"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7276: test \$duration2 -lt \$duration3"
at_fn_check_prepare_dynamic "test $duration2 -lt $duration3" "ofproto-dpif.at:7276"
( $at_check_trace; test $duration2 -lt $duration3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7276"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7277: test \$duration3 -lt \$duration4"
at_fn_check_prepare_dynamic "test $duration3 -lt $duration4" "ofproto-dpif.at:7277"
( $at_check_trace; test $duration3 -lt $duration4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7277"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Hard age should be "none" initially because it's the same as flow_duration,
# then it should increase.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7281: test \$hard1 = none"
at_fn_check_prepare_dynamic "test $hard1 = none" "ofproto-dpif.at:7281"
( $at_check_trace; test $hard1 = none
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7281"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7282: test \$hard2 = none"
at_fn_check_prepare_dynamic "test $hard2 = none" "ofproto-dpif.at:7282"
( $at_check_trace; test $hard2 = none
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7282"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7283: test \$hard3 != none"
at_fn_check_prepare_dynamic "test $hard3 != none" "ofproto-dpif.at:7283"
( $at_check_trace; test $hard3 != none
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7283"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7284: test \$hard4 != none"
at_fn_check_prepare_dynamic "test $hard4 != none" "ofproto-dpif.at:7284"
( $at_check_trace; test $hard4 != none
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7284"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7285: test \$hard3 -lt \$hard4"
at_fn_check_prepare_dynamic "test $hard3 -lt $hard4" "ofproto-dpif.at:7285"
( $at_check_trace; test $hard3 -lt $hard4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7285"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Idle age should increase from 1 to 2 to 3, then decrease.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7288: test \$idle1 -lt \$idle2"
at_fn_check_prepare_dynamic "test $idle1 -lt $idle2" "ofproto-dpif.at:7288"
( $at_check_trace; test $idle1 -lt $idle2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7288"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7289: test \$idle2 -lt \$idle3"
at_fn_check_prepare_dynamic "test $idle2 -lt $idle3" "ofproto-dpif.at:7289"
( $at_check_trace; test $idle2 -lt $idle3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7289"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7290: test \$idle3 -gt \$idle4"
at_fn_check_prepare_dynamic "test $idle3 -gt $idle4" "ofproto-dpif.at:7290"
( $at_check_trace; test $idle3 -gt $idle4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7290"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Check some invariant relationships.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7293: test \$duration1 = \$idle1"
at_fn_check_prepare_dynamic "test $duration1 = $idle1" "ofproto-dpif.at:7293"
( $at_check_trace; test $duration1 = $idle1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7293"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7294: test \$duration2 = \$idle2"
at_fn_check_prepare_dynamic "test $duration2 = $idle2" "ofproto-dpif.at:7294"
( $at_check_trace; test $duration2 = $idle2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7294"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7295: test \$duration3 = \$idle3"
at_fn_check_prepare_dynamic "test $duration3 = $idle3" "ofproto-dpif.at:7295"
( $at_check_trace; test $duration3 = $idle3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7295"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7296: test \$idle3 -gt \$hard3"
at_fn_check_prepare_dynamic "test $idle3 -gt $hard3" "ofproto-dpif.at:7296"
( $at_check_trace; test $idle3 -gt $hard3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7296"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7297: test \$idle4 -lt \$hard4"
at_fn_check_prepare_dynamic "test $idle4 -lt $hard4" "ofproto-dpif.at:7297"
( $at_check_trace; test $idle4 -lt $hard4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7297"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7298: test \$hard4 -lt \$duration4"
at_fn_check_prepare_dynamic "test $hard4 -lt $duration4" "ofproto-dpif.at:7298"
( $at_check_trace; test $hard4 -lt $duration4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7298"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7300: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:7300"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7300"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7300: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:7300"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7300"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7300: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:7300"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7300"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7300: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7300: wait failed" >&5

    $as_echo "ofproto-dpif.at:7300" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7300"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7300: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:7300"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7300"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7300: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:7300"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7300"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7300: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7300: wait failed" >&5

    $as_echo "ofproto-dpif.at:7300" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7300"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1160
#AT_START_1161
at_fn_group_banner 1161 'ofproto-dpif.at:7303' \
  "ofproto-dpif - fin_timeout" "                     " 55
at_xfail=no
(
  $as_echo "1161. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7304: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:7304"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7304"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7304: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:7304"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7304"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7304: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7304"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7304"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7304: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:7304"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7304"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7304: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:7304"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7304"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7304: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7304"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7304"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7304: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:7304"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7304"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/stop
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7306: ovs-ofctl add-flow br0 'idle_timeout=60,actions=fin_timeout(idle_timeout=5)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7306"
( $at_check_trace; ovs-ofctl add-flow br0 'idle_timeout=60,actions=fin_timeout(idle_timeout=5)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7306"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7307: ovs-ofctl dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7307"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW reply:
 idle_timeout=60, actions=fin_timeout(idle_timeout=5)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7307"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Check that a TCP SYN packet does not change the timeout.  (Because
# flow stats updates are mainly what implements the fin_timeout
# feature, we warp forward a couple of times to ensure that flow stats
# run before re-checking the flow table.)
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7316: ovs-appctl netdev-dummy/receive br0 0021853763af0026b98cb0f908004500003c2e2440004006465dac11370dac11370b828b0016751e267b00000000a00216d017360000020405b40402080a2d25085f0000000001030307"
at_fn_check_prepare_trace "ofproto-dpif.at:7316"
( $at_check_trace; ovs-appctl netdev-dummy/receive br0 0021853763af0026b98cb0f908004500003c2e2440004006465dac11370dac11370b828b0016751e267b00000000a00216d017360000020405b40402080a2d25085f0000000001030307
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7316"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7317: ovs-appctl time/warp 1000 && ovs-appctl time/warp 1000"
at_fn_check_prepare_trace "ofproto-dpif.at:7317"
( $at_check_trace; ovs-appctl time/warp 1000 && ovs-appctl time/warp 1000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "warped
warped
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7317"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7320: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:7320"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7320"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7321: ovs-ofctl dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7321"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW reply:
 n_packets=1, n_bytes=74, idle_timeout=60, actions=fin_timeout(idle_timeout=5)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7321"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Check that a TCP FIN packet does change the timeout.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7326: ovs-appctl netdev-dummy/receive br0 0021853763af0026b98cb0f90800451000342e3e40004006463bac11370dac11370b828b0016751e319dfc96399b801100717ae800000101080a2d250a9408579588"
at_fn_check_prepare_trace "ofproto-dpif.at:7326"
( $at_check_trace; ovs-appctl netdev-dummy/receive br0 0021853763af0026b98cb0f90800451000342e3e40004006463bac11370dac11370b828b0016751e319dfc96399b801100717ae800000101080a2d250a9408579588
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7326"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7327: ovs-appctl time/warp 1000 && ovs-appctl time/warp 1000"
at_fn_check_prepare_trace "ofproto-dpif.at:7327"
( $at_check_trace; ovs-appctl time/warp 1000 && ovs-appctl time/warp 1000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "warped
warped
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7327"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7330: ovs-ofctl dump-flows br0 | ofctl_strip"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7330"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXST_FLOW reply:
 n_packets=2, n_bytes=140, idle_timeout=5, actions=fin_timeout(idle_timeout=5)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7330"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7334: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:7334"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7334"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7334: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:7334"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7334"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7334: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:7334"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7334"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7334: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7334: wait failed" >&5

    $as_echo "ofproto-dpif.at:7334" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7334"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7334: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:7334"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7334"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7334: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:7334"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7334"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7334: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7334: wait failed" >&5

    $as_echo "ofproto-dpif.at:7334" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7334"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1161
#AT_START_1162
at_fn_group_banner 1162 'ofproto-dpif.at:7337' \
  "ofproto-dpif - ovs-appctl dpif/dump-dps" "        " 55
at_xfail=no
(
  $as_echo "1162. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7338: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:7338"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7338"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7338: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:7338"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7338"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7338: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7338"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7338"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7338: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:7338"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7338"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7338: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:7338"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7338"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7338: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7338"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7338"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7338: add_of_br 0 add-br br1 -- set bridge br1 datapath-type=dummy "
at_fn_check_prepare_trace "ofproto-dpif.at:7338"
( $at_check_trace; add_of_br 0 add-br br1 -- set bridge br1 datapath-type=dummy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7338"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2
add_of_ports br1 3

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7342: ovs-appctl dpif/dump-dps"
at_fn_check_prepare_trace "ofproto-dpif.at:7342"
( $at_check_trace; ovs-appctl dpif/dump-dps
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dummy@br0
dummy@br1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7342"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7346: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:7346"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7346"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7346: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:7346"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7346"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7346: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:7346"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7346"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7346: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7346: wait failed" >&5

    $as_echo "ofproto-dpif.at:7346" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7346"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7346: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:7346"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7346"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7346: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:7346"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7346"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7346: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7346: wait failed" >&5

    $as_echo "ofproto-dpif.at:7346" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7346"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1162
#AT_START_1163
at_fn_group_banner 1163 'ofproto-dpif.at:7349' \
  "ofproto-dpif - ovs-appctl dpif/show" "            " 55
at_xfail=no
(
  $as_echo "1163. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7350: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:7350"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7350"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7350: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:7350"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7350"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7350: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7350"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7350"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7350: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:7350"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7350"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7350: ovs-vswitchd --enable-dummy --disable-system --dummy-numa=\"0,0,0,0,1,1,1,1\" --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:7350"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system --dummy-numa="0,0,0,0,1,1,1,1" --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7350"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7350: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7350"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7350"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7350: add_of_br 0 add-br br1 -- set bridge br1 datapath-type=dummy "
at_fn_check_prepare_trace "ofproto-dpif.at:7350"
( $at_check_trace; add_of_br 0 add-br br1 -- set bridge br1 datapath-type=dummy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7350"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_pmd_of_ports br0 1 2
add_of_ports br1 3

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7355: ovs-appctl dpif/show | sed 's/\\(dummy-pmd: \\).*)/\\1<cleared>)/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7355"
( $at_check_trace; ovs-appctl dpif/show | sed 's/\(dummy-pmd: \).*)/\1<cleared>)/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dummy@ovs-dummy: hit:0 missed:0
	br0:
		br0 65534/100: (dummy-internal)
		p1 1/1: (dummy-pmd: <cleared>)
		p2 2/2: (dummy-pmd: <cleared>)
	br1:
		br1 65534/101: (dummy-internal)
		p3 3/3: (dummy)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7355"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7365: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:7365"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7365"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7365: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:7365"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7365"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7365: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:7365"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7365"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7365: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7365: wait failed" >&5

    $as_echo "ofproto-dpif.at:7365" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7365"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7365: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:7365"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7365"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7365: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:7365"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7365"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7365: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7365: wait failed" >&5

    $as_echo "ofproto-dpif.at:7365" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7365"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1163
#AT_START_1164
at_fn_group_banner 1164 'ofproto-dpif.at:7368' \
  "ofproto-dpif - ovs-appctl dpif/dump-flows" "      " 55
at_xfail=no
(
  $as_echo "1164. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

# bump max-idle to avoid the flows being reclaimed behind us
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7370: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:7370"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7370"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7370: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:7370"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7370"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7370: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7370"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7370"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7370: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:7370"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7370"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7370: ovs-vswitchd --enable-dummy --disable-system --dummy-numa=\"0,0,0,0,1,1,1,1\" --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:7370"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system --dummy-numa="0,0,0,0,1,1,1,1" --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7370"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7370: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7370"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7370"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7370: add_of_br 0 add-br br1 -- \\
                    set bridge br1 datapath-type=dummy fail-mode=secure -- \\
                    set Open_vSwitch . other_config:max-idle=10000 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7370"
( $at_check_trace; add_of_br 0 add-br br1 -- \
                    set bridge br1 datapath-type=dummy fail-mode=secure -- \
                    set Open_vSwitch . other_config:max-idle=10000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7370"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1
add_pmd_of_ports br0 2
add_of_ports br1 3

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7378: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7378"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7378"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7379: ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:07,dst=50:54:00:00:00:05),eth_type(0x0800),ipv4(src=192.168.0.2,dst=192.168.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=0,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7379"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:07,dst=50:54:00:00:00:05),eth_type(0x0800),ipv4(src=192.168.0.2,dst=192.168.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=0,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7379"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7380: ovs-appctl netdev-dummy/receive p3 'in_port(3),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7380"
( $at_check_trace; ovs-appctl netdev-dummy/receive p3 'in_port(3),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7380"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl revalidator/wait
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7382: ovs-appctl dpif/dump-flows br0 | strip_ufid | strip_used | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7382"
( $at_check_trace; ovs-appctl dpif/dump-flows br0 | strip_ufid | strip_used | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), packets:0, bytes:0, used:never, actions:drop
recirc_id(0),in_port(2),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), packets:0, bytes:0, used:never, actions:drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7382"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7387: ovs-appctl dpif/dump-flows br1 | strip_ufid | strip_used | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7387"
( $at_check_trace; ovs-appctl dpif/dump-flows br1 | strip_ufid | strip_used | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(3),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), packets:0, bytes:0, used:never, actions:drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7387"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7391: ovs-appctl dpif/dump-flows -m br0 | strip_ufid | strip_used | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7391"
( $at_check_trace; ovs-appctl dpif/dump-flows -m br0 | strip_ufid | strip_used | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(p1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:05/00:00:00:00:00:00,dst=50:54:00:00:00:07/00:00:00:00:00:00),eth_type(0x0800),ipv4(src=192.168.0.1/0.0.0.0,dst=192.168.0.2/0.0.0.0,proto=1/0,tos=0/0,ttl=64/0,frag=no),icmp(type=8/0,code=0/0), packets:0, bytes:0, used:never, actions:drop
skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(p2),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:07/00:00:00:00:00:00,dst=50:54:00:00:00:05/00:00:00:00:00:00),eth_type(0x0800),ipv4(src=192.168.0.2/0.0.0.0,dst=192.168.0.1/0.0.0.0,proto=1/0,tos=0/0,ttl=64/0,frag=no),icmp(type=0/0,code=0/0), packets:0, bytes:0, used:never, actions:drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7391"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7396: ovs-appctl dpif/dump-flows -m br1 | strip_ufid | strip_used | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7396"
( $at_check_trace; ovs-appctl dpif/dump-flows -m br1 | strip_ufid | strip_used | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(p3),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09/00:00:00:00:00:00,dst=50:54:00:00:00:0a/00:00:00:00:00:00),eth_type(0x0800),ipv4(src=10.0.0.2/0.0.0.0,dst=10.0.0.1/0.0.0.0,proto=1/0,tos=0/0,ttl=64/0,frag=no),icmp(type=8/0,code=0/0), packets:0, bytes:0, used:never, actions:drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7396"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7400: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:7400"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7400"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7400: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:7400"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7400"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7400: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:7400"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7400"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7400: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7400: wait failed" >&5

    $as_echo "ofproto-dpif.at:7400" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7400"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7400: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:7400"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7400"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7400: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:7400"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7400"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7400: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7400: wait failed" >&5

    $as_echo "ofproto-dpif.at:7400" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7400"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1164
#AT_START_1165
at_fn_group_banner 1165 'ofproto-dpif.at:7426' \
  "ofproto-dpif - ovs-appctl dpif/get-flow" "        " 55
at_xfail=no
(
  $as_echo "1165. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


      touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7426: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:7426"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7426"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7426: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:7426"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7426"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7426: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7426"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7426"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7426: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:7426"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7426"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7426: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:7426"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7426"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7426: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7426"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7426"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7426: add_of_br 0 add-br br1 -- \\
                       set bridge br1 datapath-type=dummy fail-mode=secure -- \\
                       set Open_vSwitch . other_config:max-idle=10000 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7426"
( $at_check_trace; add_of_br 0 add-br br1 -- \
                       set bridge br1 datapath-type=dummy fail-mode=secure -- \
                       set Open_vSwitch . other_config:max-idle=10000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7426"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



   func=`printf '%s_' "" | cut -c 4-`
   add_${func}of_ports br0 1 2

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7426: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7426"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7426"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   ovs-appctl revalidator/wait
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7426: ovs-appctl dpif/dump-flows -m br0"
at_fn_check_prepare_trace "ofproto-dpif.at:7426"
( $at_check_trace; ovs-appctl dpif/dump-flows -m br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7426"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   UFID=`sed -n 's/\(ufid:[-0-9a-fA-F]*\).*/\1/p' stdout`
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7426: ovs-appctl dpctl/get-flow \$UFID"
at_fn_check_prepare_dynamic "ovs-appctl dpctl/get-flow $UFID" "ofproto-dpif.at:7426"
( $at_check_trace; ovs-appctl dpctl/get-flow $UFID
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), packets:0, bytes:0, used:never, actions:drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7426"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7426: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:7426"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7426"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7426: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:7426"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7426"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7426: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:7426"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7426"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7426: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7426: wait failed" >&5

    $as_echo "ofproto-dpif.at:7426" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7426"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7426: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:7426"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7426"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7426: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:7426"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7426"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7426: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7426: wait failed" >&5

    $as_echo "ofproto-dpif.at:7426" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7426"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1165
#AT_START_1166
at_fn_group_banner 1166 'ofproto-dpif.at:7427' \
  "ofproto-dpif - ovs-appctl dpif/get-flow - pmd" "  " 55
at_xfail=no
(
  $as_echo "1166. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


      touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7427: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:7427"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7427"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7427: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:7427"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7427"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7427: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7427"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7427"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7427: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:7427"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7427"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7427: ovs-vswitchd --enable-dummy --disable-system --dummy-numa=\"0,0,0,0,1,1,1,1\" --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:7427"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system --dummy-numa="0,0,0,0,1,1,1,1" --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7427"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7427: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7427"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7427"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7427: add_of_br 0 add-br br1 -- \\
                       set bridge br1 datapath-type=dummy fail-mode=secure -- \\
                       set Open_vSwitch . other_config:max-idle=10000 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7427"
( $at_check_trace; add_of_br 0 add-br br1 -- \
                       set bridge br1 datapath-type=dummy fail-mode=secure -- \
                       set Open_vSwitch . other_config:max-idle=10000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7427"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



   func=`printf '%s_' " - pmd" | cut -c 4-`
   add_${func}of_ports br0 1 2

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7427: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7427"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7427"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   ovs-appctl revalidator/wait
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7427: ovs-appctl dpif/dump-flows -m br0"
at_fn_check_prepare_trace "ofproto-dpif.at:7427"
( $at_check_trace; ovs-appctl dpif/dump-flows -m br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7427"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   UFID=`sed -n 's/\(ufid:[-0-9a-fA-F]*\).*/\1/p' stdout`
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7427: ovs-appctl dpctl/get-flow \$UFID"
at_fn_check_prepare_dynamic "ovs-appctl dpctl/get-flow $UFID" "ofproto-dpif.at:7427"
( $at_check_trace; ovs-appctl dpctl/get-flow $UFID
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), packets:0, bytes:0, used:never, actions:drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7427"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7427: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:7427"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7427"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7427: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:7427"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7427"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7427: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:7427"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7427"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7427: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7427: wait failed" >&5

    $as_echo "ofproto-dpif.at:7427" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7427"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7427: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:7427"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7427"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7427: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:7427"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7427"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7427: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7427: wait failed" >&5

    $as_echo "ofproto-dpif.at:7427" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7427"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1166
#AT_START_1167
at_fn_group_banner 1167 'ofproto-dpif.at:7429' \
  "ofproto-dpif - MPLS actions that result in a userspace action" "" 55
at_xfail=no
(
  $as_echo "1167. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7430: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:7430"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7430"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7430: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:7430"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7430"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7430: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7430"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7430"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7430: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:7430"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7430"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7430: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:7430"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7430"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7430: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7430"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7430"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7430: add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy
 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7430"
( $at_check_trace; add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7430"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7433: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:7433"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7433"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

on_exit 'kill `cat ovs-ofctl.pid`'


cat >flows.txt <<'_ATEOF'
dl_src=60:66:66:66:66:00 actions=push_mpls:0x8847,controller
dl_src=60:66:66:66:66:01 actions=pop_mpls:0x8847,controller
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7441: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:7441"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7441"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }



for dl_src in 00 01; do
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7453: ovs-appctl netdev-dummy/receive p1 \"505400000007 6066666666\$dl_src 8847 00014020 00014120 45 00 00 2c 00 00 00 00 40 06 3b 78 c0 a8 00 01 c0 a8 00 02 00 50 00 00 00 00 00 2a 00 00 00 2a 50 00 27 10 77 44 00 00 48 4f 47 45\""
at_fn_check_prepare_dynamic "ovs-appctl netdev-dummy/receive p1 \"505400000007 6066666666$dl_src 8847 00014020 00014120 45 00 00 2c 00 00 00 00 40 06 3b 78 c0 a8 00 01 c0 a8 00 02 00 50 00 00 00 00 00 2a 00 00 00 2a 50 00 27 10 77 44 00 00 48 4f 47 45\"" "ofproto-dpif.at:7453"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 "505400000007 6066666666$dl_src 8847 00014020 00014120 45 00 00 2c 00 00 00 00 40 06 3b 78 c0 a8 00 01 c0 a8 00 02 00 50 00 00 00 00 00 2a 00 00 00 2a 50 00 27 10 77 44 00 00 48 4f 47 45"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7453"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

done
sleep 1  # wait for the datapath flow installed
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7456: strip_ufid < ovs-vswitchd.log | filter_flow_install | strip_used"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7456"
( $at_check_trace; strip_ufid < ovs-vswitchd.log | filter_flow_install | strip_used
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=60:66:66:66:66:00),eth_type(0x8847),mpls(label=20,tc=0,ttl=32,bos=0,label=20,tc=0,ttl=32,bos=1), actions:push_mpls(label=20,tc=0,ttl=32,bos=0,eth_type=0x8847),userspace(pid=0,controller(reason=1,dont_send=0,continuation=0,recirc_id=1,rule_cookie=0,controller_id=0,max_len=65535))
recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=60:66:66:66:66:01),eth_type(0x8847),mpls(label=20/0x0,tc=0/0,ttl=32/0x0,bos=0/1,label=20/0xfffff,tc=0/7,ttl=32/0xff,bos=1/1), actions:pop_mpls(eth_type=0x8847),userspace(pid=0,controller(reason=1,dont_send=0,continuation=0,recirc_id=1,rule_cookie=0,controller_id=0,max_len=65535))
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7456"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7461: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:7461"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7461"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7461: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:7461"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7461"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7461: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:7461"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7461"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7461: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7461: wait failed" >&5

    $as_echo "ofproto-dpif.at:7461" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7461"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7461: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:7461"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7461"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7461: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:7461"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7461"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7461: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7461: wait failed" >&5

    $as_echo "ofproto-dpif.at:7461" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7461"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1167
#AT_START_1168
at_fn_group_banner 1168 'ofproto-dpif.at:7465' \
  "ofproto-dpif - MPLS actions that result in a drop" "" 55
at_xfail=no
(
  $as_echo "1168. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7466: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:7466"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7466"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7466: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:7466"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7466"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7466: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7466"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7466"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7466: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:7466"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7466"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7466: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:7466"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7466"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7466: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7466"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7466"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7466: add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy
 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7466"
( $at_check_trace; add_of_br 0    add-port br0 p1 -- set Interface p1 type=dummy

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7466"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7469: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:7469"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7469"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

on_exit 'kill `cat ovs-ofctl.pid`'


cat >flows.txt <<'_ATEOF'
dl_src=60:66:66:66:66:00 actions=push_mpls:0x8847,controller
dl_src=60:66:66:66:66:01 actions=pop_mpls:0x8847,controller
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7477: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:7477"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7477"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }



for dl_src in 00 01; do
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7492: ovs-appctl netdev-dummy/receive p1 \"505400000007 6066666666\$dl_src 8847 00014020 00014120 45 00 00 2c 00 00 00 00 40 06 3b 78 c0 a8 00 01 c0 a8 00 02 00 50 00 00 00 00 00 2a 00 00 00 2a 50 00 27 10 77 44 00 00 48 4f 47 45\""
at_fn_check_prepare_dynamic "ovs-appctl netdev-dummy/receive p1 \"505400000007 6066666666$dl_src 8847 00014020 00014120 45 00 00 2c 00 00 00 00 40 06 3b 78 c0 a8 00 01 c0 a8 00 02 00 50 00 00 00 00 00 2a 00 00 00 2a 50 00 27 10 77 44 00 00 48 4f 47 45\"" "ofproto-dpif.at:7492"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 "505400000007 6066666666$dl_src 8847 00014020 00014120 45 00 00 2c 00 00 00 00 40 06 3b 78 c0 a8 00 01 c0 a8 00 02 00 50 00 00 00 00 00 2a 00 00 00 2a 50 00 27 10 77 44 00 00 48 4f 47 45"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7492"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

done
sleep 1  # wait for the datapath flow installed
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7495: strip_ufid < ovs-vswitchd.log | filter_flow_install | strip_used"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7495"
( $at_check_trace; strip_ufid < ovs-vswitchd.log | filter_flow_install | strip_used
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=60:66:66:66:66:00),eth_type(0x8847),mpls(label=20,tc=0,ttl=32,bos=0,label=20,tc=0,ttl=32,bos=1), actions:push_mpls(label=20,tc=0,ttl=32,bos=0,eth_type=0x8847),userspace(pid=0,controller(reason=1,dont_send=0,continuation=0,recirc_id=1,rule_cookie=0,controller_id=0,max_len=65535))
recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=60:66:66:66:66:01),eth_type(0x8847),mpls(label=20/0x0,tc=0/0,ttl=32/0x0,bos=0/1,label=20/0xfffff,tc=0/7,ttl=32/0xff,bos=1/1), actions:pop_mpls(eth_type=0x8847),userspace(pid=0,controller(reason=1,dont_send=0,continuation=0,recirc_id=1,rule_cookie=0,controller_id=0,max_len=65535))
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7495"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7500: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:7500"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7500"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7500: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:7500"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7500"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7500: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:7500"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7500"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7500: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7500: wait failed" >&5

    $as_echo "ofproto-dpif.at:7500" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7500"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7500: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:7500"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7500"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7500: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:7500"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7500"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7500: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7500: wait failed" >&5

    $as_echo "ofproto-dpif.at:7500" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7500"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1168
#AT_START_1169
at_fn_group_banner 1169 'ofproto-dpif.at:7503' \
  "ofproto-dpif - patch ports" "                     " 55
at_xfail=no
(
  $as_echo "1169. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7504: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:7504"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7504"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7504: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:7504"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7504"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7504: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7504"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7504"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7504: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:7504"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7504"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7504: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:7504"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7504"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7504: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7504"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7504"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7504: add_of_br 0 add-br br1 \\
-- set bridge br1 datapath-type=dummy fail-mode=secure \\
-- add-port br1 pbr1 -- set int pbr1 type=patch options:peer=pbr0 \\
-- add-port br0 pbr0 -- set int pbr0 type=patch options:peer=pbr1 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7504"
( $at_check_trace; add_of_br 0 add-br br1 \
-- set bridge br1 datapath-type=dummy fail-mode=secure \
-- add-port br1 pbr1 -- set int pbr1 type=patch options:peer=pbr0 \
-- add-port br0 pbr0 -- set int pbr0 type=patch options:peer=pbr1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7504"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



add_of_ports br0 2
add_of_ports br1 3

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7512: ovs-appctl upcall/disable-ufid"
at_fn_check_prepare_trace "ofproto-dpif.at:7512"
( $at_check_trace; ovs-appctl upcall/disable-ufid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath dumping tersely using UFID disabled
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7512"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7514: ovs-appctl time/stop"
at_fn_check_prepare_trace "ofproto-dpif.at:7514"
( $at_check_trace; ovs-appctl time/stop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7514"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7515: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:7515"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7515"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7517: ovs-ofctl add-flow br0 actions=LOCAL,output:1,output:2"
at_fn_check_prepare_trace "ofproto-dpif.at:7517"
( $at_check_trace; ovs-ofctl add-flow br0 actions=LOCAL,output:1,output:2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7517"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7518: ovs-ofctl add-flow br1 actions=LOCAL,output:1,output:3"
at_fn_check_prepare_trace "ofproto-dpif.at:7518"
( $at_check_trace; ovs-ofctl add-flow br1 actions=LOCAL,output:1,output:3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7518"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


for i in $(seq 1 10); do
    ovs-appctl netdev-dummy/receive br0 'in_port(100),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
    if [ $i -eq 1 ]; then
        sleep 1
    fi
done

for i in $(seq 1 5); do
    ovs-appctl netdev-dummy/receive br1 'in_port(101),eth(src=50:54:00:00:00:07,dst=50:54:00:00:00:05),eth_type(0x0800),ipv4(src=192.168.0.2,dst=192.168.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
    if [ $i -eq 1 ]; then
        sleep 1
    fi
done

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7534: ovs-appctl time/warp 500"
at_fn_check_prepare_trace "ofproto-dpif.at:7534"
( $at_check_trace; ovs-appctl time/warp 500
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "warped
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7534"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

sleep 1  # wait for log writer

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7539: ovs-appctl dpif/show"
at_fn_check_prepare_trace "ofproto-dpif.at:7539"
( $at_check_trace; ovs-appctl dpif/show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dummy@ovs-dummy: hit:13 missed:2
	br0:
		br0 65534/100: (dummy-internal)
		p2 2/2: (dummy)
		pbr0 1/none: (patch: peer=pbr1)
	br1:
		br1 65534/101: (dummy-internal)
		p3 3/3: (dummy)
		pbr1 1/none: (patch: peer=pbr0)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7539"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7551: strip_ufid < ovs-vswitchd.log | filter_flow_install | strip_used"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7551"
( $at_check_trace; strip_ufid < ovs-vswitchd.log | filter_flow_install | strip_used
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(100),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), actions:101,3,2
recirc_id(0),in_port(101),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), actions:100,2,3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7551"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7556: grep -e 'in_port(100).*packets:9' ovs-vswitchd.log | strip_ufid | filter_flow_dump"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7556"
( $at_check_trace; grep -e 'in_port(100).*packets:9' ovs-vswitchd.log | strip_ufid | filter_flow_dump
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(100),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:05/00:00:00:00:00:00,dst=50:54:00:00:00:07/00:00:00:00:00:00),eth_type(0x0800),ipv4(src=192.168.0.1/0.0.0.0,dst=192.168.0.2/0.0.0.0,proto=1/0,tos=0/0,ttl=64/0,frag=no),icmp(type=8/0,code=0/0), packets:9, bytes:378, used:0.0s, actions:101,3,2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7556"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7559: grep -e 'in_port(101).*packets:4' ovs-vswitchd.log | strip_ufid | filter_flow_dump"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7559"
( $at_check_trace; grep -e 'in_port(101).*packets:4' ovs-vswitchd.log | strip_ufid | filter_flow_dump
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(101),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:07/00:00:00:00:00:00,dst=50:54:00:00:00:05/00:00:00:00:00:00),eth_type(0x0800),ipv4(src=192.168.0.2/0.0.0.0,dst=192.168.0.1/0.0.0.0,proto=1/0,tos=0/0,ttl=64/0,frag=no),icmp(type=8/0,code=0/0), packets:4, bytes:168, used:0.0s, actions:100,2,3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7559"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7563: ovs-ofctl dump-ports br0 pbr0"
at_fn_check_prepare_trace "ofproto-dpif.at:7563"
( $at_check_trace; ovs-ofctl dump-ports br0 pbr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_PORT reply (xid=0x4): 1 ports
  port  1: rx pkts=5, bytes=210, drop=?, errs=?, frame=?, over=?, crc=?
           tx pkts=10, bytes=420, drop=?, errs=?, coll=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7563"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7569: ovs-ofctl dump-ports br1 pbr1"
at_fn_check_prepare_trace "ofproto-dpif.at:7569"
( $at_check_trace; ovs-ofctl dump-ports br1 pbr1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_PORT reply (xid=0x4): 1 ports
  port  1: rx pkts=10, bytes=420, drop=?, errs=?, frame=?, over=?, crc=?
           tx pkts=5, bytes=210, drop=?, errs=?, coll=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7569"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7575: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:7575"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7575"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7575: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:7575"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7575"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7575: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:7575"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7575"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7575: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7575: wait failed" >&5

    $as_echo "ofproto-dpif.at:7575" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7575"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7575: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:7575"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7575"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7575: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:7575"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7575"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7575: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7575: wait failed" >&5

    $as_echo "ofproto-dpif.at:7575" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7575"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1169
#AT_START_1170
at_fn_group_banner 1170 'ofproto-dpif.at:7578' \
  "ofproto-dpif - patch ports - stack" "             " 55
at_xfail=no
(
  $as_echo "1170. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7579: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:7579"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7579"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7579: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:7579"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7579"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7579: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7579"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7579"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7579: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:7579"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7579"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7579: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:7579"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7579"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7579: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7579"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7579"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7579: add_of_br 0 add-br br1 \\
-- set bridge br1 datapath-type=dummy fail-mode=secure \\
-- add-port br1 pbr1 -- set int pbr1 type=patch options:peer=pbr0 \\
-- add-port br0 pbr0 -- set int pbr0 type=patch options:peer=pbr1 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7579"
( $at_check_trace; add_of_br 0 add-br br1 \
-- set bridge br1 datapath-type=dummy fail-mode=secure \
-- add-port br1 pbr1 -- set int pbr1 type=patch options:peer=pbr0 \
-- add-port br0 pbr0 -- set int pbr0 type=patch options:peer=pbr1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7579"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



add_of_ports br0 2
add_of_ports br1 3

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7587: ovs-appctl upcall/disable-ufid"
at_fn_check_prepare_trace "ofproto-dpif.at:7587"
( $at_check_trace; ovs-appctl upcall/disable-ufid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath dumping tersely using UFID disabled
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7587"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7589: ovs-appctl time/stop"
at_fn_check_prepare_trace "ofproto-dpif.at:7589"
( $at_check_trace; ovs-appctl time/stop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7589"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7590: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:7590"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7590"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7592: ovs-ofctl add-flow br0 \"ip actions=push:OXM_OF_IN_PORT[0..31],output:1,pop:OXM_OF_IPV4_SRC[0..31],output:2\""
at_fn_check_prepare_trace "ofproto-dpif.at:7592"
( $at_check_trace; ovs-ofctl add-flow br0 "ip actions=push:OXM_OF_IN_PORT[0..31],output:1,pop:OXM_OF_IPV4_SRC[0..31],output:2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7592"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Try to pop from empty stack, and push and leave data to stack.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7594: ovs-ofctl add-flow br1 \"ip actions=pop:OXM_OF_IPV4_DST[0..31],push:NXM_NX_REG1[0..31],LOCAL\""
at_fn_check_prepare_trace "ofproto-dpif.at:7594"
( $at_check_trace; ovs-ofctl add-flow br1 "ip actions=pop:OXM_OF_IPV4_DST[0..31],push:NXM_NX_REG1[0..31],LOCAL"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7594"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl netdev-dummy/receive br0 'in_port(100),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7598: ovs-appctl time/warp 500"
at_fn_check_prepare_trace "ofproto-dpif.at:7598"
( $at_check_trace; ovs-appctl time/warp 500
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "warped
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7598"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


$as_echo "ofproto-dpif.at:7602: waiting until test \`grep flow_add ovs-vswitchd.log | wc -l\` -ge 1..." >&5
ovs_wait_cond () {
    test `grep flow_add ovs-vswitchd.log | wc -l` -ge 1
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7602: wait failed" >&5

    $as_echo "ofproto-dpif.at:7602" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7602"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7604: ovs-appctl dpif/show"
at_fn_check_prepare_trace "ofproto-dpif.at:7604"
( $at_check_trace; ovs-appctl dpif/show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dummy@ovs-dummy: hit:0 missed:1
	br0:
		br0 65534/100: (dummy-internal)
		p2 2/2: (dummy)
		pbr0 1/none: (patch: peer=pbr1)
	br1:
		br1 65534/101: (dummy-internal)
		p3 3/3: (dummy)
		pbr1 1/none: (patch: peer=pbr0)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7604"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7616: strip_ufid < ovs-vswitchd.log | filter_flow_install | strip_used"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7616"
( $at_check_trace; strip_ufid < ovs-vswitchd.log | filter_flow_install | strip_used
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(100),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(src=192.168.0.1,frag=no), actions:101,set(ipv4(src=255.255.255.254)),2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7616"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7620: grep -e '|ofproto_dpif_xlate|WARN|' ovs-vswitchd.log | sed \"s/^.*|WARN|//\""
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7620"
( $at_check_trace; grep -e '|ofproto_dpif_xlate|WARN|' ovs-vswitchd.log | sed "s/^.*|WARN|//"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "stack underflow while processing icmp,in_port=LOCAL,vlan_tci=0x0000,dl_src=50:54:00:00:00:05,dl_dst=50:54:00:00:00:07,nw_src=192.168.0.1,nw_dst=192.168.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,icmp_type=8,icmp_code=0 on bridge br1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7620"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7624: check_logs \"/stack underflow/d\""
at_fn_check_prepare_trace "ofproto-dpif.at:7624"
( $at_check_trace; check_logs "/stack underflow/d"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7624"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7624: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:7624"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7624"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7624: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:7624"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7624"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7624: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7624: wait failed" >&5

    $as_echo "ofproto-dpif.at:7624" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7624"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7624: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:7624"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7624"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7624: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:7624"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7624"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7624: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7624: wait failed" >&5

    $as_echo "ofproto-dpif.at:7624" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7624"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1170
#AT_START_1171
at_fn_group_banner 1171 'ofproto-dpif.at:7627' \
  "ofproto-dpif - port duration" "                   " 55
at_xfail=no
(
  $as_echo "1171. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7628: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:7628"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7628"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7628: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:7628"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7628"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7628: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7628"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7628"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7628: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:7628"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7628"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7628: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:7628"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7628"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7628: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7628"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7628"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7628: add_of_br 0 set Bridge br0 protocols=OpenFlow13 "
at_fn_check_prepare_trace "ofproto-dpif.at:7628"
( $at_check_trace; add_of_br 0 set Bridge br0 protocols=OpenFlow13
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7628"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2

ovs-appctl time/stop
ovs-appctl time/warp 10000

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7634: ovs-ofctl -O openflow13 dump-ports br0"
at_fn_check_prepare_trace "ofproto-dpif.at:7634"
( $at_check_trace; ovs-ofctl -O openflow13 dump-ports br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7634"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7635: sed -n 's/=[0-9][0-9]\\(\\.[0-9][0-9]*\\)\\{0,1\\}s/=?s/p' stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:7635"
( $at_check_trace; sed -n 's/=[0-9][0-9]\(\.[0-9][0-9]*\)\{0,1\}s/=?s/p' stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "           duration=?s
           duration=?s
           duration=?s
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7635"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7641: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:7641"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7641"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7641: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:7641"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7641"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7641: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:7641"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7641"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7641: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7641: wait failed" >&5

    $as_echo "ofproto-dpif.at:7641" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7641"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7641: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:7641"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7641"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7641: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:7641"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7641"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7641: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7641: wait failed" >&5

    $as_echo "ofproto-dpif.at:7641" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7641"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1171
#AT_START_1172
at_fn_group_banner 1172 'ofproto-dpif.at:7647' \
  "ofproto-dpif megaflow - port classification" "    " 56
at_xfail=no
(
  $as_echo "1172. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7648: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:7648"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7648"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7648: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:7648"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7648"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7648: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7648"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7648"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7648: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:7648"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7648"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7648: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:7648"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7648"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7648: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7648"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7648"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7648: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:7648"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7648"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7649: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:7649"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7649"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

add_of_ports br0 1 2
cat >flows.txt <<'_ATEOF'
table=0 in_port=1 actions=output(2)
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7654: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:7654"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7654"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7655: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7655"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7655"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

sleep 1
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7657: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7657"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7657"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

sleep 1
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7659: filter_flow_install < ovs-vswitchd.log | strip_xout"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7659"
( $at_check_trace; filter_flow_install < ovs-vswitchd.log | strip_xout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), actions: <del>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7659"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7662: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:7662"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7662"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7662: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:7662"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7662"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7662: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:7662"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7662"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7662: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7662: wait failed" >&5

    $as_echo "ofproto-dpif.at:7662" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7662"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7662: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:7662"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7662"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7662: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:7662"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7662"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7662: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7662: wait failed" >&5

    $as_echo "ofproto-dpif.at:7662" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7662"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1172
#AT_START_1173
at_fn_group_banner 1173 'ofproto-dpif.at:7665' \
  "ofproto-dpif megaflow - L2 classification" "      " 56
at_xfail=no
(
  $as_echo "1173. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7666: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:7666"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7666"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7666: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:7666"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7666"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7666: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7666"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7666"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7666: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:7666"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7666"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7666: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:7666"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7666"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7666: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7666"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7666"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7666: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:7666"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7666"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7667: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:7667"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7667"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

add_of_ports br0 1 2
cat >flows.txt <<'_ATEOF'
table=0 in_port=1,dl_src=50:54:00:00:00:09 actions=output(2)
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7672: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:7672"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7672"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7673: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7673"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7673"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7674: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7674"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7674"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

sleep 1
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7676: filter_flow_install < ovs-vswitchd.log | strip_xout"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7676"
( $at_check_trace; filter_flow_install < ovs-vswitchd.log | strip_xout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09),eth_type(0x0800),ipv4(frag=no), actions: <del>
recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b),eth_type(0x0800),ipv4(frag=no), actions: <del>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7676"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7680: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:7680"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7680"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7680: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:7680"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7680"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7680: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:7680"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7680"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7680: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7680: wait failed" >&5

    $as_echo "ofproto-dpif.at:7680" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7680"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7680: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:7680"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7680"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7680: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:7680"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7680"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7680: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7680: wait failed" >&5

    $as_echo "ofproto-dpif.at:7680" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7680"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1173
#AT_START_1174
at_fn_group_banner 1174 'ofproto-dpif.at:7683' \
  "ofproto-dpif megaflow - L3 classification" "      " 56
at_xfail=no
(
  $as_echo "1174. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7684: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:7684"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7684"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7684: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:7684"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7684"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7684: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7684"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7684"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7684: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:7684"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7684"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7684: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:7684"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7684"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7684: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7684"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7684"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7684: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:7684"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7684"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7685: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:7685"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7685"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

add_of_ports br0 1 2
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7687: ovs-vsctl set Bridge br0 flow_tables:0=@N1 -- --id=@N1 create Flow_Table name=t0 prefixes=nw_dst,nw_src"
at_fn_check_prepare_trace "ofproto-dpif.at:7687"
( $at_check_trace; ovs-vsctl set Bridge br0 flow_tables:0=@N1 -- --id=@N1 create Flow_Table name=t0 prefixes=nw_dst,nw_src
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7687"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

cat >flows.txt <<'_ATEOF'
table=0 in_port=1,icmp,nw_src=10.0.0.4 actions=output(2)
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7691: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:7691"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7691"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7692: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7692"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7692"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7693: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7693"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7693"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

sleep 1
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7695: filter_flow_install < ovs-vswitchd.log | strip_xout"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7695"
( $at_check_trace; filter_flow_install < ovs-vswitchd.log | strip_xout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(src=10.0.0.2/255.255.255.252,frag=no), actions: <del>
recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(src=10.0.0.4,proto=1,frag=no), actions: <del>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7695"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7699: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:7699"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7699"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7699: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:7699"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7699"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7699: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:7699"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7699"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7699: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7699: wait failed" >&5

    $as_echo "ofproto-dpif.at:7699" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7699"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7699: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:7699"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7699"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7699: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:7699"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7699"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7699: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7699: wait failed" >&5

    $as_echo "ofproto-dpif.at:7699" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7699"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1174
#AT_START_1175
at_fn_group_banner 1175 'ofproto-dpif.at:7702' \
  "ofproto-dpif megaflow - IPv6 classification" "    " 56
at_xfail=no
(
  $as_echo "1175. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7703: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:7703"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7703"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7703: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:7703"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7703"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7703: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7703"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7703"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7703: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:7703"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7703"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7703: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:7703"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7703"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7703: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7703"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7703"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7703: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:7703"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7703"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7704: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:7704"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7704"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

add_of_ports br0 1 2
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7706: ovs-vsctl set Bridge br0 flow_tables:0=@N1 -- --id=@N1 create Flow_Table name=t0 prefixes=ipv6_dst,ipv6_src"
at_fn_check_prepare_trace "ofproto-dpif.at:7706"
( $at_check_trace; ovs-vsctl set Bridge br0 flow_tables:0=@N1 -- --id=@N1 create Flow_Table name=t0 prefixes=ipv6_dst,ipv6_src
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7706"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

cat >flows.txt <<'_ATEOF'
table=0 in_port=1,ipv6,ipv6_src=2001:db8:3c4d:1:2:3:4:5 actions=output(2)
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7710: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:7710"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7710"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7711: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:07,dst=50:54:00:00:00:05),eth_type(0x86dd),ipv6(src=2001:db8:3c4d:1:2:3:4:5,dst=fe80::2,label=0,proto=10,tclass=0x70,hlimit=128,frag=no)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7711"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:07,dst=50:54:00:00:00:05),eth_type(0x86dd),ipv6(src=2001:db8:3c4d:1:2:3:4:5,dst=fe80::2,label=0,proto=10,tclass=0x70,hlimit=128,frag=no)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7711"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7712: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x86dd),ipv6(src=2001:db8:3c4d:5:4:3:2:1,dst=2001:db8:3c4d:1:2:3:4:1,label=0,proto=99,tclass=0x70,hlimit=64,frag=no)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7712"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x86dd),ipv6(src=2001:db8:3c4d:5:4:3:2:1,dst=2001:db8:3c4d:1:2:3:4:1,label=0,proto=99,tclass=0x70,hlimit=64,frag=no)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7712"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

sleep 1
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7714: filter_flow_install < ovs-vswitchd.log | strip_xout"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7714"
( $at_check_trace; filter_flow_install < ovs-vswitchd.log | strip_xout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x86dd),ipv6(src=2001:db8:3c4d:1:2:3:4:5,frag=no), actions: <del>
recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x86dd),ipv6(src=2001:db8:3c4d:5:4:3:2:1/ffff:ffff:ffff:fffc::,frag=no), actions: <del>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7714"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7718: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:7718"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7718"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7718: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:7718"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7718"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7718: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:7718"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7718"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7718: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7718: wait failed" >&5

    $as_echo "ofproto-dpif.at:7718" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7718"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7718: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:7718"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7718"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7718: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:7718"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7718"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7718: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7718: wait failed" >&5

    $as_echo "ofproto-dpif.at:7718" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7718"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1175
#AT_START_1176
at_fn_group_banner 1176 'ofproto-dpif.at:7721' \
  "ofproto-dpif megaflow - L4 classification" "      " 56
at_xfail=no
(
  $as_echo "1176. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7722: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:7722"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7722"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7722: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:7722"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7722"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7722: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7722"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7722"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7722: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:7722"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7722"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7722: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:7722"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7722"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7722: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7722"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7722"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7722: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:7722"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7722"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7723: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:7723"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7723"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

add_of_ports br0 1 2
cat >flows.txt <<'_ATEOF'
table=0 in_port=1,icmp,icmp_type=8 actions=output(2)
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7728: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:7728"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7728"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7729: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7729"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7729"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

sleep 1
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7731: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7731"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7731"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

sleep 1
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7733: filter_flow_install < ovs-vswitchd.log | strip_xout"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7733"
( $at_check_trace; filter_flow_install < ovs-vswitchd.log | strip_xout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=1,frag=no),icmp(type=8), actions: <del>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7733"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7736: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:7736"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7736"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7736: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:7736"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7736"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7736: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:7736"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7736"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7736: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7736: wait failed" >&5

    $as_echo "ofproto-dpif.at:7736" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7736"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7736: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:7736"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7736"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7736: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:7736"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7736"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7736: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7736: wait failed" >&5

    $as_echo "ofproto-dpif.at:7736" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7736"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1176
#AT_START_1177
at_fn_group_banner 1177 'ofproto-dpif.at:7756' \
  "ofproto-dpif megaflow - normal" "                 " 56
at_xfail=no
(
  $as_echo "1177. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

      touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7756: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:7756"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7756"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7756: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:7756"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7756"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7756: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7756"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7756"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7756: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:7756"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7756"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7756: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:7756"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7756"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7756: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7756"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7756"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7756: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:7756"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7756"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7756: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:7756"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7756"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   func=`printf '%s_' "" | cut -c 4-`
   add_${func}of_ports br0 1 2
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7756: ovs-ofctl add-flow br0 action=normal"
at_fn_check_prepare_trace "ofproto-dpif.at:7756"
( $at_check_trace; ovs-ofctl add-flow br0 action=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7756"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7756: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7756"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7756"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7756: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7756"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7756"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   sleep 1
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7756: filter_flow_install < ovs-vswitchd.log | strip_xout"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7756"
( $at_check_trace; filter_flow_install < ovs-vswitchd.log | strip_xout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(frag=no), actions: <del>
recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(frag=no), actions: <del>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7756"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7756: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:7756"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7756"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7756: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:7756"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7756"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7756: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:7756"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7756"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7756: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7756: wait failed" >&5

    $as_echo "ofproto-dpif.at:7756" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7756"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7756: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:7756"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7756"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7756: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:7756"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7756"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7756: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7756: wait failed" >&5

    $as_echo "ofproto-dpif.at:7756" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7756"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1177
#AT_START_1178
at_fn_group_banner 1178 'ofproto-dpif.at:7757' \
  "ofproto-dpif megaflow - normal - pmd" "           " 56
at_xfail=no
(
  $as_echo "1178. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

      touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7757: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:7757"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7757"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7757: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:7757"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7757"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7757: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7757"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7757"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7757: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:7757"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7757"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7757: ovs-vswitchd --enable-dummy --disable-system --dummy-numa=\"0,0,0,0,1,1,1,1\" --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:7757"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system --dummy-numa="0,0,0,0,1,1,1,1" --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7757"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7757: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7757"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7757"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7757: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:7757"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7757"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7757: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:7757"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7757"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   func=`printf '%s_' " - pmd" | cut -c 4-`
   add_${func}of_ports br0 1 2
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7757: ovs-ofctl add-flow br0 action=normal"
at_fn_check_prepare_trace "ofproto-dpif.at:7757"
( $at_check_trace; ovs-ofctl add-flow br0 action=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7757"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7757: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7757"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7757"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7757: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7757"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7757"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   sleep 1
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7757: filter_flow_install < ovs-vswitchd.log | strip_xout"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7757"
( $at_check_trace; filter_flow_install < ovs-vswitchd.log | strip_xout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(frag=no), actions: <del>
recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(frag=no), actions: <del>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7757"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7757: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:7757"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7757"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7757: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:7757"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7757"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7757: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:7757"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7757"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7757: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7757: wait failed" >&5

    $as_echo "ofproto-dpif.at:7757" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7757"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7757: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:7757"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7757"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7757: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:7757"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7757"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7757: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7757: wait failed" >&5

    $as_echo "ofproto-dpif.at:7757" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7757"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1178
#AT_START_1179
at_fn_group_banner 1179 'ofproto-dpif.at:7759' \
  "ofproto-dpif megaflow - mpls" "                   " 56
at_xfail=no
(
  $as_echo "1179. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7760: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:7760"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7760"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7760: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:7760"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7760"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7760: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7760"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7760"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7760: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:7760"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7760"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7760: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:7760"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7760"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7760: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7760"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7760"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7760: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:7760"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7760"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7761: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:7761"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7761"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

add_of_ports br0 1 2
cat >flows.txt <<'_ATEOF'
table=0 dl_src=50:54:00:00:00:09 actions=push_mpls:0x8847,2
table=0 dl_src=50:54:00:00:00:0b actions=pop_mpls:0x0800,2
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7767: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:7767"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7767"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7768: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x8847),mpls(label=11,tc=3,ttl=64,bos=1)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7768"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x8847),mpls(label=11,tc=3,ttl=64,bos=1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7768"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7769: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0a),eth_type(0x8847),mpls(label=11,tc=3,ttl=64,bos=1)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7769"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0a),eth_type(0x8847),mpls(label=11,tc=3,ttl=64,bos=1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7769"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

sleep 1
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7771: filter_flow_install < ovs-vswitchd.log | strip_xout_keep_actions"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7771"
( $at_check_trace; filter_flow_install < ovs-vswitchd.log | strip_xout_keep_actions
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09),eth_type(0x8847),mpls(label=11,tc=3,ttl=64,bos=1), actions:push_mpls(label=11,tc=3,ttl=64,bos=0,eth_type=0x8847),2
recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b),eth_type(0x8847),mpls(label=11/0x0,tc=3/0,ttl=64/0x0,bos=1/1), actions:pop_mpls(eth_type=0x800),2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7771"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7775: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:7775"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7775"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7775: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:7775"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7775"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7775: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:7775"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7775"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7775: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7775: wait failed" >&5

    $as_echo "ofproto-dpif.at:7775" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7775"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7775: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:7775"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7775"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7775: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:7775"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7775"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7775: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7775: wait failed" >&5

    $as_echo "ofproto-dpif.at:7775" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7775"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1179
#AT_START_1180
at_fn_group_banner 1180 'ofproto-dpif.at:7805' \
  "ofproto-dpif megaflow - netflow - IPv4 collector" "" 56
at_xfail=no
(
  $as_echo "1180. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7806: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:7806"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7806"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7806: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:7806"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7806"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7806: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7806"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7806"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7806: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:7806"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7806"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7806: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:7806"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7806"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7806: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7806"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7806"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7806: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:7806"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7806"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7806: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:7806"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7806"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

  add_of_ports br0 1 2

    on_exit 'kill `cat test-netflow.pid`'
  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7806: ovstest test-netflow --log-file --detach --no-chdir --pidfile 0:127.0.0.1 > netflow.log"
at_fn_check_prepare_trace "ofproto-dpif.at:7806"
( $at_check_trace; ovstest test-netflow --log-file --detach --no-chdir --pidfile 0:127.0.0.1 > netflow.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7806"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


  $as_echo "ofproto-dpif.at:7806: waiting until NETFLOW_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"test-netflow.log\"\` && test X != X\"\$NETFLOW_PORT\"..." >&5
ovs_wait_cond () {
    NETFLOW_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "test-netflow.log"` && test X != X"$NETFLOW_PORT"
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7806: wait failed" >&5

    $as_echo "ofproto-dpif.at:7806" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7806"
fi

  ovs-vsctl \
     set Bridge br0 netflow=@nf -- \
     --id=@nf create NetFlow targets=\"127.0.0.1:$NETFLOW_PORT\" \
       engine_id=1 engine_type=2 active_timeout=30 add-id-to-interface=false

  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7806: ovs-ofctl add-flow br0 action=normal"
at_fn_check_prepare_trace "ofproto-dpif.at:7806"
( $at_check_trace; ovs-ofctl add-flow br0 action=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7806"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7806: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7806"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7806"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7806: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7806"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7806"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

  sleep 1
  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7806: filter_flow_install < ovs-vswitchd.log | strip_xout"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7806"
( $at_check_trace; filter_flow_install < ovs-vswitchd.log | strip_xout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0/0xfc,frag=no),icmp(type=8,code=0), actions: <del>
recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0/0xfc,frag=no),icmp(type=8,code=0), actions: <del>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7806"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7806: test -e \$OVS_RUNDIR/test-netflow.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/test-netflow.pid" "ofproto-dpif.at:7806"
( $at_check_trace; test -e $OVS_RUNDIR/test-netflow.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7806"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/test-netflow.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7806: ovs-appctl --timeout=10 -t test-netflow exit"
at_fn_check_prepare_trace "ofproto-dpif.at:7806"
( $at_check_trace; ovs-appctl --timeout=10 -t test-netflow exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7806"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7806: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7806: wait failed" >&5

    $as_echo "ofproto-dpif.at:7806" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7806"
fi

  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7806: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:7806"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7806"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7806: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:7806"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7806"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7806: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:7806"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7806"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7806: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7806: wait failed" >&5

    $as_echo "ofproto-dpif.at:7806" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7806"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7806: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:7806"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7806"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7806: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:7806"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7806"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7806: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7806: wait failed" >&5

    $as_echo "ofproto-dpif.at:7806" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7806"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1180
#AT_START_1181
at_fn_group_banner 1181 'ofproto-dpif.at:7809' \
  "ofproto-dpif megaflow - netflow - IPv6 collector" "" 56
at_xfail=no
(
  $as_echo "1181. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ofproto-dpif.at:7810" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ofproto-dpif.at:7810"
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7811: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:7811"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7811"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7811: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:7811"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7811"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7811: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7811"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7811"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7811: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:7811"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7811"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7811: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:7811"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7811"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7811: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7811"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7811"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7811: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:7811"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7811"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7811: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:7811"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7811"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

  add_of_ports br0 1 2

    on_exit 'kill `cat test-netflow.pid`'
  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7811: ovstest test-netflow --log-file --detach --no-chdir --pidfile 0:[::1] > netflow.log"
at_fn_check_prepare_trace "ofproto-dpif.at:7811"
( $at_check_trace; ovstest test-netflow --log-file --detach --no-chdir --pidfile 0:[::1] > netflow.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7811"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


  $as_echo "ofproto-dpif.at:7811: waiting until NETFLOW_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"test-netflow.log\"\` && test X != X\"\$NETFLOW_PORT\"..." >&5
ovs_wait_cond () {
    NETFLOW_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "test-netflow.log"` && test X != X"$NETFLOW_PORT"
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7811: wait failed" >&5

    $as_echo "ofproto-dpif.at:7811" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7811"
fi

  ovs-vsctl \
     set Bridge br0 netflow=@nf -- \
     --id=@nf create NetFlow targets=\"[::1]:$NETFLOW_PORT\" \
       engine_id=1 engine_type=2 active_timeout=30 add-id-to-interface=false

  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7811: ovs-ofctl add-flow br0 action=normal"
at_fn_check_prepare_trace "ofproto-dpif.at:7811"
( $at_check_trace; ovs-ofctl add-flow br0 action=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7811"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7811: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7811"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7811"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7811: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7811"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7811"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

  sleep 1
  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7811: filter_flow_install < ovs-vswitchd.log | strip_xout"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7811"
( $at_check_trace; filter_flow_install < ovs-vswitchd.log | strip_xout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0/0xfc,frag=no),icmp(type=8,code=0), actions: <del>
recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0/0xfc,frag=no),icmp(type=8,code=0), actions: <del>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7811"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7811: test -e \$OVS_RUNDIR/test-netflow.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/test-netflow.pid" "ofproto-dpif.at:7811"
( $at_check_trace; test -e $OVS_RUNDIR/test-netflow.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7811"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/test-netflow.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7811: ovs-appctl --timeout=10 -t test-netflow exit"
at_fn_check_prepare_trace "ofproto-dpif.at:7811"
( $at_check_trace; ovs-appctl --timeout=10 -t test-netflow exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7811"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7811: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7811: wait failed" >&5

    $as_echo "ofproto-dpif.at:7811" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7811"
fi

  { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7811: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:7811"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7811"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7811: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:7811"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7811"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7811: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:7811"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7811"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7811: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7811: wait failed" >&5

    $as_echo "ofproto-dpif.at:7811" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7811"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7811: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:7811"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7811"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7811: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:7811"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7811"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"netflow.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7811: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7811: wait failed" >&5

    $as_echo "ofproto-dpif.at:7811" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7811"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1181
#AT_START_1182
at_fn_group_banner 1182 'ofproto-dpif.at:7837' \
  "ofproto-dpif megaflow - normal, active-backup bonding - dummy" "" 56
at_xfail=no
(
  $as_echo "1182. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

      touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7837: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:7837"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7837"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7837: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:7837"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7837"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7837: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7837"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7837"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7837: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:7837"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7837"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7837: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:7837"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7837"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7837: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7837"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7837"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7837: add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1 -- \\
      add-bond br0 bond0 p2 p3 bond_mode=active-backup -- \\
      set interface p2 type=dummy ofport_request=2 -- \\
      set interface p3 type=dummy ofport_request=3 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7837"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1 -- \
      add-bond br0 bond0 p2 p3 bond_mode=active-backup -- \
      set interface p2 type=dummy ofport_request=2 -- \
      set interface p3 type=dummy ofport_request=3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7837"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7837: ovs-appctl netdev-dummy/set-admin-state up"
at_fn_check_prepare_trace "ofproto-dpif.at:7837"
( $at_check_trace; ovs-appctl netdev-dummy/set-admin-state up
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7837"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7837: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:7837"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7837"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7837: ovs-ofctl add-flow br0 action=normal"
at_fn_check_prepare_trace "ofproto-dpif.at:7837"
( $at_check_trace; ovs-ofctl add-flow br0 action=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7837"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7837: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7837"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7837"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7837: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7837"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7837"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   sleep 1
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7837: filter_flow_install < ovs-vswitchd.log | strip_xout"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7837"
( $at_check_trace; filter_flow_install < ovs-vswitchd.log | strip_xout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(frag=no), actions: <del>
recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(frag=no), actions: <del>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7837"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7837: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:7837"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7837"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7837: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:7837"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7837"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7837: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:7837"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7837"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7837: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7837: wait failed" >&5

    $as_echo "ofproto-dpif.at:7837" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7837"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7837: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:7837"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7837"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7837: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:7837"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7837"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7837: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7837: wait failed" >&5

    $as_echo "ofproto-dpif.at:7837" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7837"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1182
#AT_START_1183
at_fn_group_banner 1183 'ofproto-dpif.at:7838' \
  "ofproto-dpif megaflow - normal, active-backup bonding - dummy-pmd" "" 56
at_xfail=no
(
  $as_echo "1183. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

      touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7838: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:7838"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7838"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7838: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:7838"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7838"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7838: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7838"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7838"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7838: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:7838"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7838"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7838: ovs-vswitchd --enable-dummy --disable-system --dummy-numa=\"0,0,0,0,1,1,1,1\" --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:7838"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system --dummy-numa="0,0,0,0,1,1,1,1" --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7838"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7838: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7838"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7838"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7838: add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy-pmd ofport_request=1 -- \\
      add-bond br0 bond0 p2 p3 bond_mode=active-backup -- \\
      set interface p2 type=dummy-pmd ofport_request=2 -- \\
      set interface p3 type=dummy-pmd ofport_request=3 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7838"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy-pmd ofport_request=1 -- \
      add-bond br0 bond0 p2 p3 bond_mode=active-backup -- \
      set interface p2 type=dummy-pmd ofport_request=2 -- \
      set interface p3 type=dummy-pmd ofport_request=3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7838"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7838: ovs-appctl netdev-dummy/set-admin-state up"
at_fn_check_prepare_trace "ofproto-dpif.at:7838"
( $at_check_trace; ovs-appctl netdev-dummy/set-admin-state up
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7838"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7838: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:7838"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7838"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7838: ovs-ofctl add-flow br0 action=normal"
at_fn_check_prepare_trace "ofproto-dpif.at:7838"
( $at_check_trace; ovs-ofctl add-flow br0 action=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7838"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7838: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7838"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7838"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7838: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7838"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7838"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   sleep 1
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7838: filter_flow_install < ovs-vswitchd.log | strip_xout"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7838"
( $at_check_trace; filter_flow_install < ovs-vswitchd.log | strip_xout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(frag=no), actions: <del>
recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(frag=no), actions: <del>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7838"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7838: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:7838"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7838"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7838: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:7838"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7838"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7838: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:7838"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7838"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7838: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7838: wait failed" >&5

    $as_echo "ofproto-dpif.at:7838" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7838"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7838: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:7838"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7838"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7838: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:7838"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7838"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7838: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7838: wait failed" >&5

    $as_echo "ofproto-dpif.at:7838" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7838"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1183
#AT_START_1184
at_fn_group_banner 1184 'ofproto-dpif.at:7840' \
  "ofproto-dpif megaflow - normal, balance-slb bonding" "" 56
at_xfail=no
(
  $as_echo "1184. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7841: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:7841"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7841"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7841: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:7841"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7841"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7841: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7841"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7841"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7841: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:7841"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7841"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7841: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:7841"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7841"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7841: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7841"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7841"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7841: add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1 -- \\
   add-bond br0 bond0 p2 p3 bond_mode=balance-slb -- \\
   set interface p2 type=dummy ofport_request=2 -- \\
   set interface p3 type=dummy ofport_request=3 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7841"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1 -- \
   add-bond br0 bond0 p2 p3 bond_mode=balance-slb -- \
   set interface p2 type=dummy ofport_request=2 -- \
   set interface p3 type=dummy ofport_request=3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7841"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7846: ovs-appctl netdev-dummy/set-admin-state up"
at_fn_check_prepare_trace "ofproto-dpif.at:7846"
( $at_check_trace; ovs-appctl netdev-dummy/set-admin-state up
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7846"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7848: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:7848"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7848"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7850: ovs-ofctl add-flow br0 action=normal"
at_fn_check_prepare_trace "ofproto-dpif.at:7850"
( $at_check_trace; ovs-ofctl add-flow br0 action=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7850"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7851: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7851"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7851"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7852: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7852"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7852"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

sleep 1
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7854: filter_flow_install < ovs-vswitchd.log | strip_xout"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7854"
( $at_check_trace; filter_flow_install < ovs-vswitchd.log | strip_xout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(frag=no), actions: <del>
recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(frag=no), actions: <del>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7854"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7858: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:7858"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7858"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7858: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:7858"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7858"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7858: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:7858"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7858"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7858: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7858: wait failed" >&5

    $as_echo "ofproto-dpif.at:7858" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7858"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7858: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:7858"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7858"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7858: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:7858"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7858"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7858: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7858: wait failed" >&5

    $as_echo "ofproto-dpif.at:7858" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7858"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1184
#AT_START_1185
at_fn_group_banner 1185 'ofproto-dpif.at:7861' \
  "ofproto-dpif megaflow - normal, balance-tcp bonding" "" 56
at_xfail=no
(
  $as_echo "1185. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

# Create bond0 on br0 with interfaces p0 and p1
#    and bond1 on br1 with interfaces p2 and p3
# with p0 patched to p2 and p1 patched to p3.
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7865: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:7865"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7865"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7865: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:7865"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7865"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7865: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7865"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7865"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7865: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:7865"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7865"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7865: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:7865"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7865"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7865: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7865"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7865"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7865: add_of_br 0 add-bond br0 bond0 p0 p1 bond_mode=balance-tcp lacp=active \\
                            other-config:lacp-time=fast \\
                            other-config:bond-rebalance-interval=0 -- \\
   set interface p0 type=patch options:peer=p2 ofport_request=1 -- \\
   set interface p1 type=patch options:peer=p3 ofport_request=2 -- \\
   add-br br1 -- \\
   set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \\
   set bridge br1 datapath-type=dummy other-config:datapath-id=1234 \\
                  fail-mode=secure -- \\
   add-bond br1 bond1 p2 p3 bond_mode=balance-tcp lacp=active \\
                            other-config:lacp-time=fast \\
                            other-config:bond-rebalance-interval=0 -- \\
   set interface p2 type=patch options:peer=p0 ofport_request=3 -- \\
   set interface p3 type=patch options:peer=p1 ofport_request=4 -- "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7865"
( $at_check_trace; add_of_br 0 add-bond br0 bond0 p0 p1 bond_mode=balance-tcp lacp=active \
                            other-config:lacp-time=fast \
                            other-config:bond-rebalance-interval=0 -- \
   set interface p0 type=patch options:peer=p2 ofport_request=1 -- \
   set interface p1 type=patch options:peer=p3 ofport_request=2 -- \
   add-br br1 -- \
   set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \
   set bridge br1 datapath-type=dummy other-config:datapath-id=1234 \
                  fail-mode=secure -- \
   add-bond br1 bond1 p2 p3 bond_mode=balance-tcp lacp=active \
                            other-config:lacp-time=fast \
                            other-config:bond-rebalance-interval=0 -- \
   set interface p2 type=patch options:peer=p0 ofport_request=3 -- \
   set interface p3 type=patch options:peer=p1 ofport_request=4 --
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7865"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7881: ovs-appctl netdev-dummy/set-admin-state up"
at_fn_check_prepare_trace "ofproto-dpif.at:7881"
( $at_check_trace; ovs-appctl netdev-dummy/set-admin-state up
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7881"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7883: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:7883"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7883"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

add_of_ports br0 7
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7885: ovs-ofctl add-flow br0 action=normal"
at_fn_check_prepare_trace "ofproto-dpif.at:7885"
( $at_check_trace; ovs-ofctl add-flow br0 action=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7885"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7886: ovs-ofctl add-flow br1 action=normal"
at_fn_check_prepare_trace "ofproto-dpif.at:7886"
( $at_check_trace; ovs-ofctl add-flow br1 action=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7886"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/stop
ovs-appctl time/warp 5000
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7889: ovs-appctl netdev-dummy/receive p7 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7889"
( $at_check_trace; ovs-appctl netdev-dummy/receive p7 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7889"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7890: ovs-appctl netdev-dummy/receive p7 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7890"
( $at_check_trace; ovs-appctl netdev-dummy/receive p7 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7890"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

sleep 1
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7892: filter_flow_install < ovs-vswitchd.log | strip_xout"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7892"
( $at_check_trace; filter_flow_install < ovs-vswitchd.log | strip_xout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(7),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(frag=no), actions: <del>
recirc_id(0),in_port(7),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(frag=no), actions: <del>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7892"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7896: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:7896"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7896"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7896: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:7896"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7896"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7896: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:7896"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7896"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7896: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7896: wait failed" >&5

    $as_echo "ofproto-dpif.at:7896" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7896"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7896: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:7896"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7896"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7896: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:7896"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7896"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7896: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7896: wait failed" >&5

    $as_echo "ofproto-dpif.at:7896" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7896"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1185
#AT_START_1186
at_fn_group_banner 1186 'ofproto-dpif.at:7899' \
  "ofproto-dpif megaflow - resubmit port action" "   " 56
at_xfail=no
(
  $as_echo "1186. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7900: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:7900"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7900"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7900: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:7900"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7900"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7900: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7900"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7900"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7900: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:7900"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7900"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7900: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:7900"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7900"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7900: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7900"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7900"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7900: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:7900"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7900"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7901: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:7901"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7901"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

add_of_ports br0 1 2
cat >flows.txt <<'_ATEOF'
table=0 in_port=1,ip actions=resubmit(90)
table=0 in_port=90,dl_src=50:54:00:00:00:09 actions=output(2)
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7907: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:7907"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7907"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7908: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7908"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7908"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7909: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7909"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7909"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

sleep 1
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7911: filter_flow_install < ovs-vswitchd.log | strip_xout"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7911"
( $at_check_trace; filter_flow_install < ovs-vswitchd.log | strip_xout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09),eth_type(0x0800),ipv4(frag=no), actions: <del>
recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b),eth_type(0x0800),ipv4(frag=no), actions: <del>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7911"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7915: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:7915"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7915"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7915: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:7915"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7915"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7915: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:7915"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7915"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7915: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7915: wait failed" >&5

    $as_echo "ofproto-dpif.at:7915" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7915"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7915: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:7915"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7915"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7915: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:7915"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7915"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7915: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7915: wait failed" >&5

    $as_echo "ofproto-dpif.at:7915" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7915"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1186
#AT_START_1187
at_fn_group_banner 1187 'ofproto-dpif.at:7918' \
  "ofproto-dpif megaflow - resubmit table action" "  " 56
at_xfail=no
(
  $as_echo "1187. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7919: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:7919"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7919"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7919: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:7919"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7919"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7919: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7919"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7919"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7919: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:7919"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7919"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7919: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:7919"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7919"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7919: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7919"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7919"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7919: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:7919"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7919"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7920: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:7920"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7920"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

add_of_ports br0 1 2
cat >flows.txt <<'_ATEOF'
table=0 in_port=1,ip actions=resubmit(,1)
table=1 dl_src=50:54:00:00:00:09 actions=output(2)
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7926: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:7926"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7926"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7927: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7927"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7927"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7928: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=
1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7928"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=
1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7928"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

sleep 1
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7931: filter_flow_install < ovs-vswitchd.log | strip_xout"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7931"
( $at_check_trace; filter_flow_install < ovs-vswitchd.log | strip_xout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09),eth_type(0x0800),ipv4(frag=no), actions: <del>
recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b),eth_type(0x0800),ipv4(frag=no), actions: <del>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7931"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7935: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:7935"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7935"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7935: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:7935"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7935"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7935: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:7935"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7935"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7935: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7935: wait failed" >&5

    $as_echo "ofproto-dpif.at:7935" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7935"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7935: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:7935"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7935"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7935: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:7935"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7935"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7935: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7935: wait failed" >&5

    $as_echo "ofproto-dpif.at:7935" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7935"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1187
#AT_START_1188
at_fn_group_banner 1188 'ofproto-dpif.at:7938' \
  "ofproto-dpif megaflow - goto_table action" "      " 56
at_xfail=no
(
  $as_echo "1188. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7939: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:7939"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7939"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7939: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:7939"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7939"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7939: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7939"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7939"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7939: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:7939"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7939"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7939: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:7939"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7939"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7939: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7939"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7939"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7939: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:7939"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7939"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7940: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:7940"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7940"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

add_of_ports br0 1 2
cat >flows.txt <<'_ATEOF'
table=0 in_port=1,ip actions=goto_table(1)
table=1 dl_src=50:54:00:00:00:09 actions=output(2)
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7946: ovs-ofctl -O OpenFlow12 add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:7946"
( $at_check_trace; ovs-ofctl -O OpenFlow12 add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7946"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7947: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7947"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7947"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7948: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7948"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7948"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

sleep 1
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7950: filter_flow_install < ovs-vswitchd.log | strip_xout"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7950"
( $at_check_trace; filter_flow_install < ovs-vswitchd.log | strip_xout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09),eth_type(0x0800),ipv4(frag=no), actions: <del>
recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b),eth_type(0x0800),ipv4(frag=no), actions: <del>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7950"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7954: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:7954"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7954"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7954: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:7954"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7954"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7954: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:7954"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7954"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7954: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7954: wait failed" >&5

    $as_echo "ofproto-dpif.at:7954" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7954"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7954: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:7954"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7954"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7954: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:7954"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7954"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7954: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7954: wait failed" >&5

    $as_echo "ofproto-dpif.at:7954" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7954"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1188
#AT_START_1189
at_fn_group_banner 1189 'ofproto-dpif.at:7957' \
  "ofproto-dpif megaflow - mirroring, select_all" "  " 56
at_xfail=no
(
  $as_echo "1189. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7959: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:7959"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7959"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7959: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:7959"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7959"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7959: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7959"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7959"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7959: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:7959"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7959"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7959: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:7959"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7959"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7959: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7959"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7959"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7959: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:7959"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7959"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7960: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:7960"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7960"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

add_of_ports br0 1 2 3
ovs-vsctl \
        set Bridge br0 mirrors=@m --\
        --id=@p3 get Port p3 --\
        --id=@m create Mirror name=mymirror select_all=true output_port=@p3

cat >flows.txt <<'_ATEOF'
in_port=1 actions=output:2
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7970: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:7970"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7970"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7971: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7971"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7971"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

sleep 1
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7973: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7973"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7973"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

sleep 1
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7975: filter_flow_install < ovs-vswitchd.log | strip_xout"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7975"
( $at_check_trace; filter_flow_install < ovs-vswitchd.log | strip_xout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), actions: <del>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7975"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7978: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:7978"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7978"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7978: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:7978"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7978"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7978: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:7978"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7978"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7978: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7978: wait failed" >&5

    $as_echo "ofproto-dpif.at:7978" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7978"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7978: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:7978"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7978"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7978: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:7978"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7978"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:7978: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:7978: wait failed" >&5

    $as_echo "ofproto-dpif.at:7978" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:7978"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1189
#AT_START_1190
at_fn_group_banner 1190 'ofproto-dpif.at:7981' \
  "ofproto-dpif megaflow - mirroring, select_vlan" " " 56
at_xfail=no
(
  $as_echo "1190. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7982: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:7982"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7982"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7982: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:7982"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7982"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7982: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7982"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7982"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7982: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:7982"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7982"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7982: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:7982"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7982"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7982: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:7982"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7982"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7982: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:7982"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7982"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7983: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:7983"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7983"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

add_of_ports br0 1 2 3
ovs-vsctl \
        set Bridge br0 mirrors=@m --\
        --id=@p2 get Port p2 -- --id=@p3 get Port p3 --\
        --id=@m create Mirror name=mymirror select_all=true select_vlan=11 output_port=@p3

cat >flows.txt <<'_ATEOF'
in_port=1 actions=output:2
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7993: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:7993"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7993"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7994: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x8100),vlan(vid=11,pcp=7),encap(eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0))'"
at_fn_check_prepare_trace "ofproto-dpif.at:7994"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x8100),vlan(vid=11,pcp=7),encap(eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0))'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7994"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7995: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:7995"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7995"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

sleep 1
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:7997: filter_flow_install < ovs-vswitchd.log | strip_xout"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:7997"
( $at_check_trace; filter_flow_install < ovs-vswitchd.log | strip_xout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), actions: <del>
recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x8100),vlan(vid=11,pcp=7/0x0),encap(eth_type(0x0800),ipv4(frag=no)), actions: <del>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:7997"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8001: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:8001"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8001"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8001: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:8001"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8001"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8001: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:8001"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8001"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8001: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8001: wait failed" >&5

    $as_echo "ofproto-dpif.at:8001" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8001"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8001: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:8001"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8001"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8001: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8001"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8001"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8001: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8001: wait failed" >&5

    $as_echo "ofproto-dpif.at:8001" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8001"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1190
#AT_START_1191
at_fn_group_banner 1191 'ofproto-dpif.at:8004' \
  "ofproto-dpif megaflow - move action" "            " 56
at_xfail=no
(
  $as_echo "1191. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8005: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:8005"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8005"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8005: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:8005"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8005"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8005: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8005"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8005"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8005: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:8005"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8005"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8005: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:8005"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8005"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8005: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8005"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8005"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8005: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:8005"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8005"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8006: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:8006"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8006"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

add_of_ports br0 1 2
cat >flows.txt <<'_ATEOF'
table=0 in_port=1 ip,actions=move:NXM_OF_IP_SRC[]->NXM_NX_REG0[],resubmit(90)
table=0 in_port=90 ip,actions=move:NXM_NX_REG0[]->NXM_NX_REG1[],resubmit(91)
table=0 in_port=91 reg0=0x0a000002,actions=output(2)
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8013: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:8013"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8013"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8014: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:8014"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8014"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8015: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:8015"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8015"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

sleep 1
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8017: filter_flow_install < ovs-vswitchd.log | strip_xout"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:8017"
( $at_check_trace; filter_flow_install < ovs-vswitchd.log | strip_xout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(src=10.0.0.2,frag=no), actions: <del>
recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(src=10.0.0.4,frag=no), actions: <del>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8017"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8021: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:8021"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8021"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8021: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:8021"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8021"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8021: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:8021"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8021"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8021: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8021: wait failed" >&5

    $as_echo "ofproto-dpif.at:8021" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8021"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8021: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:8021"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8021"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8021: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8021"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8021"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8021: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8021: wait failed" >&5

    $as_echo "ofproto-dpif.at:8021" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8021"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1191
#AT_START_1192
at_fn_group_banner 1192 'ofproto-dpif.at:8024' \
  "ofproto-dpif megaflow - push action" "            " 56
at_xfail=no
(
  $as_echo "1192. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8025: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:8025"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8025"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8025: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:8025"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8025"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8025: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8025"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8025"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8025: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:8025"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8025"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8025: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:8025"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8025"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8025: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8025"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8025"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8025: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:8025"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8025"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8026: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:8026"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8026"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

add_of_ports br0 1 2
cat >flows.txt <<'_ATEOF'
table=0 in_port=1 ip,actions=push:NXM_OF_IP_SRC[],output(2)
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8031: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:8031"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8031"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8032: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:8032"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8032"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8033: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:8033"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8033"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

sleep 1
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8035: filter_flow_install < ovs-vswitchd.log | strip_xout"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:8035"
( $at_check_trace; filter_flow_install < ovs-vswitchd.log | strip_xout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(src=10.0.0.2,frag=no), actions: <del>
recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(src=10.0.0.4,frag=no), actions: <del>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8035"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8039: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:8039"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8039"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8039: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:8039"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8039"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8039: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:8039"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8039"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8039: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8039: wait failed" >&5

    $as_echo "ofproto-dpif.at:8039" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8039"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8039: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:8039"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8039"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8039: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8039"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8039"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8039: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8039: wait failed" >&5

    $as_echo "ofproto-dpif.at:8039" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8039"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1192
#AT_START_1193
at_fn_group_banner 1193 'ofproto-dpif.at:8042' \
  "ofproto-dpif megaflow - learning" "               " 56
at_xfail=no
(
  $as_echo "1193. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8043: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:8043"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8043"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8043: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:8043"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8043"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8043: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8043"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8043"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8043: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:8043"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8043"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8043: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:8043"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8043"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8043: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8043"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8043"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8043: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:8043"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8043"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8044: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:8044"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8044"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

add_of_ports br0 1 2
cat >flows.txt <<'_ATEOF'
table=0 in_port=1 actions=load:2->NXM_NX_REG0[0..15],learn(table=1,priority=65535,NXM_OF_ETH_SRC[],NXM_OF_VLAN_TCI[0..11],output:NXM_NX_REG0[0..15]),output:2
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8049: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:8049"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8049"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/stop
# We send each packet twice because the first packet in each flow causes the
# flow table to change and thus revalidations, which (depending on timing)
# can keep a megaflow from being installed.  The revalidations are done by
# the second iteration, allowing the flows to be installed.
for i in 1 2; do
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8056: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:8056"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8056"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8057: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:8057"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8057"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

    ovs-appctl time/warp 100
done
sleep 1
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8062: filter_flow_install < ovs-vswitchd.log | strip_xout"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:8062"
( $at_check_trace; filter_flow_install < ovs-vswitchd.log | strip_xout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09),eth_type(0x0800),ipv4(frag=no), actions: <del>
recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b),eth_type(0x0800),ipv4(frag=no), actions: <del>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8062"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8066: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:8066"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8066"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8066: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:8066"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8066"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8066: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:8066"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8066"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8066: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8066: wait failed" >&5

    $as_echo "ofproto-dpif.at:8066" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8066"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8066: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:8066"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8066"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8066: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8066"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8066"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8066: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8066: wait failed" >&5

    $as_echo "ofproto-dpif.at:8066" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8066"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1193
#AT_START_1194
at_fn_group_banner 1194 'ofproto-dpif.at:8069' \
  "ofproto-dpif megaflow - tunnels" "                " 56
at_xfail=no
(
  $as_echo "1194. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8070: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:8070"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8070"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8070: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:8070"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8070"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8070: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8070"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8070"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8070: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:8070"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8070"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8070: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:8070"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8070"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8070: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8070"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8070"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8070: add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1 "
at_fn_check_prepare_trace "ofproto-dpif.at:8070"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8070"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8072: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:8072"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8072"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8073: ovs-vsctl add-port br0 p2 -- set Interface p2 type=gre \\
     options:remote_ip=1.1.1.1 ofport_request=2 options:key=flow"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8073"
( $at_check_trace; ovs-vsctl add-port br0 p2 -- set Interface p2 type=gre \
     options:remote_ip=1.1.1.1 ofport_request=2 options:key=flow
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8073"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8075: ovs-vsctl add-port br0 p3 -- set Interface p3 type=dummy \\
          ofport_request=3"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8075"
( $at_check_trace; ovs-vsctl add-port br0 p3 -- set Interface p3 type=dummy \
          ofport_request=3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8075"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8077: ovs-vsctl add-port br0 p4 -- set Interface p4 type=gre \\
     options:remote_ip=1.1.1.2 options:tos=inherit options:ttl=inherit \\
     ofport_request=4 options:key=flow"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8077"
( $at_check_trace; ovs-vsctl add-port br0 p4 -- set Interface p4 type=gre \
     options:remote_ip=1.1.1.2 options:tos=inherit options:ttl=inherit \
     ofport_request=4 options:key=flow
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8077"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

cat >flows.txt <<'_ATEOF'
in_port=1,actions=output(2)
in_port=3,actions=output(4)
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8084: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:8084"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8084"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8087: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0xfd,ttl=128,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:8087"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0xfd,ttl=128,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8087"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

sleep 1
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8089: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0x1,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:8089"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0x1,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8089"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8090: ovs-appctl netdev-dummy/receive p3 'in_port(3),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0xfd,ttl=128,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:8090"
( $at_check_trace; ovs-appctl netdev-dummy/receive p3 'in_port(3),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0xfd,ttl=128,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8090"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

sleep 1
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8092: ovs-appctl netdev-dummy/receive p3 'in_port(3),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0x1,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:8092"
( $at_check_trace; ovs-appctl netdev-dummy/receive p3 'in_port(3),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0x1,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8092"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

sleep 1
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8094: filter_flow_install < ovs-vswitchd.log | strip_xout"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:8094"
( $at_check_trace; filter_flow_install < ovs-vswitchd.log | strip_xout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(tos=0xfd/0x3,frag=no), actions: <del>
recirc_id(0),in_port(3),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(tos=0x1,ttl=64,frag=no), actions: <del>
recirc_id(0),in_port(3),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(tos=0xfd,ttl=128,frag=no), actions: <del>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8094"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8099: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:8099"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8099"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8099: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:8099"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8099"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8099: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:8099"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8099"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8099: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8099: wait failed" >&5

    $as_echo "ofproto-dpif.at:8099" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8099"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8099: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:8099"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8099"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8099: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8099"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8099"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8099: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8099: wait failed" >&5

    $as_echo "ofproto-dpif.at:8099" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8099"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1194
#AT_START_1195
at_fn_group_banner 1195 'ofproto-dpif.at:8102' \
  "ofproto-dpif megaflow - dec_ttl" "                " 56
at_xfail=no
(
  $as_echo "1195. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8103: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:8103"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8103"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8103: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:8103"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8103"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8103: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8103"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8103"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8103: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:8103"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8103"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8103: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:8103"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8103"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8103: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8103"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8103"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8103: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:8103"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8103"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8104: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:8104"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8104"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

add_of_ports br0 1 2
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8106: ovs-vsctl set Bridge br0 flow_tables:0=@N1 -- --id=@N1 create Flow_Table name=t0 prefixes=nw_dst,nw_src"
at_fn_check_prepare_trace "ofproto-dpif.at:8106"
( $at_check_trace; ovs-vsctl set Bridge br0 flow_tables:0=@N1 -- --id=@N1 create Flow_Table name=t0 prefixes=nw_dst,nw_src
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8106"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

cat >flows.txt <<'_ATEOF'
table=0 in_port=1,icmp,nw_src=10.0.0.4 actions=dec_ttl,output(2)
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8110: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:8110"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8110"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8111: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:8111"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8111"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8112: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:8112"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8112"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

sleep 1
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8114: filter_flow_install < ovs-vswitchd.log | strip_xout"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:8114"
( $at_check_trace; filter_flow_install < ovs-vswitchd.log | strip_xout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(src=10.0.0.2/255.255.255.252,frag=no), actions: <del>
recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(src=10.0.0.4,proto=1,ttl=64,frag=no), actions: <del>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8114"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8118: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:8118"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8118"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8118: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:8118"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8118"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8118: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:8118"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8118"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8118: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8118: wait failed" >&5

    $as_echo "ofproto-dpif.at:8118" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8118"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8118: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:8118"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8118"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8118: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8118"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8118"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8118: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8118: wait failed" >&5

    $as_echo "ofproto-dpif.at:8118" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8118"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1195
#AT_START_1196
at_fn_group_banner 1196 'ofproto-dpif.at:8121' \
  "ofproto-dpif megaflow - set dl_dst" "             " 56
at_xfail=no
(
  $as_echo "1196. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8122: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:8122"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8122"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8122: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:8122"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8122"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8122: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8122"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8122"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8122: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:8122"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8122"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8122: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:8122"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8122"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8122: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8122"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8122"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8122: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:8122"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8122"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8123: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:8123"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8123"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

add_of_ports br0 1 2
cat >flows.txt <<'_ATEOF'
table=0 in_port=1 actions=mod_dl_dst(50:54:00:00:00:0a),output(2)
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8128: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:8128"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8128"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8129: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:8129"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8129"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8130: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:8130"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8130"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

sleep 1
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8135: strip_ufid < ovs-vswitchd.log | filter_flow_install | strip_used"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:8135"
( $at_check_trace; strip_ufid < ovs-vswitchd.log | filter_flow_install | strip_used
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(frag=no), actions:2
recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(frag=no), actions:set(eth(dst=50:54:00:00:00:0a)),2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8135"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8139: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:8139"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8139"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8139: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:8139"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8139"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8139: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:8139"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8139"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8139: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8139: wait failed" >&5

    $as_echo "ofproto-dpif.at:8139" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8139"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8139: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:8139"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8139"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8139: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8139"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8139"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8139: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8139: wait failed" >&5

    $as_echo "ofproto-dpif.at:8139" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8139"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1196
#AT_START_1197
at_fn_group_banner 1197 'ofproto-dpif.at:8177' \
  "ofproto-dpif megaflow - disabled" "               " 56
at_xfail=no
(
  $as_echo "1197. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

      touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8177: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:8177"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8177"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8177: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:8177"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8177"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8177: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8177"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8177"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8177: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:8177"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8177"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8177: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:8177"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8177"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8177: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8177"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8177"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8177: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:8177"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8177"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8177: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:8177"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8177"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   func=`printf '%s_' "" | cut -c 4-`
   add_${func}of_ports br0 1 2
   cat >flows.txt <<'_ATEOF'
table=0 in_port=1,ip,nw_dst=10.0.0.1 actions=output(2)
table=0 in_port=1,ip,nw_dst=10.0.0.3 actions=drop
_ATEOF

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8177: ovs-appctl upcall/disable-megaflows"
at_fn_check_prepare_trace "ofproto-dpif.at:8177"
( $at_check_trace; ovs-appctl upcall/disable-megaflows
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "megaflows disabled
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8177"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8177: ovs-appctl upcall/disable-ufid"
at_fn_check_prepare_trace "ofproto-dpif.at:8177"
( $at_check_trace; ovs-appctl upcall/disable-ufid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath dumping tersely using UFID disabled
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8177"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8177: ovs-appctl vlog/set dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:8177"
( $at_check_trace; ovs-appctl vlog/set dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8177"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8177: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:8177"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8177"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   for i in 1 2 3 4; do
       { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8177: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:8177"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8177"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

       { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8177: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:8177"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8177"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

       if [ $i -eq 1 ]; then
           sleep 1
       fi
   done
   sleep 1
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8177: strip_ufid < ovs-vswitchd.log | filter_flow_install | strip_used"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:8177"
( $at_check_trace; strip_ufid < ovs-vswitchd.log | filter_flow_install | strip_used
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "skb_priority(0),skb_mark(0),ct_state(-new-est-rel-rpl-inv-trk-snat-dnat),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0), actions:2
skb_priority(0),skb_mark(0),ct_state(-new-est-rel-rpl-inv-trk-snat-dnat),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0), actions:drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8177"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8177: strip_ufid < ovs-vswitchd.log | filter_flow_dump | grep 'packets:3'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:8177"
( $at_check_trace; strip_ufid < ovs-vswitchd.log | filter_flow_dump | grep 'packets:3'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "skb_priority(0),skb_mark(0),ct_state(0/0xff),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0), packets:3, bytes:126, used:0.0s, actions:2
skb_priority(0),skb_mark(0),ct_state(0/0xff),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0), packets:3, bytes:126, used:0.0s, actions:drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8177"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8177: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:8177"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8177"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8177: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:8177"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8177"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8177: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:8177"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8177"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8177: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8177: wait failed" >&5

    $as_echo "ofproto-dpif.at:8177" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8177"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8177: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:8177"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8177"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8177: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8177"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8177"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8177: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8177: wait failed" >&5

    $as_echo "ofproto-dpif.at:8177" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8177"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1197
#AT_START_1198
at_fn_group_banner 1198 'ofproto-dpif.at:8178' \
  "ofproto-dpif megaflow - disabled - pmd" "         " 56
at_xfail=no
(
  $as_echo "1198. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

      touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8178: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:8178"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8178"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8178: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:8178"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8178"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8178: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8178"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8178"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8178: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:8178"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8178"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8178: ovs-vswitchd --enable-dummy --disable-system --dummy-numa=\"0,0,0,0,1,1,1,1\" --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:8178"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system --dummy-numa="0,0,0,0,1,1,1,1" --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8178"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8178: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8178"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8178"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8178: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:8178"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8178"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8178: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:8178"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8178"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   func=`printf '%s_' " - pmd" | cut -c 4-`
   add_${func}of_ports br0 1 2
   cat >flows.txt <<'_ATEOF'
table=0 in_port=1,ip,nw_dst=10.0.0.1 actions=output(2)
table=0 in_port=1,ip,nw_dst=10.0.0.3 actions=drop
_ATEOF

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8178: ovs-appctl upcall/disable-megaflows"
at_fn_check_prepare_trace "ofproto-dpif.at:8178"
( $at_check_trace; ovs-appctl upcall/disable-megaflows
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "megaflows disabled
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8178"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8178: ovs-appctl upcall/disable-ufid"
at_fn_check_prepare_trace "ofproto-dpif.at:8178"
( $at_check_trace; ovs-appctl upcall/disable-ufid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath dumping tersely using UFID disabled
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8178"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8178: ovs-appctl vlog/set dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:8178"
( $at_check_trace; ovs-appctl vlog/set dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8178"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8178: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:8178"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8178"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   for i in 1 2 3 4; do
       { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8178: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:8178"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8178"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

       { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8178: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'"
at_fn_check_prepare_trace "ofproto-dpif.at:8178"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8178"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

       if [ $i -eq 1 ]; then
           sleep 1
       fi
   done
   sleep 1
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8178: strip_ufid < ovs-vswitchd.log | filter_flow_install | strip_used"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:8178"
( $at_check_trace; strip_ufid < ovs-vswitchd.log | filter_flow_install | strip_used
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "skb_priority(0),skb_mark(0),ct_state(-new-est-rel-rpl-inv-trk-snat-dnat),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0), actions:2
skb_priority(0),skb_mark(0),ct_state(-new-est-rel-rpl-inv-trk-snat-dnat),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0), actions:drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8178"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8178: strip_ufid < ovs-vswitchd.log | filter_flow_dump | grep 'packets:3'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:8178"
( $at_check_trace; strip_ufid < ovs-vswitchd.log | filter_flow_dump | grep 'packets:3'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "skb_priority(0),skb_mark(0),ct_state(0/0xff),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0), packets:3, bytes:126, used:0.0s, actions:2
skb_priority(0),skb_mark(0),ct_state(0/0xff),ct_zone(0),ct_mark(0),ct_label(0),recirc_id(0),dp_hash(0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.4,dst=10.0.0.3,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0), packets:3, bytes:126, used:0.0s, actions:drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8178"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8178: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:8178"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8178"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8178: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:8178"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8178"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8178: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:8178"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8178"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8178: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8178: wait failed" >&5

    $as_echo "ofproto-dpif.at:8178" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8178"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8178: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:8178"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8178"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8178: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8178"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8178"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8178: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8178: wait failed" >&5

    $as_echo "ofproto-dpif.at:8178" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8178"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1198
#AT_START_1199
at_fn_group_banner 1199 'ofproto-dpif.at:8180' \
  "ofproto-dpif - datapath port number change" "     " 56
at_xfail=no
(
  $as_echo "1199. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8181: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:8181"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8181"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8181: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:8181"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8181"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8181: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8181"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8181"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8181: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:8181"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8181"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8181: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:8181"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8181"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8181: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8181"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8181"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8181: add_of_br 0 set Bridge br0 fail-mode=standalone "
at_fn_check_prepare_trace "ofproto-dpif.at:8181"
( $at_check_trace; add_of_br 0 set Bridge br0 fail-mode=standalone
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8181"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1

# Trace a flow that should output to p1.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8185: ovs-appctl ofproto/trace br0 in_port=LOCAL,dl_src=10:20:30:40:50:60"
at_fn_check_prepare_trace "ofproto-dpif.at:8185"
( $at_check_trace; ovs-appctl ofproto/trace br0 in_port=LOCAL,dl_src=10:20:30:40:50:60
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8185"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8187: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:8187"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8187"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Change p1's port number to 5.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8191: ovs-appctl dpif-dummy/change-port-number ovs-dummy p1 5"
at_fn_check_prepare_trace "ofproto-dpif.at:8191"
( $at_check_trace; ovs-appctl dpif-dummy/change-port-number ovs-dummy p1 5
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Trace a flow that should output to p1 in its new location.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8194: ovs-appctl ofproto/trace br0 in_port=LOCAL,dl_src=10:20:30:40:50:60"
at_fn_check_prepare_trace "ofproto-dpif.at:8194"
( $at_check_trace; ovs-appctl ofproto/trace br0 in_port=LOCAL,dl_src=10:20:30:40:50:60
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8194"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8196: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:8196"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8196"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8198: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:8198"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8198"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8198: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:8198"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8198"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8198: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:8198"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8198"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8198: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8198: wait failed" >&5

    $as_echo "ofproto-dpif.at:8198" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8198"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8198: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:8198"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8198"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8198: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8198"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8198"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8198: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8198: wait failed" >&5

    $as_echo "ofproto-dpif.at:8198" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8198"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1199
#AT_START_1200
at_fn_group_banner 1200 'ofproto-dpif.at:8202' \
  "ofproto - bundle with variable bfd/cfm config" "  " 56
at_xfail=no
(
  $as_echo "1200. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8203: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:8203"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8203"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8203: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:8203"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8203"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8203: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8203"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8203"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8203: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:8203"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8203"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8203: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:8203"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8203"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8203: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8203"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8203"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8203: add_of_br 0 add-br br1 -- set bridge br1 datapath-type=dummy -- \\
                    add-bond br0 br0bond p0 p2 bond-mode=active-backup -- \\
                    add-bond br1 br1bond p1 p3 bond-mode=active-backup -- \\
                    set Interface p1 type=patch options:peer=p0 ofport_request=2 -- \\
                    set Interface p3 type=patch options:peer=p2 ofport_request=4 -- \\
                    set Interface p0 type=patch options:peer=p1 ofport_request=1 -- \\
                    set Interface p2 type=patch options:peer=p3 ofport_request=3 -- \\
                    set Interface p0 bfd:enable=true bfd:min_tx=300 bfd:min_rx=300 -- \\
                    set Interface p0 cfm_mpid=1 -- \\
                    set Interface p1 bfd:enable=true bfd:min_tx=500 bfd:min_rx=500 "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8203"
( $at_check_trace; add_of_br 0 add-br br1 -- set bridge br1 datapath-type=dummy -- \
                    add-bond br0 br0bond p0 p2 bond-mode=active-backup -- \
                    add-bond br1 br1bond p1 p3 bond-mode=active-backup -- \
                    set Interface p1 type=patch options:peer=p0 ofport_request=2 -- \
                    set Interface p3 type=patch options:peer=p2 ofport_request=4 -- \
                    set Interface p0 type=patch options:peer=p1 ofport_request=1 -- \
                    set Interface p2 type=patch options:peer=p3 ofport_request=3 -- \
                    set Interface p0 bfd:enable=true bfd:min_tx=300 bfd:min_rx=300 -- \
                    set Interface p0 cfm_mpid=1 -- \
                    set Interface p1 bfd:enable=true bfd:min_tx=500 bfd:min_rx=500
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8203"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



ovs-appctl time/stop
# advance the clock to stablize everything.
ovs-appctl time/warp 5000 100
# cfm/show should show 'recv' fault.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8218: ovs-appctl cfm/show | sed -n '/^.*fault:.*/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:8218"
( $at_check_trace; ovs-appctl cfm/show | sed -n '/^.*fault:.*/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	fault: recv
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8218"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# bfd/show should show 'up'.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8222: ovs-appctl bfd/show | sed -n '/^.*Session State:.*/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:8222"
( $at_check_trace; ovs-appctl bfd/show | sed -n '/^.*Session State:.*/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Local Session State: up
	Remote Session State: up
	Local Session State: up
	Remote Session State: up
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8222"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# bond/show should show 'may-enable: true' for all slaves.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8229: ovs-appctl bond/show | sed -n '/^.*may_enable:.*/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:8229"
( $at_check_trace; ovs-appctl bond/show | sed -n '/^.*may_enable:.*/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	may_enable: true
	may_enable: true
	may_enable: true
	may_enable: true
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8229"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# now disable the bfd on p1.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8237: ovs-vsctl set Interface p1 bfd:enable=false"
at_fn_check_prepare_trace "ofproto-dpif.at:8237"
( $at_check_trace; ovs-vsctl set Interface p1 bfd:enable=false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8237"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# advance the clock to stablize everything.
ovs-appctl time/warp 5000 100
# cfm/show should show 'recv' fault.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8241: ovs-appctl cfm/show | sed -n '/^.*fault:.*/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:8241"
( $at_check_trace; ovs-appctl cfm/show | sed -n '/^.*fault:.*/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	fault: recv
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8241"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# bfd/show should show 'down'.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8245: ovs-appctl bfd/show | sed -n '/^.*Session State:.*/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:8245"
( $at_check_trace; ovs-appctl bfd/show | sed -n '/^.*Session State:.*/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Local Session State: down
	Remote Session State: down
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8245"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# bond/show should show 'may-enable: false' for p0.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8250: ovs-appctl bond/show br0bond | sed -n '/^.*may_enable:.*/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:8250"
( $at_check_trace; ovs-appctl bond/show br0bond | sed -n '/^.*may_enable:.*/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	may_enable: false
	may_enable: true
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8250"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# now enable the bfd on p1 and disable bfd on p0.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8256: ovs-vsctl set Interface p1 bfd:enable=true"
at_fn_check_prepare_trace "ofproto-dpif.at:8256"
( $at_check_trace; ovs-vsctl set Interface p1 bfd:enable=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8256"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8257: ovs-vsctl set Interface p0 bfd:enable=false"
at_fn_check_prepare_trace "ofproto-dpif.at:8257"
( $at_check_trace; ovs-vsctl set Interface p0 bfd:enable=false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8257"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# advance the clock to stablize everything.
ovs-appctl time/warp 5000 100
# cfm/show should show 'recv' fault.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8261: ovs-appctl cfm/show | sed -n '/^.*fault:.*/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:8261"
( $at_check_trace; ovs-appctl cfm/show | sed -n '/^.*fault:.*/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	fault: recv
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8261"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# bfd/show should show 'down'.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8265: ovs-appctl bfd/show | sed -n '/^.*Session State:.*/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:8265"
( $at_check_trace; ovs-appctl bfd/show | sed -n '/^.*Session State:.*/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	Local Session State: down
	Remote Session State: down
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8265"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# bond/show should show 'may-enable: false' for p0 and p1.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8270: ovs-appctl bond/show | sed -n '/^.*may_enable:.*/p'"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:8270"
( $at_check_trace; ovs-appctl bond/show | sed -n '/^.*may_enable:.*/p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	may_enable: false
	may_enable: true
	may_enable: false
	may_enable: true
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8270"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8277: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:8277"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8277"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8277: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:8277"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8277"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8277: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:8277"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8277"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8277: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8277: wait failed" >&5

    $as_echo "ofproto-dpif.at:8277" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8277"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8277: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:8277"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8277"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8277: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8277"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8277"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8277: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8277: wait failed" >&5

    $as_echo "ofproto-dpif.at:8277" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8277"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1200
#AT_START_1201
at_fn_group_banner 1201 'ofproto-dpif.at:8280' \
  "ofproto-dpif - ofproto-dpif-monitor 1" "          " 56
at_xfail=no
(
  $as_echo "1201. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8281: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:8281"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8281"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8281: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:8281"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8281"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8281: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8281"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8281"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8281: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:8281"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8281"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8281: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:8281"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8281"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8281: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8281"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8281"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8281: add_of_br 0 add-port br0 p0 -- set interface p0 type=gre options:remote_ip=1.2.3.4 "
at_fn_check_prepare_trace "ofproto-dpif.at:8281"
( $at_check_trace; add_of_br 0 add-port br0 p0 -- set interface p0 type=gre options:remote_ip=1.2.3.4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8281"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# enable bfd on p0.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8284: ovs-vsctl set interface p0 bfd:enable=true"
at_fn_check_prepare_trace "ofproto-dpif.at:8284"
( $at_check_trace; ovs-vsctl set interface p0 bfd:enable=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8284"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# check log.
$as_echo "ofproto-dpif.at:8286: waiting until grep \"monitor thread created\" ovs-vswitchd.log..." >&5
ovs_wait_cond () {
    grep "monitor thread created" ovs-vswitchd.log
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8286: wait failed" >&5

    $as_echo "ofproto-dpif.at:8286" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8286"
fi

# disable bfd on p0.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8288: ovs-vsctl set interface p0 bfd:enable=false"
at_fn_check_prepare_trace "ofproto-dpif.at:8288"
( $at_check_trace; ovs-vsctl set interface p0 bfd:enable=false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8288"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# check log.
$as_echo "ofproto-dpif.at:8290: waiting until grep \"monitor thread terminated\" ovs-vswitchd.log..." >&5
ovs_wait_cond () {
    grep "monitor thread terminated" ovs-vswitchd.log
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8290: wait failed" >&5

    $as_echo "ofproto-dpif.at:8290" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8290"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8291: sed -e '/^.*ofproto_dpif_monitor.*\$/d' < ovs-vswitchd.log > tmp && ovs-appctl vlog/close && mv tmp ovs-vswitchd.log && ovs-appctl vlog/reopen"
at_fn_check_prepare_dynamic "sed -e '/^.*ofproto_dpif_monitor.*$/d' < ovs-vswitchd.log > tmp && ovs-appctl vlog/close && mv tmp ovs-vswitchd.log && ovs-appctl vlog/reopen" "ofproto-dpif.at:8291"
( $at_check_trace; sed -e '/^.*ofproto_dpif_monitor.*$/d' < ovs-vswitchd.log > tmp && ovs-appctl vlog/close && mv tmp ovs-vswitchd.log && ovs-appctl vlog/reopen
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8291"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# enable cfm on p0.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8294: ovs-vsctl set interface p0 cfm_mpid=10"
at_fn_check_prepare_trace "ofproto-dpif.at:8294"
( $at_check_trace; ovs-vsctl set interface p0 cfm_mpid=10
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8294"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# check log.
$as_echo "ofproto-dpif.at:8296: waiting until grep \"monitor thread created\" ovs-vswitchd.log..." >&5
ovs_wait_cond () {
    grep "monitor thread created" ovs-vswitchd.log
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8296: wait failed" >&5

    $as_echo "ofproto-dpif.at:8296" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8296"
fi

# disable cfm on p0.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8298: ovs-vsctl remove interface p0 cfm_mpid 10"
at_fn_check_prepare_trace "ofproto-dpif.at:8298"
( $at_check_trace; ovs-vsctl remove interface p0 cfm_mpid 10
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8298"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# check log.
$as_echo "ofproto-dpif.at:8300: waiting until grep \"monitor thread terminated\" ovs-vswitchd.log..." >&5
ovs_wait_cond () {
    grep "monitor thread terminated" ovs-vswitchd.log
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8300: wait failed" >&5

    $as_echo "ofproto-dpif.at:8300" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8300"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8301: sed -e '/^.*ofproto_dpif_monitor.*\$/d' < ovs-vswitchd.log > tmp && ovs-appctl vlog/close && mv tmp ovs-vswitchd.log && ovs-appctl vlog/reopen"
at_fn_check_prepare_dynamic "sed -e '/^.*ofproto_dpif_monitor.*$/d' < ovs-vswitchd.log > tmp && ovs-appctl vlog/close && mv tmp ovs-vswitchd.log && ovs-appctl vlog/reopen" "ofproto-dpif.at:8301"
( $at_check_trace; sed -e '/^.*ofproto_dpif_monitor.*$/d' < ovs-vswitchd.log > tmp && ovs-appctl vlog/close && mv tmp ovs-vswitchd.log && ovs-appctl vlog/reopen
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8301"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# enable both bfd and cfm on p0.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8304: ovs-vsctl set interface p0 bfd:enable=true cfm_mpid=10"
at_fn_check_prepare_trace "ofproto-dpif.at:8304"
( $at_check_trace; ovs-vsctl set interface p0 bfd:enable=true cfm_mpid=10
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8304"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# check log.
$as_echo "ofproto-dpif.at:8306: waiting until grep \"monitor thread created\" ovs-vswitchd.log..." >&5
ovs_wait_cond () {
    grep "monitor thread created" ovs-vswitchd.log
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8306: wait failed" >&5

    $as_echo "ofproto-dpif.at:8306" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8306"
fi

# disable bfd on p0.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8308: ovs-vsctl set interface p0 bfd:enable=false"
at_fn_check_prepare_trace "ofproto-dpif.at:8308"
( $at_check_trace; ovs-vsctl set interface p0 bfd:enable=false
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8308"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# check log, there should not be the log of thread terminated.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8310: sed -n \"s/^.*|ofproto_dpif_monitor(monitor[0-9]*)|INFO|\\(.* terminated\\)\$/\\1/p\" ovs-vswitchd.log"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:8310"
( $at_check_trace; sed -n "s/^.*|ofproto_dpif_monitor(monitor[0-9]*)|INFO|\(.* terminated\)$/\1/p" ovs-vswitchd.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8310"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# reenable bfd on p0.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8313: ovs-vsctl set interface p0 bfd:enable=true"
at_fn_check_prepare_trace "ofproto-dpif.at:8313"
( $at_check_trace; ovs-vsctl set interface p0 bfd:enable=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8313"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# check log, should still be on log of thread created.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8315: sed -n \"s/^.*|ofproto_dpif_monitor(monitor[0-9]*)|INFO|\\(.* created\\)\$/\\1/p\" ovs-vswitchd.log"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:8315"
( $at_check_trace; sed -n "s/^.*|ofproto_dpif_monitor(monitor[0-9]*)|INFO|\(.* created\)$/\1/p" ovs-vswitchd.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "monitor thread created
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8315"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# disable bfd and cfm together.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8319: ovs-vsctl set interface p0 bfd:enable=false -- remove interface p0 cfm_mpid 10"
at_fn_check_prepare_trace "ofproto-dpif.at:8319"
( $at_check_trace; ovs-vsctl set interface p0 bfd:enable=false -- remove interface p0 cfm_mpid 10
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8319"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# check log.
$as_echo "ofproto-dpif.at:8321: waiting until grep \"monitor thread terminated\" ovs-vswitchd.log..." >&5
ovs_wait_cond () {
    grep "monitor thread terminated" ovs-vswitchd.log
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8321: wait failed" >&5

    $as_echo "ofproto-dpif.at:8321" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8321"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8323: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:8323"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8323"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8323: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:8323"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8323"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8323: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:8323"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8323"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8323: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8323: wait failed" >&5

    $as_echo "ofproto-dpif.at:8323" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8323"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8323: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:8323"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8323"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8323: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8323"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8323"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8323: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8323: wait failed" >&5

    $as_echo "ofproto-dpif.at:8323" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8323"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1201
#AT_START_1202
at_fn_group_banner 1202 'ofproto-dpif.at:8327' \
  "ofproto-dpif - ofproto-dpif-monitor 2" "          " 56
at_xfail=no
(
  $as_echo "1202. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8328: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:8328"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8328"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8328: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:8328"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8328"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8328: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8328"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8328"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8328: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:8328"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8328"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8328: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:8328"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8328"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8328: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8328"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8328"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8328: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:8328"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8328"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



for i in `seq 1 199`
do
    { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8332: ovs-vsctl add-port br0 p\$i -- set interface p\$i type=gre options:remote_ip=1.2.3.4 options:key=\$i bfd:enable=true"
at_fn_check_prepare_dynamic "ovs-vsctl add-port br0 p$i -- set interface p$i type=gre options:remote_ip=1.2.3.4 options:key=$i bfd:enable=true" "ofproto-dpif.at:8332"
( $at_check_trace; ovs-vsctl add-port br0 p$i -- set interface p$i type=gre options:remote_ip=1.2.3.4 options:key=$i bfd:enable=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8332"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

done

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8335: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:8335"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8335"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8335: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:8335"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8335"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8335: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:8335"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8335"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8335: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8335: wait failed" >&5

    $as_echo "ofproto-dpif.at:8335" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8335"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8335: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:8335"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8335"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8335: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8335"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8335"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8335: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8335: wait failed" >&5

    $as_echo "ofproto-dpif.at:8335" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8335"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1202
#AT_START_1203
at_fn_group_banner 1203 'ofproto-dpif.at:8342' \
  "ofproto-dpif - forward resubmit" "                " 57
at_xfail=no
(
  $as_echo "1203. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8343: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:8343"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8343"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8343: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:8343"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8343"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8343: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8343"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8343"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8343: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:8343"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8343"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8343: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:8343"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8343"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8343: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8343"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8343"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8343: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:8343"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8343"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


(for i in `seq 0 99`; do
    j=`expr $i + 1`
    echo "table=$i, actions=resubmit(,$j)"
 done
 echo "table=100, actions=local") > flows
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8349: ovs-ofctl add-flows br0 flows"
at_fn_check_prepare_trace "ofproto-dpif.at:8349"
( $at_check_trace; ovs-ofctl add-flows br0 flows
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8349"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8350: ovs-appctl -vpoll_loop:off ofproto/trace br0 'eth_dst=ff:ff:ff:ff:ff:ff'"
at_fn_check_prepare_trace "ofproto-dpif.at:8350"
( $at_check_trace; ovs-appctl -vpoll_loop:off ofproto/trace br0 'eth_dst=ff:ff:ff:ff:ff:ff'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8350"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8352: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:8352"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 100
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8352"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8354: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:8354"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8354"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8354: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:8354"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8354"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8354: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:8354"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8354"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8354: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8354: wait failed" >&5

    $as_echo "ofproto-dpif.at:8354" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8354"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8354: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:8354"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8354"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8354: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8354"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8354"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8354: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8354: wait failed" >&5

    $as_echo "ofproto-dpif.at:8354" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8354"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1203
#AT_START_1204
at_fn_group_banner 1204 'ofproto-dpif.at:8359' \
  "ofproto-dpif - backward resubmit" "               " 57
at_xfail=no
(
  $as_echo "1204. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8360: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:8360"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8360"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8360: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:8360"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8360"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8360: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8360"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8360"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8360: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:8360"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8360"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8360: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:8360"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8360"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8360: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8360"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8360"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8360: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:8360"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8360"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


(echo "table=0, actions=resubmit(,66)"
 for i in `seq 2 66`; do
    j=`expr $i - 1`
    echo "table=$i, actions=resubmit(,$j)"
 done
 echo "table=1, actions=local") > flows
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8367: ovs-ofctl add-flows br0 flows"
at_fn_check_prepare_trace "ofproto-dpif.at:8367"
( $at_check_trace; ovs-ofctl add-flows br0 flows
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8367"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8368: ovs-appctl -vpoll_loop:off ofproto/trace br0 'eth_dst=ff:ff:ff:ff:ff:ff'"
at_fn_check_prepare_trace "ofproto-dpif.at:8368"
( $at_check_trace; ovs-appctl -vpoll_loop:off ofproto/trace br0 'eth_dst=ff:ff:ff:ff:ff:ff'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8368"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8370: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:8370"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Translation failed (Recursion too deep), packet is dropped.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8370"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8373: grep -c 'over max translation depth 64' stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:8373"
( $at_check_trace; grep -c 'over max translation depth 64' stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8373"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8376: check_logs \"/resubmit actions recursed/d\""
at_fn_check_prepare_trace "ofproto-dpif.at:8376"
( $at_check_trace; check_logs "/resubmit actions recursed/d"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8376"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8376: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:8376"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8376"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8376: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:8376"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8376"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8376: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8376: wait failed" >&5

    $as_echo "ofproto-dpif.at:8376" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8376"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8376: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:8376"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8376"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8376: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8376"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8376"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8376: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8376: wait failed" >&5

    $as_echo "ofproto-dpif.at:8376" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8376"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1204
#AT_START_1205
at_fn_group_banner 1205 'ofproto-dpif.at:8379' \
  "ofproto-dpif - infinite resubmit" "               " 57
at_xfail=no
(
  $as_echo "1205. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8380: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:8380"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8380"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8380: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:8380"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8380"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8380: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8380"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8380"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8380: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:8380"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8380"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8380: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:8380"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8380"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8380: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8380"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8380"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8380: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:8380"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8380"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8381: ovs-ofctl add-flow br0 actions=resubmit:1,resubmit:2,output:3"
at_fn_check_prepare_trace "ofproto-dpif.at:8381"
( $at_check_trace; ovs-ofctl add-flow br0 actions=resubmit:1,resubmit:2,output:3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8381"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8382: ovs-appctl -vpoll_loop:off ofproto/trace br0 'eth_dst=ff:ff:ff:ff:ff:ff'"
at_fn_check_prepare_trace "ofproto-dpif.at:8382"
( $at_check_trace; ovs-appctl -vpoll_loop:off ofproto/trace br0 'eth_dst=ff:ff:ff:ff:ff:ff'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8382"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8384: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:8384"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Translation failed (Recursion too deep), packet is dropped.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8384"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8387: grep -c 'over max translation depth 64' stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:8387"
( $at_check_trace; grep -c 'over max translation depth 64' stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8387"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8390: check_logs \"/resubmit actions recursed/d\""
at_fn_check_prepare_trace "ofproto-dpif.at:8390"
( $at_check_trace; check_logs "/resubmit actions recursed/d"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8390"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8390: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:8390"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8390"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8390: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:8390"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8390"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8390: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8390: wait failed" >&5

    $as_echo "ofproto-dpif.at:8390" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8390"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8390: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:8390"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8390"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8390: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8390"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8390"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8390: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8390: wait failed" >&5

    $as_echo "ofproto-dpif.at:8390" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8390"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1205
#AT_START_1206
at_fn_group_banner 1206 'ofproto-dpif.at:8393' \
  "ofproto-dpif - exponential resubmit chain" "      " 57
at_xfail=no
(
  $as_echo "1206. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8394: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:8394"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8394"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8394: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:8394"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8394"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8394: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8394"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8394"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8394: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:8394"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8394"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8394: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:8394"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8394"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8394: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8394"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8394"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8394: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:8394"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8394"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1
(for i in `seq 1 64`; do
     j=`expr $i + 1`
     echo "in_port=$i, actions=resubmit:$j, resubmit:$j, local"
 done
 echo "in_port=65, actions=local") > flows
 { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8401: ovs-ofctl add-flows br0 flows"
at_fn_check_prepare_trace "ofproto-dpif.at:8401"
( $at_check_trace; ovs-ofctl add-flows br0 flows
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8401"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8402: ovs-appctl -vpoll_loop:off ofproto/trace br0 'in_port=1'"
at_fn_check_prepare_trace "ofproto-dpif.at:8402"
( $at_check_trace; ovs-appctl -vpoll_loop:off ofproto/trace br0 'in_port=1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8402"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8403: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:8403"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Translation failed (Too many resubmits), packet is dropped.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8403"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8406: grep -c 'over 4096 resubmit actions' stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:8406"
( $at_check_trace; grep -c 'over 4096 resubmit actions' stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8406"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8408: check_logs \"/over.*resubmit actions/d\""
at_fn_check_prepare_trace "ofproto-dpif.at:8408"
( $at_check_trace; check_logs "/over.*resubmit actions/d"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8408"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8408: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:8408"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8408"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8408: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:8408"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8408"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8408: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8408: wait failed" >&5

    $as_echo "ofproto-dpif.at:8408" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8408"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8408: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:8408"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8408"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8408: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8408"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8408"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8408: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8408: wait failed" >&5

    $as_echo "ofproto-dpif.at:8408" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8408"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1206
#AT_START_1207
at_fn_group_banner 1207 'ofproto-dpif.at:8411' \
  "ofproto-dpif - too many output actions" "         " 57
at_xfail=no
(
  $as_echo "1207. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8412: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:8412"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8412"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8412: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:8412"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8412"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8412: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8412"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8412"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8412: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:8412"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8412"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8412: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:8412"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8412"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8412: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8412"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8412"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8412: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:8412"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8412"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1
(for i in `seq 1 12`; do
     j=`expr $i + 1`
     echo "in_port=$i, actions=resubmit:$j, resubmit:$j, local"
 done
 echo "in_port=13, actions=local,local,local,local,local,local,local,local") > flows
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8419: ovs-ofctl add-flows br0 flows"
at_fn_check_prepare_trace "ofproto-dpif.at:8419"
( $at_check_trace; ovs-ofctl add-flows br0 flows
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8419"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8420: ovs-appctl -vpoll_loop:off ofproto/trace br0 'in_port=1'"
at_fn_check_prepare_trace "ofproto-dpif.at:8420"
( $at_check_trace; ovs-appctl -vpoll_loop:off ofproto/trace br0 'in_port=1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8420"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8421: grep -c -e '- Uses action(s) not supported by datapath' stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:8421"
( $at_check_trace; grep -c -e '- Uses action(s) not supported by datapath' stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8421"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8424: grep -c 'resubmits yielded over 64 kB of actions' stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:8424"
( $at_check_trace; grep -c 'resubmits yielded over 64 kB of actions' stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8424"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8426: check_logs \"/resubmits yielded over 64 kB of actions/d\""
at_fn_check_prepare_trace "ofproto-dpif.at:8426"
( $at_check_trace; check_logs "/resubmits yielded over 64 kB of actions/d"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8426"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8426: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:8426"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8426"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8426: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:8426"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8426"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8426: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8426: wait failed" >&5

    $as_echo "ofproto-dpif.at:8426" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8426"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8426: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:8426"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8426"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8426: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8426"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8426"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8426: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8426: wait failed" >&5

    $as_echo "ofproto-dpif.at:8426" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8426"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1207
#AT_START_1208
at_fn_group_banner 1208 'ofproto-dpif.at:8429' \
  "ofproto-dpif - stack too deep" "                  " 57
at_xfail=no
(
  $as_echo "1208. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8430: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:8430"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8430"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8430: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:8430"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8430"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8430: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8430"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8430"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8430: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:8430"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8430"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8430: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:8430"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8430"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8430: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8430"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8430"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8430: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:8430"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8430"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1
(for i in `seq 1 12`; do
     j=`expr $i + 1`
     echo "in_port=$i, actions=resubmit:$j, resubmit:$j, local"
 done
 push="push:NXM_NX_REG0[]"
 echo "in_port=13, actions=$push,$push,$push,$push,$push,$push,$push,$push") > flows
 { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8438: ovs-ofctl add-flows br0 flows"
at_fn_check_prepare_trace "ofproto-dpif.at:8438"
( $at_check_trace; ovs-ofctl add-flows br0 flows
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8438"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8439: ovs-appctl -vpoll_loop:off ofproto/trace br0 'in_port=1'"
at_fn_check_prepare_trace "ofproto-dpif.at:8439"
( $at_check_trace; ovs-appctl -vpoll_loop:off ofproto/trace br0 'in_port=1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8439"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8440: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:8440"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Translation failed (Stack too deep), packet is dropped.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8440"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8443: grep -c 'resubmits yielded over 64 kB of stack' stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:8443"
( $at_check_trace; grep -c 'resubmits yielded over 64 kB of stack' stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8443"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8445: check_logs \"/resubmits yielded over 64 kB of stack/d\""
at_fn_check_prepare_trace "ofproto-dpif.at:8445"
( $at_check_trace; check_logs "/resubmits yielded over 64 kB of stack/d"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8445"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8445: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:8445"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8445"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8445: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:8445"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8445"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8445: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8445: wait failed" >&5

    $as_echo "ofproto-dpif.at:8445" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8445"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8445: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:8445"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8445"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8445: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8445"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8445"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8445: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8445: wait failed" >&5

    $as_echo "ofproto-dpif.at:8445" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8445"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1208
#AT_START_1209
at_fn_group_banner 1209 'ofproto-dpif.at:8449' \
  "ofproto-dpif packet-out controller" "             " 57
at_xfail=no
(
  $as_echo "1209. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8450: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:8450"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8450"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8450: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:8450"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8450"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8450: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8450"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8450"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8450: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:8450"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8450"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8450: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:8450"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8450"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8450: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8450"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8450"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8450: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:8450"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8450"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8453: ovs-ofctl add-flow br0 'dl_dst=50:54:00:00:00:0a actions=controller'"
at_fn_check_prepare_trace "ofproto-dpif.at:8453"
( $at_check_trace; ovs-ofctl add-flow br0 'dl_dst=50:54:00:00:00:0a actions=controller'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8453"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8456: ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:8456"
( $at_check_trace; ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8456"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
	{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8459: ovs-ofctl -O OpenFlow13 packet-out br0 CONTROLLER controller '50540000000a5054000000091234'"
at_fn_check_prepare_trace "ofproto-dpif.at:8459"
( $at_check_trace; ovs-ofctl -O OpenFlow13 packet-out br0 CONTROLLER controller '50540000000a5054000000091234'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8459"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

done

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8462: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:8462"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8462"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8462: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8462"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8462"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8462: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8462: wait failed" >&5

    $as_echo "ofproto-dpif.at:8462" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8462"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8463: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:8463"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): total_len=14 in_port=CONTROLLER (via action) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,dl_type=0x1234
NXT_PACKET_IN (xid=0x0): total_len=14 in_port=CONTROLLER (via action) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,dl_type=0x1234
NXT_PACKET_IN (xid=0x0): total_len=14 in_port=CONTROLLER (via action) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,dl_type=0x1234
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8463"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8474: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:8474"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " dl_dst=50:54:00:00:00:0a actions=CONTROLLER:65535
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8474"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


(echo "OFPST_TABLE reply (OF1.3) (xid=0x2):
  table 0:
    active=1, lookup=0, matched=0

  table 1:
    active=0, lookup=0, matched=0
"
 for i in `seq 2 253`; do
     printf '  table %d: ditto\n' $i
 done) > expout
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8489: ovs-ofctl -O OpenFlow13 dump-tables br0 "
at_fn_check_prepare_trace "ofproto-dpif.at:8489"
( $at_check_trace; ovs-ofctl -O OpenFlow13 dump-tables br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8489"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8491: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:8491"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8491"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8491: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:8491"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8491"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8491: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:8491"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8491"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8491: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8491: wait failed" >&5

    $as_echo "ofproto-dpif.at:8491" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8491"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8491: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:8491"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8491"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8491: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8491"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8491"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8491: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8491: wait failed" >&5

    $as_echo "ofproto-dpif.at:8491" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8491"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1209
#AT_START_1210
at_fn_group_banner 1210 'ofproto-dpif.at:8494' \
  "ofproto-dpif packet-out controller (patch port)" "" 57
at_xfail=no
(
  $as_echo "1210. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8495: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:8495"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8495"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8495: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:8495"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8495"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8495: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8495"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8495"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8495: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:8495"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8495"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8495: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:8495"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8495"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8495: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8495"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8495"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8495: add_of_br 0 -- \\
   add-port br0 p1 -- \\
   set interface p1 type=patch options:peer=p2 -- \\
   add-br br1 -- \\
   set bridge br1 datapath-type=dummy -- \\
   set bridge br1 fail-mode=secure -- \\
   set bridge br1 protocols='OpenFlow10,OpenFlow11,OpenFlow12,OpenFlow13' -- \\
   add-port br1 p2 -- \\
   set interface p2 type=patch options:peer=p1 -- "
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8495"
( $at_check_trace; add_of_br 0 -- \
   add-port br0 p1 -- \
   set interface p1 type=patch options:peer=p2 -- \
   add-br br1 -- \
   set bridge br1 datapath-type=dummy -- \
   set bridge br1 fail-mode=secure -- \
   set bridge br1 protocols='OpenFlow10,OpenFlow11,OpenFlow12,OpenFlow13' -- \
   add-port br1 p2 -- \
   set interface p2 type=patch options:peer=p1 --
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8495"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }




{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8507: ovs-ofctl monitor br1 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:8507"
( $at_check_trace; ovs-ofctl monitor br1 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8507"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
	{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8510: ovs-ofctl -O OpenFlow13 packet-out br0 CONTROLLER output:1 '50540000000a5054000000091234'"
at_fn_check_prepare_trace "ofproto-dpif.at:8510"
( $at_check_trace; ovs-ofctl -O OpenFlow13 packet-out br0 CONTROLLER output:1 '50540000000a5054000000091234'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8510"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

done

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8513: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:8513"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8513"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8513: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8513"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8513"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8513: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8513: wait failed" >&5

    $as_echo "ofproto-dpif.at:8513" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8513"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8514: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:8514"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0x0 total_len=14 in_port=1 (via no_match) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,dl_type=0x1234
NXT_PACKET_IN (xid=0x0): cookie=0x0 total_len=14 in_port=1 (via no_match) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,dl_type=0x1234
NXT_PACKET_IN (xid=0x0): cookie=0x0 total_len=14 in_port=1 (via no_match) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,dl_type=0x1234
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8514"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


(echo "OFPST_TABLE reply (OF1.3) (xid=0x2):
  table 0:
    active=0, lookup=0, matched=0
"
 for i in `seq 1 253`; do
     printf '  table %d: ditto\n' $i
 done) > expout
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8532: ovs-ofctl -O OpenFlow13 dump-tables br0 "
at_fn_check_prepare_trace "ofproto-dpif.at:8532"
( $at_check_trace; ovs-ofctl -O OpenFlow13 dump-tables br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8532"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


(echo "OFPST_TABLE reply (OF1.3) (xid=0x2):
  table 0:
    active=0, lookup=3, matched=0

  table 1:
    active=0, lookup=0, matched=0
"
 for i in `seq 2 253`; do
     printf '  table %d: ditto\n' $i
 done) > expout
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8544: ovs-ofctl -O OpenFlow13 dump-tables br1 "
at_fn_check_prepare_trace "ofproto-dpif.at:8544"
( $at_check_trace; ovs-ofctl -O OpenFlow13 dump-tables br1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8544"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8546: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:8546"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8546"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8546: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:8546"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8546"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8546: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:8546"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8546"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8546: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8546: wait failed" >&5

    $as_echo "ofproto-dpif.at:8546" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8546"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8546: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:8546"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8546"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8546: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8546"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8546"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8546: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8546: wait failed" >&5

    $as_echo "ofproto-dpif.at:8546" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8546"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1210
#AT_START_1211
at_fn_group_banner 1211 'ofproto-dpif.at:8549' \
  "ofproto-dpif packet-out pipeline match field (OpenFlow 1.5)" "" 57
at_xfail=no
(
  $as_echo "1211. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8550: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:8550"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8550"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8550: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:8550"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8550"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8550: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8550"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8550"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8550: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:8550"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8550"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8550: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:8550"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8550"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8550: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8550"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8550"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8550: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:8550"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8550"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8552: ovs-ofctl add-tlv-map br0 \"{class=0xffff,type=0,len=8}->tun_metadata2\""
at_fn_check_prepare_trace "ofproto-dpif.at:8552"
( $at_check_trace; ovs-ofctl add-tlv-map br0 "{class=0xffff,type=0,len=8}->tun_metadata2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8552"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8553: ovs-ofctl add-tlv-map br0 \"{class=0xffff,type=1,len=4}->tun_metadata3\""
at_fn_check_prepare_trace "ofproto-dpif.at:8553"
( $at_check_trace; ovs-ofctl add-tlv-map br0 "{class=0xffff,type=1,len=4}->tun_metadata3"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8553"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

cat >flows.txt <<'_ATEOF'
table=0,in_port=1 actions=controller
table=0,tun_id=3 actions=controller
table=0,metadata=5 actions=controller
table=0,reg0=1,reg4=2,reg8=3,reg12=5 actions=controller
table=0,tun_src=1.1.1.1,tun_dst=2.2.2.2,tun_gbp_id=0x01,tun_gbp_flags=0x03 actions=controller
table=0,tun_metadata3=0x11 actions=controller
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8562: ovs-ofctl -O OpenFlow15 add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:8562"
( $at_check_trace; ovs-ofctl -O OpenFlow15 add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8562"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8564: ovs-ofctl -O OpenFlow15 -P standard monitor br0 --detach --no-chdir --pidfile"
at_fn_check_prepare_trace "ofproto-dpif.at:8564"
( $at_check_trace; ovs-ofctl -O OpenFlow15 -P standard monitor br0 --detach --no-chdir --pidfile
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8564"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl -t ovs-ofctl ofctl/send 0609000c0123456700000080
ovs-appctl -t ovs-ofctl ofctl/barrier
ovs-appctl -t ovs-ofctl ofctl/set-output-file monitor.log


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8570: ovs-ofctl -O OpenFlow15 packet-out br0 \"in_port=1 packet=0001020304050010203040501111 actions=table\""
at_fn_check_prepare_trace "ofproto-dpif.at:8570"
( $at_check_trace; ovs-ofctl -O OpenFlow15 packet-out br0 "in_port=1 packet=0001020304050010203040501111 actions=table"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8570"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8571: ovs-ofctl -O OpenFlow15 packet-out br0 \"in_port=2,tunnel_id=3 packet=0001020304050010203040502222 actions=table\""
at_fn_check_prepare_trace "ofproto-dpif.at:8571"
( $at_check_trace; ovs-ofctl -O OpenFlow15 packet-out br0 "in_port=2,tunnel_id=3 packet=0001020304050010203040502222 actions=table"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8571"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8572: ovs-ofctl -O OpenFlow15 packet-out br0 \"in_port=2,metadata=5 packet=0001020304050010203040503333 actions=table\""
at_fn_check_prepare_trace "ofproto-dpif.at:8572"
( $at_check_trace; ovs-ofctl -O OpenFlow15 packet-out br0 "in_port=2,metadata=5 packet=0001020304050010203040503333 actions=table"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8572"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8573: ovs-ofctl -O OpenFlow15 packet-out br0 \"in_port=2,reg0=1,reg4=2,reg8=3,reg12=5 packet=0001020304050010203040503333 actions=table\""
at_fn_check_prepare_trace "ofproto-dpif.at:8573"
( $at_check_trace; ovs-ofctl -O OpenFlow15 packet-out br0 "in_port=2,reg0=1,reg4=2,reg8=3,reg12=5 packet=0001020304050010203040503333 actions=table"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8573"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8574: ovs-ofctl -O OpenFlow15 packet-out br0 \"in_port=2,tun_src=1.1.1.1,tun_dst=2.2.2.2,tun_gbp_id=0x01,tun_gbp_flags=0x03 packet=0001020304050010203040503333 actions=table\""
at_fn_check_prepare_trace "ofproto-dpif.at:8574"
( $at_check_trace; ovs-ofctl -O OpenFlow15 packet-out br0 "in_port=2,tun_src=1.1.1.1,tun_dst=2.2.2.2,tun_gbp_id=0x01,tun_gbp_flags=0x03 packet=0001020304050010203040503333 actions=table"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8574"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8575: ovs-ofctl -O OpenFlow15 packet-out br0 \"in_port=2,tun_metadata2=0x22,tun_metadata3=0x11 packet=0001020304050010203040503333 actions=table\""
at_fn_check_prepare_trace "ofproto-dpif.at:8575"
( $at_check_trace; ovs-ofctl -O OpenFlow15 packet-out br0 "in_port=2,tun_metadata2=0x22,tun_metadata3=0x11 packet=0001020304050010203040503333 actions=table"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8575"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


ovs-appctl -t ovs-ofctl ofctl/barrier
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8578: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:8578"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8578"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8578: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8578"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8578"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8578: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8578: wait failed" >&5

    $as_echo "ofproto-dpif.at:8578" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8578"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8580: sed 's/ (xid=0x[0-9a-fA-F]*)//' monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:8580"
( $at_check_trace; sed 's/ (xid=0x[0-9a-fA-F]*)//' monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPT_PACKET_IN (OF1.5): cookie=0x0 total_len=14 in_port=1 (via packet_out) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=00:10:20:30:40:50,dl_dst=00:01:02:03:04:05,dl_type=0x1111
OFPT_PACKET_IN (OF1.5): cookie=0x0 total_len=14 tun_id=0x3,in_port=2 (via packet_out) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=00:10:20:30:40:50,dl_dst=00:01:02:03:04:05,dl_type=0x2222
OFPT_PACKET_IN (OF1.5): cookie=0x0 total_len=14 metadata=0x5,in_port=2 (via packet_out) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=00:10:20:30:40:50,dl_dst=00:01:02:03:04:05,dl_type=0x3333
OFPT_PACKET_IN (OF1.5): cookie=0x0 total_len=14 reg0=0x1,reg4=0x2,reg8=0x3,reg12=0x5,in_port=2 (via packet_out) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=00:10:20:30:40:50,dl_dst=00:01:02:03:04:05,dl_type=0x3333
OFPT_PACKET_IN (OF1.5): cookie=0x0 total_len=14 tun_src=1.1.1.1,tun_dst=2.2.2.2,tun_gbp_id=1,tun_gbp_flags=0x3,in_port=2 (via packet_out) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=00:10:20:30:40:50,dl_dst=00:01:02:03:04:05,dl_type=0x3333
OFPT_PACKET_IN (OF1.5): cookie=0x0 total_len=14 tun_metadata2=0x22,tun_metadata3=0x11,in_port=2 (via packet_out) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=00:10:20:30:40:50,dl_dst=00:01:02:03:04:05,dl_type=0x3333
OFPT_BARRIER_REPLY (OF1.5):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8580"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8596: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:8596"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8596"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8596: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:8596"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8596"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8596: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:8596"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8596"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8596: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8596: wait failed" >&5

    $as_echo "ofproto-dpif.at:8596" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8596"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8596: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:8596"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8596"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8596: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8596"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8596"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8596: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8596: wait failed" >&5

    $as_echo "ofproto-dpif.at:8596" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8596"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1211
#AT_START_1212
at_fn_group_banner 1212 'ofproto-dpif.at:8599' \
  "ofproto-dpif packet-out goto_table" "             " 57
at_xfail=no
(
  $as_echo "1212. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8600: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:8600"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8600"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8600: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:8600"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8600"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8600: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8600"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8600"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8600: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:8600"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8600"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8600: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:8600"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8600"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8600: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8600"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8600"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8600: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:8600"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8600"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2

cat >flows.txt <<'_ATEOF'
table=0 dl_dst=50:54:00:00:00:0a actions=goto_table(1)
table=1 dl_dst=50:54:00:00:00:0a actions=controller
_ATEOF

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8607: ovs-ofctl -O OpenFlow13 add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:8607"
( $at_check_trace; ovs-ofctl -O OpenFlow13 add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8607"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8610: ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:8610"
( $at_check_trace; ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8610"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x1234)'
done

$as_echo "ofproto-dpif.at:8616: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8616: wait failed" >&5

    $as_echo "ofproto-dpif.at:8616" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8616"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8617: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:8617"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8617"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8617: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8617"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8617"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8617: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8617: wait failed" >&5

    $as_echo "ofproto-dpif.at:8617" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8617"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8618: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:8618"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x0 total_len=14 in_port=1 (via action) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,dl_type=0x1234
NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x0 total_len=14 in_port=1 (via action) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,dl_type=0x1234
NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x0 total_len=14 in_port=1 (via action) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,dl_type=0x1234
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8618"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8629: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:8629"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8629"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8630: ovs-ofctl -O OpenFlow13 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:8630"
( $at_check_trace; ovs-ofctl -O OpenFlow13 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " n_packets=3, n_bytes=42, dl_dst=50:54:00:00:00:0a actions=goto_table:1
 table=1, n_packets=3, n_bytes=42, dl_dst=50:54:00:00:00:0a actions=CONTROLLER:65535
OFPST_FLOW reply (OF1.3):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8630"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


(echo "OFPST_TABLE reply (OF1.3) (xid=0x2):
  table 0:
    active=1, lookup=3, matched=3

  table 1: ditto
  table 2:
    active=0, lookup=0, matched=0
"
 for i in `seq 3 253`; do
     printf '  table %d: ditto\n' $i
 done) > expout
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8647: ovs-ofctl -O OpenFlow13 dump-tables br0 "
at_fn_check_prepare_trace "ofproto-dpif.at:8647"
( $at_check_trace; ovs-ofctl -O OpenFlow13 dump-tables br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8647"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8649: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:8649"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8649"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8649: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:8649"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8649"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8649: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:8649"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8649"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8649: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8649: wait failed" >&5

    $as_echo "ofproto-dpif.at:8649" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8649"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8649: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:8649"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8649"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8649: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8649"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8649"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8649: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8649: wait failed" >&5

    $as_echo "ofproto-dpif.at:8649" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8649"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1212
#AT_START_1213
at_fn_group_banner 1213 'ofproto-dpif.at:8653' \
  "ofproto-dpif packet-out table-miss (continue)" "  " 57
at_xfail=no
(
  $as_echo "1213. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8654: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:8654"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8654"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8654: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:8654"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8654"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8654: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8654"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8654"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8654: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:8654"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8654"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8654: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:8654"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8654"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8654: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8654"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8654"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8654: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:8654"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8654"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8657: ovs-ofctl -O OpenFlow11 add-flow br0 'table=1 dl_dst=50:54:00:00:00:0a actions=controller'"
at_fn_check_prepare_trace "ofproto-dpif.at:8657"
( $at_check_trace; ovs-ofctl -O OpenFlow11 add-flow br0 'table=1 dl_dst=50:54:00:00:00:0a actions=controller'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8657"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8658: ovs-ofctl -O OpenFlow11 mod-table br0 all continue"
at_fn_check_prepare_trace "ofproto-dpif.at:8658"
( $at_check_trace; ovs-ofctl -O OpenFlow11 mod-table br0 all continue
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8658"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8661: ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:8661"
( $at_check_trace; ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8661"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x1234)'
done

$as_echo "ofproto-dpif.at:8667: waiting until test \`wc -l < ofctl_monitor.log\` -ge 6..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 6
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8667: wait failed" >&5

    $as_echo "ofproto-dpif.at:8667" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8667"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8668: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:8668"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8668"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8668: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8668"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8668"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8668: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8668: wait failed" >&5

    $as_echo "ofproto-dpif.at:8668" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8668"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8669: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:8669"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x0 total_len=14 in_port=1 (via action) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,dl_type=0x1234
NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x0 total_len=14 in_port=1 (via action) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,dl_type=0x1234
NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x0 total_len=14 in_port=1 (via action) data_len=14 (unbuffered)
vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,dl_type=0x1234
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8669"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8680: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:8680"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8680"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8681: ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:8681"
( $at_check_trace; ovs-ofctl -O OpenFlow11 dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " table=1, n_packets=3, n_bytes=42, dl_dst=50:54:00:00:00:0a actions=CONTROLLER:65535
OFPST_FLOW reply (OF1.1):
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8681"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


(echo "OFPST_TABLE reply (OF1.3) (xid=0x2):
  table 0:
    active=0, lookup=3, matched=0

  table 1:
    active=1, lookup=3, matched=3

  table 2:
    active=0, lookup=0, matched=0
"
 for i in `seq 3 253`; do
     printf '  table %d: ditto\n' $i
 done) > expout
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8699: ovs-ofctl -O OpenFlow13 dump-tables br0 "
at_fn_check_prepare_trace "ofproto-dpif.at:8699"
( $at_check_trace; ovs-ofctl -O OpenFlow13 dump-tables br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8699"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8701: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:8701"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8701"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8701: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:8701"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8701"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8701: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:8701"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8701"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8701: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8701: wait failed" >&5

    $as_echo "ofproto-dpif.at:8701" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8701"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8701: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:8701"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8701"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8701: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8701"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8701"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8701: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8701: wait failed" >&5

    $as_echo "ofproto-dpif.at:8701" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8701"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1213
#AT_START_1214
at_fn_group_banner 1214 'ofproto-dpif.at:8704' \
  "ofproto-dpif - ICMPv6" "                          " 57
at_xfail=no
(
  $as_echo "1214. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8705: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:8705"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8705"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8705: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:8705"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8705"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8705: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8705"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8705"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8705: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:8705"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8705"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8705: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:8705"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8705"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8705: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8705"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8705"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8705: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:8705"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8705"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1



{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8710: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:8710"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8710"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


ovs-appctl netdev-dummy/receive p1 '0060970769ea0000860580da86dd6000000000203afffe80000000000000020086fffe0580dafe80000000000000026097fffe0769ea870068bd00000000fe80000000000000026097fffe0769ea01010000860580da'

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8714: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:8714"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8714"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8714: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8714"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8714"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8714: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8714: wait failed" >&5

    $as_echo "ofproto-dpif.at:8714" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8714"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8716: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:8716"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0x0 total_len=86 in_port=1 (via no_match) data_len=86 (unbuffered)
icmp6,vlan_tci=0x0000,dl_src=00:00:86:05:80:da,dl_dst=00:60:97:07:69:ea,ipv6_src=fe80::200:86ff:fe05:80da,ipv6_dst=fe80::260:97ff:fe07:69ea,ipv6_label=0x00000,nw_tos=0,nw_ecn=0,nw_ttl=255,icmp_type=135,icmp_code=0,nd_target=fe80::260:97ff:fe07:69ea,nd_sll=00:00:86:05:80:da,nd_tll=00:00:00:00:00:00 icmp6_csum:68bd
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8716"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8721: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:8721"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8721"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8721: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:8721"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8721"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8721: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:8721"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8721"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8721: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8721: wait failed" >&5

    $as_echo "ofproto-dpif.at:8721" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8721"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8721: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:8721"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8721"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8721: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8721"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8721"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8721: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8721: wait failed" >&5

    $as_echo "ofproto-dpif.at:8721" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8721"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1214
#AT_START_1215
at_fn_group_banner 1215 'ofproto-dpif.at:8724' \
  "ofproto-dpif - ICMPv6 type match" "               " 57
at_xfail=no
(
  $as_echo "1215. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8725: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:8725"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8725"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8725: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:8725"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8725"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8725: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8725"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8725"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8725: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:8725"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8725"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8725: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:8725"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8725"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8725: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8725"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8725"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8725: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:8725"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8725"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1 2 3

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8728: ovs-ofctl add-flow br0 'icmp6,icmp_type=128,actions=2'"
at_fn_check_prepare_trace "ofproto-dpif.at:8728"
( $at_check_trace; ovs-ofctl add-flow br0 'icmp6,icmp_type=128,actions=2'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8728"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8729: ovs-ofctl add-flow br0 'icmp6,icmp_type=129,actions=3'"
at_fn_check_prepare_trace "ofproto-dpif.at:8729"
( $at_check_trace; ovs-ofctl add-flow br0 'icmp6,icmp_type=129,actions=3'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8729"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8731: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:8731"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8731"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8733: ovs-appctl netdev-dummy/receive p1 'recirc_id(0),in_port(1),eth(src=f2:49:6e:52:49:0b,dst=02:b7:d7:17:ff:72),eth_type(0x86dd),ipv6(proto=58,frag=no),icmpv6(type=128)'"
at_fn_check_prepare_trace "ofproto-dpif.at:8733"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'recirc_id(0),in_port(1),eth(src=f2:49:6e:52:49:0b,dst=02:b7:d7:17:ff:72),eth_type(0x86dd),ipv6(proto=58,frag=no),icmpv6(type=128)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8733"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8734: ovs-appctl netdev-dummy/receive p1 'recirc_id(0),in_port(1),eth(src=f2:49:6e:52:49:0b,dst=02:b7:d7:17:ff:72),eth_type(0x86dd),ipv6(proto=58,frag=no),icmpv6(type=128)'"
at_fn_check_prepare_trace "ofproto-dpif.at:8734"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'recirc_id(0),in_port(1),eth(src=f2:49:6e:52:49:0b,dst=02:b7:d7:17:ff:72),eth_type(0x86dd),ipv6(proto=58,frag=no),icmpv6(type=128)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8734"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8735: ovs-appctl netdev-dummy/receive p1 'recirc_id(0),in_port(1),eth(src=f2:49:6e:52:49:0b,dst=02:b7:d7:17:ff:72),eth_type(0x86dd),ipv6(proto=58,frag=no),icmpv6(type=129)'"
at_fn_check_prepare_trace "ofproto-dpif.at:8735"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'recirc_id(0),in_port(1),eth(src=f2:49:6e:52:49:0b,dst=02:b7:d7:17:ff:72),eth_type(0x86dd),ipv6(proto=58,frag=no),icmpv6(type=129)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8735"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8736: ovs-appctl netdev-dummy/receive p1 'recirc_id(0),in_port(1),eth(src=f2:49:6e:52:49:0b,dst=02:b7:d7:17:ff:72),eth_type(0x86dd),ipv6(proto=58,frag=no),icmpv6(type=129)'"
at_fn_check_prepare_trace "ofproto-dpif.at:8736"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'recirc_id(0),in_port(1),eth(src=f2:49:6e:52:49:0b,dst=02:b7:d7:17:ff:72),eth_type(0x86dd),ipv6(proto=58,frag=no),icmpv6(type=129)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8736"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8738: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:8738"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8738"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8740: strip_ufid < ovs-vswitchd.log | filter_flow_install | strip_used"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:8740"
( $at_check_trace; strip_ufid < ovs-vswitchd.log | filter_flow_install | strip_used
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x86dd),ipv6(proto=58,frag=no),icmpv6(type=128), actions:2
recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x86dd),ipv6(proto=58,frag=no),icmpv6(type=129), actions:3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8740"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8745: ovs-ofctl dump-flows br0 | ofctl_strip | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:8745"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " n_packets=2, n_bytes=124, icmp6,icmp_type=128 actions=output:2
 n_packets=2, n_bytes=124, icmp6,icmp_type=129 actions=output:3
NXST_FLOW reply:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8745"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8751: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:8751"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8751"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8751: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:8751"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8751"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8751: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:8751"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8751"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8751: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8751: wait failed" >&5

    $as_echo "ofproto-dpif.at:8751" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8751"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8751: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:8751"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8751"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8751: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8751"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8751"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8751: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8751: wait failed" >&5

    $as_echo "ofproto-dpif.at:8751" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8751"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1215
#AT_START_1216
at_fn_group_banner 1216 'ofproto-dpif.at:8754' \
  "ofproto-dpif - Neighbor Discovery set-field with checksum update" "" 57
at_xfail=no
(
  $as_echo "1216. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8755: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:8755"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8755"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8755: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:8755"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8755"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8755: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8755"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8755"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8755: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:8755"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8755"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8755: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:8755"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8755"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8755: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8755"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8755"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8755: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:8755"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8755"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8757: ovs-ofctl add-flow br0 icmp6,icmpv6_type=135,action=set_field:fe80::1-\\>nd_target,set_field:32:21:14:86:11:74-\\>nd_sll,output:controller"
at_fn_check_prepare_trace "ofproto-dpif.at:8757"
( $at_check_trace; ovs-ofctl add-flow br0 icmp6,icmpv6_type=135,action=set_field:fe80::1-\>nd_target,set_field:32:21:14:86:11:74-\>nd_sll,output:controller
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8757"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }




{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8761: ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:8761"
( $at_check_trace; ovs-ofctl monitor br0 65534 -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8761"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


ovs-appctl netdev-dummy/receive p1 '0060970769ea0000860580da86dd6000000000203afffe80000000000000020086fffe0580dafe80000000000000026097fffe0769ea870068bd00000000fe80000000000000026097fffe0769ea01010000860580da'

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8765: test -e \$OVS_RUNDIR/ovs-ofctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-ofctl.pid" "ofproto-dpif.at:8765"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-ofctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8765"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-ofctl.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8765: ovs-appctl --timeout=10 -t ovs-ofctl exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8765"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-ofctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8765"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8765: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8765: wait failed" >&5

    $as_echo "ofproto-dpif.at:8765" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8765"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8767: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:8767"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0x0 total_len=86 in_port=1 (via action) data_len=86 (unbuffered)
icmp6,vlan_tci=0x0000,dl_src=00:00:86:05:80:da,dl_dst=00:60:97:07:69:ea,ipv6_src=fe80::200:86ff:fe05:80da,ipv6_dst=fe80::260:97ff:fe07:69ea,ipv6_label=0x00000,nw_tos=0,nw_ecn=0,nw_ttl=255,icmp_type=135,icmp_code=0,nd_target=fe80::1,nd_sll=32:21:14:86:11:74,nd_tll=00:00:00:00:00:00 icmp6_csum:19d3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8767"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8772: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:8772"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8772"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8772: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:8772"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8772"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8772: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:8772"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8772"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8772: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8772: wait failed" >&5

    $as_echo "ofproto-dpif.at:8772" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8772"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8772: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:8772"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8772"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8772: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8772"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8772"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8772: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8772: wait failed" >&5

    $as_echo "ofproto-dpif.at:8772" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8772"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1216
#AT_START_1217
at_fn_group_banner 1217 'ofproto-dpif.at:8776' \
  "ofproto-dpif - vlan matching" "                   " 57
at_xfail=no
(
  $as_echo "1217. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8777: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:8777"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8777"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8777: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:8777"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8777"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8777: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8777"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8777"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8777: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:8777"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8777"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8777: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:8777"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8777"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8777: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8777"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8777"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8777: add_of_br 0 add-port br0 p0 -- set Interface p0 type=dummy ofport_request=1 "
at_fn_check_prepare_trace "ofproto-dpif.at:8777"
( $at_check_trace; add_of_br 0 add-port br0 p0 -- set Interface p0 type=dummy ofport_request=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8777"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8779: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:8779"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8779"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8781: ovs-ofctl del-flows br0"
at_fn_check_prepare_trace "ofproto-dpif.at:8781"
( $at_check_trace; ovs-ofctl del-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8781"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8782: ovs-ofctl add-flow br0 \"vlan_tci=0x000a/0x0fff,action=output:local\""
at_fn_check_prepare_trace "ofproto-dpif.at:8782"
( $at_check_trace; ovs-ofctl add-flow br0 "vlan_tci=0x000a/0x0fff,action=output:local"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8782"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8784: ovs-appctl netdev-dummy/receive p0 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x8100),vlan(vid=10,pcp=0),encap(eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0))'"
at_fn_check_prepare_trace "ofproto-dpif.at:8784"
( $at_check_trace; ovs-appctl netdev-dummy/receive p0 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x8100),vlan(vid=10,pcp=0),encap(eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0))'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8784"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


$as_echo "ofproto-dpif.at:8786: waiting until grep flow_add: ovs-vswitchd.log..." >&5
ovs_wait_cond () {
    grep flow_add: ovs-vswitchd.log
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8786: wait failed" >&5

    $as_echo "ofproto-dpif.at:8786" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8786"
fi

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8787: grep 'in_port([1])' ovs-vswitchd.log | filter_flow_install | strip_xout"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:8787"
( $at_check_trace; grep 'in_port([1])' ovs-vswitchd.log | filter_flow_install | strip_xout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x8100),vlan(vid=10),encap(eth_type(0x0800),ipv4(frag=no)), actions: <del>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8787"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8790: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:8790"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8790"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8790: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:8790"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8790"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8790: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:8790"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8790"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8790: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8790: wait failed" >&5

    $as_echo "ofproto-dpif.at:8790" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8790"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8790: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:8790"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8790"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8790: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8790"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8790"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8790: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8790: wait failed" >&5

    $as_echo "ofproto-dpif.at:8790" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8790"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1217
#AT_START_1218
at_fn_group_banner 1218 'ofproto-dpif.at:8794' \
  "ofproto-dpif - in place modification" "           " 57
at_xfail=no
(
  $as_echo "1218. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8795: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:8795"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8795"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8795: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:8795"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8795"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8795: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8795"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8795"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8795: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:8795"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8795"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8795: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:8795"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8795"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8795: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8795"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8795"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8795: add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1 "
at_fn_check_prepare_trace "ofproto-dpif.at:8795"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8795"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8797: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:8797"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8797"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8799: ovs-ofctl del-flows br0"
at_fn_check_prepare_trace "ofproto-dpif.at:8799"
( $at_check_trace; ovs-ofctl del-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8799"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8800: ovs-ofctl add-flow br0 in_port=1,actions=mod_vlan_vid:3,output:local"
at_fn_check_prepare_trace "ofproto-dpif.at:8800"
( $at_check_trace; ovs-ofctl add-flow br0 in_port=1,actions=mod_vlan_vid:3,output:local
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8800"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl vlog/set PATTERN:ANY:'%c|%p|%m'

ovs-appctl time/stop

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8806: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x1234)'"
at_fn_check_prepare_trace "ofproto-dpif.at:8806"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x1234)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8806"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Wait for the flow setup to be done.
$as_echo "ofproto-dpif.at:8809: waiting until grep 'flow_add:' ovs-vswitchd.log..." >&5
ovs_wait_cond () {
    grep 'flow_add:' ovs-vswitchd.log
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8809: wait failed" >&5

    $as_echo "ofproto-dpif.at:8809" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8809"
fi


for i in 1 2; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x1234)'
done

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8815: ovs-appctl dpif/dump-flows br0 | strip_ufid | strip_used | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:8815"
( $at_check_trace; ovs-appctl dpif/dump-flows br0 | strip_ufid | strip_used | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x1234), packets:2, bytes:28, used:0.0s, actions:push_vlan(vid=3,pcp=0),100
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8815"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8819: ovs-ofctl add-flow br0 priority=60000,in_port=1,actions=mod_vlan_vid:4,output:local"
at_fn_check_prepare_trace "ofproto-dpif.at:8819"
( $at_check_trace; ovs-ofctl add-flow br0 priority=60000,in_port=1,actions=mod_vlan_vid:4,output:local
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8819"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 500
ovs-appctl time/warp 500

for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x1234)'
done

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8828: ovs-appctl dpif/dump-flows br0 | strip_ufid | strip_used | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:8828"
( $at_check_trace; ovs-appctl dpif/dump-flows br0 | strip_ufid | strip_used | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x1234), packets:5, bytes:70, used:0.0s, actions:push_vlan(vid=4,pcp=0),100
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8828"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8832: grep 'modify' ovs-vswitchd.log | strip_ufid "
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:8832"
( $at_check_trace; grep 'modify' ovs-vswitchd.log | strip_ufid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dpif|DBG|dummy@ovs-dummy: put[modify] skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09/00:00:00:00:00:00,dst=50:54:00:00:00:0a/00:00:00:00:00:00),eth_type(0x1234), actions:push_vlan(vid=4,pcp=0),100
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8832"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8835: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:8835"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8835"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8835: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:8835"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8835"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8835: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:8835"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8835"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8835: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8835: wait failed" >&5

    $as_echo "ofproto-dpif.at:8835" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8835"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8835: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:8835"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8835"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8835: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8835"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8835"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8835: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8835: wait failed" >&5

    $as_echo "ofproto-dpif.at:8835" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8835"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1218
#AT_START_1219
at_fn_group_banner 1219 'ofproto-dpif.at:8839' \
  "ofproto-dpif - in place modification (vlan)" "    " 57
at_xfail=no
(
  $as_echo "1219. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8840: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:8840"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8840"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8840: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:8840"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8840"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8840: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8840"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8840"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8840: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:8840"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8840"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8840: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:8840"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8840"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8840: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8840"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8840"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8840: add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1 "
at_fn_check_prepare_trace "ofproto-dpif.at:8840"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8840"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8842: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:8842"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8842"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8844: ovs-ofctl del-flows br0"
at_fn_check_prepare_trace "ofproto-dpif.at:8844"
( $at_check_trace; ovs-ofctl del-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8844"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8845: ovs-ofctl add-flow br0 in_port=1,actions=output:local"
at_fn_check_prepare_trace "ofproto-dpif.at:8845"
( $at_check_trace; ovs-ofctl add-flow br0 in_port=1,actions=output:local
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8845"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl vlog/set PATTERN:ANY:'%c|%p|%m'

ovs-appctl time/stop

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8851: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x1234)'"
at_fn_check_prepare_trace "ofproto-dpif.at:8851"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x1234)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8851"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Check that a correct datapath flow is created.
$as_echo "ofproto-dpif.at:8854: waiting until grep 'flow_add:' ovs-vswitchd.log..." >&5
ovs_wait_cond () {
    grep 'flow_add:' ovs-vswitchd.log
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8854: wait failed" >&5

    $as_echo "ofproto-dpif.at:8854" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8854"
fi


for i in 1 2; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x1234)'
done

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8860: ovs-appctl dpif/dump-flows br0 | strip_ufid | strip_used | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:8860"
( $at_check_trace; ovs-appctl dpif/dump-flows br0 | strip_ufid | strip_used | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x1234), packets:2, bytes:28, used:0.0s, actions:100
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8860"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Delete the flow.  Then check that the datapath flow is modified to
# drop the packets.  A modified flow inherits the stats, a new
# datapath flow would start from sero.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8867: ovs-ofctl del-flows br0"
at_fn_check_prepare_trace "ofproto-dpif.at:8867"
( $at_check_trace; ovs-ofctl del-flows br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8867"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 500
ovs-appctl time/warp 500

for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x1234)'
done

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8876: ovs-appctl dpif/dump-flows br0 | strip_ufid | strip_used | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:8876"
( $at_check_trace; ovs-appctl dpif/dump-flows br0 | strip_ufid | strip_used | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x1234), packets:5, bytes:70, used:0.0s, actions:drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8876"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Add a flow that matches the non-presence of a vlan tag, and check
# that the datapath flow is modified accordingly.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8882: ovs-ofctl add-flow br0 in_port=1,vlan_tci=0x0000/0x1fff,actions=output:local"
at_fn_check_prepare_trace "ofproto-dpif.at:8882"
( $at_check_trace; ovs-ofctl add-flow br0 in_port=1,vlan_tci=0x0000/0x1fff,actions=output:local
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8882"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 500
ovs-appctl time/warp 500

for i in 1 2 3; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x1234)'
done

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8891: ovs-appctl dpif/dump-flows br0 | strip_ufid | strip_used | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:8891"
( $at_check_trace; ovs-appctl dpif/dump-flows br0 | strip_ufid | strip_used | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x1234), packets:8, bytes:112, used:0.0s, actions:100
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8891"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Check that VLAN packets will not hit the same datapath megaflow.

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8897: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x8100),vlan(vid=99,pcp=7),encap(eth_type(0x1234))'"
at_fn_check_prepare_trace "ofproto-dpif.at:8897"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x8100),vlan(vid=99,pcp=7),encap(eth_type(0x1234))'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8897"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

$as_echo "ofproto-dpif.at:8898: waiting until grep 'flow_add:.*vlan(vid=99' ovs-vswitchd.log..." >&5
ovs_wait_cond () {
    grep 'flow_add:.*vlan(vid=99' ovs-vswitchd.log
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8898: wait failed" >&5

    $as_echo "ofproto-dpif.at:8898" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8898"
fi


for i in 1 2; do
    ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x8100),vlan(vid=99,pcp=7),encap(eth_type(0x1234))'
done

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8904: ovs-appctl dpif/dump-flows br0 | strip_ufid | strip_used | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:8904"
( $at_check_trace; ovs-appctl dpif/dump-flows br0 | strip_ufid | strip_used | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x1234), packets:8, bytes:112, used:0.0s, actions:100
recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x8100),vlan(vid=99,pcp=7/0x0),encap(eth_type(0x1234)), packets:2, bytes:36, used:0.0s, actions:drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8904"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Check that the new flow matches the CFI bit, while both vid and pcp
# are wildcarded.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8911: grep '\\(modify\\)\\|\\(flow_add\\)' ovs-vswitchd.log | strip_ufid "
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:8911"
( $at_check_trace; grep '\(modify\)\|\(flow_add\)' ovs-vswitchd.log | strip_ufid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dpif_netdev|DBG|flow_add: recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x1234), actions:100
dpif|DBG|dummy@ovs-dummy: put[modify] skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09/00:00:00:00:00:00,dst=50:54:00:00:00:0a/00:00:00:00:00:00),eth_type(0x1234)
dpif|DBG|dummy@ovs-dummy: put[modify] skb_priority(0/0),skb_mark(0/0),ct_state(0/0),ct_zone(0/0),ct_mark(0/0),ct_label(0/0),recirc_id(0),dp_hash(0/0),in_port(1),packet_type(ns=0,id=0),eth(src=50:54:00:00:00:09/00:00:00:00:00:00,dst=50:54:00:00:00:0a/00:00:00:00:00:00),eth_type(0x1234), actions:100
dpif_netdev|DBG|flow_add: recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x8100),vlan(vid=99,pcp=7/0x0),encap(eth_type(0x1234)), actions:drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8911"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8917: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:8917"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8917"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8917: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:8917"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8917"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8917: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:8917"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8917"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8917: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8917: wait failed" >&5

    $as_echo "ofproto-dpif.at:8917" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8917"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8917: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:8917"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8917"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8917: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8917"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8917"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8917: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8917: wait failed" >&5

    $as_echo "ofproto-dpif.at:8917" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8917"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1219
#AT_START_1220
at_fn_group_banner 1220 'ofproto-dpif.at:8920' \
  "ofproto-dpif - trace (unchanged)" "               " 57
at_xfail=no
(
  $as_echo "1220. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8921: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:8921"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8921"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8921: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:8921"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8921"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8921: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8921"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8921"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8921: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:8921"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8921"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8921: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:8921"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8921"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8921: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8921"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8921"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8921: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:8921"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8921"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8922: ovs-appctl ofproto/trace br0 'in_port=1'"
at_fn_check_prepare_trace "ofproto-dpif.at:8922"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8922"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8923: grep \"Final flow:\" stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:8923"
( $at_check_trace; grep "Final flow:" stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Final flow: unchanged
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8923"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8925: ovs-appctl ofproto/trace ovs-dummy 'in_port(100)'"
at_fn_check_prepare_trace "ofproto-dpif.at:8925"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(100)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8925"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8926: grep \"Final flow:\" stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:8926"
( $at_check_trace; grep "Final flow:" stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Final flow: unchanged
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8926"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8929: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:8929"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8929"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8929: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:8929"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8929"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8929: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:8929"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8929"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8929: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8929: wait failed" >&5

    $as_echo "ofproto-dpif.at:8929" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8929"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8929: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:8929"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8929"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8929: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:8929"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8929"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:8929: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:8929: wait failed" >&5

    $as_echo "ofproto-dpif.at:8929" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:8929"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1220
#AT_START_1221
at_fn_group_banner 1221 'ofproto-dpif.at:8932' \
  "ofproto-dpif - conntrack - controller" "          " 57
at_xfail=no
(
  $as_echo "1221. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8933: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:8933"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8933"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8933: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:8933"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8933"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8933: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8933"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8933"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8933: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:8933"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8933"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8933: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:8933"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8933"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8933: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:8933"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8933"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8933: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:8933"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8933"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



add_of_ports br0 1 2

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:8937: ovs-appctl vlog/set dpif_netdev:dbg vconn:info ofproto_dpif:info"
at_fn_check_prepare_trace "ofproto-dpif.at:8937"
( $at_check_trace; ovs-appctl vlog/set dpif_netdev:dbg vconn:info ofproto_dpif:info
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:8937"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
table=0,priority=100,arp,action=normal
table=0,priority=10,in_port=1,ip,action=set_field:1->reg4,set_field:1->reg3,ct(zone=NXM_NX_REG4[0..15],table=1)
table=0,priority=10,in_port=2,ip,action=set_field:1->reg4,set_field:2->reg3,ct(zone=NXM_NX_REG4[0..15],table=1)
table=0,priority=1,action=drop
table=1 reg3=1, ip, ct_state=-rel-rpl+trk-inv action=set_field:1->reg0,resubmit(,3),goto_table:5
table=1 reg3=1, ip, ct_state=-rel+rpl+trk-inv action=set_field:2->reg0,resubmit(,3,ct),goto_table:4
table=1 reg3=2, ip, ct_state=-rel-rpl+trk-inv action=set_field:2->reg0,resubmit(,3),goto_table:5
table=1 reg3=2, ip, ct_state=-rel+rpl+trk-inv action=set_field:1->reg0,resubmit(,3,ct),goto_table:4
table=1 ip, ct_state=+rel+trk-inv, action=move:NXM_NX_CT_MARK[]->NXM_NX_REG0[],resubmit(,3,ct),goto_table:4
table=1 priority=0, action=drop
table=3 priority=10, reg0=1, udp, udp_dst=2 action=set_field:1234->reg1,set_field:1->reg2
table=3 priority=0, action=set_field:1235->reg1,set_field:0->reg2
table=4 priority=100 reg2=1, action=goto_table:5
table=4 priority=0 action=move:NXM_NX_REG3[]->NXM_NX_REG0[],resubmit(,3),goto_table:5
table=5 reg2=0 priority=1000 action=drop
table=5 priority=10 reg2=1 ct_state=+new-rel, ip, action=ct(zone=NXM_NX_REG4[0..15],commit,exec(move:NXM_NX_REG3[0..31]->NXM_NX_CT_MARK[0..31],move:NXM_NX_REG1[0..31]->NXM_NX_CT_LABEL[96..127])),goto_table:6
table=5 priority=10 reg2=1 ct_state=+new+rel, ip, action=ct(zone=NXM_NX_REG4[0..15],commit,exec(move:NXM_NX_REG1[0..31]->NXM_NX_CT_LABEL[96..127])),goto_table:6
table=5 priority=0 action=goto_table:6
table=6 action=controller
_ATEOF


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9009: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:9009"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9009"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9012: ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:9012"
( $at_check_trace; ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9012"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9014: ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9014"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9014"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9017: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=no),udp(src=1,dst=2)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9017"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=no),udp(src=1,dst=2)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9017"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9020: ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9020"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9020"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


$as_echo "ofproto-dpif.at:9022: waiting until test \`wc -l < ofctl_monitor.log\` -ge 4..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 4
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9022: wait failed" >&5

    $as_echo "ofproto-dpif.at:9022" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9022"
fi

$as_echo "ofproto-dpif.at:9023: waiting until ovs-appctl -t ovs-ofctl exit..." >&5
ovs_wait_cond () {
    ovs-appctl -t ovs-ofctl exit
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9023: wait failed" >&5

    $as_echo "ofproto-dpif.at:9023" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9023"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9026: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:9026"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): table_id=6 cookie=0x0 total_len=42 reg0=0x1,reg1=0x4d2,reg2=0x1,reg3=0x1,reg4=0x1,in_port=1 (via action) data_len=42 (unbuffered)
udp,vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,nw_src=10.1.1.1,nw_dst=10.1.1.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=1,tp_dst=2 udp_csum:e9d6
NXT_PACKET_IN (xid=0x0): table_id=6 cookie=0x0 total_len=42 ct_state=est|rpl|trk,ct_zone=1,ct_mark=0x1,ct_label=0x4d2000000000000000000000000,ct_nw_src=10.1.1.1,ct_nw_dst=10.1.1.2,ct_nw_proto=17,ct_tp_src=1,ct_tp_dst=2,ip,reg0=0x1,reg1=0x4d2,reg2=0x1,reg3=0x2,reg4=0x1,in_port=2 (via action) data_len=42 (unbuffered)
udp,vlan_tci=0x0000,dl_src=50:54:00:00:00:0a,dl_dst=50:54:00:00:00:09,nw_src=10.1.1.2,nw_dst=10.1.1.1,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=2,tp_dst=1 udp_csum:e9d6
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9026"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9034: ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:9034"
( $at_check_trace; ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9034"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9037: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=no),udp(src=3,dst=2)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9037"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=no),udp(src=3,dst=2)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9037"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9040: ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=3)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9040"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=3)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9040"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }



$as_echo "ofproto-dpif.at:9043: waiting until test \`wc -l < ofctl_monitor.log\` -ge 4..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 4
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9043: wait failed" >&5

    $as_echo "ofproto-dpif.at:9043" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9043"
fi

$as_echo "ofproto-dpif.at:9044: waiting until ovs-appctl -t ovs-ofctl exit..." >&5
ovs_wait_cond () {
    ovs-appctl -t ovs-ofctl exit
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9044: wait failed" >&5

    $as_echo "ofproto-dpif.at:9044" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9044"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9047: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:9047"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): table_id=6 cookie=0x0 total_len=42 reg0=0x1,reg1=0x4d2,reg2=0x1,reg3=0x1,reg4=0x1,in_port=1 (via action) data_len=42 (unbuffered)
udp,vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,nw_src=10.1.1.1,nw_dst=10.1.1.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=3,tp_dst=2 udp_csum:e9d4
NXT_PACKET_IN (xid=0x0): table_id=6 cookie=0x0 total_len=42 ct_state=est|rpl|trk,ct_zone=1,ct_mark=0x1,ct_label=0x4d2000000000000000000000000,ct_nw_src=10.1.1.1,ct_nw_dst=10.1.1.2,ct_nw_proto=17,ct_tp_src=3,ct_tp_dst=2,ip,reg0=0x1,reg1=0x4d2,reg2=0x1,reg3=0x2,reg4=0x1,in_port=2 (via action) data_len=42 (unbuffered)
udp,vlan_tci=0x0000,dl_src=50:54:00:00:00:0a,dl_dst=50:54:00:00:00:09,nw_src=10.1.1.2,nw_dst=10.1.1.1,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=2,tp_dst=3 udp_csum:e9d4
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9047"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9055: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:9055"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9055"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9055: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:9055"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9055"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9055: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:9055"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9055"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:9055: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9055: wait failed" >&5

    $as_echo "ofproto-dpif.at:9055" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9055"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9055: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:9055"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9055"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9055: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:9055"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9055"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:9055: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9055: wait failed" >&5

    $as_echo "ofproto-dpif.at:9055" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9055"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1221
#AT_START_1222
at_fn_group_banner 1222 'ofproto-dpif.at:9058' \
  "ofproto-dpif - conntrack - force commit" "        " 57
at_xfail=no
(
  $as_echo "1222. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9059: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:9059"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9059"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9059: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:9059"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9059"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9059: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:9059"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9059"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9059: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:9059"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9059"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9059: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:9059"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9059"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9059: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:9059"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9059"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9059: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:9059"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9059"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



add_of_ports br0 1 2

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9063: ovs-appctl vlog/set dpif_netdev:dbg vconn:info ofproto_dpif:info"
at_fn_check_prepare_trace "ofproto-dpif.at:9063"
( $at_check_trace; ovs-appctl vlog/set dpif_netdev:dbg vconn:info ofproto_dpif:info
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9063"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
table=0,priority=100,arp,action=normal
table=0,priority=10,in_port=1,udp,action=ct(commit),controller
table=0,priority=10,in_port=2,udp,action=ct(table=1)
table=0,priority=1,action=drop
table=1,priority=10,in_port=2,ct_state=+est,udp,action=ct(force,commit),controller
table=1,priority=1,action=drop
_ATEOF


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9080: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:9080"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9080"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9083: ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:9083"
( $at_check_trace; ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9083"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9085: ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9085"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9085"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9088: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=no),udp(src=1,dst=2)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9088"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=no),udp(src=1,dst=2)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9088"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9091: ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9091"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9091"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


$as_echo "ofproto-dpif.at:9093: waiting until test \`wc -l < ofctl_monitor.log\` -ge 4..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 4
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9093: wait failed" >&5

    $as_echo "ofproto-dpif.at:9093" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9093"
fi

$as_echo "ofproto-dpif.at:9094: waiting until ovs-appctl -t ovs-ofctl exit..." >&5
ovs_wait_cond () {
    ovs-appctl -t ovs-ofctl exit
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9094: wait failed" >&5

    $as_echo "ofproto-dpif.at:9094" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9094"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9099: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:9099"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0x0 total_len=42 in_port=1 (via action) data_len=42 (unbuffered)
udp,vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,nw_src=10.1.1.1,nw_dst=10.1.1.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=1,tp_dst=2 udp_csum:e9d6
NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x0 total_len=42 in_port=2 (via action) data_len=42 (unbuffered)
udp,vlan_tci=0x0000,dl_src=50:54:00:00:00:0a,dl_dst=50:54:00:00:00:09,nw_src=10.1.1.2,nw_dst=10.1.1.1,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=2,tp_dst=1 udp_csum:e9d6
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9099"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9107: ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:9107"
( $at_check_trace; ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9110: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=no),udp(src=3,dst=4)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9110"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=no),udp(src=3,dst=4)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9110"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9113: ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=4,dst=3)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9113"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=4,dst=3)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9113"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


$as_echo "ofproto-dpif.at:9115: waiting until test \`wc -l < ofctl_monitor.log\` -ge 4..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 4
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9115: wait failed" >&5

    $as_echo "ofproto-dpif.at:9115" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9115"
fi

$as_echo "ofproto-dpif.at:9116: waiting until ovs-appctl -t ovs-ofctl exit..." >&5
ovs_wait_cond () {
    ovs-appctl -t ovs-ofctl exit
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9116: wait failed" >&5

    $as_echo "ofproto-dpif.at:9116" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9116"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9121: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:9121"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0x0 total_len=42 in_port=1 (via action) data_len=42 (unbuffered)
udp,vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,nw_src=10.1.1.1,nw_dst=10.1.1.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=3,tp_dst=4 udp_csum:e9d2
NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x0 total_len=42 in_port=2 (via action) data_len=42 (unbuffered)
udp,vlan_tci=0x0000,dl_src=50:54:00:00:00:0a,dl_dst=50:54:00:00:00:09,nw_src=10.1.1.2,nw_dst=10.1.1.1,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=4,tp_dst=3 udp_csum:e9d2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9121"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9132: ovs-appctl dpctl/dump-conntrack | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:9132"
( $at_check_trace; ovs-appctl dpctl/dump-conntrack | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "udp,orig=(src=10.1.1.2,dst=10.1.1.1,sport=2,dport=1),reply=(src=10.1.1.1,dst=10.1.1.2,sport=1,dport=2)
udp,orig=(src=10.1.1.2,dst=10.1.1.1,sport=4,dport=3),reply=(src=10.1.1.1,dst=10.1.1.2,sport=3,dport=4)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9132"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9137: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:9137"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9137"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9137: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:9137"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9137"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9137: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:9137"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9137"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:9137: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9137: wait failed" >&5

    $as_echo "ofproto-dpif.at:9137" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9137"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9137: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:9137"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9137"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9137: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:9137"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9137"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:9137: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9137: wait failed" >&5

    $as_echo "ofproto-dpif.at:9137" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9137"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1222
#AT_START_1223
at_fn_group_banner 1223 'ofproto-dpif.at:9140' \
  "ofproto-dpif - conntrack - ipv6" "                " 57
at_xfail=no
(
  $as_echo "1223. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9141: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:9141"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9141"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9141: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:9141"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9141"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9141: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:9141"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9141"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9141: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:9141"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9141"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9141: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:9141"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9141"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9141: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:9141"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9141"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9141: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:9141"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9141"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



add_of_ports br0 1 2

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9145: ovs-appctl vlog/set dpif_netdev:dbg vconn:info ofproto_dpif:info"
at_fn_check_prepare_trace "ofproto-dpif.at:9145"
( $at_check_trace; ovs-appctl vlog/set dpif_netdev:dbg vconn:info ofproto_dpif:info
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9145"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
table=0,priority=100,arp,action=normal
table=0,priority=10,in_port=1,udp6,action=ct(commit,zone=0),controller
table=0,priority=10,in_port=2,udp6,action=ct(table=1,zone=0)
table=0,priority=1,action=drop
table=1,priority=10,in_port=2,ct_state=+trk+est-new,udp6,action=controller
table=1,priority=1,action=drop
_ATEOF


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9161: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:9161"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9161"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9164: ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:9164"
( $at_check_trace; ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9164"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9166: ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x86dd),ipv6(src=2001:db8::2,dst=2001:db8::1,label=0,proto=17,tclass=0x70,hlimit=128,frag=no),udp(src=2,dst=1)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9166"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x86dd),ipv6(src=2001:db8::2,dst=2001:db8::1,label=0,proto=17,tclass=0x70,hlimit=128,frag=no),udp(src=2,dst=1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9166"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9169: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x86dd),ipv6(src=2001:db8::1,dst=2001:db8::2,label=0,proto=17,tclass=0x70,hlimit=128,frag=no),udp(src=1,dst=2)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9169"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x86dd),ipv6(src=2001:db8::1,dst=2001:db8::2,label=0,proto=17,tclass=0x70,hlimit=128,frag=no),udp(src=1,dst=2)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9169"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9172: ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x86dd),ipv6(src=2001:db8::2,dst=2001:db8::1,label=0,proto=17,tclass=0x70,hlimit=128,frag=no),udp(src=2,dst=1)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9172"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x86dd),ipv6(src=2001:db8::2,dst=2001:db8::1,label=0,proto=17,tclass=0x70,hlimit=128,frag=no),udp(src=2,dst=1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9172"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


$as_echo "ofproto-dpif.at:9174: waiting until test \`wc -l < ofctl_monitor.log\` -ge 4..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 4
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9174: wait failed" >&5

    $as_echo "ofproto-dpif.at:9174" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9174"
fi

$as_echo "ofproto-dpif.at:9175: waiting until ovs-appctl -t ovs-ofctl exit..." >&5
ovs_wait_cond () {
    ovs-appctl -t ovs-ofctl exit
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9175: wait failed" >&5

    $as_echo "ofproto-dpif.at:9175" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9175"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9180: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:9180"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0x0 total_len=62 in_port=1 (via action) data_len=62 (unbuffered)
udp6,vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,ipv6_src=2001:db8::1,ipv6_dst=2001:db8::2,ipv6_label=0x00000,nw_tos=112,nw_ecn=0,nw_ttl=128,tp_src=1,tp_dst=2 udp_csum:a466
NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x0 total_len=62 ct_state=est|rpl|trk,ct_ipv6_src=2001:db8::1,ct_ipv6_dst=2001:db8::2,ct_nw_proto=17,ct_tp_src=1,ct_tp_dst=2,ipv6,in_port=2 (via action) data_len=62 (unbuffered)
udp6,vlan_tci=0x0000,dl_src=50:54:00:00:00:0a,dl_dst=50:54:00:00:00:09,ipv6_src=2001:db8::2,ipv6_dst=2001:db8::1,ipv6_label=0x00000,nw_tos=112,nw_ecn=0,nw_ttl=128,tp_src=2,tp_dst=1 udp_csum:a466
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9180"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9187: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:9187"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9187"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9187: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:9187"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9187"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9187: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:9187"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9187"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:9187: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9187: wait failed" >&5

    $as_echo "ofproto-dpif.at:9187" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9187"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9187: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:9187"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9187"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9187: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:9187"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9187"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:9187: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9187: wait failed" >&5

    $as_echo "ofproto-dpif.at:9187" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9187"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1223
#AT_START_1224
at_fn_group_banner 1224 'ofproto-dpif.at:9190' \
  "ofproto-dpif - conntrack - output action" "       " 57
at_xfail=no
(
  $as_echo "1224. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9191: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:9191"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9191"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9191: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:9191"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9191"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9191: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:9191"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9191"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9191: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:9191"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9191: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:9191"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9191: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:9191"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9191: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:9191"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



add_of_ports br0 1 2

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9195: ovs-appctl vlog/set dpif_netdev:dbg vconn:info ofproto_dpif:info"
at_fn_check_prepare_trace "ofproto-dpif.at:9195"
( $at_check_trace; ovs-appctl vlog/set dpif_netdev:dbg vconn:info ofproto_dpif:info
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9195"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
table=0,priority=100,arp,action=normal
table=0,priority=10,in_port=1,udp,action=ct(commit,zone=0),2
table=0,priority=10,in_port=2,udp,action=ct(table=1,zone=0)
table=0,priority=1,action=drop
table=1,priority=10,in_port=2,ct_state=+trk+est-new,udp,action=1
table=1,priority=1,action=drop
_ATEOF


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9221: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:9221"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9221"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9224: ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9224"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9224"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9227: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=no),udp(src=1,dst=2)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9227"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=no),udp(src=1,dst=2)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9227"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9230: ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9230"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9230"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9233: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=no),udp(src=1,dst=2)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9233"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=no),udp(src=1,dst=2)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9233"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9236: ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9236"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9236"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9239: cat ovs-vswitchd.log | strip_ufid | filter_flow_install"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:9239"
( $at_check_trace; cat ovs-vswitchd.log | strip_ufid | filter_flow_install
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ct_state(+new-est+trk),recirc_id(0x1),in_port(2),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), actions:drop
ct_state(-new+est+trk),recirc_id(0x1),in_port(2),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=17,frag=no), actions:1
recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=17,frag=no), actions:ct(commit),2
recirc_id(0),in_port(2),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=17,frag=no), actions:ct,recirc(0x1)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9239"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9246: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:9246"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9246"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9246: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:9246"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9246"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9246: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:9246"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9246"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:9246: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9246: wait failed" >&5

    $as_echo "ofproto-dpif.at:9246" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9246"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9246: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:9246"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9246"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9246: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:9246"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9246"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:9246: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9246: wait failed" >&5

    $as_echo "ofproto-dpif.at:9246" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9246"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1224
#AT_START_1225
at_fn_group_banner 1225 'ofproto-dpif.at:9249' \
  "ofproto-dpif - conntrack - expiration" "          " 57
at_xfail=no
(
  $as_echo "1225. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9250: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:9250"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9250"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9250: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:9250"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9250"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9250: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:9250"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9250"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9250: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:9250"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9250"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9250: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:9250"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9250"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9250: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:9250"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9250"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9250: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:9250"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9250"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



add_of_ports br0 1 2

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9254: ovs-appctl vlog/set dpif_netdev:dbg vconn:info ofproto_dpif:info"
at_fn_check_prepare_trace "ofproto-dpif.at:9254"
( $at_check_trace; ovs-appctl vlog/set dpif_netdev:dbg vconn:info ofproto_dpif:info
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9254"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
table=0,priority=100,arp,action=normal
table=0,priority=10,in_port=1,udp,action=ct(commit,zone=0)
table=0,priority=10,in_port=2,udp,action=ct(table=1,zone=0)
table=0,priority=1,action=drop
table=1,priority=10,in_port=2,ct_state=+trk+est-new,udp,action=controller
table=1,priority=1,action=drop
_ATEOF


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9271: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:9271"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9271"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9274: ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:9274"
( $at_check_trace; ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9274"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9276: ovs-appctl time/stop"
at_fn_check_prepare_trace "ofproto-dpif.at:9276"
( $at_check_trace; ovs-appctl time/stop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9276"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9279: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=no),udp(src=1,dst=2)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9279"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=no),udp(src=1,dst=2)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9279"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9282: ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9282"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9282"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


ovs-appctl time/warp 100000

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9287: ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9287"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9287"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


$as_echo "ofproto-dpif.at:9289: waiting until test \`wc -l < ofctl_monitor.log\` -ge 3..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 3
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9289: wait failed" >&5

    $as_echo "ofproto-dpif.at:9289" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9289"
fi

$as_echo "ofproto-dpif.at:9290: waiting until ovs-appctl -t ovs-ofctl exit..." >&5
ovs_wait_cond () {
    ovs-appctl -t ovs-ofctl exit
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9290: wait failed" >&5

    $as_echo "ofproto-dpif.at:9290" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9290"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9293: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:9293"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x0 total_len=42 ct_state=est|rpl|trk,ct_nw_src=10.1.1.1,ct_nw_dst=10.1.1.2,ct_nw_proto=17,ct_tp_src=1,ct_tp_dst=2,ip,in_port=2 (via action) data_len=42 (unbuffered)
udp,vlan_tci=0x0000,dl_src=50:54:00:00:00:0a,dl_dst=50:54:00:00:00:09,nw_src=10.1.1.2,nw_dst=10.1.1.1,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=2,tp_dst=1 udp_csum:e9d6
OFPT_ECHO_REQUEST (xid=0x0): 0 bytes of payload
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9293"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9300: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:9300"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9300"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9300: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:9300"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9300"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9300: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:9300"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9300"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:9300: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9300: wait failed" >&5

    $as_echo "ofproto-dpif.at:9300" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9300"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9300: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:9300"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9300"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9300: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:9300"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9300"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:9300: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9300: wait failed" >&5

    $as_echo "ofproto-dpif.at:9300" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9300"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1225
#AT_START_1226
at_fn_group_banner 1226 'ofproto-dpif.at:9303' \
  "ofproto-dpif - conntrack - untrackable traffic" " " 57
at_xfail=no
(
  $as_echo "1226. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9304: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:9304"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9304"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9304: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:9304"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9304"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9304: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:9304"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9304"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9304: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:9304"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9304"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9304: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:9304"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9304"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9304: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:9304"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9304"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9304: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:9304"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9304"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



add_of_ports br0 1 2

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9308: ovs-appctl vlog/set dpif_netdev:dbg vconn:info ofproto_dpif:info"
at_fn_check_prepare_trace "ofproto-dpif.at:9308"
( $at_check_trace; ovs-appctl vlog/set dpif_netdev:dbg vconn:info ofproto_dpif:info
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9308"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
ipv6,ct_state=-trk,action=ct(table=0,zone=0)
ct_state=+trk,action=controller
_ATEOF


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9315: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:9315"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9315"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9318: ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:9318"
( $at_check_trace; ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9318"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9320: ovs-appctl time/stop"
at_fn_check_prepare_trace "ofproto-dpif.at:9320"
( $at_check_trace; ovs-appctl time/stop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9320"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9322: ovs-appctl netdev-dummy/receive p2 '0060970769ea0000860580da86dd6000000000203afffe80000000000000020086fffe0580dafe80000000000000026097fffe0769ea870068bd00000000fe80000000000000026097fffe0769ea01010000860580da'"
at_fn_check_prepare_trace "ofproto-dpif.at:9322"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 '0060970769ea0000860580da86dd6000000000203afffe80000000000000020086fffe0580dafe80000000000000026097fffe0769ea870068bd00000000fe80000000000000026097fffe0769ea01010000860580da'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9322"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


$as_echo "ofproto-dpif.at:9324: waiting until test \`wc -l < ofctl_monitor.log\` -ge 1..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 1
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9324: wait failed" >&5

    $as_echo "ofproto-dpif.at:9324" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9324"
fi

$as_echo "ofproto-dpif.at:9325: waiting until ovs-appctl -t ovs-ofctl exit..." >&5
ovs_wait_cond () {
    ovs-appctl -t ovs-ofctl exit
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9325: wait failed" >&5

    $as_echo "ofproto-dpif.at:9325" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9325"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9327: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:9327"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0x0 total_len=86 ct_state=inv|trk,ipv6,in_port=2 (via action) data_len=86 (unbuffered)
icmp6,vlan_tci=0x0000,dl_src=00:00:86:05:80:da,dl_dst=00:60:97:07:69:ea,ipv6_src=fe80::200:86ff:fe05:80da,ipv6_dst=fe80::260:97ff:fe07:69ea,ipv6_label=0x00000,nw_tos=0,nw_ecn=0,nw_ttl=255,icmp_type=135,icmp_code=0,nd_target=fe80::260:97ff:fe07:69ea,nd_sll=00:00:86:05:80:da,nd_tll=00:00:00:00:00:00 icmp6_csum:68bd
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9327"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9332: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:9332"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9332"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9332: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:9332"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9332"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9332: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:9332"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9332"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:9332: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9332: wait failed" >&5

    $as_echo "ofproto-dpif.at:9332" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9332"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9332: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:9332"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9332"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9332: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:9332"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9332"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:9332: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9332: wait failed" >&5

    $as_echo "ofproto-dpif.at:9332" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9332"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1226
#AT_START_1227
at_fn_group_banner 1227 'ofproto-dpif.at:9335' \
  "ofproto-dpif - conntrack - zones" "               " 57
at_xfail=no
(
  $as_echo "1227. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9336: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:9336"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9336"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9336: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:9336"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9336"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9336: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:9336"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9336"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9336: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:9336"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9336"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9336: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:9336"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9336"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9336: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:9336"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9336"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9336: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:9336"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9336"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



add_of_ports br0 1 2 3 4

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9340: ovs-appctl vlog/set dpif_netdev:dbg vconn:info ofproto_dpif:info"
at_fn_check_prepare_trace "ofproto-dpif.at:9340"
( $at_check_trace; ovs-appctl vlog/set dpif_netdev:dbg vconn:info ofproto_dpif:info
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9340"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
table=0,priority=100,arp,action=normal
table=0,priority=10,in_port=1,udp,action=ct(commit,zone=0),controller
table=0,priority=10,in_port=2,udp,action=ct(table=1,zone=0)
table=0,priority=10,in_port=3,udp,action=ct(commit,zone=1),controller
table=0,priority=10,in_port=4,udp,action=ct(table=1,zone=1)
table=0,priority=1,action=drop
table=1,priority=10,in_port=2,ct_state=+trk+est-new,udp,action=controller
table=1,priority=10,in_port=4,ct_state=+trk+est-new,udp,action=controller
table=1,priority=1,action=drop
_ATEOF


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9362: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:9362"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9362"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9365: ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:9365"
( $at_check_trace; ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9365"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9369: ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9369"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9369"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9370: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=no),udp(src=1,dst=2)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9370"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=no),udp(src=1,dst=2)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9370"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9371: ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9371"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9371"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9375: ovs-appctl netdev-dummy/receive p4 'in_port(4),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9375"
( $at_check_trace; ovs-appctl netdev-dummy/receive p4 'in_port(4),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9375"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9376: ovs-appctl netdev-dummy/receive p3 'in_port(3),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=no),udp(src=1,dst=2)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9376"
( $at_check_trace; ovs-appctl netdev-dummy/receive p3 'in_port(3),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=no),udp(src=1,dst=2)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9376"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9377: ovs-appctl netdev-dummy/receive p4 'in_port(4),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9377"
( $at_check_trace; ovs-appctl netdev-dummy/receive p4 'in_port(4),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9377"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


$as_echo "ofproto-dpif.at:9379: waiting until test \`wc -l < ofctl_monitor.log\` -ge 8..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 8
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9379: wait failed" >&5

    $as_echo "ofproto-dpif.at:9379" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9379"
fi

$as_echo "ofproto-dpif.at:9380: waiting until ovs-appctl -t ovs-ofctl exit..." >&5
ovs_wait_cond () {
    ovs-appctl -t ovs-ofctl exit
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9380: wait failed" >&5

    $as_echo "ofproto-dpif.at:9380" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9380"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9383: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:9383"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0x0 total_len=42 in_port=1 (via action) data_len=42 (unbuffered)
udp,vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,nw_src=10.1.1.1,nw_dst=10.1.1.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=1,tp_dst=2 udp_csum:e9d6
NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x0 total_len=42 ct_state=est|rpl|trk,ct_nw_src=10.1.1.1,ct_nw_dst=10.1.1.2,ct_nw_proto=17,ct_tp_src=1,ct_tp_dst=2,ip,in_port=2 (via action) data_len=42 (unbuffered)
udp,vlan_tci=0x0000,dl_src=50:54:00:00:00:0a,dl_dst=50:54:00:00:00:09,nw_src=10.1.1.2,nw_dst=10.1.1.1,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=2,tp_dst=1 udp_csum:e9d6
NXT_PACKET_IN (xid=0x0): cookie=0x0 total_len=42 in_port=3 (via action) data_len=42 (unbuffered)
udp,vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,nw_src=10.1.1.1,nw_dst=10.1.1.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=1,tp_dst=2 udp_csum:e9d6
NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x0 total_len=42 ct_state=est|rpl|trk,ct_zone=1,ct_nw_src=10.1.1.1,ct_nw_dst=10.1.1.2,ct_nw_proto=17,ct_tp_src=1,ct_tp_dst=2,ip,in_port=4 (via action) data_len=42 (unbuffered)
udp,vlan_tci=0x0000,dl_src=50:54:00:00:00:0a,dl_dst=50:54:00:00:00:09,nw_src=10.1.1.2,nw_dst=10.1.1.1,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=2,tp_dst=1 udp_csum:e9d6
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9383"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9397: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:9397"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9397"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9397: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:9397"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9397"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9397: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:9397"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9397"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:9397: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9397: wait failed" >&5

    $as_echo "ofproto-dpif.at:9397" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9397"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9397: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:9397"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9397"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9397: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:9397"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9397"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:9397: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9397: wait failed" >&5

    $as_echo "ofproto-dpif.at:9397" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9397"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1227
#AT_START_1228
at_fn_group_banner 1228 'ofproto-dpif.at:9400' \
  "ofproto-dpif - conntrack - recirc,commit" "       " 57
at_xfail=no
(
  $as_echo "1228. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9401: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:9401"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9401"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9401: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:9401"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9401"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9401: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:9401"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9401"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9401: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:9401"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9401"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9401: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:9401"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9401"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9401: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:9401"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9401"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9401: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:9401"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9401"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



add_of_ports br0 1 2

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9405: ovs-appctl vlog/set dpif_netdev:dbg vconn:info ofproto_dpif:info"
at_fn_check_prepare_trace "ofproto-dpif.at:9405"
( $at_check_trace; ovs-appctl vlog/set dpif_netdev:dbg vconn:info ofproto_dpif:info
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9405"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
table=0,priority=100,arp,action=normal
table=0,priority=10,udp,action=ct(table=1,zone=0)
table=0,priority=1,action=drop
table=1,priority=10,in_port=1,ct_state=+trk+new,udp,action=ct(commit,zone=0),controller
table=1,priority=10,ct_state=+trk+est,udp,action=controller
table=1,priority=1,action=drop
_ATEOF


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9422: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:9422"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9422"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9425: ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:9425"
( $at_check_trace; ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9425"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9427: ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9427"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9427"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9430: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=no),udp(src=1,dst=2)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9430"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=no),udp(src=1,dst=2)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9430"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9433: ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9433"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9433"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


$as_echo "ofproto-dpif.at:9435: waiting until test \`wc -l < ofctl_monitor.log\` -ge 4..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 4
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9435: wait failed" >&5

    $as_echo "ofproto-dpif.at:9435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9435"
fi

$as_echo "ofproto-dpif.at:9436: waiting until ovs-appctl -t ovs-ofctl exit..." >&5
ovs_wait_cond () {
    ovs-appctl -t ovs-ofctl exit
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9436: wait failed" >&5

    $as_echo "ofproto-dpif.at:9436" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9436"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9439: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:9439"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x0 total_len=42 in_port=1 (via action) data_len=42 (unbuffered)
udp,vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,nw_src=10.1.1.1,nw_dst=10.1.1.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=1,tp_dst=2 udp_csum:e9d6
NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x0 total_len=42 ct_state=est|rpl|trk,ct_nw_src=10.1.1.1,ct_nw_dst=10.1.1.2,ct_nw_proto=17,ct_tp_src=1,ct_tp_dst=2,ip,in_port=2 (via action) data_len=42 (unbuffered)
udp,vlan_tci=0x0000,dl_src=50:54:00:00:00:0a,dl_dst=50:54:00:00:00:09,nw_src=10.1.1.2,nw_dst=10.1.1.1,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=2,tp_dst=1 udp_csum:e9d6
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9439"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9447: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:9447"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9447"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9447: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:9447"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9447"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9447: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:9447"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9447"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:9447: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9447: wait failed" >&5

    $as_echo "ofproto-dpif.at:9447" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9447"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9447: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:9447"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9447"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9447: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:9447"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9447"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:9447: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9447: wait failed" >&5

    $as_echo "ofproto-dpif.at:9447" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9447"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1228
#AT_START_1229
at_fn_group_banner 1229 'ofproto-dpif.at:9450' \
  "ofproto-dpif - conntrack - ICMP related" "        " 57
at_xfail=no
(
  $as_echo "1229. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9451: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:9451"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9451"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9451: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:9451"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9451"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9451: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:9451"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9451"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9451: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:9451"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9451"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9451: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:9451"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9451"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9451: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:9451"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9451"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9451: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:9451"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9451"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



add_of_ports br0 1 2

cat >flows.txt <<'_ATEOF'
table=0,priority=100,arp,action=normal
table=0,priority=10,ip,in_port=1,udp,action=ct(commit,table=1)
table=0,priority=10,ip,in_port=2,action=ct(table=1)
table=0,priority=1,action=drop
table=1,priority=10,in_port=1,ct_state=+trk,action=controller
table=1,priority=10,in_port=2,ct_state=+trk-inv-new,action=controller
table=1,priority=1,action=drop
_ATEOF


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9471: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:9471"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9471"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9474: ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:9474"
( $at_check_trace; ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9474"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9477: ovs-ofctl -O OpenFlow13 packet-out br0 2 ct\\(table=1\\) 'f64c473528c9c6f54ecb72db080045c0003d2e8700004001f351ac100004ac1000030303553f0000000045000021317040004011b138ac100003ac10000411112222000da5a06369616f0a'"
at_fn_check_prepare_trace "ofproto-dpif.at:9477"
( $at_check_trace; ovs-ofctl -O OpenFlow13 packet-out br0 2 ct\(table=1\) 'f64c473528c9c6f54ecb72db080045c0003d2e8700004001f351ac100004ac1000030303553f0000000045000021317040004011b138ac100003ac10000411112222000da5a06369616f0a'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9477"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9480: ovs-ofctl -O OpenFlow13 packet-out br0 1 ct\\(commit,table=1\\) 'c6f94ecb72dbe64c473528c9080045000021317040004011b138ac100001ac100002a28e15b3000d20966369616f0a'"
at_fn_check_prepare_trace "ofproto-dpif.at:9480"
( $at_check_trace; ovs-ofctl -O OpenFlow13 packet-out br0 1 ct\(commit,table=1\) 'c6f94ecb72dbe64c473528c9080045000021317040004011b138ac100001ac100002a28e15b3000d20966369616f0a'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9480"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9483: ovs-ofctl -O OpenFlow13 packet-out br0 2 ct\\(table=1\\) 'e64c473528c9c6f94ecb72db080045c0003d2e8700004001f355ac100002ac1000010303553f0000000045000021317040004011b138ac100001ac100002a28e15b3000d20966369616f0a'"
at_fn_check_prepare_trace "ofproto-dpif.at:9483"
( $at_check_trace; ovs-ofctl -O OpenFlow13 packet-out br0 2 ct\(table=1\) 'e64c473528c9c6f94ecb72db080045c0003d2e8700004001f355ac100002ac1000010303553f0000000045000021317040004011b138ac100001ac100002a28e15b3000d20966369616f0a'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9483"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


$as_echo "ofproto-dpif.at:9485: waiting until test \`wc -l < ofctl_monitor.log\` -ge 4..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 4
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9485: wait failed" >&5

    $as_echo "ofproto-dpif.at:9485" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9485"
fi

$as_echo "ofproto-dpif.at:9486: waiting until ovs-appctl -t ovs-ofctl exit..." >&5
ovs_wait_cond () {
    ovs-appctl -t ovs-ofctl exit
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9486: wait failed" >&5

    $as_echo "ofproto-dpif.at:9486" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9486"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9489: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:9489"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x0 total_len=47 ct_state=new|trk,ct_nw_src=172.16.0.1,ct_nw_dst=172.16.0.2,ct_nw_proto=17,ct_tp_src=41614,ct_tp_dst=5555,ip,in_port=1 (via action) data_len=47 (unbuffered)
udp,vlan_tci=0x0000,dl_src=e6:4c:47:35:28:c9,dl_dst=c6:f9:4e:cb:72:db,nw_src=172.16.0.1,nw_dst=172.16.0.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=41614,tp_dst=5555 udp_csum:2096
NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x0 total_len=75 ct_state=rel|rpl|trk,ct_nw_src=172.16.0.1,ct_nw_dst=172.16.0.2,ct_nw_proto=17,ct_tp_src=41614,ct_tp_dst=5555,ip,in_port=2 (via action) data_len=75 (unbuffered)
icmp,vlan_tci=0x0000,dl_src=c6:f9:4e:cb:72:db,dl_dst=e6:4c:47:35:28:c9,nw_src=172.16.0.2,nw_dst=172.16.0.1,nw_tos=192,nw_ecn=0,nw_ttl=64,icmp_type=3,icmp_code=3 icmp_csum:553f
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9489"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9497: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:9497"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9497"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9497: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:9497"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9497"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9497: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:9497"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9497"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:9497: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9497: wait failed" >&5

    $as_echo "ofproto-dpif.at:9497" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9497"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9497: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:9497"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9497"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9497: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:9497"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9497"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:9497: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9497: wait failed" >&5

    $as_echo "ofproto-dpif.at:9497" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9497"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1229
#AT_START_1230
at_fn_group_banner 1230 'ofproto-dpif.at:9500' \
  "ofproto-dpif - conntrack - ct_mark" "             " 57
at_xfail=no
(
  $as_echo "1230. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9501: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:9501"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9501"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9501: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:9501"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9501"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9501: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:9501"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9501"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9501: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:9501"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9501"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9501: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:9501"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9501"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9501: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:9501"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9501"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9501: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:9501"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9501"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



add_of_ports br0 1 2

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9505: ovs-appctl vlog/set dpif_netdev:dbg vconn:info ofproto_dpif:info"
at_fn_check_prepare_trace "ofproto-dpif.at:9505"
( $at_check_trace; ovs-appctl vlog/set dpif_netdev:dbg vconn:info ofproto_dpif:info
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9505"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
table=0,arp,action=normal
table=0,ip,in_port=1,udp,tp_src=1,action=ct(commit,exec(set_field:1->ct_mark)),controller
table=0,ip,in_port=1,udp,tp_src=3,action=ct(commit,exec(set_field:3->ct_mark)),controller
table=0,ip,in_port=1,udp,tp_src=5,action=ct(commit,exec(set_field:5->ct_mark)),controller
table=0,ip,in_port=2,actions=ct(table=1)
table=0,priority=0,action=drop
table=1,priority=100,ct_state=+trk+rpl,ct_mark=0/4,actions=controller
table=1,priority=1,action=drop
_ATEOF


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9524: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:9524"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9524"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9527: ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:9527"
( $at_check_trace; ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9527"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9529: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=no),udp(src=1,dst=2)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9529"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=no),udp(src=1,dst=2)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9529"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9530: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=no),udp(src=3,dst=4)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9530"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=no),udp(src=3,dst=4)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9530"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9531: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=no),udp(src=5,dst=6)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9531"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=no),udp(src=5,dst=6)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9531"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9533: ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9533"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9533"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9534: ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=4,dst=3)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9534"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=4,dst=3)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9534"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9535: ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=6,dst=5)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9535"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=6,dst=5)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9535"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


$as_echo "ofproto-dpif.at:9537: waiting until test \`wc -l < ofctl_monitor.log\` -ge 10..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 10
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9537: wait failed" >&5

    $as_echo "ofproto-dpif.at:9537" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9537"
fi

$as_echo "ofproto-dpif.at:9538: waiting until ovs-appctl -t ovs-ofctl exit..." >&5
ovs_wait_cond () {
    ovs-appctl -t ovs-ofctl exit
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9538: wait failed" >&5

    $as_echo "ofproto-dpif.at:9538" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9538"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9541: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:9541"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0x0 total_len=42 in_port=1 (via action) data_len=42 (unbuffered)
udp,vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,nw_src=10.1.1.1,nw_dst=10.1.1.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=1,tp_dst=2 udp_csum:e9d6
NXT_PACKET_IN (xid=0x0): cookie=0x0 total_len=42 in_port=1 (via action) data_len=42 (unbuffered)
udp,vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,nw_src=10.1.1.1,nw_dst=10.1.1.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=3,tp_dst=4 udp_csum:e9d2
NXT_PACKET_IN (xid=0x0): cookie=0x0 total_len=42 in_port=1 (via action) data_len=42 (unbuffered)
udp,vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,nw_src=10.1.1.1,nw_dst=10.1.1.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=5,tp_dst=6 udp_csum:e9ce
NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x0 total_len=42 ct_state=est|rpl|trk,ct_mark=0x1,ct_nw_src=10.1.1.1,ct_nw_dst=10.1.1.2,ct_nw_proto=17,ct_tp_src=1,ct_tp_dst=2,ip,in_port=2 (via action) data_len=42 (unbuffered)
udp,vlan_tci=0x0000,dl_src=50:54:00:00:00:0a,dl_dst=50:54:00:00:00:09,nw_src=10.1.1.2,nw_dst=10.1.1.1,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=2,tp_dst=1 udp_csum:e9d6
NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x0 total_len=42 ct_state=est|rpl|trk,ct_mark=0x3,ct_nw_src=10.1.1.1,ct_nw_dst=10.1.1.2,ct_nw_proto=17,ct_tp_src=3,ct_tp_dst=4,ip,in_port=2 (via action) data_len=42 (unbuffered)
udp,vlan_tci=0x0000,dl_src=50:54:00:00:00:0a,dl_dst=50:54:00:00:00:09,nw_src=10.1.1.2,nw_dst=10.1.1.1,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=4,tp_dst=3 udp_csum:e9d2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9541"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9558: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:9558"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9558"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9558: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:9558"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9558"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9558: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:9558"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9558"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:9558: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9558: wait failed" >&5

    $as_echo "ofproto-dpif.at:9558" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9558"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9558: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:9558"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9558"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9558: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:9558"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9558"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:9558: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9558: wait failed" >&5

    $as_echo "ofproto-dpif.at:9558" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9558"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1230
#AT_START_1231
at_fn_group_banner 1231 'ofproto-dpif.at:9561' \
  "ofproto-dpif - conntrack - ct_label" "            " 57
at_xfail=no
(
  $as_echo "1231. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9562: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:9562"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9562"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9562: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:9562"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9562"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9562: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:9562"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9562"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9562: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:9562"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9562"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9562: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:9562"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9562"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9562: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:9562"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9562"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9562: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:9562"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9562"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



add_of_ports br0 1 2

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9566: ovs-appctl vlog/set dpif_netdev:dbg vconn:info ofproto_dpif:info"
at_fn_check_prepare_trace "ofproto-dpif.at:9566"
( $at_check_trace; ovs-appctl vlog/set dpif_netdev:dbg vconn:info ofproto_dpif:info
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9566"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
table=0,arp,action=normal
table=0,ip,in_port=1,udp,tp_src=1,action=ct(commit,exec(set_field:000000000000000001->ct_label))
table=0,ip,in_port=1,udp,tp_src=3,action=ct(commit,exec(set_field:000000000000000002->ct_label))
table=0,ip,in_port=2,actions=ct(table=1)
table=1,priority=10,ct_state=+trk+rpl,actions=controller
table=1,priority=1,action=drop
_ATEOF


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9583: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:9583"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9583"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9586: ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:9586"
( $at_check_trace; ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9586"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9588: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=no),udp(src=1,dst=2)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9588"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=no),udp(src=1,dst=2)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9588"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9589: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=no),udp(src=3,dst=4)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9589"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=no),udp(src=3,dst=4)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9589"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9591: ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9591"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9591"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9592: ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=4,dst=3)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9592"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=4,dst=3)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9592"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


$as_echo "ofproto-dpif.at:9594: waiting until test \`wc -l < ofctl_monitor.log\` -ge 4..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 4
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9594: wait failed" >&5

    $as_echo "ofproto-dpif.at:9594" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9594"
fi

$as_echo "ofproto-dpif.at:9595: waiting until ovs-appctl -t ovs-ofctl exit..." >&5
ovs_wait_cond () {
    ovs-appctl -t ovs-ofctl exit
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9595: wait failed" >&5

    $as_echo "ofproto-dpif.at:9595" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9595"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9598: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:9598"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x0 total_len=42 ct_state=est|rpl|trk,ct_label=0x1,ct_nw_src=10.1.1.1,ct_nw_dst=10.1.1.2,ct_nw_proto=17,ct_tp_src=1,ct_tp_dst=2,ip,in_port=2 (via action) data_len=42 (unbuffered)
udp,vlan_tci=0x0000,dl_src=50:54:00:00:00:0a,dl_dst=50:54:00:00:00:09,nw_src=10.1.1.2,nw_dst=10.1.1.1,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=2,tp_dst=1 udp_csum:e9d6
NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x0 total_len=42 ct_state=est|rpl|trk,ct_label=0x2,ct_nw_src=10.1.1.1,ct_nw_dst=10.1.1.2,ct_nw_proto=17,ct_tp_src=3,ct_tp_dst=4,ip,in_port=2 (via action) data_len=42 (unbuffered)
udp,vlan_tci=0x0000,dl_src=50:54:00:00:00:0a,dl_dst=50:54:00:00:00:09,nw_src=10.1.1.2,nw_dst=10.1.1.1,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=4,tp_dst=3 udp_csum:e9d2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9598"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9606: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:9606"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9606"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9606: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:9606"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9606"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9606: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:9606"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9606"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:9606: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9606: wait failed" >&5

    $as_echo "ofproto-dpif.at:9606" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9606"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9606: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:9606"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9606"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9606: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:9606"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9606"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:9606: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9606: wait failed" >&5

    $as_echo "ofproto-dpif.at:9606" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9606"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1231
#AT_START_1232
at_fn_group_banner 1232 'ofproto-dpif.at:9609' \
  "ofproto-dpif - conntrack - ct_label datapath flow" "" 57
at_xfail=no
(
  $as_echo "1232. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9610: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:9610"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9610"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9610: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:9610"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9610"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9610: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:9610"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9610"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9610: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:9610"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9610"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9610: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:9610"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9610"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9610: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:9610"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9610"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9610: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:9610"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9610"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



add_of_ports br0 1 2

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9614: ovs-appctl vlog/set dpif_netdev:dbg vconn:info ofproto_dpif:info"
at_fn_check_prepare_trace "ofproto-dpif.at:9614"
( $at_check_trace; ovs-appctl vlog/set dpif_netdev:dbg vconn:info ofproto_dpif:info
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9614"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
table=0,arp,action=normal
table=0,ip,in_port=1,udp,tp_src=1,action=ct(commit,exec(set_field:1->ct_label)),2
table=0,ip,in_port=2,actions=ct(table=1)
table=0,priority=0,action=drop
table=1,priority=10,ct_state=+trk+rpl,ct_label=0x1,actions=1
table=1,priority=1,action=drop
_ATEOF


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9640: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:9640"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9640"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9642: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=no),udp(src=1,dst=2)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9642"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=no),udp(src=1,dst=2)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9642"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9643: ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9643"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9643"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Give time for logs to appear.
ovs-appctl revalidator/wait

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9648: cat ovs-vswitchd.log | strip_ufid | filter_flow_install"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:9648"
( $at_check_trace; cat ovs-vswitchd.log | strip_ufid | filter_flow_install
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ct_state(+rpl+trk),ct_label(0x1),recirc_id(0x1),in_port(2),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), actions:1
recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=17,frag=no),udp(src=1), actions:ct(commit,label=0x1),2
recirc_id(0),in_port(2),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), actions:ct,recirc(0x1)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9648"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9654: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:9654"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9654"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9654: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:9654"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9654"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9654: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:9654"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9654"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:9654: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9654: wait failed" >&5

    $as_echo "ofproto-dpif.at:9654" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9654"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9654: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:9654"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9654"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9654: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:9654"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9654"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:9654: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9654: wait failed" >&5

    $as_echo "ofproto-dpif.at:9654" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9654"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1232
#AT_START_1233
at_fn_group_banner 1233 'ofproto-dpif.at:9657' \
  "ofproto-dpif - conntrack - no output" "           " 57
at_xfail=no
(
  $as_echo "1233. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9658: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:9658"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9658"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9658: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:9658"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9658"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9658: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:9658"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9658"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9658: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:9658"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9658"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9658: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:9658"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9658"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9658: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:9658"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9658"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9658: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:9658"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9658"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



add_of_ports br0 1

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9662: ovs-appctl vlog/set dpif_netdev:dbg vconn:info ofproto_dpif:info"
at_fn_check_prepare_trace "ofproto-dpif.at:9662"
( $at_check_trace; ovs-appctl vlog/set dpif_netdev:dbg vconn:info ofproto_dpif:info
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9662"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
in_port=1,udp,action=ct(commit,zone=0)
_ATEOF


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9669: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:9669"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9669"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9672: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=no),udp(src=1,dst=2)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9672"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=no),udp(src=1,dst=2)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9672"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9674: cat ovs-vswitchd.log | strip_ufid | filter_flow_install"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:9674"
( $at_check_trace; cat ovs-vswitchd.log | strip_ufid | filter_flow_install
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=17,frag=no), actions:ct(commit)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9674"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9678: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:9678"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9678"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9678: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:9678"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9678"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9678: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:9678"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9678"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:9678: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9678: wait failed" >&5

    $as_echo "ofproto-dpif.at:9678" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9678"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9678: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:9678"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9678"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9678: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:9678"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9678"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:9678: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9678: wait failed" >&5

    $as_echo "ofproto-dpif.at:9678" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9678"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1233
#AT_START_1234
at_fn_group_banner 1234 'ofproto-dpif.at:9681' \
  "ofproto-dpif - conntrack - tcp port reuse" "      " 57
at_xfail=no
(
  $as_echo "1234. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9682: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:9682"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9682"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9682: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:9682"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9682"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9682: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:9682"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9682"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9682: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:9682"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9682"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9682: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:9682"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9682"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9682: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:9682"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9682"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9682: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:9682"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9682"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



add_of_ports br0 1 2

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9686: ovs-appctl vlog/set dpif_netdev:dbg vconn:info ofproto_dpif:info"
at_fn_check_prepare_trace "ofproto-dpif.at:9686"
( $at_check_trace; ovs-appctl vlog/set dpif_netdev:dbg vconn:info ofproto_dpif:info
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9686"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
table=0,priority=100,arp,action=normal
table=0,priority=10,in_port=1,ip,action=ct(commit,table=1)
table=0,priority=10,in_port=2,ip,action=ct(table=1)
table=0,priority=1,action=drop
table=1,priority=100,cookie=0x1,in_port=1,ip,ct_state=+trk+new-inv-rpl,action=2
table=1,priority=100,in_port=1,ip,ct_state=+trk-new-inv-rpl,action=2
table=1,priority=100,in_port=2,ip,ct_state=+trk+est+rpl-new-inv,action=1
table=1,ip,ct_state=+trk+inv,action=drop
_ATEOF


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9708: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:9708"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9708"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9710: ovs-appctl netdev-dummy/receive p1 '50540000000a50540000000908004500002ca4e5400040067fe20a0101010a0101020001000259b5d93f0000000060027210dd190000020405b4'"
at_fn_check_prepare_trace "ofproto-dpif.at:9710"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 '50540000000a50540000000908004500002ca4e5400040067fe20a0101010a0101020001000259b5d93f0000000060027210dd190000020405b4'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9710"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9711: ovs-appctl netdev-dummy/receive p2 '50540000000950540000000a08004500002c00004000400624c80a0101020a010101000200017c35468459b5d940601272101a4f0000020405b4'"
at_fn_check_prepare_trace "ofproto-dpif.at:9711"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 '50540000000950540000000a08004500002c00004000400624c80a0101020a010101000200017c35468459b5d940601272101a4f0000020405b4'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9711"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9712: ovs-appctl netdev-dummy/receive p1 '50540000000a505400000009080045000028a4e6400040067fe50a0101010a0101020001000259b5d9407c35468550107210320c0000'"
at_fn_check_prepare_trace "ofproto-dpif.at:9712"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 '50540000000a505400000009080045000028a4e6400040067fe50a0101010a0101020001000259b5d9407c35468550107210320c0000'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9712"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9713: ovs-appctl netdev-dummy/receive p2 '50540000000950540000000a0800450000303b5f40004006e9640a0101020a010101000200017c35468559b5d9405018721074c200007061796c6f61640a'"
at_fn_check_prepare_trace "ofproto-dpif.at:9713"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 '50540000000950540000000a0800450000303b5f40004006e9640a0101020a010101000200017c35468559b5d9405018721074c200007061796c6f61640a'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9713"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9714: ovs-appctl netdev-dummy/receive p1 '50540000000a505400000009080045000028a4e7400040067fe40a0101010a0101020001000259b5d9407c35468d5010721032040000'"
at_fn_check_prepare_trace "ofproto-dpif.at:9714"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 '50540000000a505400000009080045000028a4e7400040067fe40a0101010a0101020001000259b5d9407c35468d5010721032040000'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9714"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9715: ovs-appctl netdev-dummy/receive p2 '50540000000950540000000a0800450000283b6040004006e96b0a0101020a010101000200017c35468d59b5d9405011721032030000'"
at_fn_check_prepare_trace "ofproto-dpif.at:9715"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 '50540000000950540000000a0800450000283b6040004006e96b0a0101020a010101000200017c35468d59b5d9405011721032030000'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9715"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9716: ovs-appctl netdev-dummy/receive p1 '50540000000a505400000009080045000028a4e8400040067fe30a0101010a0101020001000259b5d9407c35468e5010721032030000'"
at_fn_check_prepare_trace "ofproto-dpif.at:9716"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 '50540000000a505400000009080045000028a4e8400040067fe30a0101010a0101020001000259b5d9407c35468e5010721032030000'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9716"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9717: ovs-appctl netdev-dummy/receive p1 '50540000000a505400000009080045000028a4e9400040067fe20a0101010a0101020001000259b5d9407c35468e5011721032020000'"
at_fn_check_prepare_trace "ofproto-dpif.at:9717"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 '50540000000a505400000009080045000028a4e9400040067fe20a0101010a0101020001000259b5d9407c35468e5011721032020000'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9717"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9718: ovs-appctl netdev-dummy/receive p2 '50540000000950540000000a0800450000283b6140004006e96a0a0101020a010101000200017c35468e59b5d9415010721032020000'"
at_fn_check_prepare_trace "ofproto-dpif.at:9718"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 '50540000000950540000000a0800450000283b6140004006e96a0a0101020a010101000200017c35468e59b5d9415010721032020000'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9718"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9720: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:9720"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9720"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9721: ovs-ofctl dump-flows br0 | grep cookie=0x1 | grep -o \"n_packets=[0-9]*\""
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:9721"
( $at_check_trace; ovs-ofctl dump-flows br0 | grep cookie=0x1 | grep -o "n_packets=[0-9]*"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "n_packets=1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9721"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9726: ovs-appctl netdev-dummy/receive p1 '50540000000a50540000000908004500002cc0a74000400664200a0101010a010102000100025b7dbf1f0000000060027210f5710000020405b4'"
at_fn_check_prepare_trace "ofproto-dpif.at:9726"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 '50540000000a50540000000908004500002cc0a74000400664200a0101010a010102000100025b7dbf1f0000000060027210f5710000020405b4'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9726"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9727: ovs-appctl netdev-dummy/receive p2 '50540000000950540000000a08004500002c00004000400624c80a0101020a010101000200017c36468f5b7dbf2060127210329b0000020405b4'"
at_fn_check_prepare_trace "ofproto-dpif.at:9727"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 '50540000000950540000000a08004500002c00004000400624c80a0101020a010101000200017c36468f5b7dbf2060127210329b0000020405b4'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9727"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9728: ovs-appctl netdev-dummy/receive p1 '50540000000a505400000009080045000028c0a84000400664230a0101010a010102000100025b7dbf207c364690501072104a580000'"
at_fn_check_prepare_trace "ofproto-dpif.at:9728"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 '50540000000a505400000009080045000028c0a84000400664230a0101010a010102000100025b7dbf207c364690501072104a580000'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9728"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9729: ovs-appctl netdev-dummy/receive p2 '50540000000950540000000a080045000030392840004006eb9b0a0101020a010101000200017c3646905b7dbf20501872108d0e00007061796c6f61640a'"
at_fn_check_prepare_trace "ofproto-dpif.at:9729"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 '50540000000950540000000a080045000030392840004006eb9b0a0101020a010101000200017c3646905b7dbf20501872108d0e00007061796c6f61640a'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9729"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9730: ovs-appctl netdev-dummy/receive p1 '50540000000a505400000009080045000028c0a94000400664220a0101010a010102000100025b7dbf207c364698501072104a500000'"
at_fn_check_prepare_trace "ofproto-dpif.at:9730"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 '50540000000a505400000009080045000028c0a94000400664220a0101010a010102000100025b7dbf207c364698501072104a500000'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9730"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9731: ovs-appctl netdev-dummy/receive p2 '50540000000950540000000a080045000028392940004006eba20a0101020a010101000200017c3646985b7dbf20501172104a4f0000'"
at_fn_check_prepare_trace "ofproto-dpif.at:9731"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 '50540000000950540000000a080045000028392940004006eba20a0101020a010101000200017c3646985b7dbf20501172104a4f0000'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9731"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9732: ovs-appctl netdev-dummy/receive p1 '50540000000a505400000009080045000028c0aa4000400664210a0101010a010102000100025b7dbf207c364699501072104a4f0000'"
at_fn_check_prepare_trace "ofproto-dpif.at:9732"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 '50540000000a505400000009080045000028c0aa4000400664210a0101010a010102000100025b7dbf207c364699501072104a4f0000'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9732"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9733: ovs-appctl netdev-dummy/receive p1 '50540000000a505400000009080045000028c0ab4000400664200a0101010a010102000100025b7dbf207c364699501172104a4e0000'"
at_fn_check_prepare_trace "ofproto-dpif.at:9733"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 '50540000000a505400000009080045000028c0ab4000400664200a0101010a010102000100025b7dbf207c364699501172104a4e0000'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9733"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9734: ovs-appctl netdev-dummy/receive p2 '50540000000950540000000a080045000028392a40004006eba10a0101020a010101000200017c3646995b7dbf21501072104a4e0000'"
at_fn_check_prepare_trace "ofproto-dpif.at:9734"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 '50540000000950540000000a080045000028392a40004006eba10a0101020a010101000200017c3646995b7dbf21501072104a4e0000'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9734"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9736: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:9736"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9736"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9737: ovs-ofctl dump-flows br0 | grep cookie=0x1 | grep -o \"n_packets=[0-9]*\""
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:9737"
( $at_check_trace; ovs-ofctl dump-flows br0 | grep cookie=0x1 | grep -o "n_packets=[0-9]*"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "n_packets=2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9737"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9742: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:9742"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9742"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9742: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:9742"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9742"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9742: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:9742"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9742"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:9742: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9742: wait failed" >&5

    $as_echo "ofproto-dpif.at:9742" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9742"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9742: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:9742"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9742"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9742: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:9742"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9742"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:9742: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9742: wait failed" >&5

    $as_echo "ofproto-dpif.at:9742" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9742"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1234
#AT_START_1235
at_fn_group_banner 1235 'ofproto-dpif.at:9745' \
  "ofproto-dpif - conntrack - tcp pick up" "         " 57
at_xfail=no
(
  $as_echo "1235. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9746: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:9746"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9746"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9746: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:9746"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9746"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9746: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:9746"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9746"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9746: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:9746"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9746"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9746: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:9746"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9746"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9746: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:9746"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9746"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9746: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:9746"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9746"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



add_of_ports br0 1 2

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9750: ovs-appctl vlog/set dpif_netdev:dbg vconn:info ofproto_dpif:info"
at_fn_check_prepare_trace "ofproto-dpif.at:9750"
( $at_check_trace; ovs-appctl vlog/set dpif_netdev:dbg vconn:info ofproto_dpif:info
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9750"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
table=0,priority=100,arp,action=normal
table=0,priority=10,in_port=1,tcp,action=ct(commit,table=1)
table=0,priority=10,in_port=2,tcp,action=ct(table=1)
table=0,priority=1,action=drop
table=1,priority=10,cookie=0x1,ip,ct_state=+trk+inv,action=controller
table=1,priority=1,action=drop
_ATEOF


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9767: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:9767"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9767"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9769: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:9769"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9769"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9770: ovs-ofctl dump-flows br0 | grep cookie=0x1 | grep -o \"n_packets=[0-9]*\""
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:9770"
( $at_check_trace; ovs-ofctl dump-flows br0 | grep cookie=0x1 | grep -o "n_packets=[0-9]*"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "n_packets=0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9770"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9776: ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:9776"
( $at_check_trace; ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9776"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9784: ovs-appctl netdev-dummy/receive p1 '50540000000950540000000a080045000028fc264000400628a50a0101020a01010100020001396bb35a8cadbdb45010000a629b0000'"
at_fn_check_prepare_trace "ofproto-dpif.at:9784"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 '50540000000950540000000a080045000028fc264000400628a50a0101020a01010100020001396bb35a8cadbdb45010000a629b0000'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9784"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9785: ovs-appctl netdev-dummy/receive p1 '50540000000950540000000a080045000029fc274000400628a30a0101020a01010100020001396bb35a8cadbdb45018000a589200000a'"
at_fn_check_prepare_trace "ofproto-dpif.at:9785"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 '50540000000950540000000a080045000029fc274000400628a30a0101020a01010100020001396bb35a8cadbdb45018000a589200000a'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9785"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9786: ovs-appctl netdev-dummy/receive p2 '50540000000a505400000009080045000028f2c84000400632030a0101010a010102000100028cadbdb4396bb35b5010000a629a0000'"
at_fn_check_prepare_trace "ofproto-dpif.at:9786"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 '50540000000a505400000009080045000028f2c84000400632030a0101010a010102000100028cadbdb4396bb35b5010000a629a0000'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9786"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9787: ovs-appctl netdev-dummy/receive p1 '50540000000950540000000a08004500022afc284000400626a10a0101020a01010100020001396bb35b8cadbdb45018000a941f0000                                               666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666                                               666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666                                               666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666                                               666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666                                               666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666                                               666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666                                               666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666                                               666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666                                               666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666                                               6666666666666666666666666666666666666666666666666666660a'"
at_fn_check_prepare_trace "ofproto-dpif.at:9787"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 '50540000000950540000000a08004500022afc284000400626a10a0101020a01010100020001396bb35b8cadbdb45018000a941f0000                                               666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666                                               666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666                                               666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666                                               666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666                                               666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666                                               666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666                                               666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666                                               666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666                                               666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666                                               6666666666666666666666666666666666666666666666666666660a'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9787"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9798: ovs-appctl netdev-dummy/receive p2 '50540000000a505400000009080045000028f2c94000400632020a0101010a010102000100028cadbdb4396bb55d5010000a60980000'"
at_fn_check_prepare_trace "ofproto-dpif.at:9798"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 '50540000000a505400000009080045000028f2c94000400632020a0101010a010102000100028cadbdb4396bb55d5010000a60980000'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9798"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9799: ovs-appctl netdev-dummy/receive p2 '50540000000a5054000000090800450001fdf2ca40004006302c0a0101010a010102000100028cadbdb4396bb55d5018000aa60c0000                                               656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565                                               656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565                                               656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565                                               656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565                                               656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565                                               656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565                                               656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565                                               656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565                                               6565656565656565656565656565656565656565656565656565656565656565656565650a'"
at_fn_check_prepare_trace "ofproto-dpif.at:9799"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 '50540000000a5054000000090800450001fdf2ca40004006302c0a0101010a010102000100028cadbdb4396bb55d5018000aa60c0000                                               656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565                                               656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565                                               656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565                                               656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565                                               656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565                                               656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565                                               656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565                                               656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565                                               6565656565656565656565656565656565656565656565656565656565656565656565650a'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9799"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9809: ovs-appctl netdev-dummy/receive p1 '50540000000950540000000a080045000028fc294000400628a20a0101020a01010100020001396bb55d8cadbf895010000a5ec30000'"
at_fn_check_prepare_trace "ofproto-dpif.at:9809"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 '50540000000950540000000a080045000028fc294000400628a20a0101020a01010100020001396bb55d8cadbf895010000a5ec30000'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9809"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9810: ovs-appctl netdev-dummy/receive p1 '50540000000950540000000a080045000028fc2a4000400628a10a0101020a01010100020001396bb55d8cadbf895011000a5ec20000'"
at_fn_check_prepare_trace "ofproto-dpif.at:9810"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 '50540000000950540000000a080045000028fc2a4000400628a10a0101020a01010100020001396bb55d8cadbf895011000a5ec20000'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9810"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9811: ovs-appctl netdev-dummy/receive p2 '50540000000a505400000009080045000028f2cb4000400632000a0101010a010102000100028cadbf89396bb55e5010000a5ec20000'"
at_fn_check_prepare_trace "ofproto-dpif.at:9811"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 '50540000000a505400000009080045000028f2cb4000400632000a0101010a010102000100028cadbf89396bb55e5010000a5ec20000'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9811"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9812: ovs-appctl netdev-dummy/receive p2 '50540000000a505400000009080045000028f2cc4000400631ff0a0101010a010102000100028cadbf89396bb55e5011000a5ec10000'"
at_fn_check_prepare_trace "ofproto-dpif.at:9812"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 '50540000000a505400000009080045000028f2cc4000400631ff0a0101010a010102000100028cadbf89396bb55e5011000a5ec10000'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9812"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9813: ovs-appctl netdev-dummy/receive p1 '50540000000950540000000a080045000028258e40004006ff3d0a0101020a01010100020001396bb55e8cadbf8a5010000a5ec10000'"
at_fn_check_prepare_trace "ofproto-dpif.at:9813"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 '50540000000950540000000a080045000028258e40004006ff3d0a0101020a01010100020001396bb55e8cadbf8a5010000a5ec10000'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9813"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9815: ovs-appctl revalidator/purge"
at_fn_check_prepare_trace "ofproto-dpif.at:9815"
( $at_check_trace; ovs-appctl revalidator/purge
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9815"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


$as_echo "ofproto-dpif.at:9817: waiting until ovs-appctl -t ovs-ofctl exit..." >&5
ovs_wait_cond () {
    ovs-appctl -t ovs-ofctl exit
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9817: wait failed" >&5

    $as_echo "ofproto-dpif.at:9817" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9817"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9819: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:9819"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9819"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9822: ovs-ofctl dump-flows br0 | grep cookie=0x1 | grep -o \"n_packets=[0-9]*\""
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:9822"
( $at_check_trace; ovs-ofctl dump-flows br0 | grep cookie=0x1 | grep -o "n_packets=[0-9]*"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "n_packets=0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9822"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9827: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:9827"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9827"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9827: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:9827"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9827"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9827: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:9827"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9827"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:9827: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9827: wait failed" >&5

    $as_echo "ofproto-dpif.at:9827" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9827"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9827: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:9827"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9827"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9827: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:9827"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9827"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:9827: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9827: wait failed" >&5

    $as_echo "ofproto-dpif.at:9827" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9827"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1235
#AT_START_1236
at_fn_group_banner 1236 'ofproto-dpif.at:9833' \
  "ofproto-dpif - conntrack - ct_clear" "            " 57
at_xfail=no
(
  $as_echo "1236. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9834: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:9834"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9834"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9834: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:9834"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9834"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9834: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:9834"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9834"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9834: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:9834"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9834"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9834: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:9834"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9834"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9834: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:9834"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9834"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9834: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:9834"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9834"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



add_of_ports br0 1 2

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9838: ovs-appctl vlog/set dpif_netdev:dbg vconn:info ofproto_dpif:info"
at_fn_check_prepare_trace "ofproto-dpif.at:9838"
( $at_check_trace; ovs-appctl vlog/set dpif_netdev:dbg vconn:info ofproto_dpif:info
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9838"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
table=0,priority=100,arp,action=normal
table=0,priority=10,in_port=1,udp,action=ct(commit,zone=0),controller,ct_clear,controller
table=0,priority=10,in_port=2,udp,action=ct(table=1,zone=0)
table=0,priority=1,action=drop
table=1,priority=10,in_port=2,ct_state=+trk+est-new,udp,action=controller,ct_clear,controller
table=1,priority=1,action=drop
_ATEOF


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9855: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:9855"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9855"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9858: ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:9858"
( $at_check_trace; ovs-ofctl monitor br0 65534 invalid_ttl -P nxt_packet_in --detach --no-chdir --pidfile 2> ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9858"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9860: ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9860"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9860"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9863: ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=no),udp(src=1,dst=2)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9863"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'in_port(1),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.1.1.1,dst=10.1.1.2,proto=17,tos=0,ttl=64,frag=no),udp(src=1,dst=2)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9863"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9866: ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'"
at_fn_check_prepare_trace "ofproto-dpif.at:9866"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 'in_port(2),eth(src=50:54:00:00:00:0a,dst=50:54:00:00:00:09),eth_type(0x0800),ipv4(src=10.1.1.2,dst=10.1.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=2,dst=1)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9866"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }


$as_echo "ofproto-dpif.at:9868: waiting until test \`wc -l < ofctl_monitor.log\` -ge 8..." >&5
ovs_wait_cond () {
    test `wc -l < ofctl_monitor.log` -ge 8
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9868: wait failed" >&5

    $as_echo "ofproto-dpif.at:9868" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9868"
fi

$as_echo "ofproto-dpif.at:9869: waiting until ovs-appctl -t ovs-ofctl exit..." >&5
ovs_wait_cond () {
    ovs-appctl -t ovs-ofctl exit
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9869: wait failed" >&5

    $as_echo "ofproto-dpif.at:9869" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9869"
fi


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9874: cat ofctl_monitor.log"
at_fn_check_prepare_trace "ofproto-dpif.at:9874"
( $at_check_trace; cat ofctl_monitor.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "NXT_PACKET_IN (xid=0x0): cookie=0x0 total_len=42 in_port=1 (via action) data_len=42 (unbuffered)
udp,vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,nw_src=10.1.1.1,nw_dst=10.1.1.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=1,tp_dst=2 udp_csum:e9d6
NXT_PACKET_IN (xid=0x0): cookie=0x0 total_len=42 in_port=1 (via action) data_len=42 (unbuffered)
udp,vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,nw_src=10.1.1.1,nw_dst=10.1.1.2,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=1,tp_dst=2 udp_csum:e9d6
NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x0 total_len=42 ct_state=est|rpl|trk,ct_nw_src=10.1.1.1,ct_nw_dst=10.1.1.2,ct_nw_proto=17,ct_tp_src=1,ct_tp_dst=2,ip,in_port=2 (via action) data_len=42 (unbuffered)
udp,vlan_tci=0x0000,dl_src=50:54:00:00:00:0a,dl_dst=50:54:00:00:00:09,nw_src=10.1.1.2,nw_dst=10.1.1.1,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=2,tp_dst=1 udp_csum:e9d6
NXT_PACKET_IN (xid=0x0): table_id=1 cookie=0x0 total_len=42 in_port=2 (via action) data_len=42 (unbuffered)
udp,vlan_tci=0x0000,dl_src=50:54:00:00:00:0a,dl_dst=50:54:00:00:00:09,nw_src=10.1.1.2,nw_dst=10.1.1.1,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=2,tp_dst=1 udp_csum:e9d6
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9874"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9887: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:9887"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9887"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9887: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:9887"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9887"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9887: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:9887"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9887"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:9887: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9887: wait failed" >&5

    $as_echo "ofproto-dpif.at:9887" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9887"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9887: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:9887"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9887"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9887: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:9887"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9887"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ofctl_monitor.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:9887: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9887: wait failed" >&5

    $as_echo "ofproto-dpif.at:9887" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9887"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1236
#AT_START_1237
at_fn_group_banner 1237 'ofproto-dpif.at:9890' \
  "ofproto-dpif - conntrack - ofproto/trace" "       " 57
at_xfail=no
(
  $as_echo "1237. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9891: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:9891"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9891"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9891: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:9891"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9891"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9891: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:9891"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9891"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9891: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:9891"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9891"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9891: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:9891"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9891"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9891: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:9891"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9891"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9891: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:9891"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9891"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



add_of_ports br0 1 2 3 4

cat >flows.txt <<'_ATEOF'
table=0,priority=100,arp,action=normal
table=0,priority=10,udp,action=ct(table=1,zone=0)
table=0,priority=10,tcp,action=ct(table=2,zone=1)
table=0,priority=1,action=drop
table=1,priority=10,in_port=1,ct_zone=0,ct_state=+trk+new,udp,action=ct(commit,zone=0),2
table=1,priority=10,in_port=1,ct_zone=0,ct_state=+trk+est,udp,action=2
table=1,priority=10,in_port=2,ct_zone=0,ct_state=+trk+est,udp,action=1
table=1,priority=1,action=drop
table=2,priority=10,in_port=1,tcp,ct_zone=1,ct_state=+trk+new,tcp,action=ct(commit,zone=1),ct(table=3,zone=2)
table=2,priority=10,in_port=1,tcp,ct_zone=1,ct_state=+trk+est,tcp,action=ct(table=3,zone=2)
table=2,priority=1,action=drop
table=3,priority=10,in_port=1,tcp,ct_zone=2,ct_state=+trk+new,tcp,action=ct(commit,zone=2),4
table=3,priority=10,in_port=1,tcp,ct_zone=2,ct_state=+trk+est,tcp,action=3
table=2,priority=1,action=drop
_ATEOF


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9923: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:9923"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9923"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9925: ovs-appctl ofproto/trace br0 'in_port=2,udp'"
at_fn_check_prepare_trace "ofproto-dpif.at:9925"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=2,udp'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9925"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9926: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:9926"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9926"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9930: ovs-appctl ofproto/trace br0 'in_port=1,udp'"
at_fn_check_prepare_trace "ofproto-dpif.at:9930"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=1,udp'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9930"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9931: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:9931"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: ct(commit),2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9931"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9935: ovs-appctl ofproto/trace br0 'in_port=1,tcp'"
at_fn_check_prepare_trace "ofproto-dpif.at:9935"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=1,tcp'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9935"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9936: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:9936"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: ct(commit,zone=2),4
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9936"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9940: ovs-appctl ofproto/trace br0 'in_port=1,tcp' --ct-next 'trk,est' --ct-next 'trk,est' "
at_fn_check_prepare_trace "ofproto-dpif.at:9940"
( $at_check_trace; ovs-appctl ofproto/trace br0 'in_port=1,tcp' --ct-next 'trk,est' --ct-next 'trk,est'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9940"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9941: tail -1 stdout"
at_fn_check_prepare_trace "ofproto-dpif.at:9941"
( $at_check_trace; tail -1 stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9941"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9945: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:9945"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9945"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9945: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:9945"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9945"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9945: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:9945"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9945"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:9945: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9945: wait failed" >&5

    $as_echo "ofproto-dpif.at:9945" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9945"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9945: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:9945"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9945"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9945: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:9945"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9945"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:9945: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9945: wait failed" >&5

    $as_echo "ofproto-dpif.at:9945" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9945"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1237
#AT_START_1238
at_fn_group_banner 1238 'ofproto-dpif.at:9948' \
  "ofproto - set mtu" "                              " 57
at_xfail=no
(
  $as_echo "1238. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9949: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:9949"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9949"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9949: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:9949"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9949"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9949: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:9949"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9949"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9949: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:9949"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9949"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9949: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:9949"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9949"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9949: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:9949"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9949"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9949: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:9949"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9949"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



add_of_ports br0 1

# Check that initial MTU is 1500 for 'br0' and 'p1'.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9954: ovs-vsctl get Interface br0 mtu"
at_fn_check_prepare_trace "ofproto-dpif.at:9954"
( $at_check_trace; ovs-vsctl get Interface br0 mtu
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1500
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9954"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9957: ovs-vsctl get Interface p1 mtu"
at_fn_check_prepare_trace "ofproto-dpif.at:9957"
( $at_check_trace; ovs-vsctl get Interface p1 mtu
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1500
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9957"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Request new MTU for 'p1'
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9962: ovs-vsctl set Interface p1 mtu_request=1600"
at_fn_check_prepare_trace "ofproto-dpif.at:9962"
( $at_check_trace; ovs-vsctl set Interface p1 mtu_request=1600
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9962"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Check that the new MTU is applied
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9965: ovs-vsctl --timeout=10 wait-until Interface p1 mtu=1600"
at_fn_check_prepare_trace "ofproto-dpif.at:9965"
( $at_check_trace; ovs-vsctl --timeout=10 wait-until Interface p1 mtu=1600
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9965"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# The internal port 'br0' should have the same MTU value as p1, becase it's
# the new bridge minimum.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9968: ovs-vsctl --timeout=10 wait-until Interface br0 mtu=1600"
at_fn_check_prepare_trace "ofproto-dpif.at:9968"
( $at_check_trace; ovs-vsctl --timeout=10 wait-until Interface br0 mtu=1600
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9968"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9970: ovs-vsctl del-port br0 p1"
at_fn_check_prepare_trace "ofproto-dpif.at:9970"
( $at_check_trace; ovs-vsctl del-port br0 p1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9970"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# When 'p1' is deleted, the internal port should return to the default MTU
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9973: ovs-vsctl --timeout=10 wait-until Interface br0 mtu=1500"
at_fn_check_prepare_trace "ofproto-dpif.at:9973"
( $at_check_trace; ovs-vsctl --timeout=10 wait-until Interface br0 mtu=1500
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9973"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# New port with 'mtu_request' in the same transaction.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9976: ovs-vsctl add-port br0 p2 -- set int p2 type=dummy mtu_request=1600"
at_fn_check_prepare_trace "ofproto-dpif.at:9976"
( $at_check_trace; ovs-vsctl add-port br0 p2 -- set int p2 type=dummy mtu_request=1600
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9976"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9977: ovs-vsctl --timeout=10 wait-until Interface p2 mtu=1600"
at_fn_check_prepare_trace "ofproto-dpif.at:9977"
( $at_check_trace; ovs-vsctl --timeout=10 wait-until Interface p2 mtu=1600
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9977"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9978: ovs-vsctl --timeout=10 wait-until Interface br0 mtu=1600"
at_fn_check_prepare_trace "ofproto-dpif.at:9978"
( $at_check_trace; ovs-vsctl --timeout=10 wait-until Interface br0 mtu=1600
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9978"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Explicitly set mtu_request on the internal interface.  This should prevent
# the MTU from being overriden.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9982: ovs-vsctl set int br0 mtu_request=1700"
at_fn_check_prepare_trace "ofproto-dpif.at:9982"
( $at_check_trace; ovs-vsctl set int br0 mtu_request=1700
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9982"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9983: ovs-vsctl --timeout=10 wait-until Interface br0 mtu=1700"
at_fn_check_prepare_trace "ofproto-dpif.at:9983"
( $at_check_trace; ovs-vsctl --timeout=10 wait-until Interface br0 mtu=1700
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9983"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# The new MTU on p2 should not affect br0.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9986: ovs-vsctl set int p2 mtu_request=1400"
at_fn_check_prepare_trace "ofproto-dpif.at:9986"
( $at_check_trace; ovs-vsctl set int p2 mtu_request=1400
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9986"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9987: ovs-vsctl --timeout=10 wait-until Interface p2 mtu=1400"
at_fn_check_prepare_trace "ofproto-dpif.at:9987"
( $at_check_trace; ovs-vsctl --timeout=10 wait-until Interface p2 mtu=1400
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9987"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9988: ovs-vsctl --timeout=10 wait-until Interface br0 mtu=1700"
at_fn_check_prepare_trace "ofproto-dpif.at:9988"
( $at_check_trace; ovs-vsctl --timeout=10 wait-until Interface br0 mtu=1700
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9988"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Remove explicit mtu_request from br0.  Now it should track the bridge
# minimum again.
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9992: ovs-vsctl set int br0 mtu_request=[]"
at_fn_check_prepare_trace "ofproto-dpif.at:9992"
( $at_check_trace; ovs-vsctl set int br0 mtu_request=[]
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9992"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9993: ovs-vsctl --timeout=10 wait-until Interface br0 mtu=1400"
at_fn_check_prepare_trace "ofproto-dpif.at:9993"
( $at_check_trace; ovs-vsctl --timeout=10 wait-until Interface br0 mtu=1400
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9993"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9995: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:9995"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9995"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9995: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:9995"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9995"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9995: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:9995"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9995"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:9995: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9995: wait failed" >&5

    $as_echo "ofproto-dpif.at:9995" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9995"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9995: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:9995"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9995"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9995: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:9995"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9995"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:9995: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:9995: wait failed" >&5

    $as_echo "ofproto-dpif.at:9995" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:9995"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1238
#AT_START_1239
at_fn_group_banner 1239 'ofproto-dpif.at:9998' \
  "ofproto - fragment prerequisites" "               " 57
at_xfail=no
(
  $as_echo "1239. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9999: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ofproto-dpif.at:9999"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9999"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9999: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ofproto-dpif.at:9999"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9999"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9999: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:9999"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9999"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9999: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ofproto-dpif.at:9999"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9999"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9999: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ofproto-dpif.at:9999"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9999"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9999: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ofproto-dpif.at:9999"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9999"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:9999: add_of_br 0  "
at_fn_check_prepare_trace "ofproto-dpif.at:9999"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:9999"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:10001: ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg"
at_fn_check_prepare_trace "ofproto-dpif.at:10001"
( $at_check_trace; ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:10001"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


add_of_ports br0 1

cat >flows.txt <<'_ATEOF'
priority=10,in_port=1,udp,tp_src=67,tp_dst=68,action=drop
priority=1,in_port=1,udp,action=drop
_ATEOF


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:10010: ovs-ofctl add-flows br0 flows.txt"
at_fn_check_prepare_trace "ofproto-dpif.at:10010"
( $at_check_trace; ovs-ofctl add-flows br0 flows.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:10010"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:10012: ovs-vsctl set Open_vSwitch . other_config:max-idle=10000"
at_fn_check_prepare_trace "ofproto-dpif.at:10012"
( $at_check_trace; ovs-vsctl set Open_vSwitch . other_config:max-idle=10000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:10012"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/stop
{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:10015: ovs-appctl netdev-dummy/receive p1 'recirc_id(0),in_port(1),eth_type(0x0800),ipv4(proto=17,frag=later)'"
at_fn_check_prepare_trace "ofproto-dpif.at:10015"
( $at_check_trace; ovs-appctl netdev-dummy/receive p1 'recirc_id(0),in_port(1),eth_type(0x0800),ipv4(proto=17,frag=later)'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:10015"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

ovs-appctl time/warp 5000

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:10018: strip_ufid < ovs-vswitchd.log | filter_flow_install | strip_used"
at_fn_check_prepare_notrace 'a shell pipeline' "ofproto-dpif.at:10018"
( $at_check_trace; strip_ufid < ovs-vswitchd.log | filter_flow_install | strip_used
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(proto=17,frag=later), actions:drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:10018"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:10023: ovs-ofctl add-flow br0 priority=5,in_port=1,action=drop"
at_fn_check_prepare_trace "ofproto-dpif.at:10023"
( $at_check_trace; ovs-ofctl add-flow br0 priority=5,in_port=1,action=drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:10023"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:10024: ovs-appctl revalidator/wait"
at_fn_check_prepare_trace "ofproto-dpif.at:10024"
( $at_check_trace; ovs-appctl revalidator/wait
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:10024"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:10028: grep flow_del ovs-vswitchd.log"
at_fn_check_prepare_trace "ofproto-dpif.at:10028"
( $at_check_trace; grep flow_del ovs-vswitchd.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ofproto-dpif.at:10028"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ofproto-dpif.at:10030: check_logs "
at_fn_check_prepare_trace "ofproto-dpif.at:10030"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:10030"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:10030: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ofproto-dpif.at:10030"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:10030"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:10030: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ofproto-dpif.at:10030"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:10030"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:10030: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:10030: wait failed" >&5

    $as_echo "ofproto-dpif.at:10030" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:10030"
fi

   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:10030: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ofproto-dpif.at:10030"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:10030"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ofproto-dpif.at:10030: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ofproto-dpif.at:10030"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ofproto-dpif.at:10030"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ofproto-dpif.at:10030: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ofproto-dpif.at:10030: wait failed" >&5

    $as_echo "ofproto-dpif.at:10030" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ofproto-dpif.at:10030"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1239
#AT_START_1240
at_fn_group_banner 1240 'bridge.at:7' \
  "bridge - ports that disappear get added back" "   " 58
at_xfail=no
(
  $as_echo "1240. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/bridge.at:8: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "bridge.at:8"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bridge.at:8"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bridge.at:8: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "bridge.at:8"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bridge.at:8"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/bridge.at:8: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bridge.at:8"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bridge.at:8"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/bridge.at:8: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "bridge.at:8"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bridge.at:8"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bridge.at:8: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "bridge.at:8"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bridge.at:8"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/bridge.at:8: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bridge.at:8"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bridge.at:8"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/bridge.at:8: add_of_br 0  "
at_fn_check_prepare_trace "bridge.at:8"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bridge.at:8"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Add some ports and make sure that they show up in the datapath.
add_of_ports br0 1 2
{ set +x
$as_echo "$at_srcdir/bridge.at:12: ovs-appctl dpif/show"
at_fn_check_prepare_trace "bridge.at:12"
( $at_check_trace; ovs-appctl dpif/show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dummy@ovs-dummy: hit:0 missed:0
	br0:
		br0 65534/100: (dummy-internal)
		p1 1/1: (dummy)
		p2 2/2: (dummy)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bridge.at:12"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Delete p1 from the datapath with "ovs-dpctl del-if"
# and check that it disappeared.
{ set +x
$as_echo "$at_srcdir/bridge.at:22: ovs-appctl dpctl/del-if dummy@ovs-dummy p1"
at_fn_check_prepare_trace "bridge.at:22"
( $at_check_trace; ovs-appctl dpctl/del-if dummy@ovs-dummy p1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bridge.at:22"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bridge.at:23: ovs-appctl dpif/show"
at_fn_check_prepare_trace "bridge.at:23"
( $at_check_trace; ovs-appctl dpif/show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dummy@ovs-dummy: hit:0 missed:0
	br0:
		br0 65534/100: (dummy-internal)
		p2 2/2: (dummy)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bridge.at:23"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Force reconfiguration and make sure that p1 got added back.
{ set +x
$as_echo "$at_srcdir/bridge.at:31: ovs-vsctl del-port p2"
at_fn_check_prepare_trace "bridge.at:31"
( $at_check_trace; ovs-vsctl del-port p2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bridge.at:31"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bridge.at:32: ovs-appctl dpif/show"
at_fn_check_prepare_trace "bridge.at:32"
( $at_check_trace; ovs-appctl dpif/show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dummy@ovs-dummy: hit:0 missed:0
	br0:
		br0 65534/100: (dummy-internal)
		p1 1/1: (dummy)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bridge.at:32"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bridge.at:38: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "bridge.at:38"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bridge.at:38"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/bridge.at:38: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "bridge.at:38"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bridge.at:38"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bridge.at:38: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bridge.at:38: wait failed" >&5

    $as_echo "bridge.at:38" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bridge.at:38"
fi

{ set +x
$as_echo "$at_srcdir/bridge.at:39: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "bridge.at:39"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bridge.at:39"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/bridge.at:39: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "bridge.at:39"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bridge.at:39"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bridge.at:39: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bridge.at:39: wait failed" >&5

    $as_echo "bridge.at:39" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bridge.at:39"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1240
#AT_START_1241
at_fn_group_banner 1241 'bridge.at:44' \
  "bridge - multiple bridges share a controller" "   " 58
at_xfail=no
(
  $as_echo "1241. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/bridge.at:45: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "bridge.at:45"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bridge.at:45"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bridge.at:45: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "bridge.at:45"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bridge.at:45"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/bridge.at:45: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bridge.at:45"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bridge.at:45"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/bridge.at:45: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "bridge.at:45"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bridge.at:45"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/bridge.at:45: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "bridge.at:45"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bridge.at:45"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/bridge.at:45: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "bridge.at:45"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bridge.at:45"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/bridge.at:45: add_of_br 0 add-br br1 -- \\
    set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \\
    set bridge br1 datapath-type=dummy other-config:datapath-id=1234  "
at_fn_check_prepare_notrace 'an embedded newline' "bridge.at:45"
( $at_check_trace; add_of_br 0 add-br br1 -- \
    set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \
    set bridge br1 datapath-type=dummy other-config:datapath-id=1234
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bridge.at:45"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/bridge.at:51: ovs-testcontroller --detach punix:controller --pidfile"
at_fn_check_prepare_trace "bridge.at:51"
( $at_check_trace; ovs-testcontroller --detach punix:controller --pidfile
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/bridge.at:51"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

on_exit 'kill `cat ovs-testcontroller.pid`'
$as_echo "bridge.at:53: waiting until test -e controller..." >&5
ovs_wait_cond () {
    test -e controller
}
if ovs_wait; then :
else
    $as_echo "bridge.at:53: wait failed" >&5

    $as_echo "bridge.at:53" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bridge.at:53"
fi


{ set +x
$as_echo "$at_srcdir/bridge.at:56: ovs-vsctl set-controller br0 unix:controller"
at_fn_check_prepare_trace "bridge.at:56"
( $at_check_trace; ovs-vsctl set-controller br0 unix:controller
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bridge.at:56"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bridge.at:57: ovs-vsctl set-fail-mode br0 secure"
at_fn_check_prepare_trace "bridge.at:57"
( $at_check_trace; ovs-vsctl set-fail-mode br0 secure
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bridge.at:57"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bridge.at:58: ovs-appctl time/warp 5000"
at_fn_check_prepare_trace "bridge.at:58"
( $at_check_trace; ovs-appctl time/warp 5000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/bridge.at:58"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bridge.at:59: ovs-vsctl set-controller br1 unix:controller"
at_fn_check_prepare_trace "bridge.at:59"
( $at_check_trace; ovs-vsctl set-controller br1 unix:controller
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bridge.at:59"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/bridge.at:60: ovs-vsctl set-fail-mode br1 secure"
at_fn_check_prepare_trace "bridge.at:60"
( $at_check_trace; ovs-vsctl set-fail-mode br1 secure
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bridge.at:60"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


for i in `seq 0 19`
do
    if ovs-vsctl --columns=is_connected list controller |grep "false"; then
        :
    else
        break
    fi
    ovs-appctl time/warp 1100
done

{ set +x
$as_echo "$at_srcdir/bridge.at:75: ovs-vsctl --columns=status list controller |           grep \"status\" | sort -u |wc -l"
at_fn_check_prepare_notrace 'a shell pipeline' "bridge.at:75"
( $at_check_trace; ovs-vsctl --columns=status list controller |           grep "status" | sort -u |wc -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bridge.at:75"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/bridge.at:79: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "bridge.at:79"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bridge.at:79"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/bridge.at:79: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "bridge.at:79"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bridge.at:79"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bridge.at:79: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bridge.at:79: wait failed" >&5

    $as_echo "bridge.at:79" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bridge.at:79"
fi

{ set +x
$as_echo "$at_srcdir/bridge.at:80: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "bridge.at:80"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bridge.at:80"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/bridge.at:80: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "bridge.at:80"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/bridge.at:80"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "bridge.at:80: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "bridge.at:80: wait failed" >&5

    $as_echo "bridge.at:80" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/bridge.at:80"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1241
#AT_START_1242
at_fn_group_banner 1242 'netdev-type.at:4' \
  "bridge - set MAC address of internal port" "      " 59
at_xfail=no
(
  $as_echo "1242. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/netdev-type.at:5: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "netdev-type.at:5"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/netdev-type.at:5"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/netdev-type.at:5: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "netdev-type.at:5"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/netdev-type.at:5"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/netdev-type.at:5: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "netdev-type.at:5"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/netdev-type.at:5"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/netdev-type.at:5: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "netdev-type.at:5"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/netdev-type.at:5"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/netdev-type.at:5: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "netdev-type.at:5"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/netdev-type.at:5"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/netdev-type.at:5: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "netdev-type.at:5"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/netdev-type.at:5"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/netdev-type.at:5: add_of_br 0  "
at_fn_check_prepare_trace "netdev-type.at:5"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/netdev-type.at:5"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Add an internal port and make sure that it shows up in the datapath.
add_of_ports br0 1
{ set +x
$as_echo "$at_srcdir/netdev-type.at:9: ovs-appctl dpif/show"
at_fn_check_prepare_trace "netdev-type.at:9"
( $at_check_trace; ovs-appctl dpif/show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dummy@ovs-dummy: hit:0 missed:0
	br0:
		br0 65534/100: (dummy-internal)
		p1 1/1: (dummy)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/netdev-type.at:9"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

#
# Set MAC address of dummy device and check that it has been set
{ set +x
$as_echo "$at_srcdir/netdev-type.at:17: ovs-vsctl set Interface p1 type=internal mac=\\\"aa:55:c0:ff:ee:00\\\""
at_fn_check_prepare_trace "netdev-type.at:17"
( $at_check_trace; ovs-vsctl set Interface p1 type=internal mac=\"aa:55:c0:ff:ee:00\"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/netdev-type.at:17"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/netdev-type.at:18: ovs-vsctl get Interface p1 mac_in_use"
at_fn_check_prepare_trace "netdev-type.at:18"
( $at_check_trace; ovs-vsctl get Interface p1 mac_in_use
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"aa:55:c0:ff:ee:00\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/netdev-type.at:18"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/netdev-type.at:22: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "netdev-type.at:22"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/netdev-type.at:22"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/netdev-type.at:22: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "netdev-type.at:22"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/netdev-type.at:22"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "netdev-type.at:22: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "netdev-type.at:22: wait failed" >&5

    $as_echo "netdev-type.at:22" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/netdev-type.at:22"
fi

{ set +x
$as_echo "$at_srcdir/netdev-type.at:23: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "netdev-type.at:23"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/netdev-type.at:23"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/netdev-type.at:23: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "netdev-type.at:23"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/netdev-type.at:23"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "netdev-type.at:23: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "netdev-type.at:23: wait failed" >&5

    $as_echo "netdev-type.at:23" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/netdev-type.at:23"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1242
#AT_START_1243
at_fn_group_banner 1243 'ovsdb-log.at:3' \
  "create empty, reread" "                           " 60
at_xfail=no
(
  $as_echo "1243. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:6: test-ovsdb log-io file create"
at_fn_check_prepare_trace "ovsdb-log.at:6"
( $at_check_trace; test-ovsdb log-io file create
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "file: open successful
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:6"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:10: test-ovsdb log-io file read-only read"
at_fn_check_prepare_trace "ovsdb-log.at:10"
( $at_check_trace; test-ovsdb log-io file read-only read
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "file: open successful
file: read: end of log
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:10"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:15: test -f .file.~lock~"
at_fn_check_prepare_trace "ovsdb-log.at:15"
( $at_check_trace; test -f .file.~lock~
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:15"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1243
#AT_START_1244
at_fn_group_banner 1244 'ovsdb-log.at:18' \
  "write one, reread" "                              " 60
at_xfail=no
(
  $as_echo "1244. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:21: test-ovsdb log-io file create 'write:{\"x\":0}'"
at_fn_check_prepare_trace "ovsdb-log.at:21"
( $at_check_trace; test-ovsdb log-io file create 'write:{"x":0}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "file: open successful
file: write:{\"x\":0} successful
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:21"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:26: test-ovsdb log-io file read-only read read"
at_fn_check_prepare_trace "ovsdb-log.at:26"
( $at_check_trace; test-ovsdb log-io file read-only read read
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "file: open successful
file: read: {\"x\":0}
file: read: end of log
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:26"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:32: test -f .file.~lock~"
at_fn_check_prepare_trace "ovsdb-log.at:32"
( $at_check_trace; test -f .file.~lock~
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:32"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1244
#AT_START_1245
at_fn_group_banner 1245 'ovsdb-log.at:35' \
  "check that create fails if file exists" "         " 60
at_xfail=no
(
  $as_echo "1245. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:38: test-ovsdb log-io file create 'write:{\"x\":1}'"
at_fn_check_prepare_trace "ovsdb-log.at:38"
( $at_check_trace; test-ovsdb log-io file create 'write:{"x":1}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "file: open successful
file: write:{\"x\":1} successful
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:38"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:43: test-ovsdb log-io file read-only read"
at_fn_check_prepare_trace "ovsdb-log.at:43"
( $at_check_trace; test-ovsdb log-io file read-only read
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "file: open successful
file: read: {\"x\":1}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:43"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:48: test-ovsdb log-io file create-excl read"
at_fn_check_prepare_trace "ovsdb-log.at:48"
( $at_check_trace; test-ovsdb log-io file create-excl read
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "test-ovsdb: I/O error: file: create failed (File exists)
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-log.at:48"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:52: test-ovsdb log-io file create read"
at_fn_check_prepare_trace "ovsdb-log.at:52"
( $at_check_trace; test-ovsdb log-io file create read
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "file: open successful
file: read: {\"x\":1}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:52"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:57: test -f .file.~lock~"
at_fn_check_prepare_trace "ovsdb-log.at:57"
( $at_check_trace; test -f .file.~lock~
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:57"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1245
#AT_START_1246
at_fn_group_banner 1246 'ovsdb-log.at:60' \
  "write one, reread" "                              " 60
at_xfail=no
(
  $as_echo "1246. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:63: test-ovsdb log-io file create 'write:{\"x\":0}' 'write:{\"x\":1}' 'write:{\"x\":2}'"
at_fn_check_prepare_trace "ovsdb-log.at:63"
( $at_check_trace; test-ovsdb log-io file create 'write:{"x":0}' 'write:{"x":1}' 'write:{"x":2}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "file: open successful
file: write:{\"x\":0} successful
file: write:{\"x\":1} successful
file: write:{\"x\":2} successful
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:63"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:70: test-ovsdb log-io file read-only read read read read"
at_fn_check_prepare_trace "ovsdb-log.at:70"
( $at_check_trace; test-ovsdb log-io file read-only read read read read
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "file: open successful
file: read: {\"x\":0}
file: read: {\"x\":1}
file: read: {\"x\":2}
file: read: end of log
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:70"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:78: test -f .file.~lock~"
at_fn_check_prepare_trace "ovsdb-log.at:78"
( $at_check_trace; test -f .file.~lock~
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:78"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1246
#AT_START_1247
at_fn_group_banner 1247 'ovsdb-log.at:81' \
  "write one, replace, commit" "                     " 60
at_xfail=no
(
  $as_echo "1247. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



for option in '' --no-rename-open-files; do
    rm -f file
    { set +x
$as_echo "$at_srcdir/ovsdb-log.at:86: test-ovsdb \$option log-io file create \\
	  'write:{\"x\":0}' \\
	  'replace_start' \\
	  'new-write:{\"x\":1}' \\
	  'new-write:{\"x\":2}' \\
	  'old-write:{\"x\":4}' \\
	  'replace_commit' \\
	  'read' \\
	  'write:{\"x\":3}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-log.at:86"
( $at_check_trace; test-ovsdb $option log-io file create \
	  'write:{"x":0}' \
	  'replace_start' \
	  'new-write:{"x":1}' \
	  'new-write:{"x":2}' \
	  'old-write:{"x":4}' \
	  'replace_commit' \
	  'read' \
	  'write:{"x":3}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "file: open successful
file: write:{\"x\":0} successful
file: replace_start successful
(temp): write:{\"x\":1} successful
(temp): write:{\"x\":2} successful
file: write:{\"x\":4} successful
file: replace_commit successful
file: read: end of log
file: write:{\"x\":3} successful
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:86"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ovsdb-log.at:106: test-ovsdb log-io file read-only read read read read"
at_fn_check_prepare_trace "ovsdb-log.at:106"
( $at_check_trace; test-ovsdb log-io file read-only read read read read
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "file: open successful
file: read: {\"x\":1}
file: read: {\"x\":2}
file: read: {\"x\":3}
file: read: end of log
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:106"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

done
{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:115: test -f .file.~lock~"
at_fn_check_prepare_trace "ovsdb-log.at:115"
( $at_check_trace; test -f .file.~lock~
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:115"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1247
#AT_START_1248
at_fn_group_banner 1248 'ovsdb-log.at:118' \
  "write one, replace, abort" "                      " 60
at_xfail=no
(
  $as_echo "1248. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



for option in '' --no-rename-open-files; do
    rm -f file
    { set +x
$as_echo "$at_srcdir/ovsdb-log.at:123: test-ovsdb \$option log-io file create \\
	  'write:{\"x\":0}' \\
	  'replace_start' \\
	  'new-write:{\"x\":1}' \\
	  'new-write:{\"x\":2}' \\
	  'old-write:{\"x\":4}' \\
	  'replace_abort' \\
	  'read' \\
	  'write:{\"x\":3}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-log.at:123"
( $at_check_trace; test-ovsdb $option log-io file create \
	  'write:{"x":0}' \
	  'replace_start' \
	  'new-write:{"x":1}' \
	  'new-write:{"x":2}' \
	  'old-write:{"x":4}' \
	  'replace_abort' \
	  'read' \
	  'write:{"x":3}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "file: open successful
file: write:{\"x\":0} successful
file: replace_start successful
(temp): write:{\"x\":1} successful
(temp): write:{\"x\":2} successful
file: write:{\"x\":4} successful
file: replace_abort successful
file: read: end of log
file: write:{\"x\":3} successful
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:123"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ovsdb-log.at:143: test-ovsdb log-io file read-only read read read read"
at_fn_check_prepare_trace "ovsdb-log.at:143"
( $at_check_trace; test-ovsdb log-io file read-only read read read read
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "file: open successful
file: read: {\"x\":0}
file: read: {\"x\":4}
file: read: {\"x\":3}
file: read: end of log
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:143"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

done
{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:152: test -f .file.~lock~"
at_fn_check_prepare_trace "ovsdb-log.at:152"
( $at_check_trace; test -f .file.~lock~
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:152"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1248
#AT_START_1249
at_fn_group_banner 1249 'ovsdb-log.at:155' \
  "write one, reread - alternative magic" "          " 60
at_xfail=no
(
  $as_echo "1249. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



# Sometimes you just need more magic:
# http://www.catb.org/jargon/html/magic-story.html
{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:160: test-ovsdb --magic=\"MORE_MAGIC\" log-io file create 'write:{\"x\":0}' 'write:{\"x\":1}' 'write:{\"x\":2}'"
at_fn_check_prepare_trace "ovsdb-log.at:160"
( $at_check_trace; test-ovsdb --magic="MORE_MAGIC" log-io file create 'write:{"x":0}' 'write:{"x":1}' 'write:{"x":2}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "file: open successful
file: write:{\"x\":0} successful
file: write:{\"x\":1} successful
file: write:{\"x\":2} successful
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:160"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:167: test-ovsdb --magic=\"MORE_MAGIC\" log-io file read-only read read read read"
at_fn_check_prepare_trace "ovsdb-log.at:167"
( $at_check_trace; test-ovsdb --magic="MORE_MAGIC" log-io file read-only read read read read
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "file: open successful
file: read: {\"x\":0}
file: read: {\"x\":1}
file: read: {\"x\":2}
file: read: end of log
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:167"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:175: test-ovsdb log-io file read-only"
at_fn_check_prepare_trace "ovsdb-log.at:175"
( $at_check_trace; test-ovsdb log-io file read-only
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "test-ovsdb: ovsdb error: file: cannot identify file type
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-log.at:175"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:179: test -f .file.~lock~"
at_fn_check_prepare_trace "ovsdb-log.at:179"
( $at_check_trace; test -f .file.~lock~
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:179"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1249
#AT_START_1250
at_fn_group_banner 1250 'ovsdb-log.at:182' \
  "write one, reread, append" "                      " 60
at_xfail=no
(
  $as_echo "1250. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:185: test-ovsdb log-io file create 'write:{\"x\":0}' 'write:{\"x\":1}' 'write:{\"x\":2}'"
at_fn_check_prepare_trace "ovsdb-log.at:185"
( $at_check_trace; test-ovsdb log-io file create 'write:{"x":0}' 'write:{"x":1}' 'write:{"x":2}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "file: open successful
file: write:{\"x\":0} successful
file: write:{\"x\":1} successful
file: write:{\"x\":2} successful
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:185"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:192: test-ovsdb log-io file read/write read read read 'write:{\"append\":0}'"
at_fn_check_prepare_trace "ovsdb-log.at:192"
( $at_check_trace; test-ovsdb log-io file read/write read read read 'write:{"append":0}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "file: open successful
file: read: {\"x\":0}
file: read: {\"x\":1}
file: read: {\"x\":2}
file: write:{\"append\":0} successful
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:192"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:200: test-ovsdb log-io file read-only read read read read read"
at_fn_check_prepare_trace "ovsdb-log.at:200"
( $at_check_trace; test-ovsdb log-io file read-only read read read read read
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "file: open successful
file: read: {\"x\":0}
file: read: {\"x\":1}
file: read: {\"x\":2}
file: read: {\"append\":0}
file: read: end of log
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:200"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:209: test -f .file.~lock~"
at_fn_check_prepare_trace "ovsdb-log.at:209"
( $at_check_trace; test -f .file.~lock~
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:209"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1250
#AT_START_1251
at_fn_group_banner 1251 'ovsdb-log.at:212' \
  "write, reread one, overwrite" "                   " 60
at_xfail=no
(
  $as_echo "1251. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:215: test-ovsdb log-io file create 'write:{\"x\":0}' 'write:{\"x\":1}' 'write:{\"x\":2}'"
at_fn_check_prepare_trace "ovsdb-log.at:215"
( $at_check_trace; test-ovsdb log-io file create 'write:{"x":0}' 'write:{"x":1}' 'write:{"x":2}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "file: open successful
file: write:{\"x\":0} successful
file: write:{\"x\":1} successful
file: write:{\"x\":2} successful
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:215"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:222: test-ovsdb log-io file read/write read 'write:{\"more data\":0}'"
at_fn_check_prepare_trace "ovsdb-log.at:222"
( $at_check_trace; test-ovsdb log-io file read/write read 'write:{"more data":0}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "file: open successful
file: read: {\"x\":0}
file: write:{\"more data\":0} successful
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:222"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:228: test-ovsdb log-io file read-only read read read"
at_fn_check_prepare_trace "ovsdb-log.at:228"
( $at_check_trace; test-ovsdb log-io file read-only read read read
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "file: open successful
file: read: {\"x\":0}
file: read: {\"more data\":0}
file: read: end of log
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:228"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:235: test -f .file.~lock~"
at_fn_check_prepare_trace "ovsdb-log.at:235"
( $at_check_trace; test -f .file.~lock~
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:235"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1251
#AT_START_1252
at_fn_group_banner 1252 'ovsdb-log.at:238' \
  "write, add corrupted data, read" "                " 60
at_xfail=no
(
  $as_echo "1252. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:241: test-ovsdb log-io file create 'write:{\"x\":0}' 'write:{\"x\":1}' 'write:{\"x\":2}'"
at_fn_check_prepare_trace "ovsdb-log.at:241"
( $at_check_trace; test-ovsdb log-io file create 'write:{"x":0}' 'write:{"x":1}' 'write:{"x":2}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "file: open successful
file: write:{\"x\":0} successful
file: write:{\"x\":1} successful
file: write:{\"x\":2} successful
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:241"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:248: echo 'xxx' >> file"
at_fn_check_prepare_trace "ovsdb-log.at:248"
( $at_check_trace; echo 'xxx' >> file
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:248"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:249: test-ovsdb log-io file read-only read read read read"
at_fn_check_prepare_trace "ovsdb-log.at:249"
( $at_check_trace; test-ovsdb log-io file read-only read read read read
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "file: open successful
file: read: {\"x\":0}
file: read: {\"x\":1}
file: read: {\"x\":2}
file: read failed: syntax error: file: parse error at offset 186 in header line \"xxx\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:249"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:257: test -f .file.~lock~"
at_fn_check_prepare_trace "ovsdb-log.at:257"
( $at_check_trace; test -f .file.~lock~
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:257"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1252
#AT_START_1253
at_fn_group_banner 1253 'ovsdb-log.at:260' \
  "write, add corrupted data, read, overwrite" "     " 60
at_xfail=no
(
  $as_echo "1253. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:263: test-ovsdb log-io file create 'write:{\"x\":0}' 'write:{\"x\":1}' 'write:{\"x\":2}'"
at_fn_check_prepare_trace "ovsdb-log.at:263"
( $at_check_trace; test-ovsdb log-io file create 'write:{"x":0}' 'write:{"x":1}' 'write:{"x":2}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "file: open successful
file: write:{\"x\":0} successful
file: write:{\"x\":1} successful
file: write:{\"x\":2} successful
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:263"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:270: echo 'xxx' >> file"
at_fn_check_prepare_trace "ovsdb-log.at:270"
( $at_check_trace; echo 'xxx' >> file
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:270"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:271: test-ovsdb log-io file read/write read read read read 'write:{\"x\":3}'"
at_fn_check_prepare_trace "ovsdb-log.at:271"
( $at_check_trace; test-ovsdb log-io file read/write read read read read 'write:{"x":3}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "file: open successful
file: read: {\"x\":0}
file: read: {\"x\":1}
file: read: {\"x\":2}
file: read failed: syntax error: file: parse error at offset 186 in header line \"xxx\"
file: write:{\"x\":3} successful
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:271"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:280: test-ovsdb log-io file read-only read read read read read"
at_fn_check_prepare_trace "ovsdb-log.at:280"
( $at_check_trace; test-ovsdb log-io file read-only read read read read read
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "file: open successful
file: read: {\"x\":0}
file: read: {\"x\":1}
file: read: {\"x\":2}
file: read: {\"x\":3}
file: read: end of log
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:280"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:289: test -f .file.~lock~"
at_fn_check_prepare_trace "ovsdb-log.at:289"
( $at_check_trace; test -f .file.~lock~
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:289"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1253
#AT_START_1254
at_fn_group_banner 1254 'ovsdb-log.at:292' \
  "write, corrupt some data, read, overwrite" "      " 60
at_xfail=no
(
  $as_echo "1254. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:295: test-ovsdb log-io file create 'write:{\"x\":0}' 'write:{\"x\":1}' 'write:{\"x\":2}'"
at_fn_check_prepare_trace "ovsdb-log.at:295"
( $at_check_trace; test-ovsdb log-io file create 'write:{"x":0}' 'write:{"x":1}' 'write:{"x":2}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "file: open successful
file: write:{\"x\":0} successful
file: write:{\"x\":1} successful
file: write:{\"x\":2} successful
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:295"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:302: sed 's/{\"x\":2}/{\"x\":3}/' < file > file.tmp"
at_fn_check_prepare_trace "ovsdb-log.at:302"
( $at_check_trace; sed 's/{"x":2}/{"x":3}/' < file > file.tmp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:302"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:303: mv file.tmp file"
at_fn_check_prepare_trace "ovsdb-log.at:303"
( $at_check_trace; mv file.tmp file
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:303"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:304: grep -c '{\"x\":3}' file"
at_fn_check_prepare_trace "ovsdb-log.at:304"
( $at_check_trace; grep -c '{"x":3}' file
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:304"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:306: test-ovsdb log-io file read/write read read read 'write:{\"longer data\":0}'"
at_fn_check_prepare_trace "ovsdb-log.at:306"
( $at_check_trace; test-ovsdb log-io file read/write read read read 'write:{"longer data":0}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "file: open successful
file: read: {\"x\":0}
file: read: {\"x\":1}
file: read failed: syntax error: file: 8 bytes starting at offset 178 have SHA-1 hash 2683fd63b5b9fd49df4f2aa25bf7db5cbbebbe6f but should have hash 3d8ed30f471ad1b7b4b571cb0c7d5ed3e81350aa
file: write:{\"longer data\":0} successful
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:306"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:314: test-ovsdb log-io file read-only read read read read"
at_fn_check_prepare_trace "ovsdb-log.at:314"
( $at_check_trace; test-ovsdb log-io file read-only read read read read
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "file: open successful
file: read: {\"x\":0}
file: read: {\"x\":1}
file: read: {\"longer data\":0}
file: read: end of log
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:314"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:322: test -f .file.~lock~"
at_fn_check_prepare_trace "ovsdb-log.at:322"
( $at_check_trace; test -f .file.~lock~
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:322"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1254
#AT_START_1255
at_fn_group_banner 1255 'ovsdb-log.at:325' \
  "write, truncate file, read, overwrite" "          " 60
at_xfail=no
(
  $as_echo "1255. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:328: test-ovsdb log-io file create 'write:{\"x\":0}' 'write:{\"x\":1}' 'write:{\"x\":2}'"
at_fn_check_prepare_trace "ovsdb-log.at:328"
( $at_check_trace; test-ovsdb log-io file create 'write:{"x":0}' 'write:{"x":1}' 'write:{"x":2}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "file: open successful
file: write:{\"x\":0} successful
file: write:{\"x\":1} successful
file: write:{\"x\":2} successful
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:328"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:335: sed 's/{\"x\":2}/2/' < file > file.tmp"
at_fn_check_prepare_trace "ovsdb-log.at:335"
( $at_check_trace; sed 's/{"x":2}/2/' < file > file.tmp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:335"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:336: mv file.tmp file"
at_fn_check_prepare_trace "ovsdb-log.at:336"
( $at_check_trace; mv file.tmp file
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:336"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:337: grep -c '^2\$' file"
at_fn_check_prepare_dynamic "grep -c '^2$' file" "ovsdb-log.at:337"
( $at_check_trace; grep -c '^2$' file
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:337"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:339: test-ovsdb log-io file read/write read read read 'write:{\"longer data\":0}'"
at_fn_check_prepare_trace "ovsdb-log.at:339"
( $at_check_trace; test-ovsdb log-io file read/write read read read 'write:{"longer data":0}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "file: open successful
file: read: {\"x\":0}
file: read: {\"x\":1}
file: read failed: I/O error: file: error reading 8 bytes starting at offset 178 (End of file)
file: write:{\"longer data\":0} successful
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:339"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:347: test-ovsdb log-io file read-only read read read read"
at_fn_check_prepare_trace "ovsdb-log.at:347"
( $at_check_trace; test-ovsdb log-io file read-only read read read read
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "file: open successful
file: read: {\"x\":0}
file: read: {\"x\":1}
file: read: {\"longer data\":0}
file: read: end of log
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:347"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:355: test -f .file.~lock~"
at_fn_check_prepare_trace "ovsdb-log.at:355"
( $at_check_trace; test -f .file.~lock~
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:355"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1255
#AT_START_1256
at_fn_group_banner 1256 'ovsdb-log.at:358' \
  "write bad JSON, read, overwrite" "                " 60
at_xfail=no
(
  $as_echo "1256. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:361: test-ovsdb log-io file create 'write:{\"x\":0}' 'write:{\"x\":1}' 'write:{\"x\":2}'"
at_fn_check_prepare_trace "ovsdb-log.at:361"
( $at_check_trace; test-ovsdb log-io file create 'write:{"x":0}' 'write:{"x":1}' 'write:{"x":2}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "file: open successful
file: write:{\"x\":0} successful
file: write:{\"x\":1} successful
file: write:{\"x\":2} successful
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:361"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:368: printf '%s\\n%s\\n' 'OVSDB JSON 5 d910b02871075d3156ec8675dfc95b7d5d640aa6' 'null' >> file"
at_fn_check_prepare_trace "ovsdb-log.at:368"
( $at_check_trace; printf '%s\n%s\n' 'OVSDB JSON 5 d910b02871075d3156ec8675dfc95b7d5d640aa6' 'null' >> file
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:368"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:369: test-ovsdb log-io file read/write read read read read 'write:{\"replacement data\":0}'"
at_fn_check_prepare_trace "ovsdb-log.at:369"
( $at_check_trace; test-ovsdb log-io file read/write read read read read 'write:{"replacement data":0}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "file: open successful
file: read: {\"x\":0}
file: read: {\"x\":1}
file: read: {\"x\":2}
file: read failed: syntax error: file: 5 bytes starting at offset 240 are not valid JSON (line 0, column 4, byte 4: syntax error at beginning of input)
file: write:{\"replacement data\":0} successful
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:369"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:378: test-ovsdb log-io file read-only read read read read read"
at_fn_check_prepare_trace "ovsdb-log.at:378"
( $at_check_trace; test-ovsdb log-io file read-only read read read read read
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "file: open successful
file: read: {\"x\":0}
file: read: {\"x\":1}
file: read: {\"x\":2}
file: read: {\"replacement data\":0}
file: read: end of log
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:378"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-log.at:387: test -f .file.~lock~"
at_fn_check_prepare_trace "ovsdb-log.at:387"
( $at_check_trace; test -f .file.~lock~
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-log.at:387"
$at_failed && at_fn_log_failure  \
"file"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1256
#AT_START_1257
at_fn_group_banner 1257 'ovsdb-types.at:3' \
  "integer - C" "                                    " 61
at_xfail=no
(
  $as_echo "1257. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:3: test-ovsdb parse-atomic-type '[\"integer\"]' "
at_fn_check_prepare_trace "ovsdb-types.at:3"
( $at_check_trace; test-ovsdb parse-atomic-type '["integer"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"integer\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:3"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1257
#AT_START_1258
at_fn_group_banner 1258 'ovsdb-types.at:3' \
  "integer - Python2" "                              " 61
at_xfail=no
(
  $as_echo "1258. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:3" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:3"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:3: \$PYTHON \$srcdir/test-ovsdb.py parse-atomic-type '[\"integer\"]' "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-atomic-type '[\"integer\"]' " "ovsdb-types.at:3"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-atomic-type '["integer"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"integer\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:3"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1258
#AT_START_1259
at_fn_group_banner 1259 'ovsdb-types.at:3' \
  "integer - Python3" "                              " 61
at_xfail=no
(
  $as_echo "1259. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:3" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:3"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:3: \$PYTHON3 \$srcdir/test-ovsdb.py parse-atomic-type '[\"integer\"]' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-atomic-type '[\"integer\"]' " "ovsdb-types.at:3"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-atomic-type '["integer"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"integer\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:3"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1259
#AT_START_1260
at_fn_group_banner 1260 'ovsdb-types.at:5' \
  "real - C" "                                       " 61
at_xfail=no
(
  $as_echo "1260. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:5: test-ovsdb parse-atomic-type '[\"real\"]' "
at_fn_check_prepare_trace "ovsdb-types.at:5"
( $at_check_trace; test-ovsdb parse-atomic-type '["real"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"real\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:5"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1260
#AT_START_1261
at_fn_group_banner 1261 'ovsdb-types.at:5' \
  "real - Python2" "                                 " 61
at_xfail=no
(
  $as_echo "1261. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:5" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:5"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:5: \$PYTHON \$srcdir/test-ovsdb.py parse-atomic-type '[\"real\"]' "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-atomic-type '[\"real\"]' " "ovsdb-types.at:5"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-atomic-type '["real"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"real\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:5"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1261
#AT_START_1262
at_fn_group_banner 1262 'ovsdb-types.at:5' \
  "real - Python3" "                                 " 61
at_xfail=no
(
  $as_echo "1262. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:5" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:5"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:5: \$PYTHON3 \$srcdir/test-ovsdb.py parse-atomic-type '[\"real\"]' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-atomic-type '[\"real\"]' " "ovsdb-types.at:5"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-atomic-type '["real"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"real\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:5"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1262
#AT_START_1263
at_fn_group_banner 1263 'ovsdb-types.at:7' \
  "boolean - C" "                                    " 61
at_xfail=no
(
  $as_echo "1263. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:7: test-ovsdb parse-atomic-type '[\"boolean\"]' "
at_fn_check_prepare_trace "ovsdb-types.at:7"
( $at_check_trace; test-ovsdb parse-atomic-type '["boolean"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"boolean\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:7"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1263
#AT_START_1264
at_fn_group_banner 1264 'ovsdb-types.at:7' \
  "boolean - Python2" "                              " 61
at_xfail=no
(
  $as_echo "1264. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:7" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:7"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:7: \$PYTHON \$srcdir/test-ovsdb.py parse-atomic-type '[\"boolean\"]' "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-atomic-type '[\"boolean\"]' " "ovsdb-types.at:7"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-atomic-type '["boolean"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"boolean\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:7"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1264
#AT_START_1265
at_fn_group_banner 1265 'ovsdb-types.at:7' \
  "boolean - Python3" "                              " 61
at_xfail=no
(
  $as_echo "1265. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:7" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:7"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:7: \$PYTHON3 \$srcdir/test-ovsdb.py parse-atomic-type '[\"boolean\"]' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-atomic-type '[\"boolean\"]' " "ovsdb-types.at:7"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-atomic-type '["boolean"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"boolean\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:7"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1265
#AT_START_1266
at_fn_group_banner 1266 'ovsdb-types.at:9' \
  "string - C" "                                     " 61
at_xfail=no
(
  $as_echo "1266. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:9: test-ovsdb parse-atomic-type '[\"string\"]' "
at_fn_check_prepare_trace "ovsdb-types.at:9"
( $at_check_trace; test-ovsdb parse-atomic-type '["string"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"string\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:9"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1266
#AT_START_1267
at_fn_group_banner 1267 'ovsdb-types.at:9' \
  "string - Python2" "                               " 61
at_xfail=no
(
  $as_echo "1267. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:9" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:9"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:9: \$PYTHON \$srcdir/test-ovsdb.py parse-atomic-type '[\"string\"]' "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-atomic-type '[\"string\"]' " "ovsdb-types.at:9"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-atomic-type '["string"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"string\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:9"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1267
#AT_START_1268
at_fn_group_banner 1268 'ovsdb-types.at:9' \
  "string - Python3" "                               " 61
at_xfail=no
(
  $as_echo "1268. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:9" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:9"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:9: \$PYTHON3 \$srcdir/test-ovsdb.py parse-atomic-type '[\"string\"]' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-atomic-type '[\"string\"]' " "ovsdb-types.at:9"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-atomic-type '["string"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"string\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:9"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1268
#AT_START_1269
at_fn_group_banner 1269 'ovsdb-types.at:11' \
  "uuid - C" "                                       " 61
at_xfail=no
(
  $as_echo "1269. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:11: test-ovsdb parse-atomic-type '[\"uuid\"]' "
at_fn_check_prepare_trace "ovsdb-types.at:11"
( $at_check_trace; test-ovsdb parse-atomic-type '["uuid"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"uuid\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:11"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1269
#AT_START_1270
at_fn_group_banner 1270 'ovsdb-types.at:11' \
  "uuid - Python2" "                                 " 61
at_xfail=no
(
  $as_echo "1270. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:11" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:11"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:11: \$PYTHON \$srcdir/test-ovsdb.py parse-atomic-type '[\"uuid\"]' "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-atomic-type '[\"uuid\"]' " "ovsdb-types.at:11"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-atomic-type '["uuid"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"uuid\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:11"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1270
#AT_START_1271
at_fn_group_banner 1271 'ovsdb-types.at:11' \
  "uuid - Python3" "                                 " 61
at_xfail=no
(
  $as_echo "1271. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:11" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:11"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:11: \$PYTHON3 \$srcdir/test-ovsdb.py parse-atomic-type '[\"uuid\"]' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-atomic-type '[\"uuid\"]' " "ovsdb-types.at:11"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-atomic-type '["uuid"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"uuid\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:11"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1271
#AT_START_1272
at_fn_group_banner 1272 'ovsdb-types.at:13' \
  "void is not a valid atomic-type - C" "            " 61
at_xfail=no
(
  $as_echo "1272. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:13: test-ovsdb parse-atomic-type '[\"void\"]' "
at_fn_check_prepare_trace "ovsdb-types.at:13"
( $at_check_trace; test-ovsdb parse-atomic-type '["void"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-types.at:13"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:13: if grep -F -e \"\\\"void\\\" is not an atomic-type\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-types.at:13"
( $at_check_trace; if grep -F -e "\"void\" is not an atomic-type" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:13"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1272
#AT_START_1273
at_fn_group_banner 1273 'ovsdb-types.at:13' \
  "void is not a valid atomic-type - Python2" "      " 61
at_xfail=no
(
  $as_echo "1273. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:13" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:13"

   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:13: \$PYTHON3 \$srcdir/test-ovsdb.py parse-atomic-type '[\"void\"]' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-atomic-type '[\"void\"]' " "ovsdb-types.at:13"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-atomic-type '["void"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-types.at:13"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:13: if grep -F -e \"\\\"void\\\" is not an atomic-type\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-types.at:13"
( $at_check_trace; if grep -F -e "\"void\" is not an atomic-type" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:13"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1273
#AT_START_1274
at_fn_group_banner 1274 'ovsdb-types.at:18' \
  "integer enum - C" "                               " 62
at_xfail=no
(
  $as_echo "1274. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:18: test-ovsdb parse-base-type '{\"type\": \"integer\", \"enum\": [\"set\", [-1, 4, 5]]}' "
at_fn_check_prepare_trace "ovsdb-types.at:18"
( $at_check_trace; test-ovsdb parse-base-type '{"type": "integer", "enum": ["set", [-1, 4, 5]]}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"enum\":[\"set\",[-1,4,5]],\"type\":\"integer\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:18"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1274
#AT_START_1275
at_fn_group_banner 1275 'ovsdb-types.at:18' \
  "integer enum - Python2" "                         " 62
at_xfail=no
(
  $as_echo "1275. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:18" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:18"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:18: \$PYTHON \$srcdir/test-ovsdb.py parse-base-type '{\"type\": \"integer\", \"enum\": [\"set\", [-1, 4, 5]]}' "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-base-type '{\"type\": \"integer\", \"enum\": [\"set\", [-1, 4, 5]]}' " "ovsdb-types.at:18"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-base-type '{"type": "integer", "enum": ["set", [-1, 4, 5]]}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"enum\":[\"set\",[-1,4,5]],\"type\":\"integer\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:18"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1275
#AT_START_1276
at_fn_group_banner 1276 'ovsdb-types.at:18' \
  "integer enum - Python3" "                         " 62
at_xfail=no
(
  $as_echo "1276. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:18" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:18"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:18: \$PYTHON3 \$srcdir/test-ovsdb.py parse-base-type '{\"type\": \"integer\", \"enum\": [\"set\", [-1, 4, 5]]}' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{\"type\": \"integer\", \"enum\": [\"set\", [-1, 4, 5]]}' " "ovsdb-types.at:18"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{"type": "integer", "enum": ["set", [-1, 4, 5]]}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"enum\":[\"set\",[-1,4,5]],\"type\":\"integer\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:18"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1276
#AT_START_1277
at_fn_group_banner 1277 'ovsdb-types.at:21' \
  "integer >= 5 - C" "                               " 62
at_xfail=no
(
  $as_echo "1277. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:21: test-ovsdb parse-base-type '{\"type\": \"integer\", \"minInteger\": 5}' "
at_fn_check_prepare_trace "ovsdb-types.at:21"
( $at_check_trace; test-ovsdb parse-base-type '{"type": "integer", "minInteger": 5}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"minInteger\":5,\"type\":\"integer\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:21"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1277
#AT_START_1278
at_fn_group_banner 1278 'ovsdb-types.at:21' \
  "integer >= 5 - Python2" "                         " 62
at_xfail=no
(
  $as_echo "1278. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:21" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:21"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:21: \$PYTHON \$srcdir/test-ovsdb.py parse-base-type '{\"type\": \"integer\", \"minInteger\": 5}' "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-base-type '{\"type\": \"integer\", \"minInteger\": 5}' " "ovsdb-types.at:21"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-base-type '{"type": "integer", "minInteger": 5}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"minInteger\":5,\"type\":\"integer\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:21"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1278
#AT_START_1279
at_fn_group_banner 1279 'ovsdb-types.at:21' \
  "integer >= 5 - Python3" "                         " 62
at_xfail=no
(
  $as_echo "1279. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:21" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:21"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:21: \$PYTHON3 \$srcdir/test-ovsdb.py parse-base-type '{\"type\": \"integer\", \"minInteger\": 5}' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{\"type\": \"integer\", \"minInteger\": 5}' " "ovsdb-types.at:21"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{"type": "integer", "minInteger": 5}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"minInteger\":5,\"type\":\"integer\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:21"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1279
#AT_START_1280
at_fn_group_banner 1280 'ovsdb-types.at:24' \
  "integer <= 7 - C" "                               " 62
at_xfail=no
(
  $as_echo "1280. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:24: test-ovsdb parse-base-type '{\"type\": \"integer\", \"maxInteger\": 7}' "
at_fn_check_prepare_trace "ovsdb-types.at:24"
( $at_check_trace; test-ovsdb parse-base-type '{"type": "integer", "maxInteger": 7}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"maxInteger\":7,\"type\":\"integer\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1280
#AT_START_1281
at_fn_group_banner 1281 'ovsdb-types.at:24' \
  "integer <= 7 - Python2" "                         " 62
at_xfail=no
(
  $as_echo "1281. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:24" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:24"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:24: \$PYTHON \$srcdir/test-ovsdb.py parse-base-type '{\"type\": \"integer\", \"maxInteger\": 7}' "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-base-type '{\"type\": \"integer\", \"maxInteger\": 7}' " "ovsdb-types.at:24"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-base-type '{"type": "integer", "maxInteger": 7}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"maxInteger\":7,\"type\":\"integer\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1281
#AT_START_1282
at_fn_group_banner 1282 'ovsdb-types.at:24' \
  "integer <= 7 - Python3" "                         " 62
at_xfail=no
(
  $as_echo "1282. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:24" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:24"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:24: \$PYTHON3 \$srcdir/test-ovsdb.py parse-base-type '{\"type\": \"integer\", \"maxInteger\": 7}' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{\"type\": \"integer\", \"maxInteger\": 7}' " "ovsdb-types.at:24"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{"type": "integer", "maxInteger": 7}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"maxInteger\":7,\"type\":\"integer\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1282
#AT_START_1283
at_fn_group_banner 1283 'ovsdb-types.at:27' \
  "integer between -5 and 10 - C" "                  " 62
at_xfail=no
(
  $as_echo "1283. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:27: test-ovsdb parse-base-type '{\"type\": \"integer\", \"minInteger\": -5, \"maxInteger\": 10}'"
at_fn_check_prepare_trace "ovsdb-types.at:27"
( $at_check_trace; test-ovsdb parse-base-type '{"type": "integer", "minInteger": -5, "maxInteger": 10}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"maxInteger\":10,\"minInteger\":-5,\"type\":\"integer\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:27"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1283
#AT_START_1284
at_fn_group_banner 1284 'ovsdb-types.at:27' \
  "integer between -5 and 10 - Python2" "            " 62
at_xfail=no
(
  $as_echo "1284. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:27" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:27"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:27: \$PYTHON \$srcdir/test-ovsdb.py parse-base-type '{\"type\": \"integer\", \"minInteger\": -5, \"maxInteger\": 10}'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-base-type '{\"type\": \"integer\", \"minInteger\": -5, \"maxInteger\": 10}'" "ovsdb-types.at:27"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-base-type '{"type": "integer", "minInteger": -5, "maxInteger": 10}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"maxInteger\":10,\"minInteger\":-5,\"type\":\"integer\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:27"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1284
#AT_START_1285
at_fn_group_banner 1285 'ovsdb-types.at:27' \
  "integer between -5 and 10 - Python3" "            " 62
at_xfail=no
(
  $as_echo "1285. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:27" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:27"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:27: \$PYTHON3 \$srcdir/test-ovsdb.py parse-base-type '{\"type\": \"integer\", \"minInteger\": -5, \"maxInteger\": 10}'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{\"type\": \"integer\", \"minInteger\": -5, \"maxInteger\": 10}'" "ovsdb-types.at:27"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{"type": "integer", "minInteger": -5, "maxInteger": 10}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"maxInteger\":10,\"minInteger\":-5,\"type\":\"integer\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:27"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1285
#AT_START_1286
at_fn_group_banner 1286 'ovsdb-types.at:30' \
  "integer max may not be less than min - C" "       " 62
at_xfail=no
(
  $as_echo "1286. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:30: test-ovsdb parse-base-type '{\"type\": \"integer\", \"minInteger\": 5, \"maxInteger\": 3}'"
at_fn_check_prepare_trace "ovsdb-types.at:30"
( $at_check_trace; test-ovsdb parse-base-type '{"type": "integer", "minInteger": 5, "maxInteger": 3}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-types.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:30: if grep -F -e \"minInteger exceeds maxInteger\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-types.at:30"
( $at_check_trace; if grep -F -e "minInteger exceeds maxInteger" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1286
#AT_START_1287
at_fn_group_banner 1287 'ovsdb-types.at:30' \
  "integer max may not be less than min - Python2" " " 62
at_xfail=no
(
  $as_echo "1287. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:30" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:30"

   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:30: \$PYTHON3 \$srcdir/test-ovsdb.py parse-base-type '{\"type\": \"integer\", \"minInteger\": 5, \"maxInteger\": 3}'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{\"type\": \"integer\", \"minInteger\": 5, \"maxInteger\": 3}'" "ovsdb-types.at:30"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{"type": "integer", "minInteger": 5, "maxInteger": 3}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-types.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:30: if grep -F -e \"minInteger exceeds maxInteger\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-types.at:30"
( $at_check_trace; if grep -F -e "minInteger exceeds maxInteger" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1287
#AT_START_1288
at_fn_group_banner 1288 'ovsdb-types.at:34' \
  "real enum - C" "                                  " 62
at_xfail=no
(
  $as_echo "1288. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:34: test-ovsdb parse-base-type '{\"type\": \"real\", \"enum\": [\"set\", [1.5, 0, 2.75]]}' "
at_fn_check_prepare_trace "ovsdb-types.at:34"
( $at_check_trace; test-ovsdb parse-base-type '{"type": "real", "enum": ["set", [1.5, 0, 2.75]]}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"enum\":[\"set\",[0,1.5,2.75]],\"type\":\"real\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1288
#AT_START_1289
at_fn_group_banner 1289 'ovsdb-types.at:34' \
  "real enum - Python2" "                            " 62
at_xfail=no
(
  $as_echo "1289. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:34" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:34"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:34: \$PYTHON \$srcdir/test-ovsdb.py parse-base-type '{\"type\": \"real\", \"enum\": [\"set\", [1.5, 0, 2.75]]}' "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-base-type '{\"type\": \"real\", \"enum\": [\"set\", [1.5, 0, 2.75]]}' " "ovsdb-types.at:34"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-base-type '{"type": "real", "enum": ["set", [1.5, 0, 2.75]]}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"enum\":[\"set\",[0,1.5,2.75]],\"type\":\"real\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1289
#AT_START_1290
at_fn_group_banner 1290 'ovsdb-types.at:34' \
  "real enum - Python3" "                            " 62
at_xfail=no
(
  $as_echo "1290. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:34" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:34"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:34: \$PYTHON3 \$srcdir/test-ovsdb.py parse-base-type '{\"type\": \"real\", \"enum\": [\"set\", [1.5, 0, 2.75]]}' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{\"type\": \"real\", \"enum\": [\"set\", [1.5, 0, 2.75]]}' " "ovsdb-types.at:34"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{"type": "real", "enum": ["set", [1.5, 0, 2.75]]}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"enum\":[\"set\",[0,1.5,2.75]],\"type\":\"real\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1290
#AT_START_1291
at_fn_group_banner 1291 'ovsdb-types.at:37' \
  "real >= -1.5 - C" "                               " 62
at_xfail=no
(
  $as_echo "1291. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:37: test-ovsdb parse-base-type '{\"type\": \"real\", \"minReal\": -1.5}'"
at_fn_check_prepare_trace "ovsdb-types.at:37"
( $at_check_trace; test-ovsdb parse-base-type '{"type": "real", "minReal": -1.5}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"minReal\":-1.5,\"type\":\"real\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:37"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1291
#AT_START_1292
at_fn_group_banner 1292 'ovsdb-types.at:37' \
  "real >= -1.5 - Python2" "                         " 62
at_xfail=no
(
  $as_echo "1292. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:37" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:37"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:37: \$PYTHON \$srcdir/test-ovsdb.py parse-base-type '{\"type\": \"real\", \"minReal\": -1.5}'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-base-type '{\"type\": \"real\", \"minReal\": -1.5}'" "ovsdb-types.at:37"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-base-type '{"type": "real", "minReal": -1.5}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"minReal\":-1.5,\"type\":\"real\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:37"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1292
#AT_START_1293
at_fn_group_banner 1293 'ovsdb-types.at:37' \
  "real >= -1.5 - Python3" "                         " 62
at_xfail=no
(
  $as_echo "1293. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:37" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:37"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:37: \$PYTHON3 \$srcdir/test-ovsdb.py parse-base-type '{\"type\": \"real\", \"minReal\": -1.5}'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{\"type\": \"real\", \"minReal\": -1.5}'" "ovsdb-types.at:37"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{"type": "real", "minReal": -1.5}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"minReal\":-1.5,\"type\":\"real\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:37"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1293
#AT_START_1294
at_fn_group_banner 1294 'ovsdb-types.at:40' \
  "real <= 1e5 - C" "                                " 62
at_xfail=no
(
  $as_echo "1294. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:40: test-ovsdb parse-base-type '{\"type\": \"real\", \"maxReal\": 1e5}'"
at_fn_check_prepare_trace "ovsdb-types.at:40"
( $at_check_trace; test-ovsdb parse-base-type '{"type": "real", "maxReal": 1e5}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"maxReal\":100000,\"type\":\"real\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:40"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1294
#AT_START_1295
at_fn_group_banner 1295 'ovsdb-types.at:40' \
  "real <= 1e5 - Python2" "                          " 62
at_xfail=no
(
  $as_echo "1295. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:40" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:40"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:40: \$PYTHON \$srcdir/test-ovsdb.py parse-base-type '{\"type\": \"real\", \"maxReal\": 1e5}'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-base-type '{\"type\": \"real\", \"maxReal\": 1e5}'" "ovsdb-types.at:40"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-base-type '{"type": "real", "maxReal": 1e5}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"maxReal\":100000,\"type\":\"real\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:40"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1295
#AT_START_1296
at_fn_group_banner 1296 'ovsdb-types.at:40' \
  "real <= 1e5 - Python3" "                          " 62
at_xfail=no
(
  $as_echo "1296. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:40" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:40"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:40: \$PYTHON3 \$srcdir/test-ovsdb.py parse-base-type '{\"type\": \"real\", \"maxReal\": 1e5}'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{\"type\": \"real\", \"maxReal\": 1e5}'" "ovsdb-types.at:40"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{"type": "real", "maxReal": 1e5}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"maxReal\":100000,\"type\":\"real\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:40"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1296
#AT_START_1297
at_fn_group_banner 1297 'ovsdb-types.at:43' \
  "real between -2.5 and 3.75 - C" "                 " 62
at_xfail=no
(
  $as_echo "1297. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:43: test-ovsdb parse-base-type '{\"type\": \"real\", \"minReal\": -2.5, \"maxReal\": 3.75}'"
at_fn_check_prepare_trace "ovsdb-types.at:43"
( $at_check_trace; test-ovsdb parse-base-type '{"type": "real", "minReal": -2.5, "maxReal": 3.75}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"maxReal\":3.75,\"minReal\":-2.5,\"type\":\"real\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:43"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1297
#AT_START_1298
at_fn_group_banner 1298 'ovsdb-types.at:43' \
  "real between -2.5 and 3.75 - Python2" "           " 62
at_xfail=no
(
  $as_echo "1298. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:43" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:43"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:43: \$PYTHON \$srcdir/test-ovsdb.py parse-base-type '{\"type\": \"real\", \"minReal\": -2.5, \"maxReal\": 3.75}'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-base-type '{\"type\": \"real\", \"minReal\": -2.5, \"maxReal\": 3.75}'" "ovsdb-types.at:43"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-base-type '{"type": "real", "minReal": -2.5, "maxReal": 3.75}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"maxReal\":3.75,\"minReal\":-2.5,\"type\":\"real\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:43"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1298
#AT_START_1299
at_fn_group_banner 1299 'ovsdb-types.at:43' \
  "real between -2.5 and 3.75 - Python3" "           " 62
at_xfail=no
(
  $as_echo "1299. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:43" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:43"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:43: \$PYTHON3 \$srcdir/test-ovsdb.py parse-base-type '{\"type\": \"real\", \"minReal\": -2.5, \"maxReal\": 3.75}'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{\"type\": \"real\", \"minReal\": -2.5, \"maxReal\": 3.75}'" "ovsdb-types.at:43"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{"type": "real", "minReal": -2.5, "maxReal": 3.75}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"maxReal\":3.75,\"minReal\":-2.5,\"type\":\"real\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:43"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1299
#AT_START_1300
at_fn_group_banner 1300 'ovsdb-types.at:46' \
  "real max may not be less than min - C" "          " 62
at_xfail=no
(
  $as_echo "1300. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:46: test-ovsdb parse-base-type '{\"type\": \"real\", \"minReal\": 555, \"maxReal\": 444}'"
at_fn_check_prepare_trace "ovsdb-types.at:46"
( $at_check_trace; test-ovsdb parse-base-type '{"type": "real", "minReal": 555, "maxReal": 444}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-types.at:46"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:46: if grep -F -e \"minReal exceeds maxReal\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-types.at:46"
( $at_check_trace; if grep -F -e "minReal exceeds maxReal" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:46"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1300
#AT_START_1301
at_fn_group_banner 1301 'ovsdb-types.at:46' \
  "real max may not be less than min - Python2" "    " 62
at_xfail=no
(
  $as_echo "1301. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:46" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:46"

   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:46: \$PYTHON3 \$srcdir/test-ovsdb.py parse-base-type '{\"type\": \"real\", \"minReal\": 555, \"maxReal\": 444}'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{\"type\": \"real\", \"minReal\": 555, \"maxReal\": 444}'" "ovsdb-types.at:46"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{"type": "real", "minReal": 555, "maxReal": 444}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-types.at:46"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:46: if grep -F -e \"minReal exceeds maxReal\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-types.at:46"
( $at_check_trace; if grep -F -e "minReal exceeds maxReal" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:46"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1301
#AT_START_1302
at_fn_group_banner 1302 'ovsdb-types.at:50' \
  "boolean - C" "                                    " 62
at_xfail=no
(
  $as_echo "1302. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:50: test-ovsdb parse-base-type '[{\"type\": \"boolean\"}]' "
at_fn_check_prepare_trace "ovsdb-types.at:50"
( $at_check_trace; test-ovsdb parse-base-type '[{"type": "boolean"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"boolean\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:50"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1302
#AT_START_1303
at_fn_group_banner 1303 'ovsdb-types.at:50' \
  "boolean - Python2" "                              " 62
at_xfail=no
(
  $as_echo "1303. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:50" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:50"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:50: \$PYTHON \$srcdir/test-ovsdb.py parse-base-type '[{\"type\": \"boolean\"}]' "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-base-type '[{\"type\": \"boolean\"}]' " "ovsdb-types.at:50"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-base-type '[{"type": "boolean"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"boolean\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:50"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1303
#AT_START_1304
at_fn_group_banner 1304 'ovsdb-types.at:50' \
  "boolean - Python3" "                              " 62
at_xfail=no
(
  $as_echo "1304. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:50" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:50"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:50: \$PYTHON3 \$srcdir/test-ovsdb.py parse-base-type '[{\"type\": \"boolean\"}]' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-base-type '[{\"type\": \"boolean\"}]' " "ovsdb-types.at:50"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-base-type '[{"type": "boolean"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"boolean\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:50"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1304
#AT_START_1305
at_fn_group_banner 1305 'ovsdb-types.at:52' \
  "boolean enum - C" "                               " 62
at_xfail=no
(
  $as_echo "1305. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:52: test-ovsdb parse-base-type '{\"type\": \"boolean\", \"enum\": true}' "
at_fn_check_prepare_trace "ovsdb-types.at:52"
( $at_check_trace; test-ovsdb parse-base-type '{"type": "boolean", "enum": true}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"enum\":true,\"type\":\"boolean\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:52"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1305
#AT_START_1306
at_fn_group_banner 1306 'ovsdb-types.at:52' \
  "boolean enum - Python2" "                         " 62
at_xfail=no
(
  $as_echo "1306. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:52" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:52"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:52: \$PYTHON \$srcdir/test-ovsdb.py parse-base-type '{\"type\": \"boolean\", \"enum\": true}' "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-base-type '{\"type\": \"boolean\", \"enum\": true}' " "ovsdb-types.at:52"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-base-type '{"type": "boolean", "enum": true}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"enum\":true,\"type\":\"boolean\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:52"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1306
#AT_START_1307
at_fn_group_banner 1307 'ovsdb-types.at:52' \
  "boolean enum - Python3" "                         " 62
at_xfail=no
(
  $as_echo "1307. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:52" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:52"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:52: \$PYTHON3 \$srcdir/test-ovsdb.py parse-base-type '{\"type\": \"boolean\", \"enum\": true}' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{\"type\": \"boolean\", \"enum\": true}' " "ovsdb-types.at:52"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{"type": "boolean", "enum": true}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"enum\":true,\"type\":\"boolean\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:52"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1307
#AT_START_1308
at_fn_group_banner 1308 'ovsdb-types.at:56' \
  "string enum - C" "                                " 62
at_xfail=no
(
  $as_echo "1308. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:56: test-ovsdb parse-base-type '{\"type\": \"string\", \"enum\": [\"set\", [\"def\", \"abc\"]]}'"
at_fn_check_prepare_trace "ovsdb-types.at:56"
( $at_check_trace; test-ovsdb parse-base-type '{"type": "string", "enum": ["set", ["def", "abc"]]}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"enum\":[\"set\",[\"abc\",\"def\"]],\"type\":\"string\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:56"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1308
#AT_START_1309
at_fn_group_banner 1309 'ovsdb-types.at:56' \
  "string enum - Python2" "                          " 62
at_xfail=no
(
  $as_echo "1309. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:56" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:56"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:56: \$PYTHON \$srcdir/test-ovsdb.py parse-base-type '{\"type\": \"string\", \"enum\": [\"set\", [\"def\", \"abc\"]]}'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-base-type '{\"type\": \"string\", \"enum\": [\"set\", [\"def\", \"abc\"]]}'" "ovsdb-types.at:56"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-base-type '{"type": "string", "enum": ["set", ["def", "abc"]]}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"enum\":[\"set\",[\"abc\",\"def\"]],\"type\":\"string\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:56"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1309
#AT_START_1310
at_fn_group_banner 1310 'ovsdb-types.at:56' \
  "string enum - Python3" "                          " 62
at_xfail=no
(
  $as_echo "1310. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:56" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:56"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:56: \$PYTHON3 \$srcdir/test-ovsdb.py parse-base-type '{\"type\": \"string\", \"enum\": [\"set\", [\"def\", \"abc\"]]}'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{\"type\": \"string\", \"enum\": [\"set\", [\"def\", \"abc\"]]}'" "ovsdb-types.at:56"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{"type": "string", "enum": ["set", ["def", "abc"]]}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"enum\":[\"set\",[\"abc\",\"def\"]],\"type\":\"string\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:56"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1310
#AT_START_1311
at_fn_group_banner 1311 'ovsdb-types.at:59' \
  "string minLength - C" "                           " 62
at_xfail=no
(
  $as_echo "1311. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:59: test-ovsdb parse-base-type '{\"type\": \"string\", \"minLength\": 1}'"
at_fn_check_prepare_trace "ovsdb-types.at:59"
( $at_check_trace; test-ovsdb parse-base-type '{"type": "string", "minLength": 1}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"minLength\":1,\"type\":\"string\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:59"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1311
#AT_START_1312
at_fn_group_banner 1312 'ovsdb-types.at:59' \
  "string minLength - Python2" "                     " 62
at_xfail=no
(
  $as_echo "1312. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:59" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:59"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:59: \$PYTHON \$srcdir/test-ovsdb.py parse-base-type '{\"type\": \"string\", \"minLength\": 1}'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-base-type '{\"type\": \"string\", \"minLength\": 1}'" "ovsdb-types.at:59"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-base-type '{"type": "string", "minLength": 1}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"minLength\":1,\"type\":\"string\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:59"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1312
#AT_START_1313
at_fn_group_banner 1313 'ovsdb-types.at:59' \
  "string minLength - Python3" "                     " 62
at_xfail=no
(
  $as_echo "1313. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:59" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:59"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:59: \$PYTHON3 \$srcdir/test-ovsdb.py parse-base-type '{\"type\": \"string\", \"minLength\": 1}'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{\"type\": \"string\", \"minLength\": 1}'" "ovsdb-types.at:59"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{"type": "string", "minLength": 1}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"minLength\":1,\"type\":\"string\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:59"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1313
#AT_START_1314
at_fn_group_banner 1314 'ovsdb-types.at:62' \
  "string maxLength - C" "                           " 62
at_xfail=no
(
  $as_echo "1314. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:62: test-ovsdb parse-base-type '{\"type\": \"string\", \"maxLength\": 5}'"
at_fn_check_prepare_trace "ovsdb-types.at:62"
( $at_check_trace; test-ovsdb parse-base-type '{"type": "string", "maxLength": 5}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"maxLength\":5,\"type\":\"string\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:62"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1314
#AT_START_1315
at_fn_group_banner 1315 'ovsdb-types.at:62' \
  "string maxLength - Python2" "                     " 62
at_xfail=no
(
  $as_echo "1315. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:62" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:62"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:62: \$PYTHON \$srcdir/test-ovsdb.py parse-base-type '{\"type\": \"string\", \"maxLength\": 5}'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-base-type '{\"type\": \"string\", \"maxLength\": 5}'" "ovsdb-types.at:62"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-base-type '{"type": "string", "maxLength": 5}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"maxLength\":5,\"type\":\"string\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:62"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1315
#AT_START_1316
at_fn_group_banner 1316 'ovsdb-types.at:62' \
  "string maxLength - Python3" "                     " 62
at_xfail=no
(
  $as_echo "1316. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:62" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:62"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:62: \$PYTHON3 \$srcdir/test-ovsdb.py parse-base-type '{\"type\": \"string\", \"maxLength\": 5}'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{\"type\": \"string\", \"maxLength\": 5}'" "ovsdb-types.at:62"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{"type": "string", "maxLength": 5}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"maxLength\":5,\"type\":\"string\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:62"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1316
#AT_START_1317
at_fn_group_banner 1317 'ovsdb-types.at:65' \
  "string minLength and maxLength - C" "             " 62
at_xfail=no
(
  $as_echo "1317. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:65: test-ovsdb parse-base-type '{\"type\": \"string\", \"minLength\": 1, \"maxLength\": 5}'"
at_fn_check_prepare_trace "ovsdb-types.at:65"
( $at_check_trace; test-ovsdb parse-base-type '{"type": "string", "minLength": 1, "maxLength": 5}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"maxLength\":5,\"minLength\":1,\"type\":\"string\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:65"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1317
#AT_START_1318
at_fn_group_banner 1318 'ovsdb-types.at:65' \
  "string minLength and maxLength - Python2" "       " 62
at_xfail=no
(
  $as_echo "1318. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:65" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:65"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:65: \$PYTHON \$srcdir/test-ovsdb.py parse-base-type '{\"type\": \"string\", \"minLength\": 1, \"maxLength\": 5}'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-base-type '{\"type\": \"string\", \"minLength\": 1, \"maxLength\": 5}'" "ovsdb-types.at:65"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-base-type '{"type": "string", "minLength": 1, "maxLength": 5}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"maxLength\":5,\"minLength\":1,\"type\":\"string\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:65"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1318
#AT_START_1319
at_fn_group_banner 1319 'ovsdb-types.at:65' \
  "string minLength and maxLength - Python3" "       " 62
at_xfail=no
(
  $as_echo "1319. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:65" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:65"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:65: \$PYTHON3 \$srcdir/test-ovsdb.py parse-base-type '{\"type\": \"string\", \"minLength\": 1, \"maxLength\": 5}'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{\"type\": \"string\", \"minLength\": 1, \"maxLength\": 5}'" "ovsdb-types.at:65"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{"type": "string", "minLength": 1, "maxLength": 5}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"maxLength\":5,\"minLength\":1,\"type\":\"string\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:65"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1319
#AT_START_1320
at_fn_group_banner 1320 'ovsdb-types.at:68' \
  "maxLength must not be less than minLength - C" "  " 62
at_xfail=no
(
  $as_echo "1320. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:68: test-ovsdb parse-base-type '{\"type\": \"string\", \"minLength\": 5, \"maxLength\": 3}'"
at_fn_check_prepare_trace "ovsdb-types.at:68"
( $at_check_trace; test-ovsdb parse-base-type '{"type": "string", "minLength": 5, "maxLength": 3}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-types.at:68"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:68: if grep -F -e \"minLength exceeds maxLength\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-types.at:68"
( $at_check_trace; if grep -F -e "minLength exceeds maxLength" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:68"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1320
#AT_START_1321
at_fn_group_banner 1321 'ovsdb-types.at:68' \
  "maxLength must not be less than minLength - Python2" "" 62
at_xfail=no
(
  $as_echo "1321. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:68" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:68"

   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:68: \$PYTHON3 \$srcdir/test-ovsdb.py parse-base-type '{\"type\": \"string\", \"minLength\": 5, \"maxLength\": 3}'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{\"type\": \"string\", \"minLength\": 5, \"maxLength\": 3}'" "ovsdb-types.at:68"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{"type": "string", "minLength": 5, "maxLength": 3}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-types.at:68"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:68: if grep -F -e \"minLength exceeds maxLength\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-types.at:68"
( $at_check_trace; if grep -F -e "minLength exceeds maxLength" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:68"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1321
#AT_START_1322
at_fn_group_banner 1322 'ovsdb-types.at:71' \
  "maxLength must not be negative - C" "             " 62
at_xfail=no
(
  $as_echo "1322. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:71: test-ovsdb parse-base-type '{\"type\": \"string\", \"maxLength\": -1}'"
at_fn_check_prepare_trace "ovsdb-types.at:71"
( $at_check_trace; test-ovsdb parse-base-type '{"type": "string", "maxLength": -1}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-types.at:71"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:71: if grep -F -e \"maxLength out of valid range 0 to 4294967295\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-types.at:71"
( $at_check_trace; if grep -F -e "maxLength out of valid range 0 to 4294967295" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:71"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1322
#AT_START_1323
at_fn_group_banner 1323 'ovsdb-types.at:71' \
  "maxLength must not be negative - Python2" "       " 62
at_xfail=no
(
  $as_echo "1323. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:71" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:71"

   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:71: \$PYTHON3 \$srcdir/test-ovsdb.py parse-base-type '{\"type\": \"string\", \"maxLength\": -1}'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{\"type\": \"string\", \"maxLength\": -1}'" "ovsdb-types.at:71"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{"type": "string", "maxLength": -1}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-types.at:71"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:71: if grep -F -e \"maxLength out of valid range 0 to 4294967295\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-types.at:71"
( $at_check_trace; if grep -F -e "maxLength out of valid range 0 to 4294967295" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:71"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1323
#AT_START_1324
at_fn_group_banner 1324 'ovsdb-types.at:75' \
  "uuid enum - C" "                                  " 62
at_xfail=no
(
  $as_echo "1324. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:75: test-ovsdb parse-base-type '{\"type\": \"uuid\", \"enum\": [\"uuid\", \"36bf19c0-ad9d-4232-bb85-b3d73dfe2123\"]}' "
at_fn_check_prepare_trace "ovsdb-types.at:75"
( $at_check_trace; test-ovsdb parse-base-type '{"type": "uuid", "enum": ["uuid", "36bf19c0-ad9d-4232-bb85-b3d73dfe2123"]}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"enum\":[\"uuid\",\"36bf19c0-ad9d-4232-bb85-b3d73dfe2123\"],\"type\":\"uuid\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:75"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1324
#AT_START_1325
at_fn_group_banner 1325 'ovsdb-types.at:75' \
  "uuid enum - Python2" "                            " 62
at_xfail=no
(
  $as_echo "1325. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:75" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:75"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:75: \$PYTHON \$srcdir/test-ovsdb.py parse-base-type '{\"type\": \"uuid\", \"enum\": [\"uuid\", \"36bf19c0-ad9d-4232-bb85-b3d73dfe2123\"]}' "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-base-type '{\"type\": \"uuid\", \"enum\": [\"uuid\", \"36bf19c0-ad9d-4232-bb85-b3d73dfe2123\"]}' " "ovsdb-types.at:75"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-base-type '{"type": "uuid", "enum": ["uuid", "36bf19c0-ad9d-4232-bb85-b3d73dfe2123"]}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"enum\":[\"uuid\",\"36bf19c0-ad9d-4232-bb85-b3d73dfe2123\"],\"type\":\"uuid\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:75"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1325
#AT_START_1326
at_fn_group_banner 1326 'ovsdb-types.at:75' \
  "uuid enum - Python3" "                            " 62
at_xfail=no
(
  $as_echo "1326. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:75" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:75"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:75: \$PYTHON3 \$srcdir/test-ovsdb.py parse-base-type '{\"type\": \"uuid\", \"enum\": [\"uuid\", \"36bf19c0-ad9d-4232-bb85-b3d73dfe2123\"]}' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{\"type\": \"uuid\", \"enum\": [\"uuid\", \"36bf19c0-ad9d-4232-bb85-b3d73dfe2123\"]}' " "ovsdb-types.at:75"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{"type": "uuid", "enum": ["uuid", "36bf19c0-ad9d-4232-bb85-b3d73dfe2123"]}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"enum\":[\"uuid\",\"36bf19c0-ad9d-4232-bb85-b3d73dfe2123\"],\"type\":\"uuid\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:75"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1326
#AT_START_1327
at_fn_group_banner 1327 'ovsdb-types.at:78' \
  "uuid refTable - C" "                              " 62
at_xfail=no
(
  $as_echo "1327. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:78: test-ovsdb parse-base-type '{\"type\": \"uuid\", \"refTable\": \"myTable\"}' "
at_fn_check_prepare_trace "ovsdb-types.at:78"
( $at_check_trace; test-ovsdb parse-base-type '{"type": "uuid", "refTable": "myTable"}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"refTable\":\"myTable\",\"type\":\"uuid\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:78"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1327
#AT_START_1328
at_fn_group_banner 1328 'ovsdb-types.at:78' \
  "uuid refTable - Python2" "                        " 62
at_xfail=no
(
  $as_echo "1328. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:78" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:78"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:78: \$PYTHON \$srcdir/test-ovsdb.py parse-base-type '{\"type\": \"uuid\", \"refTable\": \"myTable\"}' "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-base-type '{\"type\": \"uuid\", \"refTable\": \"myTable\"}' " "ovsdb-types.at:78"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-base-type '{"type": "uuid", "refTable": "myTable"}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"refTable\":\"myTable\",\"type\":\"uuid\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:78"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1328
#AT_START_1329
at_fn_group_banner 1329 'ovsdb-types.at:78' \
  "uuid refTable - Python3" "                        " 62
at_xfail=no
(
  $as_echo "1329. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:78" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:78"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:78: \$PYTHON3 \$srcdir/test-ovsdb.py parse-base-type '{\"type\": \"uuid\", \"refTable\": \"myTable\"}' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{\"type\": \"uuid\", \"refTable\": \"myTable\"}' " "ovsdb-types.at:78"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{"type": "uuid", "refTable": "myTable"}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"refTable\":\"myTable\",\"type\":\"uuid\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:78"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1329
#AT_START_1330
at_fn_group_banner 1330 'ovsdb-types.at:81' \
  "uuid refTable must be valid id - C" "             " 62
at_xfail=no
(
  $as_echo "1330. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:81: test-ovsdb parse-base-type '{\"type\": \"uuid\", \"refTable\": \"a-b-c\"}' "
at_fn_check_prepare_trace "ovsdb-types.at:81"
( $at_check_trace; test-ovsdb parse-base-type '{"type": "uuid", "refTable": "a-b-c"}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-types.at:81"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:81: if grep -F -e \"Type mismatch for member 'refTable'\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-types.at:81"
( $at_check_trace; if grep -F -e "Type mismatch for member 'refTable'" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:81"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1330
#AT_START_1331
at_fn_group_banner 1331 'ovsdb-types.at:81' \
  "uuid refTable must be valid id - Python2" "       " 62
at_xfail=no
(
  $as_echo "1331. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:81" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:81"

   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:81: \$PYTHON3 \$srcdir/test-ovsdb.py parse-base-type '{\"type\": \"uuid\", \"refTable\": \"a-b-c\"}' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{\"type\": \"uuid\", \"refTable\": \"a-b-c\"}' " "ovsdb-types.at:81"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{"type": "uuid", "refTable": "a-b-c"}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-types.at:81"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:81: if grep -F -e \"Type mismatch for member 'refTable'\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-types.at:81"
( $at_check_trace; if grep -F -e "Type mismatch for member 'refTable'" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:81"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1331
#AT_START_1332
at_fn_group_banner 1332 'ovsdb-types.at:85' \
  "void is not a valid base-type - C" "              " 62
at_xfail=no
(
  $as_echo "1332. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:85: test-ovsdb parse-base-type '[\"void\"]' "
at_fn_check_prepare_trace "ovsdb-types.at:85"
( $at_check_trace; test-ovsdb parse-base-type '["void"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-types.at:85"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:85: if grep -F -e \"\\\"void\\\" is not an atomic-type\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-types.at:85"
( $at_check_trace; if grep -F -e "\"void\" is not an atomic-type" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:85"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1332
#AT_START_1333
at_fn_group_banner 1333 'ovsdb-types.at:85' \
  "void is not a valid base-type - Python2" "        " 62
at_xfail=no
(
  $as_echo "1333. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:85" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:85"

   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:85: \$PYTHON3 \$srcdir/test-ovsdb.py parse-base-type '[\"void\"]' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-base-type '[\"void\"]' " "ovsdb-types.at:85"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-base-type '["void"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-types.at:85"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:85: if grep -F -e \"\\\"void\\\" is not an atomic-type\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-types.at:85"
( $at_check_trace; if grep -F -e "\"void\" is not an atomic-type" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:85"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1333
#AT_START_1334
at_fn_group_banner 1334 'ovsdb-types.at:87' \
  "\"type\" member must be present - C" "              " 62
at_xfail=no
(
  $as_echo "1334. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:87: test-ovsdb parse-base-type '{}'"
at_fn_check_prepare_trace "ovsdb-types.at:87"
( $at_check_trace; test-ovsdb parse-base-type '{}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-types.at:87"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:87: if grep -F -e \"Parsing ovsdb type failed: Required 'type' member is missing.\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-types.at:87"
( $at_check_trace; if grep -F -e "Parsing ovsdb type failed: Required 'type' member is missing." stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:87"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1334
#AT_START_1335
at_fn_group_banner 1335 'ovsdb-types.at:87' \
  "\"type\" member must be present - Python2" "        " 62
at_xfail=no
(
  $as_echo "1335. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:87" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:87"

   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:87: \$PYTHON3 \$srcdir/test-ovsdb.py parse-base-type '{}'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{}'" "ovsdb-types.at:87"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-base-type '{}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-types.at:87"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:87: if grep -F -e \"Parsing ovsdb type failed: Required 'type' member is missing.\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-types.at:87"
( $at_check_trace; if grep -F -e "Parsing ovsdb type failed: Required 'type' member is missing." stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:87"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1335
#AT_START_1336
at_fn_group_banner 1336 'ovsdb-types.at:92' \
  "simple integer - C" "                             " 63
at_xfail=no
(
  $as_echo "1336. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:92: test-ovsdb parse-type '[\"integer\"]' "
at_fn_check_prepare_trace "ovsdb-types.at:92"
( $at_check_trace; test-ovsdb parse-type '["integer"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"integer\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:92"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1336
#AT_START_1337
at_fn_group_banner 1337 'ovsdb-types.at:92' \
  "simple integer - Python2" "                       " 63
at_xfail=no
(
  $as_echo "1337. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:92" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:92"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:92: \$PYTHON \$srcdir/test-ovsdb.py parse-type '[\"integer\"]' "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-type '[\"integer\"]' " "ovsdb-types.at:92"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-type '["integer"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"integer\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:92"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1337
#AT_START_1338
at_fn_group_banner 1338 'ovsdb-types.at:92' \
  "simple integer - Python3" "                       " 63
at_xfail=no
(
  $as_echo "1338. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:92" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:92"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:92: \$PYTHON3 \$srcdir/test-ovsdb.py parse-type '[\"integer\"]' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-type '[\"integer\"]' " "ovsdb-types.at:92"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-type '["integer"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"integer\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:92"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1338
#AT_START_1339
at_fn_group_banner 1339 'ovsdb-types.at:94' \
  "simple real - C" "                                " 63
at_xfail=no
(
  $as_echo "1339. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:94: test-ovsdb parse-type '[\"real\"]' "
at_fn_check_prepare_trace "ovsdb-types.at:94"
( $at_check_trace; test-ovsdb parse-type '["real"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"real\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:94"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1339
#AT_START_1340
at_fn_group_banner 1340 'ovsdb-types.at:94' \
  "simple real - Python2" "                          " 63
at_xfail=no
(
  $as_echo "1340. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:94" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:94"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:94: \$PYTHON \$srcdir/test-ovsdb.py parse-type '[\"real\"]' "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-type '[\"real\"]' " "ovsdb-types.at:94"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-type '["real"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"real\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:94"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1340
#AT_START_1341
at_fn_group_banner 1341 'ovsdb-types.at:94' \
  "simple real - Python3" "                          " 63
at_xfail=no
(
  $as_echo "1341. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:94" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:94"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:94: \$PYTHON3 \$srcdir/test-ovsdb.py parse-type '[\"real\"]' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-type '[\"real\"]' " "ovsdb-types.at:94"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-type '["real"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"real\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:94"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1341
#AT_START_1342
at_fn_group_banner 1342 'ovsdb-types.at:96' \
  "simple boolean - C" "                             " 63
at_xfail=no
(
  $as_echo "1342. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:96: test-ovsdb parse-type '[\"boolean\"]' "
at_fn_check_prepare_trace "ovsdb-types.at:96"
( $at_check_trace; test-ovsdb parse-type '["boolean"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"boolean\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:96"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1342
#AT_START_1343
at_fn_group_banner 1343 'ovsdb-types.at:96' \
  "simple boolean - Python2" "                       " 63
at_xfail=no
(
  $as_echo "1343. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:96" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:96"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:96: \$PYTHON \$srcdir/test-ovsdb.py parse-type '[\"boolean\"]' "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-type '[\"boolean\"]' " "ovsdb-types.at:96"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-type '["boolean"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"boolean\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:96"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1343
#AT_START_1344
at_fn_group_banner 1344 'ovsdb-types.at:96' \
  "simple boolean - Python3" "                       " 63
at_xfail=no
(
  $as_echo "1344. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:96" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:96"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:96: \$PYTHON3 \$srcdir/test-ovsdb.py parse-type '[\"boolean\"]' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-type '[\"boolean\"]' " "ovsdb-types.at:96"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-type '["boolean"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"boolean\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:96"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1344
#AT_START_1345
at_fn_group_banner 1345 'ovsdb-types.at:98' \
  "simple string - C" "                              " 63
at_xfail=no
(
  $as_echo "1345. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:98: test-ovsdb parse-type '[\"string\"]' "
at_fn_check_prepare_trace "ovsdb-types.at:98"
( $at_check_trace; test-ovsdb parse-type '["string"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"string\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:98"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1345
#AT_START_1346
at_fn_group_banner 1346 'ovsdb-types.at:98' \
  "simple string - Python2" "                        " 63
at_xfail=no
(
  $as_echo "1346. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:98" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:98"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:98: \$PYTHON \$srcdir/test-ovsdb.py parse-type '[\"string\"]' "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-type '[\"string\"]' " "ovsdb-types.at:98"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-type '["string"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"string\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:98"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1346
#AT_START_1347
at_fn_group_banner 1347 'ovsdb-types.at:98' \
  "simple string - Python3" "                        " 63
at_xfail=no
(
  $as_echo "1347. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:98" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:98"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:98: \$PYTHON3 \$srcdir/test-ovsdb.py parse-type '[\"string\"]' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-type '[\"string\"]' " "ovsdb-types.at:98"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-type '["string"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"string\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:98"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1347
#AT_START_1348
at_fn_group_banner 1348 'ovsdb-types.at:100' \
  "simple uuid - C" "                                " 63
at_xfail=no
(
  $as_echo "1348. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:100: test-ovsdb parse-type '[\"uuid\"]' "
at_fn_check_prepare_trace "ovsdb-types.at:100"
( $at_check_trace; test-ovsdb parse-type '["uuid"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"uuid\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:100"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1348
#AT_START_1349
at_fn_group_banner 1349 'ovsdb-types.at:100' \
  "simple uuid - Python2" "                          " 63
at_xfail=no
(
  $as_echo "1349. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:100" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:100"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:100: \$PYTHON \$srcdir/test-ovsdb.py parse-type '[\"uuid\"]' "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-type '[\"uuid\"]' " "ovsdb-types.at:100"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-type '["uuid"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"uuid\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:100"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1349
#AT_START_1350
at_fn_group_banner 1350 'ovsdb-types.at:100' \
  "simple uuid - Python3" "                          " 63
at_xfail=no
(
  $as_echo "1350. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:100" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:100"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:100: \$PYTHON3 \$srcdir/test-ovsdb.py parse-type '[\"uuid\"]' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-type '[\"uuid\"]' " "ovsdb-types.at:100"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-type '["uuid"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"uuid\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:100"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1350
#AT_START_1351
at_fn_group_banner 1351 'ovsdb-types.at:102' \
  "integer in object - C" "                          " 63
at_xfail=no
(
  $as_echo "1351. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:102: test-ovsdb parse-type '{\"key\": \"integer\"}' "
at_fn_check_prepare_trace "ovsdb-types.at:102"
( $at_check_trace; test-ovsdb parse-type '{"key": "integer"}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"integer\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:102"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1351
#AT_START_1352
at_fn_group_banner 1352 'ovsdb-types.at:102' \
  "integer in object - Python2" "                    " 63
at_xfail=no
(
  $as_echo "1352. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:102" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:102"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:102: \$PYTHON \$srcdir/test-ovsdb.py parse-type '{\"key\": \"integer\"}' "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-type '{\"key\": \"integer\"}' " "ovsdb-types.at:102"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-type '{"key": "integer"}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"integer\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:102"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1352
#AT_START_1353
at_fn_group_banner 1353 'ovsdb-types.at:102' \
  "integer in object - Python3" "                    " 63
at_xfail=no
(
  $as_echo "1353. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:102" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:102"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:102: \$PYTHON3 \$srcdir/test-ovsdb.py parse-type '{\"key\": \"integer\"}' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-type '{\"key\": \"integer\"}' " "ovsdb-types.at:102"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-type '{"key": "integer"}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"integer\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:102"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1353
#AT_START_1354
at_fn_group_banner 1354 'ovsdb-types.at:104' \
  "real in object with explicit min and max - C" "   " 63
at_xfail=no
(
  $as_echo "1354. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:104: test-ovsdb parse-type '{\"key\": \"real\", \"min\": 1, \"max\": 1}' "
at_fn_check_prepare_trace "ovsdb-types.at:104"
( $at_check_trace; test-ovsdb parse-type '{"key": "real", "min": 1, "max": 1}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"real\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:104"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1354
#AT_START_1355
at_fn_group_banner 1355 'ovsdb-types.at:104' \
  "real in object with explicit min and max - Python2" "" 63
at_xfail=no
(
  $as_echo "1355. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:104" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:104"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:104: \$PYTHON \$srcdir/test-ovsdb.py parse-type '{\"key\": \"real\", \"min\": 1, \"max\": 1}' "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-type '{\"key\": \"real\", \"min\": 1, \"max\": 1}' " "ovsdb-types.at:104"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-type '{"key": "real", "min": 1, "max": 1}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"real\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:104"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1355
#AT_START_1356
at_fn_group_banner 1356 'ovsdb-types.at:104' \
  "real in object with explicit min and max - Python3" "" 63
at_xfail=no
(
  $as_echo "1356. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:104" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:104"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:104: \$PYTHON3 \$srcdir/test-ovsdb.py parse-type '{\"key\": \"real\", \"min\": 1, \"max\": 1}' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-type '{\"key\": \"real\", \"min\": 1, \"max\": 1}' " "ovsdb-types.at:104"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-type '{"key": "real", "min": 1, "max": 1}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"real\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:104"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1356
#AT_START_1357
at_fn_group_banner 1357 'ovsdb-types.at:107' \
  "key type is required - C" "                       " 63
at_xfail=no
(
  $as_echo "1357. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:107: test-ovsdb parse-type '{}' "
at_fn_check_prepare_trace "ovsdb-types.at:107"
( $at_check_trace; test-ovsdb parse-type '{}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-types.at:107"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:107: if grep -F -e \"Required 'key' member is missing.\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-types.at:107"
( $at_check_trace; if grep -F -e "Required 'key' member is missing." stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:107"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1357
#AT_START_1358
at_fn_group_banner 1358 'ovsdb-types.at:107' \
  "key type is required - Python2" "                 " 63
at_xfail=no
(
  $as_echo "1358. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:107" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:107"

   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:107: \$PYTHON3 \$srcdir/test-ovsdb.py parse-type '{}' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-type '{}' " "ovsdb-types.at:107"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-type '{}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-types.at:107"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:107: if grep -F -e \"Required 'key' member is missing.\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-types.at:107"
( $at_check_trace; if grep -F -e "Required 'key' member is missing." stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:107"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1358
#AT_START_1359
at_fn_group_banner 1359 'ovsdb-types.at:109' \
  "void is not a valid type - C" "                   " 63
at_xfail=no
(
  $as_echo "1359. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:109: test-ovsdb parse-type '[\"void\"]' "
at_fn_check_prepare_trace "ovsdb-types.at:109"
( $at_check_trace; test-ovsdb parse-type '["void"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-types.at:109"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:109: if grep -F -e \"\\\"void\\\" is not an atomic-type\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-types.at:109"
( $at_check_trace; if grep -F -e "\"void\" is not an atomic-type" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:109"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1359
#AT_START_1360
at_fn_group_banner 1360 'ovsdb-types.at:109' \
  "void is not a valid type - Python2" "             " 63
at_xfail=no
(
  $as_echo "1360. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:109" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:109"

   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:109: \$PYTHON3 \$srcdir/test-ovsdb.py parse-type '[\"void\"]' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-type '[\"void\"]' " "ovsdb-types.at:109"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-type '["void"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-types.at:109"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:109: if grep -F -e \"\\\"void\\\" is not an atomic-type\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-types.at:109"
( $at_check_trace; if grep -F -e "\"void\" is not an atomic-type" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:109"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1360
#AT_START_1361
at_fn_group_banner 1361 'ovsdb-types.at:114' \
  "optional boolean - C" "                           " 64
at_xfail=no
(
  $as_echo "1361. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:114: test-ovsdb parse-type '{\"key\": \"boolean\", \"min\": 0}' "
at_fn_check_prepare_trace "ovsdb-types.at:114"
( $at_check_trace; test-ovsdb parse-type '{"key": "boolean", "min": 0}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"key\":\"boolean\",\"min\":0}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:114"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1361
#AT_START_1362
at_fn_group_banner 1362 'ovsdb-types.at:114' \
  "optional boolean - Python2" "                     " 64
at_xfail=no
(
  $as_echo "1362. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:114" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:114"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:114: \$PYTHON \$srcdir/test-ovsdb.py parse-type '{\"key\": \"boolean\", \"min\": 0}' "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-type '{\"key\": \"boolean\", \"min\": 0}' " "ovsdb-types.at:114"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-type '{"key": "boolean", "min": 0}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"key\":\"boolean\",\"min\":0}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:114"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1362
#AT_START_1363
at_fn_group_banner 1363 'ovsdb-types.at:114' \
  "optional boolean - Python3" "                     " 64
at_xfail=no
(
  $as_echo "1363. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:114" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:114"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:114: \$PYTHON3 \$srcdir/test-ovsdb.py parse-type '{\"key\": \"boolean\", \"min\": 0}' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-type '{\"key\": \"boolean\", \"min\": 0}' " "ovsdb-types.at:114"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-type '{"key": "boolean", "min": 0}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"key\":\"boolean\",\"min\":0}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:114"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1363
#AT_START_1364
at_fn_group_banner 1364 'ovsdb-types.at:118' \
  "set of 1 to 3 uuids - C" "                        " 64
at_xfail=no
(
  $as_echo "1364. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:118: test-ovsdb parse-type '{\"key\": \"uuid\", \"min\": 1, \"max\": 3}' "
at_fn_check_prepare_trace "ovsdb-types.at:118"
( $at_check_trace; test-ovsdb parse-type '{"key": "uuid", "min": 1, "max": 3}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"key\":\"uuid\",\"max\":3}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:118"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1364
#AT_START_1365
at_fn_group_banner 1365 'ovsdb-types.at:118' \
  "set of 1 to 3 uuids - Python2" "                  " 64
at_xfail=no
(
  $as_echo "1365. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:118" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:118"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:118: \$PYTHON \$srcdir/test-ovsdb.py parse-type '{\"key\": \"uuid\", \"min\": 1, \"max\": 3}' "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-type '{\"key\": \"uuid\", \"min\": 1, \"max\": 3}' " "ovsdb-types.at:118"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-type '{"key": "uuid", "min": 1, "max": 3}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"key\":\"uuid\",\"max\":3}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:118"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1365
#AT_START_1366
at_fn_group_banner 1366 'ovsdb-types.at:118' \
  "set of 1 to 3 uuids - Python3" "                  " 64
at_xfail=no
(
  $as_echo "1366. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:118" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:118"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:118: \$PYTHON3 \$srcdir/test-ovsdb.py parse-type '{\"key\": \"uuid\", \"min\": 1, \"max\": 3}' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-type '{\"key\": \"uuid\", \"min\": 1, \"max\": 3}' " "ovsdb-types.at:118"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-type '{"key": "uuid", "min": 1, "max": 3}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"key\":\"uuid\",\"max\":3}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:118"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1366
#AT_START_1367
at_fn_group_banner 1367 'ovsdb-types.at:121' \
  "set of 0 to 3 strings - C" "                      " 64
at_xfail=no
(
  $as_echo "1367. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:121: test-ovsdb parse-type '{\"key\": \"string\", \"min\": 0, \"max\": 3}' "
at_fn_check_prepare_trace "ovsdb-types.at:121"
( $at_check_trace; test-ovsdb parse-type '{"key": "string", "min": 0, "max": 3}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"key\":\"string\",\"max\":3,\"min\":0}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:121"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1367
#AT_START_1368
at_fn_group_banner 1368 'ovsdb-types.at:121' \
  "set of 0 to 3 strings - Python2" "                " 64
at_xfail=no
(
  $as_echo "1368. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:121" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:121"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:121: \$PYTHON \$srcdir/test-ovsdb.py parse-type '{\"key\": \"string\", \"min\": 0, \"max\": 3}' "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-type '{\"key\": \"string\", \"min\": 0, \"max\": 3}' " "ovsdb-types.at:121"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-type '{"key": "string", "min": 0, "max": 3}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"key\":\"string\",\"max\":3,\"min\":0}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:121"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1368
#AT_START_1369
at_fn_group_banner 1369 'ovsdb-types.at:121' \
  "set of 0 to 3 strings - Python3" "                " 64
at_xfail=no
(
  $as_echo "1369. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:121" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:121"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:121: \$PYTHON3 \$srcdir/test-ovsdb.py parse-type '{\"key\": \"string\", \"min\": 0, \"max\": 3}' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-type '{\"key\": \"string\", \"min\": 0, \"max\": 3}' " "ovsdb-types.at:121"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-type '{"key": "string", "min": 0, "max": 3}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"key\":\"string\",\"max\":3,\"min\":0}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:121"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1369
#AT_START_1370
at_fn_group_banner 1370 'ovsdb-types.at:124' \
  "set of 0 or more integers - C" "                  " 64
at_xfail=no
(
  $as_echo "1370. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:124: test-ovsdb parse-type '{\"key\": \"integer\", \"min\": 0, \"max\": \"unlimited\"}'"
at_fn_check_prepare_trace "ovsdb-types.at:124"
( $at_check_trace; test-ovsdb parse-type '{"key": "integer", "min": 0, "max": "unlimited"}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"key\":\"integer\",\"max\":\"unlimited\",\"min\":0}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:124"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1370
#AT_START_1371
at_fn_group_banner 1371 'ovsdb-types.at:124' \
  "set of 0 or more integers - Python2" "            " 64
at_xfail=no
(
  $as_echo "1371. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:124" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:124"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:124: \$PYTHON \$srcdir/test-ovsdb.py parse-type '{\"key\": \"integer\", \"min\": 0, \"max\": \"unlimited\"}'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-type '{\"key\": \"integer\", \"min\": 0, \"max\": \"unlimited\"}'" "ovsdb-types.at:124"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-type '{"key": "integer", "min": 0, "max": "unlimited"}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"key\":\"integer\",\"max\":\"unlimited\",\"min\":0}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:124"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1371
#AT_START_1372
at_fn_group_banner 1372 'ovsdb-types.at:124' \
  "set of 0 or more integers - Python3" "            " 64
at_xfail=no
(
  $as_echo "1372. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:124" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:124"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:124: \$PYTHON3 \$srcdir/test-ovsdb.py parse-type '{\"key\": \"integer\", \"min\": 0, \"max\": \"unlimited\"}'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-type '{\"key\": \"integer\", \"min\": 0, \"max\": \"unlimited\"}'" "ovsdb-types.at:124"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-type '{"key": "integer", "min": 0, "max": "unlimited"}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"key\":\"integer\",\"max\":\"unlimited\",\"min\":0}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:124"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1372
#AT_START_1373
at_fn_group_banner 1373 'ovsdb-types.at:127' \
  "set of 1 or more reals - C" "                     " 64
at_xfail=no
(
  $as_echo "1373. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:127: test-ovsdb parse-type '{\"key\": \"real\", \"min\": 1, \"max\": \"unlimited\"}'"
at_fn_check_prepare_trace "ovsdb-types.at:127"
( $at_check_trace; test-ovsdb parse-type '{"key": "real", "min": 1, "max": "unlimited"}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"key\":\"real\",\"max\":\"unlimited\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:127"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1373
#AT_START_1374
at_fn_group_banner 1374 'ovsdb-types.at:127' \
  "set of 1 or more reals - Python2" "               " 64
at_xfail=no
(
  $as_echo "1374. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:127" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:127"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:127: \$PYTHON \$srcdir/test-ovsdb.py parse-type '{\"key\": \"real\", \"min\": 1, \"max\": \"unlimited\"}'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-type '{\"key\": \"real\", \"min\": 1, \"max\": \"unlimited\"}'" "ovsdb-types.at:127"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-type '{"key": "real", "min": 1, "max": "unlimited"}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"key\":\"real\",\"max\":\"unlimited\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:127"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1374
#AT_START_1375
at_fn_group_banner 1375 'ovsdb-types.at:127' \
  "set of 1 or more reals - Python3" "               " 64
at_xfail=no
(
  $as_echo "1375. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:127" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:127"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:127: \$PYTHON3 \$srcdir/test-ovsdb.py parse-type '{\"key\": \"real\", \"min\": 1, \"max\": \"unlimited\"}'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-type '{\"key\": \"real\", \"min\": 1, \"max\": \"unlimited\"}'" "ovsdb-types.at:127"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-type '{"key": "real", "min": 1, "max": "unlimited"}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"key\":\"real\",\"max\":\"unlimited\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:127"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1375
#AT_START_1376
at_fn_group_banner 1376 'ovsdb-types.at:131' \
  "set max cannot be less than min - C" "            " 64
at_xfail=no
(
  $as_echo "1376. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:131: test-ovsdb parse-type '{\"key\": \"real\", \"min\": 5, \"max\": 3}' "
at_fn_check_prepare_trace "ovsdb-types.at:131"
( $at_check_trace; test-ovsdb parse-type '{"key": "real", "min": 5, "max": 3}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-types.at:131"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:131: if grep -F -e \"ovsdb type fails constraint checks\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-types.at:131"
( $at_check_trace; if grep -F -e "ovsdb type fails constraint checks" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:131"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1376
#AT_START_1377
at_fn_group_banner 1377 'ovsdb-types.at:131' \
  "set max cannot be less than min - Python2" "      " 64
at_xfail=no
(
  $as_echo "1377. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:131" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:131"

   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:131: \$PYTHON3 \$srcdir/test-ovsdb.py parse-type '{\"key\": \"real\", \"min\": 5, \"max\": 3}' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-type '{\"key\": \"real\", \"min\": 5, \"max\": 3}' " "ovsdb-types.at:131"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-type '{"key": "real", "min": 5, "max": 3}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-types.at:131"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:131: if grep -F -e \"ovsdb type fails constraint checks\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-types.at:131"
( $at_check_trace; if grep -F -e "ovsdb type fails constraint checks" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:131"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1377
#AT_START_1378
at_fn_group_banner 1378 'ovsdb-types.at:134' \
  "set max cannot be negative - C" "                 " 64
at_xfail=no
(
  $as_echo "1378. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:134: test-ovsdb parse-type '{\"key\": \"real\", \"max\": -1}' "
at_fn_check_prepare_trace "ovsdb-types.at:134"
( $at_check_trace; test-ovsdb parse-type '{"key": "real", "max": -1}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-types.at:134"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:134: if grep -F -e \"bad min or max value\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-types.at:134"
( $at_check_trace; if grep -F -e "bad min or max value" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:134"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1378
#AT_START_1379
at_fn_group_banner 1379 'ovsdb-types.at:134' \
  "set max cannot be negative - Python2" "           " 64
at_xfail=no
(
  $as_echo "1379. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:134" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:134"

   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:134: \$PYTHON3 \$srcdir/test-ovsdb.py parse-type '{\"key\": \"real\", \"max\": -1}' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-type '{\"key\": \"real\", \"max\": -1}' " "ovsdb-types.at:134"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-type '{"key": "real", "max": -1}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-types.at:134"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:134: if grep -F -e \"bad min or max value\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-types.at:134"
( $at_check_trace; if grep -F -e "bad min or max value" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:134"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1379
#AT_START_1380
at_fn_group_banner 1380 'ovsdb-types.at:137' \
  "set min cannot be negative - C" "                 " 64
at_xfail=no
(
  $as_echo "1380. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:137: test-ovsdb parse-type '{\"key\": \"real\", \"min\": -1}' "
at_fn_check_prepare_trace "ovsdb-types.at:137"
( $at_check_trace; test-ovsdb parse-type '{"key": "real", "min": -1}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-types.at:137"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:137: if grep -F -e \"bad min or max value\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-types.at:137"
( $at_check_trace; if grep -F -e "bad min or max value" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:137"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1380
#AT_START_1381
at_fn_group_banner 1381 'ovsdb-types.at:137' \
  "set min cannot be negative - Python2" "           " 64
at_xfail=no
(
  $as_echo "1381. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:137" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:137"

   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:137: \$PYTHON3 \$srcdir/test-ovsdb.py parse-type '{\"key\": \"real\", \"min\": -1}' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-type '{\"key\": \"real\", \"min\": -1}' " "ovsdb-types.at:137"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-type '{"key": "real", "min": -1}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-types.at:137"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:137: if grep -F -e \"bad min or max value\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-types.at:137"
( $at_check_trace; if grep -F -e "bad min or max value" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:137"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1381
#AT_START_1382
at_fn_group_banner 1382 'ovsdb-types.at:140' \
  "set min cannot be greater than one - C" "         " 64
at_xfail=no
(
  $as_echo "1382. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:140: test-ovsdb parse-type '{\"key\": \"real\", \"min\": 10, \"max\": \"unlimited\"}'"
at_fn_check_prepare_trace "ovsdb-types.at:140"
( $at_check_trace; test-ovsdb parse-type '{"key": "real", "min": 10, "max": "unlimited"}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-types.at:140"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:140: if grep -F -e \"ovsdb type fails constraint checks\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-types.at:140"
( $at_check_trace; if grep -F -e "ovsdb type fails constraint checks" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:140"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1382
#AT_START_1383
at_fn_group_banner 1383 'ovsdb-types.at:140' \
  "set min cannot be greater than one - Python2" "   " 64
at_xfail=no
(
  $as_echo "1383. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:140" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:140"

   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:140: \$PYTHON3 \$srcdir/test-ovsdb.py parse-type '{\"key\": \"real\", \"min\": 10, \"max\": \"unlimited\"}'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-type '{\"key\": \"real\", \"min\": 10, \"max\": \"unlimited\"}'" "ovsdb-types.at:140"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-type '{"key": "real", "min": 10, "max": "unlimited"}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-types.at:140"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:140: if grep -F -e \"ovsdb type fails constraint checks\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-types.at:140"
( $at_check_trace; if grep -F -e "ovsdb type fails constraint checks" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:140"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1383
#AT_START_1384
at_fn_group_banner 1384 'ovsdb-types.at:146' \
  "map of 1 integer to boolean - C" "                " 65
at_xfail=no
(
  $as_echo "1384. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:146: test-ovsdb parse-type '{\"key\": \"integer\", \"value\": \"boolean\"}' "
at_fn_check_prepare_trace "ovsdb-types.at:146"
( $at_check_trace; test-ovsdb parse-type '{"key": "integer", "value": "boolean"}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"key\":\"integer\",\"value\":\"boolean\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:146"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1384
#AT_START_1385
at_fn_group_banner 1385 'ovsdb-types.at:146' \
  "map of 1 integer to boolean - Python2" "          " 65
at_xfail=no
(
  $as_echo "1385. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:146" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:146"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:146: \$PYTHON \$srcdir/test-ovsdb.py parse-type '{\"key\": \"integer\", \"value\": \"boolean\"}' "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-type '{\"key\": \"integer\", \"value\": \"boolean\"}' " "ovsdb-types.at:146"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-type '{"key": "integer", "value": "boolean"}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"key\":\"integer\",\"value\":\"boolean\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:146"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1385
#AT_START_1386
at_fn_group_banner 1386 'ovsdb-types.at:146' \
  "map of 1 integer to boolean - Python3" "          " 65
at_xfail=no
(
  $as_echo "1386. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:146" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:146"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:146: \$PYTHON3 \$srcdir/test-ovsdb.py parse-type '{\"key\": \"integer\", \"value\": \"boolean\"}' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-type '{\"key\": \"integer\", \"value\": \"boolean\"}' " "ovsdb-types.at:146"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-type '{"key": "integer", "value": "boolean"}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"key\":\"integer\",\"value\":\"boolean\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:146"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1386
#AT_START_1387
at_fn_group_banner 1387 'ovsdb-types.at:149' \
  "map of 1 boolean to integer, explicit min and max - C" "" 65
at_xfail=no
(
  $as_echo "1387. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:149: test-ovsdb parse-type '{\"key\": \"boolean\", \"value\": \"integer\", \"min\": 1, \"max\": 1}' "
at_fn_check_prepare_trace "ovsdb-types.at:149"
( $at_check_trace; test-ovsdb parse-type '{"key": "boolean", "value": "integer", "min": 1, "max": 1}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"key\":\"boolean\",\"value\":\"integer\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:149"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1387
#AT_START_1388
at_fn_group_banner 1388 'ovsdb-types.at:149' \
  "map of 1 boolean to integer, explicit min and max - Python2" "" 65
at_xfail=no
(
  $as_echo "1388. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:149" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:149"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:149: \$PYTHON \$srcdir/test-ovsdb.py parse-type '{\"key\": \"boolean\", \"value\": \"integer\", \"min\": 1, \"max\": 1}' "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-type '{\"key\": \"boolean\", \"value\": \"integer\", \"min\": 1, \"max\": 1}' " "ovsdb-types.at:149"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-type '{"key": "boolean", "value": "integer", "min": 1, "max": 1}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"key\":\"boolean\",\"value\":\"integer\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:149"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1388
#AT_START_1389
at_fn_group_banner 1389 'ovsdb-types.at:149' \
  "map of 1 boolean to integer, explicit min and max - Python3" "" 65
at_xfail=no
(
  $as_echo "1389. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:149" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:149"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:149: \$PYTHON3 \$srcdir/test-ovsdb.py parse-type '{\"key\": \"boolean\", \"value\": \"integer\", \"min\": 1, \"max\": 1}' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-type '{\"key\": \"boolean\", \"value\": \"integer\", \"min\": 1, \"max\": 1}' " "ovsdb-types.at:149"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-type '{"key": "boolean", "value": "integer", "min": 1, "max": 1}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"key\":\"boolean\",\"value\":\"integer\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:149"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1389
#AT_START_1390
at_fn_group_banner 1390 'ovsdb-types.at:152' \
  "map of 1 to 5 uuid to real - C" "                 " 65
at_xfail=no
(
  $as_echo "1390. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:152: test-ovsdb parse-type '{\"key\": \"uuid\", \"value\": \"real\", \"min\": 1, \"max\": 5}' "
at_fn_check_prepare_trace "ovsdb-types.at:152"
( $at_check_trace; test-ovsdb parse-type '{"key": "uuid", "value": "real", "min": 1, "max": 5}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"key\":\"uuid\",\"max\":5,\"value\":\"real\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:152"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1390
#AT_START_1391
at_fn_group_banner 1391 'ovsdb-types.at:152' \
  "map of 1 to 5 uuid to real - Python2" "           " 65
at_xfail=no
(
  $as_echo "1391. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:152" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:152"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:152: \$PYTHON \$srcdir/test-ovsdb.py parse-type '{\"key\": \"uuid\", \"value\": \"real\", \"min\": 1, \"max\": 5}' "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-type '{\"key\": \"uuid\", \"value\": \"real\", \"min\": 1, \"max\": 5}' " "ovsdb-types.at:152"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-type '{"key": "uuid", "value": "real", "min": 1, "max": 5}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"key\":\"uuid\",\"max\":5,\"value\":\"real\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:152"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1391
#AT_START_1392
at_fn_group_banner 1392 'ovsdb-types.at:152' \
  "map of 1 to 5 uuid to real - Python3" "           " 65
at_xfail=no
(
  $as_echo "1392. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:152" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:152"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:152: \$PYTHON3 \$srcdir/test-ovsdb.py parse-type '{\"key\": \"uuid\", \"value\": \"real\", \"min\": 1, \"max\": 5}' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-type '{\"key\": \"uuid\", \"value\": \"real\", \"min\": 1, \"max\": 5}' " "ovsdb-types.at:152"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-type '{"key": "uuid", "value": "real", "min": 1, "max": 5}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"key\":\"uuid\",\"max\":5,\"value\":\"real\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:152"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1392
#AT_START_1393
at_fn_group_banner 1393 'ovsdb-types.at:155' \
  "map of 0 to 10 string to uuid - C" "              " 65
at_xfail=no
(
  $as_echo "1393. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:155: test-ovsdb parse-type '{\"key\": \"string\", \"value\": \"uuid\", \"min\": 0, \"max\": 10}' "
at_fn_check_prepare_trace "ovsdb-types.at:155"
( $at_check_trace; test-ovsdb parse-type '{"key": "string", "value": "uuid", "min": 0, "max": 10}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"key\":\"string\",\"max\":10,\"min\":0,\"value\":\"uuid\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:155"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1393
#AT_START_1394
at_fn_group_banner 1394 'ovsdb-types.at:155' \
  "map of 0 to 10 string to uuid - Python2" "        " 65
at_xfail=no
(
  $as_echo "1394. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:155" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:155"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:155: \$PYTHON \$srcdir/test-ovsdb.py parse-type '{\"key\": \"string\", \"value\": \"uuid\", \"min\": 0, \"max\": 10}' "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-type '{\"key\": \"string\", \"value\": \"uuid\", \"min\": 0, \"max\": 10}' " "ovsdb-types.at:155"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-type '{"key": "string", "value": "uuid", "min": 0, "max": 10}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"key\":\"string\",\"max\":10,\"min\":0,\"value\":\"uuid\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:155"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1394
#AT_START_1395
at_fn_group_banner 1395 'ovsdb-types.at:155' \
  "map of 0 to 10 string to uuid - Python3" "        " 65
at_xfail=no
(
  $as_echo "1395. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:155" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:155"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:155: \$PYTHON3 \$srcdir/test-ovsdb.py parse-type '{\"key\": \"string\", \"value\": \"uuid\", \"min\": 0, \"max\": 10}' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-type '{\"key\": \"string\", \"value\": \"uuid\", \"min\": 0, \"max\": 10}' " "ovsdb-types.at:155"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-type '{"key": "string", "value": "uuid", "min": 0, "max": 10}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"key\":\"string\",\"max\":10,\"min\":0,\"value\":\"uuid\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:155"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1395
#AT_START_1396
at_fn_group_banner 1396 'ovsdb-types.at:158' \
  "map of 1 to 20 real to string - C" "              " 65
at_xfail=no
(
  $as_echo "1396. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:158: test-ovsdb parse-type '{\"key\": \"real\", \"value\": \"string\", \"min\": 1, \"max\": 20}' "
at_fn_check_prepare_trace "ovsdb-types.at:158"
( $at_check_trace; test-ovsdb parse-type '{"key": "real", "value": "string", "min": 1, "max": 20}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"key\":\"real\",\"max\":20,\"value\":\"string\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:158"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1396
#AT_START_1397
at_fn_group_banner 1397 'ovsdb-types.at:158' \
  "map of 1 to 20 real to string - Python2" "        " 65
at_xfail=no
(
  $as_echo "1397. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:158" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:158"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:158: \$PYTHON \$srcdir/test-ovsdb.py parse-type '{\"key\": \"real\", \"value\": \"string\", \"min\": 1, \"max\": 20}' "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-type '{\"key\": \"real\", \"value\": \"string\", \"min\": 1, \"max\": 20}' " "ovsdb-types.at:158"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-type '{"key": "real", "value": "string", "min": 1, "max": 20}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"key\":\"real\",\"max\":20,\"value\":\"string\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:158"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1397
#AT_START_1398
at_fn_group_banner 1398 'ovsdb-types.at:158' \
  "map of 1 to 20 real to string - Python3" "        " 65
at_xfail=no
(
  $as_echo "1398. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:158" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:158"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:158: \$PYTHON3 \$srcdir/test-ovsdb.py parse-type '{\"key\": \"real\", \"value\": \"string\", \"min\": 1, \"max\": 20}' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-type '{\"key\": \"real\", \"value\": \"string\", \"min\": 1, \"max\": 20}' " "ovsdb-types.at:158"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-type '{"key": "real", "value": "string", "min": 1, "max": 20}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"key\":\"real\",\"max\":20,\"value\":\"string\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:158"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1398
#AT_START_1399
at_fn_group_banner 1399 'ovsdb-types.at:161' \
  "map of 0 or more string to real - C" "            " 65
at_xfail=no
(
  $as_echo "1399. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:161: test-ovsdb parse-type '{\"key\": \"string\", \"value\": \"real\", \"min\": 0, \"max\": \"unlimited\"}' "
at_fn_check_prepare_trace "ovsdb-types.at:161"
( $at_check_trace; test-ovsdb parse-type '{"key": "string", "value": "real", "min": 0, "max": "unlimited"}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"key\":\"string\",\"max\":\"unlimited\",\"min\":0,\"value\":\"real\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:161"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1399
#AT_START_1400
at_fn_group_banner 1400 'ovsdb-types.at:161' \
  "map of 0 or more string to real - Python2" "      " 65
at_xfail=no
(
  $as_echo "1400. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:161" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:161"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:161: \$PYTHON \$srcdir/test-ovsdb.py parse-type '{\"key\": \"string\", \"value\": \"real\", \"min\": 0, \"max\": \"unlimited\"}' "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-type '{\"key\": \"string\", \"value\": \"real\", \"min\": 0, \"max\": \"unlimited\"}' " "ovsdb-types.at:161"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-type '{"key": "string", "value": "real", "min": 0, "max": "unlimited"}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"key\":\"string\",\"max\":\"unlimited\",\"min\":0,\"value\":\"real\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:161"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1400
#AT_START_1401
at_fn_group_banner 1401 'ovsdb-types.at:161' \
  "map of 0 or more string to real - Python3" "      " 65
at_xfail=no
(
  $as_echo "1401. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:161" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:161"


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:161: \$PYTHON3 \$srcdir/test-ovsdb.py parse-type '{\"key\": \"string\", \"value\": \"real\", \"min\": 0, \"max\": \"unlimited\"}' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-type '{\"key\": \"string\", \"value\": \"real\", \"min\": 0, \"max\": \"unlimited\"}' " "ovsdb-types.at:161"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-type '{"key": "string", "value": "real", "min": 0, "max": "unlimited"}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"key\":\"string\",\"max\":\"unlimited\",\"min\":0,\"value\":\"real\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:161"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1401
#AT_START_1402
at_fn_group_banner 1402 'ovsdb-types.at:165' \
  "map key type is required - C" "                   " 65
at_xfail=no
(
  $as_echo "1402. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:165: test-ovsdb parse-type '{\"value\": \"integer\"}' "
at_fn_check_prepare_trace "ovsdb-types.at:165"
( $at_check_trace; test-ovsdb parse-type '{"value": "integer"}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-types.at:165"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:165: if grep -F -e \"Required 'key' member is missing.\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-types.at:165"
( $at_check_trace; if grep -F -e "Required 'key' member is missing." stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:165"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1402
#AT_START_1403
at_fn_group_banner 1403 'ovsdb-types.at:165' \
  "map key type is required - Python2" "             " 65
at_xfail=no
(
  $as_echo "1403. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-types.at:165" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-types.at:165"

   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:165: \$PYTHON3 \$srcdir/test-ovsdb.py parse-type '{\"value\": \"integer\"}' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-type '{\"value\": \"integer\"}' " "ovsdb-types.at:165"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-type '{"value": "integer"}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-types.at:165"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-types.at:165: if grep -F -e \"Required 'key' member is missing.\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-types.at:165"
( $at_check_trace; if grep -F -e "Required 'key' member is missing." stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-types.at:165"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1403
#AT_START_1404
at_fn_group_banner 1404 'ovsdb-data.at:3' \
  "default atoms - C" "                              " 66
at_xfail=no
(
  $as_echo "1404. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:3: test-ovsdb default-atoms"
at_fn_check_prepare_trace "ovsdb-data.at:3"
( $at_check_trace; test-ovsdb default-atoms
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "integer: OK
real: OK
boolean: OK
string: OK
uuid: OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:3"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1404
#AT_START_1405
at_fn_group_banner 1405 'ovsdb-data.at:3' \
  "default atoms - Python2" "                        " 66
at_xfail=no
(
  $as_echo "1405. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:3" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:3"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:3: \$PYTHON \$srcdir/test-ovsdb.py default-atoms"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py default-atoms" "ovsdb-data.at:3"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py default-atoms
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "integer: OK
real: OK
boolean: OK
string: OK
uuid: OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:3"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1405
#AT_START_1406
at_fn_group_banner 1406 'ovsdb-data.at:3' \
  "default atoms - Python3" "                        " 66
at_xfail=no
(
  $as_echo "1406. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:3" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:3"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:3: \$PYTHON3 \$srcdir/test-ovsdb.py default-atoms"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py default-atoms" "ovsdb-data.at:3"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py default-atoms
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "integer: OK
real: OK
boolean: OK
string: OK
uuid: OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:3"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1406
#AT_START_1407
at_fn_group_banner 1407 'ovsdb-data.at:11' \
  "default data - C" "                               " 66
at_xfail=no
(
  $as_echo "1407. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:11: test-ovsdb default-data"
at_fn_check_prepare_trace "ovsdb-data.at:11"
( $at_check_trace; test-ovsdb default-data
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "key integer, value void, n_min 0: OK
key integer, value integer, n_min 0: OK
key integer, value real, n_min 0: OK
key integer, value boolean, n_min 0: OK
key integer, value string, n_min 0: OK
key integer, value uuid, n_min 0: OK
key real, value void, n_min 0: OK
key real, value integer, n_min 0: OK
key real, value real, n_min 0: OK
key real, value boolean, n_min 0: OK
key real, value string, n_min 0: OK
key real, value uuid, n_min 0: OK
key boolean, value void, n_min 0: OK
key boolean, value integer, n_min 0: OK
key boolean, value real, n_min 0: OK
key boolean, value boolean, n_min 0: OK
key boolean, value string, n_min 0: OK
key boolean, value uuid, n_min 0: OK
key string, value void, n_min 0: OK
key string, value integer, n_min 0: OK
key string, value real, n_min 0: OK
key string, value boolean, n_min 0: OK
key string, value string, n_min 0: OK
key string, value uuid, n_min 0: OK
key uuid, value void, n_min 0: OK
key uuid, value integer, n_min 0: OK
key uuid, value real, n_min 0: OK
key uuid, value boolean, n_min 0: OK
key uuid, value string, n_min 0: OK
key uuid, value uuid, n_min 0: OK
key integer, value void, n_min 1: OK
key integer, value integer, n_min 1: OK
key integer, value real, n_min 1: OK
key integer, value boolean, n_min 1: OK
key integer, value string, n_min 1: OK
key integer, value uuid, n_min 1: OK
key real, value void, n_min 1: OK
key real, value integer, n_min 1: OK
key real, value real, n_min 1: OK
key real, value boolean, n_min 1: OK
key real, value string, n_min 1: OK
key real, value uuid, n_min 1: OK
key boolean, value void, n_min 1: OK
key boolean, value integer, n_min 1: OK
key boolean, value real, n_min 1: OK
key boolean, value boolean, n_min 1: OK
key boolean, value string, n_min 1: OK
key boolean, value uuid, n_min 1: OK
key string, value void, n_min 1: OK
key string, value integer, n_min 1: OK
key string, value real, n_min 1: OK
key string, value boolean, n_min 1: OK
key string, value string, n_min 1: OK
key string, value uuid, n_min 1: OK
key uuid, value void, n_min 1: OK
key uuid, value integer, n_min 1: OK
key uuid, value real, n_min 1: OK
key uuid, value boolean, n_min 1: OK
key uuid, value string, n_min 1: OK
key uuid, value uuid, n_min 1: OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:11"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1407
#AT_START_1408
at_fn_group_banner 1408 'ovsdb-data.at:11' \
  "default data - Python2" "                         " 66
at_xfail=no
(
  $as_echo "1408. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:11" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:11"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:11: \$PYTHON \$srcdir/test-ovsdb.py default-data"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py default-data" "ovsdb-data.at:11"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py default-data
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "key integer, value void, n_min 0: OK
key integer, value integer, n_min 0: OK
key integer, value real, n_min 0: OK
key integer, value boolean, n_min 0: OK
key integer, value string, n_min 0: OK
key integer, value uuid, n_min 0: OK
key real, value void, n_min 0: OK
key real, value integer, n_min 0: OK
key real, value real, n_min 0: OK
key real, value boolean, n_min 0: OK
key real, value string, n_min 0: OK
key real, value uuid, n_min 0: OK
key boolean, value void, n_min 0: OK
key boolean, value integer, n_min 0: OK
key boolean, value real, n_min 0: OK
key boolean, value boolean, n_min 0: OK
key boolean, value string, n_min 0: OK
key boolean, value uuid, n_min 0: OK
key string, value void, n_min 0: OK
key string, value integer, n_min 0: OK
key string, value real, n_min 0: OK
key string, value boolean, n_min 0: OK
key string, value string, n_min 0: OK
key string, value uuid, n_min 0: OK
key uuid, value void, n_min 0: OK
key uuid, value integer, n_min 0: OK
key uuid, value real, n_min 0: OK
key uuid, value boolean, n_min 0: OK
key uuid, value string, n_min 0: OK
key uuid, value uuid, n_min 0: OK
key integer, value void, n_min 1: OK
key integer, value integer, n_min 1: OK
key integer, value real, n_min 1: OK
key integer, value boolean, n_min 1: OK
key integer, value string, n_min 1: OK
key integer, value uuid, n_min 1: OK
key real, value void, n_min 1: OK
key real, value integer, n_min 1: OK
key real, value real, n_min 1: OK
key real, value boolean, n_min 1: OK
key real, value string, n_min 1: OK
key real, value uuid, n_min 1: OK
key boolean, value void, n_min 1: OK
key boolean, value integer, n_min 1: OK
key boolean, value real, n_min 1: OK
key boolean, value boolean, n_min 1: OK
key boolean, value string, n_min 1: OK
key boolean, value uuid, n_min 1: OK
key string, value void, n_min 1: OK
key string, value integer, n_min 1: OK
key string, value real, n_min 1: OK
key string, value boolean, n_min 1: OK
key string, value string, n_min 1: OK
key string, value uuid, n_min 1: OK
key uuid, value void, n_min 1: OK
key uuid, value integer, n_min 1: OK
key uuid, value real, n_min 1: OK
key uuid, value boolean, n_min 1: OK
key uuid, value string, n_min 1: OK
key uuid, value uuid, n_min 1: OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:11"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1408
#AT_START_1409
at_fn_group_banner 1409 'ovsdb-data.at:11' \
  "default data - Python3" "                         " 66
at_xfail=no
(
  $as_echo "1409. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:11" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:11"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:11: \$PYTHON3 \$srcdir/test-ovsdb.py default-data"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py default-data" "ovsdb-data.at:11"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py default-data
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "key integer, value void, n_min 0: OK
key integer, value integer, n_min 0: OK
key integer, value real, n_min 0: OK
key integer, value boolean, n_min 0: OK
key integer, value string, n_min 0: OK
key integer, value uuid, n_min 0: OK
key real, value void, n_min 0: OK
key real, value integer, n_min 0: OK
key real, value real, n_min 0: OK
key real, value boolean, n_min 0: OK
key real, value string, n_min 0: OK
key real, value uuid, n_min 0: OK
key boolean, value void, n_min 0: OK
key boolean, value integer, n_min 0: OK
key boolean, value real, n_min 0: OK
key boolean, value boolean, n_min 0: OK
key boolean, value string, n_min 0: OK
key boolean, value uuid, n_min 0: OK
key string, value void, n_min 0: OK
key string, value integer, n_min 0: OK
key string, value real, n_min 0: OK
key string, value boolean, n_min 0: OK
key string, value string, n_min 0: OK
key string, value uuid, n_min 0: OK
key uuid, value void, n_min 0: OK
key uuid, value integer, n_min 0: OK
key uuid, value real, n_min 0: OK
key uuid, value boolean, n_min 0: OK
key uuid, value string, n_min 0: OK
key uuid, value uuid, n_min 0: OK
key integer, value void, n_min 1: OK
key integer, value integer, n_min 1: OK
key integer, value real, n_min 1: OK
key integer, value boolean, n_min 1: OK
key integer, value string, n_min 1: OK
key integer, value uuid, n_min 1: OK
key real, value void, n_min 1: OK
key real, value integer, n_min 1: OK
key real, value real, n_min 1: OK
key real, value boolean, n_min 1: OK
key real, value string, n_min 1: OK
key real, value uuid, n_min 1: OK
key boolean, value void, n_min 1: OK
key boolean, value integer, n_min 1: OK
key boolean, value real, n_min 1: OK
key boolean, value boolean, n_min 1: OK
key boolean, value string, n_min 1: OK
key boolean, value uuid, n_min 1: OK
key string, value void, n_min 1: OK
key string, value integer, n_min 1: OK
key string, value real, n_min 1: OK
key string, value boolean, n_min 1: OK
key string, value string, n_min 1: OK
key string, value uuid, n_min 1: OK
key uuid, value void, n_min 1: OK
key uuid, value integer, n_min 1: OK
key uuid, value real, n_min 1: OK
key uuid, value boolean, n_min 1: OK
key uuid, value string, n_min 1: OK
key uuid, value uuid, n_min 1: OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:11"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1409
#AT_START_1410
at_fn_group_banner 1410 'ovsdb-data.at:76' \
  "integer atom from JSON - C" "                     " 67
at_xfail=no
(
  $as_echo "1410. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:76: test-ovsdb parse-atoms '[\"integer\"]' \\
    '[0]' \\
    '[-1]' \\
    '[1e3]' \\
    '[9223372036854775807]' \\
    '[-9223372036854775808]' "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:76"
( $at_check_trace; test-ovsdb parse-atoms '["integer"]' \
    '[0]' \
    '[-1]' \
    '[1e3]' \
    '[9223372036854775807]' \
    '[-9223372036854775808]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
-1
1000
9223372036854775807
-9223372036854775808
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:76"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1410
#AT_START_1411
at_fn_group_banner 1411 'ovsdb-data.at:76' \
  "integer atom from JSON - Python2" "               " 67
at_xfail=no
(
  $as_echo "1411. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:76" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:76"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:76: \$PYTHON \$srcdir/test-ovsdb.py parse-atoms '[\"integer\"]' \\
    '[0]' \\
    '[-1]' \\
    '[1e3]' \\
    '[9223372036854775807]' \\
    '[-9223372036854775808]' "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:76"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-atoms '["integer"]' \
    '[0]' \
    '[-1]' \
    '[1e3]' \
    '[9223372036854775807]' \
    '[-9223372036854775808]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
-1
1000
9223372036854775807
-9223372036854775808
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:76"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1411
#AT_START_1412
at_fn_group_banner 1412 'ovsdb-data.at:76' \
  "integer atom from JSON - Python3" "               " 67
at_xfail=no
(
  $as_echo "1412. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:76" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:76"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:76: \$PYTHON3 \$srcdir/test-ovsdb.py parse-atoms '[\"integer\"]' \\
    '[0]' \\
    '[-1]' \\
    '[1e3]' \\
    '[9223372036854775807]' \\
    '[-9223372036854775808]' "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:76"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-atoms '["integer"]' \
    '[0]' \
    '[-1]' \
    '[1e3]' \
    '[9223372036854775807]' \
    '[-9223372036854775808]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
-1
1000
9223372036854775807
-9223372036854775808
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:76"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1412
#AT_START_1413
at_fn_group_banner 1413 'ovsdb-data.at:89' \
  "integer atom from string" "                       " 67
at_xfail=no
(
  $as_echo "1413. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:89: test-ovsdb parse-atom-strings -- '[\"integer\"]' \\
    '0' \\
    '-1' \\
    '+1000' \\
    '9223372036854775807' \\
    '-9223372036854775808' \\
    '0-1000' \\
    '-1000-+1000' \\
    '-1000--10' \\
    '+10-+1000' \\
    '1-4096' \\
    '-4096--1' \\
    '-2000-2095'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:89"
( $at_check_trace; test-ovsdb parse-atom-strings -- '["integer"]' \
    '0' \
    '-1' \
    '+1000' \
    '9223372036854775807' \
    '-9223372036854775808' \
    '0-1000' \
    '-1000-+1000' \
    '-1000--10' \
    '+10-+1000' \
    '1-4096' \
    '-4096--1' \
    '-2000-2095'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
-1
1000
9223372036854775807
-9223372036854775808
0-1000
-1000-1000
-1000--10
10-1000
1-4096
-4096--1
-2000-2095
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:89"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1413
#AT_START_1414
at_fn_group_banner 1414 'ovsdb-data.at:116' \
  "real atom from JSON - C" "                        " 67
at_xfail=no
(
  $as_echo "1414. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:116: test-ovsdb parse-atoms '[\"real\"]' \\
    '[0]' \\
    '[0.0]' \\
    '[-0.0]' \\
    '[-1.25]' \\
    '[1e3]' \\
    '[1e37]' \\
    '[0.00390625]' "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:116"
( $at_check_trace; test-ovsdb parse-atoms '["real"]' \
    '[0]' \
    '[0.0]' \
    '[-0.0]' \
    '[-1.25]' \
    '[1e3]' \
    '[1e37]' \
    '[0.00390625]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
0
0
-1.25
1000
1e+37
0.00390625
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:116"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1414
#AT_START_1415
at_fn_group_banner 1415 'ovsdb-data.at:116' \
  "real atom from JSON - Python2" "                  " 67
at_xfail=no
(
  $as_echo "1415. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:116" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:116"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:116: \$PYTHON \$srcdir/test-ovsdb.py parse-atoms '[\"real\"]' \\
    '[0]' \\
    '[0.0]' \\
    '[-0.0]' \\
    '[-1.25]' \\
    '[1e3]' \\
    '[1e37]' \\
    '[0.00390625]' "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:116"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-atoms '["real"]' \
    '[0]' \
    '[0.0]' \
    '[-0.0]' \
    '[-1.25]' \
    '[1e3]' \
    '[1e37]' \
    '[0.00390625]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
0
0
-1.25
1000
1e+37
0.00390625
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:116"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1415
#AT_START_1416
at_fn_group_banner 1416 'ovsdb-data.at:116' \
  "real atom from JSON - Python3" "                  " 67
at_xfail=no
(
  $as_echo "1416. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:116" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:116"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:116: \$PYTHON3 \$srcdir/test-ovsdb.py parse-atoms '[\"real\"]' \\
    '[0]' \\
    '[0.0]' \\
    '[-0.0]' \\
    '[-1.25]' \\
    '[1e3]' \\
    '[1e37]' \\
    '[0.00390625]' "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:116"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-atoms '["real"]' \
    '[0]' \
    '[0.0]' \
    '[-0.0]' \
    '[-1.25]' \
    '[1e3]' \
    '[1e37]' \
    '[0.00390625]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
0
0
-1.25
1000
1e+37
0.00390625
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:116"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1416
#AT_START_1417
at_fn_group_banner 1417 'ovsdb-data.at:133' \
  "real atom from string" "                          " 67
at_xfail=no
(
  $as_echo "1417. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:133: test-ovsdb parse-atom-strings -- '[\"real\"]' \\
    '0' \\
    '0.0' \\
    '-0.0' \\
    '-1.25' \\
    '1e3' \\
    '1e37' \\
    '0.00390625' "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:133"
( $at_check_trace; test-ovsdb parse-atom-strings -- '["real"]' \
    '0' \
    '0.0' \
    '-0.0' \
    '-1.25' \
    '1e3' \
    '1e37' \
    '0.00390625'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
0
0
-1.25
1000
1e+37
0.00390625
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:133"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1417
#AT_START_1418
at_fn_group_banner 1418 'ovsdb-data.at:150' \
  "boolean atom from JSON - C" "                     " 67
at_xfail=no
(
  $as_echo "1418. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:150: test-ovsdb parse-atoms '[\"boolean\"]' '[true]' '[false]' "
at_fn_check_prepare_trace "ovsdb-data.at:150"
( $at_check_trace; test-ovsdb parse-atoms '["boolean"]' '[true]' '[false]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "true
false
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:150"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1418
#AT_START_1419
at_fn_group_banner 1419 'ovsdb-data.at:150' \
  "boolean atom from JSON - Python2" "               " 67
at_xfail=no
(
  $as_echo "1419. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:150" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:150"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:150: \$PYTHON \$srcdir/test-ovsdb.py parse-atoms '[\"boolean\"]' '[true]' '[false]' "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-atoms '[\"boolean\"]' '[true]' '[false]' " "ovsdb-data.at:150"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-atoms '["boolean"]' '[true]' '[false]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "true
false
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:150"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1419
#AT_START_1420
at_fn_group_banner 1420 'ovsdb-data.at:150' \
  "boolean atom from JSON - Python3" "               " 67
at_xfail=no
(
  $as_echo "1420. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:150" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:150"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:150: \$PYTHON3 \$srcdir/test-ovsdb.py parse-atoms '[\"boolean\"]' '[true]' '[false]' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-atoms '[\"boolean\"]' '[true]' '[false]' " "ovsdb-data.at:150"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-atoms '["boolean"]' '[true]' '[false]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "true
false
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:150"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1420
#AT_START_1421
at_fn_group_banner 1421 'ovsdb-data.at:155' \
  "boolean atom from string" "                       " 67
at_xfail=no
(
  $as_echo "1421. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:155: test-ovsdb parse-atom-strings '[\"boolean\"]' 'true' 'false' "
at_fn_check_prepare_trace "ovsdb-data.at:155"
( $at_check_trace; test-ovsdb parse-atom-strings '["boolean"]' 'true' 'false'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "true
false
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:155"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1421
#AT_START_1422
at_fn_group_banner 1422 'ovsdb-data.at:160' \
  "string atom from JSON - C" "                      " 67
at_xfail=no
(
  $as_echo "1422. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:160: test-ovsdb parse-atoms '[\"string\"]' '[\"\"]' '[\"true\"]' '[\"\\\"\\\\\\/\\b\\f\\n\\r\\t\"]'"
at_fn_check_prepare_trace "ovsdb-data.at:160"
( $at_check_trace; test-ovsdb parse-atoms '["string"]' '[""]' '["true"]' '["\"\\\/\b\f\n\r\t"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"\"
\"true\"
\"\\\"\\\\/\\b\\f\\n\\r\\t\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:160"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1422
#AT_START_1423
at_fn_group_banner 1423 'ovsdb-data.at:160' \
  "string atom from JSON - Python2" "                " 67
at_xfail=no
(
  $as_echo "1423. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:160" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:160"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:160: \$PYTHON \$srcdir/test-ovsdb.py parse-atoms '[\"string\"]' '[\"\"]' '[\"true\"]' '[\"\\\"\\\\\\/\\b\\f\\n\\r\\t\"]'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-atoms '[\"string\"]' '[\"\"]' '[\"true\"]' '[\"\\\"\\\\\\/\\b\\f\\n\\r\\t\"]'" "ovsdb-data.at:160"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-atoms '["string"]' '[""]' '["true"]' '["\"\\\/\b\f\n\r\t"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"\"
\"true\"
\"\\\"\\\\/\\b\\f\\n\\r\\t\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:160"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1423
#AT_START_1424
at_fn_group_banner 1424 'ovsdb-data.at:160' \
  "string atom from JSON - Python3" "                " 67
at_xfail=no
(
  $as_echo "1424. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:160" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:160"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:160: \$PYTHON3 \$srcdir/test-ovsdb.py parse-atoms '[\"string\"]' '[\"\"]' '[\"true\"]' '[\"\\\"\\\\\\/\\b\\f\\n\\r\\t\"]'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-atoms '[\"string\"]' '[\"\"]' '[\"true\"]' '[\"\\\"\\\\\\/\\b\\f\\n\\r\\t\"]'" "ovsdb-data.at:160"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-atoms '["string"]' '[""]' '["true"]' '["\"\\\/\b\f\n\r\t"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"\"
\"true\"
\"\\\"\\\\/\\b\\f\\n\\r\\t\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:160"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1424
#AT_START_1425
at_fn_group_banner 1425 'ovsdb-data.at:166' \
  "string atom from string" "                        " 67
at_xfail=no
(
  $as_echo "1425. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:166: test-ovsdb parse-atom-strings '[\"string\"]' \\
    'unquoted' \\
    '\"quoted-string\"' \\
    '\"needs quotes\"' \\
    '\"\"' \\
    '\"true\"' \\
    '\"\\\"\\\\\\/\\b\\f\\n\\r\\t\"'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:166"
( $at_check_trace; test-ovsdb parse-atom-strings '["string"]' \
    'unquoted' \
    '"quoted-string"' \
    '"needs quotes"' \
    '""' \
    '"true"' \
    '"\"\\\/\b\f\n\r\t"'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "unquoted
quoted-string
\"needs quotes\"
\"\"
\"true\"
\"\\\"\\\\/\\b\\f\\n\\r\\t\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:166"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1425
#AT_START_1426
at_fn_group_banner 1426 'ovsdb-data.at:181' \
  "uuid atom from JSON - C" "                        " 67
at_xfail=no
(
  $as_echo "1426. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:181: test-ovsdb parse-atoms '[\"uuid\"]' '[\"uuid\", \"550e8400-e29b-41d4-a716-446655440000\"]'"
at_fn_check_prepare_trace "ovsdb-data.at:181"
( $at_check_trace; test-ovsdb parse-atoms '["uuid"]' '["uuid", "550e8400-e29b-41d4-a716-446655440000"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"uuid\",\"550e8400-e29b-41d4-a716-446655440000\"]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:181"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1426
#AT_START_1427
at_fn_group_banner 1427 'ovsdb-data.at:181' \
  "uuid atom from JSON - Python2" "                  " 67
at_xfail=no
(
  $as_echo "1427. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:181" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:181"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:181: \$PYTHON \$srcdir/test-ovsdb.py parse-atoms '[\"uuid\"]' '[\"uuid\", \"550e8400-e29b-41d4-a716-446655440000\"]'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-atoms '[\"uuid\"]' '[\"uuid\", \"550e8400-e29b-41d4-a716-446655440000\"]'" "ovsdb-data.at:181"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-atoms '["uuid"]' '["uuid", "550e8400-e29b-41d4-a716-446655440000"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"uuid\",\"550e8400-e29b-41d4-a716-446655440000\"]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:181"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1427
#AT_START_1428
at_fn_group_banner 1428 'ovsdb-data.at:181' \
  "uuid atom from JSON - Python3" "                  " 67
at_xfail=no
(
  $as_echo "1428. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:181" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:181"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:181: \$PYTHON3 \$srcdir/test-ovsdb.py parse-atoms '[\"uuid\"]' '[\"uuid\", \"550e8400-e29b-41d4-a716-446655440000\"]'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-atoms '[\"uuid\"]' '[\"uuid\", \"550e8400-e29b-41d4-a716-446655440000\"]'" "ovsdb-data.at:181"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-atoms '["uuid"]' '["uuid", "550e8400-e29b-41d4-a716-446655440000"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"uuid\",\"550e8400-e29b-41d4-a716-446655440000\"]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:181"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1428
#AT_START_1429
at_fn_group_banner 1429 'ovsdb-data.at:185' \
  "uuid atom from string" "                          " 67
at_xfail=no
(
  $as_echo "1429. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:185: test-ovsdb parse-atom-strings '[\"uuid\"]' '550e8400-e29b-41d4-a716-446655440000'"
at_fn_check_prepare_trace "ovsdb-data.at:185"
( $at_check_trace; test-ovsdb parse-atom-strings '["uuid"]' '550e8400-e29b-41d4-a716-446655440000'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "550e8400-e29b-41d4-a716-446655440000
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:185"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1429
#AT_START_1430
at_fn_group_banner 1430 'ovsdb-data.at:189' \
  "integer atom sorting - C" "                       " 67
at_xfail=no
(
  $as_echo "1430. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:189: test-ovsdb sort-atoms '[\"integer\"]' '[55,0,-1,2,1]'"
at_fn_check_prepare_trace "ovsdb-data.at:189"
( $at_check_trace; test-ovsdb sort-atoms '["integer"]' '[55,0,-1,2,1]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[-1,0,1,2,55]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:189"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1430
#AT_START_1431
at_fn_group_banner 1431 'ovsdb-data.at:189' \
  "integer atom sorting - Python2" "                 " 67
at_xfail=no
(
  $as_echo "1431. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:189" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:189"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:189: \$PYTHON \$srcdir/test-ovsdb.py sort-atoms '[\"integer\"]' '[55,0,-1,2,1]'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py sort-atoms '[\"integer\"]' '[55,0,-1,2,1]'" "ovsdb-data.at:189"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py sort-atoms '["integer"]' '[55,0,-1,2,1]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[-1,0,1,2,55]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:189"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1431
#AT_START_1432
at_fn_group_banner 1432 'ovsdb-data.at:189' \
  "integer atom sorting - Python3" "                 " 67
at_xfail=no
(
  $as_echo "1432. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:189" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:189"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:189: \$PYTHON3 \$srcdir/test-ovsdb.py sort-atoms '[\"integer\"]' '[55,0,-1,2,1]'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py sort-atoms '[\"integer\"]' '[55,0,-1,2,1]'" "ovsdb-data.at:189"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py sort-atoms '["integer"]' '[55,0,-1,2,1]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[-1,0,1,2,55]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:189"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1432
#AT_START_1433
at_fn_group_banner 1433 'ovsdb-data.at:193' \
  "real atom sorting - C" "                          " 67
at_xfail=no
(
  $as_echo "1433. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:193: test-ovsdb sort-atoms '[\"real\"]' '[1.25,1.23,0.0,-0.0,-1e99]'"
at_fn_check_prepare_trace "ovsdb-data.at:193"
( $at_check_trace; test-ovsdb sort-atoms '["real"]' '[1.25,1.23,0.0,-0.0,-1e99]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[-1e+99,0,0,1.23,1.25]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:193"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1433
#AT_START_1434
at_fn_group_banner 1434 'ovsdb-data.at:193' \
  "real atom sorting - Python2" "                    " 67
at_xfail=no
(
  $as_echo "1434. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:193" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:193"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:193: \$PYTHON \$srcdir/test-ovsdb.py sort-atoms '[\"real\"]' '[1.25,1.23,0.0,-0.0,-1e99]'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py sort-atoms '[\"real\"]' '[1.25,1.23,0.0,-0.0,-1e99]'" "ovsdb-data.at:193"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py sort-atoms '["real"]' '[1.25,1.23,0.0,-0.0,-1e99]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[-1e+99,0,0,1.23,1.25]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:193"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1434
#AT_START_1435
at_fn_group_banner 1435 'ovsdb-data.at:193' \
  "real atom sorting - Python3" "                    " 67
at_xfail=no
(
  $as_echo "1435. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:193" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:193"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:193: \$PYTHON3 \$srcdir/test-ovsdb.py sort-atoms '[\"real\"]' '[1.25,1.23,0.0,-0.0,-1e99]'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py sort-atoms '[\"real\"]' '[1.25,1.23,0.0,-0.0,-1e99]'" "ovsdb-data.at:193"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py sort-atoms '["real"]' '[1.25,1.23,0.0,-0.0,-1e99]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[-1e+99,0,0,1.23,1.25]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:193"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1435
#AT_START_1436
at_fn_group_banner 1436 'ovsdb-data.at:197' \
  "boolean atom sorting - C" "                       " 67
at_xfail=no
(
  $as_echo "1436. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:197: test-ovsdb sort-atoms '[\"boolean\"]' '[true,false,true,false,false]'"
at_fn_check_prepare_trace "ovsdb-data.at:197"
( $at_check_trace; test-ovsdb sort-atoms '["boolean"]' '[true,false,true,false,false]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[false,false,false,true,true]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:197"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1436
#AT_START_1437
at_fn_group_banner 1437 'ovsdb-data.at:197' \
  "boolean atom sorting - Python2" "                 " 67
at_xfail=no
(
  $as_echo "1437. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:197" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:197"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:197: \$PYTHON \$srcdir/test-ovsdb.py sort-atoms '[\"boolean\"]' '[true,false,true,false,false]'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py sort-atoms '[\"boolean\"]' '[true,false,true,false,false]'" "ovsdb-data.at:197"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py sort-atoms '["boolean"]' '[true,false,true,false,false]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[false,false,false,true,true]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:197"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1437
#AT_START_1438
at_fn_group_banner 1438 'ovsdb-data.at:197' \
  "boolean atom sorting - Python3" "                 " 67
at_xfail=no
(
  $as_echo "1438. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:197" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:197"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:197: \$PYTHON3 \$srcdir/test-ovsdb.py sort-atoms '[\"boolean\"]' '[true,false,true,false,false]'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py sort-atoms '[\"boolean\"]' '[true,false,true,false,false]'" "ovsdb-data.at:197"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py sort-atoms '["boolean"]' '[true,false,true,false,false]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[false,false,false,true,true]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:197"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1438
#AT_START_1439
at_fn_group_banner 1439 'ovsdb-data.at:201' \
  "string atom sorting - C" "                        " 67
at_xfail=no
(
  $as_echo "1439. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:201: test-ovsdb sort-atoms '[\"string\"]' '[\"abd\",\"abc\",\"\\b\",\"xxx\"]'"
at_fn_check_prepare_trace "ovsdb-data.at:201"
( $at_check_trace; test-ovsdb sort-atoms '["string"]' '["abd","abc","\b","xxx"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"\\b\",\"abc\",\"abd\",\"xxx\"]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:201"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1439
#AT_START_1440
at_fn_group_banner 1440 'ovsdb-data.at:201' \
  "string atom sorting - Python2" "                  " 67
at_xfail=no
(
  $as_echo "1440. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:201" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:201"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:201: \$PYTHON \$srcdir/test-ovsdb.py sort-atoms '[\"string\"]' '[\"abd\",\"abc\",\"\\b\",\"xxx\"]'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py sort-atoms '[\"string\"]' '[\"abd\",\"abc\",\"\\b\",\"xxx\"]'" "ovsdb-data.at:201"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py sort-atoms '["string"]' '["abd","abc","\b","xxx"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"\\b\",\"abc\",\"abd\",\"xxx\"]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:201"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1440
#AT_START_1441
at_fn_group_banner 1441 'ovsdb-data.at:201' \
  "string atom sorting - Python3" "                  " 67
at_xfail=no
(
  $as_echo "1441. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:201" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:201"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:201: \$PYTHON3 \$srcdir/test-ovsdb.py sort-atoms '[\"string\"]' '[\"abd\",\"abc\",\"\\b\",\"xxx\"]'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py sort-atoms '[\"string\"]' '[\"abd\",\"abc\",\"\\b\",\"xxx\"]'" "ovsdb-data.at:201"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py sort-atoms '["string"]' '["abd","abc","\b","xxx"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"\\b\",\"abc\",\"abd\",\"xxx\"]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:201"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1441
#AT_START_1442
at_fn_group_banner 1442 'ovsdb-data.at:205' \
  "uuid atom sorting - C" "                          " 67
at_xfail=no
(
  $as_echo "1442. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:205: test-ovsdb sort-atoms '[\"uuid\"]' '[
    [\"uuid\", \"00000000-0000-0000-0000-000000000001\"],
    [\"uuid\", \"00000000-1000-0000-0000-000000000000\"],
    [\"uuid\", \"00000000-0000-1000-0000-000000000000\"],
    [\"uuid\", \"00010000-0000-0000-0000-000000000000\"],
    [\"uuid\", \"00000000-0000-0000-0000-000000000100\"],
    [\"uuid\", \"00000000-0000-0000-0000-000100000000\"],
    [\"uuid\", \"00000000-0000-0010-0000-000000000000\"],
    [\"uuid\", \"00000100-0000-0000-0000-000000000000\"],
    [\"uuid\", \"00000000-0000-0001-0000-000000000000\"],
    [\"uuid\", \"00000000-0000-0000-0000-000001000000\"],
    [\"uuid\", \"01000000-0000-0000-0000-000000000000\"],
    [\"uuid\", \"00000000-0000-0000-0000-000000001000\"],
    [\"uuid\", \"00000000-0000-0000-0000-000010000000\"],
    [\"uuid\", \"00000000-0000-0000-0000-010000000000\"],
    [\"uuid\", \"00000000-0000-0100-0000-000000000000\"],
    [\"uuid\", \"10000000-0000-0000-0000-000000000000\"],
    [\"uuid\", \"00000000-0000-0000-0000-000000000010\"],
    [\"uuid\", \"00000000-0100-0000-0000-000000000000\"],
    [\"uuid\", \"00000000-0000-0000-0100-000000000000\"],
    [\"uuid\", \"00000000-0000-0000-0001-000000000000\"],
    [\"uuid\", \"00000010-0000-0000-0000-000000000000\"],
    [\"uuid\", \"00000000-0000-0000-0010-000000000000\"],
    [\"uuid\", \"00000000-0000-0000-0000-000000010000\"],
    [\"uuid\", \"00000000-0000-0000-1000-000000000000\"],
    [\"uuid\", \"00000000-0000-0000-0000-100000000000\"],
    [\"uuid\", \"00000000-0000-0000-0000-001000000000\"],
    [\"uuid\", \"00000000-0000-0000-0000-000000100000\"],
    [\"uuid\", \"00000000-0000-0000-0000-000000000000\"],
    [\"uuid\", \"00000000-0010-0000-0000-000000000000\"],
    [\"uuid\", \"00100000-0000-0000-0000-000000000000\"],
    [\"uuid\", \"00000000-0001-0000-0000-000000000000\"],
    [\"uuid\", \"00000001-0000-0000-0000-000000000000\"],
    [\"uuid\", \"00001000-0000-0000-0000-000000000000\"]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:205"
( $at_check_trace; test-ovsdb sort-atoms '["uuid"]' '[
    ["uuid", "00000000-0000-0000-0000-000000000001"],
    ["uuid", "00000000-1000-0000-0000-000000000000"],
    ["uuid", "00000000-0000-1000-0000-000000000000"],
    ["uuid", "00010000-0000-0000-0000-000000000000"],
    ["uuid", "00000000-0000-0000-0000-000000000100"],
    ["uuid", "00000000-0000-0000-0000-000100000000"],
    ["uuid", "00000000-0000-0010-0000-000000000000"],
    ["uuid", "00000100-0000-0000-0000-000000000000"],
    ["uuid", "00000000-0000-0001-0000-000000000000"],
    ["uuid", "00000000-0000-0000-0000-000001000000"],
    ["uuid", "01000000-0000-0000-0000-000000000000"],
    ["uuid", "00000000-0000-0000-0000-000000001000"],
    ["uuid", "00000000-0000-0000-0000-000010000000"],
    ["uuid", "00000000-0000-0000-0000-010000000000"],
    ["uuid", "00000000-0000-0100-0000-000000000000"],
    ["uuid", "10000000-0000-0000-0000-000000000000"],
    ["uuid", "00000000-0000-0000-0000-000000000010"],
    ["uuid", "00000000-0100-0000-0000-000000000000"],
    ["uuid", "00000000-0000-0000-0100-000000000000"],
    ["uuid", "00000000-0000-0000-0001-000000000000"],
    ["uuid", "00000010-0000-0000-0000-000000000000"],
    ["uuid", "00000000-0000-0000-0010-000000000000"],
    ["uuid", "00000000-0000-0000-0000-000000010000"],
    ["uuid", "00000000-0000-0000-1000-000000000000"],
    ["uuid", "00000000-0000-0000-0000-100000000000"],
    ["uuid", "00000000-0000-0000-0000-001000000000"],
    ["uuid", "00000000-0000-0000-0000-000000100000"],
    ["uuid", "00000000-0000-0000-0000-000000000000"],
    ["uuid", "00000000-0010-0000-0000-000000000000"],
    ["uuid", "00100000-0000-0000-0000-000000000000"],
    ["uuid", "00000000-0001-0000-0000-000000000000"],
    ["uuid", "00000001-0000-0000-0000-000000000000"],
    ["uuid", "00001000-0000-0000-0000-000000000000"]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],[\"uuid\",\"00000000-0000-0000-0000-000000000001\"],[\"uuid\",\"00000000-0000-0000-0000-000000000010\"],[\"uuid\",\"00000000-0000-0000-0000-000000000100\"],[\"uuid\",\"00000000-0000-0000-0000-000000001000\"],[\"uuid\",\"00000000-0000-0000-0000-000000010000\"],[\"uuid\",\"00000000-0000-0000-0000-000000100000\"],[\"uuid\",\"00000000-0000-0000-0000-000001000000\"],[\"uuid\",\"00000000-0000-0000-0000-000010000000\"],[\"uuid\",\"00000000-0000-0000-0000-000100000000\"],[\"uuid\",\"00000000-0000-0000-0000-001000000000\"],[\"uuid\",\"00000000-0000-0000-0000-010000000000\"],[\"uuid\",\"00000000-0000-0000-0000-100000000000\"],[\"uuid\",\"00000000-0000-0000-0001-000000000000\"],[\"uuid\",\"00000000-0000-0000-0010-000000000000\"],[\"uuid\",\"00000000-0000-0000-0100-000000000000\"],[\"uuid\",\"00000000-0000-0000-1000-000000000000\"],[\"uuid\",\"00000000-0000-0001-0000-000000000000\"],[\"uuid\",\"00000000-0000-0010-0000-000000000000\"],[\"uuid\",\"00000000-0000-0100-0000-000000000000\"],[\"uuid\",\"00000000-0000-1000-0000-000000000000\"],[\"uuid\",\"00000000-0001-0000-0000-000000000000\"],[\"uuid\",\"00000000-0010-0000-0000-000000000000\"],[\"uuid\",\"00000000-0100-0000-0000-000000000000\"],[\"uuid\",\"00000000-1000-0000-0000-000000000000\"],[\"uuid\",\"00000001-0000-0000-0000-000000000000\"],[\"uuid\",\"00000010-0000-0000-0000-000000000000\"],[\"uuid\",\"00000100-0000-0000-0000-000000000000\"],[\"uuid\",\"00001000-0000-0000-0000-000000000000\"],[\"uuid\",\"00010000-0000-0000-0000-000000000000\"],[\"uuid\",\"00100000-0000-0000-0000-000000000000\"],[\"uuid\",\"01000000-0000-0000-0000-000000000000\"],[\"uuid\",\"10000000-0000-0000-0000-000000000000\"]]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:205"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1442
#AT_START_1443
at_fn_group_banner 1443 'ovsdb-data.at:205' \
  "uuid atom sorting - Python2" "                    " 67
at_xfail=no
(
  $as_echo "1443. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:205" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:205"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:205: \$PYTHON \$srcdir/test-ovsdb.py sort-atoms '[\"uuid\"]' '[
    [\"uuid\", \"00000000-0000-0000-0000-000000000001\"],
    [\"uuid\", \"00000000-1000-0000-0000-000000000000\"],
    [\"uuid\", \"00000000-0000-1000-0000-000000000000\"],
    [\"uuid\", \"00010000-0000-0000-0000-000000000000\"],
    [\"uuid\", \"00000000-0000-0000-0000-000000000100\"],
    [\"uuid\", \"00000000-0000-0000-0000-000100000000\"],
    [\"uuid\", \"00000000-0000-0010-0000-000000000000\"],
    [\"uuid\", \"00000100-0000-0000-0000-000000000000\"],
    [\"uuid\", \"00000000-0000-0001-0000-000000000000\"],
    [\"uuid\", \"00000000-0000-0000-0000-000001000000\"],
    [\"uuid\", \"01000000-0000-0000-0000-000000000000\"],
    [\"uuid\", \"00000000-0000-0000-0000-000000001000\"],
    [\"uuid\", \"00000000-0000-0000-0000-000010000000\"],
    [\"uuid\", \"00000000-0000-0000-0000-010000000000\"],
    [\"uuid\", \"00000000-0000-0100-0000-000000000000\"],
    [\"uuid\", \"10000000-0000-0000-0000-000000000000\"],
    [\"uuid\", \"00000000-0000-0000-0000-000000000010\"],
    [\"uuid\", \"00000000-0100-0000-0000-000000000000\"],
    [\"uuid\", \"00000000-0000-0000-0100-000000000000\"],
    [\"uuid\", \"00000000-0000-0000-0001-000000000000\"],
    [\"uuid\", \"00000010-0000-0000-0000-000000000000\"],
    [\"uuid\", \"00000000-0000-0000-0010-000000000000\"],
    [\"uuid\", \"00000000-0000-0000-0000-000000010000\"],
    [\"uuid\", \"00000000-0000-0000-1000-000000000000\"],
    [\"uuid\", \"00000000-0000-0000-0000-100000000000\"],
    [\"uuid\", \"00000000-0000-0000-0000-001000000000\"],
    [\"uuid\", \"00000000-0000-0000-0000-000000100000\"],
    [\"uuid\", \"00000000-0000-0000-0000-000000000000\"],
    [\"uuid\", \"00000000-0010-0000-0000-000000000000\"],
    [\"uuid\", \"00100000-0000-0000-0000-000000000000\"],
    [\"uuid\", \"00000000-0001-0000-0000-000000000000\"],
    [\"uuid\", \"00000001-0000-0000-0000-000000000000\"],
    [\"uuid\", \"00001000-0000-0000-0000-000000000000\"]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:205"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py sort-atoms '["uuid"]' '[
    ["uuid", "00000000-0000-0000-0000-000000000001"],
    ["uuid", "00000000-1000-0000-0000-000000000000"],
    ["uuid", "00000000-0000-1000-0000-000000000000"],
    ["uuid", "00010000-0000-0000-0000-000000000000"],
    ["uuid", "00000000-0000-0000-0000-000000000100"],
    ["uuid", "00000000-0000-0000-0000-000100000000"],
    ["uuid", "00000000-0000-0010-0000-000000000000"],
    ["uuid", "00000100-0000-0000-0000-000000000000"],
    ["uuid", "00000000-0000-0001-0000-000000000000"],
    ["uuid", "00000000-0000-0000-0000-000001000000"],
    ["uuid", "01000000-0000-0000-0000-000000000000"],
    ["uuid", "00000000-0000-0000-0000-000000001000"],
    ["uuid", "00000000-0000-0000-0000-000010000000"],
    ["uuid", "00000000-0000-0000-0000-010000000000"],
    ["uuid", "00000000-0000-0100-0000-000000000000"],
    ["uuid", "10000000-0000-0000-0000-000000000000"],
    ["uuid", "00000000-0000-0000-0000-000000000010"],
    ["uuid", "00000000-0100-0000-0000-000000000000"],
    ["uuid", "00000000-0000-0000-0100-000000000000"],
    ["uuid", "00000000-0000-0000-0001-000000000000"],
    ["uuid", "00000010-0000-0000-0000-000000000000"],
    ["uuid", "00000000-0000-0000-0010-000000000000"],
    ["uuid", "00000000-0000-0000-0000-000000010000"],
    ["uuid", "00000000-0000-0000-1000-000000000000"],
    ["uuid", "00000000-0000-0000-0000-100000000000"],
    ["uuid", "00000000-0000-0000-0000-001000000000"],
    ["uuid", "00000000-0000-0000-0000-000000100000"],
    ["uuid", "00000000-0000-0000-0000-000000000000"],
    ["uuid", "00000000-0010-0000-0000-000000000000"],
    ["uuid", "00100000-0000-0000-0000-000000000000"],
    ["uuid", "00000000-0001-0000-0000-000000000000"],
    ["uuid", "00000001-0000-0000-0000-000000000000"],
    ["uuid", "00001000-0000-0000-0000-000000000000"]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],[\"uuid\",\"00000000-0000-0000-0000-000000000001\"],[\"uuid\",\"00000000-0000-0000-0000-000000000010\"],[\"uuid\",\"00000000-0000-0000-0000-000000000100\"],[\"uuid\",\"00000000-0000-0000-0000-000000001000\"],[\"uuid\",\"00000000-0000-0000-0000-000000010000\"],[\"uuid\",\"00000000-0000-0000-0000-000000100000\"],[\"uuid\",\"00000000-0000-0000-0000-000001000000\"],[\"uuid\",\"00000000-0000-0000-0000-000010000000\"],[\"uuid\",\"00000000-0000-0000-0000-000100000000\"],[\"uuid\",\"00000000-0000-0000-0000-001000000000\"],[\"uuid\",\"00000000-0000-0000-0000-010000000000\"],[\"uuid\",\"00000000-0000-0000-0000-100000000000\"],[\"uuid\",\"00000000-0000-0000-0001-000000000000\"],[\"uuid\",\"00000000-0000-0000-0010-000000000000\"],[\"uuid\",\"00000000-0000-0000-0100-000000000000\"],[\"uuid\",\"00000000-0000-0000-1000-000000000000\"],[\"uuid\",\"00000000-0000-0001-0000-000000000000\"],[\"uuid\",\"00000000-0000-0010-0000-000000000000\"],[\"uuid\",\"00000000-0000-0100-0000-000000000000\"],[\"uuid\",\"00000000-0000-1000-0000-000000000000\"],[\"uuid\",\"00000000-0001-0000-0000-000000000000\"],[\"uuid\",\"00000000-0010-0000-0000-000000000000\"],[\"uuid\",\"00000000-0100-0000-0000-000000000000\"],[\"uuid\",\"00000000-1000-0000-0000-000000000000\"],[\"uuid\",\"00000001-0000-0000-0000-000000000000\"],[\"uuid\",\"00000010-0000-0000-0000-000000000000\"],[\"uuid\",\"00000100-0000-0000-0000-000000000000\"],[\"uuid\",\"00001000-0000-0000-0000-000000000000\"],[\"uuid\",\"00010000-0000-0000-0000-000000000000\"],[\"uuid\",\"00100000-0000-0000-0000-000000000000\"],[\"uuid\",\"01000000-0000-0000-0000-000000000000\"],[\"uuid\",\"10000000-0000-0000-0000-000000000000\"]]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:205"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1443
#AT_START_1444
at_fn_group_banner 1444 'ovsdb-data.at:205' \
  "uuid atom sorting - Python3" "                    " 67
at_xfail=no
(
  $as_echo "1444. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:205" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:205"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:205: \$PYTHON3 \$srcdir/test-ovsdb.py sort-atoms '[\"uuid\"]' '[
    [\"uuid\", \"00000000-0000-0000-0000-000000000001\"],
    [\"uuid\", \"00000000-1000-0000-0000-000000000000\"],
    [\"uuid\", \"00000000-0000-1000-0000-000000000000\"],
    [\"uuid\", \"00010000-0000-0000-0000-000000000000\"],
    [\"uuid\", \"00000000-0000-0000-0000-000000000100\"],
    [\"uuid\", \"00000000-0000-0000-0000-000100000000\"],
    [\"uuid\", \"00000000-0000-0010-0000-000000000000\"],
    [\"uuid\", \"00000100-0000-0000-0000-000000000000\"],
    [\"uuid\", \"00000000-0000-0001-0000-000000000000\"],
    [\"uuid\", \"00000000-0000-0000-0000-000001000000\"],
    [\"uuid\", \"01000000-0000-0000-0000-000000000000\"],
    [\"uuid\", \"00000000-0000-0000-0000-000000001000\"],
    [\"uuid\", \"00000000-0000-0000-0000-000010000000\"],
    [\"uuid\", \"00000000-0000-0000-0000-010000000000\"],
    [\"uuid\", \"00000000-0000-0100-0000-000000000000\"],
    [\"uuid\", \"10000000-0000-0000-0000-000000000000\"],
    [\"uuid\", \"00000000-0000-0000-0000-000000000010\"],
    [\"uuid\", \"00000000-0100-0000-0000-000000000000\"],
    [\"uuid\", \"00000000-0000-0000-0100-000000000000\"],
    [\"uuid\", \"00000000-0000-0000-0001-000000000000\"],
    [\"uuid\", \"00000010-0000-0000-0000-000000000000\"],
    [\"uuid\", \"00000000-0000-0000-0010-000000000000\"],
    [\"uuid\", \"00000000-0000-0000-0000-000000010000\"],
    [\"uuid\", \"00000000-0000-0000-1000-000000000000\"],
    [\"uuid\", \"00000000-0000-0000-0000-100000000000\"],
    [\"uuid\", \"00000000-0000-0000-0000-001000000000\"],
    [\"uuid\", \"00000000-0000-0000-0000-000000100000\"],
    [\"uuid\", \"00000000-0000-0000-0000-000000000000\"],
    [\"uuid\", \"00000000-0010-0000-0000-000000000000\"],
    [\"uuid\", \"00100000-0000-0000-0000-000000000000\"],
    [\"uuid\", \"00000000-0001-0000-0000-000000000000\"],
    [\"uuid\", \"00000001-0000-0000-0000-000000000000\"],
    [\"uuid\", \"00001000-0000-0000-0000-000000000000\"]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:205"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py sort-atoms '["uuid"]' '[
    ["uuid", "00000000-0000-0000-0000-000000000001"],
    ["uuid", "00000000-1000-0000-0000-000000000000"],
    ["uuid", "00000000-0000-1000-0000-000000000000"],
    ["uuid", "00010000-0000-0000-0000-000000000000"],
    ["uuid", "00000000-0000-0000-0000-000000000100"],
    ["uuid", "00000000-0000-0000-0000-000100000000"],
    ["uuid", "00000000-0000-0010-0000-000000000000"],
    ["uuid", "00000100-0000-0000-0000-000000000000"],
    ["uuid", "00000000-0000-0001-0000-000000000000"],
    ["uuid", "00000000-0000-0000-0000-000001000000"],
    ["uuid", "01000000-0000-0000-0000-000000000000"],
    ["uuid", "00000000-0000-0000-0000-000000001000"],
    ["uuid", "00000000-0000-0000-0000-000010000000"],
    ["uuid", "00000000-0000-0000-0000-010000000000"],
    ["uuid", "00000000-0000-0100-0000-000000000000"],
    ["uuid", "10000000-0000-0000-0000-000000000000"],
    ["uuid", "00000000-0000-0000-0000-000000000010"],
    ["uuid", "00000000-0100-0000-0000-000000000000"],
    ["uuid", "00000000-0000-0000-0100-000000000000"],
    ["uuid", "00000000-0000-0000-0001-000000000000"],
    ["uuid", "00000010-0000-0000-0000-000000000000"],
    ["uuid", "00000000-0000-0000-0010-000000000000"],
    ["uuid", "00000000-0000-0000-0000-000000010000"],
    ["uuid", "00000000-0000-0000-1000-000000000000"],
    ["uuid", "00000000-0000-0000-0000-100000000000"],
    ["uuid", "00000000-0000-0000-0000-001000000000"],
    ["uuid", "00000000-0000-0000-0000-000000100000"],
    ["uuid", "00000000-0000-0000-0000-000000000000"],
    ["uuid", "00000000-0010-0000-0000-000000000000"],
    ["uuid", "00100000-0000-0000-0000-000000000000"],
    ["uuid", "00000000-0001-0000-0000-000000000000"],
    ["uuid", "00000001-0000-0000-0000-000000000000"],
    ["uuid", "00001000-0000-0000-0000-000000000000"]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],[\"uuid\",\"00000000-0000-0000-0000-000000000001\"],[\"uuid\",\"00000000-0000-0000-0000-000000000010\"],[\"uuid\",\"00000000-0000-0000-0000-000000000100\"],[\"uuid\",\"00000000-0000-0000-0000-000000001000\"],[\"uuid\",\"00000000-0000-0000-0000-000000010000\"],[\"uuid\",\"00000000-0000-0000-0000-000000100000\"],[\"uuid\",\"00000000-0000-0000-0000-000001000000\"],[\"uuid\",\"00000000-0000-0000-0000-000010000000\"],[\"uuid\",\"00000000-0000-0000-0000-000100000000\"],[\"uuid\",\"00000000-0000-0000-0000-001000000000\"],[\"uuid\",\"00000000-0000-0000-0000-010000000000\"],[\"uuid\",\"00000000-0000-0000-0000-100000000000\"],[\"uuid\",\"00000000-0000-0000-0001-000000000000\"],[\"uuid\",\"00000000-0000-0000-0010-000000000000\"],[\"uuid\",\"00000000-0000-0000-0100-000000000000\"],[\"uuid\",\"00000000-0000-0000-1000-000000000000\"],[\"uuid\",\"00000000-0000-0001-0000-000000000000\"],[\"uuid\",\"00000000-0000-0010-0000-000000000000\"],[\"uuid\",\"00000000-0000-0100-0000-000000000000\"],[\"uuid\",\"00000000-0000-1000-0000-000000000000\"],[\"uuid\",\"00000000-0001-0000-0000-000000000000\"],[\"uuid\",\"00000000-0010-0000-0000-000000000000\"],[\"uuid\",\"00000000-0100-0000-0000-000000000000\"],[\"uuid\",\"00000000-1000-0000-0000-000000000000\"],[\"uuid\",\"00000001-0000-0000-0000-000000000000\"],[\"uuid\",\"00000010-0000-0000-0000-000000000000\"],[\"uuid\",\"00000100-0000-0000-0000-000000000000\"],[\"uuid\",\"00001000-0000-0000-0000-000000000000\"],[\"uuid\",\"00010000-0000-0000-0000-000000000000\"],[\"uuid\",\"00100000-0000-0000-0000-000000000000\"],[\"uuid\",\"01000000-0000-0000-0000-000000000000\"],[\"uuid\",\"10000000-0000-0000-0000-000000000000\"]]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:205"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1444
#AT_START_1445
at_fn_group_banner 1445 'ovsdb-data.at:242' \
  "real not acceptable integer JSON atom - C" "      " 67
at_xfail=no
(
  $as_echo "1445. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:242: test-ovsdb parse-atoms '[\"integer\"]' '[0.5]' "
at_fn_check_prepare_trace "ovsdb-data.at:242"
( $at_check_trace; test-ovsdb parse-atoms '["integer"]' '[0.5]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "syntax \"0.5\": syntax error: expected integer
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:242"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1445
#AT_START_1446
at_fn_group_banner 1446 'ovsdb-data.at:242' \
  "real not acceptable integer JSON atom - Python2" "" 67
at_xfail=no
(
  $as_echo "1446. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:242" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:242"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:242: \$PYTHON \$srcdir/test-ovsdb.py parse-atoms '[\"integer\"]' '[0.5]' "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-atoms '[\"integer\"]' '[0.5]' " "ovsdb-data.at:242"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-atoms '["integer"]' '[0.5]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "syntax \"0.5\": syntax error: expected integer
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:242"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1446
#AT_START_1447
at_fn_group_banner 1447 'ovsdb-data.at:242' \
  "real not acceptable integer JSON atom - Python3" "" 67
at_xfail=no
(
  $as_echo "1447. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:242" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:242"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:242: \$PYTHON3 \$srcdir/test-ovsdb.py parse-atoms '[\"integer\"]' '[0.5]' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-atoms '[\"integer\"]' '[0.5]' " "ovsdb-data.at:242"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-atoms '["integer"]' '[0.5]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "syntax \"0.5\": syntax error: expected integer
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:242"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1447
#AT_START_1448
at_fn_group_banner 1448 'ovsdb-data.at:248' \
  "no invalid UTF-8 sequences in strings" "          " 67
at_xfail=no
(
  $as_echo "1448. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:248: test-ovsdb parse-atoms '[\"string\"]' \\
     '[\"\"]' \\
     '[\"\"]' \\
"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:248"
( $at_check_trace; test-ovsdb parse-atoms '["string"]' \
     '[""]' \
     '[""]' \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "constraint violation: not a valid UTF-8 string: invalid UTF-8 sequence 0xc0
constraint violation: not a valid UTF-8 string: invalid UTF-8 sequence 0xed 0xa0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:248"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1448
#AT_START_1449
at_fn_group_banner 1449 'ovsdb-data.at:263' \
  "no invalid UTF-8 sequences in strings - Python" " " 67
at_xfail=no
(
  $as_echo "1449. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:263" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:263"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:263: \$PYTHON \$srcdir/test-ovsdb.py parse-atoms '[\"string\"]' \\
     '[\"\"]' \\
     '[\"\"]' \\
"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:263"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-atoms '["string"]' \
     '[""]' \
     '[""]' \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"not a valid UTF-8 string: invalid UTF-8 sequence 0xc0\"
\"not a valid UTF-8 string: invalid UTF-8 sequence 0xed 0x80\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:263"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1449
#AT_START_1450
at_fn_group_banner 1450 'ovsdb-data.at:271' \
  "real not acceptable integer string atom" "        " 67
at_xfail=no
(
  $as_echo "1450. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:271: test-ovsdb parse-atom-strings '[\"integer\"]' '0.5' "
at_fn_check_prepare_trace "ovsdb-data.at:271"
( $at_check_trace; test-ovsdb parse-atom-strings '["integer"]' '0.5'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-data.at:271"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:271: if grep -F -e \"\\\"0.5\\\" is not a valid integer\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:271"
( $at_check_trace; if grep -F -e "\"0.5\" is not a valid integer" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:271"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1450
#AT_START_1451
at_fn_group_banner 1451 'ovsdb-data.at:275' \
  "inverted range is not acceptable integer string atom positive and negative" "" 67
at_xfail=no
(
  $as_echo "1451. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:275: test-ovsdb parse-atom-strings -- '[\"integer\"]' '10--10' "
at_fn_check_prepare_trace "ovsdb-data.at:275"
( $at_check_trace; test-ovsdb parse-atom-strings -- '["integer"]' '10--10'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-data.at:275"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:275: if grep -F -e \"\\\"10--10\\\" is not a valid range. Range end cannot be before start.\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:275"
( $at_check_trace; if grep -F -e "\"10--10\" is not a valid range. Range end cannot be before start." stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:275"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1451
#AT_START_1452
at_fn_group_banner 1452 'ovsdb-data.at:279' \
  "inverted range is not acceptable integer string atom negative" "" 67
at_xfail=no
(
  $as_echo "1452. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:279: test-ovsdb parse-atom-strings -- '[\"integer\"]' '-10--100' "
at_fn_check_prepare_trace "ovsdb-data.at:279"
( $at_check_trace; test-ovsdb parse-atom-strings -- '["integer"]' '-10--100'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-data.at:279"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:279: if grep -F -e \"\\\"-10--100\\\" is not a valid range. Range end cannot be before start.\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:279"
( $at_check_trace; if grep -F -e "\"-10--100\" is not a valid range. Range end cannot be before start." stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:279"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1452
#AT_START_1453
at_fn_group_banner 1453 'ovsdb-data.at:283' \
  "inverted range is not acceptable integer string atom positive" "" 67
at_xfail=no
(
  $as_echo "1453. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:283: test-ovsdb parse-atom-strings -- '[\"integer\"]' '100-10' "
at_fn_check_prepare_trace "ovsdb-data.at:283"
( $at_check_trace; test-ovsdb parse-atom-strings -- '["integer"]' '100-10'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-data.at:283"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:283: if grep -F -e \"\\\"100-10\\\" is not a valid range. Range end cannot be before start.\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:283"
( $at_check_trace; if grep -F -e "\"100-10\" is not a valid range. Range end cannot be before start." stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:283"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1453
#AT_START_1454
at_fn_group_banner 1454 'ovsdb-data.at:287' \
  "too big range is not acceptable integer string atom positive and negative" "" 67
at_xfail=no
(
  $as_echo "1454. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:287: test-ovsdb parse-atom-strings -- '[\"integer\"]' '-2000-2096' "
at_fn_check_prepare_trace "ovsdb-data.at:287"
( $at_check_trace; test-ovsdb parse-atom-strings -- '["integer"]' '-2000-2096'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-data.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:287: if grep -F -e \"Range \\\"-2000-2096\\\" is too big.\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:287"
( $at_check_trace; if grep -F -e "Range \"-2000-2096\" is too big." stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1454
#AT_START_1455
at_fn_group_banner 1455 'ovsdb-data.at:291' \
  "too big range is not acceptable integer string atom negative" "" 67
at_xfail=no
(
  $as_echo "1455. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:291: test-ovsdb parse-atom-strings -- '[\"integer\"]' '-4097--1' "
at_fn_check_prepare_trace "ovsdb-data.at:291"
( $at_check_trace; test-ovsdb parse-atom-strings -- '["integer"]' '-4097--1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-data.at:291"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:291: if grep -F -e \"Range \\\"-4097--1\\\" is too big.\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:291"
( $at_check_trace; if grep -F -e "Range \"-4097--1\" is too big." stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:291"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1455
#AT_START_1456
at_fn_group_banner 1456 'ovsdb-data.at:295' \
  "too big range is not acceptable integer string atom positive" "" 67
at_xfail=no
(
  $as_echo "1456. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:295: test-ovsdb parse-atom-strings -- '[\"integer\"]' '1-4097' "
at_fn_check_prepare_trace "ovsdb-data.at:295"
( $at_check_trace; test-ovsdb parse-atom-strings -- '["integer"]' '1-4097'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-data.at:295"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:295: if grep -F -e \"Range \\\"1-4097\\\" is too big.\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:295"
( $at_check_trace; if grep -F -e "Range \"1-4097\" is too big." stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:295"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1456
#AT_START_1457
at_fn_group_banner 1457 'ovsdb-data.at:299' \
  "string \"true\" not acceptable boolean JSON atom - C" "" 67
at_xfail=no
(
  $as_echo "1457. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:299: test-ovsdb parse-atoms '[\"boolean\"]' '[\"true\"]' "
at_fn_check_prepare_trace "ovsdb-data.at:299"
( $at_check_trace; test-ovsdb parse-atoms '["boolean"]' '["true"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "syntax \"\"true\"\": syntax error: expected boolean
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:299"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1457
#AT_START_1458
at_fn_group_banner 1458 'ovsdb-data.at:299' \
  "string \"true\" not acceptable boolean JSON atom - Python2" "" 67
at_xfail=no
(
  $as_echo "1458. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:299" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:299"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:299: \$PYTHON \$srcdir/test-ovsdb.py parse-atoms '[\"boolean\"]' '[\"true\"]' "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-atoms '[\"boolean\"]' '[\"true\"]' " "ovsdb-data.at:299"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-atoms '["boolean"]' '["true"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "syntax \"\"true\"\": syntax error: expected boolean
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:299"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1458
#AT_START_1459
at_fn_group_banner 1459 'ovsdb-data.at:299' \
  "string \"true\" not acceptable boolean JSON atom - Python3" "" 67
at_xfail=no
(
  $as_echo "1459. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:299" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:299"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:299: \$PYTHON3 \$srcdir/test-ovsdb.py parse-atoms '[\"boolean\"]' '[\"true\"]' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-atoms '[\"boolean\"]' '[\"true\"]' " "ovsdb-data.at:299"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-atoms '["boolean"]' '["true"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "syntax \"\"true\"\": syntax error: expected boolean
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:299"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1459
#AT_START_1460
at_fn_group_banner 1460 'ovsdb-data.at:303' \
  "string \"true\" not acceptable boolean string atom" "" 67
at_xfail=no
(
  $as_echo "1460. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:303: test-ovsdb parse-atom-strings '[\"boolean\"]' '\"true\"' "
at_fn_check_prepare_trace "ovsdb-data.at:303"
( $at_check_trace; test-ovsdb parse-atom-strings '["boolean"]' '"true"'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-data.at:303"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:303: if grep -F -e \"\\\"\\\"true\\\"\\\" is not a valid boolean (use \\\"true\\\" or \\\"false\\\")\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:303"
( $at_check_trace; if grep -F -e "\"\"true\"\" is not a valid boolean (use \"true\" or \"false\")" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:303"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1460
#AT_START_1461
at_fn_group_banner 1461 'ovsdb-data.at:307' \
  "integer not acceptable string JSON atom - C" "    " 67
at_xfail=no
(
  $as_echo "1461. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:307: test-ovsdb parse-atoms '[\"string\"]' '[1]'"
at_fn_check_prepare_trace "ovsdb-data.at:307"
( $at_check_trace; test-ovsdb parse-atoms '["string"]' '[1]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "syntax \"1\": syntax error: expected string
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:307"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1461
#AT_START_1462
at_fn_group_banner 1462 'ovsdb-data.at:307' \
  "integer not acceptable string JSON atom - Python2" "" 67
at_xfail=no
(
  $as_echo "1462. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:307" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:307"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:307: \$PYTHON \$srcdir/test-ovsdb.py parse-atoms '[\"string\"]' '[1]'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-atoms '[\"string\"]' '[1]'" "ovsdb-data.at:307"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-atoms '["string"]' '[1]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "syntax \"1\": syntax error: expected string
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:307"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1462
#AT_START_1463
at_fn_group_banner 1463 'ovsdb-data.at:307' \
  "integer not acceptable string JSON atom - Python3" "" 67
at_xfail=no
(
  $as_echo "1463. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:307" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:307"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:307: \$PYTHON3 \$srcdir/test-ovsdb.py parse-atoms '[\"string\"]' '[1]'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-atoms '[\"string\"]' '[1]'" "ovsdb-data.at:307"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-atoms '["string"]' '[1]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "syntax \"1\": syntax error: expected string
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:307"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1463
#AT_START_1464
at_fn_group_banner 1464 'ovsdb-data.at:311' \
  "uuid atom must be expressed as JSON array - C" "  " 67
at_xfail=no
(
  $as_echo "1464. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:311: test-ovsdb parse-atoms '[\"uuid\"]' '[\"550e8400-e29b-41d4-a716-446655440000\"]'"
at_fn_check_prepare_trace "ovsdb-data.at:311"
( $at_check_trace; test-ovsdb parse-atoms '["uuid"]' '["550e8400-e29b-41d4-a716-446655440000"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "syntax \"\"550e8400-e29b-41d4-a716-446655440000\"\": syntax error: expected [\"uuid\", <string>]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:311"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1464
#AT_START_1465
at_fn_group_banner 1465 'ovsdb-data.at:311' \
  "uuid atom must be expressed as JSON array - Python2" "" 67
at_xfail=no
(
  $as_echo "1465. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:311" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:311"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:311: \$PYTHON \$srcdir/test-ovsdb.py parse-atoms '[\"uuid\"]' '[\"550e8400-e29b-41d4-a716-446655440000\"]'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-atoms '[\"uuid\"]' '[\"550e8400-e29b-41d4-a716-446655440000\"]'" "ovsdb-data.at:311"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-atoms '["uuid"]' '["550e8400-e29b-41d4-a716-446655440000"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "syntax \"\"550e8400-e29b-41d4-a716-446655440000\"\": syntax error: expected [\"uuid\", <string>]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:311"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1465
#AT_START_1466
at_fn_group_banner 1466 'ovsdb-data.at:311' \
  "uuid atom must be expressed as JSON array - Python3" "" 67
at_xfail=no
(
  $as_echo "1466. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:311" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:311"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:311: \$PYTHON3 \$srcdir/test-ovsdb.py parse-atoms '[\"uuid\"]' '[\"550e8400-e29b-41d4-a716-446655440000\"]'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-atoms '[\"uuid\"]' '[\"550e8400-e29b-41d4-a716-446655440000\"]'" "ovsdb-data.at:311"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-atoms '["uuid"]' '["550e8400-e29b-41d4-a716-446655440000"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "syntax \"\"550e8400-e29b-41d4-a716-446655440000\"\": syntax error: expected [\"uuid\", <string>]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:311"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1466
#AT_START_1467
at_fn_group_banner 1467 'ovsdb-data.at:315' \
  "named-uuid requires symbol table - C" "           " 67
at_xfail=no
(
  $as_echo "1467. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:315: test-ovsdb parse-atoms '[\"uuid\"]' '[\"named-uuid\", \"x\"]'"
at_fn_check_prepare_trace "ovsdb-data.at:315"
( $at_check_trace; test-ovsdb parse-atoms '["uuid"]' '["named-uuid", "x"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "syntax \"[\"named-uuid\",\"x\"]\": syntax error: expected [\"uuid\", <string>]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:315"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1467
#AT_START_1468
at_fn_group_banner 1468 'ovsdb-data.at:315' \
  "named-uuid requires symbol table - Python2" "     " 67
at_xfail=no
(
  $as_echo "1468. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:315" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:315"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:315: \$PYTHON \$srcdir/test-ovsdb.py parse-atoms '[\"uuid\"]' '[\"named-uuid\", \"x\"]'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-atoms '[\"uuid\"]' '[\"named-uuid\", \"x\"]'" "ovsdb-data.at:315"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-atoms '["uuid"]' '["named-uuid", "x"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "syntax \"[\"named-uuid\",\"x\"]\": syntax error: expected [\"uuid\", <string>]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:315"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1468
#AT_START_1469
at_fn_group_banner 1469 'ovsdb-data.at:315' \
  "named-uuid requires symbol table - Python3" "     " 67
at_xfail=no
(
  $as_echo "1469. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:315" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:315"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:315: \$PYTHON3 \$srcdir/test-ovsdb.py parse-atoms '[\"uuid\"]' '[\"named-uuid\", \"x\"]'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-atoms '[\"uuid\"]' '[\"named-uuid\", \"x\"]'" "ovsdb-data.at:315"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-atoms '["uuid"]' '["named-uuid", "x"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "syntax \"[\"named-uuid\",\"x\"]\": syntax error: expected [\"uuid\", <string>]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:315"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1469
#AT_START_1470
at_fn_group_banner 1470 'ovsdb-data.at:319' \
  "empty string atom must be quoted" "               " 67
at_xfail=no
(
  $as_echo "1470. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:319: test-ovsdb parse-atom-strings '[\"string\"]' ''"
at_fn_check_prepare_trace "ovsdb-data.at:319"
( $at_check_trace; test-ovsdb parse-atom-strings '["string"]' ''
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-data.at:319"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:319: if grep -F -e \"An empty string is not valid as input; use \\\"\\\" to represent the empty string\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:319"
( $at_check_trace; if grep -F -e "An empty string is not valid as input; use \"\" to represent the empty string" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:319"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1470
#AT_START_1471
at_fn_group_banner 1471 'ovsdb-data.at:323' \
  "quotes must be balanced" "                        " 67
at_xfail=no
(
  $as_echo "1471. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:323: test-ovsdb parse-atom-strings '[\"string\"]' '\"asdf'"
at_fn_check_prepare_trace "ovsdb-data.at:323"
( $at_check_trace; test-ovsdb parse-atom-strings '["string"]' '"asdf'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-data.at:323"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:323: if grep -F -e \"\\\"asdf: missing quote at end of quoted string\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:323"
( $at_check_trace; if grep -F -e "\"asdf: missing quote at end of quoted string" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:323"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1471
#AT_START_1472
at_fn_group_banner 1472 'ovsdb-data.at:327' \
  "quoted string must not contain unescaped quote" " " 67
at_xfail=no
(
  $as_echo "1472. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:327: test-ovsdb parse-atom-strings '[\"string\"]' '\"as\"df\"'"
at_fn_check_prepare_trace "ovsdb-data.at:327"
( $at_check_trace; test-ovsdb parse-atom-strings '["string"]' '"as"df"'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-data.at:327"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:327: if grep -F -e \"\\\"as\\\"df\\\": quoted string may not include unescaped \\\"\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:327"
( $at_check_trace; if grep -F -e "\"as\"df\": quoted string may not include unescaped \"" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:327"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1472
#AT_START_1473
at_fn_group_banner 1473 'ovsdb-data.at:331' \
  "quoted string must not end with backslash" "      " 67
at_xfail=no
(
  $as_echo "1473. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:331: test-ovsdb parse-atom-strings '[\"string\"]' '\"asdf\\\"'"
at_fn_check_prepare_trace "ovsdb-data.at:331"
( $at_check_trace; test-ovsdb parse-atom-strings '["string"]' '"asdf\"'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-data.at:331"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:331: if grep -F -e \"\\\"asdf\\\\\\\": quoted string may not end with backslash\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:331"
( $at_check_trace; if grep -F -e "\"asdf\\\": quoted string may not end with backslash" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:331"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1473
#AT_START_1474
at_fn_group_banner 1474 'ovsdb-data.at:335' \
  "uuids must be valid" "                            " 67
at_xfail=no
(
  $as_echo "1474. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:335: test-ovsdb parse-atom-strings '[\"uuid\"]' '1234-5678'"
at_fn_check_prepare_trace "ovsdb-data.at:335"
( $at_check_trace; test-ovsdb parse-atom-strings '["uuid"]' '1234-5678'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-data.at:335"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:335: if grep -F -e \"\\\"1234-5678\\\" is not a valid UUID\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:335"
( $at_check_trace; if grep -F -e "\"1234-5678\" is not a valid UUID" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:335"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1474
#AT_START_1475
at_fn_group_banner 1475 'ovsdb-data.at:341' \
  "integer atom enum - C" "                          " 68
at_xfail=no
(
  $as_echo "1475. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:341: test-ovsdb parse-atoms '[{\"type\": \"integer\", \"enum\": [\"set\", [1, 6, 8, 10]]}]' \\
    '[0]' \\
    '[1]' \\
    '[2]' \\
    '[3]' \\
    '[6]' \\
    '[7]' \\
    '[8]' \\
    '[9]' \\
    '[10]' \\
    '[11]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:341"
( $at_check_trace; test-ovsdb parse-atoms '[{"type": "integer", "enum": ["set", [1, 6, 8, 10]]}]' \
    '[0]' \
    '[1]' \
    '[2]' \
    '[3]' \
    '[6]' \
    '[7]' \
    '[8]' \
    '[9]' \
    '[10]' \
    '[11]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "constraint violation: 0 is not one of the allowed values ([1, 6, 8, 10])
1
constraint violation: 2 is not one of the allowed values ([1, 6, 8, 10])
constraint violation: 3 is not one of the allowed values ([1, 6, 8, 10])
6
constraint violation: 7 is not one of the allowed values ([1, 6, 8, 10])
8
constraint violation: 9 is not one of the allowed values ([1, 6, 8, 10])
10
constraint violation: 11 is not one of the allowed values ([1, 6, 8, 10])
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:341"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1475
#AT_START_1476
at_fn_group_banner 1476 'ovsdb-data.at:341' \
  "integer atom enum - Python2" "                    " 68
at_xfail=no
(
  $as_echo "1476. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:341" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:341"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:341: \$PYTHON \$srcdir/test-ovsdb.py parse-atoms '[{\"type\": \"integer\", \"enum\": [\"set\", [1, 6, 8, 10]]}]' \\
    '[0]' \\
    '[1]' \\
    '[2]' \\
    '[3]' \\
    '[6]' \\
    '[7]' \\
    '[8]' \\
    '[9]' \\
    '[10]' \\
    '[11]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:341"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-atoms '[{"type": "integer", "enum": ["set", [1, 6, 8, 10]]}]' \
    '[0]' \
    '[1]' \
    '[2]' \
    '[3]' \
    '[6]' \
    '[7]' \
    '[8]' \
    '[9]' \
    '[10]' \
    '[11]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "constraint violation: 0 is not one of the allowed values ([1, 6, 8, 10])
1
constraint violation: 2 is not one of the allowed values ([1, 6, 8, 10])
constraint violation: 3 is not one of the allowed values ([1, 6, 8, 10])
6
constraint violation: 7 is not one of the allowed values ([1, 6, 8, 10])
8
constraint violation: 9 is not one of the allowed values ([1, 6, 8, 10])
10
constraint violation: 11 is not one of the allowed values ([1, 6, 8, 10])
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:341"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1476
#AT_START_1477
at_fn_group_banner 1477 'ovsdb-data.at:341' \
  "integer atom enum - Python3" "                    " 68
at_xfail=no
(
  $as_echo "1477. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:341" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:341"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:341: \$PYTHON3 \$srcdir/test-ovsdb.py parse-atoms '[{\"type\": \"integer\", \"enum\": [\"set\", [1, 6, 8, 10]]}]' \\
    '[0]' \\
    '[1]' \\
    '[2]' \\
    '[3]' \\
    '[6]' \\
    '[7]' \\
    '[8]' \\
    '[9]' \\
    '[10]' \\
    '[11]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:341"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-atoms '[{"type": "integer", "enum": ["set", [1, 6, 8, 10]]}]' \
    '[0]' \
    '[1]' \
    '[2]' \
    '[3]' \
    '[6]' \
    '[7]' \
    '[8]' \
    '[9]' \
    '[10]' \
    '[11]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "constraint violation: 0 is not one of the allowed values ([1, 6, 8, 10])
1
constraint violation: 2 is not one of the allowed values ([1, 6, 8, 10])
constraint violation: 3 is not one of the allowed values ([1, 6, 8, 10])
6
constraint violation: 7 is not one of the allowed values ([1, 6, 8, 10])
8
constraint violation: 9 is not one of the allowed values ([1, 6, 8, 10])
10
constraint violation: 11 is not one of the allowed values ([1, 6, 8, 10])
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:341"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1477
#AT_START_1478
at_fn_group_banner 1478 'ovsdb-data.at:364' \
  "integer atom enum from string" "                  " 68
at_xfail=no
(
  $as_echo "1478. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:364: test-ovsdb parse-atom-strings '[{\"type\": \"integer\", \"enum\": [\"set\", [1, 6, 8, 10, 20, 21, 22, 23, 24, 25]]}]' \\
    '1' \\
    '6' \\
    '8' \\
    '10' \\
    '20-25'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:364"
( $at_check_trace; test-ovsdb parse-atom-strings '[{"type": "integer", "enum": ["set", [1, 6, 8, 10, 20, 21, 22, 23, 24, 25]]}]' \
    '1' \
    '6' \
    '8' \
    '10' \
    '20-25'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
6
8
10
20-25
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1478
#AT_START_1479
at_fn_group_banner 1479 'ovsdb-data.at:377' \
  "integer not in enum set from string" "            " 68
at_xfail=no
(
  $as_echo "1479. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:377: test-ovsdb parse-atom-strings '[{\"type\": \"integer\", \"enum\": [\"set\", [1, 6, 8, 10]]}]' '0' "
at_fn_check_prepare_trace "ovsdb-data.at:377"
( $at_check_trace; test-ovsdb parse-atom-strings '[{"type": "integer", "enum": ["set", [1, 6, 8, 10]]}]' '0'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-data.at:377"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:377: if grep -F -e \"constraint violation: 0 is not one of the allowed values ([1, 6, 8, 10])\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:377"
( $at_check_trace; if grep -F -e "constraint violation: 0 is not one of the allowed values ([1, 6, 8, 10])" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:377"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1479
#AT_START_1480
at_fn_group_banner 1480 'ovsdb-data.at:381' \
  "integer range not in enum set from string" "      " 68
at_xfail=no
(
  $as_echo "1480. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:381: test-ovsdb parse-atom-strings '[{\"type\": \"integer\", \"enum\": [\"set\", [1, 6, 8, 10]]}]' '8-10' "
at_fn_check_prepare_trace "ovsdb-data.at:381"
( $at_check_trace; test-ovsdb parse-atom-strings '[{"type": "integer", "enum": ["set", [1, 6, 8, 10]]}]' '8-10'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-data.at:381"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:381: if grep -F -e \"constraint violation: 9 is not one of the allowed values ([1, 6, 8, 10])\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:381"
( $at_check_trace; if grep -F -e "constraint violation: 9 is not one of the allowed values ([1, 6, 8, 10])" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:381"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1480
#AT_START_1481
at_fn_group_banner 1481 'ovsdb-data.at:385' \
  "real atom enum - C" "                             " 68
at_xfail=no
(
  $as_echo "1481. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:385: test-ovsdb parse-atoms '[{\"type\": \"real\", \"enum\": [\"set\", [-1.5, 1.5]]}]' \\
    '[-2]' \\
    '[-1]' \\
    '[-1.5]' \\
    '[0]' \\
    '[1]' \\
    '[1.5]' \\
    '[2]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:385"
( $at_check_trace; test-ovsdb parse-atoms '[{"type": "real", "enum": ["set", [-1.5, 1.5]]}]' \
    '[-2]' \
    '[-1]' \
    '[-1.5]' \
    '[0]' \
    '[1]' \
    '[1.5]' \
    '[2]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "constraint violation: -2 is not one of the allowed values ([-1.5, 1.5])
constraint violation: -1 is not one of the allowed values ([-1.5, 1.5])
-1.5
constraint violation: 0 is not one of the allowed values ([-1.5, 1.5])
constraint violation: 1 is not one of the allowed values ([-1.5, 1.5])
1.5
constraint violation: 2 is not one of the allowed values ([-1.5, 1.5])
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:385"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1481
#AT_START_1482
at_fn_group_banner 1482 'ovsdb-data.at:385' \
  "real atom enum - Python2" "                       " 68
at_xfail=no
(
  $as_echo "1482. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:385" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:385"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:385: \$PYTHON \$srcdir/test-ovsdb.py parse-atoms '[{\"type\": \"real\", \"enum\": [\"set\", [-1.5, 1.5]]}]' \\
    '[-2]' \\
    '[-1]' \\
    '[-1.5]' \\
    '[0]' \\
    '[1]' \\
    '[1.5]' \\
    '[2]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:385"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-atoms '[{"type": "real", "enum": ["set", [-1.5, 1.5]]}]' \
    '[-2]' \
    '[-1]' \
    '[-1.5]' \
    '[0]' \
    '[1]' \
    '[1.5]' \
    '[2]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "constraint violation: -2 is not one of the allowed values ([-1.5, 1.5])
constraint violation: -1 is not one of the allowed values ([-1.5, 1.5])
-1.5
constraint violation: 0 is not one of the allowed values ([-1.5, 1.5])
constraint violation: 1 is not one of the allowed values ([-1.5, 1.5])
1.5
constraint violation: 2 is not one of the allowed values ([-1.5, 1.5])
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:385"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1482
#AT_START_1483
at_fn_group_banner 1483 'ovsdb-data.at:385' \
  "real atom enum - Python3" "                       " 68
at_xfail=no
(
  $as_echo "1483. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:385" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:385"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:385: \$PYTHON3 \$srcdir/test-ovsdb.py parse-atoms '[{\"type\": \"real\", \"enum\": [\"set\", [-1.5, 1.5]]}]' \\
    '[-2]' \\
    '[-1]' \\
    '[-1.5]' \\
    '[0]' \\
    '[1]' \\
    '[1.5]' \\
    '[2]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:385"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-atoms '[{"type": "real", "enum": ["set", [-1.5, 1.5]]}]' \
    '[-2]' \
    '[-1]' \
    '[-1.5]' \
    '[0]' \
    '[1]' \
    '[1.5]' \
    '[2]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "constraint violation: -2 is not one of the allowed values ([-1.5, 1.5])
constraint violation: -1 is not one of the allowed values ([-1.5, 1.5])
-1.5
constraint violation: 0 is not one of the allowed values ([-1.5, 1.5])
constraint violation: 1 is not one of the allowed values ([-1.5, 1.5])
1.5
constraint violation: 2 is not one of the allowed values ([-1.5, 1.5])
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:385"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1483
#AT_START_1484
at_fn_group_banner 1484 'ovsdb-data.at:402' \
  "boolean atom enum - C" "                          " 68
at_xfail=no
(
  $as_echo "1484. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:402: test-ovsdb parse-atoms '[{\"type\": \"boolean\", \"enum\": false}]' \\
    '[false]' \\
    '[true]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:402"
( $at_check_trace; test-ovsdb parse-atoms '[{"type": "boolean", "enum": false}]' \
    '[false]' \
    '[true]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "false
constraint violation: true is not one of the allowed values ([false])
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:402"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1484
#AT_START_1485
at_fn_group_banner 1485 'ovsdb-data.at:402' \
  "boolean atom enum - Python2" "                    " 68
at_xfail=no
(
  $as_echo "1485. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:402" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:402"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:402: \$PYTHON \$srcdir/test-ovsdb.py parse-atoms '[{\"type\": \"boolean\", \"enum\": false}]' \\
    '[false]' \\
    '[true]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:402"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-atoms '[{"type": "boolean", "enum": false}]' \
    '[false]' \
    '[true]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "false
constraint violation: true is not one of the allowed values ([false])
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:402"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1485
#AT_START_1486
at_fn_group_banner 1486 'ovsdb-data.at:402' \
  "boolean atom enum - Python3" "                    " 68
at_xfail=no
(
  $as_echo "1486. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:402" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:402"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:402: \$PYTHON3 \$srcdir/test-ovsdb.py parse-atoms '[{\"type\": \"boolean\", \"enum\": false}]' \\
    '[false]' \\
    '[true]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:402"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-atoms '[{"type": "boolean", "enum": false}]' \
    '[false]' \
    '[true]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "false
constraint violation: true is not one of the allowed values ([false])
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:402"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1486
#AT_START_1487
at_fn_group_banner 1487 'ovsdb-data.at:409' \
  "string atom enum - C" "                           " 68
at_xfail=no
(
  $as_echo "1487. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:409: test-ovsdb parse-atoms '[{\"type\": \"string\", \"enum\": [\"set\", [\"abc\", \"def\"]]}]' \\
    '[\"\"]' \\
    '[\"ab\"]' \\
    '[\"abc\"]' \\
    '[\"def\"]' \\
    '[\"defg\"]' \\
    '[\"DEF\"]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:409"
( $at_check_trace; test-ovsdb parse-atoms '[{"type": "string", "enum": ["set", ["abc", "def"]]}]' \
    '[""]' \
    '["ab"]' \
    '["abc"]' \
    '["def"]' \
    '["defg"]' \
    '["DEF"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "constraint violation: \"\" is not one of the allowed values ([abc, def])
constraint violation: ab is not one of the allowed values ([abc, def])
\"abc\"
\"def\"
constraint violation: defg is not one of the allowed values ([abc, def])
constraint violation: DEF is not one of the allowed values ([abc, def])
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:409"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1487
#AT_START_1488
at_fn_group_banner 1488 'ovsdb-data.at:409' \
  "string atom enum - Python2" "                     " 68
at_xfail=no
(
  $as_echo "1488. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:409" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:409"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:409: \$PYTHON \$srcdir/test-ovsdb.py parse-atoms '[{\"type\": \"string\", \"enum\": [\"set\", [\"abc\", \"def\"]]}]' \\
    '[\"\"]' \\
    '[\"ab\"]' \\
    '[\"abc\"]' \\
    '[\"def\"]' \\
    '[\"defg\"]' \\
    '[\"DEF\"]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:409"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-atoms '[{"type": "string", "enum": ["set", ["abc", "def"]]}]' \
    '[""]' \
    '["ab"]' \
    '["abc"]' \
    '["def"]' \
    '["defg"]' \
    '["DEF"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "constraint violation: \"\" is not one of the allowed values ([abc, def])
constraint violation: ab is not one of the allowed values ([abc, def])
\"abc\"
\"def\"
constraint violation: defg is not one of the allowed values ([abc, def])
constraint violation: DEF is not one of the allowed values ([abc, def])
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:409"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1488
#AT_START_1489
at_fn_group_banner 1489 'ovsdb-data.at:409' \
  "string atom enum - Python3" "                     " 68
at_xfail=no
(
  $as_echo "1489. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:409" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:409"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:409: \$PYTHON3 \$srcdir/test-ovsdb.py parse-atoms '[{\"type\": \"string\", \"enum\": [\"set\", [\"abc\", \"def\"]]}]' \\
    '[\"\"]' \\
    '[\"ab\"]' \\
    '[\"abc\"]' \\
    '[\"def\"]' \\
    '[\"defg\"]' \\
    '[\"DEF\"]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:409"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-atoms '[{"type": "string", "enum": ["set", ["abc", "def"]]}]' \
    '[""]' \
    '["ab"]' \
    '["abc"]' \
    '["def"]' \
    '["defg"]' \
    '["DEF"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "constraint violation: \"\" is not one of the allowed values ([abc, def])
constraint violation: ab is not one of the allowed values ([abc, def])
\"abc\"
\"def\"
constraint violation: defg is not one of the allowed values ([abc, def])
constraint violation: DEF is not one of the allowed values ([abc, def])
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:409"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1489
#AT_START_1490
at_fn_group_banner 1490 'ovsdb-data.at:424' \
  "uuid atom enum - C" "                             " 68
at_xfail=no
(
  $as_echo "1490. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:424: test-ovsdb parse-atoms '[{\"type\": \"uuid\", \"enum\": [\"set\", [[\"uuid\", \"6d53a6dd-2da7-4924-9927-97f613812382\"], [\"uuid\", \"52cbc842-137a-4db5-804f-9f34106a0ba3\"]]]}]' \\
    '[\"uuid\", \"6d53a6dd-2da7-4924-9927-97f613812382\"]' \\
    '[\"uuid\", \"52cbc842-137a-4db5-804f-9f34106a0ba3\"]' \\
    '[\"uuid\", \"dab2a6b2-6094-4f43-a7ef-4c0f0608f176\"]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:424"
( $at_check_trace; test-ovsdb parse-atoms '[{"type": "uuid", "enum": ["set", [["uuid", "6d53a6dd-2da7-4924-9927-97f613812382"], ["uuid", "52cbc842-137a-4db5-804f-9f34106a0ba3"]]]}]' \
    '["uuid", "6d53a6dd-2da7-4924-9927-97f613812382"]' \
    '["uuid", "52cbc842-137a-4db5-804f-9f34106a0ba3"]' \
    '["uuid", "dab2a6b2-6094-4f43-a7ef-4c0f0608f176"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"uuid\",\"6d53a6dd-2da7-4924-9927-97f613812382\"]
[\"uuid\",\"52cbc842-137a-4db5-804f-9f34106a0ba3\"]
constraint violation: dab2a6b2-6094-4f43-a7ef-4c0f0608f176 is not one of the allowed values ([52cbc842-137a-4db5-804f-9f34106a0ba3, 6d53a6dd-2da7-4924-9927-97f613812382])
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:424"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1490
#AT_START_1491
at_fn_group_banner 1491 'ovsdb-data.at:424' \
  "uuid atom enum - Python2" "                       " 68
at_xfail=no
(
  $as_echo "1491. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:424" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:424"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:424: \$PYTHON \$srcdir/test-ovsdb.py parse-atoms '[{\"type\": \"uuid\", \"enum\": [\"set\", [[\"uuid\", \"6d53a6dd-2da7-4924-9927-97f613812382\"], [\"uuid\", \"52cbc842-137a-4db5-804f-9f34106a0ba3\"]]]}]' \\
    '[\"uuid\", \"6d53a6dd-2da7-4924-9927-97f613812382\"]' \\
    '[\"uuid\", \"52cbc842-137a-4db5-804f-9f34106a0ba3\"]' \\
    '[\"uuid\", \"dab2a6b2-6094-4f43-a7ef-4c0f0608f176\"]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:424"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-atoms '[{"type": "uuid", "enum": ["set", [["uuid", "6d53a6dd-2da7-4924-9927-97f613812382"], ["uuid", "52cbc842-137a-4db5-804f-9f34106a0ba3"]]]}]' \
    '["uuid", "6d53a6dd-2da7-4924-9927-97f613812382"]' \
    '["uuid", "52cbc842-137a-4db5-804f-9f34106a0ba3"]' \
    '["uuid", "dab2a6b2-6094-4f43-a7ef-4c0f0608f176"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"uuid\",\"6d53a6dd-2da7-4924-9927-97f613812382\"]
[\"uuid\",\"52cbc842-137a-4db5-804f-9f34106a0ba3\"]
constraint violation: dab2a6b2-6094-4f43-a7ef-4c0f0608f176 is not one of the allowed values ([52cbc842-137a-4db5-804f-9f34106a0ba3, 6d53a6dd-2da7-4924-9927-97f613812382])
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:424"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1491
#AT_START_1492
at_fn_group_banner 1492 'ovsdb-data.at:424' \
  "uuid atom enum - Python3" "                       " 68
at_xfail=no
(
  $as_echo "1492. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:424" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:424"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:424: \$PYTHON3 \$srcdir/test-ovsdb.py parse-atoms '[{\"type\": \"uuid\", \"enum\": [\"set\", [[\"uuid\", \"6d53a6dd-2da7-4924-9927-97f613812382\"], [\"uuid\", \"52cbc842-137a-4db5-804f-9f34106a0ba3\"]]]}]' \\
    '[\"uuid\", \"6d53a6dd-2da7-4924-9927-97f613812382\"]' \\
    '[\"uuid\", \"52cbc842-137a-4db5-804f-9f34106a0ba3\"]' \\
    '[\"uuid\", \"dab2a6b2-6094-4f43-a7ef-4c0f0608f176\"]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:424"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-atoms '[{"type": "uuid", "enum": ["set", [["uuid", "6d53a6dd-2da7-4924-9927-97f613812382"], ["uuid", "52cbc842-137a-4db5-804f-9f34106a0ba3"]]]}]' \
    '["uuid", "6d53a6dd-2da7-4924-9927-97f613812382"]' \
    '["uuid", "52cbc842-137a-4db5-804f-9f34106a0ba3"]' \
    '["uuid", "dab2a6b2-6094-4f43-a7ef-4c0f0608f176"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"uuid\",\"6d53a6dd-2da7-4924-9927-97f613812382\"]
[\"uuid\",\"52cbc842-137a-4db5-804f-9f34106a0ba3\"]
constraint violation: dab2a6b2-6094-4f43-a7ef-4c0f0608f176 is not one of the allowed values ([52cbc842-137a-4db5-804f-9f34106a0ba3, 6d53a6dd-2da7-4924-9927-97f613812382])
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:424"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1492
#AT_START_1493
at_fn_group_banner 1493 'ovsdb-data.at:435' \
  "integers >= 5 - C" "                              " 69
at_xfail=no
(
  $as_echo "1493. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:435: test-ovsdb parse-atoms '[{\"type\": \"integer\", \"minInteger\": 5}]' \\
    '[0]' \\
    '[4]' \\
    '[5]' \\
    '[6]' \\
    '[12345]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:435"
( $at_check_trace; test-ovsdb parse-atoms '[{"type": "integer", "minInteger": 5}]' \
    '[0]' \
    '[4]' \
    '[5]' \
    '[6]' \
    '[12345]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "constraint violation: 0 is less than minimum allowed value 5
constraint violation: 4 is less than minimum allowed value 5
5
6
12345
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1493
#AT_START_1494
at_fn_group_banner 1494 'ovsdb-data.at:435' \
  "integers >= 5 - Python2" "                        " 69
at_xfail=no
(
  $as_echo "1494. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:435" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:435"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:435: \$PYTHON \$srcdir/test-ovsdb.py parse-atoms '[{\"type\": \"integer\", \"minInteger\": 5}]' \\
    '[0]' \\
    '[4]' \\
    '[5]' \\
    '[6]' \\
    '[12345]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:435"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-atoms '[{"type": "integer", "minInteger": 5}]' \
    '[0]' \
    '[4]' \
    '[5]' \
    '[6]' \
    '[12345]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "constraint violation: 0 is less than minimum allowed value 5
constraint violation: 4 is less than minimum allowed value 5
5
6
12345
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1494
#AT_START_1495
at_fn_group_banner 1495 'ovsdb-data.at:435' \
  "integers >= 5 - Python3" "                        " 69
at_xfail=no
(
  $as_echo "1495. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:435" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:435"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:435: \$PYTHON3 \$srcdir/test-ovsdb.py parse-atoms '[{\"type\": \"integer\", \"minInteger\": 5}]' \\
    '[0]' \\
    '[4]' \\
    '[5]' \\
    '[6]' \\
    '[12345]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:435"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-atoms '[{"type": "integer", "minInteger": 5}]' \
    '[0]' \
    '[4]' \
    '[5]' \
    '[6]' \
    '[12345]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "constraint violation: 0 is less than minimum allowed value 5
constraint violation: 4 is less than minimum allowed value 5
5
6
12345
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1495
#AT_START_1496
at_fn_group_banner 1496 'ovsdb-data.at:448' \
  "integers <= -1 - C" "                             " 69
at_xfail=no
(
  $as_echo "1496. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:448: test-ovsdb parse-atoms '[{\"type\": \"integer\", \"maxInteger\": -1}]' \\
    '[0]' \\
    '[-1]' \\
    '[-2]' \\
    '[-123]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:448"
( $at_check_trace; test-ovsdb parse-atoms '[{"type": "integer", "maxInteger": -1}]' \
    '[0]' \
    '[-1]' \
    '[-2]' \
    '[-123]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "constraint violation: 0 is greater than maximum allowed value -1
-1
-2
-123
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:448"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1496
#AT_START_1497
at_fn_group_banner 1497 'ovsdb-data.at:448' \
  "integers <= -1 - Python2" "                       " 69
at_xfail=no
(
  $as_echo "1497. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:448" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:448"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:448: \$PYTHON \$srcdir/test-ovsdb.py parse-atoms '[{\"type\": \"integer\", \"maxInteger\": -1}]' \\
    '[0]' \\
    '[-1]' \\
    '[-2]' \\
    '[-123]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:448"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-atoms '[{"type": "integer", "maxInteger": -1}]' \
    '[0]' \
    '[-1]' \
    '[-2]' \
    '[-123]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "constraint violation: 0 is greater than maximum allowed value -1
-1
-2
-123
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:448"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1497
#AT_START_1498
at_fn_group_banner 1498 'ovsdb-data.at:448' \
  "integers <= -1 - Python3" "                       " 69
at_xfail=no
(
  $as_echo "1498. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:448" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:448"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:448: \$PYTHON3 \$srcdir/test-ovsdb.py parse-atoms '[{\"type\": \"integer\", \"maxInteger\": -1}]' \\
    '[0]' \\
    '[-1]' \\
    '[-2]' \\
    '[-123]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:448"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-atoms '[{"type": "integer", "maxInteger": -1}]' \
    '[0]' \
    '[-1]' \
    '[-2]' \
    '[-123]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "constraint violation: 0 is greater than maximum allowed value -1
-1
-2
-123
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:448"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1498
#AT_START_1499
at_fn_group_banner 1499 'ovsdb-data.at:459' \
  "integers in range -10 to 10 - C" "                " 69
at_xfail=no
(
  $as_echo "1499. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:459: test-ovsdb parse-atoms '[{\"type\": \"integer\", \"minInteger\": -10, \"maxInteger\": 10}]' \\
    '[-20]' \\
    '[-11]' \\
    '[-10]' \\
    '[-9]' \\
    '[1]' \\
    '[9]' \\
    '[10]' \\
    '[11]' \\
    '[123576]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:459"
( $at_check_trace; test-ovsdb parse-atoms '[{"type": "integer", "minInteger": -10, "maxInteger": 10}]' \
    '[-20]' \
    '[-11]' \
    '[-10]' \
    '[-9]' \
    '[1]' \
    '[9]' \
    '[10]' \
    '[11]' \
    '[123576]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "constraint violation: -20 is not in the valid range -10 to 10 (inclusive)
constraint violation: -11 is not in the valid range -10 to 10 (inclusive)
-10
-9
1
9
10
constraint violation: 11 is not in the valid range -10 to 10 (inclusive)
constraint violation: 123576 is not in the valid range -10 to 10 (inclusive)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:459"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1499
#AT_START_1500
at_fn_group_banner 1500 'ovsdb-data.at:459' \
  "integers in range -10 to 10 - Python2" "          " 69
at_xfail=no
(
  $as_echo "1500. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:459" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:459"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:459: \$PYTHON \$srcdir/test-ovsdb.py parse-atoms '[{\"type\": \"integer\", \"minInteger\": -10, \"maxInteger\": 10}]' \\
    '[-20]' \\
    '[-11]' \\
    '[-10]' \\
    '[-9]' \\
    '[1]' \\
    '[9]' \\
    '[10]' \\
    '[11]' \\
    '[123576]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:459"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-atoms '[{"type": "integer", "minInteger": -10, "maxInteger": 10}]' \
    '[-20]' \
    '[-11]' \
    '[-10]' \
    '[-9]' \
    '[1]' \
    '[9]' \
    '[10]' \
    '[11]' \
    '[123576]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "constraint violation: -20 is not in the valid range -10 to 10 (inclusive)
constraint violation: -11 is not in the valid range -10 to 10 (inclusive)
-10
-9
1
9
10
constraint violation: 11 is not in the valid range -10 to 10 (inclusive)
constraint violation: 123576 is not in the valid range -10 to 10 (inclusive)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:459"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1500
#AT_START_1501
at_fn_group_banner 1501 'ovsdb-data.at:459' \
  "integers in range -10 to 10 - Python3" "          " 69
at_xfail=no
(
  $as_echo "1501. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:459" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:459"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:459: \$PYTHON3 \$srcdir/test-ovsdb.py parse-atoms '[{\"type\": \"integer\", \"minInteger\": -10, \"maxInteger\": 10}]' \\
    '[-20]' \\
    '[-11]' \\
    '[-10]' \\
    '[-9]' \\
    '[1]' \\
    '[9]' \\
    '[10]' \\
    '[11]' \\
    '[123576]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:459"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-atoms '[{"type": "integer", "minInteger": -10, "maxInteger": 10}]' \
    '[-20]' \
    '[-11]' \
    '[-10]' \
    '[-9]' \
    '[1]' \
    '[9]' \
    '[10]' \
    '[11]' \
    '[123576]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "constraint violation: -20 is not in the valid range -10 to 10 (inclusive)
constraint violation: -11 is not in the valid range -10 to 10 (inclusive)
-10
-9
1
9
10
constraint violation: 11 is not in the valid range -10 to 10 (inclusive)
constraint violation: 123576 is not in the valid range -10 to 10 (inclusive)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:459"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1501
#AT_START_1502
at_fn_group_banner 1502 'ovsdb-data.at:480' \
  "reals >= 5 - C" "                                 " 69
at_xfail=no
(
  $as_echo "1502. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:480: test-ovsdb parse-atoms '[{\"type\": \"real\", \"minReal\": 5}]' \\
    '[0]' \\
    '[4]' \\
    '[5]' \\
    '[6]' \\
    '[12345]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:480"
( $at_check_trace; test-ovsdb parse-atoms '[{"type": "real", "minReal": 5}]' \
    '[0]' \
    '[4]' \
    '[5]' \
    '[6]' \
    '[12345]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "constraint violation: 0 is less than minimum allowed value 5
constraint violation: 4 is less than minimum allowed value 5
5
6
12345
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:480"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1502
#AT_START_1503
at_fn_group_banner 1503 'ovsdb-data.at:480' \
  "reals >= 5 - Python2" "                           " 69
at_xfail=no
(
  $as_echo "1503. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:480" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:480"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:480: \$PYTHON \$srcdir/test-ovsdb.py parse-atoms '[{\"type\": \"real\", \"minReal\": 5}]' \\
    '[0]' \\
    '[4]' \\
    '[5]' \\
    '[6]' \\
    '[12345]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:480"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-atoms '[{"type": "real", "minReal": 5}]' \
    '[0]' \
    '[4]' \
    '[5]' \
    '[6]' \
    '[12345]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "constraint violation: 0 is less than minimum allowed value 5
constraint violation: 4 is less than minimum allowed value 5
5
6
12345
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:480"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1503
#AT_START_1504
at_fn_group_banner 1504 'ovsdb-data.at:480' \
  "reals >= 5 - Python3" "                           " 69
at_xfail=no
(
  $as_echo "1504. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:480" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:480"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:480: \$PYTHON3 \$srcdir/test-ovsdb.py parse-atoms '[{\"type\": \"real\", \"minReal\": 5}]' \\
    '[0]' \\
    '[4]' \\
    '[5]' \\
    '[6]' \\
    '[12345]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:480"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-atoms '[{"type": "real", "minReal": 5}]' \
    '[0]' \
    '[4]' \
    '[5]' \
    '[6]' \
    '[12345]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "constraint violation: 0 is less than minimum allowed value 5
constraint violation: 4 is less than minimum allowed value 5
5
6
12345
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:480"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1504
#AT_START_1505
at_fn_group_banner 1505 'ovsdb-data.at:493' \
  "reals <= -1 - C" "                                " 69
at_xfail=no
(
  $as_echo "1505. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:493: test-ovsdb parse-atoms '[{\"type\": \"real\", \"maxReal\": -1}]' \\
    '[0]' \\
    '[-1]' \\
    '[-2]' \\
    '[-123]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:493"
( $at_check_trace; test-ovsdb parse-atoms '[{"type": "real", "maxReal": -1}]' \
    '[0]' \
    '[-1]' \
    '[-2]' \
    '[-123]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "constraint violation: 0 is greater than maximum allowed value -1
-1
-2
-123
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:493"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1505
#AT_START_1506
at_fn_group_banner 1506 'ovsdb-data.at:493' \
  "reals <= -1 - Python2" "                          " 69
at_xfail=no
(
  $as_echo "1506. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:493" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:493"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:493: \$PYTHON \$srcdir/test-ovsdb.py parse-atoms '[{\"type\": \"real\", \"maxReal\": -1}]' \\
    '[0]' \\
    '[-1]' \\
    '[-2]' \\
    '[-123]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:493"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-atoms '[{"type": "real", "maxReal": -1}]' \
    '[0]' \
    '[-1]' \
    '[-2]' \
    '[-123]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "constraint violation: 0 is greater than maximum allowed value -1
-1
-2
-123
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:493"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1506
#AT_START_1507
at_fn_group_banner 1507 'ovsdb-data.at:493' \
  "reals <= -1 - Python3" "                          " 69
at_xfail=no
(
  $as_echo "1507. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:493" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:493"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:493: \$PYTHON3 \$srcdir/test-ovsdb.py parse-atoms '[{\"type\": \"real\", \"maxReal\": -1}]' \\
    '[0]' \\
    '[-1]' \\
    '[-2]' \\
    '[-123]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:493"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-atoms '[{"type": "real", "maxReal": -1}]' \
    '[0]' \
    '[-1]' \
    '[-2]' \
    '[-123]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "constraint violation: 0 is greater than maximum allowed value -1
-1
-2
-123
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:493"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1507
#AT_START_1508
at_fn_group_banner 1508 'ovsdb-data.at:504' \
  "reals in range -10 to 10 - C" "                   " 69
at_xfail=no
(
  $as_echo "1508. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:504: test-ovsdb parse-atoms '[{\"type\": \"real\", \"minReal\": -10, \"maxReal\": 10}]' \\
    '[-20]' \\
    '[-11]' \\
    '[-10]' \\
    '[-9]' \\
    '[1]' \\
    '[9]' \\
    '[10]' \\
    '[11]' \\
    '[123576]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:504"
( $at_check_trace; test-ovsdb parse-atoms '[{"type": "real", "minReal": -10, "maxReal": 10}]' \
    '[-20]' \
    '[-11]' \
    '[-10]' \
    '[-9]' \
    '[1]' \
    '[9]' \
    '[10]' \
    '[11]' \
    '[123576]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "constraint violation: -20 is not in the valid range -10 to 10 (inclusive)
constraint violation: -11 is not in the valid range -10 to 10 (inclusive)
-10
-9
1
9
10
constraint violation: 11 is not in the valid range -10 to 10 (inclusive)
constraint violation: 123576 is not in the valid range -10 to 10 (inclusive)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:504"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1508
#AT_START_1509
at_fn_group_banner 1509 'ovsdb-data.at:504' \
  "reals in range -10 to 10 - Python2" "             " 69
at_xfail=no
(
  $as_echo "1509. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:504" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:504"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:504: \$PYTHON \$srcdir/test-ovsdb.py parse-atoms '[{\"type\": \"real\", \"minReal\": -10, \"maxReal\": 10}]' \\
    '[-20]' \\
    '[-11]' \\
    '[-10]' \\
    '[-9]' \\
    '[1]' \\
    '[9]' \\
    '[10]' \\
    '[11]' \\
    '[123576]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:504"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-atoms '[{"type": "real", "minReal": -10, "maxReal": 10}]' \
    '[-20]' \
    '[-11]' \
    '[-10]' \
    '[-9]' \
    '[1]' \
    '[9]' \
    '[10]' \
    '[11]' \
    '[123576]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "constraint violation: -20 is not in the valid range -10 to 10 (inclusive)
constraint violation: -11 is not in the valid range -10 to 10 (inclusive)
-10
-9
1
9
10
constraint violation: 11 is not in the valid range -10 to 10 (inclusive)
constraint violation: 123576 is not in the valid range -10 to 10 (inclusive)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:504"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1509
#AT_START_1510
at_fn_group_banner 1510 'ovsdb-data.at:504' \
  "reals in range -10 to 10 - Python3" "             " 69
at_xfail=no
(
  $as_echo "1510. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:504" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:504"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:504: \$PYTHON3 \$srcdir/test-ovsdb.py parse-atoms '[{\"type\": \"real\", \"minReal\": -10, \"maxReal\": 10}]' \\
    '[-20]' \\
    '[-11]' \\
    '[-10]' \\
    '[-9]' \\
    '[1]' \\
    '[9]' \\
    '[10]' \\
    '[11]' \\
    '[123576]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:504"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-atoms '[{"type": "real", "minReal": -10, "maxReal": 10}]' \
    '[-20]' \
    '[-11]' \
    '[-10]' \
    '[-9]' \
    '[1]' \
    '[9]' \
    '[10]' \
    '[11]' \
    '[123576]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "constraint violation: -20 is not in the valid range -10 to 10 (inclusive)
constraint violation: -11 is not in the valid range -10 to 10 (inclusive)
-10
-9
1
9
10
constraint violation: 11 is not in the valid range -10 to 10 (inclusive)
constraint violation: 123576 is not in the valid range -10 to 10 (inclusive)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:504"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1510
#AT_START_1511
at_fn_group_banner 1511 'ovsdb-data.at:525' \
  "strings at least 2 characters long - C" "         " 69
at_xfail=no
(
  $as_echo "1511. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:525: test-ovsdb parse-atoms '{\"type\": \"string\", \"minLength\": 2}' \\
    '[\"\"]' \\
    '[\"a\"]' \\
    '[\"ab\"]' \\
    '[\"abc\"]' \\
    '[\"\\ud834\\udd1e\"]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:525"
( $at_check_trace; test-ovsdb parse-atoms '{"type": "string", "minLength": 2}' \
    '[""]' \
    '["a"]' \
    '["ab"]' \
    '["abc"]' \
    '["\ud834\udd1e"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "constraint violation: \"\" length 0 is less than minimum allowed length 2
constraint violation: \"a\" length 1 is less than minimum allowed length 2
\"ab\"
\"abc\"
constraint violation: \"𝄞\" length 1 is less than minimum allowed length 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:525"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1511
#AT_START_1512
at_fn_group_banner 1512 'ovsdb-data.at:525' \
  "strings at least 2 characters long - Python2" "   " 69
at_xfail=no
(
  $as_echo "1512. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:525" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:525"
      { set +x
$as_echo "$at_srcdir/ovsdb-data.at:525: \$PYTHON -c 'unichr(0x10000)' || exit 77"
at_fn_check_prepare_dynamic "$PYTHON -c 'unichr(0x10000)' || exit 77" "ovsdb-data.at:525"
( $at_check_trace; $PYTHON -c 'unichr(0x10000)' || exit 77
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:525"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:525: \$PYTHON \$srcdir/test-ovsdb.py parse-atoms '{\"type\": \"string\", \"minLength\": 2}' \\
    '[\"\"]' \\
    '[\"a\"]' \\
    '[\"ab\"]' \\
    '[\"abc\"]' \\
    '[\"\\ud834\\udd1e\"]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:525"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-atoms '{"type": "string", "minLength": 2}' \
    '[""]' \
    '["a"]' \
    '["ab"]' \
    '["abc"]' \
    '["\ud834\udd1e"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "constraint violation: \"\" length 0 is less than minimum allowed length 2
constraint violation: \"a\" length 1 is less than minimum allowed length 2
\"ab\"
\"abc\"
constraint violation: \"𝄞\" length 1 is less than minimum allowed length 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:525"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1512
#AT_START_1513
at_fn_group_banner 1513 'ovsdb-data.at:525' \
  "strings at least 2 characters long - Python3" "   " 69
at_xfail=no
(
  $as_echo "1513. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:525" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:525"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:525: \$PYTHON3 \$srcdir/test-ovsdb.py parse-atoms '{\"type\": \"string\", \"minLength\": 2}' \\
    '[\"\"]' \\
    '[\"a\"]' \\
    '[\"ab\"]' \\
    '[\"abc\"]' \\
    '[\"\\ud834\\udd1e\"]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:525"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-atoms '{"type": "string", "minLength": 2}' \
    '[""]' \
    '["a"]' \
    '["ab"]' \
    '["abc"]' \
    '["\ud834\udd1e"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "constraint violation: \"\" length 0 is less than minimum allowed length 2
constraint violation: \"a\" length 1 is less than minimum allowed length 2
\"ab\"
\"abc\"
constraint violation: \"𝄞\" length 1 is less than minimum allowed length 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:525"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1513
#AT_START_1514
at_fn_group_banner 1514 'ovsdb-data.at:543' \
  "strings no more than 2 characters long - C" "     " 69
at_xfail=no
(
  $as_echo "1514. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:543: test-ovsdb parse-atoms '{\"type\": \"string\", \"maxLength\": 2}' \\
    '[\"\"]' \\
    '[\"a\"]' \\
    '[\"ab\"]' \\
    '[\"abc\"]' \\
    '[\"de\"]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:543"
( $at_check_trace; test-ovsdb parse-atoms '{"type": "string", "maxLength": 2}' \
    '[""]' \
    '["a"]' \
    '["ab"]' \
    '["abc"]' \
    '["de"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"\"
\"a\"
\"ab\"
constraint violation: \"abc\" length 3 is greater than maximum allowed length 2
\"de\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:543"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1514
#AT_START_1515
at_fn_group_banner 1515 'ovsdb-data.at:543' \
  "strings no more than 2 characters long - Python2" "" 69
at_xfail=no
(
  $as_echo "1515. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:543" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:543"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:543: \$PYTHON \$srcdir/test-ovsdb.py parse-atoms '{\"type\": \"string\", \"maxLength\": 2}' \\
    '[\"\"]' \\
    '[\"a\"]' \\
    '[\"ab\"]' \\
    '[\"abc\"]' \\
    '[\"de\"]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:543"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-atoms '{"type": "string", "maxLength": 2}' \
    '[""]' \
    '["a"]' \
    '["ab"]' \
    '["abc"]' \
    '["de"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"\"
\"a\"
\"ab\"
constraint violation: \"abc\" length 3 is greater than maximum allowed length 2
\"de\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:543"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1515
#AT_START_1516
at_fn_group_banner 1516 'ovsdb-data.at:543' \
  "strings no more than 2 characters long - Python3" "" 69
at_xfail=no
(
  $as_echo "1516. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:543" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:543"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:543: \$PYTHON3 \$srcdir/test-ovsdb.py parse-atoms '{\"type\": \"string\", \"maxLength\": 2}' \\
    '[\"\"]' \\
    '[\"a\"]' \\
    '[\"ab\"]' \\
    '[\"abc\"]' \\
    '[\"de\"]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:543"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-atoms '{"type": "string", "maxLength": 2}' \
    '[""]' \
    '["a"]' \
    '["ab"]' \
    '["abc"]' \
    '["de"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"\"
\"a\"
\"ab\"
constraint violation: \"abc\" length 3 is greater than maximum allowed length 2
\"de\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:543"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1516
#AT_START_1517
at_fn_group_banner 1517 'ovsdb-data.at:558' \
  "integer JSON datum - C" "                         " 70
at_xfail=no
(
  $as_echo "1517. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:558: test-ovsdb parse-data '[\"integer\"]' '[0]' '[\"set\",[1]]' '[-1]'"
at_fn_check_prepare_trace "ovsdb-data.at:558"
( $at_check_trace; test-ovsdb parse-data '["integer"]' '[0]' '["set",[1]]' '[-1]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
1
-1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:558"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1517
#AT_START_1518
at_fn_group_banner 1518 'ovsdb-data.at:558' \
  "integer JSON datum - Python2" "                   " 70
at_xfail=no
(
  $as_echo "1518. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:558" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:558"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:558: \$PYTHON \$srcdir/test-ovsdb.py parse-data '[\"integer\"]' '[0]' '[\"set\",[1]]' '[-1]'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-data '[\"integer\"]' '[0]' '[\"set\",[1]]' '[-1]'" "ovsdb-data.at:558"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-data '["integer"]' '[0]' '["set",[1]]' '[-1]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
1
-1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:558"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1518
#AT_START_1519
at_fn_group_banner 1519 'ovsdb-data.at:558' \
  "integer JSON datum - Python3" "                   " 70
at_xfail=no
(
  $as_echo "1519. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:558" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:558"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:558: \$PYTHON3 \$srcdir/test-ovsdb.py parse-data '[\"integer\"]' '[0]' '[\"set\",[1]]' '[-1]'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-data '[\"integer\"]' '[0]' '[\"set\",[1]]' '[-1]'" "ovsdb-data.at:558"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-data '["integer"]' '[0]' '["set",[1]]' '[-1]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
1
-1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:558"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1519
#AT_START_1520
at_fn_group_banner 1520 'ovsdb-data.at:564' \
  "integer string datum" "                           " 70
at_xfail=no
(
  $as_echo "1520. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:564: test-ovsdb parse-data-strings -- '[\"integer\"]' '0' '1' '-1' '+1'"
at_fn_check_prepare_trace "ovsdb-data.at:564"
( $at_check_trace; test-ovsdb parse-data-strings -- '["integer"]' '0' '1' '-1' '+1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
1
-1
1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:564"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1520
#AT_START_1521
at_fn_group_banner 1521 'ovsdb-data.at:571' \
  "real JSON datum - C" "                            " 70
at_xfail=no
(
  $as_echo "1521. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:571: test-ovsdb parse-data '[\"real\"]' '[0]' '[\"set\",[1.0]]' '[-1.25]'"
at_fn_check_prepare_trace "ovsdb-data.at:571"
( $at_check_trace; test-ovsdb parse-data '["real"]' '[0]' '["set",[1.0]]' '[-1.25]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
1
-1.25
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1521
#AT_START_1522
at_fn_group_banner 1522 'ovsdb-data.at:571' \
  "real JSON datum - Python2" "                      " 70
at_xfail=no
(
  $as_echo "1522. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:571" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:571"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:571: \$PYTHON \$srcdir/test-ovsdb.py parse-data '[\"real\"]' '[0]' '[\"set\",[1.0]]' '[-1.25]'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-data '[\"real\"]' '[0]' '[\"set\",[1.0]]' '[-1.25]'" "ovsdb-data.at:571"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-data '["real"]' '[0]' '["set",[1.0]]' '[-1.25]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
1
-1.25
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1522
#AT_START_1523
at_fn_group_banner 1523 'ovsdb-data.at:571' \
  "real JSON datum - Python3" "                      " 70
at_xfail=no
(
  $as_echo "1523. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:571" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:571"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:571: \$PYTHON3 \$srcdir/test-ovsdb.py parse-data '[\"real\"]' '[0]' '[\"set\",[1.0]]' '[-1.25]'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-data '[\"real\"]' '[0]' '[\"set\",[1.0]]' '[-1.25]'" "ovsdb-data.at:571"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-data '["real"]' '[0]' '["set",[1.0]]' '[-1.25]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
1
-1.25
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1523
#AT_START_1524
at_fn_group_banner 1524 'ovsdb-data.at:577' \
  "real string datum" "                              " 70
at_xfail=no
(
  $as_echo "1524. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:577: test-ovsdb parse-data-strings -- '[\"real\"]' '0' '1.0' '-1.25'"
at_fn_check_prepare_trace "ovsdb-data.at:577"
( $at_check_trace; test-ovsdb parse-data-strings -- '["real"]' '0' '1.0' '-1.25'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
1
-1.25
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:577"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1524
#AT_START_1525
at_fn_group_banner 1525 'ovsdb-data.at:583' \
  "boolean JSON datum - C" "                         " 70
at_xfail=no
(
  $as_echo "1525. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:583: test-ovsdb parse-data '[\"boolean\"]' '[\"set\", [true]]' '[false]' "
at_fn_check_prepare_trace "ovsdb-data.at:583"
( $at_check_trace; test-ovsdb parse-data '["boolean"]' '["set", [true]]' '[false]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "true
false
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:583"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1525
#AT_START_1526
at_fn_group_banner 1526 'ovsdb-data.at:583' \
  "boolean JSON datum - Python2" "                   " 70
at_xfail=no
(
  $as_echo "1526. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:583" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:583"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:583: \$PYTHON \$srcdir/test-ovsdb.py parse-data '[\"boolean\"]' '[\"set\", [true]]' '[false]' "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-data '[\"boolean\"]' '[\"set\", [true]]' '[false]' " "ovsdb-data.at:583"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-data '["boolean"]' '["set", [true]]' '[false]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "true
false
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:583"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1526
#AT_START_1527
at_fn_group_banner 1527 'ovsdb-data.at:583' \
  "boolean JSON datum - Python3" "                   " 70
at_xfail=no
(
  $as_echo "1527. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:583" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:583"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:583: \$PYTHON3 \$srcdir/test-ovsdb.py parse-data '[\"boolean\"]' '[\"set\", [true]]' '[false]' "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-data '[\"boolean\"]' '[\"set\", [true]]' '[false]' " "ovsdb-data.at:583"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-data '["boolean"]' '["set", [true]]' '[false]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "true
false
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:583"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1527
#AT_START_1528
at_fn_group_banner 1528 'ovsdb-data.at:588' \
  "boolean string datum" "                           " 70
at_xfail=no
(
  $as_echo "1528. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:588: test-ovsdb parse-data-strings '[\"boolean\"]' 'true' 'false' "
at_fn_check_prepare_trace "ovsdb-data.at:588"
( $at_check_trace; test-ovsdb parse-data-strings '["boolean"]' 'true' 'false'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "true
false
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1528
#AT_START_1529
at_fn_group_banner 1529 'ovsdb-data.at:593' \
  "string JSON datum - C" "                          " 70
at_xfail=no
(
  $as_echo "1529. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:593: test-ovsdb parse-data '[\"string\"]' '[\"set\",[\"\"]]' '[\"true\"]' '[\"\\\"\\\\\\/\\b\\f\\n\\r\\t\"]'"
at_fn_check_prepare_trace "ovsdb-data.at:593"
( $at_check_trace; test-ovsdb parse-data '["string"]' '["set",[""]]' '["true"]' '["\"\\\/\b\f\n\r\t"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"\"
\"true\"
\"\\\"\\\\/\\b\\f\\n\\r\\t\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:593"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1529
#AT_START_1530
at_fn_group_banner 1530 'ovsdb-data.at:593' \
  "string JSON datum - Python2" "                    " 70
at_xfail=no
(
  $as_echo "1530. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:593" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:593"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:593: \$PYTHON \$srcdir/test-ovsdb.py parse-data '[\"string\"]' '[\"set\",[\"\"]]' '[\"true\"]' '[\"\\\"\\\\\\/\\b\\f\\n\\r\\t\"]'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-data '[\"string\"]' '[\"set\",[\"\"]]' '[\"true\"]' '[\"\\\"\\\\\\/\\b\\f\\n\\r\\t\"]'" "ovsdb-data.at:593"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-data '["string"]' '["set",[""]]' '["true"]' '["\"\\\/\b\f\n\r\t"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"\"
\"true\"
\"\\\"\\\\/\\b\\f\\n\\r\\t\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:593"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1530
#AT_START_1531
at_fn_group_banner 1531 'ovsdb-data.at:593' \
  "string JSON datum - Python3" "                    " 70
at_xfail=no
(
  $as_echo "1531. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:593" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:593"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:593: \$PYTHON3 \$srcdir/test-ovsdb.py parse-data '[\"string\"]' '[\"set\",[\"\"]]' '[\"true\"]' '[\"\\\"\\\\\\/\\b\\f\\n\\r\\t\"]'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-data '[\"string\"]' '[\"set\",[\"\"]]' '[\"true\"]' '[\"\\\"\\\\\\/\\b\\f\\n\\r\\t\"]'" "ovsdb-data.at:593"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-data '["string"]' '["set",[""]]' '["true"]' '["\"\\\/\b\f\n\r\t"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"\"
\"true\"
\"\\\"\\\\/\\b\\f\\n\\r\\t\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:593"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1531
#AT_START_1532
at_fn_group_banner 1532 'ovsdb-data.at:599' \
  "string string datum" "                            " 70
at_xfail=no
(
  $as_echo "1532. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:599: test-ovsdb parse-data-strings '[\"string\"]' '\"x\"' '\"\"' '\"true\"' '\"\\\"\\\\\\/\\b\\f\\n\\r\\t\"'"
at_fn_check_prepare_trace "ovsdb-data.at:599"
( $at_check_trace; test-ovsdb parse-data-strings '["string"]' '"x"' '""' '"true"' '"\"\\\/\b\f\n\r\t"'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "x
\"\"
\"true\"
\"\\\"\\\\/\\b\\f\\n\\r\\t\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:599"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1532
#AT_START_1533
at_fn_group_banner 1533 'ovsdb-data.at:608' \
  "JSON optional boolean - C" "                      " 71
at_xfail=no
(
  $as_echo "1533. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:608: test-ovsdb parse-data '{\"key\": \"boolean\", \"min\": 0}' \\
    '[true]' \\
    '[\"set\", [false]]' \\
    '[\"set\", []]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:608"
( $at_check_trace; test-ovsdb parse-data '{"key": "boolean", "min": 0}' \
    '[true]' \
    '["set", [false]]' \
    '["set", []]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "true
false
[\"set\",[]]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:608"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1533
#AT_START_1534
at_fn_group_banner 1534 'ovsdb-data.at:608' \
  "JSON optional boolean - Python2" "                " 71
at_xfail=no
(
  $as_echo "1534. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:608" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:608"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:608: \$PYTHON \$srcdir/test-ovsdb.py parse-data '{\"key\": \"boolean\", \"min\": 0}' \\
    '[true]' \\
    '[\"set\", [false]]' \\
    '[\"set\", []]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:608"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-data '{"key": "boolean", "min": 0}' \
    '[true]' \
    '["set", [false]]' \
    '["set", []]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "true
false
[\"set\",[]]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:608"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1534
#AT_START_1535
at_fn_group_banner 1535 'ovsdb-data.at:608' \
  "JSON optional boolean - Python3" "                " 71
at_xfail=no
(
  $as_echo "1535. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:608" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:608"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:608: \$PYTHON3 \$srcdir/test-ovsdb.py parse-data '{\"key\": \"boolean\", \"min\": 0}' \\
    '[true]' \\
    '[\"set\", [false]]' \\
    '[\"set\", []]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:608"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-data '{"key": "boolean", "min": 0}' \
    '[true]' \
    '["set", [false]]' \
    '["set", []]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "true
false
[\"set\",[]]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:608"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1535
#AT_START_1536
at_fn_group_banner 1536 'ovsdb-data.at:618' \
  "string optional boolean" "                        " 71
at_xfail=no
(
  $as_echo "1536. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:618: test-ovsdb parse-data-strings '{\"key\": \"boolean\", \"min\": 0}' \\
    'true' \\
    'false' \\
    '[]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:618"
( $at_check_trace; test-ovsdb parse-data-strings '{"key": "boolean", "min": 0}' \
    'true' \
    'false' \
    '[]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "true
false
[]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:618"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1536
#AT_START_1537
at_fn_group_banner 1537 'ovsdb-data.at:628' \
  "JSON set of 0 or more integers - C" "             " 71
at_xfail=no
(
  $as_echo "1537. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:628: test-ovsdb parse-data '{\"key\": \"integer\", \"min\": 0, \"max\": \"unlimited\"}' \\
    '[\"set\", [0]]' \\
    '[1]' \\
    '[\"set\", [0, 1]]' \\
    '[\"set\", [0, 1, 2]]' \\
    '[\"set\", [0, 1, 2, 3, 4, 5]]' \\
    '[\"set\", [0, 1, 2, 3, 4, 5, 6, 7, 8]]' \\
    '[\"set\", [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:628"
( $at_check_trace; test-ovsdb parse-data '{"key": "integer", "min": 0, "max": "unlimited"}' \
    '["set", [0]]' \
    '[1]' \
    '["set", [0, 1]]' \
    '["set", [0, 1, 2]]' \
    '["set", [0, 1, 2, 3, 4, 5]]' \
    '["set", [0, 1, 2, 3, 4, 5, 6, 7, 8]]' \
    '["set", [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
1
[\"set\",[0,1]]
[\"set\",[0,1,2]]
[\"set\",[0,1,2,3,4,5]]
[\"set\",[0,1,2,3,4,5,6,7,8]]
[\"set\",[0,1,2,3,4,5,6,7,8,9,10]]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:628"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1537
#AT_START_1538
at_fn_group_banner 1538 'ovsdb-data.at:628' \
  "JSON set of 0 or more integers - Python2" "       " 71
at_xfail=no
(
  $as_echo "1538. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:628" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:628"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:628: \$PYTHON \$srcdir/test-ovsdb.py parse-data '{\"key\": \"integer\", \"min\": 0, \"max\": \"unlimited\"}' \\
    '[\"set\", [0]]' \\
    '[1]' \\
    '[\"set\", [0, 1]]' \\
    '[\"set\", [0, 1, 2]]' \\
    '[\"set\", [0, 1, 2, 3, 4, 5]]' \\
    '[\"set\", [0, 1, 2, 3, 4, 5, 6, 7, 8]]' \\
    '[\"set\", [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:628"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-data '{"key": "integer", "min": 0, "max": "unlimited"}' \
    '["set", [0]]' \
    '[1]' \
    '["set", [0, 1]]' \
    '["set", [0, 1, 2]]' \
    '["set", [0, 1, 2, 3, 4, 5]]' \
    '["set", [0, 1, 2, 3, 4, 5, 6, 7, 8]]' \
    '["set", [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
1
[\"set\",[0,1]]
[\"set\",[0,1,2]]
[\"set\",[0,1,2,3,4,5]]
[\"set\",[0,1,2,3,4,5,6,7,8]]
[\"set\",[0,1,2,3,4,5,6,7,8,9,10]]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:628"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1538
#AT_START_1539
at_fn_group_banner 1539 'ovsdb-data.at:628' \
  "JSON set of 0 or more integers - Python3" "       " 71
at_xfail=no
(
  $as_echo "1539. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:628" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:628"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:628: \$PYTHON3 \$srcdir/test-ovsdb.py parse-data '{\"key\": \"integer\", \"min\": 0, \"max\": \"unlimited\"}' \\
    '[\"set\", [0]]' \\
    '[1]' \\
    '[\"set\", [0, 1]]' \\
    '[\"set\", [0, 1, 2]]' \\
    '[\"set\", [0, 1, 2, 3, 4, 5]]' \\
    '[\"set\", [0, 1, 2, 3, 4, 5, 6, 7, 8]]' \\
    '[\"set\", [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:628"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-data '{"key": "integer", "min": 0, "max": "unlimited"}' \
    '["set", [0]]' \
    '[1]' \
    '["set", [0, 1]]' \
    '["set", [0, 1, 2]]' \
    '["set", [0, 1, 2, 3, 4, 5]]' \
    '["set", [0, 1, 2, 3, 4, 5, 6, 7, 8]]' \
    '["set", [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
1
[\"set\",[0,1]]
[\"set\",[0,1,2]]
[\"set\",[0,1,2,3,4,5]]
[\"set\",[0,1,2,3,4,5,6,7,8]]
[\"set\",[0,1,2,3,4,5,6,7,8,9,10]]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:628"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1539
#AT_START_1540
at_fn_group_banner 1540 'ovsdb-data.at:645' \
  "string set of 0 or more integers" "               " 71
at_xfail=no
(
  $as_echo "1540. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:645: test-ovsdb parse-data-strings '{\"key\": \"integer\", \"min\": 0, \"max\": \"unlimited\"}' \\
    '0' \\
    '0,1' \\
    '0, 1, 2' \\
    '[0, 1,2, 3, 4, 5]' \\
    '0, 1,2, 3,4, 5, 6, 7, 8' \\
    '[0, 1, 2, 3, 4,5, 6,7, 8, 9, 10]' \\
    '0-8' \\
    '[0-10']"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:645"
( $at_check_trace; test-ovsdb parse-data-strings '{"key": "integer", "min": 0, "max": "unlimited"}' \
    '0' \
    '0,1' \
    '0, 1, 2' \
    '[0, 1,2, 3, 4, 5]' \
    '0, 1,2, 3,4, 5, 6, 7, 8' \
    '[0, 1, 2, 3, 4,5, 6,7, 8, 9, 10]' \
    '0-8' \
    '[0-10']
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[0]
[0, 1]
[0, 1, 2]
[0, 1, 2, 3, 4, 5]
[0, 1, 2, 3, 4, 5, 6, 7, 8]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[0, 1, 2, 3, 4, 5, 6, 7, 8]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:645"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1540
#AT_START_1541
at_fn_group_banner 1541 'ovsdb-data.at:664' \
  "JSON set of 1 to 3 uuids - C" "                   " 71
at_xfail=no
(
  $as_echo "1541. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:664: test-ovsdb parse-data '{\"key\": \"uuid\", \"min\": 1, \"max\": 3}' \\
    '[\"set\", [[\"uuid\", \"550e8400-e29b-41d4-a716-446655440000\"]]]' \\
    '[\"uuid\", \"b5078be0-7664-4299-b836-8bcc03ef941f\"]' \\
    '[\"set\", [[\"uuid\", \"c5051240-30ff-43ed-b4b9-93cf3f050813\"],
              [\"uuid\", \"90558331-09af-4d2f-a572-509cad2e9088\"],
              [\"uuid\", \"550e8400-e29b-41d4-a716-446655440000\"]]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:664"
( $at_check_trace; test-ovsdb parse-data '{"key": "uuid", "min": 1, "max": 3}' \
    '["set", [["uuid", "550e8400-e29b-41d4-a716-446655440000"]]]' \
    '["uuid", "b5078be0-7664-4299-b836-8bcc03ef941f"]' \
    '["set", [["uuid", "c5051240-30ff-43ed-b4b9-93cf3f050813"],
              ["uuid", "90558331-09af-4d2f-a572-509cad2e9088"],
              ["uuid", "550e8400-e29b-41d4-a716-446655440000"]]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"uuid\",\"550e8400-e29b-41d4-a716-446655440000\"]
[\"uuid\",\"b5078be0-7664-4299-b836-8bcc03ef941f\"]
[\"set\",[[\"uuid\",\"550e8400-e29b-41d4-a716-446655440000\"],[\"uuid\",\"90558331-09af-4d2f-a572-509cad2e9088\"],[\"uuid\",\"c5051240-30ff-43ed-b4b9-93cf3f050813\"]]]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:664"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1541
#AT_START_1542
at_fn_group_banner 1542 'ovsdb-data.at:664' \
  "JSON set of 1 to 3 uuids - Python2" "             " 71
at_xfail=no
(
  $as_echo "1542. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:664" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:664"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:664: \$PYTHON \$srcdir/test-ovsdb.py parse-data '{\"key\": \"uuid\", \"min\": 1, \"max\": 3}' \\
    '[\"set\", [[\"uuid\", \"550e8400-e29b-41d4-a716-446655440000\"]]]' \\
    '[\"uuid\", \"b5078be0-7664-4299-b836-8bcc03ef941f\"]' \\
    '[\"set\", [[\"uuid\", \"c5051240-30ff-43ed-b4b9-93cf3f050813\"],
              [\"uuid\", \"90558331-09af-4d2f-a572-509cad2e9088\"],
              [\"uuid\", \"550e8400-e29b-41d4-a716-446655440000\"]]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:664"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-data '{"key": "uuid", "min": 1, "max": 3}' \
    '["set", [["uuid", "550e8400-e29b-41d4-a716-446655440000"]]]' \
    '["uuid", "b5078be0-7664-4299-b836-8bcc03ef941f"]' \
    '["set", [["uuid", "c5051240-30ff-43ed-b4b9-93cf3f050813"],
              ["uuid", "90558331-09af-4d2f-a572-509cad2e9088"],
              ["uuid", "550e8400-e29b-41d4-a716-446655440000"]]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"uuid\",\"550e8400-e29b-41d4-a716-446655440000\"]
[\"uuid\",\"b5078be0-7664-4299-b836-8bcc03ef941f\"]
[\"set\",[[\"uuid\",\"550e8400-e29b-41d4-a716-446655440000\"],[\"uuid\",\"90558331-09af-4d2f-a572-509cad2e9088\"],[\"uuid\",\"c5051240-30ff-43ed-b4b9-93cf3f050813\"]]]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:664"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1542
#AT_START_1543
at_fn_group_banner 1543 'ovsdb-data.at:664' \
  "JSON set of 1 to 3 uuids - Python3" "             " 71
at_xfail=no
(
  $as_echo "1543. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:664" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:664"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:664: \$PYTHON3 \$srcdir/test-ovsdb.py parse-data '{\"key\": \"uuid\", \"min\": 1, \"max\": 3}' \\
    '[\"set\", [[\"uuid\", \"550e8400-e29b-41d4-a716-446655440000\"]]]' \\
    '[\"uuid\", \"b5078be0-7664-4299-b836-8bcc03ef941f\"]' \\
    '[\"set\", [[\"uuid\", \"c5051240-30ff-43ed-b4b9-93cf3f050813\"],
              [\"uuid\", \"90558331-09af-4d2f-a572-509cad2e9088\"],
              [\"uuid\", \"550e8400-e29b-41d4-a716-446655440000\"]]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:664"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-data '{"key": "uuid", "min": 1, "max": 3}' \
    '["set", [["uuid", "550e8400-e29b-41d4-a716-446655440000"]]]' \
    '["uuid", "b5078be0-7664-4299-b836-8bcc03ef941f"]' \
    '["set", [["uuid", "c5051240-30ff-43ed-b4b9-93cf3f050813"],
              ["uuid", "90558331-09af-4d2f-a572-509cad2e9088"],
              ["uuid", "550e8400-e29b-41d4-a716-446655440000"]]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"uuid\",\"550e8400-e29b-41d4-a716-446655440000\"]
[\"uuid\",\"b5078be0-7664-4299-b836-8bcc03ef941f\"]
[\"set\",[[\"uuid\",\"550e8400-e29b-41d4-a716-446655440000\"],[\"uuid\",\"90558331-09af-4d2f-a572-509cad2e9088\"],[\"uuid\",\"c5051240-30ff-43ed-b4b9-93cf3f050813\"]]]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:664"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1543
#AT_START_1544
at_fn_group_banner 1544 'ovsdb-data.at:675' \
  "string set of 1 to 3 uuids" "                     " 71
at_xfail=no
(
  $as_echo "1544. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:675: test-ovsdb parse-data-strings '{\"key\": \"uuid\", \"min\": 1, \"max\": 3}' \\
    '[550e8400-e29b-41d4-a716-446655440000]' \\
    '[c5051240-30ff-43ed-b4b9-93cf3f050813,
      90558331-09af-4d2f-a572-509cad2e9088,
      550e8400-e29b-41d4-a716-446655440000]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:675"
( $at_check_trace; test-ovsdb parse-data-strings '{"key": "uuid", "min": 1, "max": 3}' \
    '[550e8400-e29b-41d4-a716-446655440000]' \
    '[c5051240-30ff-43ed-b4b9-93cf3f050813,
      90558331-09af-4d2f-a572-509cad2e9088,
      550e8400-e29b-41d4-a716-446655440000]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[550e8400-e29b-41d4-a716-446655440000]
[550e8400-e29b-41d4-a716-446655440000, 90558331-09af-4d2f-a572-509cad2e9088, c5051240-30ff-43ed-b4b9-93cf3f050813]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:675"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1544
#AT_START_1545
at_fn_group_banner 1545 'ovsdb-data.at:684' \
  "JSON set of 0 to 3 strings - C" "                 " 71
at_xfail=no
(
  $as_echo "1545. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:684: test-ovsdb parse-data '{\"key\": \"string\", \"min\": 0, \"max\": 3}' \\
    '[\"set\", []]' \\
    '[\"a longer string\"]' \\
    '[\"set\", [\"a relatively long string\"]]' \\
    '[\"set\", [\"short string\", \"a relatively long string\"]]' \\
    '[\"set\", [\"zzz\", \"short string\", \"a relatively long string\"]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:684"
( $at_check_trace; test-ovsdb parse-data '{"key": "string", "min": 0, "max": 3}' \
    '["set", []]' \
    '["a longer string"]' \
    '["set", ["a relatively long string"]]' \
    '["set", ["short string", "a relatively long string"]]' \
    '["set", ["zzz", "short string", "a relatively long string"]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"set\",[]]
\"a longer string\"
\"a relatively long string\"
[\"set\",[\"a relatively long string\",\"short string\"]]
[\"set\",[\"a relatively long string\",\"short string\",\"zzz\"]]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:684"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1545
#AT_START_1546
at_fn_group_banner 1546 'ovsdb-data.at:684' \
  "JSON set of 0 to 3 strings - Python2" "           " 71
at_xfail=no
(
  $as_echo "1546. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:684" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:684"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:684: \$PYTHON \$srcdir/test-ovsdb.py parse-data '{\"key\": \"string\", \"min\": 0, \"max\": 3}' \\
    '[\"set\", []]' \\
    '[\"a longer string\"]' \\
    '[\"set\", [\"a relatively long string\"]]' \\
    '[\"set\", [\"short string\", \"a relatively long string\"]]' \\
    '[\"set\", [\"zzz\", \"short string\", \"a relatively long string\"]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:684"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-data '{"key": "string", "min": 0, "max": 3}' \
    '["set", []]' \
    '["a longer string"]' \
    '["set", ["a relatively long string"]]' \
    '["set", ["short string", "a relatively long string"]]' \
    '["set", ["zzz", "short string", "a relatively long string"]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"set\",[]]
\"a longer string\"
\"a relatively long string\"
[\"set\",[\"a relatively long string\",\"short string\"]]
[\"set\",[\"a relatively long string\",\"short string\",\"zzz\"]]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:684"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1546
#AT_START_1547
at_fn_group_banner 1547 'ovsdb-data.at:684' \
  "JSON set of 0 to 3 strings - Python3" "           " 71
at_xfail=no
(
  $as_echo "1547. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:684" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:684"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:684: \$PYTHON3 \$srcdir/test-ovsdb.py parse-data '{\"key\": \"string\", \"min\": 0, \"max\": 3}' \\
    '[\"set\", []]' \\
    '[\"a longer string\"]' \\
    '[\"set\", [\"a relatively long string\"]]' \\
    '[\"set\", [\"short string\", \"a relatively long string\"]]' \\
    '[\"set\", [\"zzz\", \"short string\", \"a relatively long string\"]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:684"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-data '{"key": "string", "min": 0, "max": 3}' \
    '["set", []]' \
    '["a longer string"]' \
    '["set", ["a relatively long string"]]' \
    '["set", ["short string", "a relatively long string"]]' \
    '["set", ["zzz", "short string", "a relatively long string"]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"set\",[]]
\"a longer string\"
\"a relatively long string\"
[\"set\",[\"a relatively long string\",\"short string\"]]
[\"set\",[\"a relatively long string\",\"short string\",\"zzz\"]]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:684"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1547
#AT_START_1548
at_fn_group_banner 1548 'ovsdb-data.at:697' \
  "string set of 0 to 3 strings" "                   " 71
at_xfail=no
(
  $as_echo "1548. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:697: test-ovsdb parse-data-strings '{\"key\": \"string\", \"min\": 0, \"max\": 3}' \\
    '[]' \\
    '\"a relatively long string\"' \\
    '[\"short string\", \"a relatively long string\"]' \\
    '\"zzz\",\"short string\",\"a relatively long string\"'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:697"
( $at_check_trace; test-ovsdb parse-data-strings '{"key": "string", "min": 0, "max": 3}' \
    '[]' \
    '"a relatively long string"' \
    '["short string", "a relatively long string"]' \
    '"zzz","short string","a relatively long string"'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[]
[\"a relatively long string\"]
[\"a relatively long string\", \"short string\"]
[\"a relatively long string\", \"short string\", zzz]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:697"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1548
#AT_START_1549
at_fn_group_banner 1549 'ovsdb-data.at:708' \
  "duplicate boolean not allowed in JSON set - C" "  " 71
at_xfail=no
(
  $as_echo "1549. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:708: test-ovsdb parse-data '{\"key\": \"boolean\", \"max\": 5}' '[\"set\", [true, true]]'"
at_fn_check_prepare_trace "ovsdb-data.at:708"
( $at_check_trace; test-ovsdb parse-data '{"key": "boolean", "max": 5}' '["set", [true, true]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-data.at:708"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:708: if grep -F -e \"ovsdb error: set contains duplicate\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:708"
( $at_check_trace; if grep -F -e "ovsdb error: set contains duplicate" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:708"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1549
#AT_START_1550
at_fn_group_banner 1550 'ovsdb-data.at:708' \
  "duplicate boolean not allowed in JSON set - Python2" "" 71
at_xfail=no
(
  $as_echo "1550. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:708" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:708"

   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:708: \$PYTHON3 \$srcdir/test-ovsdb.py parse-data '{\"key\": \"boolean\", \"max\": 5}' '[\"set\", [true, true]]'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-data '{\"key\": \"boolean\", \"max\": 5}' '[\"set\", [true, true]]'" "ovsdb-data.at:708"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-data '{"key": "boolean", "max": 5}' '["set", [true, true]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-data.at:708"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:708: if grep -F -e \"ovsdb error: set contains duplicate\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:708"
( $at_check_trace; if grep -F -e "ovsdb error: set contains duplicate" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:708"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1550
#AT_START_1551
at_fn_group_banner 1551 'ovsdb-data.at:712' \
  "duplicate boolean not allowed in string set" "    " 71
at_xfail=no
(
  $as_echo "1551. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:712: test-ovsdb parse-data-strings '{\"key\": \"boolean\", \"max\": 5}' 'true, true'"
at_fn_check_prepare_trace "ovsdb-data.at:712"
( $at_check_trace; test-ovsdb parse-data-strings '{"key": "boolean", "max": 5}' 'true, true'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-data.at:712"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:712: if grep -F -e \"set contains duplicate value\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:712"
( $at_check_trace; if grep -F -e "set contains duplicate value" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:712"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1551
#AT_START_1552
at_fn_group_banner 1552 'ovsdb-data.at:716' \
  "duplicate integer not allowed in JSON set - C" "  " 71
at_xfail=no
(
  $as_echo "1552. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:716: test-ovsdb parse-data '{\"key\": \"integer\", \"max\": 5}' '[\"set\", [1, 2, 3, 1]]'"
at_fn_check_prepare_trace "ovsdb-data.at:716"
( $at_check_trace; test-ovsdb parse-data '{"key": "integer", "max": 5}' '["set", [1, 2, 3, 1]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-data.at:716"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:716: if grep -F -e \"ovsdb error: set contains duplicate\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:716"
( $at_check_trace; if grep -F -e "ovsdb error: set contains duplicate" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:716"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1552
#AT_START_1553
at_fn_group_banner 1553 'ovsdb-data.at:716' \
  "duplicate integer not allowed in JSON set - Python2" "" 71
at_xfail=no
(
  $as_echo "1553. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:716" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:716"

   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:716: \$PYTHON3 \$srcdir/test-ovsdb.py parse-data '{\"key\": \"integer\", \"max\": 5}' '[\"set\", [1, 2, 3, 1]]'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-data '{\"key\": \"integer\", \"max\": 5}' '[\"set\", [1, 2, 3, 1]]'" "ovsdb-data.at:716"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-data '{"key": "integer", "max": 5}' '["set", [1, 2, 3, 1]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-data.at:716"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:716: if grep -F -e \"ovsdb error: set contains duplicate\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:716"
( $at_check_trace; if grep -F -e "ovsdb error: set contains duplicate" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:716"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1553
#AT_START_1554
at_fn_group_banner 1554 'ovsdb-data.at:720' \
  "duplicate integer not allowed in string set" "    " 71
at_xfail=no
(
  $as_echo "1554. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:720: test-ovsdb parse-data-strings '{\"key\": \"integer\", \"max\": 5}' '[1, 2, 3, 1]'"
at_fn_check_prepare_trace "ovsdb-data.at:720"
( $at_check_trace; test-ovsdb parse-data-strings '{"key": "integer", "max": 5}' '[1, 2, 3, 1]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-data.at:720"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:720: if grep -F -e \"set contains duplicate value\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:720"
( $at_check_trace; if grep -F -e "set contains duplicate value" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:720"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1554
#AT_START_1555
at_fn_group_banner 1555 'ovsdb-data.at:724' \
  "duplicate real not allowed in JSON set - C" "     " 71
at_xfail=no
(
  $as_echo "1555. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:724: test-ovsdb parse-data '{\"key\": \"real\", \"max\": 5}' '[\"set\", [0.0, -0.0]]'"
at_fn_check_prepare_trace "ovsdb-data.at:724"
( $at_check_trace; test-ovsdb parse-data '{"key": "real", "max": 5}' '["set", [0.0, -0.0]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-data.at:724"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:724: if grep -F -e \"ovsdb error: set contains duplicate\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:724"
( $at_check_trace; if grep -F -e "ovsdb error: set contains duplicate" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:724"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1555
#AT_START_1556
at_fn_group_banner 1556 'ovsdb-data.at:724' \
  "duplicate real not allowed in JSON set - Python2" "" 71
at_xfail=no
(
  $as_echo "1556. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:724" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:724"

   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:724: \$PYTHON3 \$srcdir/test-ovsdb.py parse-data '{\"key\": \"real\", \"max\": 5}' '[\"set\", [0.0, -0.0]]'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-data '{\"key\": \"real\", \"max\": 5}' '[\"set\", [0.0, -0.0]]'" "ovsdb-data.at:724"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-data '{"key": "real", "max": 5}' '["set", [0.0, -0.0]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-data.at:724"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:724: if grep -F -e \"ovsdb error: set contains duplicate\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:724"
( $at_check_trace; if grep -F -e "ovsdb error: set contains duplicate" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:724"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1556
#AT_START_1557
at_fn_group_banner 1557 'ovsdb-data.at:728' \
  "duplicate real not allowed in string set" "       " 71
at_xfail=no
(
  $as_echo "1557. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:728: test-ovsdb parse-data-strings '{\"key\": \"real\", \"max\": 5}' '0.0, -0.0'"
at_fn_check_prepare_trace "ovsdb-data.at:728"
( $at_check_trace; test-ovsdb parse-data-strings '{"key": "real", "max": 5}' '0.0, -0.0'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-data.at:728"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:728: if grep -F -e \"set contains duplicate value\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:728"
( $at_check_trace; if grep -F -e "set contains duplicate value" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:728"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1557
#AT_START_1558
at_fn_group_banner 1558 'ovsdb-data.at:732' \
  "duplicate string not allowed in JSON set - C" "   " 71
at_xfail=no
(
  $as_echo "1558. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:732: test-ovsdb parse-data '{\"key\": \"string\", \"max\": 5}' '[\"set\", [\"asdf\", \"ASDF\", \"asdf\"]]'"
at_fn_check_prepare_trace "ovsdb-data.at:732"
( $at_check_trace; test-ovsdb parse-data '{"key": "string", "max": 5}' '["set", ["asdf", "ASDF", "asdf"]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-data.at:732"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:732: if grep -F -e \"ovsdb error: set contains duplicate\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:732"
( $at_check_trace; if grep -F -e "ovsdb error: set contains duplicate" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:732"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1558
#AT_START_1559
at_fn_group_banner 1559 'ovsdb-data.at:732' \
  "duplicate string not allowed in JSON set - Python2" "" 71
at_xfail=no
(
  $as_echo "1559. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:732" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:732"

   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:732: \$PYTHON3 \$srcdir/test-ovsdb.py parse-data '{\"key\": \"string\", \"max\": 5}' '[\"set\", [\"asdf\", \"ASDF\", \"asdf\"]]'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-data '{\"key\": \"string\", \"max\": 5}' '[\"set\", [\"asdf\", \"ASDF\", \"asdf\"]]'" "ovsdb-data.at:732"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-data '{"key": "string", "max": 5}' '["set", ["asdf", "ASDF", "asdf"]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-data.at:732"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:732: if grep -F -e \"ovsdb error: set contains duplicate\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:732"
( $at_check_trace; if grep -F -e "ovsdb error: set contains duplicate" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:732"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1559
#AT_START_1560
at_fn_group_banner 1560 'ovsdb-data.at:736' \
  "duplicate string not allowed in string set" "     " 71
at_xfail=no
(
  $as_echo "1560. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:736: test-ovsdb parse-data-strings '{\"key\": \"string\", \"max\": 5}' 'asdf, ASDF, \"asdf\"'"
at_fn_check_prepare_trace "ovsdb-data.at:736"
( $at_check_trace; test-ovsdb parse-data-strings '{"key": "string", "max": 5}' 'asdf, ASDF, "asdf"'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-data.at:736"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:736: if grep -F -e \"set contains duplicate value\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:736"
( $at_check_trace; if grep -F -e "set contains duplicate value" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:736"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1560
#AT_START_1561
at_fn_group_banner 1561 'ovsdb-data.at:740' \
  "duplicate uuid not allowed in JSON set - C" "     " 71
at_xfail=no
(
  $as_echo "1561. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:740: test-ovsdb parse-data '{\"key\": \"uuid\", \"max\": 5}' \\
    '[\"set\", [[\"uuid\", \"7ef21525-0088-4a28-a418-5518413e43ea\"],
              [\"uuid\", \"355ad037-f1da-40aa-b47c-ff9c7e8c6a38\"],
              [\"uuid\", \"7ef21525-0088-4a28-a418-5518413e43ea\"]]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:740"
( $at_check_trace; test-ovsdb parse-data '{"key": "uuid", "max": 5}' \
    '["set", [["uuid", "7ef21525-0088-4a28-a418-5518413e43ea"],
              ["uuid", "355ad037-f1da-40aa-b47c-ff9c7e8c6a38"],
              ["uuid", "7ef21525-0088-4a28-a418-5518413e43ea"]]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-data.at:740"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:740: if grep -F -e \"ovsdb error: set contains duplicate\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:740"
( $at_check_trace; if grep -F -e "ovsdb error: set contains duplicate" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:740"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1561
#AT_START_1562
at_fn_group_banner 1562 'ovsdb-data.at:740' \
  "duplicate uuid not allowed in JSON set - Python2" "" 71
at_xfail=no
(
  $as_echo "1562. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:740" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:740"

   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:740: \$PYTHON3 \$srcdir/test-ovsdb.py parse-data '{\"key\": \"uuid\", \"max\": 5}' \\
    '[\"set\", [[\"uuid\", \"7ef21525-0088-4a28-a418-5518413e43ea\"],
              [\"uuid\", \"355ad037-f1da-40aa-b47c-ff9c7e8c6a38\"],
              [\"uuid\", \"7ef21525-0088-4a28-a418-5518413e43ea\"]]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:740"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-data '{"key": "uuid", "max": 5}' \
    '["set", [["uuid", "7ef21525-0088-4a28-a418-5518413e43ea"],
              ["uuid", "355ad037-f1da-40aa-b47c-ff9c7e8c6a38"],
              ["uuid", "7ef21525-0088-4a28-a418-5518413e43ea"]]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-data.at:740"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:740: if grep -F -e \"ovsdb error: set contains duplicate\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:740"
( $at_check_trace; if grep -F -e "ovsdb error: set contains duplicate" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:740"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1562
#AT_START_1563
at_fn_group_banner 1563 'ovsdb-data.at:747' \
  "duplicate uuid not allowed in string set" "       " 71
at_xfail=no
(
  $as_echo "1563. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:747: test-ovsdb parse-data-strings '{\"key\": \"uuid\", \"max\": 5}' \\
    '7ef21525-0088-4a28-a418-5518413e43ea,
     355ad037-f1da-40aa-b47c-ff9c7e8c6a38,
     7ef21525-0088-4a28-a418-5518413e43ea'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:747"
( $at_check_trace; test-ovsdb parse-data-strings '{"key": "uuid", "max": 5}' \
    '7ef21525-0088-4a28-a418-5518413e43ea,
     355ad037-f1da-40aa-b47c-ff9c7e8c6a38,
     7ef21525-0088-4a28-a418-5518413e43ea'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-data.at:747"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:747: if grep -F -e \"set contains duplicate value\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:747"
( $at_check_trace; if grep -F -e "set contains duplicate value" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:747"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1563
#AT_START_1564
at_fn_group_banner 1564 'ovsdb-data.at:756' \
  "JSON map of 1 integer to boolean - C" "           " 72
at_xfail=no
(
  $as_echo "1564. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:756: test-ovsdb parse-data '{\"key\": \"integer\", \"value\": \"boolean\"}' \\
    '[\"map\", [[1, true]]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:756"
( $at_check_trace; test-ovsdb parse-data '{"key": "integer", "value": "boolean"}' \
    '["map", [[1, true]]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"map\",[[1,true]]]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:756"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1564
#AT_START_1565
at_fn_group_banner 1565 'ovsdb-data.at:756' \
  "JSON map of 1 integer to boolean - Python2" "     " 72
at_xfail=no
(
  $as_echo "1565. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:756" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:756"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:756: \$PYTHON \$srcdir/test-ovsdb.py parse-data '{\"key\": \"integer\", \"value\": \"boolean\"}' \\
    '[\"map\", [[1, true]]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:756"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-data '{"key": "integer", "value": "boolean"}' \
    '["map", [[1, true]]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"map\",[[1,true]]]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:756"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1565
#AT_START_1566
at_fn_group_banner 1566 'ovsdb-data.at:756' \
  "JSON map of 1 integer to boolean - Python3" "     " 72
at_xfail=no
(
  $as_echo "1566. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:756" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:756"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:756: \$PYTHON3 \$srcdir/test-ovsdb.py parse-data '{\"key\": \"integer\", \"value\": \"boolean\"}' \\
    '[\"map\", [[1, true]]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:756"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-data '{"key": "integer", "value": "boolean"}' \
    '["map", [[1, true]]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"map\",[[1,true]]]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:756"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1566
#AT_START_1567
at_fn_group_banner 1567 'ovsdb-data.at:761' \
  "string map of 1 integer to boolean" "             " 72
at_xfail=no
(
  $as_echo "1567. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:761: test-ovsdb parse-data-strings '{\"key\": \"integer\", \"value\": \"boolean\"}' \\
    '1=true'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:761"
( $at_check_trace; test-ovsdb parse-data-strings '{"key": "integer", "value": "boolean"}' \
    '1=true'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1=true
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:761"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1567
#AT_START_1568
at_fn_group_banner 1568 'ovsdb-data.at:766' \
  "JSON map of at least 1 integer to boolean - C" "  " 72
at_xfail=no
(
  $as_echo "1568. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:766: test-ovsdb parse-data '{\"key\": \"integer\", \"value\": \"boolean\", \"max\": \"unlimited\"}' \\
    '[\"map\", [[1, true]]]' \\
    '[\"map\", [[0, true], [1, false], [2, true], [3, true], [4, true]]]' \\
    '[\"map\", [[3, false], [0, true], [4, false]]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:766"
( $at_check_trace; test-ovsdb parse-data '{"key": "integer", "value": "boolean", "max": "unlimited"}' \
    '["map", [[1, true]]]' \
    '["map", [[0, true], [1, false], [2, true], [3, true], [4, true]]]' \
    '["map", [[3, false], [0, true], [4, false]]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"map\",[[1,true]]]
[\"map\",[[0,true],[1,false],[2,true],[3,true],[4,true]]]
[\"map\",[[0,true],[3,false],[4,false]]]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:766"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1568
#AT_START_1569
at_fn_group_banner 1569 'ovsdb-data.at:766' \
  "JSON map of at least 1 integer to boolean - Python2" "" 72
at_xfail=no
(
  $as_echo "1569. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:766" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:766"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:766: \$PYTHON \$srcdir/test-ovsdb.py parse-data '{\"key\": \"integer\", \"value\": \"boolean\", \"max\": \"unlimited\"}' \\
    '[\"map\", [[1, true]]]' \\
    '[\"map\", [[0, true], [1, false], [2, true], [3, true], [4, true]]]' \\
    '[\"map\", [[3, false], [0, true], [4, false]]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:766"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-data '{"key": "integer", "value": "boolean", "max": "unlimited"}' \
    '["map", [[1, true]]]' \
    '["map", [[0, true], [1, false], [2, true], [3, true], [4, true]]]' \
    '["map", [[3, false], [0, true], [4, false]]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"map\",[[1,true]]]
[\"map\",[[0,true],[1,false],[2,true],[3,true],[4,true]]]
[\"map\",[[0,true],[3,false],[4,false]]]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:766"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1569
#AT_START_1570
at_fn_group_banner 1570 'ovsdb-data.at:766' \
  "JSON map of at least 1 integer to boolean - Python3" "" 72
at_xfail=no
(
  $as_echo "1570. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:766" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:766"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:766: \$PYTHON3 \$srcdir/test-ovsdb.py parse-data '{\"key\": \"integer\", \"value\": \"boolean\", \"max\": \"unlimited\"}' \\
    '[\"map\", [[1, true]]]' \\
    '[\"map\", [[0, true], [1, false], [2, true], [3, true], [4, true]]]' \\
    '[\"map\", [[3, false], [0, true], [4, false]]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:766"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-data '{"key": "integer", "value": "boolean", "max": "unlimited"}' \
    '["map", [[1, true]]]' \
    '["map", [[0, true], [1, false], [2, true], [3, true], [4, true]]]' \
    '["map", [[3, false], [0, true], [4, false]]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"map\",[[1,true]]]
[\"map\",[[0,true],[1,false],[2,true],[3,true],[4,true]]]
[\"map\",[[0,true],[3,false],[4,false]]]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:766"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1570
#AT_START_1571
at_fn_group_banner 1571 'ovsdb-data.at:775' \
  "string map of at least 1 integer to boolean" "    " 72
at_xfail=no
(
  $as_echo "1571. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:775: test-ovsdb parse-data-strings '{\"key\": \"integer\", \"value\": \"boolean\", \"max\": \"unlimited\"}' \\
    '1=true' \\
    '0=true 1=false 2=true, 3=true 4=true,' \\
    '3=false,0=true ,4=false'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:775"
( $at_check_trace; test-ovsdb parse-data-strings '{"key": "integer", "value": "boolean", "max": "unlimited"}' \
    '1=true' \
    '0=true 1=false 2=true, 3=true 4=true,' \
    '3=false,0=true ,4=false'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{1=true}
{0=true, 1=false, 2=true, 3=true, 4=true}
{0=true, 3=false, 4=false}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:775"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1571
#AT_START_1572
at_fn_group_banner 1572 'ovsdb-data.at:784' \
  "JSON map of 1 boolean to integer - C" "           " 72
at_xfail=no
(
  $as_echo "1572. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:784: test-ovsdb parse-data '{\"key\": \"boolean\", \"value\": \"integer\"}' \\
   '[\"map\", [[true, 1]]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:784"
( $at_check_trace; test-ovsdb parse-data '{"key": "boolean", "value": "integer"}' \
   '["map", [[true, 1]]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"map\",[[true,1]]]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:784"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1572
#AT_START_1573
at_fn_group_banner 1573 'ovsdb-data.at:784' \
  "JSON map of 1 boolean to integer - Python2" "     " 72
at_xfail=no
(
  $as_echo "1573. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:784" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:784"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:784: \$PYTHON \$srcdir/test-ovsdb.py parse-data '{\"key\": \"boolean\", \"value\": \"integer\"}' \\
   '[\"map\", [[true, 1]]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:784"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-data '{"key": "boolean", "value": "integer"}' \
   '["map", [[true, 1]]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"map\",[[true,1]]]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:784"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1573
#AT_START_1574
at_fn_group_banner 1574 'ovsdb-data.at:784' \
  "JSON map of 1 boolean to integer - Python3" "     " 72
at_xfail=no
(
  $as_echo "1574. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:784" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:784"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:784: \$PYTHON3 \$srcdir/test-ovsdb.py parse-data '{\"key\": \"boolean\", \"value\": \"integer\"}' \\
   '[\"map\", [[true, 1]]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:784"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-data '{"key": "boolean", "value": "integer"}' \
   '["map", [[true, 1]]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"map\",[[true,1]]]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:784"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1574
#AT_START_1575
at_fn_group_banner 1575 'ovsdb-data.at:789' \
  "string map of 1 boolean to integer" "             " 72
at_xfail=no
(
  $as_echo "1575. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:789: test-ovsdb parse-data-strings '{\"key\": \"boolean\", \"value\": \"integer\"}' \\
   'true=1'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:789"
( $at_check_trace; test-ovsdb parse-data-strings '{"key": "boolean", "value": "integer"}' \
   'true=1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "true=1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:789"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1575
#AT_START_1576
at_fn_group_banner 1576 'ovsdb-data.at:794' \
  "JSON map of 1 uuid to real - C" "                 " 72
at_xfail=no
(
  $as_echo "1576. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:794: test-ovsdb parse-data '{\"key\": \"uuid\", \"value\": \"real\", \"min\": 1, \"max\": 5}' \\
    '[\"map\", [[[\"uuid\", \"cad8542b-6ee1-486b-971b-7dcbf6e14979\"], 1.0],
              [[\"uuid\", \"6b94b968-2702-4f64-9457-314a34d69b8c\"], 2.0],
              [[\"uuid\", \"d2c4a168-24de-47eb-a8a3-c1abfc814979\"], 3.0],
              [[\"uuid\", \"25bfa475-d072-4f60-8be1-00f48643e9cb\"], 4.0],
              [[\"uuid\", \"1c92b8ca-d5e4-4628-a85d-1dc2d099a99a\"], 5.0]]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:794"
( $at_check_trace; test-ovsdb parse-data '{"key": "uuid", "value": "real", "min": 1, "max": 5}' \
    '["map", [[["uuid", "cad8542b-6ee1-486b-971b-7dcbf6e14979"], 1.0],
              [["uuid", "6b94b968-2702-4f64-9457-314a34d69b8c"], 2.0],
              [["uuid", "d2c4a168-24de-47eb-a8a3-c1abfc814979"], 3.0],
              [["uuid", "25bfa475-d072-4f60-8be1-00f48643e9cb"], 4.0],
              [["uuid", "1c92b8ca-d5e4-4628-a85d-1dc2d099a99a"], 5.0]]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"map\",[[[\"uuid\",\"1c92b8ca-d5e4-4628-a85d-1dc2d099a99a\"],5],[[\"uuid\",\"25bfa475-d072-4f60-8be1-00f48643e9cb\"],4],[[\"uuid\",\"6b94b968-2702-4f64-9457-314a34d69b8c\"],2],[[\"uuid\",\"cad8542b-6ee1-486b-971b-7dcbf6e14979\"],1],[[\"uuid\",\"d2c4a168-24de-47eb-a8a3-c1abfc814979\"],3]]]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:794"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1576
#AT_START_1577
at_fn_group_banner 1577 'ovsdb-data.at:794' \
  "JSON map of 1 uuid to real - Python2" "           " 72
at_xfail=no
(
  $as_echo "1577. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:794" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:794"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:794: \$PYTHON \$srcdir/test-ovsdb.py parse-data '{\"key\": \"uuid\", \"value\": \"real\", \"min\": 1, \"max\": 5}' \\
    '[\"map\", [[[\"uuid\", \"cad8542b-6ee1-486b-971b-7dcbf6e14979\"], 1.0],
              [[\"uuid\", \"6b94b968-2702-4f64-9457-314a34d69b8c\"], 2.0],
              [[\"uuid\", \"d2c4a168-24de-47eb-a8a3-c1abfc814979\"], 3.0],
              [[\"uuid\", \"25bfa475-d072-4f60-8be1-00f48643e9cb\"], 4.0],
              [[\"uuid\", \"1c92b8ca-d5e4-4628-a85d-1dc2d099a99a\"], 5.0]]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:794"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-data '{"key": "uuid", "value": "real", "min": 1, "max": 5}' \
    '["map", [[["uuid", "cad8542b-6ee1-486b-971b-7dcbf6e14979"], 1.0],
              [["uuid", "6b94b968-2702-4f64-9457-314a34d69b8c"], 2.0],
              [["uuid", "d2c4a168-24de-47eb-a8a3-c1abfc814979"], 3.0],
              [["uuid", "25bfa475-d072-4f60-8be1-00f48643e9cb"], 4.0],
              [["uuid", "1c92b8ca-d5e4-4628-a85d-1dc2d099a99a"], 5.0]]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"map\",[[[\"uuid\",\"1c92b8ca-d5e4-4628-a85d-1dc2d099a99a\"],5],[[\"uuid\",\"25bfa475-d072-4f60-8be1-00f48643e9cb\"],4],[[\"uuid\",\"6b94b968-2702-4f64-9457-314a34d69b8c\"],2],[[\"uuid\",\"cad8542b-6ee1-486b-971b-7dcbf6e14979\"],1],[[\"uuid\",\"d2c4a168-24de-47eb-a8a3-c1abfc814979\"],3]]]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:794"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1577
#AT_START_1578
at_fn_group_banner 1578 'ovsdb-data.at:794' \
  "JSON map of 1 uuid to real - Python3" "           " 72
at_xfail=no
(
  $as_echo "1578. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:794" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:794"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:794: \$PYTHON3 \$srcdir/test-ovsdb.py parse-data '{\"key\": \"uuid\", \"value\": \"real\", \"min\": 1, \"max\": 5}' \\
    '[\"map\", [[[\"uuid\", \"cad8542b-6ee1-486b-971b-7dcbf6e14979\"], 1.0],
              [[\"uuid\", \"6b94b968-2702-4f64-9457-314a34d69b8c\"], 2.0],
              [[\"uuid\", \"d2c4a168-24de-47eb-a8a3-c1abfc814979\"], 3.0],
              [[\"uuid\", \"25bfa475-d072-4f60-8be1-00f48643e9cb\"], 4.0],
              [[\"uuid\", \"1c92b8ca-d5e4-4628-a85d-1dc2d099a99a\"], 5.0]]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:794"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-data '{"key": "uuid", "value": "real", "min": 1, "max": 5}' \
    '["map", [[["uuid", "cad8542b-6ee1-486b-971b-7dcbf6e14979"], 1.0],
              [["uuid", "6b94b968-2702-4f64-9457-314a34d69b8c"], 2.0],
              [["uuid", "d2c4a168-24de-47eb-a8a3-c1abfc814979"], 3.0],
              [["uuid", "25bfa475-d072-4f60-8be1-00f48643e9cb"], 4.0],
              [["uuid", "1c92b8ca-d5e4-4628-a85d-1dc2d099a99a"], 5.0]]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"map\",[[[\"uuid\",\"1c92b8ca-d5e4-4628-a85d-1dc2d099a99a\"],5],[[\"uuid\",\"25bfa475-d072-4f60-8be1-00f48643e9cb\"],4],[[\"uuid\",\"6b94b968-2702-4f64-9457-314a34d69b8c\"],2],[[\"uuid\",\"cad8542b-6ee1-486b-971b-7dcbf6e14979\"],1],[[\"uuid\",\"d2c4a168-24de-47eb-a8a3-c1abfc814979\"],3]]]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:794"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1578
#AT_START_1579
at_fn_group_banner 1579 'ovsdb-data.at:803' \
  "string map of 1 uuid to real" "                   " 72
at_xfail=no
(
  $as_echo "1579. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:803: test-ovsdb parse-data-strings '{\"key\": \"uuid\", \"value\": \"real\", \"min\": 1, \"max\": 5}' \\
    'cad8542b-6ee1-486b-971b-7dcbf6e14979=1.0,
     6b94b968-2702-4f64-9457-314a34d69b8c=2.0,
     d2c4a168-24de-47eb-a8a3-c1abfc814979=3.0,
     25bfa475-d072-4f60-8be1-00f48643e9cb=4.0,
     1c92b8ca-d5e4-4628-a85d-1dc2d099a99a=5.0'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:803"
( $at_check_trace; test-ovsdb parse-data-strings '{"key": "uuid", "value": "real", "min": 1, "max": 5}' \
    'cad8542b-6ee1-486b-971b-7dcbf6e14979=1.0,
     6b94b968-2702-4f64-9457-314a34d69b8c=2.0,
     d2c4a168-24de-47eb-a8a3-c1abfc814979=3.0,
     25bfa475-d072-4f60-8be1-00f48643e9cb=4.0,
     1c92b8ca-d5e4-4628-a85d-1dc2d099a99a=5.0'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{1c92b8ca-d5e4-4628-a85d-1dc2d099a99a=5, 25bfa475-d072-4f60-8be1-00f48643e9cb=4, 6b94b968-2702-4f64-9457-314a34d69b8c=2, cad8542b-6ee1-486b-971b-7dcbf6e14979=1, d2c4a168-24de-47eb-a8a3-c1abfc814979=3}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:803"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1579
#AT_START_1580
at_fn_group_banner 1580 'ovsdb-data.at:812' \
  "JSON map of 10 string to string - C" "            " 72
at_xfail=no
(
  $as_echo "1580. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:812: test-ovsdb parse-data '{\"key\": \"string\", \"value\": \"string\", \"min\": 1, \"max\": 10}' \\
    '[\"map\", [[\"2 gills\", \"1 chopin\"],
              [\"2 chopins\", \"1 pint\"],
              [\"2 pints\", \"1 quart\"],
              [\"2 quarts\", \"1 pottle\"],
              [\"2 pottles\", \"1 gallon\"],
              [\"2 gallons\", \"1 peck\"],
              [\"2 pecks\", \"1 demibushel\"],
              [\"2 demibushel\", \"1 firkin\"],
              [\"2 firkins\", \"1 kilderkin\"],
              [\"2 kilderkins\", \"1 barrel\"]]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:812"
( $at_check_trace; test-ovsdb parse-data '{"key": "string", "value": "string", "min": 1, "max": 10}' \
    '["map", [["2 gills", "1 chopin"],
              ["2 chopins", "1 pint"],
              ["2 pints", "1 quart"],
              ["2 quarts", "1 pottle"],
              ["2 pottles", "1 gallon"],
              ["2 gallons", "1 peck"],
              ["2 pecks", "1 demibushel"],
              ["2 demibushel", "1 firkin"],
              ["2 firkins", "1 kilderkin"],
              ["2 kilderkins", "1 barrel"]]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"map\",[[\"2 chopins\",\"1 pint\"],[\"2 demibushel\",\"1 firkin\"],[\"2 firkins\",\"1 kilderkin\"],[\"2 gallons\",\"1 peck\"],[\"2 gills\",\"1 chopin\"],[\"2 kilderkins\",\"1 barrel\"],[\"2 pecks\",\"1 demibushel\"],[\"2 pints\",\"1 quart\"],[\"2 pottles\",\"1 gallon\"],[\"2 quarts\",\"1 pottle\"]]]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:812"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1580
#AT_START_1581
at_fn_group_banner 1581 'ovsdb-data.at:812' \
  "JSON map of 10 string to string - Python2" "      " 72
at_xfail=no
(
  $as_echo "1581. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:812" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:812"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:812: \$PYTHON \$srcdir/test-ovsdb.py parse-data '{\"key\": \"string\", \"value\": \"string\", \"min\": 1, \"max\": 10}' \\
    '[\"map\", [[\"2 gills\", \"1 chopin\"],
              [\"2 chopins\", \"1 pint\"],
              [\"2 pints\", \"1 quart\"],
              [\"2 quarts\", \"1 pottle\"],
              [\"2 pottles\", \"1 gallon\"],
              [\"2 gallons\", \"1 peck\"],
              [\"2 pecks\", \"1 demibushel\"],
              [\"2 demibushel\", \"1 firkin\"],
              [\"2 firkins\", \"1 kilderkin\"],
              [\"2 kilderkins\", \"1 barrel\"]]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:812"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-data '{"key": "string", "value": "string", "min": 1, "max": 10}' \
    '["map", [["2 gills", "1 chopin"],
              ["2 chopins", "1 pint"],
              ["2 pints", "1 quart"],
              ["2 quarts", "1 pottle"],
              ["2 pottles", "1 gallon"],
              ["2 gallons", "1 peck"],
              ["2 pecks", "1 demibushel"],
              ["2 demibushel", "1 firkin"],
              ["2 firkins", "1 kilderkin"],
              ["2 kilderkins", "1 barrel"]]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"map\",[[\"2 chopins\",\"1 pint\"],[\"2 demibushel\",\"1 firkin\"],[\"2 firkins\",\"1 kilderkin\"],[\"2 gallons\",\"1 peck\"],[\"2 gills\",\"1 chopin\"],[\"2 kilderkins\",\"1 barrel\"],[\"2 pecks\",\"1 demibushel\"],[\"2 pints\",\"1 quart\"],[\"2 pottles\",\"1 gallon\"],[\"2 quarts\",\"1 pottle\"]]]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:812"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1581
#AT_START_1582
at_fn_group_banner 1582 'ovsdb-data.at:812' \
  "JSON map of 10 string to string - Python3" "      " 72
at_xfail=no
(
  $as_echo "1582. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:812" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:812"


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:812: \$PYTHON3 \$srcdir/test-ovsdb.py parse-data '{\"key\": \"string\", \"value\": \"string\", \"min\": 1, \"max\": 10}' \\
    '[\"map\", [[\"2 gills\", \"1 chopin\"],
              [\"2 chopins\", \"1 pint\"],
              [\"2 pints\", \"1 quart\"],
              [\"2 quarts\", \"1 pottle\"],
              [\"2 pottles\", \"1 gallon\"],
              [\"2 gallons\", \"1 peck\"],
              [\"2 pecks\", \"1 demibushel\"],
              [\"2 demibushel\", \"1 firkin\"],
              [\"2 firkins\", \"1 kilderkin\"],
              [\"2 kilderkins\", \"1 barrel\"]]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:812"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-data '{"key": "string", "value": "string", "min": 1, "max": 10}' \
    '["map", [["2 gills", "1 chopin"],
              ["2 chopins", "1 pint"],
              ["2 pints", "1 quart"],
              ["2 quarts", "1 pottle"],
              ["2 pottles", "1 gallon"],
              ["2 gallons", "1 peck"],
              ["2 pecks", "1 demibushel"],
              ["2 demibushel", "1 firkin"],
              ["2 firkins", "1 kilderkin"],
              ["2 kilderkins", "1 barrel"]]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"map\",[[\"2 chopins\",\"1 pint\"],[\"2 demibushel\",\"1 firkin\"],[\"2 firkins\",\"1 kilderkin\"],[\"2 gallons\",\"1 peck\"],[\"2 gills\",\"1 chopin\"],[\"2 kilderkins\",\"1 barrel\"],[\"2 pecks\",\"1 demibushel\"],[\"2 pints\",\"1 quart\"],[\"2 pottles\",\"1 gallon\"],[\"2 quarts\",\"1 pottle\"]]]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:812"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1582
#AT_START_1583
at_fn_group_banner 1583 'ovsdb-data.at:826' \
  "string map of 10 string to string" "              " 72
at_xfail=no
(
  $as_echo "1583. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:826: test-ovsdb parse-data-strings '{\"key\": \"string\", \"value\": \"string\", \"min\": 1, \"max\": 10}' \\
    '{\"2 gills\"=\"1 chopin\",
      \"2 chopins\"= \"1 pint\",
      \"2 pints\"= \"1 quart\",
      \"2 quarts\"= \"1 pottle\",
      \"2 pottles\"= \"1 gallon\",
      \"2 gallons\"= \"1 peck\",
      \"2 pecks\"= \"1 demibushel\",
      \"2 demibushel\"= \"1 firkin\",
      \"2 firkins\"= \"1 kilderkin\",
      \"2 kilderkins\"= \"1 barrel\"}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:826"
( $at_check_trace; test-ovsdb parse-data-strings '{"key": "string", "value": "string", "min": 1, "max": 10}' \
    '{"2 gills"="1 chopin",
      "2 chopins"= "1 pint",
      "2 pints"= "1 quart",
      "2 quarts"= "1 pottle",
      "2 pottles"= "1 gallon",
      "2 gallons"= "1 peck",
      "2 pecks"= "1 demibushel",
      "2 demibushel"= "1 firkin",
      "2 firkins"= "1 kilderkin",
      "2 kilderkins"= "1 barrel"}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"2 chopins\"=\"1 pint\", \"2 demibushel\"=\"1 firkin\", \"2 firkins\"=\"1 kilderkin\", \"2 gallons\"=\"1 peck\", \"2 gills\"=\"1 chopin\", \"2 kilderkins\"=\"1 barrel\", \"2 pecks\"=\"1 demibushel\", \"2 pints\"=\"1 quart\", \"2 pottles\"=\"1 gallon\", \"2 quarts\"=\"1 pottle\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:826"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1583
#AT_START_1584
at_fn_group_banner 1584 'ovsdb-data.at:840' \
  "duplicate integer key not allowed in JSON map - C" "" 72
at_xfail=no
(
  $as_echo "1584. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:840: test-ovsdb parse-data '{\"key\": \"integer\", \"value\": \"boolean\", \"max\": 5}' \\
    '[\"map\", [[1, true], [2, false], [1, false]]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:840"
( $at_check_trace; test-ovsdb parse-data '{"key": "integer", "value": "boolean", "max": 5}' \
    '["map", [[1, true], [2, false], [1, false]]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-data.at:840"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:840: if grep -F -e \"ovsdb error: map contains duplicate key\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:840"
( $at_check_trace; if grep -F -e "ovsdb error: map contains duplicate key" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:840"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1584
#AT_START_1585
at_fn_group_banner 1585 'ovsdb-data.at:840' \
  "duplicate integer key not allowed in JSON map - Python2" "" 72
at_xfail=no
(
  $as_echo "1585. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-data.at:840" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-data.at:840"

   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:840: \$PYTHON3 \$srcdir/test-ovsdb.py parse-data '{\"key\": \"integer\", \"value\": \"boolean\", \"max\": 5}' \\
    '[\"map\", [[1, true], [2, false], [1, false]]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:840"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-data '{"key": "integer", "value": "boolean", "max": 5}' \
    '["map", [[1, true], [2, false], [1, false]]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-data.at:840"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:840: if grep -F -e \"ovsdb error: map contains duplicate key\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:840"
( $at_check_trace; if grep -F -e "ovsdb error: map contains duplicate key" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:840"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1585
#AT_START_1586
at_fn_group_banner 1586 'ovsdb-data.at:845' \
  "duplicate integer key not allowed in string map" "" 72
at_xfail=no
(
  $as_echo "1586. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:845: test-ovsdb parse-data-strings '{\"key\": \"integer\", \"value\": \"boolean\", \"max\": 5}' \\
    '1=true 2=false 1=false'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:845"
( $at_check_trace; test-ovsdb parse-data-strings '{"key": "integer", "value": "boolean", "max": 5}' \
    '1=true 2=false 1=false'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-data.at:845"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:845: if grep -F -e \"map contains duplicate key\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:845"
( $at_check_trace; if grep -F -e "map contains duplicate key" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:845"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1586
#AT_START_1587
at_fn_group_banner 1587 'ovsdb-data.at:850' \
  "generate and apply diff -- integer" "             " 72
at_xfail=no
(
  $as_echo "1587. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:850: test-ovsdb diff-data '[\"integer\"]' '[0]' '[2]'"
at_fn_check_prepare_trace "ovsdb-data.at:850"
( $at_check_trace; test-ovsdb diff-data '["integer"]' '[0]' '[2]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "diff: 2
apply diff: 2
OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:850"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1587
#AT_START_1588
at_fn_group_banner 1588 'ovsdb-data.at:856' \
  "generate and apply diff -- boolean" "             " 72
at_xfail=no
(
  $as_echo "1588. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:856: test-ovsdb diff-data '[\"boolean\"]' '[true]' '[false]'"
at_fn_check_prepare_trace "ovsdb-data.at:856"
( $at_check_trace; test-ovsdb diff-data '["boolean"]' '[true]' '[false]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "diff: false
apply diff: false
OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:856"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1588
#AT_START_1589
at_fn_group_banner 1589 'ovsdb-data.at:862' \
  "generate and apply diff -- string" "              " 72
at_xfail=no
(
  $as_echo "1589. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:862: test-ovsdb diff-data '[\"string\"]' '[\"AAA\"]' '[\"BBB\"]'"
at_fn_check_prepare_trace "ovsdb-data.at:862"
( $at_check_trace; test-ovsdb diff-data '["string"]' '["AAA"]' '["BBB"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "diff: \"BBB\"
apply diff: \"BBB\"
OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:862"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1589
#AT_START_1590
at_fn_group_banner 1590 'ovsdb-data.at:869' \
  "generate and apply diff -- set" "                 " 72
at_xfail=no
(
  $as_echo "1590. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:869: test-ovsdb diff-data '{\"key\": \"integer\", \"min\":0, \"max\": 3}' \\
  '[\"set\", [0, 1]]'  '[\"set\", [1,2]]' \\
  '[\"set\", [0, 1]]'  '[\"set\", [1]]' \\
  '[\"set\", []]'  '[\"set\", [0, 1]]' \\
  '[\"set\", [0, 1]]'  '[\"set\", []]'
  "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:869"
( $at_check_trace; test-ovsdb diff-data '{"key": "integer", "min":0, "max": 3}' \
  '["set", [0, 1]]'  '["set", [1,2]]' \
  '["set", [0, 1]]'  '["set", [1]]' \
  '["set", []]'  '["set", [0, 1]]' \
  '["set", [0, 1]]'  '["set", []]'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "diff: [\"set\",[0,2]]
apply diff: [\"set\",[1,2]]
OK
diff: 0
apply diff: 1
OK
diff: [\"set\",[0,1]]
apply diff: [\"set\",[0,1]]
OK
diff: [\"set\",[0,1]]
apply diff: [\"set\",[]]
OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:869"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1590
#AT_START_1591
at_fn_group_banner 1591 'ovsdb-data.at:890' \
  "generate and apply diff -- set -- size error" "   " 72
at_xfail=no
(
  $as_echo "1591. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:890: test-ovsdb diff-data '{\"key\": \"integer\", \"min\":0, \"max\": 3}' \\
  '[\"set\", [0, 1]]'  '[\"set\", [1, 2, 3, 4]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:890"
( $at_check_trace; test-ovsdb diff-data '{"key": "integer", "min":0, "max": 3}' \
  '["set", [0, 1]]'  '["set", [1, 2, 3, 4]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-data.at:890"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:890: if grep -F -e \"ovsdb error: Datum crated by diff has size error\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:890"
( $at_check_trace; if grep -F -e "ovsdb error: Datum crated by diff has size error" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:890"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1591
#AT_START_1592
at_fn_group_banner 1592 'ovsdb-data.at:896' \
  "generate and apply diff -- map" "                 " 72
at_xfail=no
(
  $as_echo "1592. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:896: test-ovsdb diff-data '{\"key\": \"string\", \"value\": \"string\", \"min\":0, \"max\": 3}' \\
  '[\"map\", [[\"2 gills\", \"1 chopin\"]]]'  '[\"map\", [[\"2 pints\", \"1 quart\"]]]' \\
  '[\"map\", [[\"2 gills\", \"1 chopin\"]]]'  '[\"map\", [[\"2 gills\", \"1 chopin\"]]]' \\
  '[\"map\", [[\"2 gills\", \"1 chopin\"]]]'  '[\"map\", []]' \\
  '[\"map\", []]'  '[\"map\", [[\"2 pints\", \"1 quart\"]]]' \\
  '[\"map\", [[\"2 gills\", \"1 chopin\"]]]'  '[\"map\", [[\"2 gills\", \"1 gallon\"]]]' \\
  "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:896"
( $at_check_trace; test-ovsdb diff-data '{"key": "string", "value": "string", "min":0, "max": 3}' \
  '["map", [["2 gills", "1 chopin"]]]'  '["map", [["2 pints", "1 quart"]]]' \
  '["map", [["2 gills", "1 chopin"]]]'  '["map", [["2 gills", "1 chopin"]]]' \
  '["map", [["2 gills", "1 chopin"]]]'  '["map", []]' \
  '["map", []]'  '["map", [["2 pints", "1 quart"]]]' \
  '["map", [["2 gills", "1 chopin"]]]'  '["map", [["2 gills", "1 gallon"]]]' \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "diff: [\"map\",[[\"2 gills\",\"1 chopin\"],[\"2 pints\",\"1 quart\"]]]
apply diff: [\"map\",[[\"2 pints\",\"1 quart\"]]]
OK
diff: [\"map\",[]]
apply diff: [\"map\",[[\"2 gills\",\"1 chopin\"]]]
OK
diff: [\"map\",[[\"2 gills\",\"1 chopin\"]]]
apply diff: [\"map\",[]]
OK
diff: [\"map\",[[\"2 pints\",\"1 quart\"]]]
apply diff: [\"map\",[[\"2 pints\",\"1 quart\"]]]
OK
diff: [\"map\",[[\"2 gills\",\"1 gallon\"]]]
apply diff: [\"map\",[[\"2 gills\",\"1 gallon\"]]]
OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:896"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1592
#AT_START_1593
at_fn_group_banner 1593 'ovsdb-data.at:920' \
  "generate and apply diff with map -- size error" " " 72
at_xfail=no
(
  $as_echo "1593. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:920: test-ovsdb diff-data '{\"key\": \"string\", \"value\": \"string\", \"min\":0, \"max\": 3}' \\
  '[\"map\", [[\"2 gills\", \"1 chopin\"]]]' \\
  '[\"map\", [[\"2 gills\", \"1 gallon\"],
            [\"2 pints\", \"1 quart\"],
            [\"2 quarts\", \"1 pottle\"],
            [\"2 gallons\", \"1 peck\"]]]' \\
  "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:920"
( $at_check_trace; test-ovsdb diff-data '{"key": "string", "value": "string", "min":0, "max": 3}' \
  '["map", [["2 gills", "1 chopin"]]]' \
  '["map", [["2 gills", "1 gallon"],
            ["2 pints", "1 quart"],
            ["2 quarts", "1 pottle"],
            ["2 gallons", "1 peck"]]]' \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-data.at:920"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-data.at:920: if grep -F -e \"ovsdb error: Datum crated by diff has size error\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-data.at:920"
( $at_check_trace; if grep -F -e "ovsdb error: Datum crated by diff has size error" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-data.at:920"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1593
#AT_START_1594
at_fn_group_banner 1594 'ovsdb-column.at:3' \
  "ordinary column - C" "                            " 73
at_xfail=no
(
  $as_echo "1594. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-column.at:3: test-ovsdb parse-column mycol '{\"type\": \"integer\"}'"
at_fn_check_prepare_trace "ovsdb-column.at:3"
( $at_check_trace; test-ovsdb parse-column mycol '{"type": "integer"}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"type\":\"integer\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-column.at:3"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1594
#AT_START_1595
at_fn_group_banner 1595 'ovsdb-column.at:3' \
  "ordinary column - Python2" "                      " 73
at_xfail=no
(
  $as_echo "1595. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-column.at:3" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-column.at:3"


   { set +x
$as_echo "$at_srcdir/ovsdb-column.at:3: \$PYTHON \$srcdir/test-ovsdb.py parse-column mycol '{\"type\": \"integer\"}'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-column mycol '{\"type\": \"integer\"}'" "ovsdb-column.at:3"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-column mycol '{"type": "integer"}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"type\":\"integer\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-column.at:3"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1595
#AT_START_1596
at_fn_group_banner 1596 'ovsdb-column.at:3' \
  "ordinary column - Python3" "                      " 73
at_xfail=no
(
  $as_echo "1596. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-column.at:3" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-column.at:3"


   { set +x
$as_echo "$at_srcdir/ovsdb-column.at:3: \$PYTHON3 \$srcdir/test-ovsdb.py parse-column mycol '{\"type\": \"integer\"}'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-column mycol '{\"type\": \"integer\"}'" "ovsdb-column.at:3"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-column mycol '{"type": "integer"}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"type\":\"integer\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-column.at:3"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1596
#AT_START_1597
at_fn_group_banner 1597 'ovsdb-column.at:7' \
  "immutable column - C" "                           " 73
at_xfail=no
(
  $as_echo "1597. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-column.at:7: test-ovsdb parse-column mycol '{\"type\": \"real\", \"mutable\": false}'"
at_fn_check_prepare_trace "ovsdb-column.at:7"
( $at_check_trace; test-ovsdb parse-column mycol '{"type": "real", "mutable": false}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"mutable\":false,\"type\":\"real\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-column.at:7"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1597
#AT_START_1598
at_fn_group_banner 1598 'ovsdb-column.at:7' \
  "immutable column - Python2" "                     " 73
at_xfail=no
(
  $as_echo "1598. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-column.at:7" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-column.at:7"


   { set +x
$as_echo "$at_srcdir/ovsdb-column.at:7: \$PYTHON \$srcdir/test-ovsdb.py parse-column mycol '{\"type\": \"real\", \"mutable\": false}'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-column mycol '{\"type\": \"real\", \"mutable\": false}'" "ovsdb-column.at:7"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-column mycol '{"type": "real", "mutable": false}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"mutable\":false,\"type\":\"real\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-column.at:7"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1598
#AT_START_1599
at_fn_group_banner 1599 'ovsdb-column.at:7' \
  "immutable column - Python3" "                     " 73
at_xfail=no
(
  $as_echo "1599. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-column.at:7" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-column.at:7"


   { set +x
$as_echo "$at_srcdir/ovsdb-column.at:7: \$PYTHON3 \$srcdir/test-ovsdb.py parse-column mycol '{\"type\": \"real\", \"mutable\": false}'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-column mycol '{\"type\": \"real\", \"mutable\": false}'" "ovsdb-column.at:7"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-column mycol '{"type": "real", "mutable": false}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"mutable\":false,\"type\":\"real\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-column.at:7"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1599
#AT_START_1600
at_fn_group_banner 1600 'ovsdb-column.at:11' \
  "ephemeral column - C" "                           " 73
at_xfail=no
(
  $as_echo "1600. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-column.at:11: test-ovsdb parse-column mycol '{\"type\": \"uuid\", \"ephemeral\": true}'"
at_fn_check_prepare_trace "ovsdb-column.at:11"
( $at_check_trace; test-ovsdb parse-column mycol '{"type": "uuid", "ephemeral": true}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"ephemeral\":true,\"type\":\"uuid\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-column.at:11"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1600
#AT_START_1601
at_fn_group_banner 1601 'ovsdb-column.at:11' \
  "ephemeral column - Python2" "                     " 73
at_xfail=no
(
  $as_echo "1601. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-column.at:11" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-column.at:11"


   { set +x
$as_echo "$at_srcdir/ovsdb-column.at:11: \$PYTHON \$srcdir/test-ovsdb.py parse-column mycol '{\"type\": \"uuid\", \"ephemeral\": true}'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-column mycol '{\"type\": \"uuid\", \"ephemeral\": true}'" "ovsdb-column.at:11"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-column mycol '{"type": "uuid", "ephemeral": true}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"ephemeral\":true,\"type\":\"uuid\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-column.at:11"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1601
#AT_START_1602
at_fn_group_banner 1602 'ovsdb-column.at:11' \
  "ephemeral column - Python3" "                     " 73
at_xfail=no
(
  $as_echo "1602. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-column.at:11" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-column.at:11"


   { set +x
$as_echo "$at_srcdir/ovsdb-column.at:11: \$PYTHON3 \$srcdir/test-ovsdb.py parse-column mycol '{\"type\": \"uuid\", \"ephemeral\": true}'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-column mycol '{\"type\": \"uuid\", \"ephemeral\": true}'" "ovsdb-column.at:11"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-column mycol '{"type": "uuid", "ephemeral": true}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"ephemeral\":true,\"type\":\"uuid\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-column.at:11"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1602
#AT_START_1603
at_fn_group_banner 1603 'ovsdb-table.at:3' \
  "non-root table with one column - C" "             " 74
at_xfail=no
(
  $as_echo "1603. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:3: test-ovsdb parse-table mytable '{\"columns\": {\"name\": {\"type\": \"string\"}}}'"
at_fn_check_prepare_trace "ovsdb-table.at:3"
( $at_check_trace; test-ovsdb parse-table mytable '{"columns": {"name": {"type": "string"}}}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"columns\":{\"name\":{\"type\":\"string\"}}}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-table.at:3"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1603
#AT_START_1604
at_fn_group_banner 1604 'ovsdb-table.at:3' \
  "non-root table with one column - Python2" "       " 74
at_xfail=no
(
  $as_echo "1604. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-table.at:3" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-table.at:3"


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:3: \$PYTHON \$srcdir/test-ovsdb.py parse-table mytable '{\"columns\": {\"name\": {\"type\": \"string\"}}}'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-table mytable '{\"columns\": {\"name\": {\"type\": \"string\"}}}'" "ovsdb-table.at:3"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-table mytable '{"columns": {"name": {"type": "string"}}}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"columns\":{\"name\":{\"type\":\"string\"}}}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-table.at:3"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1604
#AT_START_1605
at_fn_group_banner 1605 'ovsdb-table.at:3' \
  "non-root table with one column - Python3" "       " 74
at_xfail=no
(
  $as_echo "1605. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-table.at:3" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-table.at:3"


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:3: \$PYTHON3 \$srcdir/test-ovsdb.py parse-table mytable '{\"columns\": {\"name\": {\"type\": \"string\"}}}'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-table mytable '{\"columns\": {\"name\": {\"type\": \"string\"}}}'" "ovsdb-table.at:3"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-table mytable '{"columns": {"name": {"type": "string"}}}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"columns\":{\"name\":{\"type\":\"string\"}}}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-table.at:3"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1605
#AT_START_1606
at_fn_group_banner 1606 'ovsdb-table.at:7' \
  "immutable table with one column - C" "            " 74
at_xfail=no
(
  $as_echo "1606. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:7: test-ovsdb parse-table mytable \\
    '{\"columns\": {\"name\": {\"type\": \"string\"}},
      \"mutable\": false}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:7"
( $at_check_trace; test-ovsdb parse-table mytable \
    '{"columns": {"name": {"type": "string"}},
      "mutable": false}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"columns\":{\"name\":{\"type\":\"string\"}},\"mutable\":false}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-table.at:7"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1606
#AT_START_1607
at_fn_group_banner 1607 'ovsdb-table.at:7' \
  "immutable table with one column - Python2" "      " 74
at_xfail=no
(
  $as_echo "1607. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-table.at:7" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-table.at:7"


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:7: \$PYTHON \$srcdir/test-ovsdb.py parse-table mytable \\
    '{\"columns\": {\"name\": {\"type\": \"string\"}},
      \"mutable\": false}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:7"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-table mytable \
    '{"columns": {"name": {"type": "string"}},
      "mutable": false}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"columns\":{\"name\":{\"type\":\"string\"}},\"mutable\":false}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-table.at:7"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1607
#AT_START_1608
at_fn_group_banner 1608 'ovsdb-table.at:7' \
  "immutable table with one column - Python3" "      " 74
at_xfail=no
(
  $as_echo "1608. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-table.at:7" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-table.at:7"


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:7: \$PYTHON3 \$srcdir/test-ovsdb.py parse-table mytable \\
    '{\"columns\": {\"name\": {\"type\": \"string\"}},
      \"mutable\": false}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:7"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-table mytable \
    '{"columns": {"name": {"type": "string"}},
      "mutable": false}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"columns\":{\"name\":{\"type\":\"string\"}},\"mutable\":false}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-table.at:7"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1608
#AT_START_1609
at_fn_group_banner 1609 'ovsdb-table.at:13' \
  "root table with one column - C" "                 " 74
at_xfail=no
(
  $as_echo "1609. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:13: test-ovsdb parse-table mytable \\
    '{\"columns\": {\"name\": {\"type\": \"string\"}},
      \"isRoot\": true}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:13"
( $at_check_trace; test-ovsdb parse-table mytable \
    '{"columns": {"name": {"type": "string"}},
      "isRoot": true}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"columns\":{\"name\":{\"type\":\"string\"}},\"isRoot\":true}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-table.at:13"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1609
#AT_START_1610
at_fn_group_banner 1610 'ovsdb-table.at:13' \
  "root table with one column - Python2" "           " 74
at_xfail=no
(
  $as_echo "1610. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-table.at:13" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-table.at:13"


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:13: \$PYTHON \$srcdir/test-ovsdb.py parse-table mytable \\
    '{\"columns\": {\"name\": {\"type\": \"string\"}},
      \"isRoot\": true}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:13"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-table mytable \
    '{"columns": {"name": {"type": "string"}},
      "isRoot": true}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"columns\":{\"name\":{\"type\":\"string\"}},\"isRoot\":true}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-table.at:13"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1610
#AT_START_1611
at_fn_group_banner 1611 'ovsdb-table.at:13' \
  "root table with one column - Python3" "           " 74
at_xfail=no
(
  $as_echo "1611. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-table.at:13" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-table.at:13"


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:13: \$PYTHON3 \$srcdir/test-ovsdb.py parse-table mytable \\
    '{\"columns\": {\"name\": {\"type\": \"string\"}},
      \"isRoot\": true}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:13"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-table mytable \
    '{"columns": {"name": {"type": "string"}},
      "isRoot": true}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"columns\":{\"name\":{\"type\":\"string\"}},\"isRoot\":true}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-table.at:13"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1611
#AT_START_1612
at_fn_group_banner 1612 'ovsdb-table.at:19' \
  "non-root table with default_is_root=true - C" "   " 74
at_xfail=no
(
  $as_echo "1612. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:19: test-ovsdb parse-table mytable '{\"columns\": {\"name\": {\"type\": \"string\"}}}' true"
at_fn_check_prepare_trace "ovsdb-table.at:19"
( $at_check_trace; test-ovsdb parse-table mytable '{"columns": {"name": {"type": "string"}}}' true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"columns\":{\"name\":{\"type\":\"string\"}},\"isRoot\":false}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-table.at:19"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1612
#AT_START_1613
at_fn_group_banner 1613 'ovsdb-table.at:19' \
  "non-root table with default_is_root=true - Python2" "" 74
at_xfail=no
(
  $as_echo "1613. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-table.at:19" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-table.at:19"


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:19: \$PYTHON \$srcdir/test-ovsdb.py parse-table mytable '{\"columns\": {\"name\": {\"type\": \"string\"}}}' true"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py parse-table mytable '{\"columns\": {\"name\": {\"type\": \"string\"}}}' true" "ovsdb-table.at:19"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-table mytable '{"columns": {"name": {"type": "string"}}}' true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"columns\":{\"name\":{\"type\":\"string\"}},\"isRoot\":false}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-table.at:19"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1613
#AT_START_1614
at_fn_group_banner 1614 'ovsdb-table.at:19' \
  "non-root table with default_is_root=true - Python3" "" 74
at_xfail=no
(
  $as_echo "1614. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-table.at:19" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-table.at:19"


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:19: \$PYTHON3 \$srcdir/test-ovsdb.py parse-table mytable '{\"columns\": {\"name\": {\"type\": \"string\"}}}' true"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-table mytable '{\"columns\": {\"name\": {\"type\": \"string\"}}}' true" "ovsdb-table.at:19"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-table mytable '{"columns": {"name": {"type": "string"}}}' true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"columns\":{\"name\":{\"type\":\"string\"}},\"isRoot\":false}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-table.at:19"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1614
#AT_START_1615
at_fn_group_banner 1615 'ovsdb-table.at:23' \
  "root table with default_is_root=true - C" "       " 74
at_xfail=no
(
  $as_echo "1615. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:23: test-ovsdb parse-table mytable \\
    '{\"columns\": {\"name\": {\"type\": \"string\"}},
      \"isRoot\": true}' true"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:23"
( $at_check_trace; test-ovsdb parse-table mytable \
    '{"columns": {"name": {"type": "string"}},
      "isRoot": true}' true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"columns\":{\"name\":{\"type\":\"string\"}}}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-table.at:23"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1615
#AT_START_1616
at_fn_group_banner 1616 'ovsdb-table.at:23' \
  "root table with default_is_root=true - Python2" " " 74
at_xfail=no
(
  $as_echo "1616. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-table.at:23" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-table.at:23"


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:23: \$PYTHON \$srcdir/test-ovsdb.py parse-table mytable \\
    '{\"columns\": {\"name\": {\"type\": \"string\"}},
      \"isRoot\": true}' true"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:23"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-table mytable \
    '{"columns": {"name": {"type": "string"}},
      "isRoot": true}' true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"columns\":{\"name\":{\"type\":\"string\"}}}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-table.at:23"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1616
#AT_START_1617
at_fn_group_banner 1617 'ovsdb-table.at:23' \
  "root table with default_is_root=true - Python3" " " 74
at_xfail=no
(
  $as_echo "1617. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-table.at:23" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-table.at:23"


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:23: \$PYTHON3 \$srcdir/test-ovsdb.py parse-table mytable \\
    '{\"columns\": {\"name\": {\"type\": \"string\"}},
      \"isRoot\": true}' true"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:23"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-table mytable \
    '{"columns": {"name": {"type": "string"}},
      "isRoot": true}' true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"columns\":{\"name\":{\"type\":\"string\"}}}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-table.at:23"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1617
#AT_START_1618
at_fn_group_banner 1618 'ovsdb-table.at:29' \
  "table with maxRows of 2 - C" "                    " 74
at_xfail=no
(
  $as_echo "1618. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:29: test-ovsdb parse-table mytable '{\"columns\": {\"name\": {\"type\": \"string\"}},
                          \"maxRows\": 2}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:29"
( $at_check_trace; test-ovsdb parse-table mytable '{"columns": {"name": {"type": "string"}},
                          "maxRows": 2}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"columns\":{\"name\":{\"type\":\"string\"}},\"maxRows\":2}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-table.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1618
#AT_START_1619
at_fn_group_banner 1619 'ovsdb-table.at:29' \
  "table with maxRows of 2 - Python2" "              " 74
at_xfail=no
(
  $as_echo "1619. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-table.at:29" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-table.at:29"


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:29: \$PYTHON \$srcdir/test-ovsdb.py parse-table mytable '{\"columns\": {\"name\": {\"type\": \"string\"}},
                          \"maxRows\": 2}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:29"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-table mytable '{"columns": {"name": {"type": "string"}},
                          "maxRows": 2}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"columns\":{\"name\":{\"type\":\"string\"}},\"maxRows\":2}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-table.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1619
#AT_START_1620
at_fn_group_banner 1620 'ovsdb-table.at:29' \
  "table with maxRows of 2 - Python3" "              " 74
at_xfail=no
(
  $as_echo "1620. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-table.at:29" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-table.at:29"


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:29: \$PYTHON3 \$srcdir/test-ovsdb.py parse-table mytable '{\"columns\": {\"name\": {\"type\": \"string\"}},
                          \"maxRows\": 2}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:29"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-table mytable '{"columns": {"name": {"type": "string"}},
                          "maxRows": 2}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"columns\":{\"name\":{\"type\":\"string\"}},\"maxRows\":2}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-table.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1620
#AT_START_1621
at_fn_group_banner 1621 'ovsdb-table.at:34' \
  "table with index - C" "                           " 74
at_xfail=no
(
  $as_echo "1621. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:34: test-ovsdb parse-table mytable '{\"columns\": {\"a\": {\"type\": \"integer\"},
                                      \"b\": {\"type\": \"string\"}},
                          \"indexes\": [[\"b\", \"a\"]]}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:34"
( $at_check_trace; test-ovsdb parse-table mytable '{"columns": {"a": {"type": "integer"},
                                      "b": {"type": "string"}},
                          "indexes": [["b", "a"]]}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"columns\":{\"a\":{\"type\":\"integer\"},\"b\":{\"type\":\"string\"}},\"indexes\":[[\"b\",\"a\"]]}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-table.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1621
#AT_START_1622
at_fn_group_banner 1622 'ovsdb-table.at:34' \
  "table with index - Python2" "                     " 74
at_xfail=no
(
  $as_echo "1622. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-table.at:34" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-table.at:34"


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:34: \$PYTHON \$srcdir/test-ovsdb.py parse-table mytable '{\"columns\": {\"a\": {\"type\": \"integer\"},
                                      \"b\": {\"type\": \"string\"}},
                          \"indexes\": [[\"b\", \"a\"]]}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:34"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-table mytable '{"columns": {"a": {"type": "integer"},
                                      "b": {"type": "string"}},
                          "indexes": [["b", "a"]]}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"columns\":{\"a\":{\"type\":\"integer\"},\"b\":{\"type\":\"string\"}},\"indexes\":[[\"b\",\"a\"]]}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-table.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1622
#AT_START_1623
at_fn_group_banner 1623 'ovsdb-table.at:34' \
  "table with index - Python3" "                     " 74
at_xfail=no
(
  $as_echo "1623. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-table.at:34" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-table.at:34"


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:34: \$PYTHON3 \$srcdir/test-ovsdb.py parse-table mytable '{\"columns\": {\"a\": {\"type\": \"integer\"},
                                      \"b\": {\"type\": \"string\"}},
                          \"indexes\": [[\"b\", \"a\"]]}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:34"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-table mytable '{"columns": {"a": {"type": "integer"},
                                      "b": {"type": "string"}},
                          "indexes": [["b", "a"]]}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"columns\":{\"a\":{\"type\":\"integer\"},\"b\":{\"type\":\"string\"}},\"indexes\":[[\"b\",\"a\"]]}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-table.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1623
#AT_START_1624
at_fn_group_banner 1624 'ovsdb-table.at:40' \
  "table with syntax error in index - C" "           " 74
at_xfail=no
(
  $as_echo "1624. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:40: test-ovsdb parse-table mytable '{\"columns\": {\"a\": {\"type\": \"integer\"},
                                      \"b\": {\"type\": \"string\"}},
                          \"indexes\": [[\"b\", \"a\"], [0]]}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:40"
( $at_check_trace; test-ovsdb parse-table mytable '{"columns": {"a": {"type": "integer"},
                                      "b": {"type": "string"}},
                          "indexes": [["b", "a"], [0]]}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-table.at:40"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:40: if grep -F -e \"array of distinct column names expected\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:40"
( $at_check_trace; if grep -F -e "array of distinct column names expected" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-table.at:40"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1624
#AT_START_1625
at_fn_group_banner 1625 'ovsdb-table.at:40' \
  "table with syntax error in index - Python2" "     " 74
at_xfail=no
(
  $as_echo "1625. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-table.at:40" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-table.at:40"

   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:40: \$PYTHON3 \$srcdir/test-ovsdb.py parse-table mytable '{\"columns\": {\"a\": {\"type\": \"integer\"},
                                      \"b\": {\"type\": \"string\"}},
                          \"indexes\": [[\"b\", \"a\"], [0]]}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:40"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-table mytable '{"columns": {"a": {"type": "integer"},
                                      "b": {"type": "string"}},
                          "indexes": [["b", "a"], [0]]}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-table.at:40"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:40: if grep -F -e \"array of distinct column names expected\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:40"
( $at_check_trace; if grep -F -e "array of distinct column names expected" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-table.at:40"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1625
#AT_START_1626
at_fn_group_banner 1626 'ovsdb-table.at:46' \
  "table with empty index - C" "                     " 74
at_xfail=no
(
  $as_echo "1626. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:46: test-ovsdb parse-table mytable '{\"columns\": {\"a\": {\"type\": \"integer\"},
                                      \"b\": {\"type\": \"string\"}},
                          \"indexes\": [[]]}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:46"
( $at_check_trace; test-ovsdb parse-table mytable '{"columns": {"a": {"type": "integer"},
                                      "b": {"type": "string"}},
                          "indexes": [[]]}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-table.at:46"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:46: if grep -F -e \"index must have at least one column\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:46"
( $at_check_trace; if grep -F -e "index must have at least one column" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-table.at:46"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1626
#AT_START_1627
at_fn_group_banner 1627 'ovsdb-table.at:46' \
  "table with empty index - Python2" "               " 74
at_xfail=no
(
  $as_echo "1627. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-table.at:46" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-table.at:46"

   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:46: \$PYTHON3 \$srcdir/test-ovsdb.py parse-table mytable '{\"columns\": {\"a\": {\"type\": \"integer\"},
                                      \"b\": {\"type\": \"string\"}},
                          \"indexes\": [[]]}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:46"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-table mytable '{"columns": {"a": {"type": "integer"},
                                      "b": {"type": "string"}},
                          "indexes": [[]]}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-table.at:46"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:46: if grep -F -e \"index must have at least one column\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:46"
( $at_check_trace; if grep -F -e "index must have at least one column" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-table.at:46"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1627
#AT_START_1628
at_fn_group_banner 1628 'ovsdb-table.at:52' \
  "table with index of ephemeral column - C" "       " 74
at_xfail=no
(
  $as_echo "1628. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:52: test-ovsdb parse-table mytable '{\"columns\": {\"a\": {\"type\": \"integer\",
                                            \"ephemeral\": true},
                                      \"b\": {\"type\": \"string\"}},
                          \"indexes\": [[\"b\", \"a\"]]}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:52"
( $at_check_trace; test-ovsdb parse-table mytable '{"columns": {"a": {"type": "integer",
                                            "ephemeral": true},
                                      "b": {"type": "string"}},
                          "indexes": [["b", "a"]]}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-table.at:52"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:52: if grep -F -e \"ephemeral columns (such as a) may not be indexed\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:52"
( $at_check_trace; if grep -F -e "ephemeral columns (such as a) may not be indexed" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-table.at:52"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1628
#AT_START_1629
at_fn_group_banner 1629 'ovsdb-table.at:52' \
  "table with index of ephemeral column - Python2" " " 74
at_xfail=no
(
  $as_echo "1629. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-table.at:52" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-table.at:52"

   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:52: \$PYTHON3 \$srcdir/test-ovsdb.py parse-table mytable '{\"columns\": {\"a\": {\"type\": \"integer\",
                                            \"ephemeral\": true},
                                      \"b\": {\"type\": \"string\"}},
                          \"indexes\": [[\"b\", \"a\"]]}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:52"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-table mytable '{"columns": {"a": {"type": "integer",
                                            "ephemeral": true},
                                      "b": {"type": "string"}},
                          "indexes": [["b", "a"]]}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-table.at:52"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:52: if grep -F -e \"ephemeral columns (such as a) may not be indexed\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:52"
( $at_check_trace; if grep -F -e "ephemeral columns (such as a) may not be indexed" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-table.at:52"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1629
#AT_START_1630
at_fn_group_banner 1630 'ovsdb-table.at:59' \
  "column names may not begin with _ - C" "          " 74
at_xfail=no
(
  $as_echo "1630. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:59: test-ovsdb parse-table mytable \\
    '{\"columns\": {\"_column\": {\"type\": \"integer\"}}}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:59"
( $at_check_trace; test-ovsdb parse-table mytable \
    '{"columns": {"_column": {"type": "integer"}}}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-table.at:59"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:59: if grep -F -e \"names beginning with \\\"_\\\" are reserved\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:59"
( $at_check_trace; if grep -F -e "names beginning with \"_\" are reserved" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-table.at:59"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1630
#AT_START_1631
at_fn_group_banner 1631 'ovsdb-table.at:59' \
  "column names may not begin with _ - Python2" "    " 74
at_xfail=no
(
  $as_echo "1631. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-table.at:59" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-table.at:59"

   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:59: \$PYTHON3 \$srcdir/test-ovsdb.py parse-table mytable \\
    '{\"columns\": {\"_column\": {\"type\": \"integer\"}}}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:59"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-table mytable \
    '{"columns": {"_column": {"type": "integer"}}}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-table.at:59"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:59: if grep -F -e \"names beginning with \\\"_\\\" are reserved\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:59"
( $at_check_trace; if grep -F -e "names beginning with \"_\" are reserved" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-table.at:59"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1631
#AT_START_1632
at_fn_group_banner 1632 'ovsdb-table.at:65' \
  "table must have at least one column (1) - C" "    " 74
at_xfail=no
(
  $as_echo "1632. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:65: test-ovsdb parse-table mytable '{}'"
at_fn_check_prepare_trace "ovsdb-table.at:65"
( $at_check_trace; test-ovsdb parse-table mytable '{}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-table.at:65"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:65: if grep -F -e \"Parsing table schema for table mytable failed: Required 'columns' member is missing.\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:65"
( $at_check_trace; if grep -F -e "Parsing table schema for table mytable failed: Required 'columns' member is missing." stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-table.at:65"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1632
#AT_START_1633
at_fn_group_banner 1633 'ovsdb-table.at:65' \
  "table must have at least one column (1) - Python2" "" 74
at_xfail=no
(
  $as_echo "1633. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-table.at:65" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-table.at:65"

   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:65: \$PYTHON3 \$srcdir/test-ovsdb.py parse-table mytable '{}'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-table mytable '{}'" "ovsdb-table.at:65"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-table mytable '{}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-table.at:65"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:65: if grep -F -e \"Parsing table schema for table mytable failed: Required 'columns' member is missing.\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:65"
( $at_check_trace; if grep -F -e "Parsing table schema for table mytable failed: Required 'columns' member is missing." stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-table.at:65"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1633
#AT_START_1634
at_fn_group_banner 1634 'ovsdb-table.at:69' \
  "table must have at least one column (2) - C" "    " 74
at_xfail=no
(
  $as_echo "1634. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:69: test-ovsdb parse-table mytable '{\"columns\": {}}'"
at_fn_check_prepare_trace "ovsdb-table.at:69"
( $at_check_trace; test-ovsdb parse-table mytable '{"columns": {}}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-table.at:69"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:69: if grep -F -e \"table must have at least one column\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:69"
( $at_check_trace; if grep -F -e "table must have at least one column" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-table.at:69"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1634
#AT_START_1635
at_fn_group_banner 1635 'ovsdb-table.at:69' \
  "table must have at least one column (2) - Python2" "" 74
at_xfail=no
(
  $as_echo "1635. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-table.at:69" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-table.at:69"

   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:69: \$PYTHON3 \$srcdir/test-ovsdb.py parse-table mytable '{\"columns\": {}}'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py parse-table mytable '{\"columns\": {}}'" "ovsdb-table.at:69"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-table mytable '{"columns": {}}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-table.at:69"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:69: if grep -F -e \"table must have at least one column\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:69"
( $at_check_trace; if grep -F -e "table must have at least one column" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-table.at:69"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1635
#AT_START_1636
at_fn_group_banner 1636 'ovsdb-table.at:73' \
  "table maxRows must be positive - C" "             " 74
at_xfail=no
(
  $as_echo "1636. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:73: test-ovsdb parse-table mytable '{\"columns\": {\"name\": {\"type\": \"string\"}},
                          \"maxRows\": 0}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:73"
( $at_check_trace; test-ovsdb parse-table mytable '{"columns": {"name": {"type": "string"}},
                          "maxRows": 0}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-table.at:73"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:73: if grep -F -e \"syntax \\\"{\\\"columns\\\":{\\\"name\\\":{\\\"type\\\":\\\"string\\\"}},\\\"maxRows\\\":0}\\\": syntax error: maxRows must be at least 1\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:73"
( $at_check_trace; if grep -F -e "syntax \"{\"columns\":{\"name\":{\"type\":\"string\"}},\"maxRows\":0}\": syntax error: maxRows must be at least 1" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-table.at:73"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1636
#AT_START_1637
at_fn_group_banner 1637 'ovsdb-table.at:73' \
  "table maxRows must be positive - Python2" "       " 74
at_xfail=no
(
  $as_echo "1637. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-table.at:73" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-table.at:73"

   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:73: \$PYTHON3 \$srcdir/test-ovsdb.py parse-table mytable '{\"columns\": {\"name\": {\"type\": \"string\"}},
                          \"maxRows\": 0}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:73"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-table mytable '{"columns": {"name": {"type": "string"}},
                          "maxRows": 0}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-table.at:73"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-table.at:73: if grep -F -e \"syntax \\\"{\\\"columns\\\":{\\\"name\\\":{\\\"type\\\":\\\"string\\\"}},\\\"maxRows\\\":0}\\\": syntax error: maxRows must be at least 1\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-table.at:73"
( $at_check_trace; if grep -F -e "syntax \"{\"columns\":{\"name\":{\"type\":\"string\"}},\"maxRows\":0}\": syntax error: maxRows must be at least 1" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-table.at:73"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1637
#AT_START_1638
at_fn_group_banner 1638 'ovsdb-row.at:3' \
  "row with one string column" "                     " 75
at_xfail=no
(
  $as_echo "1638. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-row.at:3: test-ovsdb parse-rows \\
    '{\"columns\": {\"name\": {\"type\": \"string\"}}}' \\
    '{\"name\": \"value\"}' \\
    '{\"name\": \"\"}' \\
    '{\"name\": \"longer string with spaces\"}' \\
    '{}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-row.at:3"
( $at_check_trace; test-ovsdb parse-rows \
    '{"columns": {"name": {"type": "string"}}}' \
    '{"name": "value"}' \
    '{"name": ""}' \
    '{"name": "longer string with spaces"}' \
    '{}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"_uuid\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"_version\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"name\":\"value\"}
name
{\"_uuid\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"_version\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"name\":\"\"}
name
{\"_uuid\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"_version\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"name\":\"longer string with spaces\"}
name
{\"_uuid\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"_version\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"name\":\"\"}
<none>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-row.at:3"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1638
#AT_START_1639
at_fn_group_banner 1639 'ovsdb-row.at:19' \
  "row with one integer column" "                    " 75
at_xfail=no
(
  $as_echo "1639. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-row.at:19: test-ovsdb parse-rows \\
    '{\"columns\": {\"count\": {\"type\": \"integer\"}}}' \\
    '{\"count\": 1}' \\
    '{\"count\": -1}' \\
    '{\"count\": 2e10}' \\
    '{}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-row.at:19"
( $at_check_trace; test-ovsdb parse-rows \
    '{"columns": {"count": {"type": "integer"}}}' \
    '{"count": 1}' \
    '{"count": -1}' \
    '{"count": 2e10}' \
    '{}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"_uuid\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"_version\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"count\":1}
count
{\"_uuid\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"_version\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"count\":-1}
count
{\"_uuid\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"_version\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"count\":20000000000}
count
{\"_uuid\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"_version\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"count\":0}
<none>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-row.at:19"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1639
#AT_START_1640
at_fn_group_banner 1640 'ovsdb-row.at:35' \
  "row with one real column" "                       " 75
at_xfail=no
(
  $as_echo "1640. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-row.at:35: test-ovsdb parse-rows \\
    '{\"columns\": {\"cost\": {\"type\": \"real\"}}}' \\
    '{\"cost\": 1.0}' \\
    '{\"cost\": -2.0}' \\
    '{\"cost\": 123000}' \\
    '{}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-row.at:35"
( $at_check_trace; test-ovsdb parse-rows \
    '{"columns": {"cost": {"type": "real"}}}' \
    '{"cost": 1.0}' \
    '{"cost": -2.0}' \
    '{"cost": 123000}' \
    '{}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"_uuid\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"_version\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"cost\":1}
cost
{\"_uuid\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"_version\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"cost\":-2}
cost
{\"_uuid\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"_version\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"cost\":123000}
cost
{\"_uuid\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"_version\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"cost\":0}
<none>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-row.at:35"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1640
#AT_START_1641
at_fn_group_banner 1641 'ovsdb-row.at:51' \
  "row with one boolean column" "                    " 75
at_xfail=no
(
  $as_echo "1641. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-row.at:51: test-ovsdb parse-rows \\
    '{\"columns\": {\"feasible\": {\"type\": \"boolean\"}}}' \\
    '{\"feasible\": true}' \\
    '{\"feasible\": false}' \\
    '{}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-row.at:51"
( $at_check_trace; test-ovsdb parse-rows \
    '{"columns": {"feasible": {"type": "boolean"}}}' \
    '{"feasible": true}' \
    '{"feasible": false}' \
    '{}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"_uuid\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"_version\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"feasible\":true}
feasible
{\"_uuid\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"_version\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"feasible\":false}
feasible
{\"_uuid\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"_version\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"feasible\":false}
<none>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-row.at:51"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1641
#AT_START_1642
at_fn_group_banner 1642 'ovsdb-row.at:64' \
  "row with one uuid column" "                       " 75
at_xfail=no
(
  $as_echo "1642. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-row.at:64: test-ovsdb parse-rows \\
    '{\"columns\": {\"ref\": {\"type\": \"uuid\"}}}' \\
    '{\"ref\": [\"uuid\", \"f707423d-bf5b-48b5-b6c0-797c900ba4b6\"]}' \\
    '{\"ref\": [\"uuid\", \"33583cc5-d2f4-43de-b1ca-8aac14071b51\"]}' \\
    '{}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-row.at:64"
( $at_check_trace; test-ovsdb parse-rows \
    '{"columns": {"ref": {"type": "uuid"}}}' \
    '{"ref": ["uuid", "f707423d-bf5b-48b5-b6c0-797c900ba4b6"]}' \
    '{"ref": ["uuid", "33583cc5-d2f4-43de-b1ca-8aac14071b51"]}' \
    '{}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"_uuid\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"_version\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"ref\":[\"uuid\",\"f707423d-bf5b-48b5-b6c0-797c900ba4b6\"]}
ref
{\"_uuid\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"_version\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"ref\":[\"uuid\",\"33583cc5-d2f4-43de-b1ca-8aac14071b51\"]}
ref
{\"_uuid\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"_version\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"ref\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"]}
<none>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-row.at:64"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1642
#AT_START_1643
at_fn_group_banner 1643 'ovsdb-row.at:77' \
  "row with set of 1 to 2 elements" "                " 75
at_xfail=no
(
  $as_echo "1643. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-row.at:77: test-ovsdb parse-rows \\
    '{\"columns\": {\"myset\": {\"type\": {\"key\": \"integer\", \"min\": 1, \"max\": 2}}}}' \\
    '{}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-row.at:77"
( $at_check_trace; test-ovsdb parse-rows \
    '{"columns": {"myset": {"type": {"key": "integer", "min": 1, "max": 2}}}}' \
    '{}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"_uuid\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"_version\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"myset\":0}
<none>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-row.at:77"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1643
#AT_START_1644
at_fn_group_banner 1644 'ovsdb-row.at:84' \
  "row with map of 1 to 2 elements" "                " 75
at_xfail=no
(
  $as_echo "1644. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-row.at:84: test-ovsdb parse-rows \\
    '{\"columns\": {\"mymap\": {\"type\": {\"key\": \"integer\", \"value\": \"uuid\", \"min\": 1, \"max\": 2}}}}' \\
    '{}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-row.at:84"
( $at_check_trace; test-ovsdb parse-rows \
    '{"columns": {"mymap": {"type": {"key": "integer", "value": "uuid", "min": 1, "max": 2}}}}' \
    '{}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"_uuid\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"_version\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"mymap\":[\"map\",[[0,[\"uuid\",\"00000000-0000-0000-0000-000000000000\"]]]]}
<none>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-row.at:84"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1644
#AT_START_1645
at_fn_group_banner 1645 'ovsdb-row.at:91' \
  "row with several columns" "                       " 75
at_xfail=no
(
  $as_echo "1645. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-row.at:91: test-ovsdb parse-rows \\
    '{\"columns\":
        {\"vswitch\": {\"type\": \"uuid\"},
         \"name\": {\"type\": \"string\"},
         \"datapath_id\": {\"type\": {\"key\": \"string\", \"min\": 0}},
         \"hwaddr\": {\"type\": \"string\"},
         \"mirrors\": {\"type\": {\"key\": \"uuid\", \"min\": 0, \"max\": \"unlimited\"}},
         \"netflows\": {\"type\": {\"key\": \"uuid\", \"min\": 0, \"max\": \"unlimited\"}},
         \"controller\": {\"type\": {\"key\": \"uuid\", \"min\": 0}},
         \"listeners\": {\"type\": {\"key\": \"uuid\", \"min\": 0, \"max\": \"unlimited\"}},
         \"snoops\": {\"type\": {\"key\": \"uuid\", \"min\": 0, \"max\": \"unlimited\"}}}}' \\
    '{\"vswitch\": [\"uuid\", \"1a5c7280-0d4c-4e34-9ec7-c772339f7774\"],
      \"name\": \"br0\",
      \"datapath_id\": \"000ae4256bb0\",
      \"hwaddr\": \"00:0a:e4:25:6b:b0\"}' \\
    '{}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-row.at:91"
( $at_check_trace; test-ovsdb parse-rows \
    '{"columns":
        {"vswitch": {"type": "uuid"},
         "name": {"type": "string"},
         "datapath_id": {"type": {"key": "string", "min": 0}},
         "hwaddr": {"type": "string"},
         "mirrors": {"type": {"key": "uuid", "min": 0, "max": "unlimited"}},
         "netflows": {"type": {"key": "uuid", "min": 0, "max": "unlimited"}},
         "controller": {"type": {"key": "uuid", "min": 0}},
         "listeners": {"type": {"key": "uuid", "min": 0, "max": "unlimited"}},
         "snoops": {"type": {"key": "uuid", "min": 0, "max": "unlimited"}}}}' \
    '{"vswitch": ["uuid", "1a5c7280-0d4c-4e34-9ec7-c772339f7774"],
      "name": "br0",
      "datapath_id": "000ae4256bb0",
      "hwaddr": "00:0a:e4:25:6b:b0"}' \
    '{}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"_uuid\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"_version\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"controller\":[\"set\",[]],\"datapath_id\":\"000ae4256bb0\",\"hwaddr\":\"00:0a:e4:25:6b:b0\",\"listeners\":[\"set\",[]],\"mirrors\":[\"set\",[]],\"name\":\"br0\",\"netflows\":[\"set\",[]],\"snoops\":[\"set\",[]],\"vswitch\":[\"uuid\",\"1a5c7280-0d4c-4e34-9ec7-c772339f7774\"]}
datapath_id, hwaddr, name, vswitch
{\"_uuid\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"_version\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"],\"controller\":[\"set\",[]],\"datapath_id\":[\"set\",[]],\"hwaddr\":\"\",\"listeners\":[\"set\",[]],\"mirrors\":[\"set\",[]],\"name\":\"\",\"netflows\":[\"set\",[]],\"snoops\":[\"set\",[]],\"vswitch\":[\"uuid\",\"00000000-0000-0000-0000-000000000000\"]}
<none>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-row.at:91"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1645
#AT_START_1646
at_fn_group_banner 1646 'ovsdb-row.at:113' \
  "row hashing (scalars)" "                          " 75
at_xfail=no
(
  $as_echo "1646. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-row.at:113: test-ovsdb compare-rows \\
    '{\"columns\":
        {\"i\": {\"type\": \"integer\"},
         \"r\": {\"type\": \"real\"},
         \"b\": {\"type\": \"boolean\"},
	 \"s\": {\"type\": \"string\"},
         \"u\": {\"type\": \"uuid\"}}}' \\
     '[\"null\", {}]' \\
     '[\"i1\", {\"i\": 1}]' \\
     '[\"i2\", {\"i\": 2}]' \\
     '[\"i4\", {\"i\": 4}]' \\
     '[\"i8\", {\"i\": 8}]' \\
     '[\"i16\", {\"i\": 16}]' \\
     '[\"i32\", {\"i\": 32}]' \\
     '[\"i64\", {\"i\": 64}]' \\
     '[\"i128\", {\"i\": 128}]' \\
     '[\"i256\", {\"i\": 256}]' \\
     '[\"null2\", {\"r\": -0}]' \\
     '[\"r123\", {\"r\": 123}]' \\
     '[\"r0.0625\", {\"r\": 0.0625}]' \\
     '[\"r0.125\", {\"r\": 0.125}]' \\
     '[\"r0.25\", {\"r\": 0.25}]' \\
     '[\"r0.5\", {\"r\": 0.5}]' \\
     '[\"r1\", {\"r\": 1}]' \\
     '[\"r2\", {\"r\": 2}]' \\
     '[\"r4\", {\"r\": 4}]' \\
     '[\"r8\", {\"r\": 8}]' \\
     '[\"r16\", {\"r\": 16}]' \\
     '[\"r32\", {\"r\": 32}]' \\
     '[\"null3\", {\"b\": false}]' \\
     '[\"b1\", {\"b\": true}]' \\
     '[\"null4\", {\"s\": \"\"}]' \\
     '[\"s0\", {\"s\": \"a\"}]' \\
     '[\"s1\", {\"s\": \"b\"}]' \\
     '[\"s2\", {\"s\": \"c\"}]' \\
     '[\"s3\", {\"s\": \"d\"}]' \\
     '[\"s4\", {\"s\": \"e\"}]' \\
     '[\"s5\", {\"s\": \"f\"}]' \\
     '[\"s6\", {\"s\": \"g\"}]' \\
     '[\"s7\", {\"s\": \"h\"}]' \\
     '[\"s8\", {\"s\": \"i\"}]' \\
     '[\"s9\", {\"s\": \"j\"}]' \\
     '[\"null5\", {\"u\": [\"uuid\",\"00000000-0000-0000-0000-000000000000\"]}]' \\
     '[\"u1\", {\"u\": [\"uuid\",\"10000000-0000-0000-0000-000000000000\"]}]' \\
     '[\"u2\", {\"u\": [\"uuid\",\"01000000-0000-0000-0000-000000000000\"]}]' \\
     '[\"u3\", {\"u\": [\"uuid\",\"00100000-0000-0000-0000-000000000000\"]}]' \\
     '[\"u4\", {\"u\": [\"uuid\",\"00010000-0000-0000-0000-000000000000\"]}]' \\
     '[\"u5\", {\"u\": [\"uuid\",\"00001000-0000-0000-0000-000000000000\"]}]' \\
     '[\"u6\", {\"u\": [\"uuid\",\"00000100-0000-0000-0000-000000000000\"]}]' \\
     '[\"u7\", {\"u\": [\"uuid\",\"00000010-0000-0000-0000-000000000000\"]}]' \\
     '[\"u8\", {\"u\": [\"uuid\",\"00000001-0000-0000-0000-000000000000\"]}]' \\
     '[\"null6\", {\"u\": [\"uuid\",\"00000000-c6db-4d22-970f-b41fabd20c4b\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-row.at:113"
( $at_check_trace; test-ovsdb compare-rows \
    '{"columns":
        {"i": {"type": "integer"},
         "r": {"type": "real"},
         "b": {"type": "boolean"},
	 "s": {"type": "string"},
         "u": {"type": "uuid"}}}' \
     '["null", {}]' \
     '["i1", {"i": 1}]' \
     '["i2", {"i": 2}]' \
     '["i4", {"i": 4}]' \
     '["i8", {"i": 8}]' \
     '["i16", {"i": 16}]' \
     '["i32", {"i": 32}]' \
     '["i64", {"i": 64}]' \
     '["i128", {"i": 128}]' \
     '["i256", {"i": 256}]' \
     '["null2", {"r": -0}]' \
     '["r123", {"r": 123}]' \
     '["r0.0625", {"r": 0.0625}]' \
     '["r0.125", {"r": 0.125}]' \
     '["r0.25", {"r": 0.25}]' \
     '["r0.5", {"r": 0.5}]' \
     '["r1", {"r": 1}]' \
     '["r2", {"r": 2}]' \
     '["r4", {"r": 4}]' \
     '["r8", {"r": 8}]' \
     '["r16", {"r": 16}]' \
     '["r32", {"r": 32}]' \
     '["null3", {"b": false}]' \
     '["b1", {"b": true}]' \
     '["null4", {"s": ""}]' \
     '["s0", {"s": "a"}]' \
     '["s1", {"s": "b"}]' \
     '["s2", {"s": "c"}]' \
     '["s3", {"s": "d"}]' \
     '["s4", {"s": "e"}]' \
     '["s5", {"s": "f"}]' \
     '["s6", {"s": "g"}]' \
     '["s7", {"s": "h"}]' \
     '["s8", {"s": "i"}]' \
     '["s9", {"s": "j"}]' \
     '["null5", {"u": ["uuid","00000000-0000-0000-0000-000000000000"]}]' \
     '["u1", {"u": ["uuid","10000000-0000-0000-0000-000000000000"]}]' \
     '["u2", {"u": ["uuid","01000000-0000-0000-0000-000000000000"]}]' \
     '["u3", {"u": ["uuid","00100000-0000-0000-0000-000000000000"]}]' \
     '["u4", {"u": ["uuid","00010000-0000-0000-0000-000000000000"]}]' \
     '["u5", {"u": ["uuid","00001000-0000-0000-0000-000000000000"]}]' \
     '["u6", {"u": ["uuid","00000100-0000-0000-0000-000000000000"]}]' \
     '["u7", {"u": ["uuid","00000010-0000-0000-0000-000000000000"]}]' \
     '["u8", {"u": ["uuid","00000001-0000-0000-0000-000000000000"]}]' \
     '["null6", {"u": ["uuid","00000000-c6db-4d22-970f-b41fabd20c4b"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "null == null2
null == null3
null == null4
null == null5
hash(null) == hash(null6)
null2 == null3
null2 == null4
null2 == null5
hash(null2) == hash(null6)
null3 == null4
null3 == null5
hash(null3) == hash(null6)
null4 == null5
hash(null4) == hash(null6)
hash(null5) == hash(null6)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-row.at:113"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1646
#AT_START_1647
at_fn_group_banner 1647 'ovsdb-row.at:182' \
  "row hashing (sets)" "                             " 75
at_xfail=no
(
  $as_echo "1647. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-row.at:182: test-ovsdb compare-rows \\
    '{\"columns\":
        {\"i\": {\"type\": {\"key\": \"integer\", \"min\": 0, \"max\": \"unlimited\"}},
         \"r\": {\"type\": {\"key\": \"real\", \"min\": 0, \"max\": \"unlimited\"}},
         \"b\": {\"type\": {\"key\": \"boolean\", \"min\": 0, \"max\": \"unlimited\"}},
	 \"s\": {\"type\": {\"key\": \"string\", \"min\": 0, \"max\": \"unlimited\"}},
         \"u\": {\"type\": {\"key\": \"uuid\", \"min\": 0, \"max\": \"unlimited\"}}}}' \\
    '[\"null0\", {\"i\": [\"set\", []]}]' \\
    '[\"i0\", {\"i\": [\"set\", [0]]}]' \\
    '[\"i01\", {\"i\": [\"set\", [0, 1]]}]' \\
    '[\"i012\", {\"i\": [\"set\", [0, 1, 2]]}]' \\
    '[\"i021\", {\"i\": [\"set\", [0, 2, 1]]}]' \\
    '[\"i201\", {\"i\": [\"set\", [2, 0, 1]]}]' \\
    '[\"i102\", {\"i\": [\"set\", [1, 0, 2]]}]' \\
    '[\"i120\", {\"i\": [\"set\", [1, 2, 0]]}]' \\
    '[\"i210\", {\"i\": [\"set\", [2, 1, 0]]}]' \\
    '[\"r0\", {\"r\": [\"set\", [0]]}]' \\
    '[\"r01\", {\"r\": [\"set\", [0, 1]]}]' \\
    '[\"r012\", {\"r\": [\"set\", [0, 1, 2]]}]' \\
    '[\"r201\", {\"r\": [\"set\", [2, 0, 1]]}]' \\
    '[\"null1\", {\"b\": [\"set\", []]}]' \\
    '[\"b0\", {\"b\": [\"set\", [false]]}]' \\
    '[\"b1\", {\"b\": [\"set\", [true]]}]' \\
    '[\"b01\", {\"b\": [\"set\", [false, true]]}]' \\
    '[\"b10\", {\"b\": [\"set\", [true, false]]}]' \\
    '[\"null2\", {\"s\": [\"set\", []]}]' \\
    '[\"sa\", {\"s\": [\"set\", [\"a\"]]}]' \\
    '[\"sb\", {\"s\": [\"set\", [\"b\"]]}]' \\
    '[\"sab\", {\"s\": [\"set\", [\"a\", \"b\"]]}]' \\
    '[\"sba\", {\"s\": [\"set\", [\"b\", \"a\"]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-row.at:182"
( $at_check_trace; test-ovsdb compare-rows \
    '{"columns":
        {"i": {"type": {"key": "integer", "min": 0, "max": "unlimited"}},
         "r": {"type": {"key": "real", "min": 0, "max": "unlimited"}},
         "b": {"type": {"key": "boolean", "min": 0, "max": "unlimited"}},
	 "s": {"type": {"key": "string", "min": 0, "max": "unlimited"}},
         "u": {"type": {"key": "uuid", "min": 0, "max": "unlimited"}}}}' \
    '["null0", {"i": ["set", []]}]' \
    '["i0", {"i": ["set", [0]]}]' \
    '["i01", {"i": ["set", [0, 1]]}]' \
    '["i012", {"i": ["set", [0, 1, 2]]}]' \
    '["i021", {"i": ["set", [0, 2, 1]]}]' \
    '["i201", {"i": ["set", [2, 0, 1]]}]' \
    '["i102", {"i": ["set", [1, 0, 2]]}]' \
    '["i120", {"i": ["set", [1, 2, 0]]}]' \
    '["i210", {"i": ["set", [2, 1, 0]]}]' \
    '["r0", {"r": ["set", [0]]}]' \
    '["r01", {"r": ["set", [0, 1]]}]' \
    '["r012", {"r": ["set", [0, 1, 2]]}]' \
    '["r201", {"r": ["set", [2, 0, 1]]}]' \
    '["null1", {"b": ["set", []]}]' \
    '["b0", {"b": ["set", [false]]}]' \
    '["b1", {"b": ["set", [true]]}]' \
    '["b01", {"b": ["set", [false, true]]}]' \
    '["b10", {"b": ["set", [true, false]]}]' \
    '["null2", {"s": ["set", []]}]' \
    '["sa", {"s": ["set", ["a"]]}]' \
    '["sb", {"s": ["set", ["b"]]}]' \
    '["sab", {"s": ["set", ["a", "b"]]}]' \
    '["sba", {"s": ["set", ["b", "a"]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "null0 == null1
null0 == null2
i012 == i021
i012 == i201
i012 == i102
i012 == i120
i012 == i210
i021 == i201
i021 == i102
i021 == i120
i021 == i210
i201 == i102
i201 == i120
i201 == i210
i102 == i120
i102 == i210
i120 == i210
r012 == r201
null1 == null2
b01 == b10
sab == sba
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-row.at:182"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1647
#AT_START_1648
at_fn_group_banner 1648 'ovsdb-row.at:235' \
  "row hashing (maps)" "                             " 75
at_xfail=no
(
  $as_echo "1648. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-row.at:235: test-ovsdb compare-rows \\
    '{\"columns\":
        {\"ii\": {\"type\": {\"key\": \"integer\", \"value\": \"integer\",
                         \"min\": 0, \"max\": \"unlimited\"}},
         \"rr\": {\"type\": {\"key\": \"real\", \"value\": \"real\",
                         \"min\": 0, \"max\": \"unlimited\"}},
         \"bb\": {\"type\": {\"key\": \"boolean\", \"value\": \"boolean\",
                         \"min\": 0, \"max\": \"unlimited\"}},
	 \"ss\": {\"type\": {\"key\": \"string\", \"value\": \"string\",
                         \"min\": 0, \"max\": \"unlimited\"}}}}' \\
    '[\"null\", {}]' \\
    '[\"ii0\", {\"ii\": [\"map\", [[0, 0]]]}]' \\
    '[\"ii1\", {\"ii\": [\"map\", [[0, 1]]]}]' \\
    '[\"ii00\", {\"ii\": [\"map\", [[0, 0], [1, 0]]]}]' \\
    '[\"ii01\", {\"ii\": [\"map\", [[0, 0], [1, 1]]]}]' \\
    '[\"ii10\", {\"ii\": [\"map\", [[0, 1], [1, 0]]]}]' \\
    '[\"ii11\", {\"ii\": [\"map\", [[0, 1], [1, 1]]]}]' \\
    '[\"rr0\", {\"rr\": [\"map\", [[0, 0]]]}]' \\
    '[\"rr0\", {\"rr\": [\"map\", [[0, 1]]]}]' \\
    '[\"rr00\", {\"rr\": [\"map\", [[0, 0], [1, 0]]]}]' \\
    '[\"rr01\", {\"rr\": [\"map\", [[0, 0], [1, 1]]]}]' \\
    '[\"rr10\", {\"rr\": [\"map\", [[0, 1], [1, 0]]]}]' \\
    '[\"rr11\", {\"rr\": [\"map\", [[0, 1], [1, 1]]]}]' \\
    '[\"bb0\", {\"bb\": [\"map\", [[false, false]]]}]' \\
    '[\"bb1\", {\"bb\": [\"map\", [[false, true]]]}]' \\
    '[\"bb00\", {\"bb\": [\"map\", [[false, false], [true, false]]]}]' \\
    '[\"bb01\", {\"bb\": [\"map\", [[false, false], [true, true]]]}]' \\
    '[\"bb10\", {\"bb\": [\"map\", [[false, true], [true, false]]]}]' \\
    '[\"bb11\", {\"bb\": [\"map\", [[false, true], [true, true]]]}]' \\
    '[\"ss0\", {\"ss\": [\"map\", [[\"a\", \"a\"]]]}]' \\
    '[\"ss1\", {\"ss\": [\"map\", [[\"a\", \"b\"]]]}]' \\
    '[\"ss00\", {\"ss\": [\"map\", [[\"a\", \"a\"], [\"b\", \"a\"]]]}]' \\
    '[\"ss01\", {\"ss\": [\"map\", [[\"a\", \"a\"], [\"b\", \"b\"]]]}]' \\
    '[\"ss10\", {\"ss\": [\"map\", [[\"a\", \"b\"], [\"b\", \"a\"]]]}]' \\
    '[\"ss11\", {\"ss\": [\"map\", [[\"a\", \"b\"], [\"b\", \"b\"]]]}]'; echo
"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-row.at:235"
( $at_check_trace; test-ovsdb compare-rows \
    '{"columns":
        {"ii": {"type": {"key": "integer", "value": "integer",
                         "min": 0, "max": "unlimited"}},
         "rr": {"type": {"key": "real", "value": "real",
                         "min": 0, "max": "unlimited"}},
         "bb": {"type": {"key": "boolean", "value": "boolean",
                         "min": 0, "max": "unlimited"}},
	 "ss": {"type": {"key": "string", "value": "string",
                         "min": 0, "max": "unlimited"}}}}' \
    '["null", {}]' \
    '["ii0", {"ii": ["map", [[0, 0]]]}]' \
    '["ii1", {"ii": ["map", [[0, 1]]]}]' \
    '["ii00", {"ii": ["map", [[0, 0], [1, 0]]]}]' \
    '["ii01", {"ii": ["map", [[0, 0], [1, 1]]]}]' \
    '["ii10", {"ii": ["map", [[0, 1], [1, 0]]]}]' \
    '["ii11", {"ii": ["map", [[0, 1], [1, 1]]]}]' \
    '["rr0", {"rr": ["map", [[0, 0]]]}]' \
    '["rr0", {"rr": ["map", [[0, 1]]]}]' \
    '["rr00", {"rr": ["map", [[0, 0], [1, 0]]]}]' \
    '["rr01", {"rr": ["map", [[0, 0], [1, 1]]]}]' \
    '["rr10", {"rr": ["map", [[0, 1], [1, 0]]]}]' \
    '["rr11", {"rr": ["map", [[0, 1], [1, 1]]]}]' \
    '["bb0", {"bb": ["map", [[false, false]]]}]' \
    '["bb1", {"bb": ["map", [[false, true]]]}]' \
    '["bb00", {"bb": ["map", [[false, false], [true, false]]]}]' \
    '["bb01", {"bb": ["map", [[false, false], [true, true]]]}]' \
    '["bb10", {"bb": ["map", [[false, true], [true, false]]]}]' \
    '["bb11", {"bb": ["map", [[false, true], [true, true]]]}]' \
    '["ss0", {"ss": ["map", [["a", "a"]]]}]' \
    '["ss1", {"ss": ["map", [["a", "b"]]]}]' \
    '["ss00", {"ss": ["map", [["a", "a"], ["b", "a"]]]}]' \
    '["ss01", {"ss": ["map", [["a", "a"], ["b", "b"]]]}]' \
    '["ss10", {"ss": ["map", [["a", "b"], ["b", "a"]]]}]' \
    '["ss11", {"ss": ["map", [["a", "b"], ["b", "b"]]]}]'; echo

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-row.at:235"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1648
#AT_START_1649
at_fn_group_banner 1649 'ovsdb-schema.at:3' \
  "schema with valid refTables - C" "                " 76
at_xfail=no
(
  $as_echo "1649. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-schema.at:3: test-ovsdb parse-schema \\
      '{\"name\": \"mydb\",
        \"version\": \"4.2.1\",
        \"tables\": {
          \"a\": {
            \"columns\": {
              \"map\": {
                \"type\": {
                  \"key\": {
                    \"type\": \"uuid\",
                    \"refTable\": \"b\"},
                  \"value\": {
                    \"type\": \"uuid\",
                    \"refTable\": \"a\"}}}}},
          \"b\": {
            \"columns\": {
              \"aRef\": {
                \"type\": {
                  \"key\": {
                    \"type\": \"uuid\",
                    \"refTable\": \"a\"}}}}}}}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-schema.at:3"
( $at_check_trace; test-ovsdb parse-schema \
      '{"name": "mydb",
        "version": "4.2.1",
        "tables": {
          "a": {
            "columns": {
              "map": {
                "type": {
                  "key": {
                    "type": "uuid",
                    "refTable": "b"},
                  "value": {
                    "type": "uuid",
                    "refTable": "a"}}}}},
          "b": {
            "columns": {
              "aRef": {
                "type": {
                  "key": {
                    "type": "uuid",
                    "refTable": "a"}}}}}}}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"name\":\"mydb\",\"tables\":{\"a\":{\"columns\":{\"map\":{\"type\":{\"key\":{\"refTable\":\"b\",\"type\":\"uuid\"},\"value\":{\"refTable\":\"a\",\"type\":\"uuid\"}}}}},\"b\":{\"columns\":{\"aRef\":{\"type\":{\"key\":{\"refTable\":\"a\",\"type\":\"uuid\"}}}}}},\"version\":\"4.2.1\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-schema.at:3"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1649
#AT_START_1650
at_fn_group_banner 1650 'ovsdb-schema.at:3' \
  "schema with valid refTables - Python2" "          " 76
at_xfail=no
(
  $as_echo "1650. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-schema.at:3" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-schema.at:3"


   { set +x
$as_echo "$at_srcdir/ovsdb-schema.at:3: \$PYTHON \$srcdir/test-ovsdb.py parse-schema \\
      '{\"name\": \"mydb\",
        \"version\": \"4.2.1\",
        \"tables\": {
          \"a\": {
            \"columns\": {
              \"map\": {
                \"type\": {
                  \"key\": {
                    \"type\": \"uuid\",
                    \"refTable\": \"b\"},
                  \"value\": {
                    \"type\": \"uuid\",
                    \"refTable\": \"a\"}}}}},
          \"b\": {
            \"columns\": {
              \"aRef\": {
                \"type\": {
                  \"key\": {
                    \"type\": \"uuid\",
                    \"refTable\": \"a\"}}}}}}}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-schema.at:3"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-schema \
      '{"name": "mydb",
        "version": "4.2.1",
        "tables": {
          "a": {
            "columns": {
              "map": {
                "type": {
                  "key": {
                    "type": "uuid",
                    "refTable": "b"},
                  "value": {
                    "type": "uuid",
                    "refTable": "a"}}}}},
          "b": {
            "columns": {
              "aRef": {
                "type": {
                  "key": {
                    "type": "uuid",
                    "refTable": "a"}}}}}}}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"name\":\"mydb\",\"tables\":{\"a\":{\"columns\":{\"map\":{\"type\":{\"key\":{\"refTable\":\"b\",\"type\":\"uuid\"},\"value\":{\"refTable\":\"a\",\"type\":\"uuid\"}}}}},\"b\":{\"columns\":{\"aRef\":{\"type\":{\"key\":{\"refTable\":\"a\",\"type\":\"uuid\"}}}}}},\"version\":\"4.2.1\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-schema.at:3"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1650
#AT_START_1651
at_fn_group_banner 1651 'ovsdb-schema.at:3' \
  "schema with valid refTables - Python3" "          " 76
at_xfail=no
(
  $as_echo "1651. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-schema.at:3" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-schema.at:3"


   { set +x
$as_echo "$at_srcdir/ovsdb-schema.at:3: \$PYTHON3 \$srcdir/test-ovsdb.py parse-schema \\
      '{\"name\": \"mydb\",
        \"version\": \"4.2.1\",
        \"tables\": {
          \"a\": {
            \"columns\": {
              \"map\": {
                \"type\": {
                  \"key\": {
                    \"type\": \"uuid\",
                    \"refTable\": \"b\"},
                  \"value\": {
                    \"type\": \"uuid\",
                    \"refTable\": \"a\"}}}}},
          \"b\": {
            \"columns\": {
              \"aRef\": {
                \"type\": {
                  \"key\": {
                    \"type\": \"uuid\",
                    \"refTable\": \"a\"}}}}}}}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-schema.at:3"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-schema \
      '{"name": "mydb",
        "version": "4.2.1",
        "tables": {
          "a": {
            "columns": {
              "map": {
                "type": {
                  "key": {
                    "type": "uuid",
                    "refTable": "b"},
                  "value": {
                    "type": "uuid",
                    "refTable": "a"}}}}},
          "b": {
            "columns": {
              "aRef": {
                "type": {
                  "key": {
                    "type": "uuid",
                    "refTable": "a"}}}}}}}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"name\":\"mydb\",\"tables\":{\"a\":{\"columns\":{\"map\":{\"type\":{\"key\":{\"refTable\":\"b\",\"type\":\"uuid\"},\"value\":{\"refTable\":\"a\",\"type\":\"uuid\"}}}}},\"b\":{\"columns\":{\"aRef\":{\"type\":{\"key\":{\"refTable\":\"a\",\"type\":\"uuid\"}}}}}},\"version\":\"4.2.1\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-schema.at:3"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1651
#AT_START_1652
at_fn_group_banner 1652 'ovsdb-schema.at:30' \
  "schema with ephemeral strong references - C" "    " 76
at_xfail=no
(
  $as_echo "1652. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-schema.at:30: test-ovsdb parse-schema \\
      '{\"name\": \"mydb\",
        \"version\": \"4.2.1\",
        \"tables\": {
          \"a\": {
            \"columns\": {
              \"x\": {
                \"type\": {
                  \"key\": {
                    \"type\": \"uuid\",
                    \"refTable\": \"b\"}},
                \"ephemeral\": true},
              \"y\": {
                \"type\": {
                  \"key\": {
                    \"type\": \"uuid\",
                    \"refTable\": \"a\"}},
                \"ephemeral\": true}}},
          \"b\": {
            \"columns\": {
              \"aRef\": {
                \"type\": {
                  \"key\": {
                    \"type\": \"uuid\",
                    \"refTable\": \"a\"}}}},
              \"isRoot\": true}}}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-schema.at:30"
( $at_check_trace; test-ovsdb parse-schema \
      '{"name": "mydb",
        "version": "4.2.1",
        "tables": {
          "a": {
            "columns": {
              "x": {
                "type": {
                  "key": {
                    "type": "uuid",
                    "refTable": "b"}},
                "ephemeral": true},
              "y": {
                "type": {
                  "key": {
                    "type": "uuid",
                    "refTable": "a"}},
                "ephemeral": true}}},
          "b": {
            "columns": {
              "aRef": {
                "type": {
                  "key": {
                    "type": "uuid",
                    "refTable": "a"}}}},
              "isRoot": true}}}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"name\":\"mydb\",\"tables\":{\"a\":{\"columns\":{\"x\":{\"ephemeral\":true,\"type\":{\"key\":{\"refTable\":\"b\",\"type\":\"uuid\"}}},\"y\":{\"type\":{\"key\":{\"refTable\":\"a\",\"type\":\"uuid\"}}}}},\"b\":{\"columns\":{\"aRef\":{\"type\":{\"key\":{\"refTable\":\"a\",\"type\":\"uuid\"}}}},\"isRoot\":true}},\"version\":\"4.2.1\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-schema.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1652
#AT_START_1653
at_fn_group_banner 1653 'ovsdb-schema.at:30' \
  "schema with ephemeral strong references - Python2" "" 76
at_xfail=no
(
  $as_echo "1653. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-schema.at:30" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-schema.at:30"


   { set +x
$as_echo "$at_srcdir/ovsdb-schema.at:30: \$PYTHON \$srcdir/test-ovsdb.py parse-schema \\
      '{\"name\": \"mydb\",
        \"version\": \"4.2.1\",
        \"tables\": {
          \"a\": {
            \"columns\": {
              \"x\": {
                \"type\": {
                  \"key\": {
                    \"type\": \"uuid\",
                    \"refTable\": \"b\"}},
                \"ephemeral\": true},
              \"y\": {
                \"type\": {
                  \"key\": {
                    \"type\": \"uuid\",
                    \"refTable\": \"a\"}},
                \"ephemeral\": true}}},
          \"b\": {
            \"columns\": {
              \"aRef\": {
                \"type\": {
                  \"key\": {
                    \"type\": \"uuid\",
                    \"refTable\": \"a\"}}}},
              \"isRoot\": true}}}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-schema.at:30"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-schema \
      '{"name": "mydb",
        "version": "4.2.1",
        "tables": {
          "a": {
            "columns": {
              "x": {
                "type": {
                  "key": {
                    "type": "uuid",
                    "refTable": "b"}},
                "ephemeral": true},
              "y": {
                "type": {
                  "key": {
                    "type": "uuid",
                    "refTable": "a"}},
                "ephemeral": true}}},
          "b": {
            "columns": {
              "aRef": {
                "type": {
                  "key": {
                    "type": "uuid",
                    "refTable": "a"}}}},
              "isRoot": true}}}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"name\":\"mydb\",\"tables\":{\"a\":{\"columns\":{\"x\":{\"ephemeral\":true,\"type\":{\"key\":{\"refTable\":\"b\",\"type\":\"uuid\"}}},\"y\":{\"type\":{\"key\":{\"refTable\":\"a\",\"type\":\"uuid\"}}}}},\"b\":{\"columns\":{\"aRef\":{\"type\":{\"key\":{\"refTable\":\"a\",\"type\":\"uuid\"}}}},\"isRoot\":true}},\"version\":\"4.2.1\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-schema.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1653
#AT_START_1654
at_fn_group_banner 1654 'ovsdb-schema.at:30' \
  "schema with ephemeral strong references - Python3" "" 76
at_xfail=no
(
  $as_echo "1654. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-schema.at:30" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-schema.at:30"


   { set +x
$as_echo "$at_srcdir/ovsdb-schema.at:30: \$PYTHON3 \$srcdir/test-ovsdb.py parse-schema \\
      '{\"name\": \"mydb\",
        \"version\": \"4.2.1\",
        \"tables\": {
          \"a\": {
            \"columns\": {
              \"x\": {
                \"type\": {
                  \"key\": {
                    \"type\": \"uuid\",
                    \"refTable\": \"b\"}},
                \"ephemeral\": true},
              \"y\": {
                \"type\": {
                  \"key\": {
                    \"type\": \"uuid\",
                    \"refTable\": \"a\"}},
                \"ephemeral\": true}}},
          \"b\": {
            \"columns\": {
              \"aRef\": {
                \"type\": {
                  \"key\": {
                    \"type\": \"uuid\",
                    \"refTable\": \"a\"}}}},
              \"isRoot\": true}}}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-schema.at:30"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-schema \
      '{"name": "mydb",
        "version": "4.2.1",
        "tables": {
          "a": {
            "columns": {
              "x": {
                "type": {
                  "key": {
                    "type": "uuid",
                    "refTable": "b"}},
                "ephemeral": true},
              "y": {
                "type": {
                  "key": {
                    "type": "uuid",
                    "refTable": "a"}},
                "ephemeral": true}}},
          "b": {
            "columns": {
              "aRef": {
                "type": {
                  "key": {
                    "type": "uuid",
                    "refTable": "a"}}}},
              "isRoot": true}}}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"name\":\"mydb\",\"tables\":{\"a\":{\"columns\":{\"x\":{\"ephemeral\":true,\"type\":{\"key\":{\"refTable\":\"b\",\"type\":\"uuid\"}}},\"y\":{\"type\":{\"key\":{\"refTable\":\"a\",\"type\":\"uuid\"}}}}},\"b\":{\"columns\":{\"aRef\":{\"type\":{\"key\":{\"refTable\":\"a\",\"type\":\"uuid\"}}}},\"isRoot\":true}},\"version\":\"4.2.1\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-schema.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1654
#AT_START_1655
at_fn_group_banner 1655 'ovsdb-schema.at:60' \
  "schema with immutable weak references - C" "      " 76
at_xfail=no
(
  $as_echo "1655. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-schema.at:60: test-ovsdb parse-schema \\
      '{\"name\": \"mydb\",
	\"version\": \"4.2.1\",
	\"tables\": {
	  \"a\": {
	    \"columns\": {
	      \"x\": {
		\"type\": {
		  \"key\": {
		    \"type\": \"uuid\",
		    \"refTable\": \"a\",
		    \"refType\": \"weak\"}},
		\"mutable\": false}}}}}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-schema.at:60"
( $at_check_trace; test-ovsdb parse-schema \
      '{"name": "mydb",
	"version": "4.2.1",
	"tables": {
	  "a": {
	    "columns": {
	      "x": {
		"type": {
		  "key": {
		    "type": "uuid",
		    "refTable": "a",
		    "refType": "weak"}},
		"mutable": false}}}}}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"name\":\"mydb\",\"tables\":{\"a\":{\"columns\":{\"x\":{\"type\":{\"key\":{\"refTable\":\"a\",\"refType\":\"weak\",\"type\":\"uuid\"}}}}}},\"version\":\"4.2.1\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-schema.at:60"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1655
#AT_START_1656
at_fn_group_banner 1656 'ovsdb-schema.at:60' \
  "schema with immutable weak references - Python2" "" 76
at_xfail=no
(
  $as_echo "1656. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-schema.at:60" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-schema.at:60"


   { set +x
$as_echo "$at_srcdir/ovsdb-schema.at:60: \$PYTHON \$srcdir/test-ovsdb.py parse-schema \\
      '{\"name\": \"mydb\",
	\"version\": \"4.2.1\",
	\"tables\": {
	  \"a\": {
	    \"columns\": {
	      \"x\": {
		\"type\": {
		  \"key\": {
		    \"type\": \"uuid\",
		    \"refTable\": \"a\",
		    \"refType\": \"weak\"}},
		\"mutable\": false}}}}}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-schema.at:60"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-schema \
      '{"name": "mydb",
	"version": "4.2.1",
	"tables": {
	  "a": {
	    "columns": {
	      "x": {
		"type": {
		  "key": {
		    "type": "uuid",
		    "refTable": "a",
		    "refType": "weak"}},
		"mutable": false}}}}}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"name\":\"mydb\",\"tables\":{\"a\":{\"columns\":{\"x\":{\"type\":{\"key\":{\"refTable\":\"a\",\"refType\":\"weak\",\"type\":\"uuid\"}}}}}},\"version\":\"4.2.1\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-schema.at:60"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1656
#AT_START_1657
at_fn_group_banner 1657 'ovsdb-schema.at:60' \
  "schema with immutable weak references - Python3" "" 76
at_xfail=no
(
  $as_echo "1657. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-schema.at:60" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-schema.at:60"


   { set +x
$as_echo "$at_srcdir/ovsdb-schema.at:60: \$PYTHON3 \$srcdir/test-ovsdb.py parse-schema \\
      '{\"name\": \"mydb\",
	\"version\": \"4.2.1\",
	\"tables\": {
	  \"a\": {
	    \"columns\": {
	      \"x\": {
		\"type\": {
		  \"key\": {
		    \"type\": \"uuid\",
		    \"refTable\": \"a\",
		    \"refType\": \"weak\"}},
		\"mutable\": false}}}}}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-schema.at:60"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-schema \
      '{"name": "mydb",
	"version": "4.2.1",
	"tables": {
	  "a": {
	    "columns": {
	      "x": {
		"type": {
		  "key": {
		    "type": "uuid",
		    "refTable": "a",
		    "refType": "weak"}},
		"mutable": false}}}}}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"name\":\"mydb\",\"tables\":{\"a\":{\"columns\":{\"x\":{\"type\":{\"key\":{\"refTable\":\"a\",\"refType\":\"weak\",\"type\":\"uuid\"}}}}}},\"version\":\"4.2.1\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-schema.at:60"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1657
#AT_START_1658
at_fn_group_banner 1658 'ovsdb-schema.at:78' \
  "schema without version number - C" "              " 76
at_xfail=no
(
  $as_echo "1658. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-schema.at:78: test-ovsdb parse-schema \\
      '{\"name\": \"mydb\",
        \"tables\": {
          \"x\": {
            \"columns\": {
              \"y\": {
                \"type\": \"integer\"}}}}}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-schema.at:78"
( $at_check_trace; test-ovsdb parse-schema \
      '{"name": "mydb",
        "tables": {
          "x": {
            "columns": {
              "y": {
                "type": "integer"}}}}}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"name\":\"mydb\",\"tables\":{\"x\":{\"columns\":{\"y\":{\"type\":\"integer\"}}}}}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-schema.at:78"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1658
#AT_START_1659
at_fn_group_banner 1659 'ovsdb-schema.at:78' \
  "schema without version number - Python2" "        " 76
at_xfail=no
(
  $as_echo "1659. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-schema.at:78" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-schema.at:78"


   { set +x
$as_echo "$at_srcdir/ovsdb-schema.at:78: \$PYTHON \$srcdir/test-ovsdb.py parse-schema \\
      '{\"name\": \"mydb\",
        \"tables\": {
          \"x\": {
            \"columns\": {
              \"y\": {
                \"type\": \"integer\"}}}}}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-schema.at:78"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py parse-schema \
      '{"name": "mydb",
        "tables": {
          "x": {
            "columns": {
              "y": {
                "type": "integer"}}}}}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"name\":\"mydb\",\"tables\":{\"x\":{\"columns\":{\"y\":{\"type\":\"integer\"}}}}}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-schema.at:78"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1659
#AT_START_1660
at_fn_group_banner 1660 'ovsdb-schema.at:78' \
  "schema without version number - Python3" "        " 76
at_xfail=no
(
  $as_echo "1660. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-schema.at:78" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-schema.at:78"


   { set +x
$as_echo "$at_srcdir/ovsdb-schema.at:78: \$PYTHON3 \$srcdir/test-ovsdb.py parse-schema \\
      '{\"name\": \"mydb\",
        \"tables\": {
          \"x\": {
            \"columns\": {
              \"y\": {
                \"type\": \"integer\"}}}}}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-schema.at:78"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-schema \
      '{"name": "mydb",
        "tables": {
          "x": {
            "columns": {
              "y": {
                "type": "integer"}}}}}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"name\":\"mydb\",\"tables\":{\"x\":{\"columns\":{\"y\":{\"type\":\"integer\"}}}}}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-schema.at:78"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1660
#AT_START_1661
at_fn_group_banner 1661 'ovsdb-schema.at:88' \
  "schema with invalid refTables - C" "              " 76
at_xfail=no
(
  $as_echo "1661. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-schema.at:88: test-ovsdb parse-schema \\
      '{\"name\": \"mydb\",
        \"tables\": {
          \"a\": {
            \"columns\": {
              \"map\": {
                \"type\": {
                  \"key\": {
                    \"type\": \"uuid\",
                    \"refTable\": \"c\"},
                  \"value\": {
                    \"type\": \"uuid\",
                    \"refTable\": \"a\"}}}}},
          \"b\": {
            \"columns\": {
              \"aRef\": {
                \"type\": {
                  \"key\": {
                    \"type\": \"uuid\",
                    \"refTable\": \"a\"}}}}}}}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-schema.at:88"
( $at_check_trace; test-ovsdb parse-schema \
      '{"name": "mydb",
        "tables": {
          "a": {
            "columns": {
              "map": {
                "type": {
                  "key": {
                    "type": "uuid",
                    "refTable": "c"},
                  "value": {
                    "type": "uuid",
                    "refTable": "a"}}}}},
          "b": {
            "columns": {
              "aRef": {
                "type": {
                  "key": {
                    "type": "uuid",
                    "refTable": "a"}}}}}}}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-schema.at:88"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-schema.at:88: if grep -F -e \"syntax error: column map key refers to undefined table c\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-schema.at:88"
( $at_check_trace; if grep -F -e "syntax error: column map key refers to undefined table c" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-schema.at:88"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1661
#AT_START_1662
at_fn_group_banner 1662 'ovsdb-schema.at:88' \
  "schema with invalid refTables - Python2" "        " 76
at_xfail=no
(
  $as_echo "1662. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-schema.at:88" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-schema.at:88"

   { set +x
$as_echo "$at_srcdir/ovsdb-schema.at:88: \$PYTHON3 \$srcdir/test-ovsdb.py parse-schema \\
      '{\"name\": \"mydb\",
        \"tables\": {
          \"a\": {
            \"columns\": {
              \"map\": {
                \"type\": {
                  \"key\": {
                    \"type\": \"uuid\",
                    \"refTable\": \"c\"},
                  \"value\": {
                    \"type\": \"uuid\",
                    \"refTable\": \"a\"}}}}},
          \"b\": {
            \"columns\": {
              \"aRef\": {
                \"type\": {
                  \"key\": {
                    \"type\": \"uuid\",
                    \"refTable\": \"a\"}}}}}}}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-schema.at:88"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-schema \
      '{"name": "mydb",
        "tables": {
          "a": {
            "columns": {
              "map": {
                "type": {
                  "key": {
                    "type": "uuid",
                    "refTable": "c"},
                  "value": {
                    "type": "uuid",
                    "refTable": "a"}}}}},
          "b": {
            "columns": {
              "aRef": {
                "type": {
                  "key": {
                    "type": "uuid",
                    "refTable": "a"}}}}}}}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-schema.at:88"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-schema.at:88: if grep -F -e \"syntax error: column map key refers to undefined table c\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-schema.at:88"
( $at_check_trace; if grep -F -e "syntax error: column map key refers to undefined table c" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-schema.at:88"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1662
#AT_START_1663
at_fn_group_banner 1663 'ovsdb-schema.at:111' \
  "schema with invalid version number - C" "         " 76
at_xfail=no
(
  $as_echo "1663. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-schema.at:111: test-ovsdb parse-schema \\
      '{\"name\": \"mydb\",
        \"tables\": {
          \"x\": {
            \"columns\": {
              \"y\": {
                \"type\": \"integer\"}}}},
        \"version\": \"xxx\"}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-schema.at:111"
( $at_check_trace; test-ovsdb parse-schema \
      '{"name": "mydb",
        "tables": {
          "x": {
            "columns": {
              "y": {
                "type": "integer"}}}},
        "version": "xxx"}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-schema.at:111"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-schema.at:111: if grep -F -e \"schema version \\\"xxx\\\" not in format x.y.z\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-schema.at:111"
( $at_check_trace; if grep -F -e "schema version \"xxx\" not in format x.y.z" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-schema.at:111"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1663
#AT_START_1664
at_fn_group_banner 1664 'ovsdb-schema.at:111' \
  "schema with invalid version number - Python2" "   " 76
at_xfail=no
(
  $as_echo "1664. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-schema.at:111" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-schema.at:111"

   { set +x
$as_echo "$at_srcdir/ovsdb-schema.at:111: \$PYTHON3 \$srcdir/test-ovsdb.py parse-schema \\
      '{\"name\": \"mydb\",
        \"tables\": {
          \"x\": {
            \"columns\": {
              \"y\": {
                \"type\": \"integer\"}}}},
        \"version\": \"xxx\"}'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-schema.at:111"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py parse-schema \
      '{"name": "mydb",
        "tables": {
          "x": {
            "columns": {
              "y": {
                "type": "integer"}}}},
        "version": "xxx"}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-schema.at:111"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-schema.at:111: if grep -F -e \"schema version \\\"xxx\\\" not in format x.y.z\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-schema.at:111"
( $at_check_trace; if grep -F -e "schema version \"xxx\" not in format x.y.z" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-schema.at:111"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1664
#AT_START_1665
at_fn_group_banner 1665 'ovsdb-condition.at:3' \
  "null condition" "                                 " 77
at_xfail=no
(
  $as_echo "1665. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-condition.at:3: test-ovsdb parse-conditions \\
    '{\"columns\": {\"name\": {\"type\": \"string\"}}}' \\
    '[]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-condition.at:3"
( $at_check_trace; test-ovsdb parse-conditions \
    '{"columns": {"name": {"type": "string"}}}' \
    '[]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-condition.at:3"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1665
#AT_START_1666
at_fn_group_banner 1666 'ovsdb-condition.at:9' \
  "conditions on scalars" "                          " 77
at_xfail=no
(
  $as_echo "1666. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-condition.at:9: test-ovsdb parse-conditions \\
    '{\"columns\":
        {\"i\": {\"type\": \"integer\"},
         \"r\": {\"type\": \"real\"},
         \"b\": {\"type\": \"boolean\"},
	 \"s\": {\"type\": \"string\"},
         \"u\": {\"type\": \"uuid\"}}}' \\
    '[[\"i\", \"==\", 0]]' \\
    '[[\"i\", \"!=\", 1]]' \\
    '[[\"i\", \"<\", 2]]' \\
    '[[\"i\", \"<=\", 3]]' \\
    '[[\"i\", \">\", 4]]' \\
    '[[\"i\", \">=\", 5]]' \\
    '[[\"i\", \"includes\", 6]]' \\
    '[[\"i\", \"excludes\", 7]]' \\
    '[[\"r\", \"==\", 0.5]]' \\
    '[[\"r\", \"!=\", 1.5]]' \\
    '[[\"r\", \"<\", 2.5]]' \\
    '[[\"r\", \"<=\", 3.5]]' \\
    '[[\"r\", \">\", 4.5]]' \\
    '[[\"r\", \">=\", 5.5]]' \\
    '[[\"r\", \"includes\", 6.5]]' \\
    '[[\"r\", \"excludes\", 7.5]]' \\
    '[[\"b\", \"==\", true]]' \\
    '[[\"b\", \"!=\", false]]' \\
    '[[\"b\", \"includes\", false]]' \\
    '[[\"b\", \"excludes\", true]]' \\
    '[[\"s\", \"==\", \"a\"]]' \\
    '[[\"s\", \"!=\", \"b\"]]' \\
    '[[\"s\", \"includes\", \"c\"]]' \\
    '[[\"s\", \"excludes\", \"d\"]]' \\
    '[[\"u\", \"==\", [\"uuid\", \"b10d28f7-af18-4a67-9e78-2a6394516c59\"]]]' \\
    '[[\"u\", \"!=\", [\"uuid\", \"9179ca6d-6d65-400a-b455-3ad92783a099\"]]]' \\
    '[[\"u\", \"includes\", [\"uuid\", \"ad0fa355-8b84-4a36-a4b5-b2c1bfd91758\"]]]' \\
    '[[\"u\", \"excludes\", [\"uuid\", \"62315898-64e0-40b9-b26f-ff74225303e6\"]]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-condition.at:9"
( $at_check_trace; test-ovsdb parse-conditions \
    '{"columns":
        {"i": {"type": "integer"},
         "r": {"type": "real"},
         "b": {"type": "boolean"},
	 "s": {"type": "string"},
         "u": {"type": "uuid"}}}' \
    '[["i", "==", 0]]' \
    '[["i", "!=", 1]]' \
    '[["i", "<", 2]]' \
    '[["i", "<=", 3]]' \
    '[["i", ">", 4]]' \
    '[["i", ">=", 5]]' \
    '[["i", "includes", 6]]' \
    '[["i", "excludes", 7]]' \
    '[["r", "==", 0.5]]' \
    '[["r", "!=", 1.5]]' \
    '[["r", "<", 2.5]]' \
    '[["r", "<=", 3.5]]' \
    '[["r", ">", 4.5]]' \
    '[["r", ">=", 5.5]]' \
    '[["r", "includes", 6.5]]' \
    '[["r", "excludes", 7.5]]' \
    '[["b", "==", true]]' \
    '[["b", "!=", false]]' \
    '[["b", "includes", false]]' \
    '[["b", "excludes", true]]' \
    '[["s", "==", "a"]]' \
    '[["s", "!=", "b"]]' \
    '[["s", "includes", "c"]]' \
    '[["s", "excludes", "d"]]' \
    '[["u", "==", ["uuid", "b10d28f7-af18-4a67-9e78-2a6394516c59"]]]' \
    '[["u", "!=", ["uuid", "9179ca6d-6d65-400a-b455-3ad92783a099"]]]' \
    '[["u", "includes", ["uuid", "ad0fa355-8b84-4a36-a4b5-b2c1bfd91758"]]]' \
    '[["u", "excludes", ["uuid", "62315898-64e0-40b9-b26f-ff74225303e6"]]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[[\"i\",\"==\",0]]
[[\"i\",\"!=\",1]]
[[\"i\",\"<\",2]]
[[\"i\",\"<=\",3]]
[[\"i\",\">\",4]]
[[\"i\",\">=\",5]]
[[\"i\",\"includes\",6]]
[[\"i\",\"excludes\",7]]
[[\"r\",\"==\",0.5]]
[[\"r\",\"!=\",1.5]]
[[\"r\",\"<\",2.5]]
[[\"r\",\"<=\",3.5]]
[[\"r\",\">\",4.5]]
[[\"r\",\">=\",5.5]]
[[\"r\",\"includes\",6.5]]
[[\"r\",\"excludes\",7.5]]
[[\"b\",\"==\",true]]
[[\"b\",\"!=\",false]]
[[\"b\",\"includes\",false]]
[[\"b\",\"excludes\",true]]
[[\"s\",\"==\",\"a\"]]
[[\"s\",\"!=\",\"b\"]]
[[\"s\",\"includes\",\"c\"]]
[[\"s\",\"excludes\",\"d\"]]
[[\"u\",\"==\",[\"uuid\",\"b10d28f7-af18-4a67-9e78-2a6394516c59\"]]]
[[\"u\",\"!=\",[\"uuid\",\"9179ca6d-6d65-400a-b455-3ad92783a099\"]]]
[[\"u\",\"includes\",[\"uuid\",\"ad0fa355-8b84-4a36-a4b5-b2c1bfd91758\"]]]
[[\"u\",\"excludes\",[\"uuid\",\"62315898-64e0-40b9-b26f-ff74225303e6\"]]]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-condition.at:9"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1666
#AT_START_1667
at_fn_group_banner 1667 'ovsdb-condition.at:75' \
  "disallowed conditions on scalars" "               " 77
at_xfail=no
(
  $as_echo "1667. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovsdb-condition.at:77: test-ovsdb parse-conditions \\
    '{\"columns\":
        {\"i\": {\"type\": \"integer\"},
         \"r\": {\"type\": \"real\"},
         \"b\": {\"type\": \"boolean\"},
	 \"s\": {\"type\": \"string\"},
         \"u\": {\"type\": \"uuid\"}}}' \\
    '[[\"b\", \">\", true]]' \\
    '[[\"b\", \">=\", false]]' \\
    '[[\"b\", \"<\", false]]' \\
    '[[\"b\", \"<=\", false]]' \\
    '[[\"s\", \">\", \"a\"]]' \\
    '[[\"s\", \">=\", \"b\"]]' \\
    '[[\"s\", \"<\", \"c\"]]' \\
    '[[\"s\", \"<=\", \"d\"]]' \\
    '[[\"u\", \">\", [\"uuid\", \"b10d28f7-af18-4a67-9e78-2a6394516c59\"]]]' \\
    '[[\"u\", \">=\", [\"uuid\", \"9179ca6d-6d65-400a-b455-3ad92783a099\"]]]' \\
    '[[\"u\", \"<\", [\"uuid\", \"ad0fa355-8b84-4a36-a4b5-b2c1bfd91758\"]]]' \\
    '[[\"u\", \"<=\", [\"uuid\", \"62315898-64e0-40b9-b26f-ff74225303e6\"]]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-condition.at:77"
( $at_check_trace; test-ovsdb parse-conditions \
    '{"columns":
        {"i": {"type": "integer"},
         "r": {"type": "real"},
         "b": {"type": "boolean"},
	 "s": {"type": "string"},
         "u": {"type": "uuid"}}}' \
    '[["b", ">", true]]' \
    '[["b", ">=", false]]' \
    '[["b", "<", false]]' \
    '[["b", "<=", false]]' \
    '[["s", ">", "a"]]' \
    '[["s", ">=", "b"]]' \
    '[["s", "<", "c"]]' \
    '[["s", "<=", "d"]]' \
    '[["u", ">", ["uuid", "b10d28f7-af18-4a67-9e78-2a6394516c59"]]]' \
    '[["u", ">=", ["uuid", "9179ca6d-6d65-400a-b455-3ad92783a099"]]]' \
    '[["u", "<", ["uuid", "ad0fa355-8b84-4a36-a4b5-b2c1bfd91758"]]]' \
    '[["u", "<=", ["uuid", "62315898-64e0-40b9-b26f-ff74225303e6"]]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "test-ovsdb: syntax \"[\"b\",\">\",true]\": syntax error: Type mismatch: \">\" operator may not be applied to column b of type boolean.
test-ovsdb: syntax \"[\"b\",\">=\",false]\": syntax error: Type mismatch: \">=\" operator may not be applied to column b of type boolean.
test-ovsdb: syntax \"[\"b\",\"<\",false]\": syntax error: Type mismatch: \"<\" operator may not be applied to column b of type boolean.
test-ovsdb: syntax \"[\"b\",\"<=\",false]\": syntax error: Type mismatch: \"<=\" operator may not be applied to column b of type boolean.
test-ovsdb: syntax \"[\"s\",\">\",\"a\"]\": syntax error: Type mismatch: \">\" operator may not be applied to column s of type string.
test-ovsdb: syntax \"[\"s\",\">=\",\"b\"]\": syntax error: Type mismatch: \">=\" operator may not be applied to column s of type string.
test-ovsdb: syntax \"[\"s\",\"<\",\"c\"]\": syntax error: Type mismatch: \"<\" operator may not be applied to column s of type string.
test-ovsdb: syntax \"[\"s\",\"<=\",\"d\"]\": syntax error: Type mismatch: \"<=\" operator may not be applied to column s of type string.
test-ovsdb: syntax \"[\"u\",\">\",[\"uuid\",\"b10d28f7-af18-4a67-9e78-2a6394516c59\"]]\": syntax error: Type mismatch: \">\" operator may not be applied to column u of type uuid.
test-ovsdb: syntax \"[\"u\",\">=\",[\"uuid\",\"9179ca6d-6d65-400a-b455-3ad92783a099\"]]\": syntax error: Type mismatch: \">=\" operator may not be applied to column u of type uuid.
test-ovsdb: syntax \"[\"u\",\"<\",[\"uuid\",\"ad0fa355-8b84-4a36-a4b5-b2c1bfd91758\"]]\": syntax error: Type mismatch: \"<\" operator may not be applied to column u of type uuid.
test-ovsdb: syntax \"[\"u\",\"<=\",[\"uuid\",\"62315898-64e0-40b9-b26f-ff74225303e6\"]]\": syntax error: Type mismatch: \"<=\" operator may not be applied to column u of type uuid.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-condition.at:77"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1667
#AT_START_1668
at_fn_group_banner 1668 'ovsdb-condition.at:112' \
  "conditions on sets" "                             " 77
at_xfail=no
(
  $as_echo "1668. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-condition.at:112: test-ovsdb parse-conditions \\
    '{\"columns\":
        {\"i\": {\"type\": {\"key\": \"integer\", \"min\": 0, \"max\": \"unlimited\"}},
         \"r\": {\"type\": {\"key\": \"real\", \"min\": 0, \"max\": \"unlimited\"}},
         \"b\": {\"type\": {\"key\": \"boolean\", \"min\": 0, \"max\": \"unlimited\"}},
	 \"s\": {\"type\": {\"key\": \"string\", \"min\": 0, \"max\": \"unlimited\"}},
         \"u\": {\"type\": {\"key\": \"uuid\", \"min\": 0, \"max\": \"unlimited\"}}}}' \\
    '[[\"i\", \"==\", [\"set\", []]]]' \\
    '[[\"i\", \"!=\", [\"set\", [1]]]]' \\
    '[[\"i\", \"includes\", [\"set\", [1, 2]]]]' \\
    '[[\"i\", \"excludes\", [\"set\", [1, 2, 3]]]]' \\
    '[[\"r\", \"==\", [\"set\", []]]]' \\
    '[[\"r\", \"!=\", [\"set\", [1.5]]]]' \\
    '[[\"r\", \"includes\", [\"set\", [1.5, 2.5]]]]' \\
    '[[\"r\", \"excludes\", [\"set\", [1.5, 2.5, 3.5]]]]' \\
    '[[\"b\", \"==\", [\"set\", [true]]]]' \\
    '[[\"b\", \"!=\", [\"set\", [false]]]]' \\
    '[[\"b\", \"includes\", [\"set\", [false]]]]' \\
    '[[\"b\", \"excludes\", [\"set\", [true, false]]]]' \\
    '[[\"s\", \"==\", [\"set\", [\"a\"]]]]' \\
    '[[\"s\", \"!=\", [\"set\", [\"a\", \"b\"]]]]' \\
    '[[\"s\", \"includes\", [\"set\", [\"c\"]]]]' \\
    '[[\"s\", \"excludes\", [\"set\", [\"c\", \"d\"]]]]' \\
    '[[\"u\", \"==\",
       [\"set\", [[\"uuid\", \"b10d28f7-af18-4a67-9e78-2a6394516c59\"]]]]]' \\
    '[[\"u\", \"==\",
       [\"set\", [[\"uuid\", \"b10d28f7-af18-4a67-9e78-2a6394516c59\"],
                [\"uuid\", \"9179ca6d-6d65-400a-b455-3ad92783a099\"]]]]]' \\
    '[[\"u\", \"includes\",
       [\"set\", [[\"uuid\", \"b10d28f7-af18-4a67-9e78-2a6394516c59\"],
                [\"uuid\", \"9179ca6d-6d65-400a-b455-3ad92783a099\"],
                [\"uuid\", \"ad0fa355-8b84-4a36-a4b5-b2c1bfd91758\"]]]]]' \\
    '[[\"u\", \"excludes\",
       [\"set\", [[\"uuid\", \"b10d28f7-af18-4a67-9e78-2a6394516c59\"],
                [\"uuid\", \"9179ca6d-6d65-400a-b455-3ad92783a099\"],
                [\"uuid\", \"ad0fa355-8b84-4a36-a4b5-b2c1bfd91758\"],
                [\"uuid\", \"62315898-64e0-40b9-b26f-ff74225303e6\"]]]]]' \\
"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-condition.at:112"
( $at_check_trace; test-ovsdb parse-conditions \
    '{"columns":
        {"i": {"type": {"key": "integer", "min": 0, "max": "unlimited"}},
         "r": {"type": {"key": "real", "min": 0, "max": "unlimited"}},
         "b": {"type": {"key": "boolean", "min": 0, "max": "unlimited"}},
	 "s": {"type": {"key": "string", "min": 0, "max": "unlimited"}},
         "u": {"type": {"key": "uuid", "min": 0, "max": "unlimited"}}}}' \
    '[["i", "==", ["set", []]]]' \
    '[["i", "!=", ["set", [1]]]]' \
    '[["i", "includes", ["set", [1, 2]]]]' \
    '[["i", "excludes", ["set", [1, 2, 3]]]]' \
    '[["r", "==", ["set", []]]]' \
    '[["r", "!=", ["set", [1.5]]]]' \
    '[["r", "includes", ["set", [1.5, 2.5]]]]' \
    '[["r", "excludes", ["set", [1.5, 2.5, 3.5]]]]' \
    '[["b", "==", ["set", [true]]]]' \
    '[["b", "!=", ["set", [false]]]]' \
    '[["b", "includes", ["set", [false]]]]' \
    '[["b", "excludes", ["set", [true, false]]]]' \
    '[["s", "==", ["set", ["a"]]]]' \
    '[["s", "!=", ["set", ["a", "b"]]]]' \
    '[["s", "includes", ["set", ["c"]]]]' \
    '[["s", "excludes", ["set", ["c", "d"]]]]' \
    '[["u", "==",
       ["set", [["uuid", "b10d28f7-af18-4a67-9e78-2a6394516c59"]]]]]' \
    '[["u", "==",
       ["set", [["uuid", "b10d28f7-af18-4a67-9e78-2a6394516c59"],
                ["uuid", "9179ca6d-6d65-400a-b455-3ad92783a099"]]]]]' \
    '[["u", "includes",
       ["set", [["uuid", "b10d28f7-af18-4a67-9e78-2a6394516c59"],
                ["uuid", "9179ca6d-6d65-400a-b455-3ad92783a099"],
                ["uuid", "ad0fa355-8b84-4a36-a4b5-b2c1bfd91758"]]]]]' \
    '[["u", "excludes",
       ["set", [["uuid", "b10d28f7-af18-4a67-9e78-2a6394516c59"],
                ["uuid", "9179ca6d-6d65-400a-b455-3ad92783a099"],
                ["uuid", "ad0fa355-8b84-4a36-a4b5-b2c1bfd91758"],
                ["uuid", "62315898-64e0-40b9-b26f-ff74225303e6"]]]]]' \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[[\"i\",\"==\",[\"set\",[]]]]
[[\"i\",\"!=\",1]]
[[\"i\",\"includes\",[\"set\",[1,2]]]]
[[\"i\",\"excludes\",[\"set\",[1,2,3]]]]
[[\"r\",\"==\",[\"set\",[]]]]
[[\"r\",\"!=\",1.5]]
[[\"r\",\"includes\",[\"set\",[1.5,2.5]]]]
[[\"r\",\"excludes\",[\"set\",[1.5,2.5,3.5]]]]
[[\"b\",\"==\",true]]
[[\"b\",\"!=\",false]]
[[\"b\",\"includes\",false]]
[[\"b\",\"excludes\",[\"set\",[false,true]]]]
[[\"s\",\"==\",\"a\"]]
[[\"s\",\"!=\",[\"set\",[\"a\",\"b\"]]]]
[[\"s\",\"includes\",\"c\"]]
[[\"s\",\"excludes\",[\"set\",[\"c\",\"d\"]]]]
[[\"u\",\"==\",[\"uuid\",\"b10d28f7-af18-4a67-9e78-2a6394516c59\"]]]
[[\"u\",\"==\",[\"set\",[[\"uuid\",\"9179ca6d-6d65-400a-b455-3ad92783a099\"],[\"uuid\",\"b10d28f7-af18-4a67-9e78-2a6394516c59\"]]]]]
[[\"u\",\"includes\",[\"set\",[[\"uuid\",\"9179ca6d-6d65-400a-b455-3ad92783a099\"],[\"uuid\",\"ad0fa355-8b84-4a36-a4b5-b2c1bfd91758\"],[\"uuid\",\"b10d28f7-af18-4a67-9e78-2a6394516c59\"]]]]]
[[\"u\",\"excludes\",[\"set\",[[\"uuid\",\"62315898-64e0-40b9-b26f-ff74225303e6\"],[\"uuid\",\"9179ca6d-6d65-400a-b455-3ad92783a099\"],[\"uuid\",\"ad0fa355-8b84-4a36-a4b5-b2c1bfd91758\"],[\"uuid\",\"b10d28f7-af18-4a67-9e78-2a6394516c59\"]]]]]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-condition.at:112"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1668
#AT_START_1669
at_fn_group_banner 1669 'ovsdb-condition.at:173' \
  "condition sorting" "                              " 77
at_xfail=no
(
  $as_echo "1669. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-condition.at:173: test-ovsdb parse-conditions \\
    '{\"columns\": {\"i\": {\"type\": \"integer\"}}}' \\
    '[[\"i\", \"excludes\", 7],
      [\"i\", \"!=\", 8],
      [\"i\", \"==\", 1],
      [\"i\", \"includes\", 2],
      [\"i\", \"<=\", 3],
      [\"i\", \"<\", 4],
      [\"i\", \">\", 6],
      [\"i\", \">=\", 5],
      [\"_uuid\", \"==\", [\"uuid\", \"d50e85c6-8ae7-4b16-b69e-4395928bd9be\"]]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-condition.at:173"
( $at_check_trace; test-ovsdb parse-conditions \
    '{"columns": {"i": {"type": "integer"}}}' \
    '[["i", "excludes", 7],
      ["i", "!=", 8],
      ["i", "==", 1],
      ["i", "includes", 2],
      ["i", "<=", 3],
      ["i", "<", 4],
      ["i", ">", 6],
      ["i", ">=", 5],
      ["_uuid", "==", ["uuid", "d50e85c6-8ae7-4b16-b69e-4395928bd9be"]]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[[\"_uuid\",\"==\",[\"uuid\",\"d50e85c6-8ae7-4b16-b69e-4395928bd9be\"]],[\"i\",\"==\",1],[\"i\",\"includes\",2],[\"i\",\"<=\",3],[\"i\",\"<\",4],[\"i\",\">=\",5],[\"i\",\">\",6],[\"i\",\"excludes\",7],[\"i\",\"!=\",8]]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-condition.at:173"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1669
#AT_START_1670
at_fn_group_banner 1670 'ovsdb-condition.at:187' \
  "boolean condition" "                              " 77
at_xfail=no
(
  $as_echo "1670. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-condition.at:187: test-ovsdb parse-conditions \\
    '{\"columns\": {\"name\": {\"type\": \"string\"}}}' \\
    '[true]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-condition.at:187"
( $at_check_trace; test-ovsdb parse-conditions \
    '{"columns": {"name": {"type": "string"}}}' \
    '[true]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[true]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-condition.at:187"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1670
#AT_START_1671
at_fn_group_banner 1671 'ovsdb-condition.at:193' \
  "boolean condition" "                              " 77
at_xfail=no
(
  $as_echo "1671. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-condition.at:193: test-ovsdb parse-conditions \\
    '{\"columns\": {\"name\": {\"type\": \"string\"}}}' \\
    '[false]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-condition.at:193"
( $at_check_trace; test-ovsdb parse-conditions \
    '{"columns": {"name": {"type": "string"}}}' \
    '[false]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[false]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-condition.at:193"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1671
#AT_START_1672
at_fn_group_banner 1672 'ovsdb-condition.at:199' \
  "evaluating null condition" "                      " 77
at_xfail=no
(
  $as_echo "1672. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-condition.at:199: test-ovsdb evaluate-conditions \\
    '{\"columns\": {\"i\": {\"type\": \"integer\"}}}' \\
    '[[]]' \\
    '[{\"i\": 0},
      {\"i\": 1},
      {\"i\": 2}']"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-condition.at:199"
( $at_check_trace; test-ovsdb evaluate-conditions \
    '{"columns": {"i": {"type": "integer"}}}' \
    '[[]]' \
    '[{"i": 0},
      {"i": 1},
      {"i": 2}']
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "condition  0: TTT
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-condition.at:199"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1672
#AT_START_1673
at_fn_group_banner 1673 'ovsdb-condition.at:208' \
  "evaluating conditions on integers" "              " 77
at_xfail=no
(
  $as_echo "1673. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-condition.at:208: test-ovsdb evaluate-conditions \\
    '{\"columns\": {\"i\": {\"type\": \"integer\"}}}' \\
    '[[[\"i\", \"<\", 1]],
      [[\"i\", \"<=\", 1]],
      [[\"i\", \"==\", 1]],
      [[\"i\", \"!=\", 1]],
      [[\"i\", \">=\", 1]],
      [[\"i\", \">\", 1]],
      [[\"i\", \"includes\", 1]],
      [[\"i\", \"excludes\", 1]],
      [[\"i\", \">\", 0], [\"i\", \"<\", 2]]]' \\
    '[{\"i\": 0},
      {\"i\": 1},
      {\"i\": 2}']"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-condition.at:208"
( $at_check_trace; test-ovsdb evaluate-conditions \
    '{"columns": {"i": {"type": "integer"}}}' \
    '[[["i", "<", 1]],
      [["i", "<=", 1]],
      [["i", "==", 1]],
      [["i", "!=", 1]],
      [["i", ">=", 1]],
      [["i", ">", 1]],
      [["i", "includes", 1]],
      [["i", "excludes", 1]],
      [["i", ">", 0], ["i", "<", 2]]]' \
    '[{"i": 0},
      {"i": 1},
      {"i": 2}']
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "condition  0: T--
condition  1: TT-
condition  2: -T-
condition  3: T-T
condition  4: -TT
condition  5: --T
condition  6: -T-
condition  7: T-T
condition  8: -T-
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-condition.at:208"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1673
#AT_START_1674
at_fn_group_banner 1674 'ovsdb-condition.at:233' \
  "evaluating conditions on reals" "                 " 77
at_xfail=no
(
  $as_echo "1674. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-condition.at:233: test-ovsdb evaluate-conditions \\
    '{\"columns\": {\"r\": {\"type\": \"real\"}}}' \\
    '[[[\"r\", \"<\", 5.0]],
      [[\"r\", \"<=\", 5.0]],
      [[\"r\", \"==\", 5.0]],
      [[\"r\", \"!=\", 5.0]],
      [[\"r\", \">=\", 5.0]],
      [[\"r\", \">\", 5.0]],
      [[\"r\", \"includes\", 5.0]],
      [[\"r\", \"excludes\", 5.0]],
      [[\"r\", \"!=\", 0], [\"r\", \"!=\", 5.1]]]' \\
    '[{\"r\": 0},
      {\"r\": 5.0},
      {\"r\": 5.1}']"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-condition.at:233"
( $at_check_trace; test-ovsdb evaluate-conditions \
    '{"columns": {"r": {"type": "real"}}}' \
    '[[["r", "<", 5.0]],
      [["r", "<=", 5.0]],
      [["r", "==", 5.0]],
      [["r", "!=", 5.0]],
      [["r", ">=", 5.0]],
      [["r", ">", 5.0]],
      [["r", "includes", 5.0]],
      [["r", "excludes", 5.0]],
      [["r", "!=", 0], ["r", "!=", 5.1]]]' \
    '[{"r": 0},
      {"r": 5.0},
      {"r": 5.1}']
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "condition  0: T--
condition  1: TT-
condition  2: -T-
condition  3: T-T
condition  4: -TT
condition  5: --T
condition  6: -T-
condition  7: T-T
condition  8: -T-
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-condition.at:233"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1674
#AT_START_1675
at_fn_group_banner 1675 'ovsdb-condition.at:258' \
  "evaluating conditions on booleans" "              " 77
at_xfail=no
(
  $as_echo "1675. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-condition.at:258: test-ovsdb evaluate-conditions \\
    '{\"columns\": {\"b\": {\"type\": \"boolean\"}}}' \\
    '[[[\"b\", \"==\", true]],
      [[\"b\", \"!=\", true]],
      [[\"b\", \"includes\", true]],
      [[\"b\", \"excludes\", true]],
      [[\"b\", \"==\", false]],
      [[\"b\", \"!=\", false]],
      [[\"b\", \"includes\", false]],
      [[\"b\", \"excludes\", false]],
      [[\"b\", \"==\", true], [\"b\", \"==\", false]]]' \\
    '[{\"b\": true},
      {\"b\": false}']"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-condition.at:258"
( $at_check_trace; test-ovsdb evaluate-conditions \
    '{"columns": {"b": {"type": "boolean"}}}' \
    '[[["b", "==", true]],
      [["b", "!=", true]],
      [["b", "includes", true]],
      [["b", "excludes", true]],
      [["b", "==", false]],
      [["b", "!=", false]],
      [["b", "includes", false]],
      [["b", "excludes", false]],
      [["b", "==", true], ["b", "==", false]]]' \
    '[{"b": true},
      {"b": false}']
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "condition  0: T-
condition  1: -T
condition  2: T-
condition  3: -T
condition  4: -T
condition  5: T-
condition  6: -T
condition  7: T-
condition  8: --
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-condition.at:258"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1675
#AT_START_1676
at_fn_group_banner 1676 'ovsdb-condition.at:282' \
  "evaluating conditions on strings" "               " 77
at_xfail=no
(
  $as_echo "1676. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-condition.at:282: test-ovsdb evaluate-conditions \\
    '{\"columns\": {\"s\": {\"type\": \"string\"}}}' \\
    '[[[\"s\", \"==\", \"\"]],
      [[\"s\", \"!=\", \"\"]],
      [[\"s\", \"includes\", \"\"]],
      [[\"s\", \"excludes\", \"\"]],
      [[\"s\", \"==\", \"foo\"]],
      [[\"s\", \"!=\", \"foo\"]],
      [[\"s\", \"includes\", \"foo\"]],
      [[\"s\", \"excludes\", \"foo\"]],
      [[\"s\", \"!=\", \"foo\"], [\"s\", \"!=\", \"\"]]]' \\
    '[{\"s\": \"\"},
      {\"s\": \"foo\"},
      {\"s\": \"xxx\"}']"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-condition.at:282"
( $at_check_trace; test-ovsdb evaluate-conditions \
    '{"columns": {"s": {"type": "string"}}}' \
    '[[["s", "==", ""]],
      [["s", "!=", ""]],
      [["s", "includes", ""]],
      [["s", "excludes", ""]],
      [["s", "==", "foo"]],
      [["s", "!=", "foo"]],
      [["s", "includes", "foo"]],
      [["s", "excludes", "foo"]],
      [["s", "!=", "foo"], ["s", "!=", ""]]]' \
    '[{"s": ""},
      {"s": "foo"},
      {"s": "xxx"}']
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "condition  0: T--
condition  1: -TT
condition  2: T--
condition  3: -TT
condition  4: -T-
condition  5: T-T
condition  6: -T-
condition  7: T-T
condition  8: --T
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-condition.at:282"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1676
#AT_START_1677
at_fn_group_banner 1677 'ovsdb-condition.at:307' \
  "evaluating conditions on UUIDs" "                 " 77
at_xfail=no
(
  $as_echo "1677. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-condition.at:307: test-ovsdb evaluate-conditions \\
    '{\"columns\": {\"u\": {\"type\": \"uuid\"}}}' \\
    '[[[\"u\", \"==\", [\"uuid\", \"8a1dbdb8-416f-4ce9-affa-3332691714b6\"]]],
      [[\"u\", \"!=\", [\"uuid\", \"8a1dbdb8-416f-4ce9-affa-3332691714b6\"]]],
      [[\"u\", \"includes\", [\"uuid\", \"8a1dbdb8-416f-4ce9-affa-3332691714b6\"]]],
      [[\"u\", \"excludes\", [\"uuid\", \"8a1dbdb8-416f-4ce9-affa-3332691714b6\"]]],
      [[\"u\", \"==\", [\"uuid\", \"06151f9d-62d6-4f59-8504-e9765107faa9\"]]],
      [[\"u\", \"!=\", [\"uuid\", \"06151f9d-62d6-4f59-8504-e9765107faa9\"]]],
      [[\"u\", \"includes\", [\"uuid\", \"06151f9d-62d6-4f59-8504-e9765107faa9\"]]],
      [[\"u\", \"excludes\", [\"uuid\", \"06151f9d-62d6-4f59-8504-e9765107faa9\"]]],
      [[\"u\", \"!=\", [\"uuid\", \"06151f9d-62d6-4f59-8504-e9765107faa9\"]],
       [\"u\", \"!=\", [\"uuid\", \"cb160ed6-92a6-4503-a6aa-a09a09e01f0d\"]]]]' \\
    '[{\"u\": [\"uuid\", \"8a1dbdb8-416f-4ce9-affa-3332691714b6\"]},
      {\"u\": [\"uuid\", \"06151f9d-62d6-4f59-8504-e9765107faa9\"]},
      {\"u\": [\"uuid\", \"00000000-0000-0000-0000-000000000000\"]}']"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-condition.at:307"
( $at_check_trace; test-ovsdb evaluate-conditions \
    '{"columns": {"u": {"type": "uuid"}}}' \
    '[[["u", "==", ["uuid", "8a1dbdb8-416f-4ce9-affa-3332691714b6"]]],
      [["u", "!=", ["uuid", "8a1dbdb8-416f-4ce9-affa-3332691714b6"]]],
      [["u", "includes", ["uuid", "8a1dbdb8-416f-4ce9-affa-3332691714b6"]]],
      [["u", "excludes", ["uuid", "8a1dbdb8-416f-4ce9-affa-3332691714b6"]]],
      [["u", "==", ["uuid", "06151f9d-62d6-4f59-8504-e9765107faa9"]]],
      [["u", "!=", ["uuid", "06151f9d-62d6-4f59-8504-e9765107faa9"]]],
      [["u", "includes", ["uuid", "06151f9d-62d6-4f59-8504-e9765107faa9"]]],
      [["u", "excludes", ["uuid", "06151f9d-62d6-4f59-8504-e9765107faa9"]]],
      [["u", "!=", ["uuid", "06151f9d-62d6-4f59-8504-e9765107faa9"]],
       ["u", "!=", ["uuid", "cb160ed6-92a6-4503-a6aa-a09a09e01f0d"]]]]' \
    '[{"u": ["uuid", "8a1dbdb8-416f-4ce9-affa-3332691714b6"]},
      {"u": ["uuid", "06151f9d-62d6-4f59-8504-e9765107faa9"]},
      {"u": ["uuid", "00000000-0000-0000-0000-000000000000"]}']
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "condition  0: T--
condition  1: -TT
condition  2: T--
condition  3: -TT
condition  4: -T-
condition  5: T-T
condition  6: -T-
condition  7: T-T
condition  8: T-T
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-condition.at:307"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1677
#AT_START_1678
at_fn_group_banner 1678 'ovsdb-condition.at:333' \
  "evaluating conditions on sets" "                  " 77
at_xfail=no
(
  $as_echo "1678. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-condition.at:333: test-ovsdb evaluate-conditions \\
    '{\"columns\": {\"i\": {\"type\": {\"key\": \"integer\", \"min\": 0, \"max\": \"unlimited\"}}}}' \\
    '[[[\"i\", \"==\", [\"set\", []]]],
      [[\"i\", \"==\", [\"set\", [0]]]],
      [[\"i\", \"==\", [\"set\", [1]]]],
      [[\"i\", \"==\", [\"set\", [0, 1]]]],
      [[\"i\", \"==\", [\"set\", [2]]]],
      [[\"i\", \"==\", [\"set\", [2, 0]]]],
      [[\"i\", \"==\", [\"set\", [2, 1]]]],
      [[\"i\", \"==\", [\"set\", [2, 1, 0]]]],
      [[\"i\", \"!=\", [\"set\", []]]],
      [[\"i\", \"!=\", [\"set\", [0]]]],
      [[\"i\", \"!=\", [\"set\", [1]]]],
      [[\"i\", \"!=\", [\"set\", [0, 1]]]],
      [[\"i\", \"!=\", [\"set\", [2]]]],
      [[\"i\", \"!=\", [\"set\", [2, 0]]]],
      [[\"i\", \"!=\", [\"set\", [2, 1]]]],
      [[\"i\", \"!=\", [\"set\", [2, 1, 0]]]],
      [[\"i\", \"includes\", [\"set\", []]]],
      [[\"i\", \"includes\", [\"set\", [0]]]],
      [[\"i\", \"includes\", [\"set\", [1]]]],
      [[\"i\", \"includes\", [\"set\", [0, 1]]]],
      [[\"i\", \"includes\", [\"set\", [2]]]],
      [[\"i\", \"includes\", [\"set\", [2, 0]]]],
      [[\"i\", \"includes\", [\"set\", [2, 1]]]],
      [[\"i\", \"includes\", [\"set\", [2, 1, 0]]]],
      [[\"i\", \"excludes\", [\"set\", []]]],
      [[\"i\", \"excludes\", [\"set\", [0]]]],
      [[\"i\", \"excludes\", [\"set\", [1]]]],
      [[\"i\", \"excludes\", [\"set\", [0, 1]]]],
      [[\"i\", \"excludes\", [\"set\", [2]]]],
      [[\"i\", \"excludes\", [\"set\", [2, 0]]]],
      [[\"i\", \"excludes\", [\"set\", [2, 1]]]],
      [[\"i\", \"excludes\", [\"set\", [2, 1, 0]]]],
      [[\"i\", \"includes\", [\"set\", [0]]],
       [\"i\", \"includes\", [\"set\", [1]]]]]' \\
    '[{\"i\": [\"set\", []]},
      {\"i\": [\"set\", [0]]},
      {\"i\": [\"set\", [1]]},
      {\"i\": [\"set\", [0, 1]]},
      {\"i\": [\"set\", [2]]},
      {\"i\": [\"set\", [2, 0]]},
      {\"i\": [\"set\", [2, 1]]},
      {\"i\": [\"set\", [2, 1, 0]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-condition.at:333"
( $at_check_trace; test-ovsdb evaluate-conditions \
    '{"columns": {"i": {"type": {"key": "integer", "min": 0, "max": "unlimited"}}}}' \
    '[[["i", "==", ["set", []]]],
      [["i", "==", ["set", [0]]]],
      [["i", "==", ["set", [1]]]],
      [["i", "==", ["set", [0, 1]]]],
      [["i", "==", ["set", [2]]]],
      [["i", "==", ["set", [2, 0]]]],
      [["i", "==", ["set", [2, 1]]]],
      [["i", "==", ["set", [2, 1, 0]]]],
      [["i", "!=", ["set", []]]],
      [["i", "!=", ["set", [0]]]],
      [["i", "!=", ["set", [1]]]],
      [["i", "!=", ["set", [0, 1]]]],
      [["i", "!=", ["set", [2]]]],
      [["i", "!=", ["set", [2, 0]]]],
      [["i", "!=", ["set", [2, 1]]]],
      [["i", "!=", ["set", [2, 1, 0]]]],
      [["i", "includes", ["set", []]]],
      [["i", "includes", ["set", [0]]]],
      [["i", "includes", ["set", [1]]]],
      [["i", "includes", ["set", [0, 1]]]],
      [["i", "includes", ["set", [2]]]],
      [["i", "includes", ["set", [2, 0]]]],
      [["i", "includes", ["set", [2, 1]]]],
      [["i", "includes", ["set", [2, 1, 0]]]],
      [["i", "excludes", ["set", []]]],
      [["i", "excludes", ["set", [0]]]],
      [["i", "excludes", ["set", [1]]]],
      [["i", "excludes", ["set", [0, 1]]]],
      [["i", "excludes", ["set", [2]]]],
      [["i", "excludes", ["set", [2, 0]]]],
      [["i", "excludes", ["set", [2, 1]]]],
      [["i", "excludes", ["set", [2, 1, 0]]]],
      [["i", "includes", ["set", [0]]],
       ["i", "includes", ["set", [1]]]]]' \
    '[{"i": ["set", []]},
      {"i": ["set", [0]]},
      {"i": ["set", [1]]},
      {"i": ["set", [0, 1]]},
      {"i": ["set", [2]]},
      {"i": ["set", [2, 0]]},
      {"i": ["set", [2, 1]]},
      {"i": ["set", [2, 1, 0]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "condition  0: T---- ---
condition  1: -T--- ---
condition  2: --T-- ---
condition  3: ---T- ---
condition  4: ----T ---
condition  5: ----- T--
condition  6: ----- -T-
condition  7: ----- --T
condition  8: -TTTT TTT
condition  9: T-TTT TTT
condition 10: TT-TT TTT
condition 11: TTT-T TTT
condition 12: TTTT- TTT
condition 13: TTTTT -TT
condition 14: TTTTT T-T
condition 15: TTTTT TT-
condition 16: TTTTT TTT
condition 17: -T-T- T-T
condition 18: --TT- -TT
condition 19: ---T- --T
condition 20: ----T TTT
condition 21: ----- T-T
condition 22: ----- -TT
condition 23: ----- --T
condition 24: TTTTT TTT
condition 25: T-T-T -T-
condition 26: TT--T T--
condition 27: T---T ---
condition 28: TTTT- ---
condition 29: T-T-- ---
condition 30: TT--- ---
condition 31: T---- ---
condition 32: ---T- --T
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-condition.at:333"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1678
#AT_START_1679
at_fn_group_banner 1679 'ovsdb-condition.at:415' \
  "evaluating conditions on maps (1)" "              " 77
at_xfail=no
(
  $as_echo "1679. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-condition.at:415: test-ovsdb evaluate-conditions \\
    '{\"columns\": {\"i\": {\"type\": {\"key\": \"integer\",
                                 \"value\": \"boolean\",
                                 \"min\": 0,
                                 \"max\": \"unlimited\"}}}}' \\
    '[[[\"i\", \"==\", [\"map\", []]]],
      [[\"i\", \"==\", [\"map\", [[0, true]]]]],
      [[\"i\", \"==\", [\"map\", [[1, false]]]]],
      [[\"i\", \"==\", [\"map\", [[0, true], [1, false]]]]],
      [[\"i\", \"==\", [\"map\", [[2, true]]]]],
      [[\"i\", \"==\", [\"map\", [[2, true], [0, true]]]]],
      [[\"i\", \"==\", [\"map\", [[2, true], [1, false]]]]],
      [[\"i\", \"==\", [\"map\", [[2, true], [1, false], [0, true]]]]],
      [[\"i\", \"!=\", [\"map\", []]]],
      [[\"i\", \"!=\", [\"map\", [[0, true]]]]],
      [[\"i\", \"!=\", [\"map\", [[1, false]]]]],
      [[\"i\", \"!=\", [\"map\", [[0, true], [1, false]]]]],
      [[\"i\", \"!=\", [\"map\", [[2, true]]]]],
      [[\"i\", \"!=\", [\"map\", [[2, true], [0, true]]]]],
      [[\"i\", \"!=\", [\"map\", [[2, true], [1, false]]]]],
      [[\"i\", \"!=\", [\"map\", [[2, true], [1, false], [0, true]]]]],
      [[\"i\", \"includes\", [\"map\", []]]],
      [[\"i\", \"includes\", [\"map\", [[0, true]]]]],
      [[\"i\", \"includes\", [\"map\", [[1, false]]]]],
      [[\"i\", \"includes\", [\"map\", [[0, true], [1, false]]]]],
      [[\"i\", \"includes\", [\"map\", [[2, true]]]]],
      [[\"i\", \"includes\", [\"map\", [[2, true], [0, true]]]]],
      [[\"i\", \"includes\", [\"map\", [[2, true], [1, false]]]]],
      [[\"i\", \"includes\", [\"map\", [[2, true], [1, false], [0, true]]]]],
      [[\"i\", \"excludes\", [\"map\", []]]],
      [[\"i\", \"excludes\", [\"map\", [[0, true]]]]],
      [[\"i\", \"excludes\", [\"map\", [[1, false]]]]],
      [[\"i\", \"excludes\", [\"map\", [[0, true], [1, false]]]]],
      [[\"i\", \"excludes\", [\"map\", [[2, true]]]]],
      [[\"i\", \"excludes\", [\"map\", [[2, true], [0, true]]]]],
      [[\"i\", \"excludes\", [\"map\", [[2, true], [1, false]]]]],
      [[\"i\", \"excludes\", [\"map\", [[2, true], [1, false], [0, true]]]]],
      [[\"i\", \"includes\", [\"map\", [[0, true]]]],
       [\"i\", \"includes\", [\"map\", [[1, false]]]]]]' \\
    '[{\"i\": [\"map\", []]},
      {\"i\": [\"map\", [[0, true]]]},
      {\"i\": [\"map\", [[1, false]]]},
      {\"i\": [\"map\", [[0, true], [1, false]]]},
      {\"i\": [\"map\", [[2, true]]]},
      {\"i\": [\"map\", [[2, true], [0, true]]]},
      {\"i\": [\"map\", [[2, true], [1, false]]]},
      {\"i\": [\"map\", [[2, true], [1, false], [0, true]]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-condition.at:415"
( $at_check_trace; test-ovsdb evaluate-conditions \
    '{"columns": {"i": {"type": {"key": "integer",
                                 "value": "boolean",
                                 "min": 0,
                                 "max": "unlimited"}}}}' \
    '[[["i", "==", ["map", []]]],
      [["i", "==", ["map", [[0, true]]]]],
      [["i", "==", ["map", [[1, false]]]]],
      [["i", "==", ["map", [[0, true], [1, false]]]]],
      [["i", "==", ["map", [[2, true]]]]],
      [["i", "==", ["map", [[2, true], [0, true]]]]],
      [["i", "==", ["map", [[2, true], [1, false]]]]],
      [["i", "==", ["map", [[2, true], [1, false], [0, true]]]]],
      [["i", "!=", ["map", []]]],
      [["i", "!=", ["map", [[0, true]]]]],
      [["i", "!=", ["map", [[1, false]]]]],
      [["i", "!=", ["map", [[0, true], [1, false]]]]],
      [["i", "!=", ["map", [[2, true]]]]],
      [["i", "!=", ["map", [[2, true], [0, true]]]]],
      [["i", "!=", ["map", [[2, true], [1, false]]]]],
      [["i", "!=", ["map", [[2, true], [1, false], [0, true]]]]],
      [["i", "includes", ["map", []]]],
      [["i", "includes", ["map", [[0, true]]]]],
      [["i", "includes", ["map", [[1, false]]]]],
      [["i", "includes", ["map", [[0, true], [1, false]]]]],
      [["i", "includes", ["map", [[2, true]]]]],
      [["i", "includes", ["map", [[2, true], [0, true]]]]],
      [["i", "includes", ["map", [[2, true], [1, false]]]]],
      [["i", "includes", ["map", [[2, true], [1, false], [0, true]]]]],
      [["i", "excludes", ["map", []]]],
      [["i", "excludes", ["map", [[0, true]]]]],
      [["i", "excludes", ["map", [[1, false]]]]],
      [["i", "excludes", ["map", [[0, true], [1, false]]]]],
      [["i", "excludes", ["map", [[2, true]]]]],
      [["i", "excludes", ["map", [[2, true], [0, true]]]]],
      [["i", "excludes", ["map", [[2, true], [1, false]]]]],
      [["i", "excludes", ["map", [[2, true], [1, false], [0, true]]]]],
      [["i", "includes", ["map", [[0, true]]]],
       ["i", "includes", ["map", [[1, false]]]]]]' \
    '[{"i": ["map", []]},
      {"i": ["map", [[0, true]]]},
      {"i": ["map", [[1, false]]]},
      {"i": ["map", [[0, true], [1, false]]]},
      {"i": ["map", [[2, true]]]},
      {"i": ["map", [[2, true], [0, true]]]},
      {"i": ["map", [[2, true], [1, false]]]},
      {"i": ["map", [[2, true], [1, false], [0, true]]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "condition  0: T---- ---
condition  1: -T--- ---
condition  2: --T-- ---
condition  3: ---T- ---
condition  4: ----T ---
condition  5: ----- T--
condition  6: ----- -T-
condition  7: ----- --T
condition  8: -TTTT TTT
condition  9: T-TTT TTT
condition 10: TT-TT TTT
condition 11: TTT-T TTT
condition 12: TTTT- TTT
condition 13: TTTTT -TT
condition 14: TTTTT T-T
condition 15: TTTTT TT-
condition 16: TTTTT TTT
condition 17: -T-T- T-T
condition 18: --TT- -TT
condition 19: ---T- --T
condition 20: ----T TTT
condition 21: ----- T-T
condition 22: ----- -TT
condition 23: ----- --T
condition 24: TTTTT TTT
condition 25: T-T-T -T-
condition 26: TT--T T--
condition 27: T---T ---
condition 28: TTTT- ---
condition 29: T-T-- ---
condition 30: TT--- ---
condition 31: T---- ---
condition 32: ---T- --T
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-condition.at:415"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1679
#AT_START_1680
at_fn_group_banner 1680 'ovsdb-condition.at:500' \
  "evaluating conditions on maps (2)" "              " 77
at_xfail=no
(
  $as_echo "1680. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-condition.at:500: test-ovsdb evaluate-conditions \\
    '{\"columns\": {\"i\": {\"type\": {\"key\": \"integer\",
                                 \"value\": \"boolean\",
                                 \"min\": 0,
                                 \"max\": \"unlimited\"}}}}' \\
    '[[[\"i\", \"==\", [\"map\", []]]],
      [[\"i\", \"==\", [\"map\", [[0, true]]]]],
      [[\"i\", \"==\", [\"map\", [[1, false]]]]],
      [[\"i\", \"==\", [\"map\", [[0, true], [1, false]]]]],
      [[\"i\", \"==\", [\"map\", [[2, true]]]]],
      [[\"i\", \"==\", [\"map\", [[2, true], [0, true]]]]],
      [[\"i\", \"==\", [\"map\", [[2, true], [1, false]]]]],
      [[\"i\", \"==\", [\"map\", [[2, true], [1, false], [0, true]]]]],
      [[\"i\", \"!=\", [\"map\", []]]],
      [[\"i\", \"!=\", [\"map\", [[0, true]]]]],
      [[\"i\", \"!=\", [\"map\", [[1, false]]]]],
      [[\"i\", \"!=\", [\"map\", [[0, true], [1, false]]]]],
      [[\"i\", \"!=\", [\"map\", [[2, true]]]]],
      [[\"i\", \"!=\", [\"map\", [[2, true], [0, true]]]]],
      [[\"i\", \"!=\", [\"map\", [[2, true], [1, false]]]]],
      [[\"i\", \"!=\", [\"map\", [[2, true], [1, false], [0, true]]]]],
      [[\"i\", \"includes\", [\"map\", []]]],
      [[\"i\", \"includes\", [\"map\", [[0, true]]]]],
      [[\"i\", \"includes\", [\"map\", [[1, false]]]]],
      [[\"i\", \"includes\", [\"map\", [[0, true], [1, false]]]]],
      [[\"i\", \"includes\", [\"map\", [[2, true]]]]],
      [[\"i\", \"includes\", [\"map\", [[2, true], [0, true]]]]],
      [[\"i\", \"includes\", [\"map\", [[2, true], [1, false]]]]],
      [[\"i\", \"includes\", [\"map\", [[2, true], [1, false], [0, true]]]]],
      [[\"i\", \"excludes\", [\"map\", []]]],
      [[\"i\", \"excludes\", [\"map\", [[0, true]]]]],
      [[\"i\", \"excludes\", [\"map\", [[1, false]]]]],
      [[\"i\", \"excludes\", [\"map\", [[0, true], [1, false]]]]],
      [[\"i\", \"excludes\", [\"map\", [[2, true]]]]],
      [[\"i\", \"excludes\", [\"map\", [[2, true], [0, true]]]]],
      [[\"i\", \"excludes\", [\"map\", [[2, true], [1, false]]]]],
      [[\"i\", \"excludes\", [\"map\", [[2, true], [1, false], [0, true]]]]],
      [[\"i\", \"includes\", [\"map\", [[0, true]]]],
       [\"i\", \"includes\", [\"map\", [[1, false]]]]]]' \\
    '[{\"i\": [\"map\", []]},
      {\"i\": [\"map\", [[0, true]]]},
      {\"i\": [\"map\", [[0, false]]]},
      {\"i\": [\"map\", [[1, false]]]},
      {\"i\": [\"map\", [[1, true]]]},

      {\"i\": [\"map\", [[0, true], [1, false]]]},
      {\"i\": [\"map\", [[0, true], [1, true]]]},
      {\"i\": [\"map\", [[2, true]]]},
      {\"i\": [\"map\", [[2, false]]]},
      {\"i\": [\"map\", [[2, true], [0, true]]]},

      {\"i\": [\"map\", [[2, false], [0, true]]]},
      {\"i\": [\"map\", [[2, true], [1, false]]]},
      {\"i\": [\"map\", [[2, true], [1, true]]]},
      {\"i\": [\"map\", [[2, true], [1, false], [0, true]]]},
      {\"i\": [\"map\", [[2, true], [1, false], [0, false]]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-condition.at:500"
( $at_check_trace; test-ovsdb evaluate-conditions \
    '{"columns": {"i": {"type": {"key": "integer",
                                 "value": "boolean",
                                 "min": 0,
                                 "max": "unlimited"}}}}' \
    '[[["i", "==", ["map", []]]],
      [["i", "==", ["map", [[0, true]]]]],
      [["i", "==", ["map", [[1, false]]]]],
      [["i", "==", ["map", [[0, true], [1, false]]]]],
      [["i", "==", ["map", [[2, true]]]]],
      [["i", "==", ["map", [[2, true], [0, true]]]]],
      [["i", "==", ["map", [[2, true], [1, false]]]]],
      [["i", "==", ["map", [[2, true], [1, false], [0, true]]]]],
      [["i", "!=", ["map", []]]],
      [["i", "!=", ["map", [[0, true]]]]],
      [["i", "!=", ["map", [[1, false]]]]],
      [["i", "!=", ["map", [[0, true], [1, false]]]]],
      [["i", "!=", ["map", [[2, true]]]]],
      [["i", "!=", ["map", [[2, true], [0, true]]]]],
      [["i", "!=", ["map", [[2, true], [1, false]]]]],
      [["i", "!=", ["map", [[2, true], [1, false], [0, true]]]]],
      [["i", "includes", ["map", []]]],
      [["i", "includes", ["map", [[0, true]]]]],
      [["i", "includes", ["map", [[1, false]]]]],
      [["i", "includes", ["map", [[0, true], [1, false]]]]],
      [["i", "includes", ["map", [[2, true]]]]],
      [["i", "includes", ["map", [[2, true], [0, true]]]]],
      [["i", "includes", ["map", [[2, true], [1, false]]]]],
      [["i", "includes", ["map", [[2, true], [1, false], [0, true]]]]],
      [["i", "excludes", ["map", []]]],
      [["i", "excludes", ["map", [[0, true]]]]],
      [["i", "excludes", ["map", [[1, false]]]]],
      [["i", "excludes", ["map", [[0, true], [1, false]]]]],
      [["i", "excludes", ["map", [[2, true]]]]],
      [["i", "excludes", ["map", [[2, true], [0, true]]]]],
      [["i", "excludes", ["map", [[2, true], [1, false]]]]],
      [["i", "excludes", ["map", [[2, true], [1, false], [0, true]]]]],
      [["i", "includes", ["map", [[0, true]]]],
       ["i", "includes", ["map", [[1, false]]]]]]' \
    '[{"i": ["map", []]},
      {"i": ["map", [[0, true]]]},
      {"i": ["map", [[0, false]]]},
      {"i": ["map", [[1, false]]]},
      {"i": ["map", [[1, true]]]},

      {"i": ["map", [[0, true], [1, false]]]},
      {"i": ["map", [[0, true], [1, true]]]},
      {"i": ["map", [[2, true]]]},
      {"i": ["map", [[2, false]]]},
      {"i": ["map", [[2, true], [0, true]]]},

      {"i": ["map", [[2, false], [0, true]]]},
      {"i": ["map", [[2, true], [1, false]]]},
      {"i": ["map", [[2, true], [1, true]]]},
      {"i": ["map", [[2, true], [1, false], [0, true]]]},
      {"i": ["map", [[2, true], [1, false], [0, false]]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "condition  0: T---- ----- -----
condition  1: -T--- ----- -----
condition  2: ---T- ----- -----
condition  3: ----- T---- -----
condition  4: ----- --T-- -----
condition  5: ----- ----T -----
condition  6: ----- ----- -T---
condition  7: ----- ----- ---T-
condition  8: -TTTT TTTTT TTTTT
condition  9: T-TTT TTTTT TTTTT
condition 10: TTT-T TTTTT TTTTT
condition 11: TTTTT -TTTT TTTTT
condition 12: TTTTT TT-TT TTTTT
condition 13: TTTTT TTTT- TTTTT
condition 14: TTTTT TTTTT T-TTT
condition 15: TTTTT TTTTT TTT-T
condition 16: TTTTT TTTTT TTTTT
condition 17: -T--- TT--T T--T-
condition 18: ---T- T---- -T-TT
condition 19: ----- T---- ---T-
condition 20: ----- --T-T -TTTT
condition 21: ----- ----T ---T-
condition 22: ----- ----- -T-TT
condition 23: ----- ----- ---T-
condition 24: TTTTT TTTTT TTTTT
condition 25: T-TTT --TT- -TT-T
condition 26: TTT-T -TTTT T-T--
condition 27: T-T-T --TT- --T--
condition 28: TTTTT TT-T- T----
condition 29: T-TTT ---T- -----
condition 30: TTT-T -T-T- T----
condition 31: T-T-T ---T- -----
condition 32: ----- T---- ---T-
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-condition.at:500"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1680
#AT_START_1681
at_fn_group_banner 1681 'ovsdb-condition.at:592' \
  "evaluating conditions on optional integers" "     " 77
at_xfail=no
(
  $as_echo "1681. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-condition.at:592: test-ovsdb evaluate-conditions \\
    '{\"columns\": {\"i\": {\"type\": {\"key\": \"integer\", \"min\": 0, \"max\": 1}}}}' \\
    '[[[\"i\", \"<\", 1]],
      [[\"i\", \"<=\", 1]],
      [[\"i\", \"==\", 1]],
      [[\"i\", \"!=\", 1]],
      [[\"i\", \">=\", 1]],
      [[\"i\", \">\", 1]],
      [[\"i\", \"includes\", 1]],
      [[\"i\", \"excludes\", 1]],
      [[\"i\", \">\", 0], [\"i\", \"<\", 2]]]' \\
    '[{\"i\": [\"set\", []]},
      {\"i\": [\"set\", [0]]},
      {\"i\": [\"set\", [1]]},
      {\"i\": [\"set\", [2]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-condition.at:592"
( $at_check_trace; test-ovsdb evaluate-conditions \
    '{"columns": {"i": {"type": {"key": "integer", "min": 0, "max": 1}}}}' \
    '[[["i", "<", 1]],
      [["i", "<=", 1]],
      [["i", "==", 1]],
      [["i", "!=", 1]],
      [["i", ">=", 1]],
      [["i", ">", 1]],
      [["i", "includes", 1]],
      [["i", "excludes", 1]],
      [["i", ">", 0], ["i", "<", 2]]]' \
    '[{"i": ["set", []]},
      {"i": ["set", [0]]},
      {"i": ["set", [1]]},
      {"i": ["set", [2]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "condition  0: -T--
condition  1: -TT-
condition  2: --T-
condition  3: TT-T
condition  4: --TT
condition  5: ---T
condition  6: --T-
condition  7: TT-T
condition  8: --T-
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-condition.at:592"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1681
#AT_START_1682
at_fn_group_banner 1682 'ovsdb-condition.at:619' \
  "evaluating conditions on optional strings" "      " 77
at_xfail=no
(
  $as_echo "1682. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-condition.at:619: test-ovsdb evaluate-conditions \\
    '{\"columns\": {\"s\": {\"type\": {\"key\": \"string\", \"min\": 0, \"max\": 1}}}}' \\
    '[[[\"s\", \"==\", \"\"]],
      [[\"s\", \"!=\", \"\"]],
      [[\"s\", \"includes\", \"\"]],
      [[\"s\", \"excludes\", \"\"]],
      [[\"s\", \"==\", \"foo\"]],
      [[\"s\", \"!=\", \"foo\"]],
      [[\"s\", \"includes\", \"foo\"]],
      [[\"s\", \"excludes\", \"foo\"]],
      [[\"s\", \"!=\", \"foo\"], [\"s\", \"!=\", \"\"]]]' \\
    '[{\"s\": [\"set\", [\"\"]]},
      {\"s\": [\"set\", [\"foo\"]]},
      {\"s\": [\"set\", [\"xxx\"]]},
      {\"s\": [\"set\", []]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-condition.at:619"
( $at_check_trace; test-ovsdb evaluate-conditions \
    '{"columns": {"s": {"type": {"key": "string", "min": 0, "max": 1}}}}' \
    '[[["s", "==", ""]],
      [["s", "!=", ""]],
      [["s", "includes", ""]],
      [["s", "excludes", ""]],
      [["s", "==", "foo"]],
      [["s", "!=", "foo"]],
      [["s", "includes", "foo"]],
      [["s", "excludes", "foo"]],
      [["s", "!=", "foo"], ["s", "!=", ""]]]' \
    '[{"s": ["set", [""]]},
      {"s": ["set", ["foo"]]},
      {"s": ["set", ["xxx"]]},
      {"s": ["set", []]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "condition  0: T---
condition  1: -TTT
condition  2: T---
condition  3: -TTT
condition  4: -T--
condition  5: T-TT
condition  6: -T--
condition  7: T-TT
condition  8: --TT
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-condition.at:619"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1682
#AT_START_1683
at_fn_group_banner 1683 'ovsdb-condition.at:646' \
  "evaluating conditions on optional reals" "        " 77
at_xfail=no
(
  $as_echo "1683. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-condition.at:646: test-ovsdb evaluate-conditions \\
    '{\"columns\": {\"r\": {\"type\": {\"key\": \"real\", \"min\": 0, \"max\": 1}}}}' \\
    '[[[\"r\", \"<\", 5.0]],
      [[\"r\", \"<=\", 5.0]],
      [[\"r\", \"==\", 5.0]],
      [[\"r\", \"!=\", 5.0]],
      [[\"r\", \">=\", 5.0]],
      [[\"r\", \">\", 5.0]],
      [[\"r\", \"includes\", 5.0]],
      [[\"r\", \"excludes\", 5.0]],
      [[\"r\", \"!=\", 0], [\"r\", \"!=\", 5.1]]]' \\
    '[{\"r\": [\"set\", [0]]},
      {\"r\": [\"set\", [5.0]]},
      {\"r\": [\"set\", [5.1]]},
      {\"r\": [\"set\", []]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-condition.at:646"
( $at_check_trace; test-ovsdb evaluate-conditions \
    '{"columns": {"r": {"type": {"key": "real", "min": 0, "max": 1}}}}' \
    '[[["r", "<", 5.0]],
      [["r", "<=", 5.0]],
      [["r", "==", 5.0]],
      [["r", "!=", 5.0]],
      [["r", ">=", 5.0]],
      [["r", ">", 5.0]],
      [["r", "includes", 5.0]],
      [["r", "excludes", 5.0]],
      [["r", "!=", 0], ["r", "!=", 5.1]]]' \
    '[{"r": ["set", [0]]},
      {"r": ["set", [5.0]]},
      {"r": ["set", [5.1]]},
      {"r": ["set", []]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "condition  0: T---
condition  1: TT--
condition  2: -T--
condition  3: T-TT
condition  4: -TT-
condition  5: --T-
condition  6: -T--
condition  7: T-TT
condition  8: -T-T
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-condition.at:646"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1683
#AT_START_1684
at_fn_group_banner 1684 'ovsdb-condition.at:673' \
  "evaluating false boolean condition" "             " 77
at_xfail=no
(
  $as_echo "1684. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-condition.at:673: test-ovsdb evaluate-conditions-any \\
    '{\"columns\": {\"i\": {\"type\": \"integer\"}}}' \\
    '[[false,[\"i\",\"==\",1]]]' \\
    '[{\"i\": 0},
      {\"i\": 1},
      {\"i\": 2}']"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-condition.at:673"
( $at_check_trace; test-ovsdb evaluate-conditions-any \
    '{"columns": {"i": {"type": "integer"}}}' \
    '[[false,["i","==",1]]]' \
    '[{"i": 0},
      {"i": 1},
      {"i": 2}']
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "condition  0: -T-
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-condition.at:673"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1684
#AT_START_1685
at_fn_group_banner 1685 'ovsdb-condition.at:682' \
  "evaluating true boolean condition" "              " 77
at_xfail=no
(
  $as_echo "1685. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-condition.at:682: test-ovsdb evaluate-conditions-any \\
    '{\"columns\": {\"i\": {\"type\": \"integer\"}}}' \\
    '[[true,[\"i\",\"==\",1]]]' \\
    '[{\"i\": 0},
      {\"i\": 1},
      {\"i\": 2}']"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-condition.at:682"
( $at_check_trace; test-ovsdb evaluate-conditions-any \
    '{"columns": {"i": {"type": "integer"}}}' \
    '[[true,["i","==",1]]]' \
    '[{"i": 0},
      {"i": 1},
      {"i": 2}']
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "condition  0: TTT
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-condition.at:682"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1685
#AT_START_1686
at_fn_group_banner 1686 'ovsdb-condition.at:691' \
  "compare condition" "                              " 77
at_xfail=no
(
  $as_echo "1686. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-condition.at:691: test-ovsdb compare-conditions \\
    '{\"columns\": {\"i\": {\"type\": \"integer\"}}}' \\
    '[[true,[\"i\",\"==\",1],[\"i\",\"==\",2],[\"i\",\"==\",3]],
      [[\"i\",\"==\",1],[\"i\",\"==\",3],[\"i\",\"==\",2],true],
      [[\"i\",\"==\",1]],
      [[\"i\",\">=\",1]]']"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-condition.at:691"
( $at_check_trace; test-ovsdb compare-conditions \
    '{"columns": {"i": {"type": "integer"}}}' \
    '[[true,["i","==",1],["i","==",2],["i","==",3]],
      [["i","==",1],["i","==",3],["i","==",2],true],
      [["i","==",1]],
      [["i",">=",1]]']
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "condition 0-1: 0
condition 1-2: 1
condition 2-3: -1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-condition.at:691"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1686
#AT_START_1687
at_fn_group_banner 1687 'ovsdb-mutation.at:3' \
  "null mutation" "                                  " 78
at_xfail=no
(
  $as_echo "1687. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-mutation.at:3: test-ovsdb parse-mutations \\
    '{\"columns\": {\"name\": {\"type\": \"string\"}}}' \\
    '[]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-mutation.at:3"
( $at_check_trace; test-ovsdb parse-mutations \
    '{"columns": {"name": {"type": "string"}}}' \
    '[]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-mutation.at:3"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1687
#AT_START_1688
at_fn_group_banner 1688 'ovsdb-mutation.at:9' \
  "mutations on scalars" "                           " 78
at_xfail=no
(
  $as_echo "1688. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-mutation.at:9: test-ovsdb parse-mutations \\
    '{\"columns\":
        {\"i\": {\"type\": \"integer\"},
         \"r\": {\"type\": \"real\"},
         \"b\": {\"type\": \"boolean\"},
	 \"s\": {\"type\": \"string\"},
         \"u\": {\"type\": \"uuid\"}}}' \\
    '[[\"i\", \"+=\", 0]]' \\
    '[[\"i\", \"-=\", 1]]' \\
    '[[\"i\", \"*=\", 2]]' \\
    '[[\"i\", \"/=\", 3]]' \\
    '[[\"i\", \"%=\", 4]]' \\
    '[[\"r\", \"+=\", 0.5]]' \\
    '[[\"r\", \"-=\", 1.5]]' \\
    '[[\"r\", \"*=\", 2.5]]' \\
    '[[\"r\", \"/=\", 3.5]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-mutation.at:9"
( $at_check_trace; test-ovsdb parse-mutations \
    '{"columns":
        {"i": {"type": "integer"},
         "r": {"type": "real"},
         "b": {"type": "boolean"},
	 "s": {"type": "string"},
         "u": {"type": "uuid"}}}' \
    '[["i", "+=", 0]]' \
    '[["i", "-=", 1]]' \
    '[["i", "*=", 2]]' \
    '[["i", "/=", 3]]' \
    '[["i", "%=", 4]]' \
    '[["r", "+=", 0.5]]' \
    '[["r", "-=", 1.5]]' \
    '[["r", "*=", 2.5]]' \
    '[["r", "/=", 3.5]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[[\"i\",\"+=\",0]]
[[\"i\",\"-=\",1]]
[[\"i\",\"*=\",2]]
[[\"i\",\"/=\",3]]
[[\"i\",\"%=\",4]]
[[\"r\",\"+=\",0.5]]
[[\"r\",\"-=\",1.5]]
[[\"r\",\"*=\",2.5]]
[[\"r\",\"/=\",3.5]]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-mutation.at:9"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1688
#AT_START_1689
at_fn_group_banner 1689 'ovsdb-mutation.at:37' \
  "disallowed mutations on scalars" "                " 78
at_xfail=no
(
  $as_echo "1689. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovsdb-mutation.at:39: test-ovsdb parse-mutations \\
    '{\"columns\":
        {\"i\": {\"type\": \"integer\"},
         \"r\": {\"type\": \"real\"},
         \"b\": {\"type\": \"boolean\"},
	 \"s\": {\"type\": \"string\"},
         \"u\": {\"type\": \"uuid\"}}}' \\
    '[[\"i\", \"xxx\", 1]]' \\
    '[[\"i\", \"insert\", 1]]' \\
    '[[\"i\", \"delete\", 2]]' \\
    '[[\"r\", \"%=\", 0.5]]' \\
    '[[\"r\", \"insert\", 1.5]]' \\
    '[[\"r\", \"delete\", 2.5]]' \\
    '[[\"b\", \"+=\", true]]' \\
    '[[\"b\", \"-=\", false]]' \\
    '[[\"b\", \"*=\", true]]' \\
    '[[\"b\", \"/=\", false]]' \\
    '[[\"b\", \"%=\", true]]' \\
    '[[\"b\", \"insert\", false]]' \\
    '[[\"b\", \"delete\", true]]' \\
    '[[\"s\", \"+=\", \"a\"]]' \\
    '[[\"s\", \"-=\", \"b\"]]' \\
    '[[\"s\", \"*=\", \"c\"]]' \\
    '[[\"s\", \"/=\", \"d\"]]' \\
    '[[\"s\", \"%=\", \"e\"]]' \\
    '[[\"s\", \"insert\", \"f\"]]' \\
    '[[\"s\", \"delete\", \"g\"]]' \\
    '[[\"u\", \"+=\", [\"uuid\", \"9179ca6d-6d65-400a-b455-3ad92783a099\"]]]' \\
    '[[\"u\", \"-=\", [\"uuid\", \"9179ca6d-6d65-400a-b455-3ad92783a099\"]]]' \\
    '[[\"u\", \"*=\", [\"uuid\", \"9179ca6d-6d65-400a-b455-3ad92783a099\"]]]' \\
    '[[\"u\", \"/=\", [\"uuid\", \"9179ca6d-6d65-400a-b455-3ad92783a099\"]]]' \\
    '[[\"u\", \"insert\", [\"uuid\", \"9179ca6d-6d65-400a-b455-3ad92783a099\"]]]' \\
    '[[\"u\", \"delete\", [\"uuid\", \"9179ca6d-6d65-400a-b455-3ad92783a099\"]]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-mutation.at:39"
( $at_check_trace; test-ovsdb parse-mutations \
    '{"columns":
        {"i": {"type": "integer"},
         "r": {"type": "real"},
         "b": {"type": "boolean"},
	 "s": {"type": "string"},
         "u": {"type": "uuid"}}}' \
    '[["i", "xxx", 1]]' \
    '[["i", "insert", 1]]' \
    '[["i", "delete", 2]]' \
    '[["r", "%=", 0.5]]' \
    '[["r", "insert", 1.5]]' \
    '[["r", "delete", 2.5]]' \
    '[["b", "+=", true]]' \
    '[["b", "-=", false]]' \
    '[["b", "*=", true]]' \
    '[["b", "/=", false]]' \
    '[["b", "%=", true]]' \
    '[["b", "insert", false]]' \
    '[["b", "delete", true]]' \
    '[["s", "+=", "a"]]' \
    '[["s", "-=", "b"]]' \
    '[["s", "*=", "c"]]' \
    '[["s", "/=", "d"]]' \
    '[["s", "%=", "e"]]' \
    '[["s", "insert", "f"]]' \
    '[["s", "delete", "g"]]' \
    '[["u", "+=", ["uuid", "9179ca6d-6d65-400a-b455-3ad92783a099"]]]' \
    '[["u", "-=", ["uuid", "9179ca6d-6d65-400a-b455-3ad92783a099"]]]' \
    '[["u", "*=", ["uuid", "9179ca6d-6d65-400a-b455-3ad92783a099"]]]' \
    '[["u", "/=", ["uuid", "9179ca6d-6d65-400a-b455-3ad92783a099"]]]' \
    '[["u", "insert", ["uuid", "9179ca6d-6d65-400a-b455-3ad92783a099"]]]' \
    '[["u", "delete", ["uuid", "9179ca6d-6d65-400a-b455-3ad92783a099"]]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "test-ovsdb: unknown mutator: No mutator named xxx.
test-ovsdb: syntax \"[\"i\",\"insert\",1]\": syntax error: Type mismatch: \"insert\" operator may not be applied to column i of type integer.
test-ovsdb: syntax \"[\"i\",\"delete\",2]\": syntax error: Type mismatch: \"delete\" operator may not be applied to column i of type integer.
test-ovsdb: syntax \"[\"r\",\"%=\",0.5]\": syntax error: Type mismatch: \"%=\" operator may not be applied to column r of type real.
test-ovsdb: syntax \"[\"r\",\"insert\",1.5]\": syntax error: Type mismatch: \"insert\" operator may not be applied to column r of type real.
test-ovsdb: syntax \"[\"r\",\"delete\",2.5]\": syntax error: Type mismatch: \"delete\" operator may not be applied to column r of type real.
test-ovsdb: syntax \"[\"b\",\"+=\",true]\": syntax error: Type mismatch: \"+=\" operator may not be applied to column b of type boolean.
test-ovsdb: syntax \"[\"b\",\"-=\",false]\": syntax error: Type mismatch: \"-=\" operator may not be applied to column b of type boolean.
test-ovsdb: syntax \"[\"b\",\"*=\",true]\": syntax error: Type mismatch: \"*=\" operator may not be applied to column b of type boolean.
test-ovsdb: syntax \"[\"b\",\"/=\",false]\": syntax error: Type mismatch: \"/=\" operator may not be applied to column b of type boolean.
test-ovsdb: syntax \"[\"b\",\"%=\",true]\": syntax error: Type mismatch: \"%=\" operator may not be applied to column b of type boolean.
test-ovsdb: syntax \"[\"b\",\"insert\",false]\": syntax error: Type mismatch: \"insert\" operator may not be applied to column b of type boolean.
test-ovsdb: syntax \"[\"b\",\"delete\",true]\": syntax error: Type mismatch: \"delete\" operator may not be applied to column b of type boolean.
test-ovsdb: syntax \"[\"s\",\"+=\",\"a\"]\": syntax error: Type mismatch: \"+=\" operator may not be applied to column s of type string.
test-ovsdb: syntax \"[\"s\",\"-=\",\"b\"]\": syntax error: Type mismatch: \"-=\" operator may not be applied to column s of type string.
test-ovsdb: syntax \"[\"s\",\"*=\",\"c\"]\": syntax error: Type mismatch: \"*=\" operator may not be applied to column s of type string.
test-ovsdb: syntax \"[\"s\",\"/=\",\"d\"]\": syntax error: Type mismatch: \"/=\" operator may not be applied to column s of type string.
test-ovsdb: syntax \"[\"s\",\"%=\",\"e\"]\": syntax error: Type mismatch: \"%=\" operator may not be applied to column s of type string.
test-ovsdb: syntax \"[\"s\",\"insert\",\"f\"]\": syntax error: Type mismatch: \"insert\" operator may not be applied to column s of type string.
test-ovsdb: syntax \"[\"s\",\"delete\",\"g\"]\": syntax error: Type mismatch: \"delete\" operator may not be applied to column s of type string.
test-ovsdb: syntax \"[\"u\",\"+=\",[\"uuid\",\"9179ca6d-6d65-400a-b455-3ad92783a099\"]]\": syntax error: Type mismatch: \"+=\" operator may not be applied to column u of type uuid.
test-ovsdb: syntax \"[\"u\",\"-=\",[\"uuid\",\"9179ca6d-6d65-400a-b455-3ad92783a099\"]]\": syntax error: Type mismatch: \"-=\" operator may not be applied to column u of type uuid.
test-ovsdb: syntax \"[\"u\",\"*=\",[\"uuid\",\"9179ca6d-6d65-400a-b455-3ad92783a099\"]]\": syntax error: Type mismatch: \"*=\" operator may not be applied to column u of type uuid.
test-ovsdb: syntax \"[\"u\",\"/=\",[\"uuid\",\"9179ca6d-6d65-400a-b455-3ad92783a099\"]]\": syntax error: Type mismatch: \"/=\" operator may not be applied to column u of type uuid.
test-ovsdb: syntax \"[\"u\",\"insert\",[\"uuid\",\"9179ca6d-6d65-400a-b455-3ad92783a099\"]]\": syntax error: Type mismatch: \"insert\" operator may not be applied to column u of type uuid.
test-ovsdb: syntax \"[\"u\",\"delete\",[\"uuid\",\"9179ca6d-6d65-400a-b455-3ad92783a099\"]]\": syntax error: Type mismatch: \"delete\" operator may not be applied to column u of type uuid.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-mutation.at:39"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1689
#AT_START_1690
at_fn_group_banner 1690 'ovsdb-mutation.at:102' \
  "disallowed mutations on immutable columns" "      " 78
at_xfail=no
(
  $as_echo "1690. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovsdb-mutation.at:104: test-ovsdb parse-mutations \\
    '{\"columns\":
        {\"i\": {\"type\": \"integer\", \"mutable\": false}}}' \\
    '[[\"i\", \"+=\", 1]]'
"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-mutation.at:104"
( $at_check_trace; test-ovsdb parse-mutations \
    '{"columns":
        {"i": {"type": "integer", "mutable": false}}}' \
    '[["i", "+=", 1]]'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "test-ovsdb: syntax \"[\"i\",\"+=\",1]\": constraint violation: Cannot mutate immutable column i in table mytable.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-mutation.at:104"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1690
#AT_START_1691
at_fn_group_banner 1691 'ovsdb-mutation.at:114' \
  "mutations on sets" "                              " 78
at_xfail=no
(
  $as_echo "1691. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-mutation.at:114: test-ovsdb parse-mutations \\
    '{\"columns\":
        {\"i\": {\"type\": {\"key\": \"integer\", \"min\": 0, \"max\": \"unlimited\"}},
         \"r\": {\"type\": {\"key\": \"real\", \"min\": 0, \"max\": \"unlimited\"}},
         \"b\": {\"type\": {\"key\": \"boolean\", \"min\": 0, \"max\": \"unlimited\"}},
	 \"s\": {\"type\": {\"key\": \"string\", \"min\": 0, \"max\": \"unlimited\"}},
         \"u\": {\"type\": {\"key\": \"uuid\", \"min\": 0, \"max\": \"unlimited\"}}}}' \\
    '[[\"i\", \"+=\", 1]]' \\
    '[[\"i\", \"-=\", 2]]' \\
    '[[\"i\", \"*=\", 3]]' \\
    '[[\"i\", \"/=\", 4]]' \\
    '[[\"i\", \"%=\", 5]]' \\
    '[[\"i\", \"insert\", [\"set\", [1, 2]]]]' \\
    '[[\"i\", \"delete\", [\"set\", [1, 2, 3]]]]' \\
    '[[\"r\", \"+=\", 1]]' \\
    '[[\"r\", \"-=\", 2]]' \\
    '[[\"r\", \"*=\", 3]]' \\
    '[[\"r\", \"/=\", 4]]' \\
    '[[\"r\", \"insert\", [\"set\", [1, 2]]]]' \\
    '[[\"r\", \"delete\", [\"set\", [1, 2, 3]]]]' \\
    '[[\"b\", \"insert\", [\"set\", [true]]]]' \\
    '[[\"b\", \"delete\", [\"set\", [false]]]]' \\
    '[[\"s\", \"insert\", [\"set\", [\"a\"]]]]' \\
    '[[\"s\", \"delete\", [\"set\", [\"a\", \"b\"]]]]' \\
    '[[\"u\", \"insert\",
       [\"set\", [[\"uuid\", \"b10d28f7-af18-4a67-9e78-2a6394516c59\"]]]]]' \\
    '[[\"u\", \"delete\",
       [\"set\", [[\"uuid\", \"b10d28f7-af18-4a67-9e78-2a6394516c59\"],
                [\"uuid\", \"9179ca6d-6d65-400a-b455-3ad92783a099\"]]]]]' \\
"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-mutation.at:114"
( $at_check_trace; test-ovsdb parse-mutations \
    '{"columns":
        {"i": {"type": {"key": "integer", "min": 0, "max": "unlimited"}},
         "r": {"type": {"key": "real", "min": 0, "max": "unlimited"}},
         "b": {"type": {"key": "boolean", "min": 0, "max": "unlimited"}},
	 "s": {"type": {"key": "string", "min": 0, "max": "unlimited"}},
         "u": {"type": {"key": "uuid", "min": 0, "max": "unlimited"}}}}' \
    '[["i", "+=", 1]]' \
    '[["i", "-=", 2]]' \
    '[["i", "*=", 3]]' \
    '[["i", "/=", 4]]' \
    '[["i", "%=", 5]]' \
    '[["i", "insert", ["set", [1, 2]]]]' \
    '[["i", "delete", ["set", [1, 2, 3]]]]' \
    '[["r", "+=", 1]]' \
    '[["r", "-=", 2]]' \
    '[["r", "*=", 3]]' \
    '[["r", "/=", 4]]' \
    '[["r", "insert", ["set", [1, 2]]]]' \
    '[["r", "delete", ["set", [1, 2, 3]]]]' \
    '[["b", "insert", ["set", [true]]]]' \
    '[["b", "delete", ["set", [false]]]]' \
    '[["s", "insert", ["set", ["a"]]]]' \
    '[["s", "delete", ["set", ["a", "b"]]]]' \
    '[["u", "insert",
       ["set", [["uuid", "b10d28f7-af18-4a67-9e78-2a6394516c59"]]]]]' \
    '[["u", "delete",
       ["set", [["uuid", "b10d28f7-af18-4a67-9e78-2a6394516c59"],
                ["uuid", "9179ca6d-6d65-400a-b455-3ad92783a099"]]]]]' \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[[\"i\",\"+=\",1]]
[[\"i\",\"-=\",2]]
[[\"i\",\"*=\",3]]
[[\"i\",\"/=\",4]]
[[\"i\",\"%=\",5]]
[[\"i\",\"insert\",[\"set\",[1,2]]]]
[[\"i\",\"delete\",[\"set\",[1,2,3]]]]
[[\"r\",\"+=\",1]]
[[\"r\",\"-=\",2]]
[[\"r\",\"*=\",3]]
[[\"r\",\"/=\",4]]
[[\"r\",\"insert\",[\"set\",[1,2]]]]
[[\"r\",\"delete\",[\"set\",[1,2,3]]]]
[[\"b\",\"insert\",true]]
[[\"b\",\"delete\",false]]
[[\"s\",\"insert\",\"a\"]]
[[\"s\",\"delete\",[\"set\",[\"a\",\"b\"]]]]
[[\"u\",\"insert\",[\"uuid\",\"b10d28f7-af18-4a67-9e78-2a6394516c59\"]]]
[[\"u\",\"delete\",[\"set\",[[\"uuid\",\"9179ca6d-6d65-400a-b455-3ad92783a099\"],[\"uuid\",\"b10d28f7-af18-4a67-9e78-2a6394516c59\"]]]]]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-mutation.at:114"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1691
#AT_START_1692
at_fn_group_banner 1692 'ovsdb-mutation.at:166' \
  "executing null mutation" "                        " 78
at_xfail=no
(
  $as_echo "1692. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-mutation.at:166: test-ovsdb execute-mutations \\
    '{\"columns\": {\"i\": {\"type\": \"integer\"}}}' \\
    '[[]]' \\
    '[{\"i\": 0},
      {\"i\": 1},
      {\"i\": 2}']"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-mutation.at:166"
( $at_check_trace; test-ovsdb execute-mutations \
    '{"columns": {"i": {"type": "integer"}}}' \
    '[[]]' \
    '[{"i": 0},
      {"i": 1},
      {"i": 2}']
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "mutation  0:
row 0: no change
row 1: no change
row 2: no change

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-mutation.at:166"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1692
#AT_START_1693
at_fn_group_banner 1693 'ovsdb-mutation.at:179' \
  "executing mutations on integers" "                " 78
at_xfail=no
(
  $as_echo "1693. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-mutation.at:179: test-ovsdb execute-mutations \\
    '{\"columns\": {\"i\": {\"type\": \"integer\"}}}' \\
    '[[[\"i\", \"+=\", 1]],
      [[\"i\", \"-=\", 2]],
      [[\"i\", \"*=\", 3]],
      [[\"i\", \"/=\", 4]],
      [[\"i\", \"%=\", 2]]]' \\
    '[{\"i\": 0},
      {\"i\": 1},
      {\"i\": 2}']"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-mutation.at:179"
( $at_check_trace; test-ovsdb execute-mutations \
    '{"columns": {"i": {"type": "integer"}}}' \
    '[[["i", "+=", 1]],
      [["i", "-=", 2]],
      [["i", "*=", 3]],
      [["i", "/=", 4]],
      [["i", "%=", 2]]]' \
    '[{"i": 0},
      {"i": 1},
      {"i": 2}']
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "mutation  0:
row 0: {\"i\":1}
row 1: {\"i\":2}
row 2: {\"i\":3}

mutation  1:
row 0: {\"i\":-2}
row 1: {\"i\":-1}
row 2: {\"i\":0}

mutation  2:
row 0: no change
row 1: {\"i\":3}
row 2: {\"i\":6}

mutation  3:
row 0: no change
row 1: {\"i\":0}
row 2: {\"i\":0}

mutation  4:
row 0: no change
row 1: no change
row 2: {\"i\":0}

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-mutation.at:179"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1693
#AT_START_1694
at_fn_group_banner 1694 'ovsdb-mutation.at:216' \
  "integer overflow detection" "                     " 78
at_xfail=no
(
  $as_echo "1694. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-mutation.at:216: test-ovsdb execute-mutations \\
    '{\"columns\": {\"i\": {\"type\": \"integer\"}}}' \\
    '[[[\"i\", \"+=\", 9223372036854775807]],
      [[\"i\", \"+=\", -9223372036854775808]],
      [[\"i\", \"-=\", -9223372036854775808]],
      [[\"i\", \"-=\", 9223372036854775807]],
      [[\"i\", \"*=\", 3037000500]],
      [[\"i\", \"/=\", -1]],
      [[\"i\", \"/=\", 0]]]' \\
    '[{\"i\": 0},
      {\"i\": 1},
      {\"i\": -1},
      {\"i\": 9223372036854775807},
      {\"i\": -9223372036854775808},
      {\"i\": 3037000500},
      {\"i\": -3037000500}']"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-mutation.at:216"
( $at_check_trace; test-ovsdb execute-mutations \
    '{"columns": {"i": {"type": "integer"}}}' \
    '[[["i", "+=", 9223372036854775807]],
      [["i", "+=", -9223372036854775808]],
      [["i", "-=", -9223372036854775808]],
      [["i", "-=", 9223372036854775807]],
      [["i", "*=", 3037000500]],
      [["i", "/=", -1]],
      [["i", "/=", 0]]]' \
    '[{"i": 0},
      {"i": 1},
      {"i": -1},
      {"i": 9223372036854775807},
      {"i": -9223372036854775808},
      {"i": 3037000500},
      {"i": -3037000500}']
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "mutation  0:
row 0: {\"i\":9223372036854775807}
row 1: range error: Result of \"+=\" operation is out of range.
row 2: {\"i\":9223372036854775806}
row 3: range error: Result of \"+=\" operation is out of range.
row 4: {\"i\":-1}
row 5: range error: Result of \"+=\" operation is out of range.
row 6: {\"i\":9223372033817775307}

mutation  1:
row 0: {\"i\":-9223372036854775808}
row 1: {\"i\":-9223372036854775807}
row 2: range error: Result of \"+=\" operation is out of range.
row 3: {\"i\":-1}
row 4: range error: Result of \"+=\" operation is out of range.
row 5: {\"i\":-9223372033817775308}
row 6: range error: Result of \"+=\" operation is out of range.

mutation  2:
row 0: range error: Result of \"-=\" operation is out of range.
row 1: range error: Result of \"-=\" operation is out of range.
row 2: {\"i\":9223372036854775807}
row 3: range error: Result of \"-=\" operation is out of range.
row 4: {\"i\":0}
row 5: range error: Result of \"-=\" operation is out of range.
row 6: {\"i\":9223372033817775308}

mutation  3:
row 0: {\"i\":-9223372036854775807}
row 1: {\"i\":-9223372036854775806}
row 2: {\"i\":-9223372036854775808}
row 3: {\"i\":0}
row 4: range error: Result of \"-=\" operation is out of range.
row 5: {\"i\":-9223372033817775307}
row 6: range error: Result of \"-=\" operation is out of range.

mutation  4:
row 0: no change
row 1: {\"i\":3037000500}
row 2: {\"i\":-3037000500}
row 3: range error: Result of \"*=\" operation is out of range.
row 4: range error: Result of \"*=\" operation is out of range.
row 5: range error: Result of \"*=\" operation is out of range.
row 6: range error: Result of \"*=\" operation is out of range.

mutation  5:
row 0: no change
row 1: {\"i\":-1}
row 2: {\"i\":1}
row 3: {\"i\":-9223372036854775807}
row 4: range error: Result of \"/=\" operation is out of range.
row 5: {\"i\":-3037000500}
row 6: {\"i\":3037000500}

mutation  6:
row 0: domain error: Division by zero.
row 1: domain error: Division by zero.
row 2: domain error: Division by zero.
row 3: domain error: Division by zero.
row 4: domain error: Division by zero.
row 5: domain error: Division by zero.
row 6: domain error: Division by zero.

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-mutation.at:216"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1694
#AT_START_1695
at_fn_group_banner 1695 'ovsdb-mutation.at:297' \
  "executing mutations on integers with constraints" "" 78
at_xfail=no
(
  $as_echo "1695. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-mutation.at:297: test-ovsdb execute-mutations \\
    '{\"columns\": {\"i\": {\"type\": {\"key\": {\"type\": \"integer\",
                                         \"minInteger\": 0,
                                         \"maxInteger\": 2}}}}}' \\
    '[[[\"i\", \"+=\", 1]],
      [[\"i\", \"-=\", 2]],
      [[\"i\", \"*=\", 3]],
      [[\"i\", \"/=\", 4]],
      [[\"i\", \"%=\", 2]]]' \\
    '[{\"i\": 0},
      {\"i\": 1},
      {\"i\": 2}']"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-mutation.at:297"
( $at_check_trace; test-ovsdb execute-mutations \
    '{"columns": {"i": {"type": {"key": {"type": "integer",
                                         "minInteger": 0,
                                         "maxInteger": 2}}}}}' \
    '[[["i", "+=", 1]],
      [["i", "-=", 2]],
      [["i", "*=", 3]],
      [["i", "/=", 4]],
      [["i", "%=", 2]]]' \
    '[{"i": 0},
      {"i": 1},
      {"i": 2}']
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "mutation  0:
row 0: {\"i\":1}
row 1: {\"i\":2}
row 2: constraint violation: 3 is not in the valid range 0 to 2 (inclusive)

mutation  1:
row 0: constraint violation: -2 is not in the valid range 0 to 2 (inclusive)
row 1: constraint violation: -1 is not in the valid range 0 to 2 (inclusive)
row 2: {\"i\":0}

mutation  2:
row 0: no change
row 1: constraint violation: 3 is not in the valid range 0 to 2 (inclusive)
row 2: constraint violation: 6 is not in the valid range 0 to 2 (inclusive)

mutation  3:
row 0: no change
row 1: {\"i\":0}
row 2: {\"i\":0}

mutation  4:
row 0: no change
row 1: no change
row 2: {\"i\":0}

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-mutation.at:297"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1695
#AT_START_1696
at_fn_group_banner 1696 'ovsdb-mutation.at:336' \
  "executing mutations on reals" "                   " 78
at_xfail=no
(
  $as_echo "1696. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-mutation.at:336: test-ovsdb execute-mutations \\
    '{\"columns\": {\"r\": {\"type\": \"real\"}}}' \\
    '[[[\"r\", \"+=\", 0.5]],
      [[\"r\", \"-=\", 1.5]],
      [[\"r\", \"*=\", 2.5]],
      [[\"r\", \"/=\", 4]]]' \\
    '[{\"r\": 0},
      {\"r\": -2.5},
      {\"r\": 1.25}']"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-mutation.at:336"
( $at_check_trace; test-ovsdb execute-mutations \
    '{"columns": {"r": {"type": "real"}}}' \
    '[[["r", "+=", 0.5]],
      [["r", "-=", 1.5]],
      [["r", "*=", 2.5]],
      [["r", "/=", 4]]]' \
    '[{"r": 0},
      {"r": -2.5},
      {"r": 1.25}']
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "mutation  0:
row 0: {\"r\":0.5}
row 1: {\"r\":-2}
row 2: {\"r\":1.75}

mutation  1:
row 0: {\"r\":-1.5}
row 1: {\"r\":-4}
row 2: {\"r\":-0.25}

mutation  2:
row 0: no change
row 1: {\"r\":-6.25}
row 2: {\"r\":3.125}

mutation  3:
row 0: no change
row 1: {\"r\":-0.625}
row 2: {\"r\":0.3125}

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-mutation.at:336"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1696
#AT_START_1697
at_fn_group_banner 1697 'ovsdb-mutation.at:367' \
  "real overflow detection" "                        " 78
at_xfail=no
(
  $as_echo "1697. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-mutation.at:367: test-ovsdb execute-mutations \\
    '{\"columns\": {\"r\": {\"type\": \"real\"}}}' \\
    '[[[\"r\", \"+=\", 1.7976931348623157e+308]],
      [[\"r\", \"-=\", 1.7976931348623157e+308]],
      [[\"r\", \"*=\", 2]],
      [[\"r\", \"/=\", 4]],
      [[\"r\", \"/=\", 0.5]],
      [[\"r\", \"/=\", 0]]]' \\
    '[{\"r\": 0},
      {\"r\": 1.7976931348623157e+308},
      {\"r\": -1.7976931348623157e+308}']"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-mutation.at:367"
( $at_check_trace; test-ovsdb execute-mutations \
    '{"columns": {"r": {"type": "real"}}}' \
    '[[["r", "+=", 1.7976931348623157e+308]],
      [["r", "-=", 1.7976931348623157e+308]],
      [["r", "*=", 2]],
      [["r", "/=", 4]],
      [["r", "/=", 0.5]],
      [["r", "/=", 0]]]' \
    '[{"r": 0},
      {"r": 1.7976931348623157e+308},
      {"r": -1.7976931348623157e+308}']
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "mutation  0:
row 0: {\"r\":1.79769313486232e+308}
row 1: range error: Result of \"+=\" operation is out of range.
row 2: {\"r\":0}

mutation  1:
row 0: {\"r\":-1.79769313486232e+308}
row 1: {\"r\":0}
row 2: range error: Result of \"-=\" operation is out of range.

mutation  2:
row 0: no change
row 1: range error: Result of \"*=\" operation is out of range.
row 2: range error: Result of \"*=\" operation is out of range.

mutation  3:
row 0: no change
row 1: {\"r\":4.49423283715579e+307}
row 2: {\"r\":-4.49423283715579e+307}

mutation  4:
row 0: no change
row 1: range error: Result of \"/=\" operation is out of range.
row 2: range error: Result of \"/=\" operation is out of range.

mutation  5:
row 0: domain error: Division by zero.
row 1: domain error: Division by zero.
row 2: domain error: Division by zero.

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-mutation.at:367"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1697
#AT_START_1698
at_fn_group_banner 1698 'ovsdb-mutation.at:410' \
  "executing mutations on reals with constraints" "  " 78
at_xfail=no
(
  $as_echo "1698. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-mutation.at:410: test-ovsdb execute-mutations \\
    '{\"columns\": {\"r\": {\"type\": {\"key\": {\"type\": \"real\",
                                         \"minReal\": -2.5,
                                         \"maxReal\": 1.75}}}}}' \\
    '[[[\"r\", \"+=\", 0.5]],
      [[\"r\", \"-=\", 1.5]],
      [[\"r\", \"*=\", 2.5]],
      [[\"r\", \"/=\", 4]]]' \\
    '[{\"r\": 0},
      {\"r\": -2.5},
      {\"r\": 1.25}']"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-mutation.at:410"
( $at_check_trace; test-ovsdb execute-mutations \
    '{"columns": {"r": {"type": {"key": {"type": "real",
                                         "minReal": -2.5,
                                         "maxReal": 1.75}}}}}' \
    '[[["r", "+=", 0.5]],
      [["r", "-=", 1.5]],
      [["r", "*=", 2.5]],
      [["r", "/=", 4]]]' \
    '[{"r": 0},
      {"r": -2.5},
      {"r": 1.25}']
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "mutation  0:
row 0: {\"r\":0.5}
row 1: {\"r\":-2}
row 2: {\"r\":1.75}

mutation  1:
row 0: {\"r\":-1.5}
row 1: constraint violation: -4 is not in the valid range -2.5 to 1.75 (inclusive)
row 2: {\"r\":-0.25}

mutation  2:
row 0: no change
row 1: constraint violation: -6.25 is not in the valid range -2.5 to 1.75 (inclusive)
row 2: constraint violation: 3.125 is not in the valid range -2.5 to 1.75 (inclusive)

mutation  3:
row 0: no change
row 1: {\"r\":-0.625}
row 2: {\"r\":0.3125}

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-mutation.at:410"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1698
#AT_START_1699
at_fn_group_banner 1699 'ovsdb-mutation.at:443' \
  "executing mutations on integer sets" "            " 78
at_xfail=no
(
  $as_echo "1699. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-mutation.at:443: test-ovsdb execute-mutations \\
    '{\"columns\": {\"i\": {\"type\": {\"key\": {\"type\": \"integer\",
                                         \"maxInteger\": 5},
                                 \"min\": 0,
                                 \"max\": \"unlimited\"}}}}' \\
    '[[[\"i\", \"+=\", 1]],
      [[\"i\", \"-=\", 2]],
      [[\"i\", \"*=\", 3]],
      [[\"i\", \"/=\", 4]],
      [[\"i\", \"%=\", 2]],
      [[\"i\", \"insert\", [\"set\", [1]]]],
      [[\"i\", \"insert\", [\"set\", [2, 3]]]],
      [[\"i\", \"delete\", [\"set\", [1]]]],
      [[\"i\", \"delete\", [\"set\", [2, 3]]]]]' \\
    '[{\"i\": [\"set\", []]},
      {\"i\": [\"set\", [0]]},
      {\"i\": [\"set\", [0, 1]]},
      {\"i\": [\"set\", [0, 1, 2]]}']"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-mutation.at:443"
( $at_check_trace; test-ovsdb execute-mutations \
    '{"columns": {"i": {"type": {"key": {"type": "integer",
                                         "maxInteger": 5},
                                 "min": 0,
                                 "max": "unlimited"}}}}' \
    '[[["i", "+=", 1]],
      [["i", "-=", 2]],
      [["i", "*=", 3]],
      [["i", "/=", 4]],
      [["i", "%=", 2]],
      [["i", "insert", ["set", [1]]]],
      [["i", "insert", ["set", [2, 3]]]],
      [["i", "delete", ["set", [1]]]],
      [["i", "delete", ["set", [2, 3]]]]]' \
    '[{"i": ["set", []]},
      {"i": ["set", [0]]},
      {"i": ["set", [0, 1]]},
      {"i": ["set", [0, 1, 2]]}']
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "mutation  0:
row 0: no change
row 1: {\"i\":1}
row 2: {\"i\":[\"set\",[1,2]]}
row 3: {\"i\":[\"set\",[1,2,3]]}

mutation  1:
row 0: no change
row 1: {\"i\":-2}
row 2: {\"i\":[\"set\",[-2,-1]]}
row 3: {\"i\":[\"set\",[-2,-1,0]]}

mutation  2:
row 0: no change
row 1: no change
row 2: {\"i\":[\"set\",[0,3]]}
row 3: constraint violation: 6 is greater than maximum allowed value 5

mutation  3:
row 0: no change
row 1: no change
row 2: constraint violation: Result of \"/=\" operation contains duplicates.
row 3: constraint violation: Result of \"/=\" operation contains duplicates.

mutation  4:
row 0: no change
row 1: no change
row 2: no change
row 3: constraint violation: Result of \"%=\" operation contains duplicates.

mutation  5:
row 0: {\"i\":1}
row 1: {\"i\":[\"set\",[0,1]]}
row 2: no change
row 3: no change

mutation  6:
row 0: {\"i\":[\"set\",[2,3]]}
row 1: {\"i\":[\"set\",[0,2,3]]}
row 2: {\"i\":[\"set\",[0,1,2,3]]}
row 3: {\"i\":[\"set\",[0,1,2,3]]}

mutation  7:
row 0: no change
row 1: no change
row 2: {\"i\":0}
row 3: {\"i\":[\"set\",[0,2]]}

mutation  8:
row 0: no change
row 1: no change
row 2: no change
row 3: {\"i\":[\"set\",[0,1]]}

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-mutation.at:443"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1699
#AT_START_1700
at_fn_group_banner 1700 'ovsdb-mutation.at:517' \
  "executing mutations on integer sets with constraints" "" 78
at_xfail=no
(
  $as_echo "1700. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-mutation.at:517: test-ovsdb execute-mutations \\
    '{\"columns\": {\"i\": {\"type\": {\"key\": \"integer\",
                                 \"min\": 1,
                                 \"max\": 2}}}}' \\
    '[[[\"i\", \"insert\", [\"set\", [1]]]],
      [[\"i\", \"insert\", [\"set\", [2]]]],
      [[\"i\", \"delete\", [\"set\", [1]]]],
      [[\"i\", \"delete\", [\"set\", [2]]]],
      [[\"i\", \"delete\", [\"set\", [0, 1]]]]]' \\
    '[{\"i\": [\"set\", [0]]},
      {\"i\": [\"set\", [2]]},
      {\"i\": [\"set\", [0, 1]]}']"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-mutation.at:517"
( $at_check_trace; test-ovsdb execute-mutations \
    '{"columns": {"i": {"type": {"key": "integer",
                                 "min": 1,
                                 "max": 2}}}}' \
    '[[["i", "insert", ["set", [1]]]],
      [["i", "insert", ["set", [2]]]],
      [["i", "delete", ["set", [1]]]],
      [["i", "delete", ["set", [2]]]],
      [["i", "delete", ["set", [0, 1]]]]]' \
    '[{"i": ["set", [0]]},
      {"i": ["set", [2]]},
      {"i": ["set", [0, 1]]}']
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "mutation  0:
row 0: {\"i\":[\"set\",[0,1]]}
row 1: {\"i\":[\"set\",[1,2]]}
row 2: no change

mutation  1:
row 0: {\"i\":[\"set\",[0,2]]}
row 1: no change
row 2: constraint violation: Attempted to store 3 elements in set of 1 to 2 integers.

mutation  2:
row 0: no change
row 1: no change
row 2: {\"i\":0}

mutation  3:
row 0: no change
row 1: constraint violation: Attempted to store 0 elements in set of 1 to 2 integers.
row 2: no change

mutation  4:
row 0: constraint violation: Attempted to store 0 elements in set of 1 to 2 integers.
row 1: no change
row 2: constraint violation: Attempted to store 0 elements in set of 1 to 2 integers.

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-mutation.at:517"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1700
#AT_START_1701
at_fn_group_banner 1701 'ovsdb-mutation.at:556' \
  "executing mutations on real sets" "               " 78
at_xfail=no
(
  $as_echo "1701. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-mutation.at:556: test-ovsdb execute-mutations \\
    '{\"columns\": {\"r\": {\"type\": {\"key\": {\"type\": \"real\",
                                         \"maxReal\": 6},
                                 \"min\": 0, \"max\": \"unlimited\"}}}}' \\
    '[[[\"r\", \"+=\", 0.5]],
      [[\"r\", \"-=\", 1.5]],
      [[\"r\", \"*=\", 2.5]],
      [[\"r\", \"/=\", 4]],
      [[\"r\", \"*=\", 0]],
      [[\"r\", \"insert\", 1.5]],
      [[\"r\", \"insert\", 3]],
      [[\"r\", \"delete\", [\"set\", [1.5, 3.5]]]],
      [[\"r\", \"delete\", [\"set\", [0.5, 1.5, 2.5]]]]]' \\
    '[{\"r\": [\"set\", []]},
      {\"r\": 0.5},
      {\"r\": [\"set\", [0.5, 1.5]]},
      {\"r\": [\"set\", [0.5, 1.5, 2.5]]}']"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-mutation.at:556"
( $at_check_trace; test-ovsdb execute-mutations \
    '{"columns": {"r": {"type": {"key": {"type": "real",
                                         "maxReal": 6},
                                 "min": 0, "max": "unlimited"}}}}' \
    '[[["r", "+=", 0.5]],
      [["r", "-=", 1.5]],
      [["r", "*=", 2.5]],
      [["r", "/=", 4]],
      [["r", "*=", 0]],
      [["r", "insert", 1.5]],
      [["r", "insert", 3]],
      [["r", "delete", ["set", [1.5, 3.5]]]],
      [["r", "delete", ["set", [0.5, 1.5, 2.5]]]]]' \
    '[{"r": ["set", []]},
      {"r": 0.5},
      {"r": ["set", [0.5, 1.5]]},
      {"r": ["set", [0.5, 1.5, 2.5]]}']
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "mutation  0:
row 0: no change
row 1: {\"r\":1}
row 2: {\"r\":[\"set\",[1,2]]}
row 3: {\"r\":[\"set\",[1,2,3]]}

mutation  1:
row 0: no change
row 1: {\"r\":-1}
row 2: {\"r\":[\"set\",[-1,0]]}
row 3: {\"r\":[\"set\",[-1,0,1]]}

mutation  2:
row 0: no change
row 1: {\"r\":1.25}
row 2: {\"r\":[\"set\",[1.25,3.75]]}
row 3: constraint violation: 6.25 is greater than maximum allowed value 6

mutation  3:
row 0: no change
row 1: {\"r\":0.125}
row 2: {\"r\":[\"set\",[0.125,0.375]]}
row 3: {\"r\":[\"set\",[0.125,0.375,0.625]]}

mutation  4:
row 0: no change
row 1: {\"r\":0}
row 2: constraint violation: Result of \"*=\" operation contains duplicates.
row 3: constraint violation: Result of \"*=\" operation contains duplicates.

mutation  5:
row 0: {\"r\":1.5}
row 1: {\"r\":[\"set\",[0.5,1.5]]}
row 2: no change
row 3: no change

mutation  6:
row 0: {\"r\":3}
row 1: {\"r\":[\"set\",[0.5,3]]}
row 2: {\"r\":[\"set\",[0.5,1.5,3]]}
row 3: {\"r\":[\"set\",[0.5,1.5,2.5,3]]}

mutation  7:
row 0: no change
row 1: no change
row 2: {\"r\":0.5}
row 3: {\"r\":[\"set\",[0.5,2.5]]}

mutation  8:
row 0: no change
row 1: {\"r\":[\"set\",[]]}
row 2: {\"r\":[\"set\",[]]}
row 3: {\"r\":[\"set\",[]]}

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-mutation.at:556"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1701
#AT_START_1702
at_fn_group_banner 1702 'ovsdb-mutation.at:629' \
  "executing mutations on boolean sets" "            " 78
at_xfail=no
(
  $as_echo "1702. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-mutation.at:629: test-ovsdb execute-mutations \\
    '{\"columns\": {\"b\": {\"type\": {\"key\": \"boolean\", \"min\": 0, \"max\": \"unlimited\"}}}}' \\
    '[[[\"b\", \"insert\", [\"set\", [false]]]],
      [[\"b\", \"insert\", [\"set\", [true]]]],
      [[\"b\", \"insert\", [\"set\", [false, true]]]],
      [[\"b\", \"delete\", [\"set\", [false]]]],
      [[\"b\", \"delete\", [\"set\", [true]]]],
      [[\"b\", \"delete\", [\"set\", [true, false]]]]]' \\
    '[{\"b\": [\"set\", []]},
      {\"b\": [\"set\", [false]]},
      {\"b\": [\"set\", [true]]},
      {\"b\": [\"set\", [false, true]]}']"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-mutation.at:629"
( $at_check_trace; test-ovsdb execute-mutations \
    '{"columns": {"b": {"type": {"key": "boolean", "min": 0, "max": "unlimited"}}}}' \
    '[[["b", "insert", ["set", [false]]]],
      [["b", "insert", ["set", [true]]]],
      [["b", "insert", ["set", [false, true]]]],
      [["b", "delete", ["set", [false]]]],
      [["b", "delete", ["set", [true]]]],
      [["b", "delete", ["set", [true, false]]]]]' \
    '[{"b": ["set", []]},
      {"b": ["set", [false]]},
      {"b": ["set", [true]]},
      {"b": ["set", [false, true]]}']
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "mutation  0:
row 0: {\"b\":false}
row 1: no change
row 2: {\"b\":[\"set\",[false,true]]}
row 3: no change

mutation  1:
row 0: {\"b\":true}
row 1: {\"b\":[\"set\",[false,true]]}
row 2: no change
row 3: no change

mutation  2:
row 0: {\"b\":[\"set\",[false,true]]}
row 1: {\"b\":[\"set\",[false,true]]}
row 2: {\"b\":[\"set\",[false,true]]}
row 3: no change

mutation  3:
row 0: no change
row 1: {\"b\":[\"set\",[]]}
row 2: no change
row 3: {\"b\":true}

mutation  4:
row 0: no change
row 1: no change
row 2: {\"b\":[\"set\",[]]}
row 3: {\"b\":false}

mutation  5:
row 0: no change
row 1: {\"b\":[\"set\",[]]}
row 2: {\"b\":[\"set\",[]]}
row 3: {\"b\":[\"set\",[]]}

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-mutation.at:629"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1702
#AT_START_1703
at_fn_group_banner 1703 'ovsdb-mutation.at:679' \
  "executing mutations on string sets" "             " 78
at_xfail=no
(
  $as_echo "1703. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-mutation.at:679: test-ovsdb execute-mutations \\
    '{\"columns\": {\"s\": {\"type\": {\"key\": \"string\", \"min\": 0, \"max\": \"unlimited\"}}}}' \\
    '[[[\"s\", \"insert\", [\"set\", [\"a\"]]]],
      [[\"s\", \"insert\", [\"set\", [\"b\"]]]],
      [[\"s\", \"insert\", [\"set\", [\"c\", \"d\"]]]],
      [[\"s\", \"delete\", [\"set\", [\"a\"]]]],
      [[\"s\", \"delete\", [\"set\", [\"b\"]]]],
      [[\"s\", \"delete\", [\"set\", [\"c\", \"d\"]]]]]' \\
    '[{\"s\": [\"set\", []]},
      {\"s\": [\"set\", [\"a\"]]},
      {\"s\": [\"set\", [\"a\", \"b\"]]},
      {\"s\": [\"set\", [\"a\", \"b\", \"c\", \"d\"]]}']"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-mutation.at:679"
( $at_check_trace; test-ovsdb execute-mutations \
    '{"columns": {"s": {"type": {"key": "string", "min": 0, "max": "unlimited"}}}}' \
    '[[["s", "insert", ["set", ["a"]]]],
      [["s", "insert", ["set", ["b"]]]],
      [["s", "insert", ["set", ["c", "d"]]]],
      [["s", "delete", ["set", ["a"]]]],
      [["s", "delete", ["set", ["b"]]]],
      [["s", "delete", ["set", ["c", "d"]]]]]' \
    '[{"s": ["set", []]},
      {"s": ["set", ["a"]]},
      {"s": ["set", ["a", "b"]]},
      {"s": ["set", ["a", "b", "c", "d"]]}']
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "mutation  0:
row 0: {\"s\":\"a\"}
row 1: no change
row 2: no change
row 3: no change

mutation  1:
row 0: {\"s\":\"b\"}
row 1: {\"s\":[\"set\",[\"a\",\"b\"]]}
row 2: no change
row 3: no change

mutation  2:
row 0: {\"s\":[\"set\",[\"c\",\"d\"]]}
row 1: {\"s\":[\"set\",[\"a\",\"c\",\"d\"]]}
row 2: {\"s\":[\"set\",[\"a\",\"b\",\"c\",\"d\"]]}
row 3: no change

mutation  3:
row 0: no change
row 1: {\"s\":[\"set\",[]]}
row 2: {\"s\":\"b\"}
row 3: {\"s\":[\"set\",[\"b\",\"c\",\"d\"]]}

mutation  4:
row 0: no change
row 1: no change
row 2: {\"s\":\"a\"}
row 3: {\"s\":[\"set\",[\"a\",\"c\",\"d\"]]}

mutation  5:
row 0: no change
row 1: no change
row 2: no change
row 3: {\"s\":[\"set\",[\"a\",\"b\"]]}

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-mutation.at:679"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1703
#AT_START_1704
at_fn_group_banner 1704 'ovsdb-mutation.at:729' \
  "executing mutations on uuid sets" "               " 78
at_xfail=no
(
  $as_echo "1704. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-mutation.at:729: test-ovsdb execute-mutations \\
    '{\"columns\": {\"u\": {\"type\": {\"key\": \"uuid\", \"min\": 0, \"max\": \"unlimited\"}}}}' \\
    '[[[\"u\", \"insert\", [\"set\", [[\"uuid\", \"ddd9e79d-7782-414c-8b22-1046c60b6ec2\"]]]]],
      [[\"u\", \"insert\", [\"set\", [[\"uuid\", \"a60fe7ff-317b-4568-9106-892b37445313\"]]]]],
      [[\"u\", \"insert\", [\"set\", [[\"uuid\", \"2607d30e-e652-4927-9fec-8bbf1b60c7e9\"]]]]],
      [[\"u\", \"delete\", [\"set\", [[\"uuid\", \"ddd9e79d-7782-414c-8b22-1046c60b6ec2\"]]]]],
      [[\"u\", \"delete\", [\"set\", [[\"uuid\", \"a60fe7ff-317b-4568-9106-892b37445313\"]]]]],
      [[\"u\", \"delete\", [\"set\", [[\"uuid\", \"2607d30e-e652-4927-9fec-8bbf1b60c7e9\"]]]]]]' \\
    '[{\"u\": [\"set\", []]},
      {\"u\": [\"set\", [[\"uuid\", \"ddd9e79d-7782-414c-8b22-1046c60b6ec2\"]]]},
      {\"u\": [\"set\", [[\"uuid\", \"a60fe7ff-317b-4568-9106-892b37445313\"]]]},
      {\"u\": [\"set\", [[\"uuid\", \"2607d30e-e652-4927-9fec-8bbf1b60c7e9\"]]]}']"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-mutation.at:729"
( $at_check_trace; test-ovsdb execute-mutations \
    '{"columns": {"u": {"type": {"key": "uuid", "min": 0, "max": "unlimited"}}}}' \
    '[[["u", "insert", ["set", [["uuid", "ddd9e79d-7782-414c-8b22-1046c60b6ec2"]]]]],
      [["u", "insert", ["set", [["uuid", "a60fe7ff-317b-4568-9106-892b37445313"]]]]],
      [["u", "insert", ["set", [["uuid", "2607d30e-e652-4927-9fec-8bbf1b60c7e9"]]]]],
      [["u", "delete", ["set", [["uuid", "ddd9e79d-7782-414c-8b22-1046c60b6ec2"]]]]],
      [["u", "delete", ["set", [["uuid", "a60fe7ff-317b-4568-9106-892b37445313"]]]]],
      [["u", "delete", ["set", [["uuid", "2607d30e-e652-4927-9fec-8bbf1b60c7e9"]]]]]]' \
    '[{"u": ["set", []]},
      {"u": ["set", [["uuid", "ddd9e79d-7782-414c-8b22-1046c60b6ec2"]]]},
      {"u": ["set", [["uuid", "a60fe7ff-317b-4568-9106-892b37445313"]]]},
      {"u": ["set", [["uuid", "2607d30e-e652-4927-9fec-8bbf1b60c7e9"]]]}']
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "mutation  0:
row 0: {\"u\":[\"uuid\",\"ddd9e79d-7782-414c-8b22-1046c60b6ec2\"]}
row 1: no change
row 2: {\"u\":[\"set\",[[\"uuid\",\"a60fe7ff-317b-4568-9106-892b37445313\"],[\"uuid\",\"ddd9e79d-7782-414c-8b22-1046c60b6ec2\"]]]}
row 3: {\"u\":[\"set\",[[\"uuid\",\"2607d30e-e652-4927-9fec-8bbf1b60c7e9\"],[\"uuid\",\"ddd9e79d-7782-414c-8b22-1046c60b6ec2\"]]]}

mutation  1:
row 0: {\"u\":[\"uuid\",\"a60fe7ff-317b-4568-9106-892b37445313\"]}
row 1: {\"u\":[\"set\",[[\"uuid\",\"a60fe7ff-317b-4568-9106-892b37445313\"],[\"uuid\",\"ddd9e79d-7782-414c-8b22-1046c60b6ec2\"]]]}
row 2: no change
row 3: {\"u\":[\"set\",[[\"uuid\",\"2607d30e-e652-4927-9fec-8bbf1b60c7e9\"],[\"uuid\",\"a60fe7ff-317b-4568-9106-892b37445313\"]]]}

mutation  2:
row 0: {\"u\":[\"uuid\",\"2607d30e-e652-4927-9fec-8bbf1b60c7e9\"]}
row 1: {\"u\":[\"set\",[[\"uuid\",\"2607d30e-e652-4927-9fec-8bbf1b60c7e9\"],[\"uuid\",\"ddd9e79d-7782-414c-8b22-1046c60b6ec2\"]]]}
row 2: {\"u\":[\"set\",[[\"uuid\",\"2607d30e-e652-4927-9fec-8bbf1b60c7e9\"],[\"uuid\",\"a60fe7ff-317b-4568-9106-892b37445313\"]]]}
row 3: no change

mutation  3:
row 0: no change
row 1: {\"u\":[\"set\",[]]}
row 2: no change
row 3: no change

mutation  4:
row 0: no change
row 1: no change
row 2: {\"u\":[\"set\",[]]}
row 3: no change

mutation  5:
row 0: no change
row 1: no change
row 2: no change
row 3: {\"u\":[\"set\",[]]}

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-mutation.at:729"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1704
#AT_START_1705
at_fn_group_banner 1705 'ovsdb-mutation.at:779' \
  "executing mutations on integer maps" "            " 78
at_xfail=no
(
  $as_echo "1705. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-mutation.at:779: test-ovsdb execute-mutations \\
    '{\"columns\": {\"i\": {\"type\": {\"key\": \"integer\", \"value\": \"integer\", \"min\": 0, \"max\": \"unlimited\"}}}}' \\
    '[[[\"i\", \"insert\", [\"map\", [[1, 2]]]]],
      [[\"i\", \"insert\", [\"map\", [[2, 4], [3, 5]]]]],
      [[\"i\", \"delete\", [\"map\", [[1, 2]]]]],
      [[\"i\", \"delete\", [\"map\", [[2, 3]]]]],
      [[\"i\", \"delete\", [\"set\", [1]]]],
      [[\"i\", \"delete\", [\"set\", [2, 3]]]]]' \\
    '[{\"i\": [\"map\", []]},
      {\"i\": [\"map\", [[1, 2]]]},
      {\"i\": [\"map\", [[1, 3], [2, 3]]]},
      {\"i\": [\"map\", [[3, 5]]]}']"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-mutation.at:779"
( $at_check_trace; test-ovsdb execute-mutations \
    '{"columns": {"i": {"type": {"key": "integer", "value": "integer", "min": 0, "max": "unlimited"}}}}' \
    '[[["i", "insert", ["map", [[1, 2]]]]],
      [["i", "insert", ["map", [[2, 4], [3, 5]]]]],
      [["i", "delete", ["map", [[1, 2]]]]],
      [["i", "delete", ["map", [[2, 3]]]]],
      [["i", "delete", ["set", [1]]]],
      [["i", "delete", ["set", [2, 3]]]]]' \
    '[{"i": ["map", []]},
      {"i": ["map", [[1, 2]]]},
      {"i": ["map", [[1, 3], [2, 3]]]},
      {"i": ["map", [[3, 5]]]}']
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "mutation  0:
row 0: {\"i\":[\"map\",[[1,2]]]}
row 1: no change
row 2: no change
row 3: {\"i\":[\"map\",[[1,2],[3,5]]]}

mutation  1:
row 0: {\"i\":[\"map\",[[2,4],[3,5]]]}
row 1: {\"i\":[\"map\",[[1,2],[2,4],[3,5]]]}
row 2: {\"i\":[\"map\",[[1,3],[2,3],[3,5]]]}
row 3: {\"i\":[\"map\",[[2,4],[3,5]]]}

mutation  2:
row 0: no change
row 1: {\"i\":[\"map\",[]]}
row 2: no change
row 3: no change

mutation  3:
row 0: no change
row 1: no change
row 2: {\"i\":[\"map\",[[1,3]]]}
row 3: no change

mutation  4:
row 0: no change
row 1: {\"i\":[\"map\",[]]}
row 2: {\"i\":[\"map\",[[2,3]]]}
row 3: no change

mutation  5:
row 0: no change
row 1: no change
row 2: {\"i\":[\"map\",[[1,3]]]}
row 3: {\"i\":[\"map\",[]]}

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-mutation.at:779"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1705
#AT_START_1706
at_fn_group_banner 1706 'ovsdb-query.at:3' \
  "queries on scalars" "                             " 79
at_xfail=no
(
  $as_echo "1706. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-query.at:3: test-ovsdb query \\
    '{\"columns\":
        {\"i\": {\"type\": \"integer\"},
         \"r\": {\"type\": \"real\"},
         \"b\": {\"type\": \"boolean\"},
	 \"s\": {\"type\": \"string\"},
         \"u\": {\"type\": \"uuid\"}}}' \\
    '[{\"i\": 0,
       \"r\": 0.5,
       \"b\": true,
       \"s\": \"a\",
       \"u\": [\"uuid\", \"b10d28f7-af18-4a67-9e78-2a6394516c59\"]},
      {\"i\": 1,
       \"r\": 1.5,
       \"b\": false,
       \"s\": \"b\",
       \"u\": [\"uuid\", \"9179ca6d-6d65-400a-b455-3ad92783a099\"]},
      {\"i\": 2,
       \"r\": 2.5,
       \"b\": true,
       \"s\": \"c\",
       \"u\": [\"uuid\", \"ad0fa355-8b84-4a36-a4b5-b2c1bfd91758\"]},
      {\"i\": 3,
       \"r\": 3.5,
       \"b\": false,
       \"s\": \"d\",
       \"u\": [\"uuid\", \"62315898-64e0-40b9-b26f-ff74225303e6\"]},
      {\"i\": 4,
       \"r\": 4.5,
       \"b\": true,
       \"s\": \"e\",
       \"u\": [\"uuid\", \"4a5127e2-0256-4a72-a7dc-6246213967c7\"]}]' \\
    '[[],
      [[\"i\", \"==\", 0]],
      [[\"i\", \"!=\", 1]],
      [[\"i\", \"<\", 2]],
      [[\"i\", \"<=\", 3]],
      [[\"i\", \">\", 2]],
      [[\"i\", \">=\", 4]],
      [[\"i\", \"includes\", 3]],
      [[\"i\", \"excludes\", 2]],
      [[\"r\", \"==\", 0.5]],
      [[\"r\", \"!=\", 1.5]],
      [[\"r\", \"<\", 2.5]],
      [[\"r\", \"<=\", 3.5]],
      [[\"r\", \">\", 4.5]],
      [[\"r\", \">=\", 5.5]],
      [[\"r\", \"includes\", 1]],
      [[\"r\", \"excludes\", 3]],
      [[\"b\", \"==\", true]],
      [[\"b\", \"!=\", true]],
      [[\"b\", \"includes\", false]],
      [[\"b\", \"excludes\", true]],
      [[\"s\", \"==\", \"a\"]],
      [[\"s\", \"!=\", \"b\"]],
      [[\"s\", \"includes\", \"c\"]],
      [[\"s\", \"excludes\", \"d\"]],
      [[\"u\", \"==\", [\"uuid\", \"b10d28f7-af18-4a67-9e78-2a6394516c59\"]]],
      [[\"u\", \"!=\", [\"uuid\", \"9179ca6d-6d65-400a-b455-3ad92783a099\"]]],
      [[\"u\", \"includes\",[\"uuid\", \"ad0fa355-8b84-4a36-a4b5-b2c1bfd91758\"]]]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-query.at:3"
( $at_check_trace; test-ovsdb query \
    '{"columns":
        {"i": {"type": "integer"},
         "r": {"type": "real"},
         "b": {"type": "boolean"},
	 "s": {"type": "string"},
         "u": {"type": "uuid"}}}' \
    '[{"i": 0,
       "r": 0.5,
       "b": true,
       "s": "a",
       "u": ["uuid", "b10d28f7-af18-4a67-9e78-2a6394516c59"]},
      {"i": 1,
       "r": 1.5,
       "b": false,
       "s": "b",
       "u": ["uuid", "9179ca6d-6d65-400a-b455-3ad92783a099"]},
      {"i": 2,
       "r": 2.5,
       "b": true,
       "s": "c",
       "u": ["uuid", "ad0fa355-8b84-4a36-a4b5-b2c1bfd91758"]},
      {"i": 3,
       "r": 3.5,
       "b": false,
       "s": "d",
       "u": ["uuid", "62315898-64e0-40b9-b26f-ff74225303e6"]},
      {"i": 4,
       "r": 4.5,
       "b": true,
       "s": "e",
       "u": ["uuid", "4a5127e2-0256-4a72-a7dc-6246213967c7"]}]' \
    '[[],
      [["i", "==", 0]],
      [["i", "!=", 1]],
      [["i", "<", 2]],
      [["i", "<=", 3]],
      [["i", ">", 2]],
      [["i", ">=", 4]],
      [["i", "includes", 3]],
      [["i", "excludes", 2]],
      [["r", "==", 0.5]],
      [["r", "!=", 1.5]],
      [["r", "<", 2.5]],
      [["r", "<=", 3.5]],
      [["r", ">", 4.5]],
      [["r", ">=", 5.5]],
      [["r", "includes", 1]],
      [["r", "excludes", 3]],
      [["b", "==", true]],
      [["b", "!=", true]],
      [["b", "includes", false]],
      [["b", "excludes", true]],
      [["s", "==", "a"]],
      [["s", "!=", "b"]],
      [["s", "includes", "c"]],
      [["s", "excludes", "d"]],
      [["u", "==", ["uuid", "b10d28f7-af18-4a67-9e78-2a6394516c59"]]],
      [["u", "!=", ["uuid", "9179ca6d-6d65-400a-b455-3ad92783a099"]]],
      [["u", "includes",["uuid", "ad0fa355-8b84-4a36-a4b5-b2c1bfd91758"]]]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "query  0: 11111
query  1: 1----
query  2: 1-111
query  3: 11---
query  4: 1111-
query  5: ---11
query  6: ----1
query  7: ---1-
query  8: 11-11
query  9: 1----
query 10: 1-111
query 11: 11---
query 12: 1111-
query 13: -----
query 14: -----
query 15: -----
query 16: 11111
query 17: 1-1-1
query 18: -1-1-
query 19: -1-1-
query 20: -1-1-
query 21: 1----
query 22: 1-111
query 23: --1--
query 24: 111-1
query 25: 1----
query 26: 1-111
query 27: --1--
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-query.at:3"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1706
#AT_START_1707
at_fn_group_banner 1707 'ovsdb-query.at:95' \
  "queries on sets" "                                " 79
at_xfail=no
(
  $as_echo "1707. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-query.at:95: test-ovsdb query \\
    '{\"columns\": {\"i\": {\"type\": {\"key\": \"integer\", \"min\": 0, \"max\": \"unlimited\"}}}}' \\
    '[{\"i\": [\"set\", []]},
      {\"i\": [\"set\", [0]]},
      {\"i\": [\"set\", [1]]},
      {\"i\": [\"set\", [0, 1]]},
      {\"i\": [\"set\", [2]]},
      {\"i\": [\"set\", [2, 0]]},
      {\"i\": [\"set\", [2, 1]]},
      {\"i\": [\"set\", [2, 1, 0]]}]' \\
    '[[],
      [[\"i\", \"==\", [\"set\", []]]],
      [[\"i\", \"==\", [\"set\", [0]]]],
      [[\"i\", \"==\", [\"set\", [1]]]],
      [[\"i\", \"==\", [\"set\", [0, 1]]]],
      [[\"i\", \"==\", [\"set\", [2]]]],
      [[\"i\", \"==\", [\"set\", [2, 0]]]],
      [[\"i\", \"==\", [\"set\", [2, 1]]]],
      [[\"i\", \"==\", [\"set\", [2, 1, 0]]]],
      [[\"i\", \"!=\", [\"set\", []]]],
      [[\"i\", \"!=\", [\"set\", [0]]]],
      [[\"i\", \"!=\", [\"set\", [1]]]],
      [[\"i\", \"!=\", [\"set\", [0, 1]]]],
      [[\"i\", \"!=\", [\"set\", [2]]]],
      [[\"i\", \"!=\", [\"set\", [2, 0]]]],
      [[\"i\", \"!=\", [\"set\", [2, 1]]]],
      [[\"i\", \"!=\", [\"set\", [2, 1, 0]]]],
      [[\"i\", \"includes\", [\"set\", []]]],
      [[\"i\", \"includes\", [\"set\", [0]]]],
      [[\"i\", \"includes\", [\"set\", [1]]]],
      [[\"i\", \"includes\", [\"set\", [0, 1]]]],
      [[\"i\", \"includes\", [\"set\", [2]]]],
      [[\"i\", \"includes\", [\"set\", [2, 0]]]],
      [[\"i\", \"includes\", [\"set\", [2, 1]]]],
      [[\"i\", \"includes\", [\"set\", [2, 1, 0]]]],
      [[\"i\", \"excludes\", [\"set\", []]]],
      [[\"i\", \"excludes\", [\"set\", [0]]]],
      [[\"i\", \"excludes\", [\"set\", [1]]]],
      [[\"i\", \"excludes\", [\"set\", [0, 1]]]],
      [[\"i\", \"excludes\", [\"set\", [2]]]],
      [[\"i\", \"excludes\", [\"set\", [2, 0]]]],
      [[\"i\", \"excludes\", [\"set\", [2, 1]]]],
      [[\"i\", \"excludes\", [\"set\", [2, 1, 0]]]]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-query.at:95"
( $at_check_trace; test-ovsdb query \
    '{"columns": {"i": {"type": {"key": "integer", "min": 0, "max": "unlimited"}}}}' \
    '[{"i": ["set", []]},
      {"i": ["set", [0]]},
      {"i": ["set", [1]]},
      {"i": ["set", [0, 1]]},
      {"i": ["set", [2]]},
      {"i": ["set", [2, 0]]},
      {"i": ["set", [2, 1]]},
      {"i": ["set", [2, 1, 0]]}]' \
    '[[],
      [["i", "==", ["set", []]]],
      [["i", "==", ["set", [0]]]],
      [["i", "==", ["set", [1]]]],
      [["i", "==", ["set", [0, 1]]]],
      [["i", "==", ["set", [2]]]],
      [["i", "==", ["set", [2, 0]]]],
      [["i", "==", ["set", [2, 1]]]],
      [["i", "==", ["set", [2, 1, 0]]]],
      [["i", "!=", ["set", []]]],
      [["i", "!=", ["set", [0]]]],
      [["i", "!=", ["set", [1]]]],
      [["i", "!=", ["set", [0, 1]]]],
      [["i", "!=", ["set", [2]]]],
      [["i", "!=", ["set", [2, 0]]]],
      [["i", "!=", ["set", [2, 1]]]],
      [["i", "!=", ["set", [2, 1, 0]]]],
      [["i", "includes", ["set", []]]],
      [["i", "includes", ["set", [0]]]],
      [["i", "includes", ["set", [1]]]],
      [["i", "includes", ["set", [0, 1]]]],
      [["i", "includes", ["set", [2]]]],
      [["i", "includes", ["set", [2, 0]]]],
      [["i", "includes", ["set", [2, 1]]]],
      [["i", "includes", ["set", [2, 1, 0]]]],
      [["i", "excludes", ["set", []]]],
      [["i", "excludes", ["set", [0]]]],
      [["i", "excludes", ["set", [1]]]],
      [["i", "excludes", ["set", [0, 1]]]],
      [["i", "excludes", ["set", [2]]]],
      [["i", "excludes", ["set", [2, 0]]]],
      [["i", "excludes", ["set", [2, 1]]]],
      [["i", "excludes", ["set", [2, 1, 0]]]]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "query  0: 11111 111
query  1: 1---- ---
query  2: -1--- ---
query  3: --1-- ---
query  4: ---1- ---
query  5: ----1 ---
query  6: ----- 1--
query  7: ----- -1-
query  8: ----- --1
query  9: -1111 111
query 10: 1-111 111
query 11: 11-11 111
query 12: 111-1 111
query 13: 1111- 111
query 14: 11111 -11
query 15: 11111 1-1
query 16: 11111 11-
query 17: 11111 111
query 18: -1-1- 1-1
query 19: --11- -11
query 20: ---1- --1
query 21: ----1 111
query 22: ----- 1-1
query 23: ----- -11
query 24: ----- --1
query 25: 11111 111
query 26: 1-1-1 -1-
query 27: 11--1 1--
query 28: 1---1 ---
query 29: 1111- ---
query 30: 1-1-- ---
query 31: 11--- ---
query 32: 1---- ---
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-query.at:95"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1707
#AT_START_1708
at_fn_group_banner 1708 'ovsdb-query.at:176' \
  "queries on maps (1)" "                            " 79
at_xfail=no
(
  $as_echo "1708. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-query.at:176: test-ovsdb query \\
    '{\"columns\": {\"i\": {\"type\": {\"key\": \"integer\",
                                 \"value\": \"boolean\",
                                 \"min\": 0,
                                 \"max\": \"unlimited\"}}}}' \\
    '[{\"i\": [\"map\", []]},
      {\"i\": [\"map\", [[0, true]]]},
      {\"i\": [\"map\", [[1, false]]]},
      {\"i\": [\"map\", [[0, true], [1, false]]]},
      {\"i\": [\"map\", [[2, true]]]},
      {\"i\": [\"map\", [[2, true], [0, true]]]},
      {\"i\": [\"map\", [[2, true], [1, false]]]},
      {\"i\": [\"map\", [[2, true], [1, false], [0, true]]]}]' \\
    '[[],
      [[\"i\", \"==\", [\"map\", []]]],
      [[\"i\", \"==\", [\"map\", [[0, true]]]]],
      [[\"i\", \"==\", [\"map\", [[1, false]]]]],
      [[\"i\", \"==\", [\"map\", [[0, true], [1, false]]]]],
      [[\"i\", \"==\", [\"map\", [[2, true]]]]],
      [[\"i\", \"==\", [\"map\", [[2, true], [0, true]]]]],
      [[\"i\", \"==\", [\"map\", [[2, true], [1, false]]]]],
      [[\"i\", \"==\", [\"map\", [[2, true], [1, false], [0, true]]]]],
      [[\"i\", \"!=\", [\"map\", []]]],
      [[\"i\", \"!=\", [\"map\", [[0, true]]]]],
      [[\"i\", \"!=\", [\"map\", [[1, false]]]]],
      [[\"i\", \"!=\", [\"map\", [[0, true], [1, false]]]]],
      [[\"i\", \"!=\", [\"map\", [[2, true]]]]],
      [[\"i\", \"!=\", [\"map\", [[2, true], [0, true]]]]],
      [[\"i\", \"!=\", [\"map\", [[2, true], [1, false]]]]],
      [[\"i\", \"!=\", [\"map\", [[2, true], [1, false], [0, true]]]]],
      [[\"i\", \"includes\", [\"map\", []]]],
      [[\"i\", \"includes\", [\"map\", [[0, true]]]]],
      [[\"i\", \"includes\", [\"map\", [[1, false]]]]],
      [[\"i\", \"includes\", [\"map\", [[0, true], [1, false]]]]],
      [[\"i\", \"includes\", [\"map\", [[2, true]]]]],
      [[\"i\", \"includes\", [\"map\", [[2, true], [0, true]]]]],
      [[\"i\", \"includes\", [\"map\", [[2, true], [1, false]]]]],
      [[\"i\", \"includes\", [\"map\", [[2, true], [1, false], [0, true]]]]],
      [[\"i\", \"excludes\", [\"map\", []]]],
      [[\"i\", \"excludes\", [\"map\", [[0, true]]]]],
      [[\"i\", \"excludes\", [\"map\", [[1, false]]]]],
      [[\"i\", \"excludes\", [\"map\", [[0, true], [1, false]]]]],
      [[\"i\", \"excludes\", [\"map\", [[2, true]]]]],
      [[\"i\", \"excludes\", [\"map\", [[2, true], [0, true]]]]],
      [[\"i\", \"excludes\", [\"map\", [[2, true], [1, false]]]]],
      [[\"i\", \"excludes\", [\"map\", [[2, true], [1, false], [0, true]]]]]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-query.at:176"
( $at_check_trace; test-ovsdb query \
    '{"columns": {"i": {"type": {"key": "integer",
                                 "value": "boolean",
                                 "min": 0,
                                 "max": "unlimited"}}}}' \
    '[{"i": ["map", []]},
      {"i": ["map", [[0, true]]]},
      {"i": ["map", [[1, false]]]},
      {"i": ["map", [[0, true], [1, false]]]},
      {"i": ["map", [[2, true]]]},
      {"i": ["map", [[2, true], [0, true]]]},
      {"i": ["map", [[2, true], [1, false]]]},
      {"i": ["map", [[2, true], [1, false], [0, true]]]}]' \
    '[[],
      [["i", "==", ["map", []]]],
      [["i", "==", ["map", [[0, true]]]]],
      [["i", "==", ["map", [[1, false]]]]],
      [["i", "==", ["map", [[0, true], [1, false]]]]],
      [["i", "==", ["map", [[2, true]]]]],
      [["i", "==", ["map", [[2, true], [0, true]]]]],
      [["i", "==", ["map", [[2, true], [1, false]]]]],
      [["i", "==", ["map", [[2, true], [1, false], [0, true]]]]],
      [["i", "!=", ["map", []]]],
      [["i", "!=", ["map", [[0, true]]]]],
      [["i", "!=", ["map", [[1, false]]]]],
      [["i", "!=", ["map", [[0, true], [1, false]]]]],
      [["i", "!=", ["map", [[2, true]]]]],
      [["i", "!=", ["map", [[2, true], [0, true]]]]],
      [["i", "!=", ["map", [[2, true], [1, false]]]]],
      [["i", "!=", ["map", [[2, true], [1, false], [0, true]]]]],
      [["i", "includes", ["map", []]]],
      [["i", "includes", ["map", [[0, true]]]]],
      [["i", "includes", ["map", [[1, false]]]]],
      [["i", "includes", ["map", [[0, true], [1, false]]]]],
      [["i", "includes", ["map", [[2, true]]]]],
      [["i", "includes", ["map", [[2, true], [0, true]]]]],
      [["i", "includes", ["map", [[2, true], [1, false]]]]],
      [["i", "includes", ["map", [[2, true], [1, false], [0, true]]]]],
      [["i", "excludes", ["map", []]]],
      [["i", "excludes", ["map", [[0, true]]]]],
      [["i", "excludes", ["map", [[1, false]]]]],
      [["i", "excludes", ["map", [[0, true], [1, false]]]]],
      [["i", "excludes", ["map", [[2, true]]]]],
      [["i", "excludes", ["map", [[2, true], [0, true]]]]],
      [["i", "excludes", ["map", [[2, true], [1, false]]]]],
      [["i", "excludes", ["map", [[2, true], [1, false], [0, true]]]]]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "query  0: 11111 111
query  1: 1---- ---
query  2: -1--- ---
query  3: --1-- ---
query  4: ---1- ---
query  5: ----1 ---
query  6: ----- 1--
query  7: ----- -1-
query  8: ----- --1
query  9: -1111 111
query 10: 1-111 111
query 11: 11-11 111
query 12: 111-1 111
query 13: 1111- 111
query 14: 11111 -11
query 15: 11111 1-1
query 16: 11111 11-
query 17: 11111 111
query 18: -1-1- 1-1
query 19: --11- -11
query 20: ---1- --1
query 21: ----1 111
query 22: ----- 1-1
query 23: ----- -11
query 24: ----- --1
query 25: 11111 111
query 26: 1-1-1 -1-
query 27: 11--1 1--
query 28: 1---1 ---
query 29: 1111- ---
query 30: 1-1-- ---
query 31: 11--- ---
query 32: 1---- ---
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-query.at:176"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1708
#AT_START_1709
at_fn_group_banner 1709 'ovsdb-query.at:260' \
  "queries on maps (2)" "                            " 79
at_xfail=no
(
  $as_echo "1709. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-query.at:260: test-ovsdb query \\
    '{\"columns\": {\"i\": {\"type\": {\"key\": \"integer\",
                                 \"value\": \"boolean\",
                                 \"min\": 0,
                                 \"max\": \"unlimited\"}}}}' \\
    '[{\"i\": [\"map\", []]},
      {\"i\": [\"map\", [[0, true]]]},
      {\"i\": [\"map\", [[0, false]]]},
      {\"i\": [\"map\", [[1, false]]]},
      {\"i\": [\"map\", [[1, true]]]},

      {\"i\": [\"map\", [[0, true], [1, false]]]},
      {\"i\": [\"map\", [[0, true], [1, true]]]},
      {\"i\": [\"map\", [[2, true]]]},
      {\"i\": [\"map\", [[2, false]]]},
      {\"i\": [\"map\", [[2, true], [0, true]]]},

      {\"i\": [\"map\", [[2, false], [0, true]]]},
      {\"i\": [\"map\", [[2, true], [1, false]]]},
      {\"i\": [\"map\", [[2, true], [1, true]]]},
      {\"i\": [\"map\", [[2, true], [1, false], [0, true]]]},
      {\"i\": [\"map\", [[2, true], [1, false], [0, false]]]}]' \\
    '[[],
      [[\"i\", \"==\", [\"map\", []]]],
      [[\"i\", \"==\", [\"map\", [[0, true]]]]],
      [[\"i\", \"==\", [\"map\", [[1, false]]]]],
      [[\"i\", \"==\", [\"map\", [[0, true], [1, false]]]]],
      [[\"i\", \"==\", [\"map\", [[2, true]]]]],
      [[\"i\", \"==\", [\"map\", [[2, true], [0, true]]]]],
      [[\"i\", \"==\", [\"map\", [[2, true], [1, false]]]]],
      [[\"i\", \"==\", [\"map\", [[2, true], [1, false], [0, true]]]]],
      [[\"i\", \"!=\", [\"map\", []]]],
      [[\"i\", \"!=\", [\"map\", [[0, true]]]]],
      [[\"i\", \"!=\", [\"map\", [[1, false]]]]],
      [[\"i\", \"!=\", [\"map\", [[0, true], [1, false]]]]],
      [[\"i\", \"!=\", [\"map\", [[2, true]]]]],
      [[\"i\", \"!=\", [\"map\", [[2, true], [0, true]]]]],
      [[\"i\", \"!=\", [\"map\", [[2, true], [1, false]]]]],
      [[\"i\", \"!=\", [\"map\", [[2, true], [1, false], [0, true]]]]],
      [[\"i\", \"includes\", [\"map\", []]]],
      [[\"i\", \"includes\", [\"map\", [[0, true]]]]],
      [[\"i\", \"includes\", [\"map\", [[1, false]]]]],
      [[\"i\", \"includes\", [\"map\", [[0, true], [1, false]]]]],
      [[\"i\", \"includes\", [\"map\", [[2, true]]]]],
      [[\"i\", \"includes\", [\"map\", [[2, true], [0, true]]]]],
      [[\"i\", \"includes\", [\"map\", [[2, true], [1, false]]]]],
      [[\"i\", \"includes\", [\"map\", [[2, true], [1, false], [0, true]]]]],
      [[\"i\", \"excludes\", [\"map\", []]]],
      [[\"i\", \"excludes\", [\"map\", [[0, true]]]]],
      [[\"i\", \"excludes\", [\"map\", [[1, false]]]]],
      [[\"i\", \"excludes\", [\"map\", [[0, true], [1, false]]]]],
      [[\"i\", \"excludes\", [\"map\", [[2, true]]]]],
      [[\"i\", \"excludes\", [\"map\", [[2, true], [0, true]]]]],
      [[\"i\", \"excludes\", [\"map\", [[2, true], [1, false]]]]],
      [[\"i\", \"excludes\", [\"map\", [[2, true], [1, false], [0, true]]]]]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-query.at:260"
( $at_check_trace; test-ovsdb query \
    '{"columns": {"i": {"type": {"key": "integer",
                                 "value": "boolean",
                                 "min": 0,
                                 "max": "unlimited"}}}}' \
    '[{"i": ["map", []]},
      {"i": ["map", [[0, true]]]},
      {"i": ["map", [[0, false]]]},
      {"i": ["map", [[1, false]]]},
      {"i": ["map", [[1, true]]]},

      {"i": ["map", [[0, true], [1, false]]]},
      {"i": ["map", [[0, true], [1, true]]]},
      {"i": ["map", [[2, true]]]},
      {"i": ["map", [[2, false]]]},
      {"i": ["map", [[2, true], [0, true]]]},

      {"i": ["map", [[2, false], [0, true]]]},
      {"i": ["map", [[2, true], [1, false]]]},
      {"i": ["map", [[2, true], [1, true]]]},
      {"i": ["map", [[2, true], [1, false], [0, true]]]},
      {"i": ["map", [[2, true], [1, false], [0, false]]]}]' \
    '[[],
      [["i", "==", ["map", []]]],
      [["i", "==", ["map", [[0, true]]]]],
      [["i", "==", ["map", [[1, false]]]]],
      [["i", "==", ["map", [[0, true], [1, false]]]]],
      [["i", "==", ["map", [[2, true]]]]],
      [["i", "==", ["map", [[2, true], [0, true]]]]],
      [["i", "==", ["map", [[2, true], [1, false]]]]],
      [["i", "==", ["map", [[2, true], [1, false], [0, true]]]]],
      [["i", "!=", ["map", []]]],
      [["i", "!=", ["map", [[0, true]]]]],
      [["i", "!=", ["map", [[1, false]]]]],
      [["i", "!=", ["map", [[0, true], [1, false]]]]],
      [["i", "!=", ["map", [[2, true]]]]],
      [["i", "!=", ["map", [[2, true], [0, true]]]]],
      [["i", "!=", ["map", [[2, true], [1, false]]]]],
      [["i", "!=", ["map", [[2, true], [1, false], [0, true]]]]],
      [["i", "includes", ["map", []]]],
      [["i", "includes", ["map", [[0, true]]]]],
      [["i", "includes", ["map", [[1, false]]]]],
      [["i", "includes", ["map", [[0, true], [1, false]]]]],
      [["i", "includes", ["map", [[2, true]]]]],
      [["i", "includes", ["map", [[2, true], [0, true]]]]],
      [["i", "includes", ["map", [[2, true], [1, false]]]]],
      [["i", "includes", ["map", [[2, true], [1, false], [0, true]]]]],
      [["i", "excludes", ["map", []]]],
      [["i", "excludes", ["map", [[0, true]]]]],
      [["i", "excludes", ["map", [[1, false]]]]],
      [["i", "excludes", ["map", [[0, true], [1, false]]]]],
      [["i", "excludes", ["map", [[2, true]]]]],
      [["i", "excludes", ["map", [[2, true], [0, true]]]]],
      [["i", "excludes", ["map", [[2, true], [1, false]]]]],
      [["i", "excludes", ["map", [[2, true], [1, false], [0, true]]]]]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "query  0: 11111 11111 11111
query  1: 1---- ----- -----
query  2: -1--- ----- -----
query  3: ---1- ----- -----
query  4: ----- 1---- -----
query  5: ----- --1-- -----
query  6: ----- ----1 -----
query  7: ----- ----- -1---
query  8: ----- ----- ---1-
query  9: -1111 11111 11111
query 10: 1-111 11111 11111
query 11: 111-1 11111 11111
query 12: 11111 -1111 11111
query 13: 11111 11-11 11111
query 14: 11111 1111- 11111
query 15: 11111 11111 1-111
query 16: 11111 11111 111-1
query 17: 11111 11111 11111
query 18: -1--- 11--1 1--1-
query 19: ---1- 1---- -1-11
query 20: ----- 1---- ---1-
query 21: ----- --1-1 -1111
query 22: ----- ----1 ---1-
query 23: ----- ----- -1-11
query 24: ----- ----- ---1-
query 25: 11111 11111 11111
query 26: 1-111 --11- -11-1
query 27: 111-1 -1111 1-1--
query 28: 1-1-1 --11- --1--
query 29: 11111 11-1- 1----
query 30: 1-111 ---1- -----
query 31: 111-1 -1-1- 1----
query 32: 1-1-1 ---1- -----
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-query.at:260"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1709
#AT_START_1710
at_fn_group_banner 1710 'ovsdb-query.at:351' \
  "UUID-distinct queries on scalars" "               " 79
at_xfail=no
(
  $as_echo "1710. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-query.at:351: test-ovsdb query-distinct \\
    '{\"columns\":
        {\"i\": {\"type\": \"integer\"},
         \"r\": {\"type\": \"real\"},
         \"b\": {\"type\": \"boolean\"},
	 \"s\": {\"type\": \"string\"},
         \"u\": {\"type\": \"uuid\"}}}' \\
    '[{\"i\": 0,
       \"r\": 0.5,
       \"b\": true,
       \"s\": \"a\",
       \"u\": [\"uuid\", \"b10d28f7-af18-4a67-9e78-2a6394516c59\"]},
      {\"i\": 1,
       \"r\": 1.5,
       \"b\": false,
       \"s\": \"b\",
       \"u\": [\"uuid\", \"9179ca6d-6d65-400a-b455-3ad92783a099\"]},
      {\"i\": 2,
       \"r\": 2.5,
       \"b\": true,
       \"s\": \"c\",
       \"u\": [\"uuid\", \"ad0fa355-8b84-4a36-a4b5-b2c1bfd91758\"]},
      {\"i\": 3,
       \"r\": 3.5,
       \"b\": false,
       \"s\": \"d\",
       \"u\": [\"uuid\", \"62315898-64e0-40b9-b26f-ff74225303e6\"]},
      {\"i\": 4,
       \"r\": 4.5,
       \"b\": true,
       \"s\": \"e\",
       \"u\": [\"uuid\", \"4a5127e2-0256-4a72-a7dc-6246213967c7\"]}]' \\
    '[[],
      [[\"i\", \"==\", 0]],
      [[\"i\", \"!=\", 1]],
      [[\"i\", \"<\", 2]],
      [[\"i\", \"<=\", 3]],
      [[\"i\", \">\", 2]],
      [[\"i\", \">=\", 4]],
      [[\"i\", \"includes\", 3]],
      [[\"i\", \"excludes\", 2]],
      [[\"r\", \"==\", 0.5]],
      [[\"r\", \"!=\", 1.5]],
      [[\"r\", \"<\", 2.5]],
      [[\"r\", \"<=\", 3.5]],
      [[\"r\", \">\", 4.5]],
      [[\"r\", \">=\", 5.5]],
      [[\"r\", \"includes\", 1]],
      [[\"r\", \"excludes\", 3]],
      [[\"b\", \"==\", true]],
      [[\"b\", \"!=\", true]],
      [[\"b\", \"includes\", false]],
      [[\"b\", \"excludes\", true]],
      [[\"s\", \"==\", \"a\"]],
      [[\"s\", \"!=\", \"b\"]],
      [[\"s\", \"includes\", \"c\"]],
      [[\"s\", \"excludes\", \"d\"]],
      [[\"u\", \"==\", [\"uuid\", \"b10d28f7-af18-4a67-9e78-2a6394516c59\"]]],
      [[\"u\", \"!=\", [\"uuid\", \"9179ca6d-6d65-400a-b455-3ad92783a099\"]]],
      [[\"u\", \"includes\",[\"uuid\", \"ad0fa355-8b84-4a36-a4b5-b2c1bfd91758\"]]]]' \\
    '[\"_uuid\"]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-query.at:351"
( $at_check_trace; test-ovsdb query-distinct \
    '{"columns":
        {"i": {"type": "integer"},
         "r": {"type": "real"},
         "b": {"type": "boolean"},
	 "s": {"type": "string"},
         "u": {"type": "uuid"}}}' \
    '[{"i": 0,
       "r": 0.5,
       "b": true,
       "s": "a",
       "u": ["uuid", "b10d28f7-af18-4a67-9e78-2a6394516c59"]},
      {"i": 1,
       "r": 1.5,
       "b": false,
       "s": "b",
       "u": ["uuid", "9179ca6d-6d65-400a-b455-3ad92783a099"]},
      {"i": 2,
       "r": 2.5,
       "b": true,
       "s": "c",
       "u": ["uuid", "ad0fa355-8b84-4a36-a4b5-b2c1bfd91758"]},
      {"i": 3,
       "r": 3.5,
       "b": false,
       "s": "d",
       "u": ["uuid", "62315898-64e0-40b9-b26f-ff74225303e6"]},
      {"i": 4,
       "r": 4.5,
       "b": true,
       "s": "e",
       "u": ["uuid", "4a5127e2-0256-4a72-a7dc-6246213967c7"]}]' \
    '[[],
      [["i", "==", 0]],
      [["i", "!=", 1]],
      [["i", "<", 2]],
      [["i", "<=", 3]],
      [["i", ">", 2]],
      [["i", ">=", 4]],
      [["i", "includes", 3]],
      [["i", "excludes", 2]],
      [["r", "==", 0.5]],
      [["r", "!=", 1.5]],
      [["r", "<", 2.5]],
      [["r", "<=", 3.5]],
      [["r", ">", 4.5]],
      [["r", ">=", 5.5]],
      [["r", "includes", 1]],
      [["r", "excludes", 3]],
      [["b", "==", true]],
      [["b", "!=", true]],
      [["b", "includes", false]],
      [["b", "excludes", true]],
      [["s", "==", "a"]],
      [["s", "!=", "b"]],
      [["s", "includes", "c"]],
      [["s", "excludes", "d"]],
      [["u", "==", ["uuid", "b10d28f7-af18-4a67-9e78-2a6394516c59"]]],
      [["u", "!=", ["uuid", "9179ca6d-6d65-400a-b455-3ad92783a099"]]],
      [["u", "includes",["uuid", "ad0fa355-8b84-4a36-a4b5-b2c1bfd91758"]]]]' \
    '["_uuid"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "query  0: abcde
query  1: a----
query  2: a-cde
query  3: ab---
query  4: abcd-
query  5: ---de
query  6: ----e
query  7: ---d-
query  8: ab-de
query  9: a----
query 10: a-cde
query 11: ab---
query 12: abcd-
query 13: -----
query 14: -----
query 15: -----
query 16: abcde
query 17: a-c-e
query 18: -b-d-
query 19: -b-d-
query 20: -b-d-
query 21: a----
query 22: a-cde
query 23: --c--
query 24: abc-e
query 25: a----
query 26: a-cde
query 27: --c--
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-query.at:351"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1710
#AT_START_1711
at_fn_group_banner 1711 'ovsdb-query.at:444' \
  "Boolean-distinct queries on scalars" "            " 79
at_xfail=no
(
  $as_echo "1711. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-query.at:444: test-ovsdb query-distinct \\
    '{\"columns\":
        {\"i\": {\"type\": \"integer\"},
         \"r\": {\"type\": \"real\"},
         \"b\": {\"type\": \"boolean\"},
	 \"s\": {\"type\": \"string\"},
         \"u\": {\"type\": \"uuid\"}}}' \\
    '[{\"i\": 0,
       \"r\": 0.5,
       \"b\": true,
       \"s\": \"a\",
       \"u\": [\"uuid\", \"b10d28f7-af18-4a67-9e78-2a6394516c59\"]},
      {\"i\": 1,
       \"r\": 1.5,
       \"b\": false,
       \"s\": \"b\",
       \"u\": [\"uuid\", \"9179ca6d-6d65-400a-b455-3ad92783a099\"]},
      {\"i\": 2,
       \"r\": 2.5,
       \"b\": true,
       \"s\": \"c\",
       \"u\": [\"uuid\", \"ad0fa355-8b84-4a36-a4b5-b2c1bfd91758\"]},
      {\"i\": 3,
       \"r\": 3.5,
       \"b\": false,
       \"s\": \"d\",
       \"u\": [\"uuid\", \"62315898-64e0-40b9-b26f-ff74225303e6\"]},
      {\"i\": 4,
       \"r\": 4.5,
       \"b\": true,
       \"s\": \"e\",
       \"u\": [\"uuid\", \"4a5127e2-0256-4a72-a7dc-6246213967c7\"]}]' \\
    '[[],
      [[\"i\", \"==\", 0]],
      [[\"i\", \"!=\", 1]],
      [[\"i\", \"<\", 2]],
      [[\"i\", \"<=\", 3]],
      [[\"i\", \">\", 2]],
      [[\"i\", \">=\", 4]],
      [[\"i\", \"includes\", 3]],
      [[\"i\", \"excludes\", 2]],
      [[\"r\", \"==\", 0.5]],
      [[\"r\", \"!=\", 1.5]],
      [[\"r\", \"<\", 2.5]],
      [[\"r\", \"<=\", 3.5]],
      [[\"r\", \">\", 4.5]],
      [[\"r\", \">=\", 5.5]],
      [[\"r\", \"includes\", 1]],
      [[\"r\", \"excludes\", 3]],
      [[\"b\", \"==\", true]],
      [[\"b\", \"!=\", true]],
      [[\"b\", \"includes\", false]],
      [[\"b\", \"excludes\", true]],
      [[\"s\", \"==\", \"a\"]],
      [[\"s\", \"!=\", \"b\"]],
      [[\"s\", \"includes\", \"c\"]],
      [[\"s\", \"excludes\", \"d\"]],
      [[\"u\", \"==\", [\"uuid\", \"b10d28f7-af18-4a67-9e78-2a6394516c59\"]]],
      [[\"u\", \"!=\", [\"uuid\", \"9179ca6d-6d65-400a-b455-3ad92783a099\"]]],
      [[\"u\", \"includes\",[\"uuid\", \"ad0fa355-8b84-4a36-a4b5-b2c1bfd91758\"]]]]' \\
    '[\"b\"]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-query.at:444"
( $at_check_trace; test-ovsdb query-distinct \
    '{"columns":
        {"i": {"type": "integer"},
         "r": {"type": "real"},
         "b": {"type": "boolean"},
	 "s": {"type": "string"},
         "u": {"type": "uuid"}}}' \
    '[{"i": 0,
       "r": 0.5,
       "b": true,
       "s": "a",
       "u": ["uuid", "b10d28f7-af18-4a67-9e78-2a6394516c59"]},
      {"i": 1,
       "r": 1.5,
       "b": false,
       "s": "b",
       "u": ["uuid", "9179ca6d-6d65-400a-b455-3ad92783a099"]},
      {"i": 2,
       "r": 2.5,
       "b": true,
       "s": "c",
       "u": ["uuid", "ad0fa355-8b84-4a36-a4b5-b2c1bfd91758"]},
      {"i": 3,
       "r": 3.5,
       "b": false,
       "s": "d",
       "u": ["uuid", "62315898-64e0-40b9-b26f-ff74225303e6"]},
      {"i": 4,
       "r": 4.5,
       "b": true,
       "s": "e",
       "u": ["uuid", "4a5127e2-0256-4a72-a7dc-6246213967c7"]}]' \
    '[[],
      [["i", "==", 0]],
      [["i", "!=", 1]],
      [["i", "<", 2]],
      [["i", "<=", 3]],
      [["i", ">", 2]],
      [["i", ">=", 4]],
      [["i", "includes", 3]],
      [["i", "excludes", 2]],
      [["r", "==", 0.5]],
      [["r", "!=", 1.5]],
      [["r", "<", 2.5]],
      [["r", "<=", 3.5]],
      [["r", ">", 4.5]],
      [["r", ">=", 5.5]],
      [["r", "includes", 1]],
      [["r", "excludes", 3]],
      [["b", "==", true]],
      [["b", "!=", true]],
      [["b", "includes", false]],
      [["b", "excludes", true]],
      [["s", "==", "a"]],
      [["s", "!=", "b"]],
      [["s", "includes", "c"]],
      [["s", "excludes", "d"]],
      [["u", "==", ["uuid", "b10d28f7-af18-4a67-9e78-2a6394516c59"]]],
      [["u", "!=", ["uuid", "9179ca6d-6d65-400a-b455-3ad92783a099"]]],
      [["u", "includes",["uuid", "ad0fa355-8b84-4a36-a4b5-b2c1bfd91758"]]]]' \
    '["b"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "query  0: ababa
query  1: a-a-a
query  2: ababa
query  3: ababa
query  4: ababa
query  5: ababa
query  6: a-a-a
query  7: -b-b-
query  8: ababa
query  9: a-a-a
query 10: ababa
query 11: ababa
query 12: ababa
query 13: -----
query 14: -----
query 15: -----
query 16: ababa
query 17: a-a-a
query 18: -b-b-
query 19: -b-b-
query 20: -b-b-
query 21: a-a-a
query 22: ababa
query 23: a-a-a
query 24: ababa
query 25: a-a-a
query 26: ababa
query 27: a-a-a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-query.at:444"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1711
#AT_START_1712
at_fn_group_banner 1712 'ovsdb-query.at:537' \
  "parse colunn set containing bad name" "           " 79
at_xfail=no
(
  $as_echo "1712. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-query.at:537: test-ovsdb query-distinct \\
    '{\"columns\": {\"i\": {\"type\": \"integer\"}}}' \\
    '[{\"i\": 0}]' \\
    '[[]]' \\
    '[\"i\", \"bad\"]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-query.at:537"
( $at_check_trace; test-ovsdb query-distinct \
    '{"columns": {"i": {"type": "integer"}}}' \
    '[{"i": 0}]' \
    '[[]]' \
    '["i", "bad"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-query.at:537"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-query.at:537: if grep -F -e \"bad is not a valid column name\" stderr
      then
        :
      else
        exit 99
      fi"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-query.at:537"
( $at_check_trace; if grep -F -e "bad is not a valid column name" stderr
      then
        :
      else
        exit 99
      fi
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-query.at:537"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1712
#AT_START_1713
at_fn_group_banner 1713 'ovsdb-transaction.at:3' \
  "empty table, empty transaction" "                 " 80
at_xfail=no
(
  $as_echo "1713. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-transaction.at:3: test-ovsdb transact \\
    '[\"print\"]' \\
    '[\"commit\"]' \\
    '[\"print\"]' \\
    '[\"abort\"]' \\
    '[\"print\"]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-transaction.at:3"
( $at_check_trace; test-ovsdb transact \
    '["print"]' \
    '["commit"]' \
    '["print"]' \
    '["abort"]' \
    '["print"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "print:
commit:
print:
abort:
print:
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-transaction.at:3"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1713
#AT_START_1714
at_fn_group_banner 1714 'ovsdb-transaction.at:17' \
  "nonempty table, empty transaction" "              " 80
at_xfail=no
(
  $as_echo "1714. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-transaction.at:17: test-ovsdb transact \\
    '[\"insert\", \"1\", \"2\", \"3\"]' \\
    '[\"insert\", \"2\", \"2\", \"3\"]' \\
    '[\"print\"]' \\
    '[\"commit\"]' \\
    '[\"print\"]' \\
    '[\"abort\"]' \\
    '[\"print\"]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-transaction.at:17"
( $at_check_trace; test-ovsdb transact \
    '["insert", "1", "2", "3"]' \
    '["insert", "2", "2", "3"]' \
    '["print"]' \
    '["commit"]' \
    '["print"]' \
    '["abort"]' \
    '["print"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "insert 1 2 3:
insert 2 2 3:
print:
1: i=2, j=3
2: i=2, j=3
commit:
print:
1: i=2, j=3
2: i=2, j=3
abort:
print:
1: i=2, j=3
2: i=2, j=3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-transaction.at:17"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1714
#AT_START_1715
at_fn_group_banner 1715 'ovsdb-transaction.at:41' \
  "insert, commit" "                                 " 80
at_xfail=no
(
  $as_echo "1715. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-transaction.at:41: test-ovsdb transact \\
    '[\"insert\", \"1\", \"2\", \"3\"]' \\
    '[\"insert\", \"2\", \"2\", \"3\"]' \\
    '[\"commit\"]' \\
    '[\"print\"]' \\
    '[\"insert\", \"3\", \"1\", \"2\"]' \\
    '[\"print\"]' \\
    '[\"commit\"]' \\
    '[\"print\"]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-transaction.at:41"
( $at_check_trace; test-ovsdb transact \
    '["insert", "1", "2", "3"]' \
    '["insert", "2", "2", "3"]' \
    '["commit"]' \
    '["print"]' \
    '["insert", "3", "1", "2"]' \
    '["print"]' \
    '["commit"]' \
    '["print"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "insert 1 2 3:
insert 2 2 3:
commit:
print:
1: i=2, j=3
2: i=2, j=3
insert 3 1 2:
print:
1: i=2, j=3
2: i=2, j=3
3: i=1, j=2
commit:
print:
1: i=2, j=3
2: i=2, j=3
3: i=1, j=2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-transaction.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1715
#AT_START_1716
at_fn_group_banner 1716 'ovsdb-transaction.at:70' \
  "insert, abort" "                                  " 80
at_xfail=no
(
  $as_echo "1716. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-transaction.at:70: test-ovsdb transact \\
    '[\"insert\", \"1\", \"2\", \"3\"]' \\
    '[\"insert\", \"2\", \"2\", \"3\"]' \\
    '[\"commit\"]' \\
    '[\"print\"]' \\
    '[\"insert\", \"3\", \"1\", \"2\"]' \\
    '[\"print\"]' \\
    '[\"abort\"]' \\
    '[\"print\"]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-transaction.at:70"
( $at_check_trace; test-ovsdb transact \
    '["insert", "1", "2", "3"]' \
    '["insert", "2", "2", "3"]' \
    '["commit"]' \
    '["print"]' \
    '["insert", "3", "1", "2"]' \
    '["print"]' \
    '["abort"]' \
    '["print"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "insert 1 2 3:
insert 2 2 3:
commit:
print:
1: i=2, j=3
2: i=2, j=3
insert 3 1 2:
print:
1: i=2, j=3
2: i=2, j=3
3: i=1, j=2
abort:
print:
1: i=2, j=3
2: i=2, j=3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-transaction.at:70"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1716
#AT_START_1717
at_fn_group_banner 1717 'ovsdb-transaction.at:98' \
  "modify, commit" "                                 " 80
at_xfail=no
(
  $as_echo "1717. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-transaction.at:98: test-ovsdb transact \\
    '[\"insert\", \"1\", \"2\", \"3\"]' \\
    '[\"insert\", \"2\", \"2\", \"3\"]' \\
    '[\"commit\"]' \\
    '[\"print\"]' \\
    '[\"modify\", \"2\", \"5\", \"-1\"]' \\
    '[\"modify\", \"1\", \"-1\", \"4\"]' \\
    '[\"print\"]' \\
    '[\"commit\"]' \\
    '[\"print\"]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-transaction.at:98"
( $at_check_trace; test-ovsdb transact \
    '["insert", "1", "2", "3"]' \
    '["insert", "2", "2", "3"]' \
    '["commit"]' \
    '["print"]' \
    '["modify", "2", "5", "-1"]' \
    '["modify", "1", "-1", "4"]' \
    '["print"]' \
    '["commit"]' \
    '["print"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "insert 1 2 3:
insert 2 2 3:
commit:
print:
1: i=2, j=3
2: i=2, j=3
modify 2 5 -1:
modify 1 -1 4:
print:
1: i=2, j=4
2: i=5, j=3
commit:
print:
1: i=2, j=4
2: i=5, j=3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-transaction.at:98"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1717
#AT_START_1718
at_fn_group_banner 1718 'ovsdb-transaction.at:127' \
  "modify, abort" "                                  " 80
at_xfail=no
(
  $as_echo "1718. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-transaction.at:127: test-ovsdb transact \\
    '[\"insert\", \"1\", \"2\", \"3\"]' \\
    '[\"insert\", \"2\", \"2\", \"3\"]' \\
    '[\"commit\"]' \\
    '[\"print\"]' \\
    '[\"modify\", \"2\", \"5\", \"-1\"]' \\
    '[\"modify\", \"1\", \"-1\", \"4\"]' \\
    '[\"print\"]' \\
    '[\"abort\"]' \\
    '[\"print\"]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-transaction.at:127"
( $at_check_trace; test-ovsdb transact \
    '["insert", "1", "2", "3"]' \
    '["insert", "2", "2", "3"]' \
    '["commit"]' \
    '["print"]' \
    '["modify", "2", "5", "-1"]' \
    '["modify", "1", "-1", "4"]' \
    '["print"]' \
    '["abort"]' \
    '["print"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "insert 1 2 3:
insert 2 2 3:
commit:
print:
1: i=2, j=3
2: i=2, j=3
modify 2 5 -1:
modify 1 -1 4:
print:
1: i=2, j=4
2: i=5, j=3
abort:
print:
1: i=2, j=3
2: i=2, j=3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-transaction.at:127"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1718
#AT_START_1719
at_fn_group_banner 1719 'ovsdb-transaction.at:156' \
  "delete, commit" "                                 " 80
at_xfail=no
(
  $as_echo "1719. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-transaction.at:156: test-ovsdb transact \\
    '[\"insert\", \"1\", \"2\", \"3\"]' \\
    '[\"insert\", \"2\", \"2\", \"3\"]' \\
    '[\"commit\"]' \\
    '[\"print\"]' \\
    '[\"delete\", \"1\"]' \\
    '[\"print\"]' \\
    '[\"commit\"]' \\
    '[\"print\"]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-transaction.at:156"
( $at_check_trace; test-ovsdb transact \
    '["insert", "1", "2", "3"]' \
    '["insert", "2", "2", "3"]' \
    '["commit"]' \
    '["print"]' \
    '["delete", "1"]' \
    '["print"]' \
    '["commit"]' \
    '["print"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "insert 1 2 3:
insert 2 2 3:
commit:
print:
1: i=2, j=3
2: i=2, j=3
delete 1:
print:
2: i=2, j=3
commit:
print:
2: i=2, j=3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-transaction.at:156"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1719
#AT_START_1720
at_fn_group_banner 1720 'ovsdb-transaction.at:181' \
  "delete, abort" "                                  " 80
at_xfail=no
(
  $as_echo "1720. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-transaction.at:181: test-ovsdb transact \\
    '[\"insert\", \"1\", \"2\", \"3\"]' \\
    '[\"insert\", \"2\", \"2\", \"3\"]' \\
    '[\"commit\"]' \\
    '[\"print\"]' \\
    '[\"delete\", \"1\"]' \\
    '[\"print\"]' \\
    '[\"abort\"]' \\
    '[\"print\"]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-transaction.at:181"
( $at_check_trace; test-ovsdb transact \
    '["insert", "1", "2", "3"]' \
    '["insert", "2", "2", "3"]' \
    '["commit"]' \
    '["print"]' \
    '["delete", "1"]' \
    '["print"]' \
    '["abort"]' \
    '["print"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "insert 1 2 3:
insert 2 2 3:
commit:
print:
1: i=2, j=3
2: i=2, j=3
delete 1:
print:
2: i=2, j=3
abort:
print:
1: i=2, j=3
2: i=2, j=3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-transaction.at:181"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1720
#AT_START_1721
at_fn_group_banner 1721 'ovsdb-transaction.at:207' \
  "modify, delete, commit" "                         " 80
at_xfail=no
(
  $as_echo "1721. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-transaction.at:207: test-ovsdb transact \\
    '[\"insert\", \"1\", \"2\", \"3\"]' \\
    '[\"insert\", \"2\", \"2\", \"3\"]' \\
    '[\"commit\"]' \\
    '[\"print\"]' \\
    '[\"modify\", \"1\", \"5\", \"6\"]' \\
    '[\"delete\", \"1\"]' \\
    '[\"print\"]' \\
    '[\"commit\"]' \\
    '[\"print\"]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-transaction.at:207"
( $at_check_trace; test-ovsdb transact \
    '["insert", "1", "2", "3"]' \
    '["insert", "2", "2", "3"]' \
    '["commit"]' \
    '["print"]' \
    '["modify", "1", "5", "6"]' \
    '["delete", "1"]' \
    '["print"]' \
    '["commit"]' \
    '["print"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "insert 1 2 3:
insert 2 2 3:
commit:
print:
1: i=2, j=3
2: i=2, j=3
modify 1 5 6:
delete 1:
print:
2: i=2, j=3
commit:
print:
2: i=2, j=3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-transaction.at:207"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1721
#AT_START_1722
at_fn_group_banner 1722 'ovsdb-transaction.at:234' \
  "modify, delete, abort" "                          " 80
at_xfail=no
(
  $as_echo "1722. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-transaction.at:234: test-ovsdb transact \\
    '[\"insert\", \"1\", \"2\", \"3\"]' \\
    '[\"insert\", \"2\", \"2\", \"3\"]' \\
    '[\"commit\"]' \\
    '[\"print\"]' \\
    '[\"modify\", \"1\", \"5\", \"6\"]' \\
    '[\"delete\", \"1\"]' \\
    '[\"print\"]' \\
    '[\"abort\"]' \\
    '[\"print\"]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-transaction.at:234"
( $at_check_trace; test-ovsdb transact \
    '["insert", "1", "2", "3"]' \
    '["insert", "2", "2", "3"]' \
    '["commit"]' \
    '["print"]' \
    '["modify", "1", "5", "6"]' \
    '["delete", "1"]' \
    '["print"]' \
    '["abort"]' \
    '["print"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "insert 1 2 3:
insert 2 2 3:
commit:
print:
1: i=2, j=3
2: i=2, j=3
modify 1 5 6:
delete 1:
print:
2: i=2, j=3
abort:
print:
1: i=2, j=3
2: i=2, j=3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-transaction.at:234"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1722
#AT_START_1723
at_fn_group_banner 1723 'ovsdb-transaction.at:262' \
  "insert, delete, commit" "                         " 80
at_xfail=no
(
  $as_echo "1723. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-transaction.at:262: test-ovsdb transact \\
    '[\"insert\", \"1\", \"2\", \"3\"]' \\
    '[\"insert\", \"2\", \"2\", \"3\"]' \\
    '[\"commit\"]' \\
    '[\"print\"]' \\
    '[\"insert\", \"3\", \"5\", \"6\"]' \\
    '[\"delete\", \"1\"]' \\
    '[\"delete\", \"3\"]' \\
    '[\"print\"]' \\
    '[\"commit\"]' \\
    '[\"print\"]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-transaction.at:262"
( $at_check_trace; test-ovsdb transact \
    '["insert", "1", "2", "3"]' \
    '["insert", "2", "2", "3"]' \
    '["commit"]' \
    '["print"]' \
    '["insert", "3", "5", "6"]' \
    '["delete", "1"]' \
    '["delete", "3"]' \
    '["print"]' \
    '["commit"]' \
    '["print"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "insert 1 2 3:
insert 2 2 3:
commit:
print:
1: i=2, j=3
2: i=2, j=3
insert 3 5 6:
delete 1:
delete 3:
print:
2: i=2, j=3
commit:
print:
2: i=2, j=3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-transaction.at:262"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1723
#AT_START_1724
at_fn_group_banner 1724 'ovsdb-transaction.at:291' \
  "insert, delete, abort" "                          " 80
at_xfail=no
(
  $as_echo "1724. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-transaction.at:291: test-ovsdb transact \\
    '[\"insert\", \"1\", \"2\", \"3\"]' \\
    '[\"insert\", \"2\", \"2\", \"3\"]' \\
    '[\"commit\"]' \\
    '[\"print\"]' \\
    '[\"insert\", \"3\", \"5\", \"6\"]' \\
    '[\"delete\", \"1\"]' \\
    '[\"delete\", \"3\"]' \\
    '[\"print\"]' \\
    '[\"abort\"]' \\
    '[\"print\"]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-transaction.at:291"
( $at_check_trace; test-ovsdb transact \
    '["insert", "1", "2", "3"]' \
    '["insert", "2", "2", "3"]' \
    '["commit"]' \
    '["print"]' \
    '["insert", "3", "5", "6"]' \
    '["delete", "1"]' \
    '["delete", "3"]' \
    '["print"]' \
    '["abort"]' \
    '["print"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "insert 1 2 3:
insert 2 2 3:
commit:
print:
1: i=2, j=3
2: i=2, j=3
insert 3 5 6:
delete 1:
delete 3:
print:
2: i=2, j=3
abort:
print:
1: i=2, j=3
2: i=2, j=3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-transaction.at:291"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1724
#AT_START_1725
at_fn_group_banner 1725 'ovsdb-transaction.at:322' \
  "insert, modify, delete, commit" "                 " 80
at_xfail=no
(
  $as_echo "1725. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-transaction.at:322: test-ovsdb transact \\
    '[\"insert\", \"1\", \"2\", \"3\"]' \\
    '[\"insert\", \"2\", \"2\", \"3\"]' \\
    '[\"commit\"]' \\
    '[\"print\"]' \\
    '[\"insert\", \"3\", \"5\", \"6\"]' \\
    '[\"delete\", \"1\"]' \\
    '[\"modify\", \"3\", \"7\", \"8\"]' \\
    '[\"delete\", \"3\"]' \\
    '[\"print\"]' \\
    '[\"commit\"]' \\
    '[\"print\"]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-transaction.at:322"
( $at_check_trace; test-ovsdb transact \
    '["insert", "1", "2", "3"]' \
    '["insert", "2", "2", "3"]' \
    '["commit"]' \
    '["print"]' \
    '["insert", "3", "5", "6"]' \
    '["delete", "1"]' \
    '["modify", "3", "7", "8"]' \
    '["delete", "3"]' \
    '["print"]' \
    '["commit"]' \
    '["print"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "insert 1 2 3:
insert 2 2 3:
commit:
print:
1: i=2, j=3
2: i=2, j=3
insert 3 5 6:
delete 1:
modify 3 7 8:
delete 3:
print:
2: i=2, j=3
commit:
print:
2: i=2, j=3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-transaction.at:322"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1725
#AT_START_1726
at_fn_group_banner 1726 'ovsdb-transaction.at:353' \
  "insert, modify, delete, abort" "                  " 80
at_xfail=no
(
  $as_echo "1726. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-transaction.at:353: test-ovsdb transact \\
    '[\"insert\", \"1\", \"2\", \"3\"]' \\
    '[\"insert\", \"2\", \"2\", \"3\"]' \\
    '[\"commit\"]' \\
    '[\"print\"]' \\
    '[\"insert\", \"3\", \"5\", \"6\"]' \\
    '[\"delete\", \"1\"]' \\
    '[\"modify\", \"3\", \"7\", \"8\"]' \\
    '[\"delete\", \"3\"]' \\
    '[\"print\"]' \\
    '[\"abort\"]' \\
    '[\"print\"]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-transaction.at:353"
( $at_check_trace; test-ovsdb transact \
    '["insert", "1", "2", "3"]' \
    '["insert", "2", "2", "3"]' \
    '["commit"]' \
    '["print"]' \
    '["insert", "3", "5", "6"]' \
    '["delete", "1"]' \
    '["modify", "3", "7", "8"]' \
    '["delete", "3"]' \
    '["print"]' \
    '["abort"]' \
    '["print"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "insert 1 2 3:
insert 2 2 3:
commit:
print:
1: i=2, j=3
2: i=2, j=3
insert 3 5 6:
delete 1:
modify 3 7 8:
delete 3:
print:
2: i=2, j=3
abort:
print:
1: i=2, j=3
2: i=2, j=3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-transaction.at:353"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1726
#AT_START_1727
at_fn_group_banner 1727 'ovsdb-transaction.at:385' \
  "deletes are aborted cleanly" "                    " 80
at_xfail=no
(
  $as_echo "1727. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-transaction.at:385: test-ovsdb transact \\
    '[\"insert\", \"1\", \"2\", \"3\"]' \\
    '[\"commit\"]' \\
    '[\"print\"]' \\
    '[\"delete\", \"1\"]' \\
    '[\"abort\"]' \\
    '[\"print\"]' \\
    '[\"delete\", \"1\"]' \\
    '[\"abort\"]' \\
    '[\"print\"]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-transaction.at:385"
( $at_check_trace; test-ovsdb transact \
    '["insert", "1", "2", "3"]' \
    '["commit"]' \
    '["print"]' \
    '["delete", "1"]' \
    '["abort"]' \
    '["print"]' \
    '["delete", "1"]' \
    '["abort"]' \
    '["print"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "insert 1 2 3:
commit:
print:
1: i=2, j=3
delete 1:
abort:
print:
1: i=2, j=3
delete 1:
abort:
print:
1: i=2, j=3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-transaction.at:385"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1727
#AT_START_1728
at_fn_group_banner 1728 'ovsdb-execution.at:147' \
  "block insert on read only DB" "                   " 81
at_xfail=no
(
  $as_echo "1728. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:147: test-ovsdb execute-readonly \"\`ordinal_schema\`\"  '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-execution.at:147"
( $at_check_trace; test-ovsdb execute-readonly "`ordinal_schema`"  '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:147"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:147: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-execution.at:147"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"details\":\"insert operation not allowed when database server is in read only mode\",\"error\":\"not allowed\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:147"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1728
#AT_START_1729
at_fn_group_banner 1729 'ovsdb-execution.at:156' \
  "allow select on read only DB" "                   " 81
at_xfail=no
(
  $as_echo "1729. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:156: test-ovsdb execute-readonly \"\`ordinal_schema\`\"  '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-execution.at:156"
( $at_check_trace; test-ovsdb execute-readonly "`ordinal_schema`"  '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:156"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:156: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-execution.at:156"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"rows\":[]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:156"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1729
#AT_START_1730
at_fn_group_banner 1730 'ovsdb-execution.at:185' \
  "uuid-name must be <id>" "                         " 81
at_xfail=no
(
  $as_echo "1730. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:185: test-ovsdb execute \"\`constraint_schema\`\"  '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {},
       \"uuid-name\": \"0\"}]'"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-execution.at:185"
( $at_check_trace; test-ovsdb execute "`constraint_schema`"  '["constraints",
      {"op": "insert",
       "table": "a",
       "row": {},
       "uuid-name": "0"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:185"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:185: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-execution.at:185"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"details\":\"Parsing ovsdb operation 1 of 1 failed: Type mismatch for member 'uuid-name'.\",\"error\":\"syntax error\",\"syntax\":\"{\\\"op\\\":\\\"insert\\\",\\\"row\\\":{},\\\"table\\\":\\\"a\\\",\\\"uuid-name\\\":\\\"0\\\"}\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:185"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1730
#AT_START_1731
at_fn_group_banner 1731 'ovsdb-execution.at:195' \
  "named-uuid must be <id>" "                        " 81
at_xfail=no
(
  $as_echo "1731. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:195: test-ovsdb execute \"\`constraint_schema\`\"  '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a2a\": [\"named-uuid\", \"0\"]}}]'"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-execution.at:195"
( $at_check_trace; test-ovsdb execute "`constraint_schema`"  '["constraints",
      {"op": "insert",
       "table": "a",
       "row": {"a2a": ["named-uuid", "0"]}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:195"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:195: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-execution.at:195"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"details\":\"named-uuid string is not a valid <id>\",\"error\":\"syntax error\",\"syntax\":\"[\\\"named-uuid\\\",\\\"0\\\"]\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:195"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1731
#AT_START_1732
at_fn_group_banner 1732 'ovsdb-execution.at:204' \
  "duplicate uuid-name not allowed" "                " 81
at_xfail=no
(
  $as_echo "1732. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:204: test-ovsdb execute \"\`ordinal_schema\`\"  '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {},
       \"uuid-name\": \"x\"},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {},
       \"uuid-name\": \"x\"}]'"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-execution.at:204"
( $at_check_trace; test-ovsdb execute "`ordinal_schema`"  '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {},
       "uuid-name": "x"},
      {"op": "insert",
       "table": "ordinals",
       "row": {},
       "uuid-name": "x"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:204"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:204: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-execution.at:204"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"details\":\"This \\\"uuid-name\\\" appeared on an earlier \\\"insert\\\" operation.\",\"error\":\"duplicate uuid-name\",\"syntax\":\"\\\"x\\\"\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:204"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1732
#AT_START_1733
at_fn_group_banner 1733 'ovsdb-execution.at:1140' \
  "insert default row, query table" "                " 81
at_xfail=no
(
  $as_echo "1733. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: test-ovsdb execute \"\`ordinal_schema\`\"  '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {}}]' '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-execution.at:1140"
( $at_check_trace; test-ovsdb execute "`ordinal_schema`"  '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {}}]' '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-execution.at:1140"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<1>\"],\"name\":\"\",\"number\":0}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1733
#AT_START_1734
at_fn_group_banner 1734 'ovsdb-execution.at:1140' \
  "insert row, query table" "                        " 81
at_xfail=no
(
  $as_echo "1734. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: test-ovsdb execute \"\`ordinal_schema\`\"  '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}}]' '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-execution.at:1140"
( $at_check_trace; test-ovsdb execute "`ordinal_schema`"  '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}}]' '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-execution.at:1140"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<1>\"],\"name\":\"zero\",\"number\":0}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1734
#AT_START_1735
at_fn_group_banner 1735 'ovsdb-execution.at:1140' \
  "insert rows, query by value" "                    " 81
at_xfail=no
(
  $as_echo "1735. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: test-ovsdb execute \"\`ordinal_schema\`\"  '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}}]' '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}}]' '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"zero\"]]}]' '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"one\"]]}]'"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-execution.at:1140"
( $at_check_trace; test-ovsdb execute "`ordinal_schema`"  '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}}]' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}}]' '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [["name", "==", "zero"]]}]' '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [["name", "==", "one"]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-execution.at:1140"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"zero\",\"number\":0}]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<3>\"],\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1735
#AT_START_1736
at_fn_group_banner 1736 'ovsdb-execution.at:1140' \
  "insert rows, query by named-uuid" "               " 81
at_xfail=no
(
  $as_echo "1736. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: test-ovsdb execute \"\`ordinal_schema\`\"  '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"second\"},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [[\"_uuid\", \"==\", [\"named-uuid\", \"first\"]]]},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [[\"_uuid\", \"==\", [\"named-uuid\", \"second\"]]]}]'"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-execution.at:1140"
( $at_check_trace; test-ovsdb execute "`ordinal_schema`"  '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "second"},
      {"op": "select",
       "table": "ordinals",
       "where": [["_uuid", "==", ["named-uuid", "first"]]]},
      {"op": "select",
       "table": "ordinals",
       "where": [["_uuid", "==", ["named-uuid", "second"]]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-execution.at:1140"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"zero\",\"number\":0}]},{\"rows\":[{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<3>\"],\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1736
#AT_START_1737
at_fn_group_banner 1737 'ovsdb-execution.at:1140' \
  "insert rows, update rows by value" "              " 81
at_xfail=no
(
  $as_echo "1737. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: test-ovsdb execute \"\`ordinal_schema\`\"  '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"}]' '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"first\"}]' '[\"ordinals\",
      {\"op\": \"update\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"zero\"]],
       \"row\": {\"name\": \"nought\"}}]' '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"sort\": [\"number\"]}]'"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-execution.at:1140"
( $at_check_trace; test-ovsdb execute "`ordinal_schema`"  '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]' '["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [["name", "==", "zero"]],
       "row": {"name": "nought"}}]' '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "sort": ["number"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-execution.at:1140"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"count\":1}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"nought\",\"number\":0},{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<3>\"],\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1737
#AT_START_1738
at_fn_group_banner 1738 'ovsdb-execution.at:1140' \
  "insert rows, mutate rows" "                       " 81
at_xfail=no
(
  $as_echo "1738. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: test-ovsdb execute \"\`ordinal_schema\`\"  '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"}]' '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"first\"}]' '[\"ordinals\",
      {\"op\": \"mutate\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"zero\"]],
       \"mutations\": [[\"number\", \"+=\", 2]]}]' '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"sort\": [\"number\"]}]'"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-execution.at:1140"
( $at_check_trace; test-ovsdb execute "`ordinal_schema`"  '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]' '["ordinals",
      {"op": "mutate",
       "table": "ordinals",
       "where": [["name", "==", "zero"]],
       "mutations": [["number", "+=", 2]]}]' '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "sort": ["number"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-execution.at:1140"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"count\":1}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"one\",\"number\":1},{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<3>\"],\"name\":\"zero\",\"number\":2}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1738
#AT_START_1739
at_fn_group_banner 1739 'ovsdb-execution.at:1140' \
  "insert rows, delete by named-uuid" "              " 81
at_xfail=no
(
  $as_echo "1739. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: test-ovsdb execute \"\`ordinal_schema\`\"  '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"second\"},
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": [[\"_uuid\", \"==\", [\"named-uuid\", \"first\"]]]},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\",\"number\"]}]'"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-execution.at:1140"
( $at_check_trace; test-ovsdb execute "`ordinal_schema`"  '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "second"},
      {"op": "delete",
       "table": "ordinals",
       "where": [["_uuid", "==", ["named-uuid", "first"]]]},
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "columns": ["name","number"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-execution.at:1140"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"count\":1},{\"rows\":[{\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1739
#AT_START_1740
at_fn_group_banner 1740 'ovsdb-execution.at:1140' \
  "insert rows, delete rows by value" "              " 81
at_xfail=no
(
  $as_echo "1740. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: test-ovsdb execute \"\`ordinal_schema\`\"  '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"}]' '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"first\"}]' '[\"ordinals\",
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"zero\"]]}]' '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-execution.at:1140"
( $at_check_trace; test-ovsdb execute "`ordinal_schema`"  '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]' '["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": [["name", "==", "zero"]]}]' '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-execution.at:1140"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"count\":1}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1740
#AT_START_1741
at_fn_group_banner 1741 'ovsdb-execution.at:1140' \
  "insert rows, delete by (non-matching) value" "    " 81
at_xfail=no
(
  $as_echo "1741. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: test-ovsdb execute \"\`ordinal_schema\`\"  '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"}]' '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"first\"}]' '[\"ordinals\",
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"nought\"]]}]' '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"sort\": [\"number\"]}]'"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-execution.at:1140"
( $at_check_trace; test-ovsdb execute "`ordinal_schema`"  '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]' '["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": [["name", "==", "nought"]]}]' '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "sort": ["number"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-execution.at:1140"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"count\":0}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"zero\",\"number\":0},{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<3>\"],\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1741
#AT_START_1742
at_fn_group_banner 1742 'ovsdb-execution.at:1140' \
  "insert rows, delete all" "                        " 81
at_xfail=no
(
  $as_echo "1742. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: test-ovsdb execute \"\`ordinal_schema\`\"  '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"second\"},
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": []},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\",\"number\"]}]'"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-execution.at:1140"
( $at_check_trace; test-ovsdb execute "`ordinal_schema`"  '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "second"},
      {"op": "delete",
       "table": "ordinals",
       "where": []},
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "columns": ["name","number"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-execution.at:1140"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"count\":2},{\"rows\":[]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1742
#AT_START_1743
at_fn_group_banner 1743 'ovsdb-execution.at:1140' \
  "insert row, query table, commit" "                " 81
at_xfail=no
(
  $as_echo "1743. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: test-ovsdb execute \"\`ordinal_schema\`\"  '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": []},
      {\"op\": \"commit\",
       \"durable\": false}]'"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-execution.at:1140"
( $at_check_trace; test-ovsdb execute "`ordinal_schema`"  '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "select",
       "table": "ordinals",
       "where": []},
      {"op": "commit",
       "durable": false}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-execution.at:1140"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<1>\"],\"name\":\"zero\",\"number\":0}]},{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1743
#AT_START_1744
at_fn_group_banner 1744 'ovsdb-execution.at:1140' \
  "insert row, query table, commit durably" "        " 81
at_xfail=no
(
  $as_echo "1744. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: test-ovsdb execute \"\`ordinal_schema\`\"  '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": []},
      {\"op\": \"commit\",
       \"durable\": true}]'"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-execution.at:1140"
( $at_check_trace; test-ovsdb execute "`ordinal_schema`"  '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "select",
       "table": "ordinals",
       "where": []},
      {"op": "commit",
       "durable": true}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-execution.at:1140"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<1>\"],\"name\":\"zero\",\"number\":0}]},{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1744
#AT_START_1745
at_fn_group_banner 1745 'ovsdb-execution.at:1140' \
  "equality wait with correct rows" "                " 81
at_xfail=no
(
  $as_echo "1745. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: test-ovsdb execute \"\`ordinal_schema\`\"  '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 0,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"==\",
       \"rows\": [{\"name\": \"zero\", \"number\": 0},
                {\"name\": \"one\", \"number\": 1}]}]'"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-execution.at:1140"
( $at_check_trace; test-ovsdb execute "`ordinal_schema`"  '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "==",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1}]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-execution.at:1140"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1745
#AT_START_1746
at_fn_group_banner 1746 'ovsdb-execution.at:1140' \
  "equality wait with extra row" "                   " 81
at_xfail=no
(
  $as_echo "1746. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: test-ovsdb execute \"\`ordinal_schema\`\"  '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 0,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"==\",
       \"rows\": [{\"name\": \"zero\", \"number\": 0},
                {\"name\": \"one\", \"number\": 1},
                {\"name\": \"two\", \"number\": 2}]}]'"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-execution.at:1140"
( $at_check_trace; test-ovsdb execute "`ordinal_schema`"  '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "==",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1},
                {"name": "two", "number": 2}]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-execution.at:1140"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"details\":\"\\\"where\\\" clause test failed\",\"error\":\"timed out\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1746
#AT_START_1747
at_fn_group_banner 1747 'ovsdb-execution.at:1140' \
  "equality wait with missing row" "                 " 81
at_xfail=no
(
  $as_echo "1747. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: test-ovsdb execute \"\`ordinal_schema\`\"  '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 0,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"==\",
       \"rows\": [{\"name\": \"one\", \"number\": 1}]}]'"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-execution.at:1140"
( $at_check_trace; test-ovsdb execute "`ordinal_schema`"  '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "==",
       "rows": [{"name": "one", "number": 1}]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-execution.at:1140"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"details\":\"\\\"where\\\" clause test failed\",\"error\":\"timed out\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1747
#AT_START_1748
at_fn_group_banner 1748 'ovsdb-execution.at:1140' \
  "inequality wait with correct rows" "              " 81
at_xfail=no
(
  $as_echo "1748. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: test-ovsdb execute \"\`ordinal_schema\`\"  '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 0,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"!=\",
       \"rows\": [{\"name\": \"zero\", \"number\": 0},
                {\"name\": \"one\", \"number\": 1}]}]'"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-execution.at:1140"
( $at_check_trace; test-ovsdb execute "`ordinal_schema`"  '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "!=",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1}]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-execution.at:1140"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"details\":\"\\\"where\\\" clause test failed\",\"error\":\"timed out\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1748
#AT_START_1749
at_fn_group_banner 1749 'ovsdb-execution.at:1140' \
  "inequality wait with extra row" "                 " 81
at_xfail=no
(
  $as_echo "1749. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: test-ovsdb execute \"\`ordinal_schema\`\"  '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 0,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"!=\",
       \"rows\": [{\"name\": \"zero\", \"number\": 0},
                {\"name\": \"one\", \"number\": 1},
                {\"name\": \"two\", \"number\": 2}]}]'"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-execution.at:1140"
( $at_check_trace; test-ovsdb execute "`ordinal_schema`"  '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "!=",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1},
                {"name": "two", "number": 2}]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-execution.at:1140"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1749
#AT_START_1750
at_fn_group_banner 1750 'ovsdb-execution.at:1140' \
  "inequality wait with missing row" "               " 81
at_xfail=no
(
  $as_echo "1750. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: test-ovsdb execute \"\`ordinal_schema\`\"  '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 0,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"!=\",
       \"rows\": [{\"name\": \"one\", \"number\": 1}]}]'"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-execution.at:1140"
( $at_check_trace; test-ovsdb execute "`ordinal_schema`"  '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "!=",
       "rows": [{"name": "one", "number": 1}]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-execution.at:1140"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1750
#AT_START_1751
at_fn_group_banner 1751 'ovsdb-execution.at:1140' \
  "insert and update constraints" "                  " 81
at_xfail=no
(
  $as_echo "1751. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: test-ovsdb execute \"\`constraint_schema\`\"  '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"constrained\",
       \"row\": {}}]' '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"constrained\",
       \"row\": {\"positive\": -1}}]' '[\"constraints\",
      {\"op\": \"update\",
       \"table\": \"constrained\",
       \"where\": [],
       \"row\": {\"positive\": -2}}]' '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"constrained\",
       \"row\": {\"positive\": 1}}]' '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"constrained\",
       \"row\": {\"positive\": 2}}]'"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-execution.at:1140"
( $at_check_trace; test-ovsdb execute "`constraint_schema`"  '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {}}]' '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {"positive": -1}}]' '["constraints",
      {"op": "update",
       "table": "constrained",
       "where": [],
       "row": {"positive": -2}}]' '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {"positive": 1}}]' '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {"positive": 2}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-execution.at:1140"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"details\":\"0 is less than minimum allowed value 1\",\"error\":\"constraint violation\"}]
[{\"details\":\"-1 is less than minimum allowed value 1\",\"error\":\"constraint violation\"}]
[{\"details\":\"-2 is less than minimum allowed value 1\",\"error\":\"constraint violation\"}]
[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]},{\"details\":\"transaction causes \\\"constrained\\\" table to contain 2 rows, greater than the schema-defined limit of 1 row(s)\",\"error\":\"constraint violation\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1751
#AT_START_1752
at_fn_group_banner 1752 'ovsdb-execution.at:1140' \
  "index uniqueness checking" "                      " 81
at_xfail=no
(
  $as_echo "1752. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: test-ovsdb execute \"\`ordinal_schema\`\"  '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}}]' '   [\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"another one\"}}]' '   [\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"another one\"}},
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"one\"]]}]' '   [\"ordinals\",
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": []},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"still another one\"}}]' '   [\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 2, \"name\": \"two\"}}]' '   [\"ordinals\",
      {\"op\": \"update\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"row\": {\"number\": 3}}]' '   [\"ordinals\",
      {\"op\": \"update\",
       \"table\": \"ordinals\",
       \"where\": [[\"number\", \"==\", 1]],
       \"row\": {\"number\": 2, \"name\": \"old two\"}},
      {\"op\": \"update\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"two\"]],
       \"row\": {\"number\": 1, \"name\": \"old one\"}}]' '   [\"ordinals\",
      {\"op\": \"mutate\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"mutations\": [[\"number\", \"*=\", 10]]},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"new one\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 2, \"name\": \"new two\"}},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"number\", \"name\"],
       \"sort\": [\"number\"]}]'"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-execution.at:1140"
( $at_check_trace; test-ovsdb execute "`ordinal_schema`"  '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}}]' '   ["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "another one"}}]' '   ["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "another one"}},
      {"op": "delete",
       "table": "ordinals",
       "where": [["name", "==", "one"]]}]' '   ["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": []},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "still another one"}}]' '   ["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 2, "name": "two"}}]' '   ["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [],
       "row": {"number": 3}}]' '   ["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [["number", "==", 1]],
       "row": {"number": 2, "name": "old two"}},
      {"op": "update",
       "table": "ordinals",
       "where": [["name", "==", "two"]],
       "row": {"number": 1, "name": "old one"}}]' '   ["ordinals",
      {"op": "mutate",
       "table": "ordinals",
       "where": [],
       "mutations": [["number", "*=", 10]]},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "new one"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 2, "name": "new two"}},
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "columns": ["number", "name"],
       "sort": ["number"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-execution.at:1140"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]},{\"details\":\"Transaction causes multiple rows in \\\"ordinals\\\" table to have identical values (1) for index on column \\\"number\\\".  First row, with UUID <0>, existed in the database before this transaction and was not modified by the transaction.  Second row, with UUID <1>, was inserted by this transaction.\",\"error\":\"constraint violation\"}]
[{\"uuid\":[\"uuid\",\"<2>\"]},{\"count\":1}]
[{\"count\":1},{\"uuid\":[\"uuid\",\"<3>\"]},{\"uuid\":[\"uuid\",\"<4>\"]},{\"details\":\"Transaction causes multiple rows in \\\"ordinals\\\" table to have identical values (1) for index on column \\\"number\\\".  First row, with UUID <4>, was inserted by this transaction.  Second row, with UUID <3>, was inserted by this transaction.\",\"error\":\"constraint violation\"}]
[{\"uuid\":[\"uuid\",\"<5>\"]}]
[{\"count\":2},{\"details\":\"Transaction causes multiple rows in \\\"ordinals\\\" table to have identical values (3) for index on column \\\"number\\\".  First row, with UUID <5>, had the following index values before the transaction: 2.  Second row, with UUID <2>, had the following index values before the transaction: 1.\",\"error\":\"constraint violation\"}]
[{\"count\":1},{\"count\":1}]
[{\"count\":2},{\"uuid\":[\"uuid\",\"<6>\"]},{\"uuid\":[\"uuid\",\"<7>\"]},{\"rows\":[{\"name\":\"new one\",\"number\":1},{\"name\":\"new two\",\"number\":2},{\"name\":\"old one\",\"number\":10},{\"name\":\"old two\",\"number\":20}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1752
#AT_START_1753
at_fn_group_banner 1753 'ovsdb-execution.at:1140' \
  "referential integrity -- simple" "                " 81
at_xfail=no
(
  $as_echo "1753. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: test-ovsdb execute \"\`constraint_schema\`\"  '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"b\",
       \"row\": {\"b\": 1},
       \"uuid-name\": \"brow\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 0,
               \"a2b\": [\"set\", [[\"named-uuid\", \"brow\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 1,
               \"a2b\": [\"set\", [[\"named-uuid\", \"brow\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 2,
               \"a2b\": [\"set\", [[\"named-uuid\", \"brow\"]]]}}]' '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": []}]' '   [\"constraints\",
      {\"op\": \"mutate\",
       \"table\": \"b\",
       \"where\": [],
       \"mutations\": [[\"x\", \"delete\", 0]]}]' '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 0]]}]' '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": []}]' '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 1]]}]' '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": []}]' '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 2]]}]' '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-execution.at:1140"
( $at_check_trace; test-ovsdb execute "`constraint_schema`"  '["constraints",
      {"op": "insert",
       "table": "b",
       "row": {"b": 1},
       "uuid-name": "brow"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 0,
               "a2b": ["set", [["named-uuid", "brow"]]]}},
      {"op": "insert",
       "table": "a",
       "row": {"a": 1,
               "a2b": ["set", [["named-uuid", "brow"]]]}},
      {"op": "insert",
       "table": "a",
       "row": {"a": 2,
               "a2b": ["set", [["named-uuid", "brow"]]]}}]' '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]' '   ["constraints",
      {"op": "mutate",
       "table": "b",
       "where": [],
       "mutations": [["x", "delete", 0]]}]' '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]' '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]' '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 1]]}]' '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]' '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 2]]}]' '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-execution.at:1140"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]},{\"uuid\":[\"uuid\",\"<3>\"]}]
[{\"count\":1},{\"details\":\"cannot delete b row <0> because of 3 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"details\":\"Attempted to store 0 elements in set of 1 to 2 integers.\",\"error\":\"constraint violation\"}]
[{\"count\":1}]
[{\"count\":1},{\"details\":\"cannot delete b row <0> because of 2 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"count\":1}]
[{\"count\":1},{\"details\":\"cannot delete b row <0> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"count\":1}]
[{\"count\":1}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1753
#AT_START_1754
at_fn_group_banner 1754 'ovsdb-execution.at:1140' \
  "referential integrity -- mutual references" "     " 81
at_xfail=no
(
  $as_echo "1754. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: test-ovsdb execute \"\`constraint_schema\`\"  '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 0,
               \"a2b\": [\"set\", [[\"named-uuid\", \"row2\"]]],
               \"a2a\": [\"set\", [[\"named-uuid\", \"row1\"]]]},
       \"uuid-name\": \"row1\"},
      {\"op\": \"insert\",
       \"table\": \"b\",
       \"row\": {\"b\": 1,
               \"b2b\": [\"set\", [[\"named-uuid\", \"row2\"]]],
               \"b2a\": [\"set\", [[\"named-uuid\", \"row1\"]]]},
       \"uuid-name\": \"row2\"}]' '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a2b\": [\"set\", [[\"uuid\", \"b516b960-5b19-4fc2-bb82-fe1cbd6d0241\"]]]}}]' '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 0]]}]' '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": [[\"b\", \"==\", 1]]}]' '   [\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 0]]}]' '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": [[\"b\", \"==\", 1]]}]' '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 0]]},
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": [[\"b\", \"==\", 1]]}]'"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-execution.at:1140"
( $at_check_trace; test-ovsdb execute "`constraint_schema`"  '["constraints",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0,
               "a2b": ["set", [["named-uuid", "row2"]]],
               "a2a": ["set", [["named-uuid", "row1"]]]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "b",
       "row": {"b": 1,
               "b2b": ["set", [["named-uuid", "row2"]]],
               "b2a": ["set", [["named-uuid", "row1"]]]},
       "uuid-name": "row2"}]' '["constraints",
      {"op": "insert",
       "table": "a",
       "row": {"a2b": ["set", [["uuid", "b516b960-5b19-4fc2-bb82-fe1cbd6d0241"]]]}}]' '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]' '["constraints",
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 1]]}]' '   ["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]' '["constraints",
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 1]]}]' '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]},
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-execution.at:1140"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"uuid\":[\"uuid\",\"<2>\"]},{\"details\":\"Table a column a2b row <2> references nonexistent row <3> in table b.\",\"error\":\"referential integrity violation\"}]
[{\"count\":1},{\"details\":\"cannot delete a row <0> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"count\":1},{\"details\":\"cannot delete b row <1> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"count\":1},{\"details\":\"cannot delete a row <0> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"count\":1},{\"details\":\"cannot delete b row <1> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"count\":1},{\"count\":1}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1754
#AT_START_1755
at_fn_group_banner 1755 'ovsdb-execution.at:1140' \
  "weak references" "                                " 81
at_xfail=no
(
  $as_echo "1755. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: test-ovsdb execute \"\`weak_schema\`\"  '[\"weak\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 0,
               \"a2a\": [\"set\", [[\"named-uuid\", \"row1\"],
                               [\"named-uuid\", \"row2\"],
                               [\"uuid\", \"0e767b36-6822-4044-8307-d58467e04669\"]]],
               \"a2a1\": [\"named-uuid\", \"row1\"],
               \"a2b\": [\"named-uuid\", \"row3\"]},
       \"uuid-name\": \"row1\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 1,
               \"a2a\": [\"set\", [[\"named-uuid\", \"row1\"],
                               [\"named-uuid\", \"row2\"]]],
               \"a2a1\": [\"named-uuid\", \"row2\"],
               \"a2b\": [\"named-uuid\", \"row3\"]},
       \"uuid-name\": \"row2\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 2,
               \"a2a\": [\"set\", [[\"named-uuid\", \"row1\"],
                               [\"named-uuid\", \"row2\"]]],
               \"a2a1\": [\"named-uuid\", \"row2\"],
               \"a2b\": [\"named-uuid\", \"row4\"]}},
      {\"op\": \"insert\",
       \"table\": \"b\",
       \"row\": {\"b\": 2,
               \"b2a\": [\"named-uuid\", \"row1\"]},
       \"uuid-name\": \"row3\"},
      {\"op\": \"insert\",
       \"table\": \"b\",
       \"row\": {\"b\": 3,
               \"b2a\": [\"named-uuid\", \"row2\"]},
       \"uuid-name\": \"row4\"}]' '      [\"weak\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"a2a\", \"a2a1\", \"a2b\"],
       \"sort\": [\"a\"]}]' '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"b\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"b\", \"b2a\"],
       \"sort\": [\"b\"]}]' '      [\"weak\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a2a1\": [\"named-uuid\", \"me\"]},
       \"uuid-name\": \"me\"}]' '      [\"weak\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": [[\"b\", \"==\", 3]]}]' '      [\"weak\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 1]]}]' '      [\"weak\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 2]]}]' '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"a2a\", \"a2a1\", \"a2b\"],
       \"sort\": [\"a\"]}]' '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"b\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"b\", \"b2a\"],
       \"sort\": [\"b\"]}]' '   [\"weak\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 0]]}]' '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"a2a\", \"a2a1\", \"a2b\"],
       \"sort\": [\"a\"]}]' '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"b\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"b\", \"b2a\"],
       \"sort\": [\"b\"]}]' '   [\"weak\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 1]]}]' '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"a2a\", \"a2a1\", \"a2b\"],
       \"sort\": [\"a\"]}]' '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"b\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"b\", \"b2a\"],
       \"sort\": [\"b\"]}]'"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-execution.at:1140"
( $at_check_trace; test-ovsdb execute "`weak_schema`"  '["weak",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0,
               "a2a": ["set", [["named-uuid", "row1"],
                               ["named-uuid", "row2"],
                               ["uuid", "0e767b36-6822-4044-8307-d58467e04669"]]],
               "a2a1": ["named-uuid", "row1"],
               "a2b": ["named-uuid", "row3"]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 1,
               "a2a": ["set", [["named-uuid", "row1"],
                               ["named-uuid", "row2"]]],
               "a2a1": ["named-uuid", "row2"],
               "a2b": ["named-uuid", "row3"]},
       "uuid-name": "row2"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 2,
               "a2a": ["set", [["named-uuid", "row1"],
                               ["named-uuid", "row2"]]],
               "a2a1": ["named-uuid", "row2"],
               "a2b": ["named-uuid", "row4"]}},
      {"op": "insert",
       "table": "b",
       "row": {"b": 2,
               "b2a": ["named-uuid", "row1"]},
       "uuid-name": "row3"},
      {"op": "insert",
       "table": "b",
       "row": {"b": 3,
               "b2a": ["named-uuid", "row2"]},
       "uuid-name": "row4"}]' '      ["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]' '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]' '      ["weak",
      {"op": "insert",
       "table": "a",
       "row": {"a2a1": ["named-uuid", "me"]},
       "uuid-name": "me"}]' '      ["weak",
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 3]]}]' '      ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 1]]}]' '      ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 2]]}]' '["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]' '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]' '   ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]' '["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]' '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]' '   ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 1]]}]' '["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]' '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-execution.at:1140"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]},{\"uuid\":[\"uuid\",\"<3>\"]},{\"uuid\":[\"uuid\",\"<4>\"]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"a2a\":[\"set\",[[\"uuid\",\"<0>\"],[\"uuid\",\"<1>\"]]],\"a2a1\":[\"uuid\",\"<0>\"],\"a2b\":[\"uuid\",\"<3>\"]},{\"_uuid\":[\"uuid\",\"<1>\"],\"a2a\":[\"set\",[[\"uuid\",\"<0>\"],[\"uuid\",\"<1>\"]]],\"a2a1\":[\"uuid\",\"<1>\"],\"a2b\":[\"uuid\",\"<3>\"]},{\"_uuid\":[\"uuid\",\"<2>\"],\"a2a\":[\"set\",[[\"uuid\",\"<0>\"],[\"uuid\",\"<1>\"]]],\"a2a1\":[\"uuid\",\"<1>\"],\"a2b\":[\"uuid\",\"<4>\"]}]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<3>\"],\"b\":2,\"b2a\":[\"uuid\",\"<0>\"]},{\"_uuid\":[\"uuid\",\"<4>\"],\"b\":3,\"b2a\":[\"uuid\",\"<1>\"]}]}]
[{\"uuid\":[\"uuid\",\"<5>\"]},{\"details\":\"Weak reference column \\\"a2b\\\" in \\\"a\\\" row <5> (inserted within this transaction) contained all-zeros UUID (probably as the default value for this column) but deleting this value caused a constraint volation because this column is not allowed to be empty.\",\"error\":\"constraint violation\"}]
[{\"count\":1},{\"details\":\"Deletion of 1 weak reference(s) to deleted (or never-existing) rows from column \\\"a2b\\\" in \\\"a\\\" row <2> caused this column to become empty, but constraints on this column disallow an empty column.\",\"error\":\"constraint violation\"}]
[{\"count\":1},{\"details\":\"Deletion of 1 weak reference(s) to deleted (or never-existing) rows from column \\\"a2a1\\\" in \\\"a\\\" row <2> caused this column to become empty, but constraints on this column disallow an empty column.\",\"error\":\"constraint violation\"}]
[{\"count\":1}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"a2a\":[\"set\",[[\"uuid\",\"<0>\"],[\"uuid\",\"<1>\"]]],\"a2a1\":[\"uuid\",\"<0>\"],\"a2b\":[\"uuid\",\"<3>\"]},{\"_uuid\":[\"uuid\",\"<1>\"],\"a2a\":[\"set\",[[\"uuid\",\"<0>\"],[\"uuid\",\"<1>\"]]],\"a2a1\":[\"uuid\",\"<1>\"],\"a2b\":[\"uuid\",\"<3>\"]}]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<3>\"],\"b\":2,\"b2a\":[\"uuid\",\"<0>\"]},{\"_uuid\":[\"uuid\",\"<4>\"],\"b\":3,\"b2a\":[\"uuid\",\"<1>\"]}]}]
[{\"count\":1}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<1>\"],\"a2a\":[\"uuid\",\"<1>\"],\"a2a1\":[\"uuid\",\"<1>\"],\"a2b\":[\"uuid\",\"<3>\"]}]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<3>\"],\"b\":2,\"b2a\":[\"set\",[]]},{\"_uuid\":[\"uuid\",\"<4>\"],\"b\":3,\"b2a\":[\"uuid\",\"<1>\"]}]}]
[{\"count\":1}]
[{\"rows\":[]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<3>\"],\"b\":2,\"b2a\":[\"set\",[]]},{\"_uuid\":[\"uuid\",\"<4>\"],\"b\":3,\"b2a\":[\"set\",[]]}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1755
#AT_START_1756
at_fn_group_banner 1756 'ovsdb-execution.at:1140' \
  "immutable columns" "                              " 81
at_xfail=no
(
  $as_echo "1756. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: test-ovsdb execute \"\`immutable_schema\`\"  '[\"immutable\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"i\": 5},
       \"uuid-name\": \"row1\"}]' '[\"immutable\",
      {\"op\": \"update\",
       \"table\": \"a\",
       \"row\": {\"i\": 10},
       \"where\": []}]' '[\"immutable\",
      {\"op\": \"update\",
       \"table\": \"a\",
       \"row\": {\"i\": 5},
       \"where\": []}]' '[\"immutable\",
      {\"op\": \"mutate\",
       \"table\": \"a\",
       \"where\": [],
       \"mutations\": [[\"i\", \"-=\", 5]]}]' '[\"immutable\",
      {\"op\": \"mutate\",
       \"table\": \"a\",
       \"where\": [],
       \"mutations\": [[\"i\", \"*=\", 1]]}]'"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-execution.at:1140"
( $at_check_trace; test-ovsdb execute "`immutable_schema`"  '["immutable",
      {"op": "insert",
       "table": "a",
       "row": {"i": 5},
       "uuid-name": "row1"}]' '["immutable",
      {"op": "update",
       "table": "a",
       "row": {"i": 10},
       "where": []}]' '["immutable",
      {"op": "update",
       "table": "a",
       "row": {"i": 5},
       "where": []}]' '["immutable",
      {"op": "mutate",
       "table": "a",
       "where": [],
       "mutations": [["i", "-=", 5]]}]' '["immutable",
      {"op": "mutate",
       "table": "a",
       "where": [],
       "mutations": [["i", "*=", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-execution.at:1140"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"details\":\"Cannot update immutable column i in table a.\",\"error\":\"constraint violation\",\"syntax\":\"{\\\"op\\\":\\\"update\\\",\\\"row\\\":{\\\"i\\\":10},\\\"table\\\":\\\"a\\\",\\\"where\\\":[]}\"}]
[{\"details\":\"Cannot update immutable column i in table a.\",\"error\":\"constraint violation\",\"syntax\":\"{\\\"op\\\":\\\"update\\\",\\\"row\\\":{\\\"i\\\":5},\\\"table\\\":\\\"a\\\",\\\"where\\\":[]}\"}]
[{\"details\":\"Cannot mutate immutable column i in table a.\",\"error\":\"constraint violation\",\"syntax\":\"[\\\"i\\\",\\\"-=\\\",5]\"}]
[{\"details\":\"Cannot mutate immutable column i in table a.\",\"error\":\"constraint violation\",\"syntax\":\"[\\\"i\\\",\\\"*=\\\",1]\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1756
#AT_START_1757
at_fn_group_banner 1757 'ovsdb-execution.at:1140' \
  "garbage collection" "                             " 81
at_xfail=no
(
  $as_echo "1757. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: test-ovsdb execute \"\`gc_schema\`\"  '   [\"gc\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 0}}]' '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"]}]' '      [\"gc\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 0, \"a2a\": [\"named-uuid\", \"row1\"]},
       \"uuid-name\": \"row0\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 1, \"a2a\": [\"named-uuid\", \"row2\"]},
       \"uuid-name\": \"row1\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 2, \"a2a\": [\"named-uuid\", \"row3\"]},
       \"uuid-name\": \"row2\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 3},
       \"uuid-name\": \"row3\"}]' '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"]}]' '      [\"gc\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 4, \"a2a\": [\"named-uuid\", \"row5\"]},
       \"uuid-name\": \"row4\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 5, \"a2a\": [\"named-uuid\", \"row4\"]},
       \"uuid-name\": \"row5\"}]' '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"],
       \"sort\": [\"a\"]}]' '   [\"gc\",
      {\"op\": \"update\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 4]],
       \"row\": {\"a2a\": [\"set\", []]}}]' '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"]}]' '      [\"gc\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 6, \"wa2a\": [\"named-uuid\", \"row7\"]},
       \"uuid-name\": \"row6\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 7, \"wa2a\": [\"named-uuid\", \"row6\"]},
       \"uuid-name\": \"row7\"}]' '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"]}]' '   [\"gc\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 8, \"a2a\": [\"named-uuid\", \"row9\"]},
       \"uuid-name\": \"row8\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 9, \"a2a\": [\"named-uuid\", \"row10\"]},
       \"uuid-name\": \"row9\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 10, \"a2a\": [\"named-uuid\", \"row11\"]},
       \"uuid-name\": \"row10\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 11, \"a2a\": [\"named-uuid\", \"row8\"]},
       \"uuid-name\": \"row11\"}]' '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"],
       \"sort\": [\"a\"]}]' '   [\"gc\",
      {\"op\": \"update\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 9]],
       \"row\": {\"a2a\": [\"set\", []]}}]' '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"]}]' '   [\"gc\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 12, \"a2a\": [\"named-uuid\", \"self\"]},
       \"uuid-name\": \"self\"}]' '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-execution.at:1140"
( $at_check_trace; test-ovsdb execute "`gc_schema`"  '   ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0}}]' '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]' '      ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0, "a2a": ["named-uuid", "row1"]},
       "uuid-name": "row0"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 1, "a2a": ["named-uuid", "row2"]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 2, "a2a": ["named-uuid", "row3"]},
       "uuid-name": "row2"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 3},
       "uuid-name": "row3"}]' '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]' '      ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 4, "a2a": ["named-uuid", "row5"]},
       "uuid-name": "row4"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 5, "a2a": ["named-uuid", "row4"]},
       "uuid-name": "row5"}]' '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"],
       "sort": ["a"]}]' '   ["gc",
      {"op": "update",
       "table": "a",
       "where": [["a", "==", 4]],
       "row": {"a2a": ["set", []]}}]' '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]' '      ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 6, "wa2a": ["named-uuid", "row7"]},
       "uuid-name": "row6"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 7, "wa2a": ["named-uuid", "row6"]},
       "uuid-name": "row7"}]' '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]' '   ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 8, "a2a": ["named-uuid", "row9"]},
       "uuid-name": "row8"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 9, "a2a": ["named-uuid", "row10"]},
       "uuid-name": "row9"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 10, "a2a": ["named-uuid", "row11"]},
       "uuid-name": "row10"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 11, "a2a": ["named-uuid", "row8"]},
       "uuid-name": "row11"}]' '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"],
       "sort": ["a"]}]' '   ["gc",
      {"op": "update",
       "table": "a",
       "where": [["a", "==", 9]],
       "row": {"a2a": ["set", []]}}]' '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]' '   ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 12, "a2a": ["named-uuid", "self"]},
       "uuid-name": "self"}]' '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-execution.at:1140: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-execution.at:1140"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"rows\":[]}]
[{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]},{\"uuid\":[\"uuid\",\"<3>\"]},{\"uuid\":[\"uuid\",\"<4>\"]}]
[{\"rows\":[]}]
[{\"uuid\":[\"uuid\",\"<5>\"]},{\"uuid\":[\"uuid\",\"<6>\"]}]
[{\"rows\":[{\"a\":4},{\"a\":5}]}]
[{\"count\":1}]
[{\"rows\":[]}]
[{\"uuid\":[\"uuid\",\"<7>\"]},{\"uuid\":[\"uuid\",\"<8>\"]}]
[{\"rows\":[]}]
[{\"uuid\":[\"uuid\",\"<9>\"]},{\"uuid\":[\"uuid\",\"<10>\"]},{\"uuid\":[\"uuid\",\"<11>\"]},{\"uuid\":[\"uuid\",\"<12>\"]}]
[{\"rows\":[{\"a\":8},{\"a\":9},{\"a\":10},{\"a\":11}]}]
[{\"count\":1}]
[{\"rows\":[]}]
[{\"uuid\":[\"uuid\",\"<13>\"]}]
[{\"rows\":[]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-execution.at:1140"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1757
#AT_START_1758
at_fn_group_banner 1758 'ovsdb-trigger.at:15' \
  "trigger fires immediately" "                      " 82
at_xfail=no
(
  $as_echo "1758. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-trigger.at:15: test-ovsdb trigger \"\`ordinal_schema\`\" \\
    '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 10,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"==\",
       \"rows\": [{\"name\": \"zero\", \"number\": 0},
                {\"name\": \"one\", \"number\": 1}]},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 2, \"name\": \"two\"}}]'"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-trigger.at:15"
( $at_check_trace; test-ovsdb trigger "`ordinal_schema`" \
    '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 10,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "==",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1}]},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 2, "name": "two"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-trigger.at:15"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-trigger.at:15: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-trigger.at:15"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "t=0: trigger 0 (immediate): [{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{},{\"uuid\":[\"uuid\",\"<2>\"]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-trigger.at:15"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1758
#AT_START_1759
at_fn_group_banner 1759 'ovsdb-trigger.at:38' \
  "trigger times out" "                              " 82
at_xfail=no
(
  $as_echo "1759. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-trigger.at:38: test-ovsdb trigger \"\`ordinal_schema\`\" \\
    '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 10,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"==\",
       \"rows\": [{\"name\": \"zero\", \"number\": 0},
                {\"name\": \"one\", \"number\": 1},
                {\"name\": \"two\", \"number\": 2}]}]' \\
    '[\"advance\", 10]'"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-trigger.at:38"
( $at_check_trace; test-ovsdb trigger "`ordinal_schema`" \
    '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 10,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "==",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1},
                {"name": "two", "number": 2}]}]' \
    '["advance", 10]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-trigger.at:38"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-trigger.at:38: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-trigger.at:38"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "t=0: new trigger 0
t=10: trigger 0 (delayed): [{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"details\":\"\\\"wait\\\" timed out after 10 ms\",\"error\":\"timed out\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-trigger.at:38"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1759
#AT_START_1760
at_fn_group_banner 1760 'ovsdb-trigger.at:61' \
  "trigger fires after delay" "                      " 82
at_xfail=no
(
  $as_echo "1760. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-trigger.at:61: test-ovsdb trigger \"\`ordinal_schema\`\" \\
    '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}}]' \\
    '[\"advance\", 5]' \\
    '[\"ordinals\",
      {\"op\": \"wait\",
       \"timeout\": 10,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"==\",
       \"rows\": [{\"name\": \"zero\", \"number\": 0},
                {\"name\": \"one\", \"number\": 1},
                {\"name\": \"two\", \"number\": 2}]}]' \\
    '[\"advance\", 5]' \\
    '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 2, \"name\": \"two\"}}]'"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-trigger.at:61"
( $at_check_trace; test-ovsdb trigger "`ordinal_schema`" \
    '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}}]' \
    '["advance", 5]' \
    '["ordinals",
      {"op": "wait",
       "timeout": 10,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "==",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1},
                {"name": "two", "number": 2}]}]' \
    '["advance", 5]' \
    '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 2, "name": "two"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-trigger.at:61"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-trigger.at:61: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-trigger.at:61"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "t=0: trigger 0 (immediate): [{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]}]
t=5: new trigger 1
t=10: trigger 2 (immediate): [{\"uuid\":[\"uuid\",\"<2>\"]}]
t=10: trigger 1 (delayed): [{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-trigger.at:61"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1760
#AT_START_1761
at_fn_group_banner 1761 'ovsdb-trigger.at:92' \
  "delayed trigger modifies database" "              " 82
at_xfail=no
(
  $as_echo "1761. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-trigger.at:92: test-ovsdb trigger \"\`ordinal_schema\`\" \\
    '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}}]' \\
    '[\"advance\", 5]' \\
    '[\"ordinals\",
      {\"op\": \"wait\",
       \"timeout\": 10,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"==\",
       \"rows\": [{\"name\": \"zero\", \"number\": 0},
                {\"name\": \"one\", \"number\": 1},
                {\"name\": \"two\", \"number\": 2}]},
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": [[\"number\", \"<\", 2]]}]' \\
    '[\"advance\", 5]' \\
    '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 2, \"name\": \"two\"}}]' \\
    '[\"advance\", 5]' \\
    '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-trigger.at:92"
( $at_check_trace; test-ovsdb trigger "`ordinal_schema`" \
    '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}}]' \
    '["advance", 5]' \
    '["ordinals",
      {"op": "wait",
       "timeout": 10,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "==",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1},
                {"name": "two", "number": 2}]},
      {"op": "delete",
       "table": "ordinals",
       "where": [["number", "<", 2]]}]' \
    '["advance", 5]' \
    '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 2, "name": "two"}}]' \
    '["advance", 5]' \
    '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-trigger.at:92"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-trigger.at:92: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-trigger.at:92"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "t=0: trigger 0 (immediate): [{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]}]
t=5: new trigger 1
t=10: trigger 2 (immediate): [{\"uuid\":[\"uuid\",\"<2>\"]}]
t=10: trigger 1 (delayed): [{},{\"count\":2}]
t=15: trigger 3 (immediate): [{\"rows\":[{\"_uuid\":[\"uuid\",\"<2>\"],\"_version\":[\"uuid\",\"<3>\"],\"name\":\"two\",\"number\":2}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-trigger.at:92"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1761
#AT_START_1762
at_fn_group_banner 1762 'ovsdb-trigger.at:132' \
  "one delayed trigger wakes up another" "           " 82
at_xfail=no
(
  $as_echo "1762. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-trigger.at:132: test-ovsdb trigger \"\`ordinal_schema\`\" \\
    '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}}]' \\
    '[\"advance\", 5]' \\
    '[\"ordinals\",
      {\"op\": \"wait\",
       \"timeout\": 10,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"==\",
       \"rows\": [{\"name\": \"two\", \"number\": 2}]},
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": [[\"number\", \"==\", 2]]},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 3, \"name\": \"three\"}}]' \\
    '[\"ordinals\",
      {\"op\": \"wait\",
       \"timeout\": 10,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"==\",
       \"rows\": [{\"name\": \"zero\", \"number\": 0},
                {\"name\": \"one\", \"number\": 1},
                {\"name\": \"two\", \"number\": 2}]},
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": [[\"number\", \"<\", 2]]}]' \\
    '[\"advance\", 5]' \\
    '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 2, \"name\": \"two\"}}]' \\
    '[\"advance\", 5]' \\
    '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-trigger.at:132"
( $at_check_trace; test-ovsdb trigger "`ordinal_schema`" \
    '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}}]' \
    '["advance", 5]' \
    '["ordinals",
      {"op": "wait",
       "timeout": 10,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "==",
       "rows": [{"name": "two", "number": 2}]},
      {"op": "delete",
       "table": "ordinals",
       "where": [["number", "==", 2]]},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 3, "name": "three"}}]' \
    '["ordinals",
      {"op": "wait",
       "timeout": 10,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "==",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1},
                {"name": "two", "number": 2}]},
      {"op": "delete",
       "table": "ordinals",
       "where": [["number", "<", 2]]}]' \
    '["advance", 5]' \
    '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 2, "name": "two"}}]' \
    '["advance", 5]' \
    '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-trigger.at:132"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-trigger.at:132: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-trigger.at:132"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "t=0: trigger 0 (immediate): [{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]}]
t=5: new trigger 1
t=5: new trigger 2
t=10: trigger 3 (immediate): [{\"uuid\":[\"uuid\",\"<2>\"]}]
t=10: trigger 2 (delayed): [{},{\"count\":2}]
t=10: trigger 1 (delayed): [{},{\"count\":1},{\"uuid\":[\"uuid\",\"<3>\"]}]
t=15: trigger 4 (immediate): [{\"rows\":[{\"_uuid\":[\"uuid\",\"<3>\"],\"_version\":[\"uuid\",\"<4>\"],\"name\":\"three\",\"number\":3}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-trigger.at:132"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1762
#AT_START_1763
at_fn_group_banner 1763 'ovsdb-tool.at:29' \
  "insert default row, query table" "                " 83
at_xfail=no
(
  $as_echo "1763. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   touch .db.~lock~
   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<1>\"],\"name\":\"\",\"number\":0}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1763
#AT_START_1764
at_fn_group_banner 1764 'ovsdb-tool.at:29' \
  "insert row, query table" "                        " 83
at_xfail=no
(
  $as_echo "1764. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   touch .db.~lock~
   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<1>\"],\"name\":\"zero\",\"number\":0}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1764
#AT_START_1765
at_fn_group_banner 1765 'ovsdb-tool.at:29' \
  "insert rows, query by value" "                    " 83
at_xfail=no
(
  $as_echo "1765. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   touch .db.~lock~
   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"zero\"]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [["name", "==", "zero"]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"one\"]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [["name", "==", "one"]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"zero\",\"number\":0}]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<3>\"],\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1765
#AT_START_1766
at_fn_group_banner 1766 'ovsdb-tool.at:29' \
  "insert rows, query by named-uuid" "               " 83
at_xfail=no
(
  $as_echo "1766. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   touch .db.~lock~
   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"second\"},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [[\"_uuid\", \"==\", [\"named-uuid\", \"first\"]]]},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [[\"_uuid\", \"==\", [\"named-uuid\", \"second\"]]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "second"},
      {"op": "select",
       "table": "ordinals",
       "where": [["_uuid", "==", ["named-uuid", "first"]]]},
      {"op": "select",
       "table": "ordinals",
       "where": [["_uuid", "==", ["named-uuid", "second"]]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"zero\",\"number\":0}]},{\"rows\":[{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<3>\"],\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1766
#AT_START_1767
at_fn_group_banner 1767 'ovsdb-tool.at:29' \
  "insert rows, update rows by value" "              " 83
at_xfail=no
(
  $as_echo "1767. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   touch .db.~lock~
   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"ordinals\",
      {\"op\": \"update\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"zero\"]],
       \"row\": {\"name\": \"nought\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [["name", "==", "zero"]],
       "row": {"name": "nought"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"sort\": [\"number\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "sort": ["number"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"count\":1}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"nought\",\"number\":0},{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<3>\"],\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1767
#AT_START_1768
at_fn_group_banner 1768 'ovsdb-tool.at:29' \
  "insert rows, mutate rows" "                       " 83
at_xfail=no
(
  $as_echo "1768. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   touch .db.~lock~
   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"ordinals\",
      {\"op\": \"mutate\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"zero\"]],
       \"mutations\": [[\"number\", \"+=\", 2]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["ordinals",
      {"op": "mutate",
       "table": "ordinals",
       "where": [["name", "==", "zero"]],
       "mutations": [["number", "+=", 2]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"sort\": [\"number\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "sort": ["number"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"count\":1}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"one\",\"number\":1},{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<3>\"],\"name\":\"zero\",\"number\":2}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1768
#AT_START_1769
at_fn_group_banner 1769 'ovsdb-tool.at:29' \
  "insert rows, delete by named-uuid" "              " 83
at_xfail=no
(
  $as_echo "1769. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   touch .db.~lock~
   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"second\"},
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": [[\"_uuid\", \"==\", [\"named-uuid\", \"first\"]]]},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\",\"number\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "second"},
      {"op": "delete",
       "table": "ordinals",
       "where": [["_uuid", "==", ["named-uuid", "first"]]]},
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "columns": ["name","number"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"count\":1},{\"rows\":[{\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1769
#AT_START_1770
at_fn_group_banner 1770 'ovsdb-tool.at:29' \
  "insert rows, delete rows by value" "              " 83
at_xfail=no
(
  $as_echo "1770. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   touch .db.~lock~
   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"ordinals\",
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"zero\"]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": [["name", "==", "zero"]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"count\":1}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1770
#AT_START_1771
at_fn_group_banner 1771 'ovsdb-tool.at:29' \
  "insert rows, delete by (non-matching) value" "    " 83
at_xfail=no
(
  $as_echo "1771. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   touch .db.~lock~
   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"ordinals\",
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"nought\"]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": [["name", "==", "nought"]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"sort\": [\"number\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "sort": ["number"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"count\":0}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"zero\",\"number\":0},{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<3>\"],\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1771
#AT_START_1772
at_fn_group_banner 1772 'ovsdb-tool.at:29' \
  "insert rows, delete all" "                        " 83
at_xfail=no
(
  $as_echo "1772. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   touch .db.~lock~
   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"second\"},
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": []},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\",\"number\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "second"},
      {"op": "delete",
       "table": "ordinals",
       "where": []},
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "columns": ["name","number"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"count\":2},{\"rows\":[]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1772
#AT_START_1773
at_fn_group_banner 1773 'ovsdb-tool.at:29' \
  "insert row, query table, commit" "                " 83
at_xfail=no
(
  $as_echo "1773. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   touch .db.~lock~
   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": []},
      {\"op\": \"commit\",
       \"durable\": false}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "select",
       "table": "ordinals",
       "where": []},
      {"op": "commit",
       "durable": false}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<1>\"],\"name\":\"zero\",\"number\":0}]},{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1773
#AT_START_1774
at_fn_group_banner 1774 'ovsdb-tool.at:29' \
  "insert row, query table, commit durably" "        " 83
at_xfail=no
(
  $as_echo "1774. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   touch .db.~lock~
   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": []},
      {\"op\": \"commit\",
       \"durable\": true}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "select",
       "table": "ordinals",
       "where": []},
      {"op": "commit",
       "durable": true}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<1>\"],\"name\":\"zero\",\"number\":0}]},{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1774
#AT_START_1775
at_fn_group_banner 1775 'ovsdb-tool.at:29' \
  "equality wait with correct rows" "                " 83
at_xfail=no
(
  $as_echo "1775. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   touch .db.~lock~
   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 0,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"==\",
       \"rows\": [{\"name\": \"zero\", \"number\": 0},
                {\"name\": \"one\", \"number\": 1}]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "==",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1}]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1775
#AT_START_1776
at_fn_group_banner 1776 'ovsdb-tool.at:29' \
  "equality wait with extra row" "                   " 83
at_xfail=no
(
  $as_echo "1776. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   touch .db.~lock~
   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 0,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"==\",
       \"rows\": [{\"name\": \"zero\", \"number\": 0},
                {\"name\": \"one\", \"number\": 1},
                {\"name\": \"two\", \"number\": 2}]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "==",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1},
                {"name": "two", "number": 2}]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"details\":\"\\\"where\\\" clause test failed\",\"error\":\"timed out\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1776
#AT_START_1777
at_fn_group_banner 1777 'ovsdb-tool.at:29' \
  "equality wait with missing row" "                 " 83
at_xfail=no
(
  $as_echo "1777. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   touch .db.~lock~
   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 0,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"==\",
       \"rows\": [{\"name\": \"one\", \"number\": 1}]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "==",
       "rows": [{"name": "one", "number": 1}]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"details\":\"\\\"where\\\" clause test failed\",\"error\":\"timed out\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1777
#AT_START_1778
at_fn_group_banner 1778 'ovsdb-tool.at:29' \
  "inequality wait with correct rows" "              " 83
at_xfail=no
(
  $as_echo "1778. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   touch .db.~lock~
   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 0,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"!=\",
       \"rows\": [{\"name\": \"zero\", \"number\": 0},
                {\"name\": \"one\", \"number\": 1}]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "!=",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1}]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"details\":\"\\\"where\\\" clause test failed\",\"error\":\"timed out\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1778
#AT_START_1779
at_fn_group_banner 1779 'ovsdb-tool.at:29' \
  "inequality wait with extra row" "                 " 83
at_xfail=no
(
  $as_echo "1779. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   touch .db.~lock~
   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 0,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"!=\",
       \"rows\": [{\"name\": \"zero\", \"number\": 0},
                {\"name\": \"one\", \"number\": 1},
                {\"name\": \"two\", \"number\": 2}]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "!=",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1},
                {"name": "two", "number": 2}]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1779
#AT_START_1780
at_fn_group_banner 1780 'ovsdb-tool.at:29' \
  "inequality wait with missing row" "               " 83
at_xfail=no
(
  $as_echo "1780. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   touch .db.~lock~
   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 0,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"!=\",
       \"rows\": [{\"name\": \"one\", \"number\": 1}]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "!=",
       "rows": [{"name": "one", "number": 1}]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1780
#AT_START_1781
at_fn_group_banner 1781 'ovsdb-tool.at:29' \
  "insert and update constraints" "                  " 83
at_xfail=no
(
  $as_echo "1781. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   constraint_schema > schema
   touch .db.~lock~
   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"constrained\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"constrained\",
       \"row\": {\"positive\": -1}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {"positive": -1}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"constraints\",
      {\"op\": \"update\",
       \"table\": \"constrained\",
       \"where\": [],
       \"row\": {\"positive\": -2}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["constraints",
      {"op": "update",
       "table": "constrained",
       "where": [],
       "row": {"positive": -2}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"constrained\",
       \"row\": {\"positive\": 1}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {"positive": 1}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"constrained\",
       \"row\": {\"positive\": 2}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {"positive": 2}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"details\":\"0 is less than minimum allowed value 1\",\"error\":\"constraint violation\"}]
[{\"details\":\"-1 is less than minimum allowed value 1\",\"error\":\"constraint violation\"}]
[{\"details\":\"-2 is less than minimum allowed value 1\",\"error\":\"constraint violation\"}]
[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]},{\"details\":\"transaction causes \\\"constrained\\\" table to contain 2 rows, greater than the schema-defined limit of 1 row(s)\",\"error\":\"constraint violation\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1781
#AT_START_1782
at_fn_group_banner 1782 'ovsdb-tool.at:29' \
  "index uniqueness checking" "                      " 83
at_xfail=no
(
  $as_echo "1782. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   touch .db.~lock~
   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '   [\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"another one\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '   ["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "another one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '   [\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"another one\"}},
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"one\"]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '   ["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "another one"}},
      {"op": "delete",
       "table": "ordinals",
       "where": [["name", "==", "one"]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '   [\"ordinals\",
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": []},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"still another one\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '   ["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": []},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "still another one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '   [\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 2, \"name\": \"two\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '   ["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 2, "name": "two"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '   [\"ordinals\",
      {\"op\": \"update\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"row\": {\"number\": 3}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '   ["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [],
       "row": {"number": 3}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '   [\"ordinals\",
      {\"op\": \"update\",
       \"table\": \"ordinals\",
       \"where\": [[\"number\", \"==\", 1]],
       \"row\": {\"number\": 2, \"name\": \"old two\"}},
      {\"op\": \"update\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"two\"]],
       \"row\": {\"number\": 1, \"name\": \"old one\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '   ["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [["number", "==", 1]],
       "row": {"number": 2, "name": "old two"}},
      {"op": "update",
       "table": "ordinals",
       "where": [["name", "==", "two"]],
       "row": {"number": 1, "name": "old one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '   [\"ordinals\",
      {\"op\": \"mutate\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"mutations\": [[\"number\", \"*=\", 10]]},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"new one\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 2, \"name\": \"new two\"}},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"number\", \"name\"],
       \"sort\": [\"number\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '   ["ordinals",
      {"op": "mutate",
       "table": "ordinals",
       "where": [],
       "mutations": [["number", "*=", 10]]},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "new one"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 2, "name": "new two"}},
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "columns": ["number", "name"],
       "sort": ["number"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]},{\"details\":\"Transaction causes multiple rows in \\\"ordinals\\\" table to have identical values (1) for index on column \\\"number\\\".  First row, with UUID <0>, existed in the database before this transaction and was not modified by the transaction.  Second row, with UUID <1>, was inserted by this transaction.\",\"error\":\"constraint violation\"}]
[{\"uuid\":[\"uuid\",\"<2>\"]},{\"count\":1}]
[{\"count\":1},{\"uuid\":[\"uuid\",\"<3>\"]},{\"uuid\":[\"uuid\",\"<4>\"]},{\"details\":\"Transaction causes multiple rows in \\\"ordinals\\\" table to have identical values (1) for index on column \\\"number\\\".  First row, with UUID <4>, was inserted by this transaction.  Second row, with UUID <3>, was inserted by this transaction.\",\"error\":\"constraint violation\"}]
[{\"uuid\":[\"uuid\",\"<5>\"]}]
[{\"count\":2},{\"details\":\"Transaction causes multiple rows in \\\"ordinals\\\" table to have identical values (3) for index on column \\\"number\\\".  First row, with UUID <5>, had the following index values before the transaction: 2.  Second row, with UUID <2>, had the following index values before the transaction: 1.\",\"error\":\"constraint violation\"}]
[{\"count\":1},{\"count\":1}]
[{\"count\":2},{\"uuid\":[\"uuid\",\"<6>\"]},{\"uuid\":[\"uuid\",\"<7>\"]},{\"rows\":[{\"name\":\"new one\",\"number\":1},{\"name\":\"new two\",\"number\":2},{\"name\":\"old one\",\"number\":10},{\"name\":\"old two\",\"number\":20}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1782
#AT_START_1783
at_fn_group_banner 1783 'ovsdb-tool.at:29' \
  "referential integrity -- simple" "                " 83
at_xfail=no
(
  $as_echo "1783. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   constraint_schema > schema
   touch .db.~lock~
   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"b\",
       \"row\": {\"b\": 1},
       \"uuid-name\": \"brow\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 0,
               \"a2b\": [\"set\", [[\"named-uuid\", \"brow\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 1,
               \"a2b\": [\"set\", [[\"named-uuid\", \"brow\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 2,
               \"a2b\": [\"set\", [[\"named-uuid\", \"brow\"]]]}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["constraints",
      {"op": "insert",
       "table": "b",
       "row": {"b": 1},
       "uuid-name": "brow"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 0,
               "a2b": ["set", [["named-uuid", "brow"]]]}},
      {"op": "insert",
       "table": "a",
       "row": {"a": 1,
               "a2b": ["set", [["named-uuid", "brow"]]]}},
      {"op": "insert",
       "table": "a",
       "row": {"a": 2,
               "a2b": ["set", [["named-uuid", "brow"]]]}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '   [\"constraints\",
      {\"op\": \"mutate\",
       \"table\": \"b\",
       \"where\": [],
       \"mutations\": [[\"x\", \"delete\", 0]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '   ["constraints",
      {"op": "mutate",
       "table": "b",
       "where": [],
       "mutations": [["x", "delete", 0]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 0]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 1]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 2]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 2]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]},{\"uuid\":[\"uuid\",\"<3>\"]}]
[{\"count\":1},{\"details\":\"cannot delete b row <0> because of 3 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"details\":\"Attempted to store 0 elements in set of 1 to 2 integers.\",\"error\":\"constraint violation\"}]
[{\"count\":1}]
[{\"count\":1},{\"details\":\"cannot delete b row <0> because of 2 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"count\":1}]
[{\"count\":1},{\"details\":\"cannot delete b row <0> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"count\":1}]
[{\"count\":1}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1783
#AT_START_1784
at_fn_group_banner 1784 'ovsdb-tool.at:29' \
  "referential integrity -- mutual references" "     " 83
at_xfail=no
(
  $as_echo "1784. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   constraint_schema > schema
   touch .db.~lock~
   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 0,
               \"a2b\": [\"set\", [[\"named-uuid\", \"row2\"]]],
               \"a2a\": [\"set\", [[\"named-uuid\", \"row1\"]]]},
       \"uuid-name\": \"row1\"},
      {\"op\": \"insert\",
       \"table\": \"b\",
       \"row\": {\"b\": 1,
               \"b2b\": [\"set\", [[\"named-uuid\", \"row2\"]]],
               \"b2a\": [\"set\", [[\"named-uuid\", \"row1\"]]]},
       \"uuid-name\": \"row2\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["constraints",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0,
               "a2b": ["set", [["named-uuid", "row2"]]],
               "a2a": ["set", [["named-uuid", "row1"]]]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "b",
       "row": {"b": 1,
               "b2b": ["set", [["named-uuid", "row2"]]],
               "b2a": ["set", [["named-uuid", "row1"]]]},
       "uuid-name": "row2"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a2b\": [\"set\", [[\"uuid\", \"b516b960-5b19-4fc2-bb82-fe1cbd6d0241\"]]]}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["constraints",
      {"op": "insert",
       "table": "a",
       "row": {"a2b": ["set", [["uuid", "b516b960-5b19-4fc2-bb82-fe1cbd6d0241"]]]}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 0]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": [[\"b\", \"==\", 1]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["constraints",
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '   [\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 0]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '   ["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": [[\"b\", \"==\", 1]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["constraints",
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 0]]},
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": [[\"b\", \"==\", 1]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]},
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"uuid\":[\"uuid\",\"<2>\"]},{\"details\":\"Table a column a2b row <2> references nonexistent row <3> in table b.\",\"error\":\"referential integrity violation\"}]
[{\"count\":1},{\"details\":\"cannot delete a row <0> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"count\":1},{\"details\":\"cannot delete b row <1> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"count\":1},{\"details\":\"cannot delete a row <0> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"count\":1},{\"details\":\"cannot delete b row <1> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"count\":1},{\"count\":1}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1784
#AT_START_1785
at_fn_group_banner 1785 'ovsdb-tool.at:29' \
  "weak references" "                                " 83
at_xfail=no
(
  $as_echo "1785. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   weak_schema > schema
   touch .db.~lock~
   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"weak\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 0,
               \"a2a\": [\"set\", [[\"named-uuid\", \"row1\"],
                               [\"named-uuid\", \"row2\"],
                               [\"uuid\", \"0e767b36-6822-4044-8307-d58467e04669\"]]],
               \"a2a1\": [\"named-uuid\", \"row1\"],
               \"a2b\": [\"named-uuid\", \"row3\"]},
       \"uuid-name\": \"row1\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 1,
               \"a2a\": [\"set\", [[\"named-uuid\", \"row1\"],
                               [\"named-uuid\", \"row2\"]]],
               \"a2a1\": [\"named-uuid\", \"row2\"],
               \"a2b\": [\"named-uuid\", \"row3\"]},
       \"uuid-name\": \"row2\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 2,
               \"a2a\": [\"set\", [[\"named-uuid\", \"row1\"],
                               [\"named-uuid\", \"row2\"]]],
               \"a2a1\": [\"named-uuid\", \"row2\"],
               \"a2b\": [\"named-uuid\", \"row4\"]}},
      {\"op\": \"insert\",
       \"table\": \"b\",
       \"row\": {\"b\": 2,
               \"b2a\": [\"named-uuid\", \"row1\"]},
       \"uuid-name\": \"row3\"},
      {\"op\": \"insert\",
       \"table\": \"b\",
       \"row\": {\"b\": 3,
               \"b2a\": [\"named-uuid\", \"row2\"]},
       \"uuid-name\": \"row4\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["weak",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0,
               "a2a": ["set", [["named-uuid", "row1"],
                               ["named-uuid", "row2"],
                               ["uuid", "0e767b36-6822-4044-8307-d58467e04669"]]],
               "a2a1": ["named-uuid", "row1"],
               "a2b": ["named-uuid", "row3"]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 1,
               "a2a": ["set", [["named-uuid", "row1"],
                               ["named-uuid", "row2"]]],
               "a2a1": ["named-uuid", "row2"],
               "a2b": ["named-uuid", "row3"]},
       "uuid-name": "row2"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 2,
               "a2a": ["set", [["named-uuid", "row1"],
                               ["named-uuid", "row2"]]],
               "a2a1": ["named-uuid", "row2"],
               "a2b": ["named-uuid", "row4"]}},
      {"op": "insert",
       "table": "b",
       "row": {"b": 2,
               "b2a": ["named-uuid", "row1"]},
       "uuid-name": "row3"},
      {"op": "insert",
       "table": "b",
       "row": {"b": 3,
               "b2a": ["named-uuid", "row2"]},
       "uuid-name": "row4"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '      [\"weak\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"a2a\", \"a2a1\", \"a2b\"],
       \"sort\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '      ["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"b\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"b\", \"b2a\"],
       \"sort\": [\"b\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '      [\"weak\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a2a1\": [\"named-uuid\", \"me\"]},
       \"uuid-name\": \"me\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '      ["weak",
      {"op": "insert",
       "table": "a",
       "row": {"a2a1": ["named-uuid", "me"]},
       "uuid-name": "me"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '      [\"weak\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": [[\"b\", \"==\", 3]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '      ["weak",
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 3]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '      [\"weak\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 1]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '      ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '      [\"weak\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 2]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '      ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 2]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"a2a\", \"a2a1\", \"a2b\"],
       \"sort\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"b\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"b\", \"b2a\"],
       \"sort\": [\"b\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '   [\"weak\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 0]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '   ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"a2a\", \"a2a1\", \"a2b\"],
       \"sort\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"b\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"b\", \"b2a\"],
       \"sort\": [\"b\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '   [\"weak\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 1]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '   ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"a2a\", \"a2a1\", \"a2b\"],
       \"sort\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"b\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"b\", \"b2a\"],
       \"sort\": [\"b\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]},{\"uuid\":[\"uuid\",\"<3>\"]},{\"uuid\":[\"uuid\",\"<4>\"]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"a2a\":[\"set\",[[\"uuid\",\"<0>\"],[\"uuid\",\"<1>\"]]],\"a2a1\":[\"uuid\",\"<0>\"],\"a2b\":[\"uuid\",\"<3>\"]},{\"_uuid\":[\"uuid\",\"<1>\"],\"a2a\":[\"set\",[[\"uuid\",\"<0>\"],[\"uuid\",\"<1>\"]]],\"a2a1\":[\"uuid\",\"<1>\"],\"a2b\":[\"uuid\",\"<3>\"]},{\"_uuid\":[\"uuid\",\"<2>\"],\"a2a\":[\"set\",[[\"uuid\",\"<0>\"],[\"uuid\",\"<1>\"]]],\"a2a1\":[\"uuid\",\"<1>\"],\"a2b\":[\"uuid\",\"<4>\"]}]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<3>\"],\"b\":2,\"b2a\":[\"uuid\",\"<0>\"]},{\"_uuid\":[\"uuid\",\"<4>\"],\"b\":3,\"b2a\":[\"uuid\",\"<1>\"]}]}]
[{\"uuid\":[\"uuid\",\"<5>\"]},{\"details\":\"Weak reference column \\\"a2b\\\" in \\\"a\\\" row <5> (inserted within this transaction) contained all-zeros UUID (probably as the default value for this column) but deleting this value caused a constraint volation because this column is not allowed to be empty.\",\"error\":\"constraint violation\"}]
[{\"count\":1},{\"details\":\"Deletion of 1 weak reference(s) to deleted (or never-existing) rows from column \\\"a2b\\\" in \\\"a\\\" row <2> caused this column to become empty, but constraints on this column disallow an empty column.\",\"error\":\"constraint violation\"}]
[{\"count\":1},{\"details\":\"Deletion of 1 weak reference(s) to deleted (or never-existing) rows from column \\\"a2a1\\\" in \\\"a\\\" row <2> caused this column to become empty, but constraints on this column disallow an empty column.\",\"error\":\"constraint violation\"}]
[{\"count\":1}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"a2a\":[\"set\",[[\"uuid\",\"<0>\"],[\"uuid\",\"<1>\"]]],\"a2a1\":[\"uuid\",\"<0>\"],\"a2b\":[\"uuid\",\"<3>\"]},{\"_uuid\":[\"uuid\",\"<1>\"],\"a2a\":[\"set\",[[\"uuid\",\"<0>\"],[\"uuid\",\"<1>\"]]],\"a2a1\":[\"uuid\",\"<1>\"],\"a2b\":[\"uuid\",\"<3>\"]}]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<3>\"],\"b\":2,\"b2a\":[\"uuid\",\"<0>\"]},{\"_uuid\":[\"uuid\",\"<4>\"],\"b\":3,\"b2a\":[\"uuid\",\"<1>\"]}]}]
[{\"count\":1}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<1>\"],\"a2a\":[\"uuid\",\"<1>\"],\"a2a1\":[\"uuid\",\"<1>\"],\"a2b\":[\"uuid\",\"<3>\"]}]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<3>\"],\"b\":2,\"b2a\":[\"set\",[]]},{\"_uuid\":[\"uuid\",\"<4>\"],\"b\":3,\"b2a\":[\"uuid\",\"<1>\"]}]}]
[{\"count\":1}]
[{\"rows\":[]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<3>\"],\"b\":2,\"b2a\":[\"set\",[]]},{\"_uuid\":[\"uuid\",\"<4>\"],\"b\":3,\"b2a\":[\"set\",[]]}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1785
#AT_START_1786
at_fn_group_banner 1786 'ovsdb-tool.at:29' \
  "immutable columns" "                              " 83
at_xfail=no
(
  $as_echo "1786. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   immutable_schema > schema
   touch .db.~lock~
   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"immutable\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"i\": 5},
       \"uuid-name\": \"row1\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["immutable",
      {"op": "insert",
       "table": "a",
       "row": {"i": 5},
       "uuid-name": "row1"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"immutable\",
      {\"op\": \"update\",
       \"table\": \"a\",
       \"row\": {\"i\": 10},
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["immutable",
      {"op": "update",
       "table": "a",
       "row": {"i": 10},
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"immutable\",
      {\"op\": \"update\",
       \"table\": \"a\",
       \"row\": {\"i\": 5},
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["immutable",
      {"op": "update",
       "table": "a",
       "row": {"i": 5},
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"immutable\",
      {\"op\": \"mutate\",
       \"table\": \"a\",
       \"where\": [],
       \"mutations\": [[\"i\", \"-=\", 5]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["immutable",
      {"op": "mutate",
       "table": "a",
       "where": [],
       "mutations": [["i", "-=", 5]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"immutable\",
      {\"op\": \"mutate\",
       \"table\": \"a\",
       \"where\": [],
       \"mutations\": [[\"i\", \"*=\", 1]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["immutable",
      {"op": "mutate",
       "table": "a",
       "where": [],
       "mutations": [["i", "*=", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"details\":\"Cannot update immutable column i in table a.\",\"error\":\"constraint violation\",\"syntax\":\"{\\\"op\\\":\\\"update\\\",\\\"row\\\":{\\\"i\\\":10},\\\"table\\\":\\\"a\\\",\\\"where\\\":[]}\"}]
[{\"details\":\"Cannot update immutable column i in table a.\",\"error\":\"constraint violation\",\"syntax\":\"{\\\"op\\\":\\\"update\\\",\\\"row\\\":{\\\"i\\\":5},\\\"table\\\":\\\"a\\\",\\\"where\\\":[]}\"}]
[{\"details\":\"Cannot mutate immutable column i in table a.\",\"error\":\"constraint violation\",\"syntax\":\"[\\\"i\\\",\\\"-=\\\",5]\"}]
[{\"details\":\"Cannot mutate immutable column i in table a.\",\"error\":\"constraint violation\",\"syntax\":\"[\\\"i\\\",\\\"*=\\\",1]\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1786
#AT_START_1787
at_fn_group_banner 1787 'ovsdb-tool.at:29' \
  "garbage collection" "                             " 83
at_xfail=no
(
  $as_echo "1787. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   gc_schema > schema
   touch .db.~lock~
   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '   [\"gc\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 0}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '   ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '      [\"gc\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 0, \"a2a\": [\"named-uuid\", \"row1\"]},
       \"uuid-name\": \"row0\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 1, \"a2a\": [\"named-uuid\", \"row2\"]},
       \"uuid-name\": \"row1\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 2, \"a2a\": [\"named-uuid\", \"row3\"]},
       \"uuid-name\": \"row2\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 3},
       \"uuid-name\": \"row3\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '      ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0, "a2a": ["named-uuid", "row1"]},
       "uuid-name": "row0"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 1, "a2a": ["named-uuid", "row2"]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 2, "a2a": ["named-uuid", "row3"]},
       "uuid-name": "row2"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 3},
       "uuid-name": "row3"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '      [\"gc\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 4, \"a2a\": [\"named-uuid\", \"row5\"]},
       \"uuid-name\": \"row4\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 5, \"a2a\": [\"named-uuid\", \"row4\"]},
       \"uuid-name\": \"row5\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '      ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 4, "a2a": ["named-uuid", "row5"]},
       "uuid-name": "row4"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 5, "a2a": ["named-uuid", "row4"]},
       "uuid-name": "row5"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"],
       \"sort\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"],
       "sort": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '   [\"gc\",
      {\"op\": \"update\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 4]],
       \"row\": {\"a2a\": [\"set\", []]}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '   ["gc",
      {"op": "update",
       "table": "a",
       "where": [["a", "==", 4]],
       "row": {"a2a": ["set", []]}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '      [\"gc\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 6, \"wa2a\": [\"named-uuid\", \"row7\"]},
       \"uuid-name\": \"row6\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 7, \"wa2a\": [\"named-uuid\", \"row6\"]},
       \"uuid-name\": \"row7\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '      ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 6, "wa2a": ["named-uuid", "row7"]},
       "uuid-name": "row6"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 7, "wa2a": ["named-uuid", "row6"]},
       "uuid-name": "row7"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '   [\"gc\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 8, \"a2a\": [\"named-uuid\", \"row9\"]},
       \"uuid-name\": \"row8\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 9, \"a2a\": [\"named-uuid\", \"row10\"]},
       \"uuid-name\": \"row9\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 10, \"a2a\": [\"named-uuid\", \"row11\"]},
       \"uuid-name\": \"row10\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 11, \"a2a\": [\"named-uuid\", \"row8\"]},
       \"uuid-name\": \"row11\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '   ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 8, "a2a": ["named-uuid", "row9"]},
       "uuid-name": "row8"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 9, "a2a": ["named-uuid", "row10"]},
       "uuid-name": "row9"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 10, "a2a": ["named-uuid", "row11"]},
       "uuid-name": "row10"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 11, "a2a": ["named-uuid", "row8"]},
       "uuid-name": "row11"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"],
       \"sort\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"],
       "sort": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '   [\"gc\",
      {\"op\": \"update\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 9]],
       \"row\": {\"a2a\": [\"set\", []]}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '   ["gc",
      {"op": "update",
       "table": "a",
       "where": [["a", "==", 9]],
       "row": {"a2a": ["set", []]}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '   [\"gc\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 12, \"a2a\": [\"named-uuid\", \"self\"]},
       \"uuid-name\": \"self\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '   ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 12, "a2a": ["named-uuid", "self"]},
       "uuid-name": "self"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: ovsdb-tool transact db '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:29"
( $at_check_trace; ovsdb-tool transact db '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:29: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-tool.at:29"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"rows\":[]}]
[{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]},{\"uuid\":[\"uuid\",\"<3>\"]},{\"uuid\":[\"uuid\",\"<4>\"]}]
[{\"rows\":[]}]
[{\"uuid\":[\"uuid\",\"<5>\"]},{\"uuid\":[\"uuid\",\"<6>\"]}]
[{\"rows\":[{\"a\":4},{\"a\":5}]}]
[{\"count\":1}]
[{\"rows\":[]}]
[{\"uuid\":[\"uuid\",\"<7>\"]},{\"uuid\":[\"uuid\",\"<8>\"]}]
[{\"rows\":[]}]
[{\"uuid\":[\"uuid\",\"<9>\"]},{\"uuid\":[\"uuid\",\"<10>\"]},{\"uuid\":[\"uuid\",\"<11>\"]},{\"uuid\":[\"uuid\",\"<12>\"]}]
[{\"rows\":[{\"a\":8},{\"a\":9},{\"a\":10},{\"a\":11}]}]
[{\"count\":1}]
[{\"rows\":[]}]
[{\"uuid\":[\"uuid\",\"<13>\"]}]
[{\"rows\":[]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1787
#AT_START_1788
at_fn_group_banner 1788 'ovsdb-tool.at:31' \
  "transaction comments" "                           " 83
at_xfail=no
(
  $as_echo "1788. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ordinal_schema > schema
touch .db.~lock~
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:35: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-tool.at:35"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:35"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:36: ovsdb-tool transact db '
    [\"ordinals\",
     {\"op\": \"insert\",
      \"table\": \"ordinals\",
      \"row\": {\"name\": \"five\", \"number\": 5}},
     {\"op\": \"comment\",
      \"comment\": \"add row for 5\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:36"
( $at_check_trace; ovsdb-tool transact db '
    ["ordinals",
     {"op": "insert",
      "table": "ordinals",
      "row": {"name": "five", "number": 5}},
     {"op": "comment",
      "comment": "add row for 5"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:36"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:43: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-tool.at:43"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:43"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:46: grep \"add row for 5\" db"
at_fn_check_prepare_trace "ovsdb-tool.at:46"
( $at_check_trace; grep "add row for 5" db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:46"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1788
#AT_START_1789
at_fn_group_banner 1789 'ovsdb-tool.at:49' \
  "ovsdb-tool compact" "                             " 83
at_xfail=no
(
  $as_echo "1789. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ordinal_schema > schema
mkdir dir
: > dir/.db.~lock~
if test "$IS_WIN32" = "no"; then
    ln -s dir/db db
    $as_echo "ovsdb-tool.at:60" >"$at_check_line_file"
(test ! -h db) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-tool.at:60"
fi
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:62: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-tool.at:62"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:62"
$at_failed && at_fn_log_failure
$at_traceon; }

if test "$IS_WIN32" = "no"; then
    { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:64: test ! -e .db.~lock"
at_fn_check_prepare_trace "ovsdb-tool.at:64"
( $at_check_trace; test ! -e .db.~lock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:64"
$at_failed && at_fn_log_failure
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:65: test -h db"
at_fn_check_prepare_trace "ovsdb-tool.at:65"
( $at_check_trace; test -h db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:65"
$at_failed && at_fn_log_failure
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:66: test -f dir/db"
at_fn_check_prepare_trace "ovsdb-tool.at:66"
( $at_check_trace; test -f dir/db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:66"
$at_failed && at_fn_log_failure
$at_traceon; }

fi
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:69: for pair in 'zero 0' 'one 1' 'two 2' 'three 3' 'four 4' 'five 5'; do
      set -- \$pair
      ovsdb-tool transact db '
        [\"ordinals\",
         {\"op\": \"insert\",
          \"table\": \"ordinals\",
          \"row\": {\"name\": \"'\$1'\", \"number\": '\$2'}},
         {\"op\": \"comment\",
          \"comment\": \"add row for '\"\$pair\"'\"}]'
      ovsdb-tool transact db '
        [\"ordinals\",
         {\"op\": \"delete\",
          \"table\": \"ordinals\",
          \"where\": [[\"number\", \"==\", '\$2']]},
         {\"op\": \"comment\",
          \"comment\": \"delete row for '\"\$2\"'\"}]'
      ovsdb-tool transact db '
        [\"ordinals\",
         {\"op\": \"insert\",
          \"table\": \"ordinals\",
          \"row\": {\"name\": \"'\$1'\", \"number\": '\$2'}},
         {\"op\": \"comment\",
          \"comment\": \"add back row for '\"\$pair\"'\"}]'
    done"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:69"
( $at_check_trace; for pair in 'zero 0' 'one 1' 'two 2' 'three 3' 'four 4' 'five 5'; do
      set -- $pair
      ovsdb-tool transact db '
        ["ordinals",
         {"op": "insert",
          "table": "ordinals",
          "row": {"name": "'$1'", "number": '$2'}},
         {"op": "comment",
          "comment": "add row for '"$pair"'"}]'
      ovsdb-tool transact db '
        ["ordinals",
         {"op": "delete",
          "table": "ordinals",
          "where": [["number", "==", '$2']]},
         {"op": "comment",
          "comment": "delete row for '"$2"'"}]'
      ovsdb-tool transact db '
        ["ordinals",
         {"op": "insert",
          "table": "ordinals",
          "row": {"name": "'$1'", "number": '$2'}},
         {"op": "comment",
          "comment": "add back row for '"$pair"'"}]'
    done
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:69"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:96: uuidfilt db | grep -v ^OVSDB | sed 's/\"_date\":[0-9]*/\"_date\":0/' | ovstest test-json --multiple -"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-tool.at:96"
( $at_check_trace; uuidfilt db | grep -v ^OVSDB | sed 's/"_date":[0-9]*/"_date":0/' | ovstest test-json --multiple -
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"cksum\":\"12345678 9\",\"name\":\"ordinals\",\"tables\":{\"ordinals\":{\"columns\":{\"name\":{\"type\":\"string\"},\"number\":{\"type\":\"integer\"}},\"indexes\":[[\"number\"]]}},\"version\":\"5.1.3\"}
{\"_comment\":\"add row for zero 0\",\"_date\":0,\"ordinals\":{\"<0>\":{\"name\":\"zero\"}}}
{\"_comment\":\"delete row for 0\",\"_date\":0,\"ordinals\":{\"<0>\":null}}
{\"_comment\":\"add back row for zero 0\",\"_date\":0,\"ordinals\":{\"<1>\":{\"name\":\"zero\"}}}
{\"_comment\":\"add row for one 1\",\"_date\":0,\"ordinals\":{\"<2>\":{\"name\":\"one\",\"number\":1}}}
{\"_comment\":\"delete row for 1\",\"_date\":0,\"ordinals\":{\"<2>\":null}}
{\"_comment\":\"add back row for one 1\",\"_date\":0,\"ordinals\":{\"<3>\":{\"name\":\"one\",\"number\":1}}}
{\"_comment\":\"add row for two 2\",\"_date\":0,\"ordinals\":{\"<4>\":{\"name\":\"two\",\"number\":2}}}
{\"_comment\":\"delete row for 2\",\"_date\":0,\"ordinals\":{\"<4>\":null}}
{\"_comment\":\"add back row for two 2\",\"_date\":0,\"ordinals\":{\"<5>\":{\"name\":\"two\",\"number\":2}}}
{\"_comment\":\"add row for three 3\",\"_date\":0,\"ordinals\":{\"<6>\":{\"name\":\"three\",\"number\":3}}}
{\"_comment\":\"delete row for 3\",\"_date\":0,\"ordinals\":{\"<6>\":null}}
{\"_comment\":\"add back row for three 3\",\"_date\":0,\"ordinals\":{\"<7>\":{\"name\":\"three\",\"number\":3}}}
{\"_comment\":\"add row for four 4\",\"_date\":0,\"ordinals\":{\"<8>\":{\"name\":\"four\",\"number\":4}}}
{\"_comment\":\"delete row for 4\",\"_date\":0,\"ordinals\":{\"<8>\":null}}
{\"_comment\":\"add back row for four 4\",\"_date\":0,\"ordinals\":{\"<9>\":{\"name\":\"four\",\"number\":4}}}
{\"_comment\":\"add row for five 5\",\"_date\":0,\"ordinals\":{\"<10>\":{\"name\":\"five\",\"number\":5}}}
{\"_comment\":\"delete row for 5\",\"_date\":0,\"ordinals\":{\"<10>\":null}}
{\"_comment\":\"add back row for five 5\",\"_date\":0,\"ordinals\":{\"<11>\":{\"name\":\"five\",\"number\":5}}}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:96"
$at_failed && at_fn_log_failure
$at_traceon; }


on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:120: ovsdb-server --detach --pidfile --no-chdir --remote=punix:socket db"
at_fn_check_prepare_trace "ovsdb-tool.at:120"
( $at_check_trace; ovsdb-server --detach --pidfile --no-chdir --remote=punix:socket db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:120"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:122: ovsdb-client dump unix:socket ordinals"
at_fn_check_prepare_trace "ovsdb-tool.at:122"
( $at_check_trace; ovsdb-client dump unix:socket ordinals
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:122"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:124: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovsdb-tool.at:124"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:124"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:124: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-tool.at:124"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:124"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-tool.at:124: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-tool.at:124: wait failed" >&5

    $as_echo "ovsdb-tool.at:124" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-tool.at:124"
fi


{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:126: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-tool.at:126"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ordinals table
_uuid                                name  number
------------------------------------ ----- ------
<0> five  5
<1> four  4
<2> one   1
<3> three 3
<4> two   2
<5> zero  0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:126"
$at_failed && at_fn_log_failure
$at_traceon; }

touch .db.tmp.~lock~
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:139: ovsdb-tool compact db"
at_fn_check_prepare_trace "ovsdb-tool.at:139"
( $at_check_trace; ovsdb-tool compact db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:139"
$at_failed && at_fn_log_failure
$at_traceon; }

if test "$IS_WIN32" = "no"; then
    { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:143: test ! -e .db.~lock"
at_fn_check_prepare_trace "ovsdb-tool.at:143"
( $at_check_trace; test ! -e .db.~lock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:143"
$at_failed && at_fn_log_failure
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:144: test -h db"
at_fn_check_prepare_trace "ovsdb-tool.at:144"
( $at_check_trace; test -h db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:144"
$at_failed && at_fn_log_failure
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:145: test -f dir/db"
at_fn_check_prepare_trace "ovsdb-tool.at:145"
( $at_check_trace; test -f dir/db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:145"
$at_failed && at_fn_log_failure
$at_traceon; }

fi

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:151: test \`wc -l < db\` -eq 4"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-tool.at:151"
( $at_check_trace; test `wc -l < db` -eq 4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:151"
$at_failed && at_fn_log_failure  \
"db"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:153: ovsdb-server --detach --pidfile --no-chdir --remote=punix:socket db"
at_fn_check_prepare_trace "ovsdb-tool.at:153"
( $at_check_trace; ovsdb-server --detach --pidfile --no-chdir --remote=punix:socket db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:153"
$at_failed && at_fn_log_failure  \
"db"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:155: ovsdb-client dump unix:socket ordinals"
at_fn_check_prepare_trace "ovsdb-tool.at:155"
( $at_check_trace; ovsdb-client dump unix:socket ordinals
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:155"
$at_failed && at_fn_log_failure  \
"db"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:157: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovsdb-tool.at:157"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:157"
$at_failed && at_fn_log_failure  \
"db"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:157: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-tool.at:157"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:157"
$at_failed && at_fn_log_failure  \
"db"
$at_traceon; }

   $as_echo "ovsdb-tool.at:157: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-tool.at:157: wait failed" >&5

    $as_echo "ovsdb-tool.at:157" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-tool.at:157"
fi


{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:159: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-tool.at:159"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ordinals table
_uuid                                name  number
------------------------------------ ----- ------
<0> five  5
<1> four  4
<2> one   1
<3> three 3
<4> two   2
<5> zero  0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:159"
$at_failed && at_fn_log_failure  \
"db"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1789
#AT_START_1790
at_fn_group_banner 1790 'ovsdb-tool.at:172' \
  "ovsdb-tool convert -- removing a column" "        " 83
at_xfail=no
(
  $as_echo "1790. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ordinal_schema > schema
cat >new-schema <<'_ATEOF'
{"name": "ordinals",
     "tables": {
       "ordinals": {
         "columns": {
           "number": {"type": "integer"}}}}}
_ATEOF

touch .db.~lock~
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:183: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-tool.at:183"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:183"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:185: for pair in 'zero 0' 'one 1' 'two 2' 'three 3' 'four 4' 'five 5'; do
      set -- \$pair
      ovsdb-tool transact db '
        [\"ordinals\",
         {\"op\": \"insert\",
          \"table\": \"ordinals\",
          \"row\": {\"name\": \"'\$1'\", \"number\": '\$2'}},
         {\"op\": \"comment\",
          \"comment\": \"add row for '\"\$pair\"'\"}]'
    done"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:185"
( $at_check_trace; for pair in 'zero 0' 'one 1' 'two 2' 'three 3' 'four 4' 'five 5'; do
      set -- $pair
      ovsdb-tool transact db '
        ["ordinals",
         {"op": "insert",
          "table": "ordinals",
          "row": {"name": "'$1'", "number": '$2'}},
         {"op": "comment",
          "comment": "add row for '"$pair"'"}]'
    done
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:185"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:198: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db"
at_fn_check_prepare_trace "ovsdb-tool.at:198"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:198"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:200: ovsdb-client dump unix:socket ordinals"
at_fn_check_prepare_trace "ovsdb-tool.at:200"
( $at_check_trace; ovsdb-client dump unix:socket ordinals
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:200"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:201: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-tool.at:201"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ordinals table
_uuid                                name  number
------------------------------------ ----- ------
<0> five  5
<1> four  4
<2> one   1
<3> three 3
<4> two   2
<5> zero  0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:201"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:212: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovsdb-tool.at:212"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:212"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:212: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-tool.at:212"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:212"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-tool.at:212: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-tool.at:212: wait failed" >&5

    $as_echo "ovsdb-tool.at:212" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-tool.at:212"
fi

touch .db.tmp.~lock~
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:215: ovsdb-tool convert db new-schema"
at_fn_check_prepare_trace "ovsdb-tool.at:215"
( $at_check_trace; ovsdb-tool convert db new-schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:215"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:220: test \`wc -l < db\` -eq 4"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-tool.at:220"
( $at_check_trace; test `wc -l < db` -eq 4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:220"
$at_failed && at_fn_log_failure  \
"db"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:222: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db"
at_fn_check_prepare_trace "ovsdb-tool.at:222"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:222"
$at_failed && at_fn_log_failure  \
"db"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:224: ovsdb-client dump unix:socket ordinals"
at_fn_check_prepare_trace "ovsdb-tool.at:224"
( $at_check_trace; ovsdb-client dump unix:socket ordinals
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:224"
$at_failed && at_fn_log_failure  \
"db"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:225: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-tool.at:225"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ordinals table
_uuid                                number
------------------------------------ ------
<0> 0
<1> 1
<2> 2
<3> 3
<4> 4
<5> 5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:225"
$at_failed && at_fn_log_failure  \
"db"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:236: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovsdb-tool.at:236"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:236"
$at_failed && at_fn_log_failure  \
"db"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:236: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-tool.at:236"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:236"
$at_failed && at_fn_log_failure  \
"db"
$at_traceon; }

   $as_echo "ovsdb-tool.at:236: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-tool.at:236: wait failed" >&5

    $as_echo "ovsdb-tool.at:236" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-tool.at:236"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1790
#AT_START_1791
at_fn_group_banner 1791 'ovsdb-tool.at:239' \
  "ovsdb-tool convert -- adding a column" "          " 83
at_xfail=no
(
  $as_echo "1791. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >schema <<'_ATEOF'
{"name": "ordinals",
     "tables": {
       "ordinals": {
         "columns": {
           "number": {"type": "integer"}}}}}
_ATEOF

ordinal_schema > new-schema
touch .db.~lock~
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:250: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-tool.at:250"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:250"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:252: for number in 0 1 2 3 4 5; do
      ovsdb-tool transact db '
        [\"ordinals\",
         {\"op\": \"insert\",
          \"table\": \"ordinals\",
          \"row\": {\"number\": '\$number'}},
         {\"op\": \"comment\",
          \"comment\": \"add row for '\"\$number\"'\"}]'
    done"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:252"
( $at_check_trace; for number in 0 1 2 3 4 5; do
      ovsdb-tool transact db '
        ["ordinals",
         {"op": "insert",
          "table": "ordinals",
          "row": {"number": '$number'}},
         {"op": "comment",
          "comment": "add row for '"$number"'"}]'
    done
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:252"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:264: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db"
at_fn_check_prepare_trace "ovsdb-tool.at:264"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:264"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:266: ovsdb-client dump unix:socket ordinals"
at_fn_check_prepare_trace "ovsdb-tool.at:266"
( $at_check_trace; ovsdb-client dump unix:socket ordinals
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:266"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:267: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-tool.at:267"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ordinals table
_uuid                                number
------------------------------------ ------
<0> 0
<1> 1
<2> 2
<3> 3
<4> 4
<5> 5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:267"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:278: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovsdb-tool.at:278"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:278"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:278: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-tool.at:278"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:278"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-tool.at:278: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-tool.at:278: wait failed" >&5

    $as_echo "ovsdb-tool.at:278" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-tool.at:278"
fi

touch .db.tmp.~lock~
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:281: ovsdb-tool convert db new-schema"
at_fn_check_prepare_trace "ovsdb-tool.at:281"
( $at_check_trace; ovsdb-tool convert db new-schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:281"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:286: test \`wc -l < db\` -eq 4"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-tool.at:286"
( $at_check_trace; test `wc -l < db` -eq 4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:286"
$at_failed && at_fn_log_failure  \
"db"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:288: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db"
at_fn_check_prepare_trace "ovsdb-tool.at:288"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:288"
$at_failed && at_fn_log_failure  \
"db"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:290: ovsdb-client dump unix:socket ordinals"
at_fn_check_prepare_trace "ovsdb-tool.at:290"
( $at_check_trace; ovsdb-client dump unix:socket ordinals
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:290"
$at_failed && at_fn_log_failure  \
"db"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:291: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-tool.at:291"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ordinals table
_uuid                                name number
------------------------------------ ---- ------
<0> \"\"   0
<1> \"\"   1
<2> \"\"   2
<3> \"\"   3
<4> \"\"   4
<5> \"\"   5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:291"
$at_failed && at_fn_log_failure  \
"db"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:302: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovsdb-tool.at:302"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:302"
$at_failed && at_fn_log_failure  \
"db"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:302: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-tool.at:302"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:302"
$at_failed && at_fn_log_failure  \
"db"
$at_traceon; }

   $as_echo "ovsdb-tool.at:302: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-tool.at:302: wait failed" >&5

    $as_echo "ovsdb-tool.at:302" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-tool.at:302"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1791
#AT_START_1792
at_fn_group_banner 1792 'ovsdb-tool.at:305' \
  "ovsdb-tool unsupported cluster operations" "      " 83
at_xfail=no
(
  $as_echo "1792. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ordinal_schema > schema
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:308: ovsdb-tool create-cluster db schema unix:s1.raft"
at_fn_check_prepare_trace "ovsdb-tool.at:308"
( $at_check_trace; ovsdb-tool create-cluster db schema unix:s1.raft
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:308"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:309: ovsdb-tool compact db"
at_fn_check_prepare_trace "ovsdb-tool.at:309"
( $at_check_trace; ovsdb-tool compact db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovsdb-tool: ovsdb error: db: cannot apply this operation to clustered database file
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-tool.at:309"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:311: ovsdb-tool convert db schema"
at_fn_check_prepare_trace "ovsdb-tool.at:311"
( $at_check_trace; ovsdb-tool convert db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovsdb-tool: ovsdb error: db: cannot apply this operation to clustered database file
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-tool.at:311"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:313: ovsdb-tool needs-conversion db schema"
at_fn_check_prepare_trace "ovsdb-tool.at:313"
( $at_check_trace; ovsdb-tool needs-conversion db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovsdb-tool: ovsdb error: db: cannot apply this operation to clustered database file
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-tool.at:313"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:315: ovsdb-tool query db '[]'"
at_fn_check_prepare_trace "ovsdb-tool.at:315"
( $at_check_trace; ovsdb-tool query db '[]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovsdb-tool: ovsdb error: db: cannot apply this operation to clustered database file
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-tool.at:315"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:317: ovsdb-tool transact db '[]'"
at_fn_check_prepare_trace "ovsdb-tool.at:317"
( $at_check_trace; ovsdb-tool transact db '[]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovsdb-tool: ovsdb error: db: cannot apply this operation to clustered database file
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-tool.at:317"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1792
#AT_START_1793
at_fn_group_banner 1793 'ovsdb-tool.at:321' \
  "ovsdb-tool schema-version, schema-cksum, schema-name" "" 83
at_xfail=no
(
  $as_echo "1793. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ordinal_schema > schema
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:324: ovsdb-tool schema-version schema"
at_fn_check_prepare_trace "ovsdb-tool.at:324"
( $at_check_trace; ovsdb-tool schema-version schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "5.1.3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:324"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:326: ovsdb-tool schema-cksum schema"
at_fn_check_prepare_trace "ovsdb-tool.at:326"
( $at_check_trace; ovsdb-tool schema-cksum schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "12345678 9
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:326"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:328: ovsdb-tool schema-name schema"
at_fn_check_prepare_trace "ovsdb-tool.at:328"
( $at_check_trace; ovsdb-tool schema-name schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ordinals
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:328"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1793
#AT_START_1794
at_fn_group_banner 1794 'ovsdb-tool.at:332' \
  "ovsdb-tool database inspection commands - standalone" "" 83
at_xfail=no
(
  $as_echo "1794. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ordinal_schema > schema
touch .db.~lock~
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:336: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-tool.at:336"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:336"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:337: ovsdb-tool db-version db"
at_fn_check_prepare_trace "ovsdb-tool.at:337"
( $at_check_trace; ovsdb-tool db-version db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "5.1.3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:337"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:339: ovsdb-tool db-cksum db"
at_fn_check_prepare_trace "ovsdb-tool.at:339"
( $at_check_trace; ovsdb-tool db-cksum db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "12345678 9
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:339"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:341: ovsdb-tool db-name db"
at_fn_check_prepare_trace "ovsdb-tool.at:341"
( $at_check_trace; ovsdb-tool db-name db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ordinals
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:341"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:343: ovsdb-tool db-cid db"
at_fn_check_prepare_trace "ovsdb-tool.at:343"
( $at_check_trace; ovsdb-tool db-cid db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovsdb-tool: db: not a clustered database
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-tool.at:343"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:345: ovsdb-tool db-sid db"
at_fn_check_prepare_trace "ovsdb-tool.at:345"
( $at_check_trace; ovsdb-tool db-sid db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovsdb-tool: db: not a clustered database
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-tool.at:345"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:347: ovsdb-tool db-local-address db"
at_fn_check_prepare_trace "ovsdb-tool.at:347"
( $at_check_trace; ovsdb-tool db-local-address db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovsdb-tool: db: not a clustered database
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-tool.at:347"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1794
#AT_START_1795
at_fn_group_banner 1795 'ovsdb-tool.at:351' \
  "ovsdb-tool database inspection commands - clustered" "" 83
at_xfail=no
(
  $as_echo "1795. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ordinal_schema > schema
touch .db.~lock~
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:355: ovsdb-tool create-cluster db schema tcp:1.2.3.4:1234"
at_fn_check_prepare_trace "ovsdb-tool.at:355"
( $at_check_trace; ovsdb-tool create-cluster db schema tcp:1.2.3.4:1234
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:355"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:356: ovsdb-tool db-version db"
at_fn_check_prepare_trace "ovsdb-tool.at:356"
( $at_check_trace; ovsdb-tool db-version db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovsdb-tool: ovsdb error: db: cannot apply this operation to clustered database file
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-tool.at:356"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:358: ovsdb-tool db-cksum db"
at_fn_check_prepare_trace "ovsdb-tool.at:358"
( $at_check_trace; ovsdb-tool db-cksum db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovsdb-tool: ovsdb error: db: cannot apply this operation to clustered database file
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-tool.at:358"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:360: ovsdb-tool db-name db"
at_fn_check_prepare_trace "ovsdb-tool.at:360"
( $at_check_trace; ovsdb-tool db-name db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ordinals
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:360"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:362: (ovsdb-tool db-cid db; ovsdb-tool db-sid db) | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-tool.at:362"
( $at_check_trace; (ovsdb-tool db-cid db; ovsdb-tool db-sid db) | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<0>
<1>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:362"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:365: ovsdb-tool db-local-address db"
at_fn_check_prepare_trace "ovsdb-tool.at:365"
( $at_check_trace; ovsdb-tool db-local-address db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "tcp:1.2.3.4:1234
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:365"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1795
#AT_START_1796
at_fn_group_banner 1796 'ovsdb-tool.at:369' \
  "ovsdb-tool database inspection commands - joining a cluster" "" 83
at_xfail=no
(
  $as_echo "1796. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ordinal_schema > schema
touch .db.~lock~
for cid in '' 520cf525-3772-43cc-8268-23bf5b548cf4; do
    if test -z "$cid"; then
        cid_option=
    else
        cid_option=--cid=$cid
    fi
    { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:379: rm -f db && ovsdb-tool \$cid_option join-cluster db ordinals tcp:1.2.3.4:1234 tcp:2.3.4.5:1234"
at_fn_check_prepare_dynamic "rm -f db && ovsdb-tool $cid_option join-cluster db ordinals tcp:1.2.3.4:1234 tcp:2.3.4.5:1234" "ovsdb-tool.at:379"
( $at_check_trace; rm -f db && ovsdb-tool $cid_option join-cluster db ordinals tcp:1.2.3.4:1234 tcp:2.3.4.5:1234
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:379"
$at_failed && at_fn_log_failure
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:380: ovsdb-tool db-version db"
at_fn_check_prepare_trace "ovsdb-tool.at:380"
( $at_check_trace; ovsdb-tool db-version db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovsdb-tool: ovsdb error: db: cannot apply this operation to clustered database file
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-tool.at:380"
$at_failed && at_fn_log_failure
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:382: ovsdb-tool db-cksum db"
at_fn_check_prepare_trace "ovsdb-tool.at:382"
( $at_check_trace; ovsdb-tool db-cksum db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovsdb-tool: ovsdb error: db: cannot apply this operation to clustered database file
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-tool.at:382"
$at_failed && at_fn_log_failure
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:384: ovsdb-tool db-name db"
at_fn_check_prepare_trace "ovsdb-tool.at:384"
( $at_check_trace; ovsdb-tool db-name db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ordinals
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:384"
$at_failed && at_fn_log_failure
$at_traceon; }

    if test -z "$cid"; then
        { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:387: ovsdb-tool db-cid db"
at_fn_check_prepare_trace "ovsdb-tool.at:387"
( $at_check_trace; ovsdb-tool db-cid db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "db: cluster ID not yet known
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ovsdb-tool.at:387"
$at_failed && at_fn_log_failure
$at_traceon; }

    else
        { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:390: ovsdb-tool db-cid db"
at_fn_check_prepare_trace "ovsdb-tool.at:390"
( $at_check_trace; ovsdb-tool db-cid db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "$cid
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:390"
$at_failed && at_fn_log_failure
$at_traceon; }

    fi
    { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:393: ovsdb-tool db-sid db | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-tool.at:393"
( $at_check_trace; ovsdb-tool db-sid db | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<0>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:393"
$at_failed && at_fn_log_failure
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:395: ovsdb-tool db-local-address db"
at_fn_check_prepare_trace "ovsdb-tool.at:395"
( $at_check_trace; ovsdb-tool db-local-address db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "tcp:1.2.3.4:1234
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

done
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1796
#AT_START_1797
at_fn_group_banner 1797 'ovsdb-tool.at:400' \
  "ovsdb-tool needs-conversion (no conversion needed)" "" 83
at_xfail=no
(
  $as_echo "1797. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ordinal_schema > schema
touch .db.~lock~
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:404: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-tool.at:404"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:404"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:405: ovsdb-tool needs-conversion db schema"
at_fn_check_prepare_trace "ovsdb-tool.at:405"
( $at_check_trace; ovsdb-tool needs-conversion db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "no
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:405"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1797
#AT_START_1798
at_fn_group_banner 1798 'ovsdb-tool.at:409' \
  "ovsdb-tool needs-conversion (conversion needed)" "" 83
at_xfail=no
(
  $as_echo "1798. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ordinal_schema > schema
touch .db.~lock~
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:413: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-tool.at:413"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:413"
$at_failed && at_fn_log_failure
$at_traceon; }

sed 's/5\.1\.3/5.1.4/' < schema > schema2
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:415: diff schema schema2"
at_fn_check_prepare_trace "ovsdb-tool.at:415"
( $at_check_trace; diff schema schema2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-tool.at:415"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:416: ovsdb-tool needs-conversion db schema2"
at_fn_check_prepare_trace "ovsdb-tool.at:416"
( $at_check_trace; ovsdb-tool needs-conversion db schema2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "yes
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:416"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1798
#AT_START_1799
at_fn_group_banner 1799 'ovsdb-tool.at:420' \
  "ovsdb-tool create-cluster with initial data" "    " 83
at_xfail=no
(
  $as_echo "1799. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



# Create a standalone database and put some data in it.
ordinal_schema > schema
ovsdb-tool create db1 schema
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:426: for pair in 'zero 0' 'one 1' 'two 2' 'three 3' 'four 4' 'five 5'; do
      set -- \$pair
      ovsdb-tool transact db1 '
	[\"ordinals\",
	 {\"op\": \"insert\",
	  \"table\": \"ordinals\",
	  \"row\": {\"name\": \"'\$1'\", \"number\": '\$2'}},
	 {\"op\": \"comment\",
	  \"comment\": \"add row for '\"\$pair\"'\"}]'
    done | uuidfilt"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-tool.at:426"
( $at_check_trace; for pair in 'zero 0' 'one 1' 'two 2' 'three 3' 'four 4' 'five 5'; do
      set -- $pair
      ovsdb-tool transact db1 '
	["ordinals",
	 {"op": "insert",
	  "table": "ordinals",
	  "row": {"name": "'$1'", "number": '$2'}},
	 {"op": "comment",
	  "comment": "add row for '"$pair"'"}]'
    done | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{}]
[{\"uuid\":[\"uuid\",\"<1>\"]},{}]
[{\"uuid\":[\"uuid\",\"<2>\"]},{}]
[{\"uuid\":[\"uuid\",\"<3>\"]},{}]
[{\"uuid\":[\"uuid\",\"<4>\"]},{}]
[{\"uuid\":[\"uuid\",\"<5>\"]},{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:426"
$at_failed && at_fn_log_failure
$at_traceon; }


# Dump the data.
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:446: ovsdb-server -vfile -vvlog:off --detach --no-chdir --pidfile --log-file --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-tool.at:446"
( $at_check_trace; ovsdb-server -vfile -vvlog:off --detach --no-chdir --pidfile --log-file --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:446"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:447: ovsdb-client dump > expout"
at_fn_check_prepare_trace "ovsdb-tool.at:447"
( $at_check_trace; ovsdb-client dump > expout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:447"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:448: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovsdb-tool.at:448"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:448"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:448: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-tool.at:448"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:448"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-tool.at:448: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-tool.at:448: wait failed" >&5

    $as_echo "ovsdb-tool.at:448" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-tool.at:448"
fi


# Create a clustered database from the standalone one.
ovsdb-tool create-cluster db2 db1 unix:s1.raft

# Dump the data.
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:454: ovsdb-server -vconsole:off -vfile -vvlog:off --detach --no-chdir --pidfile --log-file --remote=punix:db.sock db2"
at_fn_check_prepare_trace "ovsdb-tool.at:454"
( $at_check_trace; ovsdb-server -vconsole:off -vfile -vvlog:off --detach --no-chdir --pidfile --log-file --remote=punix:db.sock db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:454"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:455: ovsdb-client wait ordinals connected"
at_fn_check_prepare_trace "ovsdb-tool.at:455"
( $at_check_trace; ovsdb-client wait ordinals connected
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:455"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:456: ovsdb-client dump > dump2"
at_fn_check_prepare_trace "ovsdb-tool.at:456"
( $at_check_trace; ovsdb-client dump > dump2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:456"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:457: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovsdb-tool.at:457"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:457"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-tool.at:457: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-tool.at:457"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:457"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-tool.at:457: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-tool.at:457: wait failed" >&5

    $as_echo "ovsdb-tool.at:457" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-tool.at:457"
fi


# Make sure that the clustered data matched the standalone data.
{ set +x
$as_echo "$at_srcdir/ovsdb-tool.at:460: cat dump2"
at_fn_check_prepare_trace "ovsdb-tool.at:460"
( $at_check_trace; cat dump2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-tool.at:460"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1799
#AT_START_1800
at_fn_group_banner 1800 'ovsdb-server.at:41' \
  "insert default row, query table" "                " 85
at_xfail=no
(
  $as_echo "1800. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<1>\"],\"name\":\"\",\"number\":0}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:41: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:41: wait failed" >&5

    $as_echo "ovsdb-server.at:41" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:41"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1800
#AT_START_1801
at_fn_group_banner 1801 'ovsdb-server.at:41' \
  "insert row, query table" "                        " 85
at_xfail=no
(
  $as_echo "1801. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<1>\"],\"name\":\"zero\",\"number\":0}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:41: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:41: wait failed" >&5

    $as_echo "ovsdb-server.at:41" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:41"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1801
#AT_START_1802
at_fn_group_banner 1802 'ovsdb-server.at:41' \
  "insert rows, query by value" "                    " 85
at_xfail=no
(
  $as_echo "1802. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"zero\"]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [["name", "==", "zero"]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"one\"]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [["name", "==", "one"]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"zero\",\"number\":0}]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<3>\"],\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:41: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:41: wait failed" >&5

    $as_echo "ovsdb-server.at:41" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:41"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1802
#AT_START_1803
at_fn_group_banner 1803 'ovsdb-server.at:41' \
  "insert rows, query by named-uuid" "               " 85
at_xfail=no
(
  $as_echo "1803. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"second\"},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [[\"_uuid\", \"==\", [\"named-uuid\", \"first\"]]]},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [[\"_uuid\", \"==\", [\"named-uuid\", \"second\"]]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "second"},
      {"op": "select",
       "table": "ordinals",
       "where": [["_uuid", "==", ["named-uuid", "first"]]]},
      {"op": "select",
       "table": "ordinals",
       "where": [["_uuid", "==", ["named-uuid", "second"]]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"zero\",\"number\":0}]},{\"rows\":[{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<3>\"],\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:41: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:41: wait failed" >&5

    $as_echo "ovsdb-server.at:41" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:41"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1803
#AT_START_1804
at_fn_group_banner 1804 'ovsdb-server.at:41' \
  "insert rows, update rows by value" "              " 85
at_xfail=no
(
  $as_echo "1804. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"ordinals\",
      {\"op\": \"update\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"zero\"]],
       \"row\": {\"name\": \"nought\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [["name", "==", "zero"]],
       "row": {"name": "nought"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"sort\": [\"number\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "sort": ["number"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"count\":1}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"nought\",\"number\":0},{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<3>\"],\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:41: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:41: wait failed" >&5

    $as_echo "ovsdb-server.at:41" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:41"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1804
#AT_START_1805
at_fn_group_banner 1805 'ovsdb-server.at:41' \
  "insert rows, mutate rows" "                       " 85
at_xfail=no
(
  $as_echo "1805. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"ordinals\",
      {\"op\": \"mutate\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"zero\"]],
       \"mutations\": [[\"number\", \"+=\", 2]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals",
      {"op": "mutate",
       "table": "ordinals",
       "where": [["name", "==", "zero"]],
       "mutations": [["number", "+=", 2]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"sort\": [\"number\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "sort": ["number"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"count\":1}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"one\",\"number\":1},{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<3>\"],\"name\":\"zero\",\"number\":2}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:41: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:41: wait failed" >&5

    $as_echo "ovsdb-server.at:41" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:41"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1805
#AT_START_1806
at_fn_group_banner 1806 'ovsdb-server.at:41' \
  "insert rows, delete by named-uuid" "              " 85
at_xfail=no
(
  $as_echo "1806. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"second\"},
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": [[\"_uuid\", \"==\", [\"named-uuid\", \"first\"]]]},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\",\"number\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "second"},
      {"op": "delete",
       "table": "ordinals",
       "where": [["_uuid", "==", ["named-uuid", "first"]]]},
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "columns": ["name","number"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"count\":1},{\"rows\":[{\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:41: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:41: wait failed" >&5

    $as_echo "ovsdb-server.at:41" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:41"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1806
#AT_START_1807
at_fn_group_banner 1807 'ovsdb-server.at:41' \
  "insert rows, delete rows by value" "              " 85
at_xfail=no
(
  $as_echo "1807. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"ordinals\",
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"zero\"]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": [["name", "==", "zero"]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"count\":1}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:41: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:41: wait failed" >&5

    $as_echo "ovsdb-server.at:41" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:41"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1807
#AT_START_1808
at_fn_group_banner 1808 'ovsdb-server.at:41' \
  "insert rows, delete by (non-matching) value" "    " 85
at_xfail=no
(
  $as_echo "1808. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"ordinals\",
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"nought\"]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": [["name", "==", "nought"]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"sort\": [\"number\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "sort": ["number"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"count\":0}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"zero\",\"number\":0},{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<3>\"],\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:41: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:41: wait failed" >&5

    $as_echo "ovsdb-server.at:41" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:41"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1808
#AT_START_1809
at_fn_group_banner 1809 'ovsdb-server.at:41' \
  "insert rows, delete all" "                        " 85
at_xfail=no
(
  $as_echo "1809. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"second\"},
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": []},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\",\"number\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "second"},
      {"op": "delete",
       "table": "ordinals",
       "where": []},
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "columns": ["name","number"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"count\":2},{\"rows\":[]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:41: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:41: wait failed" >&5

    $as_echo "ovsdb-server.at:41" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:41"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1809
#AT_START_1810
at_fn_group_banner 1810 'ovsdb-server.at:41' \
  "insert row, query table, commit" "                " 85
at_xfail=no
(
  $as_echo "1810. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": []},
      {\"op\": \"commit\",
       \"durable\": false}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "select",
       "table": "ordinals",
       "where": []},
      {"op": "commit",
       "durable": false}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<1>\"],\"name\":\"zero\",\"number\":0}]},{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:41: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:41: wait failed" >&5

    $as_echo "ovsdb-server.at:41" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:41"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1810
#AT_START_1811
at_fn_group_banner 1811 'ovsdb-server.at:41' \
  "insert row, query table, commit durably" "        " 85
at_xfail=no
(
  $as_echo "1811. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": []},
      {\"op\": \"commit\",
       \"durable\": true}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "select",
       "table": "ordinals",
       "where": []},
      {"op": "commit",
       "durable": true}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<1>\"],\"name\":\"zero\",\"number\":0}]},{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:41: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:41: wait failed" >&5

    $as_echo "ovsdb-server.at:41" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:41"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1811
#AT_START_1812
at_fn_group_banner 1812 'ovsdb-server.at:41' \
  "equality wait with correct rows" "                " 85
at_xfail=no
(
  $as_echo "1812. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 0,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"==\",
       \"rows\": [{\"name\": \"zero\", \"number\": 0},
                {\"name\": \"one\", \"number\": 1}]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "==",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1}]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:41: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:41: wait failed" >&5

    $as_echo "ovsdb-server.at:41" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:41"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1812
#AT_START_1813
at_fn_group_banner 1813 'ovsdb-server.at:41' \
  "equality wait with extra row" "                   " 85
at_xfail=no
(
  $as_echo "1813. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 0,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"==\",
       \"rows\": [{\"name\": \"zero\", \"number\": 0},
                {\"name\": \"one\", \"number\": 1},
                {\"name\": \"two\", \"number\": 2}]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "==",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1},
                {"name": "two", "number": 2}]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"details\":\"\\\"where\\\" clause test failed\",\"error\":\"timed out\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:41: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:41: wait failed" >&5

    $as_echo "ovsdb-server.at:41" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:41"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1813
#AT_START_1814
at_fn_group_banner 1814 'ovsdb-server.at:41' \
  "equality wait with missing row" "                 " 85
at_xfail=no
(
  $as_echo "1814. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 0,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"==\",
       \"rows\": [{\"name\": \"one\", \"number\": 1}]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "==",
       "rows": [{"name": "one", "number": 1}]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"details\":\"\\\"where\\\" clause test failed\",\"error\":\"timed out\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:41: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:41: wait failed" >&5

    $as_echo "ovsdb-server.at:41" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:41"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1814
#AT_START_1815
at_fn_group_banner 1815 'ovsdb-server.at:41' \
  "inequality wait with correct rows" "              " 85
at_xfail=no
(
  $as_echo "1815. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 0,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"!=\",
       \"rows\": [{\"name\": \"zero\", \"number\": 0},
                {\"name\": \"one\", \"number\": 1}]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "!=",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1}]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"details\":\"\\\"where\\\" clause test failed\",\"error\":\"timed out\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:41: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:41: wait failed" >&5

    $as_echo "ovsdb-server.at:41" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:41"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1815
#AT_START_1816
at_fn_group_banner 1816 'ovsdb-server.at:41' \
  "inequality wait with extra row" "                 " 85
at_xfail=no
(
  $as_echo "1816. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 0,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"!=\",
       \"rows\": [{\"name\": \"zero\", \"number\": 0},
                {\"name\": \"one\", \"number\": 1},
                {\"name\": \"two\", \"number\": 2}]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "!=",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1},
                {"name": "two", "number": 2}]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:41: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:41: wait failed" >&5

    $as_echo "ovsdb-server.at:41" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:41"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1816
#AT_START_1817
at_fn_group_banner 1817 'ovsdb-server.at:41' \
  "inequality wait with missing row" "               " 85
at_xfail=no
(
  $as_echo "1817. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 0,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"!=\",
       \"rows\": [{\"name\": \"one\", \"number\": 1}]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "!=",
       "rows": [{"name": "one", "number": 1}]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:41: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:41: wait failed" >&5

    $as_echo "ovsdb-server.at:41" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:41"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1817
#AT_START_1818
at_fn_group_banner 1818 'ovsdb-server.at:41' \
  "insert and update constraints" "                  " 85
at_xfail=no
(
  $as_echo "1818. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   constraint_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"constrained\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"constrained\",
       \"row\": {\"positive\": -1}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {"positive": -1}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"constraints\",
      {\"op\": \"update\",
       \"table\": \"constrained\",
       \"where\": [],
       \"row\": {\"positive\": -2}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["constraints",
      {"op": "update",
       "table": "constrained",
       "where": [],
       "row": {"positive": -2}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"constrained\",
       \"row\": {\"positive\": 1}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {"positive": 1}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"constrained\",
       \"row\": {\"positive\": 2}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {"positive": 2}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"details\":\"0 is less than minimum allowed value 1\",\"error\":\"constraint violation\"}]
[{\"details\":\"-1 is less than minimum allowed value 1\",\"error\":\"constraint violation\"}]
[{\"details\":\"-2 is less than minimum allowed value 1\",\"error\":\"constraint violation\"}]
[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]},{\"details\":\"transaction causes \\\"constrained\\\" table to contain 2 rows, greater than the schema-defined limit of 1 row(s)\",\"error\":\"constraint violation\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:41: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:41: wait failed" >&5

    $as_echo "ovsdb-server.at:41" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:41"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1818
#AT_START_1819
at_fn_group_banner 1819 'ovsdb-server.at:41' \
  "index uniqueness checking" "                      " 85
at_xfail=no
(
  $as_echo "1819. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '   [\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"another one\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '   ["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "another one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '   [\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"another one\"}},
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"one\"]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '   ["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "another one"}},
      {"op": "delete",
       "table": "ordinals",
       "where": [["name", "==", "one"]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '   [\"ordinals\",
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": []},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"still another one\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '   ["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": []},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "still another one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '   [\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 2, \"name\": \"two\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '   ["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 2, "name": "two"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '   [\"ordinals\",
      {\"op\": \"update\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"row\": {\"number\": 3}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '   ["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [],
       "row": {"number": 3}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '   [\"ordinals\",
      {\"op\": \"update\",
       \"table\": \"ordinals\",
       \"where\": [[\"number\", \"==\", 1]],
       \"row\": {\"number\": 2, \"name\": \"old two\"}},
      {\"op\": \"update\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"two\"]],
       \"row\": {\"number\": 1, \"name\": \"old one\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '   ["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [["number", "==", 1]],
       "row": {"number": 2, "name": "old two"}},
      {"op": "update",
       "table": "ordinals",
       "where": [["name", "==", "two"]],
       "row": {"number": 1, "name": "old one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '   [\"ordinals\",
      {\"op\": \"mutate\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"mutations\": [[\"number\", \"*=\", 10]]},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"new one\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 2, \"name\": \"new two\"}},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"number\", \"name\"],
       \"sort\": [\"number\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '   ["ordinals",
      {"op": "mutate",
       "table": "ordinals",
       "where": [],
       "mutations": [["number", "*=", 10]]},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "new one"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 2, "name": "new two"}},
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "columns": ["number", "name"],
       "sort": ["number"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]},{\"details\":\"Transaction causes multiple rows in \\\"ordinals\\\" table to have identical values (1) for index on column \\\"number\\\".  First row, with UUID <0>, existed in the database before this transaction and was not modified by the transaction.  Second row, with UUID <1>, was inserted by this transaction.\",\"error\":\"constraint violation\"}]
[{\"uuid\":[\"uuid\",\"<2>\"]},{\"count\":1}]
[{\"count\":1},{\"uuid\":[\"uuid\",\"<3>\"]},{\"uuid\":[\"uuid\",\"<4>\"]},{\"details\":\"Transaction causes multiple rows in \\\"ordinals\\\" table to have identical values (1) for index on column \\\"number\\\".  First row, with UUID <4>, was inserted by this transaction.  Second row, with UUID <3>, was inserted by this transaction.\",\"error\":\"constraint violation\"}]
[{\"uuid\":[\"uuid\",\"<5>\"]}]
[{\"count\":2},{\"details\":\"Transaction causes multiple rows in \\\"ordinals\\\" table to have identical values (3) for index on column \\\"number\\\".  First row, with UUID <5>, had the following index values before the transaction: 2.  Second row, with UUID <2>, had the following index values before the transaction: 1.\",\"error\":\"constraint violation\"}]
[{\"count\":1},{\"count\":1}]
[{\"count\":2},{\"uuid\":[\"uuid\",\"<6>\"]},{\"uuid\":[\"uuid\",\"<7>\"]},{\"rows\":[{\"name\":\"new one\",\"number\":1},{\"name\":\"new two\",\"number\":2},{\"name\":\"old one\",\"number\":10},{\"name\":\"old two\",\"number\":20}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:41: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:41: wait failed" >&5

    $as_echo "ovsdb-server.at:41" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:41"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1819
#AT_START_1820
at_fn_group_banner 1820 'ovsdb-server.at:41' \
  "referential integrity -- simple" "                " 85
at_xfail=no
(
  $as_echo "1820. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   constraint_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"b\",
       \"row\": {\"b\": 1},
       \"uuid-name\": \"brow\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 0,
               \"a2b\": [\"set\", [[\"named-uuid\", \"brow\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 1,
               \"a2b\": [\"set\", [[\"named-uuid\", \"brow\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 2,
               \"a2b\": [\"set\", [[\"named-uuid\", \"brow\"]]]}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["constraints",
      {"op": "insert",
       "table": "b",
       "row": {"b": 1},
       "uuid-name": "brow"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 0,
               "a2b": ["set", [["named-uuid", "brow"]]]}},
      {"op": "insert",
       "table": "a",
       "row": {"a": 1,
               "a2b": ["set", [["named-uuid", "brow"]]]}},
      {"op": "insert",
       "table": "a",
       "row": {"a": 2,
               "a2b": ["set", [["named-uuid", "brow"]]]}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '   [\"constraints\",
      {\"op\": \"mutate\",
       \"table\": \"b\",
       \"where\": [],
       \"mutations\": [[\"x\", \"delete\", 0]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '   ["constraints",
      {"op": "mutate",
       "table": "b",
       "where": [],
       "mutations": [["x", "delete", 0]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 0]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 1]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 2]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 2]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]},{\"uuid\":[\"uuid\",\"<3>\"]}]
[{\"count\":1},{\"details\":\"cannot delete b row <0> because of 3 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"details\":\"Attempted to store 0 elements in set of 1 to 2 integers.\",\"error\":\"constraint violation\"}]
[{\"count\":1}]
[{\"count\":1},{\"details\":\"cannot delete b row <0> because of 2 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"count\":1}]
[{\"count\":1},{\"details\":\"cannot delete b row <0> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"count\":1}]
[{\"count\":1}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:41: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:41: wait failed" >&5

    $as_echo "ovsdb-server.at:41" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:41"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1820
#AT_START_1821
at_fn_group_banner 1821 'ovsdb-server.at:41' \
  "referential integrity -- mutual references" "     " 85
at_xfail=no
(
  $as_echo "1821. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   constraint_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 0,
               \"a2b\": [\"set\", [[\"named-uuid\", \"row2\"]]],
               \"a2a\": [\"set\", [[\"named-uuid\", \"row1\"]]]},
       \"uuid-name\": \"row1\"},
      {\"op\": \"insert\",
       \"table\": \"b\",
       \"row\": {\"b\": 1,
               \"b2b\": [\"set\", [[\"named-uuid\", \"row2\"]]],
               \"b2a\": [\"set\", [[\"named-uuid\", \"row1\"]]]},
       \"uuid-name\": \"row2\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["constraints",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0,
               "a2b": ["set", [["named-uuid", "row2"]]],
               "a2a": ["set", [["named-uuid", "row1"]]]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "b",
       "row": {"b": 1,
               "b2b": ["set", [["named-uuid", "row2"]]],
               "b2a": ["set", [["named-uuid", "row1"]]]},
       "uuid-name": "row2"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a2b\": [\"set\", [[\"uuid\", \"b516b960-5b19-4fc2-bb82-fe1cbd6d0241\"]]]}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["constraints",
      {"op": "insert",
       "table": "a",
       "row": {"a2b": ["set", [["uuid", "b516b960-5b19-4fc2-bb82-fe1cbd6d0241"]]]}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 0]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": [[\"b\", \"==\", 1]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["constraints",
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '   [\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 0]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '   ["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": [[\"b\", \"==\", 1]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["constraints",
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 0]]},
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": [[\"b\", \"==\", 1]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]},
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"uuid\":[\"uuid\",\"<2>\"]},{\"details\":\"Table a column a2b row <2> references nonexistent row <3> in table b.\",\"error\":\"referential integrity violation\"}]
[{\"count\":1},{\"details\":\"cannot delete a row <0> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"count\":1},{\"details\":\"cannot delete b row <1> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"count\":1},{\"details\":\"cannot delete a row <0> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"count\":1},{\"details\":\"cannot delete b row <1> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"count\":1},{\"count\":1}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:41: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:41: wait failed" >&5

    $as_echo "ovsdb-server.at:41" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:41"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1821
#AT_START_1822
at_fn_group_banner 1822 'ovsdb-server.at:41' \
  "weak references" "                                " 85
at_xfail=no
(
  $as_echo "1822. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   weak_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"weak\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 0,
               \"a2a\": [\"set\", [[\"named-uuid\", \"row1\"],
                               [\"named-uuid\", \"row2\"],
                               [\"uuid\", \"0e767b36-6822-4044-8307-d58467e04669\"]]],
               \"a2a1\": [\"named-uuid\", \"row1\"],
               \"a2b\": [\"named-uuid\", \"row3\"]},
       \"uuid-name\": \"row1\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 1,
               \"a2a\": [\"set\", [[\"named-uuid\", \"row1\"],
                               [\"named-uuid\", \"row2\"]]],
               \"a2a1\": [\"named-uuid\", \"row2\"],
               \"a2b\": [\"named-uuid\", \"row3\"]},
       \"uuid-name\": \"row2\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 2,
               \"a2a\": [\"set\", [[\"named-uuid\", \"row1\"],
                               [\"named-uuid\", \"row2\"]]],
               \"a2a1\": [\"named-uuid\", \"row2\"],
               \"a2b\": [\"named-uuid\", \"row4\"]}},
      {\"op\": \"insert\",
       \"table\": \"b\",
       \"row\": {\"b\": 2,
               \"b2a\": [\"named-uuid\", \"row1\"]},
       \"uuid-name\": \"row3\"},
      {\"op\": \"insert\",
       \"table\": \"b\",
       \"row\": {\"b\": 3,
               \"b2a\": [\"named-uuid\", \"row2\"]},
       \"uuid-name\": \"row4\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["weak",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0,
               "a2a": ["set", [["named-uuid", "row1"],
                               ["named-uuid", "row2"],
                               ["uuid", "0e767b36-6822-4044-8307-d58467e04669"]]],
               "a2a1": ["named-uuid", "row1"],
               "a2b": ["named-uuid", "row3"]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 1,
               "a2a": ["set", [["named-uuid", "row1"],
                               ["named-uuid", "row2"]]],
               "a2a1": ["named-uuid", "row2"],
               "a2b": ["named-uuid", "row3"]},
       "uuid-name": "row2"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 2,
               "a2a": ["set", [["named-uuid", "row1"],
                               ["named-uuid", "row2"]]],
               "a2a1": ["named-uuid", "row2"],
               "a2b": ["named-uuid", "row4"]}},
      {"op": "insert",
       "table": "b",
       "row": {"b": 2,
               "b2a": ["named-uuid", "row1"]},
       "uuid-name": "row3"},
      {"op": "insert",
       "table": "b",
       "row": {"b": 3,
               "b2a": ["named-uuid", "row2"]},
       "uuid-name": "row4"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '      [\"weak\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"a2a\", \"a2a1\", \"a2b\"],
       \"sort\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '      ["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"b\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"b\", \"b2a\"],
       \"sort\": [\"b\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '      [\"weak\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a2a1\": [\"named-uuid\", \"me\"]},
       \"uuid-name\": \"me\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '      ["weak",
      {"op": "insert",
       "table": "a",
       "row": {"a2a1": ["named-uuid", "me"]},
       "uuid-name": "me"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '      [\"weak\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": [[\"b\", \"==\", 3]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '      ["weak",
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 3]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '      [\"weak\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 1]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '      ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '      [\"weak\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 2]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '      ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 2]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"a2a\", \"a2a1\", \"a2b\"],
       \"sort\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"b\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"b\", \"b2a\"],
       \"sort\": [\"b\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '   [\"weak\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 0]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '   ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"a2a\", \"a2a1\", \"a2b\"],
       \"sort\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"b\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"b\", \"b2a\"],
       \"sort\": [\"b\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '   [\"weak\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 1]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '   ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"a2a\", \"a2a1\", \"a2b\"],
       \"sort\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"b\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"b\", \"b2a\"],
       \"sort\": [\"b\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]},{\"uuid\":[\"uuid\",\"<3>\"]},{\"uuid\":[\"uuid\",\"<4>\"]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"a2a\":[\"set\",[[\"uuid\",\"<0>\"],[\"uuid\",\"<1>\"]]],\"a2a1\":[\"uuid\",\"<0>\"],\"a2b\":[\"uuid\",\"<3>\"]},{\"_uuid\":[\"uuid\",\"<1>\"],\"a2a\":[\"set\",[[\"uuid\",\"<0>\"],[\"uuid\",\"<1>\"]]],\"a2a1\":[\"uuid\",\"<1>\"],\"a2b\":[\"uuid\",\"<3>\"]},{\"_uuid\":[\"uuid\",\"<2>\"],\"a2a\":[\"set\",[[\"uuid\",\"<0>\"],[\"uuid\",\"<1>\"]]],\"a2a1\":[\"uuid\",\"<1>\"],\"a2b\":[\"uuid\",\"<4>\"]}]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<3>\"],\"b\":2,\"b2a\":[\"uuid\",\"<0>\"]},{\"_uuid\":[\"uuid\",\"<4>\"],\"b\":3,\"b2a\":[\"uuid\",\"<1>\"]}]}]
[{\"uuid\":[\"uuid\",\"<5>\"]},{\"details\":\"Weak reference column \\\"a2b\\\" in \\\"a\\\" row <5> (inserted within this transaction) contained all-zeros UUID (probably as the default value for this column) but deleting this value caused a constraint volation because this column is not allowed to be empty.\",\"error\":\"constraint violation\"}]
[{\"count\":1},{\"details\":\"Deletion of 1 weak reference(s) to deleted (or never-existing) rows from column \\\"a2b\\\" in \\\"a\\\" row <2> caused this column to become empty, but constraints on this column disallow an empty column.\",\"error\":\"constraint violation\"}]
[{\"count\":1},{\"details\":\"Deletion of 1 weak reference(s) to deleted (or never-existing) rows from column \\\"a2a1\\\" in \\\"a\\\" row <2> caused this column to become empty, but constraints on this column disallow an empty column.\",\"error\":\"constraint violation\"}]
[{\"count\":1}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"a2a\":[\"set\",[[\"uuid\",\"<0>\"],[\"uuid\",\"<1>\"]]],\"a2a1\":[\"uuid\",\"<0>\"],\"a2b\":[\"uuid\",\"<3>\"]},{\"_uuid\":[\"uuid\",\"<1>\"],\"a2a\":[\"set\",[[\"uuid\",\"<0>\"],[\"uuid\",\"<1>\"]]],\"a2a1\":[\"uuid\",\"<1>\"],\"a2b\":[\"uuid\",\"<3>\"]}]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<3>\"],\"b\":2,\"b2a\":[\"uuid\",\"<0>\"]},{\"_uuid\":[\"uuid\",\"<4>\"],\"b\":3,\"b2a\":[\"uuid\",\"<1>\"]}]}]
[{\"count\":1}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<1>\"],\"a2a\":[\"uuid\",\"<1>\"],\"a2a1\":[\"uuid\",\"<1>\"],\"a2b\":[\"uuid\",\"<3>\"]}]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<3>\"],\"b\":2,\"b2a\":[\"set\",[]]},{\"_uuid\":[\"uuid\",\"<4>\"],\"b\":3,\"b2a\":[\"uuid\",\"<1>\"]}]}]
[{\"count\":1}]
[{\"rows\":[]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<3>\"],\"b\":2,\"b2a\":[\"set\",[]]},{\"_uuid\":[\"uuid\",\"<4>\"],\"b\":3,\"b2a\":[\"set\",[]]}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:41: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:41: wait failed" >&5

    $as_echo "ovsdb-server.at:41" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:41"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1822
#AT_START_1823
at_fn_group_banner 1823 'ovsdb-server.at:41' \
  "immutable columns" "                              " 85
at_xfail=no
(
  $as_echo "1823. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   immutable_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"immutable\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"i\": 5},
       \"uuid-name\": \"row1\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["immutable",
      {"op": "insert",
       "table": "a",
       "row": {"i": 5},
       "uuid-name": "row1"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"immutable\",
      {\"op\": \"update\",
       \"table\": \"a\",
       \"row\": {\"i\": 10},
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["immutable",
      {"op": "update",
       "table": "a",
       "row": {"i": 10},
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"immutable\",
      {\"op\": \"update\",
       \"table\": \"a\",
       \"row\": {\"i\": 5},
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["immutable",
      {"op": "update",
       "table": "a",
       "row": {"i": 5},
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"immutable\",
      {\"op\": \"mutate\",
       \"table\": \"a\",
       \"where\": [],
       \"mutations\": [[\"i\", \"-=\", 5]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["immutable",
      {"op": "mutate",
       "table": "a",
       "where": [],
       "mutations": [["i", "-=", 5]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"immutable\",
      {\"op\": \"mutate\",
       \"table\": \"a\",
       \"where\": [],
       \"mutations\": [[\"i\", \"*=\", 1]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["immutable",
      {"op": "mutate",
       "table": "a",
       "where": [],
       "mutations": [["i", "*=", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"details\":\"Cannot update immutable column i in table a.\",\"error\":\"constraint violation\",\"syntax\":\"{\\\"op\\\":\\\"update\\\",\\\"row\\\":{\\\"i\\\":10},\\\"table\\\":\\\"a\\\",\\\"where\\\":[]}\"}]
[{\"details\":\"Cannot update immutable column i in table a.\",\"error\":\"constraint violation\",\"syntax\":\"{\\\"op\\\":\\\"update\\\",\\\"row\\\":{\\\"i\\\":5},\\\"table\\\":\\\"a\\\",\\\"where\\\":[]}\"}]
[{\"details\":\"Cannot mutate immutable column i in table a.\",\"error\":\"constraint violation\",\"syntax\":\"[\\\"i\\\",\\\"-=\\\",5]\"}]
[{\"details\":\"Cannot mutate immutable column i in table a.\",\"error\":\"constraint violation\",\"syntax\":\"[\\\"i\\\",\\\"*=\\\",1]\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:41: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:41: wait failed" >&5

    $as_echo "ovsdb-server.at:41" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:41"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1823
#AT_START_1824
at_fn_group_banner 1824 'ovsdb-server.at:41' \
  "garbage collection" "                             " 85
at_xfail=no
(
  $as_echo "1824. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   gc_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '   [\"gc\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 0}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '   ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '      [\"gc\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 0, \"a2a\": [\"named-uuid\", \"row1\"]},
       \"uuid-name\": \"row0\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 1, \"a2a\": [\"named-uuid\", \"row2\"]},
       \"uuid-name\": \"row1\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 2, \"a2a\": [\"named-uuid\", \"row3\"]},
       \"uuid-name\": \"row2\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 3},
       \"uuid-name\": \"row3\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '      ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0, "a2a": ["named-uuid", "row1"]},
       "uuid-name": "row0"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 1, "a2a": ["named-uuid", "row2"]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 2, "a2a": ["named-uuid", "row3"]},
       "uuid-name": "row2"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 3},
       "uuid-name": "row3"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '      [\"gc\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 4, \"a2a\": [\"named-uuid\", \"row5\"]},
       \"uuid-name\": \"row4\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 5, \"a2a\": [\"named-uuid\", \"row4\"]},
       \"uuid-name\": \"row5\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '      ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 4, "a2a": ["named-uuid", "row5"]},
       "uuid-name": "row4"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 5, "a2a": ["named-uuid", "row4"]},
       "uuid-name": "row5"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"],
       \"sort\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"],
       "sort": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '   [\"gc\",
      {\"op\": \"update\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 4]],
       \"row\": {\"a2a\": [\"set\", []]}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '   ["gc",
      {"op": "update",
       "table": "a",
       "where": [["a", "==", 4]],
       "row": {"a2a": ["set", []]}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '      [\"gc\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 6, \"wa2a\": [\"named-uuid\", \"row7\"]},
       \"uuid-name\": \"row6\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 7, \"wa2a\": [\"named-uuid\", \"row6\"]},
       \"uuid-name\": \"row7\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '      ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 6, "wa2a": ["named-uuid", "row7"]},
       "uuid-name": "row6"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 7, "wa2a": ["named-uuid", "row6"]},
       "uuid-name": "row7"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '   [\"gc\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 8, \"a2a\": [\"named-uuid\", \"row9\"]},
       \"uuid-name\": \"row8\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 9, \"a2a\": [\"named-uuid\", \"row10\"]},
       \"uuid-name\": \"row9\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 10, \"a2a\": [\"named-uuid\", \"row11\"]},
       \"uuid-name\": \"row10\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 11, \"a2a\": [\"named-uuid\", \"row8\"]},
       \"uuid-name\": \"row11\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '   ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 8, "a2a": ["named-uuid", "row9"]},
       "uuid-name": "row8"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 9, "a2a": ["named-uuid", "row10"]},
       "uuid-name": "row9"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 10, "a2a": ["named-uuid", "row11"]},
       "uuid-name": "row10"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 11, "a2a": ["named-uuid", "row8"]},
       "uuid-name": "row11"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"],
       \"sort\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"],
       "sort": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '   [\"gc\",
      {\"op\": \"update\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 9]],
       \"row\": {\"a2a\": [\"set\", []]}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '   ["gc",
      {"op": "update",
       "table": "a",
       "where": [["a", "==", 9]],
       "row": {"a2a": ["set", []]}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '   [\"gc\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 12, \"a2a\": [\"named-uuid\", \"self\"]},
       \"uuid-name\": \"self\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '   ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 12, "a2a": ["named-uuid", "self"]},
       "uuid-name": "self"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovsdb-client transact unix:socket '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:41"
( $at_check_trace; ovsdb-client transact unix:socket '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"rows\":[]}]
[{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]},{\"uuid\":[\"uuid\",\"<3>\"]},{\"uuid\":[\"uuid\",\"<4>\"]}]
[{\"rows\":[]}]
[{\"uuid\":[\"uuid\",\"<5>\"]},{\"uuid\":[\"uuid\",\"<6>\"]}]
[{\"rows\":[{\"a\":4},{\"a\":5}]}]
[{\"count\":1}]
[{\"rows\":[]}]
[{\"uuid\":[\"uuid\",\"<7>\"]},{\"uuid\":[\"uuid\",\"<8>\"]}]
[{\"rows\":[]}]
[{\"uuid\":[\"uuid\",\"<9>\"]},{\"uuid\":[\"uuid\",\"<10>\"]},{\"uuid\":[\"uuid\",\"<11>\"]},{\"uuid\":[\"uuid\",\"<12>\"]}]
[{\"rows\":[{\"a\":8},{\"a\":9},{\"a\":10},{\"a\":11}]}]
[{\"count\":1}]
[{\"rows\":[]}]
[{\"uuid\":[\"uuid\",\"<13>\"]}]
[{\"rows\":[]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:41: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:41"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:41: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:41: wait failed" >&5

    $as_echo "ovsdb-server.at:41" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:41"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1824
#AT_START_1825
at_fn_group_banner 1825 'ovsdb-server.at:45' \
  "truncating corrupted database log" "              " 86
at_xfail=no
(
  $as_echo "1825. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


$as_echo "ovsdb-server.at:47" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:47"
ordinal_schema > schema
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:49: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:49"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:49"
$at_failed && at_fn_log_failure
$at_traceon; }

cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket \
'["ordinals",
  {"op": "insert",
   "table": "ordinals",
   "row": {"number": 0, "name": "zero"}}]'
_ATEOF

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:57: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:57"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:57"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
echo 'xxx' >> db
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket \
'["ordinals",
  {"op": "insert",
   "table": "ordinals",
   "row": {"number": 1, "name": "one"}}]'
_ATEOF

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:68: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:68"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:68"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:69: grep 'syntax error: db: parse error.* in header line \"xxx\"' stderr"
at_fn_check_prepare_trace "ovsdb-server.at:69"
( $at_check_trace; grep 'syntax error: db: parse error.* in header line "xxx"' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:69"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket \
'["ordinals",
  {"op": "select",
   "table": "ordinals",
   "where": [],
   "sort": ["number"]}]'
_ATEOF

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:82: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:82"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:82"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:84: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:84"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"zero\",\"number\":0},{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<3>\"],\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:84"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1825
#AT_START_1826
at_fn_group_banner 1826 'ovsdb-server.at:92' \
  "truncating database log with bad transaction" "   " 86
at_xfail=no
(
  $as_echo "1826. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


$as_echo "ovsdb-server.at:94" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:94"
ordinal_schema > schema
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:96: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:96"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:96"
$at_failed && at_fn_log_failure
$at_traceon; }

cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket \
'["ordinals",
  {"op": "insert",
   "table": "ordinals",
   "row": {"number": 0, "name": "zero"}}]'
_ATEOF

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:104: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:104"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:104"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
echo 'OVSDB JSON 15 ffbcdae4b0386265f9ea3280dd7c8f0b72a20e56
{"invalid":{}}' >> db
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket \
'["ordinals",
  {"op": "insert",
   "table": "ordinals",
   "row": {"number": 1, "name": "one"}}]'
_ATEOF

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:116: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:116"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:116"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:117: grep 'syntax \"{\"invalid\":{}}\": unknown table: No table named invalid.' stderr"
at_fn_check_prepare_trace "ovsdb-server.at:117"
( $at_check_trace; grep 'syntax "{"invalid":{}}": unknown table: No table named invalid.' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:117"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket \
'["ordinals",
  {"op": "select",
   "table": "ordinals",
   "where": [],
   "sort": ["number"]}]'
_ATEOF

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:130: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:130"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:130"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:132: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:132"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"zero\",\"number\":0},{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<3>\"],\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:132"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1826
#AT_START_1827
at_fn_group_banner 1827 'ovsdb-server.at:153' \
  "database multiplexing implementation" "           " 86
at_xfail=no
(
  $as_echo "1827. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ordinal_schema > schema1
constraint_schema > schema2
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:157: ovsdb-tool create db1 schema1"
at_fn_check_prepare_trace "ovsdb-server.at:157"
( $at_check_trace; ovsdb-tool create db1 schema1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:157"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:158: ovsdb-tool create db2 schema2"
at_fn_check_prepare_trace "ovsdb-server.at:158"
( $at_check_trace; ovsdb-tool create db2 schema2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:158"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:159: ovsdb-server --detach --no-chdir --pidfile --remote=punix:db.sock db1 db2"
at_fn_check_prepare_trace "ovsdb-server.at:159"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:db.sock db1 db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:159"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:160: ovs-appctl -t ovsdb-server ovsdb-server/list-dbs"
at_fn_check_prepare_trace "ovsdb-server.at:160"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/list-dbs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "_Server
constraints
ordinals
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:160"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:160: ovsdb-client --no-headings dump _Server Database name | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-server.at:160"
( $at_check_trace; ovsdb-client --no-headings dump _Server Database name | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Database table
_Server
constraints
ordinals
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:160"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:163: ovstest test-jsonrpc request unix:db.sock get_schema [\\\"nonexistent\\\"]"
at_fn_check_prepare_trace "ovsdb-server.at:163"
( $at_check_trace; ovstest test-jsonrpc request unix:db.sock get_schema [\"nonexistent\"]
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"error\":{\"details\":\"get_schema request specifies unknown database nonexistent\",\"error\":\"unknown database\",\"syntax\":\"[\\\"nonexistent\\\"]\"},\"id\":0,\"result\":null}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:163"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:167: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:167"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:167"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:167: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:167"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:167"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:167: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:167: wait failed" >&5

    $as_echo "ovsdb-server.at:167" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:167"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1827
#AT_START_1828
at_fn_group_banner 1828 'ovsdb-server.at:170' \
  "ovsdb-server/add-db and remove-db" "              " 86
at_xfail=no
(
  $as_echo "1828. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


on_exit 'kill `cat *.pid`'
ordinal_schema > schema1
constraint_schema > schema2
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:175: ovsdb-tool create db1 schema1"
at_fn_check_prepare_trace "ovsdb-server.at:175"
( $at_check_trace; ovsdb-tool create db1 schema1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:175"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:176: ovsdb-tool create db2 schema2"
at_fn_check_prepare_trace "ovsdb-server.at:176"
( $at_check_trace; ovsdb-tool create db2 schema2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:176"
$at_failed && at_fn_log_failure
$at_traceon; }


# Start ovsdb-server with just a single database - db1.
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:179: ovsdb-server -vfile -vvlog:off --log-file --detach --no-chdir --pidfile --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-server.at:179"
( $at_check_trace; ovsdb-server -vfile -vvlog:off --log-file --detach --no-chdir --pidfile --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:179"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:180: ovs-appctl -t ovsdb-server ovsdb-server/list-dbs"
at_fn_check_prepare_trace "ovsdb-server.at:180"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/list-dbs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "_Server
ordinals
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:180"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:180: ovsdb-client --no-headings dump _Server Database name | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-server.at:180"
( $at_check_trace; ovsdb-client --no-headings dump _Server Database name | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Database table
_Server
ordinals
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:180"
$at_failed && at_fn_log_failure
$at_traceon; }


# Remove the database.
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:184: ovs-appctl -t ovsdb-server ovsdb-server/remove-db ordinals"
at_fn_check_prepare_trace "ovsdb-server.at:184"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/remove-db ordinals
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:184"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:185: ovs-appctl -t ovsdb-server ovsdb-server/list-dbs"
at_fn_check_prepare_trace "ovsdb-server.at:185"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/list-dbs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "_Server
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:185"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:185: ovsdb-client --no-headings dump _Server Database name | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-server.at:185"
( $at_check_trace; ovsdb-client --no-headings dump _Server Database name | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Database table
_Server
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:185"
$at_failed && at_fn_log_failure
$at_traceon; }


# Start monitoring processes.
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:188: ovsdb-client --detach --pidfile=ovsdb-client-1.pid --no-db-change-aware --no-headings monitor _Server Database name > db-change-unaware.stdout 2> db-change-unaware.stderr"
at_fn_check_prepare_trace "ovsdb-server.at:188"
( $at_check_trace; ovsdb-client --detach --pidfile=ovsdb-client-1.pid --no-db-change-aware --no-headings monitor _Server Database name > db-change-unaware.stdout 2> db-change-unaware.stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:188"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:189: ovsdb-client --detach --pidfile=ovsdb-client-2.pid --db-change-aware --no-headings monitor _Server Database name > db-change-aware.stdout 2> db-change-aware.stderr"
at_fn_check_prepare_trace "ovsdb-server.at:189"
( $at_check_trace; ovsdb-client --detach --pidfile=ovsdb-client-2.pid --db-change-aware --no-headings monitor _Server Database name > db-change-aware.stdout 2> db-change-aware.stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:189"
$at_failed && at_fn_log_failure
$at_traceon; }






# Add the first database back.
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:196: ovs-appctl -t ovsdb-server ovsdb-server/add-db db1"
at_fn_check_prepare_trace "ovsdb-server.at:196"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/add-db db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:196"
$at_failed && at_fn_log_failure  \
"db-change-unaware.stdout" \
"db-change-unaware.stderr" \
"db-change-aware.stdout" \
"db-change-aware.stderr"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:197: ovs-appctl -t ovsdb-server ovsdb-server/list-dbs"
at_fn_check_prepare_trace "ovsdb-server.at:197"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/list-dbs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "_Server
ordinals
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:197"
$at_failed && at_fn_log_failure  \
"db-change-unaware.stdout" \
"db-change-unaware.stderr" \
"db-change-aware.stdout" \
"db-change-aware.stderr"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:197: ovsdb-client --no-headings dump _Server Database name | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-server.at:197"
( $at_check_trace; ovsdb-client --no-headings dump _Server Database name | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Database table
_Server
ordinals
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:197"
$at_failed && at_fn_log_failure  \
"db-change-unaware.stdout" \
"db-change-unaware.stderr" \
"db-change-aware.stdout" \
"db-change-aware.stderr"
$at_traceon; }


# Add the second database.
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:201: ovs-appctl -t ovsdb-server ovsdb-server/add-db db2"
at_fn_check_prepare_trace "ovsdb-server.at:201"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/add-db db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:201"
$at_failed && at_fn_log_failure  \
"db-change-unaware.stdout" \
"db-change-unaware.stderr" \
"db-change-aware.stdout" \
"db-change-aware.stderr"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:202: ovs-appctl -t ovsdb-server ovsdb-server/list-dbs"
at_fn_check_prepare_trace "ovsdb-server.at:202"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/list-dbs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "_Server
constraints
ordinals
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:202"
$at_failed && at_fn_log_failure  \
"db-change-unaware.stdout" \
"db-change-unaware.stderr" \
"db-change-aware.stdout" \
"db-change-aware.stderr"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:202: ovsdb-client --no-headings dump _Server Database name | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-server.at:202"
( $at_check_trace; ovsdb-client --no-headings dump _Server Database name | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Database table
_Server
constraints
ordinals
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:202"
$at_failed && at_fn_log_failure  \
"db-change-unaware.stdout" \
"db-change-unaware.stderr" \
"db-change-aware.stdout" \
"db-change-aware.stderr"
$at_traceon; }


# The databases are responsive.
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:207: ovsdb-client list-tables unix:db.sock constraints"
at_fn_check_prepare_trace "ovsdb-server.at:207"
( $at_check_trace; ovsdb-client list-tables unix:db.sock constraints
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:207"
$at_failed && at_fn_log_failure  \
"db-change-unaware.stdout" \
"db-change-unaware.stderr" \
"db-change-aware.stdout" \
"db-change-aware.stderr"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:208: ovsdb-client list-tables unix:db.sock ordinals"
at_fn_check_prepare_trace "ovsdb-server.at:208"
( $at_check_trace; ovsdb-client list-tables unix:db.sock ordinals
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:208"
$at_failed && at_fn_log_failure  \
"db-change-unaware.stdout" \
"db-change-unaware.stderr" \
"db-change-aware.stdout" \
"db-change-aware.stderr"
$at_traceon; }


# Add an already added database.
if test $IS_WIN32 = "yes"; then
  { set +x
$as_echo "$at_srcdir/ovsdb-server.at:212: ovs-appctl -t ovsdb-server ovsdb-server/add-db db2"
at_fn_check_prepare_trace "ovsdb-server.at:212"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/add-db db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "I/O error: db2: failed to lock lockfile (Resource deadlock avoided)
ovs-appctl: ovsdb-server: server returned an error
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ovsdb-server.at:212"
$at_failed && at_fn_log_failure  \
"db-change-unaware.stdout" \
"db-change-unaware.stderr" \
"db-change-aware.stdout" \
"db-change-aware.stderr"
$at_traceon; }

else
  { set +x
$as_echo "$at_srcdir/ovsdb-server.at:217: ovs-appctl -t ovsdb-server ovsdb-server/add-db db2"
at_fn_check_prepare_trace "ovsdb-server.at:217"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/add-db db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovsdb error: db2: already open
ovs-appctl: ovsdb-server: server returned an error
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ovsdb-server.at:217"
$at_failed && at_fn_log_failure  \
"db-change-unaware.stdout" \
"db-change-unaware.stderr" \
"db-change-aware.stdout" \
"db-change-aware.stderr"
$at_traceon; }

fi

# Add a non-existing database.
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:224: ovs-appctl -t ovsdb-server ovsdb-server/add-db db3"
at_fn_check_prepare_trace "ovsdb-server.at:224"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/add-db db3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ovsdb-server.at:224"
$at_failed && at_fn_log_failure  \
"db-change-unaware.stdout" \
"db-change-unaware.stderr" \
"db-change-aware.stdout" \
"db-change-aware.stderr"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:225: sed 's/(.*)/(...)/' stderr"
at_fn_check_prepare_trace "ovsdb-server.at:225"
( $at_check_trace; sed 's/(.*)/(...)/' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "I/O error: db3: open failed (...)
ovs-appctl: ovsdb-server: server returned an error
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:225"
$at_failed && at_fn_log_failure  \
"db-change-unaware.stdout" \
"db-change-unaware.stderr" \
"db-change-aware.stdout" \
"db-change-aware.stderr"
$at_traceon; }


# Add a remote through a db path in db1.
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:231: ovs-appctl -t ovsdb-server ovsdb-server/add-remote db:ordinals,ordinals,name"
at_fn_check_prepare_trace "ovsdb-server.at:231"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/add-remote db:ordinals,ordinals,name
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:231"
$at_failed && at_fn_log_failure  \
"db-change-unaware.stdout" \
"db-change-unaware.stderr" \
"db-change-aware.stdout" \
"db-change-aware.stderr"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:232: ovs-appctl -t ovsdb-server ovsdb-server/list-remotes"
at_fn_check_prepare_trace "ovsdb-server.at:232"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/list-remotes
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "db:ordinals,ordinals,name
punix:db.sock
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:232"
$at_failed && at_fn_log_failure  \
"db-change-unaware.stdout" \
"db-change-unaware.stderr" \
"db-change-aware.stdout" \
"db-change-aware.stderr"
$at_traceon; }


# Removing db1 has no effect on its remote.
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:238: ovs-appctl -t ovsdb-server ovsdb-server/remove-db ordinals"
at_fn_check_prepare_trace "ovsdb-server.at:238"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/remove-db ordinals
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:238"
$at_failed && at_fn_log_failure  \
"db-change-unaware.stdout" \
"db-change-unaware.stderr" \
"db-change-aware.stdout" \
"db-change-aware.stderr"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:239: ovs-appctl -t ovsdb-server ovsdb-server/list-dbs"
at_fn_check_prepare_trace "ovsdb-server.at:239"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/list-dbs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "_Server
constraints
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:239"
$at_failed && at_fn_log_failure  \
"db-change-unaware.stdout" \
"db-change-unaware.stderr" \
"db-change-aware.stdout" \
"db-change-aware.stderr"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:239: ovsdb-client --no-headings dump _Server Database name | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-server.at:239"
( $at_check_trace; ovsdb-client --no-headings dump _Server Database name | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Database table
_Server
constraints
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:239"
$at_failed && at_fn_log_failure  \
"db-change-unaware.stdout" \
"db-change-unaware.stderr" \
"db-change-aware.stdout" \
"db-change-aware.stderr"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:241: ovs-appctl -t ovsdb-server ovsdb-server/list-remotes"
at_fn_check_prepare_trace "ovsdb-server.at:241"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/list-remotes
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "db:ordinals,ordinals,name
punix:db.sock
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:241"
$at_failed && at_fn_log_failure  \
"db-change-unaware.stdout" \
"db-change-unaware.stderr" \
"db-change-aware.stdout" \
"db-change-aware.stderr"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:245: ovsdb-client list-tables unix:db.sock ordinals"
at_fn_check_prepare_trace "ovsdb-server.at:245"
( $at_check_trace; ovsdb-client list-tables unix:db.sock ordinals
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-server.at:245"
$at_failed && at_fn_log_failure  \
"db-change-unaware.stdout" \
"db-change-unaware.stderr" \
"db-change-aware.stdout" \
"db-change-aware.stderr"
$at_traceon; }


# Remove db2.
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:248: ovs-appctl -t ovsdb-server ovsdb-server/remove-db constraints"
at_fn_check_prepare_trace "ovsdb-server.at:248"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/remove-db constraints
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:248"
$at_failed && at_fn_log_failure  \
"db-change-unaware.stdout" \
"db-change-unaware.stderr" \
"db-change-aware.stdout" \
"db-change-aware.stderr"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:249: ovs-appctl -t ovsdb-server ovsdb-server/list-dbs"
at_fn_check_prepare_trace "ovsdb-server.at:249"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/list-dbs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "_Server
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:249"
$at_failed && at_fn_log_failure  \
"db-change-unaware.stdout" \
"db-change-unaware.stderr" \
"db-change-aware.stdout" \
"db-change-aware.stderr"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:249: ovsdb-client --no-headings dump _Server Database name | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-server.at:249"
( $at_check_trace; ovsdb-client --no-headings dump _Server Database name | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Database table
_Server
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:249"
$at_failed && at_fn_log_failure  \
"db-change-unaware.stdout" \
"db-change-unaware.stderr" \
"db-change-aware.stdout" \
"db-change-aware.stderr"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:250: ovsdb-client list-tables unix:db.sock constraints"
at_fn_check_prepare_trace "ovsdb-server.at:250"
( $at_check_trace; ovsdb-client list-tables unix:db.sock constraints
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-server.at:250"
$at_failed && at_fn_log_failure  \
"db-change-unaware.stdout" \
"db-change-unaware.stderr" \
"db-change-aware.stdout" \
"db-change-aware.stderr"
$at_traceon; }


# Remove a non-existent database.
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:253: ovs-appctl -t ovsdb-server ovsdb-server/remove-db ordinals"
at_fn_check_prepare_trace "ovsdb-server.at:253"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/remove-db ordinals
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "Failed to find the database.
ovs-appctl: ovsdb-server: server returned an error
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ovsdb-server.at:253"
$at_failed && at_fn_log_failure  \
"db-change-unaware.stdout" \
"db-change-unaware.stderr" \
"db-change-aware.stdout" \
"db-change-aware.stderr"
$at_traceon; }


# Add a removed database.
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:259: ovs-appctl -t ovsdb-server ovsdb-server/add-db db2"
at_fn_check_prepare_trace "ovsdb-server.at:259"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/add-db db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:259"
$at_failed && at_fn_log_failure  \
"db-change-unaware.stdout" \
"db-change-unaware.stderr" \
"db-change-aware.stdout" \
"db-change-aware.stderr"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:260: ovs-appctl -t ovsdb-server ovsdb-server/list-dbs"
at_fn_check_prepare_trace "ovsdb-server.at:260"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/list-dbs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "_Server
constraints
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:260"
$at_failed && at_fn_log_failure  \
"db-change-unaware.stdout" \
"db-change-unaware.stderr" \
"db-change-aware.stdout" \
"db-change-aware.stderr"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:260: ovsdb-client --no-headings dump _Server Database name | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-server.at:260"
( $at_check_trace; ovsdb-client --no-headings dump _Server Database name | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Database table
_Server
constraints
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:260"
$at_failed && at_fn_log_failure  \
"db-change-unaware.stdout" \
"db-change-unaware.stderr" \
"db-change-aware.stdout" \
"db-change-aware.stderr"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:262: ovsdb-client list-tables unix:db.sock constraints"
at_fn_check_prepare_trace "ovsdb-server.at:262"
( $at_check_trace; ovsdb-client list-tables unix:db.sock constraints
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:262"
$at_failed && at_fn_log_failure  \
"db-change-unaware.stdout" \
"db-change-unaware.stderr" \
"db-change-aware.stdout" \
"db-change-aware.stderr"
$at_traceon; }


# Check the monitoring results.
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:265: uuidfilt db-change-aware.stdout"
at_fn_check_prepare_trace "ovsdb-server.at:265"
( $at_check_trace; uuidfilt db-change-aware.stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<0> initial _Server

<1> insert ordinals

<2> insert constraints

<1> delete ordinals

<2> delete constraints

<3> insert constraints
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:265"
$at_failed && at_fn_log_failure  \
"db-change-unaware.stdout" \
"db-change-unaware.stderr" \
"db-change-aware.stdout" \
"db-change-aware.stderr"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:278: uuidfilt db-change-unaware.stdout"
at_fn_check_prepare_trace "ovsdb-server.at:278"
( $at_check_trace; uuidfilt db-change-unaware.stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<0> initial _Server
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:278"
$at_failed && at_fn_log_failure  \
"db-change-unaware.stdout" \
"db-change-unaware.stderr" \
"db-change-aware.stdout" \
"db-change-aware.stderr"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:282: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovsdb-server.at:282"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:282"
$at_failed && at_fn_log_failure  \
"db-change-unaware.stdout" \
"db-change-unaware.stderr" \
"db-change-aware.stdout" \
"db-change-aware.stderr"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:282: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:282"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:282"
$at_failed && at_fn_log_failure  \
"db-change-unaware.stdout" \
"db-change-unaware.stderr" \
"db-change-aware.stdout" \
"db-change-aware.stderr"
$at_traceon; }

   $as_echo "ovsdb-server.at:282: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:282: wait failed" >&5

    $as_echo "ovsdb-server.at:282" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:282"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1828
#AT_START_1829
at_fn_group_banner 1829 'ovsdb-server.at:285' \
  "ovsdb-server/add-db with --monitor" "             " 86
at_xfail=no
(
  $as_echo "1829. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


$as_echo "ovsdb-server.at:287" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:287"
# Start ovsdb-server, initially with one db.
ordinal_schema > schema
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:290: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:290"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:290"
$at_failed && at_fn_log_failure
$at_traceon; }

on_exit 'kill `cat *.pid`'
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:292: ovsdb-server -vfile -vvlog:off --monitor --detach --no-chdir --pidfile --log-file --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-server.at:292"
( $at_check_trace; ovsdb-server -vfile -vvlog:off --monitor --detach --no-chdir --pidfile --log-file --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:292"
$at_failed && at_fn_log_failure
$at_traceon; }


# Add the second database.
constraint_schema > schema2
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:296: ovsdb-tool create db2 schema2"
at_fn_check_prepare_trace "ovsdb-server.at:296"
( $at_check_trace; ovsdb-tool create db2 schema2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:296"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:297: ovs-appctl -t ovsdb-server ovsdb-server/add-db db2"
at_fn_check_prepare_trace "ovsdb-server.at:297"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/add-db db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:297"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:298: ovs-appctl -t ovsdb-server ovsdb-server/list-dbs"
at_fn_check_prepare_trace "ovsdb-server.at:298"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/list-dbs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "_Server
constraints
ordinals
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:298"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:298: ovsdb-client --no-headings dump _Server Database name | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-server.at:298"
( $at_check_trace; ovsdb-client --no-headings dump _Server Database name | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Database table
_Server
constraints
ordinals
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:298"
$at_failed && at_fn_log_failure
$at_traceon; }


# Kill the daemon process, making it look like a segfault,
# and wait for a new daemon process to get spawned.
cp ovsdb-server.pid old.pid
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:305: kill -SEGV \`cat ovsdb-server.pid\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:305"
( $at_check_trace; kill -SEGV `cat ovsdb-server.pid`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:305"
$at_failed && at_fn_log_failure
$at_traceon; }

$as_echo "ovsdb-server.at:306: waiting while kill -0 \`cat old.pid\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat old.pid`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:306: wait failed" >&5

    $as_echo "ovsdb-server.at:306" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:306"
fi

$as_echo "ovsdb-server.at:307: waiting until test -s ovsdb-server.pid && test \`cat ovsdb-server.pid\` != \`cat old.pid\`..." >&5
ovs_wait_cond () {
    test -s ovsdb-server.pid && test `cat ovsdb-server.pid` != `cat old.pid`
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:307: wait failed" >&5

    $as_echo "ovsdb-server.at:307" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:307"
fi

$as_echo "ovsdb-server.at:309: waiting until ovs-appctl -t ovsdb-server version..." >&5
ovs_wait_cond () {
    ovs-appctl -t ovsdb-server version
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:309: wait failed" >&5

    $as_echo "ovsdb-server.at:309" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:309"
fi

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:310: ovs-appctl -t ovsdb-server ovsdb-server/list-dbs"
at_fn_check_prepare_trace "ovsdb-server.at:310"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/list-dbs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "_Server
constraints
ordinals
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:310"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:310: ovsdb-client --no-headings dump _Server Database name | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-server.at:310"
( $at_check_trace; ovsdb-client --no-headings dump _Server Database name | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Database table
_Server
constraints
ordinals
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:310"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:313: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovsdb-server.at:313"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:313"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:313: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:313"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:313"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:313: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:313: wait failed" >&5

    $as_echo "ovsdb-server.at:313" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:313"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1829
#AT_START_1830
at_fn_group_banner 1830 'ovsdb-server.at:316' \
  "ovsdb-server/add-db and remove-db with --monitor" "" 86
at_xfail=no
(
  $as_echo "1830. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


$as_echo "ovsdb-server.at:318" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:318"
# Start ovsdb-server, initially with one db.
ordinal_schema > schema
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:321: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:321"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:321"
$at_failed && at_fn_log_failure
$at_traceon; }

constraint_schema > schema2
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:323: ovsdb-tool create db2 schema2"
at_fn_check_prepare_trace "ovsdb-server.at:323"
( $at_check_trace; ovsdb-tool create db2 schema2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:323"
$at_failed && at_fn_log_failure
$at_traceon; }

on_exit 'kill `cat *.pid`'
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:325: ovsdb-server -vfile -vvlog:off --monitor --detach --no-chdir --pidfile --log-file --remote=punix:db.sock db1 db2"
at_fn_check_prepare_trace "ovsdb-server.at:325"
( $at_check_trace; ovsdb-server -vfile -vvlog:off --monitor --detach --no-chdir --pidfile --log-file --remote=punix:db.sock db1 db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:325"
$at_failed && at_fn_log_failure
$at_traceon; }


# Remove the second database.
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:328: ovs-appctl -t ovsdb-server ovsdb-server/remove-db constraints"
at_fn_check_prepare_trace "ovsdb-server.at:328"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/remove-db constraints
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:328"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:329: ovs-appctl -t ovsdb-server ovsdb-server/list-dbs"
at_fn_check_prepare_trace "ovsdb-server.at:329"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/list-dbs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "_Server
ordinals
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:329"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:329: ovsdb-client --no-headings dump _Server Database name | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-server.at:329"
( $at_check_trace; ovsdb-client --no-headings dump _Server Database name | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Database table
_Server
ordinals
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:329"
$at_failed && at_fn_log_failure
$at_traceon; }


# Kill the daemon process, making it look like a segfault,
# and wait for a new daemon process to get spawned.
cp ovsdb-server.pid old.pid
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:335: kill -SEGV \`cat ovsdb-server.pid\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:335"
( $at_check_trace; kill -SEGV `cat ovsdb-server.pid`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:335"
$at_failed && at_fn_log_failure
$at_traceon; }

$as_echo "ovsdb-server.at:336: waiting while kill -0 \`cat old.pid\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat old.pid`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:336: wait failed" >&5

    $as_echo "ovsdb-server.at:336" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:336"
fi

$as_echo "ovsdb-server.at:337: waiting until test -s ovsdb-server.pid && test \`cat ovsdb-server.pid\` != \`cat old.pid\`..." >&5
ovs_wait_cond () {
    test -s ovsdb-server.pid && test `cat ovsdb-server.pid` != `cat old.pid`
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:337: wait failed" >&5

    $as_echo "ovsdb-server.at:337" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:337"
fi

$as_echo "ovsdb-server.at:339: waiting until ovs-appctl -t ovsdb-server version..." >&5
ovs_wait_cond () {
    ovs-appctl -t ovsdb-server version
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:339: wait failed" >&5

    $as_echo "ovsdb-server.at:339" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:339"
fi

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:340: ovs-appctl -t ovsdb-server ovsdb-server/list-dbs"
at_fn_check_prepare_trace "ovsdb-server.at:340"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/list-dbs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "_Server
ordinals
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:340"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:340: ovsdb-client --no-headings dump _Server Database name | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-server.at:340"
( $at_check_trace; ovsdb-client --no-headings dump _Server Database name | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Database table
_Server
ordinals
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:340"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:342: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovsdb-server.at:342"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:342"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:342: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:342"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:342"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:342: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:342: wait failed" >&5

    $as_echo "ovsdb-server.at:342" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:342"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1830
#AT_START_1831
at_fn_group_banner 1831 'ovsdb-server.at:345' \
  "--remote=db: implementation" "                    " 86
at_xfail=no
(
  $as_echo "1831. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >schema <<'_ATEOF'
{"name": "mydb",
     "tables": {
       "Root": {
         "columns": {
           "managers": {
             "type": {
               "key": "string",
               "min": 0,
               "max": "unlimited"}},
           "manager_options": {
             "type": {
               "key": {"type": "uuid", "refTable": "Manager"},
               "min": 0,
               "max": "unlimited"}}}},
       "Manager": {
         "columns": {
           "target": {
             "type": "string"},
           "is_connected": {
             "type": {
               "key": "boolean",
               "min": 0,
               "max": 1}}}}}}
_ATEOF

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:372: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:372"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:372"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:373: ovsdb-tool transact db \\
     '[\"mydb\",
       {\"op\": \"insert\",
        \"table\": \"Root\",
        \"row\": {
          \"managers\": \"punix:socket1\",
          \"manager_options\": [\"set\", [[\"named-uuid\", \"x\"]]]}},
       {\"op\": \"insert\",
        \"table\": \"Manager\",
        \"uuid-name\": \"x\",
        \"row\": {\"target\": \"punix:socket2\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:373"
( $at_check_trace; ovsdb-tool transact db \
     '["mydb",
       {"op": "insert",
        "table": "Root",
        "row": {
          "managers": "punix:socket1",
          "manager_options": ["set", [["named-uuid", "x"]]]}},
       {"op": "insert",
        "table": "Manager",
        "uuid-name": "x",
        "row": {"target": "punix:socket2"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:373"
$at_failed && at_fn_log_failure
$at_traceon; }

on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:386: ovsdb-server --detach --no-chdir --pidfile --remote=db:mydb,Root,managers --remote=db:mydb,Root,manager_options --log-file db"
at_fn_check_prepare_trace "ovsdb-server.at:386"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=db:mydb,Root,managers --remote=db:mydb,Root,manager_options --log-file db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:386"
$at_failed && at_fn_log_failure
$at_traceon; }

ovs-appctl -t ovsdb-server time/warp 6000 1000
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:388: ovsdb-client transact unix:socket1 \\
     '[\"mydb\",
       {\"op\": \"select\",
        \"table\": \"Root\",
        \"where\": [],
        \"columns\": [\"managers\"]},
       {\"op\": \"select\",
        \"table\": \"Manager\",
        \"where\": [],
        \"columns\": [\"target\", \"is_connected\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:388"
( $at_check_trace; ovsdb-client transact unix:socket1 \
     '["mydb",
       {"op": "select",
        "table": "Root",
        "where": [],
        "columns": ["managers"]},
       {"op": "select",
        "table": "Manager",
        "where": [],
        "columns": ["target", "is_connected"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:388"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:400: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-server.at:400"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"rows\":[{\"managers\":\"punix:socket1\"}]},{\"rows\":[{\"is_connected\":false,\"target\":\"punix:socket2\"}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:400"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:406: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovsdb-server.at:406"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:406"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:406: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:406"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:406"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:406: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:406: wait failed" >&5

    $as_echo "ovsdb-server.at:406" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:406"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1831
#AT_START_1832
at_fn_group_banner 1832 'ovsdb-server.at:409' \
  "ovsdb-server/add-remote and remove-remote" "      " 86
at_xfail=no
(
  $as_echo "1832. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ordinal_schema > schema
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:412: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:412"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:412"
$at_failed && at_fn_log_failure
$at_traceon; }

on_exit 'kill `cat *.pid`'
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:414: ovsdb-server --detach --no-chdir --pidfile db"
at_fn_check_prepare_trace "ovsdb-server.at:414"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:414"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:416: test ! -e socket1"
at_fn_check_prepare_trace "ovsdb-server.at:416"
( $at_check_trace; test ! -e socket1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:416"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:417: ovs-appctl -t ovsdb-server ovsdb-server/add-remote punix:socket1"
at_fn_check_prepare_trace "ovsdb-server.at:417"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/add-remote punix:socket1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:417"
$at_failed && at_fn_log_failure
$at_traceon; }

if test "$IS_WIN32" = "yes"; then
  $as_echo "ovsdb-server.at:419: waiting until test -e socket1..." >&5
ovs_wait_cond () {
    test -e socket1
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:419: wait failed" >&5

    $as_echo "ovsdb-server.at:419" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:419"
fi

else
  $as_echo "ovsdb-server.at:421: waiting until test -S socket1..." >&5
ovs_wait_cond () {
    test -S socket1
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:421: wait failed" >&5

    $as_echo "ovsdb-server.at:421" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:421"
fi

fi
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:423: ovs-appctl -t ovsdb-server ovsdb-server/list-remotes"
at_fn_check_prepare_trace "ovsdb-server.at:423"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/list-remotes
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "punix:socket1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:423"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:427: test ! -e socket2"
at_fn_check_prepare_trace "ovsdb-server.at:427"
( $at_check_trace; test ! -e socket2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:427"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:428: ovs-appctl -t ovsdb-server ovsdb-server/add-remote punix:socket2"
at_fn_check_prepare_trace "ovsdb-server.at:428"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/add-remote punix:socket2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:428"
$at_failed && at_fn_log_failure
$at_traceon; }

if test "$IS_WIN32" = "yes"; then
  $as_echo "ovsdb-server.at:430: waiting until test -e socket2..." >&5
ovs_wait_cond () {
    test -e socket2
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:430: wait failed" >&5

    $as_echo "ovsdb-server.at:430" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:430"
fi

else
  $as_echo "ovsdb-server.at:432: waiting until test -S socket2..." >&5
ovs_wait_cond () {
    test -S socket2
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:432: wait failed" >&5

    $as_echo "ovsdb-server.at:432" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:432"
fi

fi
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:434: ovs-appctl -t ovsdb-server ovsdb-server/list-remotes"
at_fn_check_prepare_trace "ovsdb-server.at:434"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/list-remotes
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "punix:socket1
punix:socket2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:434"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:439: ovs-appctl -t ovsdb-server ovsdb-server/add-remote db:x,y,z"
at_fn_check_prepare_trace "ovsdb-server.at:439"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/add-remote db:x,y,z
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "\"db:x,y,z\": no database named x
ovs-appctl: ovsdb-server: server returned an error
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ovsdb-server.at:439"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:444: ovs-appctl -t ovsdb-server ovsdb-server/remove-remote punix:socket1"
at_fn_check_prepare_trace "ovsdb-server.at:444"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/remove-remote punix:socket1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:444"
$at_failed && at_fn_log_failure
$at_traceon; }

$as_echo "ovsdb-server.at:445: waiting until test ! -e socket1..." >&5
ovs_wait_cond () {
    test ! -e socket1
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:445: wait failed" >&5

    $as_echo "ovsdb-server.at:445" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:445"
fi

if test "$IS_WIN32" = "yes"; then
  { set +x
$as_echo "$at_srcdir/ovsdb-server.at:447: test -e socket2"
at_fn_check_prepare_trace "ovsdb-server.at:447"
( $at_check_trace; test -e socket2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:447"
$at_failed && at_fn_log_failure
$at_traceon; }

else
  { set +x
$as_echo "$at_srcdir/ovsdb-server.at:449: test -S socket2"
at_fn_check_prepare_trace "ovsdb-server.at:449"
( $at_check_trace; test -S socket2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:449"
$at_failed && at_fn_log_failure
$at_traceon; }

fi
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:451: ovs-appctl -t ovsdb-server ovsdb-server/list-remotes"
at_fn_check_prepare_trace "ovsdb-server.at:451"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/list-remotes
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "punix:socket2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:455: ovs-appctl -t ovsdb-server ovsdb-server/remove-remote punix:socket2"
at_fn_check_prepare_trace "ovsdb-server.at:455"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/remove-remote punix:socket2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:455"
$at_failed && at_fn_log_failure
$at_traceon; }

$as_echo "ovsdb-server.at:456: waiting until test ! -e socket2..." >&5
ovs_wait_cond () {
    test ! -e socket2
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:456: wait failed" >&5

    $as_echo "ovsdb-server.at:456" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:456"
fi

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:457: test ! -e socket1"
at_fn_check_prepare_trace "ovsdb-server.at:457"
( $at_check_trace; test ! -e socket1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:457"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:458: ovs-appctl -t ovsdb-server ovsdb-server/list-remotes"
at_fn_check_prepare_trace "ovsdb-server.at:458"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/list-remotes
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:458"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:459: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovsdb-server.at:459"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:459"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:459: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:459"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:459"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:459: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:459: wait failed" >&5

    $as_echo "ovsdb-server.at:459" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:459"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1832
#AT_START_1833
at_fn_group_banner 1833 'ovsdb-server.at:462' \
  "ovsdb-server/add-remote with --monitor" "         " 86
at_xfail=no
(
  $as_echo "1833. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


$as_echo "ovsdb-server.at:464" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:464"
# Start ovsdb-server, initially with no remotes.
ordinal_schema > schema
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:467: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:467"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

on_exit 'kill `cat *.pid`'
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:469: ovsdb-server -vfile -vvlog:off --monitor --detach --no-chdir --pidfile --log-file db"
at_fn_check_prepare_trace "ovsdb-server.at:469"
( $at_check_trace; ovsdb-server -vfile -vvlog:off --monitor --detach --no-chdir --pidfile --log-file db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:469"
$at_failed && at_fn_log_failure
$at_traceon; }


# Add a remote.
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:472: test ! -e socket1"
at_fn_check_prepare_trace "ovsdb-server.at:472"
( $at_check_trace; test ! -e socket1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:472"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:473: ovs-appctl -t ovsdb-server ovsdb-server/add-remote punix:socket1"
at_fn_check_prepare_trace "ovsdb-server.at:473"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/add-remote punix:socket1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:473"
$at_failed && at_fn_log_failure
$at_traceon; }

$as_echo "ovsdb-server.at:474: waiting until test -S socket1..." >&5
ovs_wait_cond () {
    test -S socket1
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:474: wait failed" >&5

    $as_echo "ovsdb-server.at:474" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:474"
fi

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:475: ovs-appctl -t ovsdb-server ovsdb-server/list-remotes"
at_fn_check_prepare_trace "ovsdb-server.at:475"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/list-remotes
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "punix:socket1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:475"
$at_failed && at_fn_log_failure
$at_traceon; }


# Kill the daemon process, making it look like a segfault,
# and wait for a new daemon process to get spawned and for it to
# start listening on 'socket1'.
cp ovsdb-server.pid old.pid
rm socket1
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:484: kill -SEGV \`cat ovsdb-server.pid\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:484"
( $at_check_trace; kill -SEGV `cat ovsdb-server.pid`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:484"
$at_failed && at_fn_log_failure
$at_traceon; }

$as_echo "ovsdb-server.at:485: waiting while kill -0 \`cat old.pid\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat old.pid`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:485: wait failed" >&5

    $as_echo "ovsdb-server.at:485" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:485"
fi

$as_echo "ovsdb-server.at:486: waiting until test -s ovsdb-server.pid && test \`cat ovsdb-server.pid\` != \`cat old.pid\`..." >&5
ovs_wait_cond () {
    test -s ovsdb-server.pid && test `cat ovsdb-server.pid` != `cat old.pid`
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:486: wait failed" >&5

    $as_echo "ovsdb-server.at:486" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:486"
fi

$as_echo "ovsdb-server.at:488: waiting until ovs-appctl -t ovsdb-server version..." >&5
ovs_wait_cond () {
    ovs-appctl -t ovsdb-server version
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:488: wait failed" >&5

    $as_echo "ovsdb-server.at:488" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:488"
fi

$as_echo "ovsdb-server.at:489: waiting until test -S socket1..." >&5
ovs_wait_cond () {
    test -S socket1
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:489: wait failed" >&5

    $as_echo "ovsdb-server.at:489" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:489"
fi

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:490: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovsdb-server.at:490"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:490"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:490: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:490"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:490"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:490: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:490: wait failed" >&5

    $as_echo "ovsdb-server.at:490" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:490"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1833
#AT_START_1834
at_fn_group_banner 1834 'ovsdb-server.at:493' \
  "ovsdb-server/add-remote and remove-remote with --monitor" "" 86
at_xfail=no
(
  $as_echo "1834. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


$as_echo "ovsdb-server.at:495" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:495"
# Start ovsdb-server, initially with no remotes.
ordinal_schema > schema
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:498: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:498"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:498"
$at_failed && at_fn_log_failure
$at_traceon; }

on_exit 'kill `cat *.pid`'
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:500: ovsdb-server -vfile -vvlog:off --monitor --detach --no-chdir --pidfile --log-file db"
at_fn_check_prepare_trace "ovsdb-server.at:500"
( $at_check_trace; ovsdb-server -vfile -vvlog:off --monitor --detach --no-chdir --pidfile --log-file db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:500"
$at_failed && at_fn_log_failure
$at_traceon; }


# Add a remote.
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:503: test ! -e socket1"
at_fn_check_prepare_trace "ovsdb-server.at:503"
( $at_check_trace; test ! -e socket1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:503"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:504: ovs-appctl -t ovsdb-server ovsdb-server/add-remote punix:socket1"
at_fn_check_prepare_trace "ovsdb-server.at:504"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/add-remote punix:socket1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:504"
$at_failed && at_fn_log_failure
$at_traceon; }

$as_echo "ovsdb-server.at:505: waiting until test -S socket1..." >&5
ovs_wait_cond () {
    test -S socket1
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:505: wait failed" >&5

    $as_echo "ovsdb-server.at:505" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:505"
fi

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:506: ovs-appctl -t ovsdb-server ovsdb-server/list-remotes"
at_fn_check_prepare_trace "ovsdb-server.at:506"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/list-remotes
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "punix:socket1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:506"
$at_failed && at_fn_log_failure
$at_traceon; }


# Remove the remote.
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:511: ovs-appctl -t ovsdb-server ovsdb-server/remove-remote punix:socket1"
at_fn_check_prepare_trace "ovsdb-server.at:511"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/remove-remote punix:socket1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:511"
$at_failed && at_fn_log_failure
$at_traceon; }

$as_echo "ovsdb-server.at:512: waiting until test ! -e socket1..." >&5
ovs_wait_cond () {
    test ! -e socket1
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:512: wait failed" >&5

    $as_echo "ovsdb-server.at:512" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:512"
fi

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:513: ovs-appctl -t ovsdb-server ovsdb-server/list-remotes"
at_fn_check_prepare_trace "ovsdb-server.at:513"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/list-remotes
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:513"
$at_failed && at_fn_log_failure
$at_traceon; }


# Kill the daemon process, making it look like a segfault,
# and wait for a new daemon process to get spawned and make sure that it
# does not listen on 'socket1'.
cp ovsdb-server.pid old.pid
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:519: kill -SEGV \`cat ovsdb-server.pid\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:519"
( $at_check_trace; kill -SEGV `cat ovsdb-server.pid`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:519"
$at_failed && at_fn_log_failure
$at_traceon; }

$as_echo "ovsdb-server.at:520: waiting while kill -0 \`cat old.pid\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat old.pid`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:520: wait failed" >&5

    $as_echo "ovsdb-server.at:520" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:520"
fi

$as_echo "ovsdb-server.at:521: waiting until test -s ovsdb-server.pid && test \`cat ovsdb-server.pid\` != \`cat old.pid\`..." >&5
ovs_wait_cond () {
    test -s ovsdb-server.pid && test `cat ovsdb-server.pid` != `cat old.pid`
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:521: wait failed" >&5

    $as_echo "ovsdb-server.at:521" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:521"
fi

$as_echo "ovsdb-server.at:523: waiting until ovs-appctl -t ovsdb-server version..." >&5
ovs_wait_cond () {
    ovs-appctl -t ovsdb-server version
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:523: wait failed" >&5

    $as_echo "ovsdb-server.at:523" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:523"
fi

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:524: test ! -e socket1"
at_fn_check_prepare_trace "ovsdb-server.at:524"
( $at_check_trace; test ! -e socket1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:524"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:525: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovsdb-server.at:525"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:525"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:525: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:525"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:525"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:525: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:525: wait failed" >&5

    $as_echo "ovsdb-server.at:525" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:525"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1834
#AT_START_1835
at_fn_group_banner 1835 'ovsdb-server.at:528' \
  "SSL db: implementation" "                         " 86
at_xfail=no
(
  $as_echo "1835. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


$as_echo "ovsdb-server.at:530" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:530"
# For this test, we pass PKIDIR through a ovsdb-tool transact and
# msys on Windows does not convert the path style automatically.
# So, do that forcefully with a 'pwd -W' (called through pwd() function).
PKIDIR="$(cd $abs_top_builddir/tests && pwd)"
$as_echo "ovsdb-server.at:535" >"$at_check_line_file"
(expr "$PKIDIR" : ".* 	'\"
\\") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:535"
cat >schema <<'_ATEOF'
{"name": "mydb",
     "tables": {
       "SSL": {
         "columns": {
           "private_key": {"type": "string"},
           "certificate": {"type": "string"},
           "ca_cert": {"type": "string"},
           "ssl_protocols" : {"type": "string"},
           "ssl_ciphers" : {"type" : "string"}}}}}
_ATEOF

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:548: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:548"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:548"
$at_failed && at_fn_log_failure
$at_traceon; }

# The !ECDHE-ECDSA-AES256-GCM-SHA384 in the ssl_ciphers is so that
# a cipher negotiation failure can be tested for later.
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:551: ovsdb-tool transact db \\
     '[\"mydb\",
       {\"op\": \"insert\",
        \"table\": \"SSL\",
        \"row\": {\"private_key\": \"'\"\$PKIDIR/testpki-privkey2.pem\"'\",
                \"certificate\": \"'\"\$PKIDIR/testpki-cert2.pem\"'\",
                \"ca_cert\": \"'\"\$PKIDIR/testpki-cacert.pem\"'\",
                \"ssl_protocols\": \"'\"TLSv1.2,TLSv1.1\"'\",
                \"ssl_ciphers\": \"'\"HIGH:!aNULL:!MD5:!ECDHE-ECDSA-AES256-GCM-SHA384\"'\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:551"
( $at_check_trace; ovsdb-tool transact db \
     '["mydb",
       {"op": "insert",
        "table": "SSL",
        "row": {"private_key": "'"$PKIDIR/testpki-privkey2.pem"'",
                "certificate": "'"$PKIDIR/testpki-cert2.pem"'",
                "ca_cert": "'"$PKIDIR/testpki-cacert.pem"'",
                "ssl_protocols": "'"TLSv1.2,TLSv1.1"'",
                "ssl_ciphers": "'"HIGH:!aNULL:!MD5:!ECDHE-ECDSA-AES256-GCM-SHA384"'"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:551"
$at_failed && at_fn_log_failure
$at_traceon; }

on_exit 'kill `cat *.pid`'
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:563: ovsdb-server --log-file --detach --no-chdir --pidfile \\
        --private-key=db:mydb,SSL,private_key \\
        --certificate=db:mydb,SSL,certificate \\
        --ca-cert=db:mydb,SSL,ca_cert \\
        --ssl-protocols=db:mydb,SSL,ssl_protocols \\
        --ssl-ciphers=db:mydb,SSL,ssl_ciphers \\
        --remote=pssl:0:127.0.0.1 db"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:563"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile \
        --private-key=db:mydb,SSL,private_key \
        --certificate=db:mydb,SSL,certificate \
        --ca-cert=db:mydb,SSL,ca_cert \
        --ssl-protocols=db:mydb,SSL,ssl_protocols \
        --ssl-ciphers=db:mydb,SSL,ssl_ciphers \
        --remote=pssl:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:563"
$at_failed && at_fn_log_failure
$at_traceon; }

$as_echo "ovsdb-server.at:572: waiting until SSL_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$SSL_PORT\"..." >&5
ovs_wait_cond () {
    SSL_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$SSL_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:572: wait failed" >&5

    $as_echo "ovsdb-server.at:572" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:572"
fi

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:573: ovsdb-client \\
        --private-key=\$PKIDIR/testpki-privkey.pem \\
        --certificate=\$PKIDIR/testpki-cert.pem \\
        --ca-cert=\$PKIDIR/testpki-cacert.pem \\
        --ssl-protocols=TLSv1.2,TLSv1.1 \\
        --ssl-ciphers=HIGH:!aNULL:!MD5 \\
        transact ssl:127.0.0.1:\$SSL_PORT \\
        '[\"mydb\",
          {\"op\": \"select\",
           \"table\": \"SSL\",
           \"where\": [],
           \"columns\": [\"private_key\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:573"
( $at_check_trace; ovsdb-client \
        --private-key=$PKIDIR/testpki-privkey.pem \
        --certificate=$PKIDIR/testpki-cert.pem \
        --ca-cert=$PKIDIR/testpki-cacert.pem \
        --ssl-protocols=TLSv1.2,TLSv1.1 \
        --ssl-ciphers=HIGH:!aNULL:!MD5 \
        transact ssl:127.0.0.1:$SSL_PORT \
        '["mydb",
          {"op": "select",
           "table": "SSL",
           "where": [],
           "columns": ["private_key"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:573"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:588: cat output"
at_fn_check_prepare_trace "ovsdb-server.at:588"
( $at_check_trace; cat output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"rows\":[{\"private_key\":\"$PKIDIR/testpki-privkey2.pem\"}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

# Check that when the server has TLSv1.1+ and the client has
# TLSv1 that the connection fails.
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:594: ovsdb-client \\
        --private-key=\$PKIDIR/testpki-privkey.pem \\
        --certificate=\$PKIDIR/testpki-cert.pem \\
        --ca-cert=\$PKIDIR/testpki-cacert.pem \\
        --ssl-protocols=TLSv1 \\
        --ssl-ciphers=HIGH:!aNULL:!MD5 \\
        transact ssl:127.0.0.1:\$SSL_PORT \\
        '[\"mydb\",
          {\"op\": \"select\",
           \"table\": \"SSL\",
           \"where\": [],
           \"columns\": [\"private_key\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:594"
( $at_check_trace; ovsdb-client \
        --private-key=$PKIDIR/testpki-privkey.pem \
        --certificate=$PKIDIR/testpki-cert.pem \
        --ca-cert=$PKIDIR/testpki-cacert.pem \
        --ssl-protocols=TLSv1 \
        --ssl-ciphers=HIGH:!aNULL:!MD5 \
        transact ssl:127.0.0.1:$SSL_PORT \
        '["mydb",
          {"op": "select",
           "table": "SSL",
           "where": [],
           "columns": ["private_key"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-server.at:594"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stderr > output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:610: sed -n \"/failed to connect/s/ (.*)//p\" output"
at_fn_check_prepare_trace "ovsdb-server.at:610"
( $at_check_trace; sed -n "/failed to connect/s/ (.*)//p" output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "ovsdb-client: failed to connect to \"ssl:127.0.0.1:$SSL_PORT\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:610"
$at_failed && at_fn_log_failure
$at_traceon; }

# Check that when ciphers are not compatible, that a negotiation
# failure occurs.
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:617: ovsdb-client \\
        --private-key=\$PKIDIR/testpki-privkey.pem \\
        --certificate=\$PKIDIR/testpki-cert.pem \\
        --ca-cert=\$PKIDIR/testpki-cacert.pem \\
        --ssl-protocols=TLSv1.2,TLSv1.1 \\
        --ssl-ciphers=ECDHE-ECDSA-AES256-GCM-SHA384 \\
        transact ssl:127.0.0.1:\$SSL_PORT \\
        '[\"mydb\",
          {\"op\": \"select\",
           \"table\": \"SSL\",
           \"where\": [],
           \"columns\": [\"private_key\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:617"
( $at_check_trace; ovsdb-client \
        --private-key=$PKIDIR/testpki-privkey.pem \
        --certificate=$PKIDIR/testpki-cert.pem \
        --ca-cert=$PKIDIR/testpki-cacert.pem \
        --ssl-protocols=TLSv1.2,TLSv1.1 \
        --ssl-ciphers=ECDHE-ECDSA-AES256-GCM-SHA384 \
        transact ssl:127.0.0.1:$SSL_PORT \
        '["mydb",
          {"op": "select",
           "table": "SSL",
           "where": [],
           "columns": ["private_key"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-server.at:617"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stderr > output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:633: sed -n \"/failed to connect/s/ (.*)//p\" output"
at_fn_check_prepare_trace "ovsdb-server.at:633"
( $at_check_trace; sed -n "/failed to connect/s/ (.*)//p" output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "ovsdb-client: failed to connect to \"ssl:127.0.0.1:$SSL_PORT\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:633"
$at_failed && at_fn_log_failure
$at_traceon; }

# The error message for being unable to negotiate a shared ciphersuite
# is 'sslv3 alert handshake failure'. This is not the clearest message.
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:640: grep \"sslv3 alert handshake failure\" output"
at_fn_check_prepare_trace "ovsdb-server.at:640"
( $at_check_trace; grep "sslv3 alert handshake failure" output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:640"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:644: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:644"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:644"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:644: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:644"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:644"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:644: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:644: wait failed" >&5

    $as_echo "ovsdb-server.at:644" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:644"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1835
#AT_START_1836
at_fn_group_banner 1836 'ovsdb-server.at:819' \
  "compacting online - standalone" "                 " 86
at_xfail=no
(
  $as_echo "1836. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ovsdb_check_online_compaction standalone
$as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1836
#AT_START_1837
at_fn_group_banner 1837 'ovsdb-server.at:824' \
  "compacting online - cluster" "                    " 86
at_xfail=no
(
  $as_echo "1837. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ovsdb_check_online_compaction cluster
$as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1837
#AT_START_1838
at_fn_group_banner 1838 'ovsdb-server.at:1105' \
  "schema conversion online - standalone" "          " 86
at_xfail=no
(
  $as_echo "1838. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ovsdb_check_online_conversion standalone
$as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1838
#AT_START_1839
at_fn_group_banner 1839 'ovsdb-server.at:1110' \
  "schema conversion online - clustered" "           " 86
at_xfail=no
(
  $as_echo "1839. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ovsdb_check_online_conversion cluster
$as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1839
#AT_START_1840
at_fn_group_banner 1840 'ovsdb-server.at:1115' \
  "ovsdb-server combines updates on backlogged connections" "" 86
at_xfail=no
(
  $as_echo "1840. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

on_exit 'kill `cat *.pid`'

# The maximum socket receive buffer size is important for this test, which
# tests behavior when the receive buffer overflows.
if test -e /proc/sys/net/core/rmem_max; then
    # Linux
    rmem_max=`cat /proc/sys/net/core/rmem_max`
elif rmem_max=`sysctl -n net.inet.tcp.recvbuf_max 2>/dev/null`; then
    : # FreeBSD, NetBSD
else
    # Don't know how to get maximum socket receive buffer on this OS
    $as_echo "ovsdb-server.at:1127" >"$at_check_line_file"
at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1127"
fi

# Calculate the number of iterations we need to queue.  Each of the
# iterations we execute, by itself, yields a monitor update of about
# 25 kB, so fill up that much space plus a few for luck.
n_iterations=`expr $rmem_max / 25000 + 5`
echo rmem_max=$rmem_max n_iterations=$n_iterations

# If there's too much queuing skip the test to avoid timing out.
$as_echo "ovsdb-server.at:1137" >"$at_check_line_file"
(test $rmem_max -gt 1048576) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1137"

# Calculate the exact number of monitor updates expected for $n_iterations,
# assuming no updates are combined.  The "extra" update is for the initial
# contents of the database.
n_updates=`expr $n_iterations \* 3 + 1`

# Start an ovsdb-server with the vswitchd schema.
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1145: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovsdb-server.at:1145"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1145"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1145: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1145"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1145"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1146: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:db.sock db"
at_fn_check_prepare_trace "ovsdb-server.at:1146"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:db.sock db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1146"
$at_failed && at_fn_log_failure
$at_traceon; }


# Executes a set of transactions that add a bridge with 100 ports, and
# then deletes that bridge.  This yields three monitor updates that
# add up to about 25 kB in size.
#
# The update also increments a counter held in the database so that we can
# verify that the overall effect of the transactions took effect (e.g.
# monitor updates at the end weren't just dropped).  We add an arbitrary
# string to the counter to make grepping for it more reliable.
counter=0
trigger_big_update () {
    counter=`expr $counter + 1`
    ovs-vsctl --no-wait -- set open_vswitch . system_version=xyzzy$counter
    ovs-vsctl --no-wait -- add-br br0 $add
    ovs-vsctl --no-wait -- del-br br0
}
add_ports () {
    for j in `seq 1 100`; do
        printf " -- add-port br0 p%d" $j
    done
}
add=`add_ports`





# Start an ovsdb-client monitoring all changes to the database,
# By default, it is non-blocking, and will get update message
# for each ovsdb-server transaactions.
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1178: ovsdb-client --detach --no-chdir --pidfile=nonblock.pid monitor ALL >ovsdb-client-nonblock.out 2>ovsdb-client-nonblock.err"
at_fn_check_prepare_trace "ovsdb-server.at:1178"
( $at_check_trace; ovsdb-client --detach --no-chdir --pidfile=nonblock.pid monitor ALL >ovsdb-client-nonblock.out 2>ovsdb-client-nonblock.err
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1178"
$at_failed && at_fn_log_failure  \
"ovsdb-client.err" \
"ovsdb-client-nonblock.err"
$at_traceon; }


# Start an ovsdb-client monitoring all changes to the database,
# make it block to force the buffers to fill up, and then execute
# enough iterations that ovsdb-server starts combining updates.
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1183: ovsdb-client --detach --no-chdir --pidfile monitor ALL >ovsdb-client.out 2>ovsdb-client.err"
at_fn_check_prepare_trace "ovsdb-server.at:1183"
( $at_check_trace; ovsdb-client --detach --no-chdir --pidfile monitor ALL >ovsdb-client.out 2>ovsdb-client.err
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1183"
$at_failed && at_fn_log_failure  \
"ovsdb-client.err" \
"ovsdb-client-nonblock.err"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1184: ovs-appctl -t ovsdb-client ovsdb-client/block"
at_fn_check_prepare_trace "ovsdb-server.at:1184"
( $at_check_trace; ovs-appctl -t ovsdb-client ovsdb-client/block
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1184"
$at_failed && at_fn_log_failure  \
"ovsdb-client.err" \
"ovsdb-client-nonblock.err"
$at_traceon; }

for i in `seq 1 $n_iterations`; do
    echo "blocked update ($i of $n_iterations)"
    trigger_big_update $i
done
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1189: ovs-appctl -t ovsdb-client ovsdb-client/unblock"
at_fn_check_prepare_trace "ovsdb-server.at:1189"
( $at_check_trace; ovs-appctl -t ovsdb-client ovsdb-client/unblock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1189"
$at_failed && at_fn_log_failure  \
"ovsdb-client.err" \
"ovsdb-client-nonblock.err"
$at_traceon; }

$as_echo "ovsdb-server.at:1190: waiting until grep \"\\\"xyzzy\$counter\\\"\" ovsdb-client.out..." >&5
ovs_wait_cond () {
    grep "\"xyzzy$counter\"" ovsdb-client.out
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1190: wait failed" >&5

    $as_echo "ovsdb-server.at:1190" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1190"
fi

$as_echo "ovsdb-server.at:1191: waiting until grep \"\\\"xyzzy\$counter\\\"\" ovsdb-client-nonblock.out..." >&5
ovs_wait_cond () {
    grep "\"xyzzy$counter\"" ovsdb-client-nonblock.out
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1191: wait failed" >&5

    $as_echo "ovsdb-server.at:1191" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1191"
fi

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1192: test -e \$OVS_RUNDIR/ovsdb-client.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-client.pid" "ovsdb-server.at:1192"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-client.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1192"
$at_failed && at_fn_log_failure  \
"ovsdb-client.err" \
"ovsdb-client-nonblock.err"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-client.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1192: ovs-appctl --timeout=10 -t ovsdb-client exit"
at_fn_check_prepare_trace "ovsdb-server.at:1192"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-client exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1192"
$at_failed && at_fn_log_failure  \
"ovsdb-client.err" \
"ovsdb-client-nonblock.err"
$at_traceon; }

   $as_echo "ovsdb-server.at:1192: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1192: wait failed" >&5

    $as_echo "ovsdb-server.at:1192" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1192"
fi

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1193: kill \`cat nonblock.pid\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1193"
( $at_check_trace; kill `cat nonblock.pid`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1193"
$at_failed && at_fn_log_failure  \
"ovsdb-client.err" \
"ovsdb-client-nonblock.err"
$at_traceon; }


# Count the number of updates in the ovsdb-client output, by counting
# the number of changes to the Open_vSwitch table.  (All of our
# transactions modify the Open_vSwitch table.)  It should be less than
# $n_updates updates.
#
# Check that the counter is what we expect.
logged_updates=`grep -c '^Open_vSwitch' ovsdb-client.out`
logged_nonblock_updates=`grep -c '^Open_vSwitch' ovsdb-client-nonblock.out`
echo "logged_nonblock_updates=$logged_nonblock_updates (expected less or equal to $n_updates)"
echo "logged_updates=$logged_updates (expected less than $logged_nonblock_updates)"
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1205: test \$logged_nonblock_updates -le \$n_updates"
at_fn_check_prepare_dynamic "test $logged_nonblock_updates -le $n_updates" "ovsdb-server.at:1205"
( $at_check_trace; test $logged_nonblock_updates -le $n_updates
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1205"
$at_failed && at_fn_log_failure  \
"ovsdb-client.err" \
"ovsdb-client-nonblock.err"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1206: test \$logged_updates -lt \$logged_nonblock_updates"
at_fn_check_prepare_dynamic "test $logged_updates -lt $logged_nonblock_updates" "ovsdb-server.at:1206"
( $at_check_trace; test $logged_updates -lt $logged_nonblock_updates
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1206"
$at_failed && at_fn_log_failure  \
"ovsdb-client.err" \
"ovsdb-client-nonblock.err"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1207: ovs-vsctl get open_vswitch . system_version"
at_fn_check_prepare_trace "ovsdb-server.at:1207"
( $at_check_trace; ovs-vsctl get open_vswitch . system_version
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"xyzzy$counter\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1207"
$at_failed && at_fn_log_failure  \
"ovsdb-client.err" \
"ovsdb-client-nonblock.err"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1210: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovsdb-server.at:1210"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1210"
$at_failed && at_fn_log_failure  \
"ovsdb-client.err" \
"ovsdb-client-nonblock.err"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1210: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1210"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1210"
$at_failed && at_fn_log_failure  \
"ovsdb-client.err" \
"ovsdb-client-nonblock.err"
$at_traceon; }

   $as_echo "ovsdb-server.at:1210: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1210: wait failed" >&5

    $as_echo "ovsdb-server.at:1210" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1210"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1840
#AT_START_1841
at_fn_group_banner 1841 'ovsdb-server.at:1248' \
  "insert default row, query table" "                " 87
at_xfail=no
(
  $as_echo "1841. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1248"
   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=\$PKIDIR/testpki-privkey2.pem --certificate=\$PKIDIR/testpki-cert2.pem --ca-cert=\$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db"
at_fn_check_prepare_dynamic "ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db" "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting until SSL_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$SSL_PORT\"..." >&5
ovs_wait_cond () {
    SSL_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$SSL_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<1>\"],\"name\":\"\",\"number\":0}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1841
#AT_START_1842
at_fn_group_banner 1842 'ovsdb-server.at:1248' \
  "insert row, query table" "                        " 87
at_xfail=no
(
  $as_echo "1842. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1248"
   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=\$PKIDIR/testpki-privkey2.pem --certificate=\$PKIDIR/testpki-cert2.pem --ca-cert=\$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db"
at_fn_check_prepare_dynamic "ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db" "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting until SSL_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$SSL_PORT\"..." >&5
ovs_wait_cond () {
    SSL_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$SSL_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<1>\"],\"name\":\"zero\",\"number\":0}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1842
#AT_START_1843
at_fn_group_banner 1843 'ovsdb-server.at:1248' \
  "insert rows, query by value" "                    " 87
at_xfail=no
(
  $as_echo "1843. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1248"
   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=\$PKIDIR/testpki-privkey2.pem --certificate=\$PKIDIR/testpki-cert2.pem --ca-cert=\$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db"
at_fn_check_prepare_dynamic "ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db" "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting until SSL_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$SSL_PORT\"..." >&5
ovs_wait_cond () {
    SSL_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$SSL_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"zero\"]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [["name", "==", "zero"]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"one\"]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [["name", "==", "one"]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"zero\",\"number\":0}]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<3>\"],\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1843
#AT_START_1844
at_fn_group_banner 1844 'ovsdb-server.at:1248' \
  "insert rows, query by named-uuid" "               " 87
at_xfail=no
(
  $as_echo "1844. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1248"
   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=\$PKIDIR/testpki-privkey2.pem --certificate=\$PKIDIR/testpki-cert2.pem --ca-cert=\$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db"
at_fn_check_prepare_dynamic "ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db" "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting until SSL_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$SSL_PORT\"..." >&5
ovs_wait_cond () {
    SSL_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$SSL_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"second\"},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [[\"_uuid\", \"==\", [\"named-uuid\", \"first\"]]]},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [[\"_uuid\", \"==\", [\"named-uuid\", \"second\"]]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "second"},
      {"op": "select",
       "table": "ordinals",
       "where": [["_uuid", "==", ["named-uuid", "first"]]]},
      {"op": "select",
       "table": "ordinals",
       "where": [["_uuid", "==", ["named-uuid", "second"]]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"zero\",\"number\":0}]},{\"rows\":[{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<3>\"],\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1844
#AT_START_1845
at_fn_group_banner 1845 'ovsdb-server.at:1248' \
  "insert rows, update rows by value" "              " 87
at_xfail=no
(
  $as_echo "1845. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1248"
   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=\$PKIDIR/testpki-privkey2.pem --certificate=\$PKIDIR/testpki-cert2.pem --ca-cert=\$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db"
at_fn_check_prepare_dynamic "ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db" "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting until SSL_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$SSL_PORT\"..." >&5
ovs_wait_cond () {
    SSL_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$SSL_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"update\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"zero\"]],
       \"row\": {\"name\": \"nought\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [["name", "==", "zero"]],
       "row": {"name": "nought"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"sort\": [\"number\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "sort": ["number"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"count\":1}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"nought\",\"number\":0},{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<3>\"],\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1845
#AT_START_1846
at_fn_group_banner 1846 'ovsdb-server.at:1248' \
  "insert rows, mutate rows" "                       " 87
at_xfail=no
(
  $as_echo "1846. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1248"
   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=\$PKIDIR/testpki-privkey2.pem --certificate=\$PKIDIR/testpki-cert2.pem --ca-cert=\$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db"
at_fn_check_prepare_dynamic "ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db" "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting until SSL_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$SSL_PORT\"..." >&5
ovs_wait_cond () {
    SSL_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$SSL_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"mutate\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"zero\"]],
       \"mutations\": [[\"number\", \"+=\", 2]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["ordinals",
      {"op": "mutate",
       "table": "ordinals",
       "where": [["name", "==", "zero"]],
       "mutations": [["number", "+=", 2]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"sort\": [\"number\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "sort": ["number"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"count\":1}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"one\",\"number\":1},{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<3>\"],\"name\":\"zero\",\"number\":2}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1846
#AT_START_1847
at_fn_group_banner 1847 'ovsdb-server.at:1248' \
  "insert rows, delete by named-uuid" "              " 87
at_xfail=no
(
  $as_echo "1847. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1248"
   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=\$PKIDIR/testpki-privkey2.pem --certificate=\$PKIDIR/testpki-cert2.pem --ca-cert=\$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db"
at_fn_check_prepare_dynamic "ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db" "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting until SSL_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$SSL_PORT\"..." >&5
ovs_wait_cond () {
    SSL_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$SSL_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"second\"},
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": [[\"_uuid\", \"==\", [\"named-uuid\", \"first\"]]]},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\",\"number\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "second"},
      {"op": "delete",
       "table": "ordinals",
       "where": [["_uuid", "==", ["named-uuid", "first"]]]},
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "columns": ["name","number"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"count\":1},{\"rows\":[{\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1847
#AT_START_1848
at_fn_group_banner 1848 'ovsdb-server.at:1248' \
  "insert rows, delete rows by value" "              " 87
at_xfail=no
(
  $as_echo "1848. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1248"
   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=\$PKIDIR/testpki-privkey2.pem --certificate=\$PKIDIR/testpki-cert2.pem --ca-cert=\$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db"
at_fn_check_prepare_dynamic "ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db" "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting until SSL_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$SSL_PORT\"..." >&5
ovs_wait_cond () {
    SSL_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$SSL_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"zero\"]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": [["name", "==", "zero"]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"count\":1}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1848
#AT_START_1849
at_fn_group_banner 1849 'ovsdb-server.at:1248' \
  "insert rows, delete by (non-matching) value" "    " 87
at_xfail=no
(
  $as_echo "1849. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1248"
   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=\$PKIDIR/testpki-privkey2.pem --certificate=\$PKIDIR/testpki-cert2.pem --ca-cert=\$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db"
at_fn_check_prepare_dynamic "ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db" "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting until SSL_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$SSL_PORT\"..." >&5
ovs_wait_cond () {
    SSL_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$SSL_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"nought\"]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": [["name", "==", "nought"]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"sort\": [\"number\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "sort": ["number"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"count\":0}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"zero\",\"number\":0},{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<3>\"],\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1849
#AT_START_1850
at_fn_group_banner 1850 'ovsdb-server.at:1248' \
  "insert rows, delete all" "                        " 87
at_xfail=no
(
  $as_echo "1850. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1248"
   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=\$PKIDIR/testpki-privkey2.pem --certificate=\$PKIDIR/testpki-cert2.pem --ca-cert=\$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db"
at_fn_check_prepare_dynamic "ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db" "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting until SSL_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$SSL_PORT\"..." >&5
ovs_wait_cond () {
    SSL_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$SSL_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"second\"},
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": []},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\",\"number\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "second"},
      {"op": "delete",
       "table": "ordinals",
       "where": []},
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "columns": ["name","number"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"count\":2},{\"rows\":[]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1850
#AT_START_1851
at_fn_group_banner 1851 'ovsdb-server.at:1248' \
  "insert row, query table, commit" "                " 87
at_xfail=no
(
  $as_echo "1851. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1248"
   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=\$PKIDIR/testpki-privkey2.pem --certificate=\$PKIDIR/testpki-cert2.pem --ca-cert=\$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db"
at_fn_check_prepare_dynamic "ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db" "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting until SSL_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$SSL_PORT\"..." >&5
ovs_wait_cond () {
    SSL_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$SSL_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": []},
      {\"op\": \"commit\",
       \"durable\": false}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "select",
       "table": "ordinals",
       "where": []},
      {"op": "commit",
       "durable": false}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<1>\"],\"name\":\"zero\",\"number\":0}]},{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1851
#AT_START_1852
at_fn_group_banner 1852 'ovsdb-server.at:1248' \
  "insert row, query table, commit durably" "        " 87
at_xfail=no
(
  $as_echo "1852. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1248"
   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=\$PKIDIR/testpki-privkey2.pem --certificate=\$PKIDIR/testpki-cert2.pem --ca-cert=\$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db"
at_fn_check_prepare_dynamic "ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db" "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting until SSL_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$SSL_PORT\"..." >&5
ovs_wait_cond () {
    SSL_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$SSL_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": []},
      {\"op\": \"commit\",
       \"durable\": true}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "select",
       "table": "ordinals",
       "where": []},
      {"op": "commit",
       "durable": true}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<1>\"],\"name\":\"zero\",\"number\":0}]},{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1852
#AT_START_1853
at_fn_group_banner 1853 'ovsdb-server.at:1248' \
  "equality wait with correct rows" "                " 87
at_xfail=no
(
  $as_echo "1853. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1248"
   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=\$PKIDIR/testpki-privkey2.pem --certificate=\$PKIDIR/testpki-cert2.pem --ca-cert=\$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db"
at_fn_check_prepare_dynamic "ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db" "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting until SSL_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$SSL_PORT\"..." >&5
ovs_wait_cond () {
    SSL_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$SSL_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 0,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"==\",
       \"rows\": [{\"name\": \"zero\", \"number\": 0},
                {\"name\": \"one\", \"number\": 1}]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "==",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1}]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1853
#AT_START_1854
at_fn_group_banner 1854 'ovsdb-server.at:1248' \
  "equality wait with extra row" "                   " 87
at_xfail=no
(
  $as_echo "1854. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1248"
   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=\$PKIDIR/testpki-privkey2.pem --certificate=\$PKIDIR/testpki-cert2.pem --ca-cert=\$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db"
at_fn_check_prepare_dynamic "ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db" "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting until SSL_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$SSL_PORT\"..." >&5
ovs_wait_cond () {
    SSL_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$SSL_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 0,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"==\",
       \"rows\": [{\"name\": \"zero\", \"number\": 0},
                {\"name\": \"one\", \"number\": 1},
                {\"name\": \"two\", \"number\": 2}]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "==",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1},
                {"name": "two", "number": 2}]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"details\":\"\\\"where\\\" clause test failed\",\"error\":\"timed out\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1854
#AT_START_1855
at_fn_group_banner 1855 'ovsdb-server.at:1248' \
  "equality wait with missing row" "                 " 87
at_xfail=no
(
  $as_echo "1855. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1248"
   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=\$PKIDIR/testpki-privkey2.pem --certificate=\$PKIDIR/testpki-cert2.pem --ca-cert=\$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db"
at_fn_check_prepare_dynamic "ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db" "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting until SSL_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$SSL_PORT\"..." >&5
ovs_wait_cond () {
    SSL_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$SSL_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 0,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"==\",
       \"rows\": [{\"name\": \"one\", \"number\": 1}]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "==",
       "rows": [{"name": "one", "number": 1}]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"details\":\"\\\"where\\\" clause test failed\",\"error\":\"timed out\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1855
#AT_START_1856
at_fn_group_banner 1856 'ovsdb-server.at:1248' \
  "inequality wait with correct rows" "              " 87
at_xfail=no
(
  $as_echo "1856. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1248"
   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=\$PKIDIR/testpki-privkey2.pem --certificate=\$PKIDIR/testpki-cert2.pem --ca-cert=\$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db"
at_fn_check_prepare_dynamic "ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db" "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting until SSL_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$SSL_PORT\"..." >&5
ovs_wait_cond () {
    SSL_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$SSL_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 0,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"!=\",
       \"rows\": [{\"name\": \"zero\", \"number\": 0},
                {\"name\": \"one\", \"number\": 1}]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "!=",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1}]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"details\":\"\\\"where\\\" clause test failed\",\"error\":\"timed out\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1856
#AT_START_1857
at_fn_group_banner 1857 'ovsdb-server.at:1248' \
  "inequality wait with extra row" "                 " 87
at_xfail=no
(
  $as_echo "1857. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1248"
   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=\$PKIDIR/testpki-privkey2.pem --certificate=\$PKIDIR/testpki-cert2.pem --ca-cert=\$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db"
at_fn_check_prepare_dynamic "ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db" "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting until SSL_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$SSL_PORT\"..." >&5
ovs_wait_cond () {
    SSL_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$SSL_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 0,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"!=\",
       \"rows\": [{\"name\": \"zero\", \"number\": 0},
                {\"name\": \"one\", \"number\": 1},
                {\"name\": \"two\", \"number\": 2}]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "!=",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1},
                {"name": "two", "number": 2}]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1857
#AT_START_1858
at_fn_group_banner 1858 'ovsdb-server.at:1248' \
  "inequality wait with missing row" "               " 87
at_xfail=no
(
  $as_echo "1858. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1248"
   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=\$PKIDIR/testpki-privkey2.pem --certificate=\$PKIDIR/testpki-cert2.pem --ca-cert=\$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db"
at_fn_check_prepare_dynamic "ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db" "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting until SSL_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$SSL_PORT\"..." >&5
ovs_wait_cond () {
    SSL_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$SSL_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 0,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"!=\",
       \"rows\": [{\"name\": \"one\", \"number\": 1}]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "!=",
       "rows": [{"name": "one", "number": 1}]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1858
#AT_START_1859
at_fn_group_banner 1859 'ovsdb-server.at:1248' \
  "insert and update constraints" "                  " 87
at_xfail=no
(
  $as_echo "1859. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1248"
   constraint_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=\$PKIDIR/testpki-privkey2.pem --certificate=\$PKIDIR/testpki-cert2.pem --ca-cert=\$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db"
at_fn_check_prepare_dynamic "ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db" "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting until SSL_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$SSL_PORT\"..." >&5
ovs_wait_cond () {
    SSL_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$SSL_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"constrained\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"constrained\",
       \"row\": {\"positive\": -1}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {"positive": -1}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"constraints\",
      {\"op\": \"update\",
       \"table\": \"constrained\",
       \"where\": [],
       \"row\": {\"positive\": -2}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["constraints",
      {"op": "update",
       "table": "constrained",
       "where": [],
       "row": {"positive": -2}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"constrained\",
       \"row\": {\"positive\": 1}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {"positive": 1}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"constrained\",
       \"row\": {\"positive\": 2}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {"positive": 2}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"details\":\"0 is less than minimum allowed value 1\",\"error\":\"constraint violation\"}]
[{\"details\":\"-1 is less than minimum allowed value 1\",\"error\":\"constraint violation\"}]
[{\"details\":\"-2 is less than minimum allowed value 1\",\"error\":\"constraint violation\"}]
[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]},{\"details\":\"transaction causes \\\"constrained\\\" table to contain 2 rows, greater than the schema-defined limit of 1 row(s)\",\"error\":\"constraint violation\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1859
#AT_START_1860
at_fn_group_banner 1860 'ovsdb-server.at:1248' \
  "index uniqueness checking" "                      " 87
at_xfail=no
(
  $as_echo "1860. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1248"
   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=\$PKIDIR/testpki-privkey2.pem --certificate=\$PKIDIR/testpki-cert2.pem --ca-cert=\$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db"
at_fn_check_prepare_dynamic "ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db" "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting until SSL_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$SSL_PORT\"..." >&5
ovs_wait_cond () {
    SSL_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$SSL_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '   [\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"another one\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '   ["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "another one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '   [\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"another one\"}},
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"one\"]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '   ["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "another one"}},
      {"op": "delete",
       "table": "ordinals",
       "where": [["name", "==", "one"]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '   [\"ordinals\",
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": []},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"still another one\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '   ["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": []},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "still another one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '   [\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 2, \"name\": \"two\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '   ["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 2, "name": "two"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '   [\"ordinals\",
      {\"op\": \"update\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"row\": {\"number\": 3}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '   ["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [],
       "row": {"number": 3}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '   [\"ordinals\",
      {\"op\": \"update\",
       \"table\": \"ordinals\",
       \"where\": [[\"number\", \"==\", 1]],
       \"row\": {\"number\": 2, \"name\": \"old two\"}},
      {\"op\": \"update\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"two\"]],
       \"row\": {\"number\": 1, \"name\": \"old one\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '   ["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [["number", "==", 1]],
       "row": {"number": 2, "name": "old two"}},
      {"op": "update",
       "table": "ordinals",
       "where": [["name", "==", "two"]],
       "row": {"number": 1, "name": "old one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '   [\"ordinals\",
      {\"op\": \"mutate\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"mutations\": [[\"number\", \"*=\", 10]]},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"new one\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 2, \"name\": \"new two\"}},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"number\", \"name\"],
       \"sort\": [\"number\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '   ["ordinals",
      {"op": "mutate",
       "table": "ordinals",
       "where": [],
       "mutations": [["number", "*=", 10]]},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "new one"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 2, "name": "new two"}},
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "columns": ["number", "name"],
       "sort": ["number"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]},{\"details\":\"Transaction causes multiple rows in \\\"ordinals\\\" table to have identical values (1) for index on column \\\"number\\\".  First row, with UUID <0>, existed in the database before this transaction and was not modified by the transaction.  Second row, with UUID <1>, was inserted by this transaction.\",\"error\":\"constraint violation\"}]
[{\"uuid\":[\"uuid\",\"<2>\"]},{\"count\":1}]
[{\"count\":1},{\"uuid\":[\"uuid\",\"<3>\"]},{\"uuid\":[\"uuid\",\"<4>\"]},{\"details\":\"Transaction causes multiple rows in \\\"ordinals\\\" table to have identical values (1) for index on column \\\"number\\\".  First row, with UUID <4>, was inserted by this transaction.  Second row, with UUID <3>, was inserted by this transaction.\",\"error\":\"constraint violation\"}]
[{\"uuid\":[\"uuid\",\"<5>\"]}]
[{\"count\":2},{\"details\":\"Transaction causes multiple rows in \\\"ordinals\\\" table to have identical values (3) for index on column \\\"number\\\".  First row, with UUID <5>, had the following index values before the transaction: 2.  Second row, with UUID <2>, had the following index values before the transaction: 1.\",\"error\":\"constraint violation\"}]
[{\"count\":1},{\"count\":1}]
[{\"count\":2},{\"uuid\":[\"uuid\",\"<6>\"]},{\"uuid\":[\"uuid\",\"<7>\"]},{\"rows\":[{\"name\":\"new one\",\"number\":1},{\"name\":\"new two\",\"number\":2},{\"name\":\"old one\",\"number\":10},{\"name\":\"old two\",\"number\":20}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1860
#AT_START_1861
at_fn_group_banner 1861 'ovsdb-server.at:1248' \
  "referential integrity -- simple" "                " 87
at_xfail=no
(
  $as_echo "1861. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1248"
   constraint_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=\$PKIDIR/testpki-privkey2.pem --certificate=\$PKIDIR/testpki-cert2.pem --ca-cert=\$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db"
at_fn_check_prepare_dynamic "ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db" "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting until SSL_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$SSL_PORT\"..." >&5
ovs_wait_cond () {
    SSL_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$SSL_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"b\",
       \"row\": {\"b\": 1},
       \"uuid-name\": \"brow\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 0,
               \"a2b\": [\"set\", [[\"named-uuid\", \"brow\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 1,
               \"a2b\": [\"set\", [[\"named-uuid\", \"brow\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 2,
               \"a2b\": [\"set\", [[\"named-uuid\", \"brow\"]]]}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["constraints",
      {"op": "insert",
       "table": "b",
       "row": {"b": 1},
       "uuid-name": "brow"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 0,
               "a2b": ["set", [["named-uuid", "brow"]]]}},
      {"op": "insert",
       "table": "a",
       "row": {"a": 1,
               "a2b": ["set", [["named-uuid", "brow"]]]}},
      {"op": "insert",
       "table": "a",
       "row": {"a": 2,
               "a2b": ["set", [["named-uuid", "brow"]]]}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '   [\"constraints\",
      {\"op\": \"mutate\",
       \"table\": \"b\",
       \"where\": [],
       \"mutations\": [[\"x\", \"delete\", 0]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '   ["constraints",
      {"op": "mutate",
       "table": "b",
       "where": [],
       "mutations": [["x", "delete", 0]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 0]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 1]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 2]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 2]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]},{\"uuid\":[\"uuid\",\"<3>\"]}]
[{\"count\":1},{\"details\":\"cannot delete b row <0> because of 3 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"details\":\"Attempted to store 0 elements in set of 1 to 2 integers.\",\"error\":\"constraint violation\"}]
[{\"count\":1}]
[{\"count\":1},{\"details\":\"cannot delete b row <0> because of 2 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"count\":1}]
[{\"count\":1},{\"details\":\"cannot delete b row <0> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"count\":1}]
[{\"count\":1}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1861
#AT_START_1862
at_fn_group_banner 1862 'ovsdb-server.at:1248' \
  "referential integrity -- mutual references" "     " 87
at_xfail=no
(
  $as_echo "1862. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1248"
   constraint_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=\$PKIDIR/testpki-privkey2.pem --certificate=\$PKIDIR/testpki-cert2.pem --ca-cert=\$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db"
at_fn_check_prepare_dynamic "ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db" "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting until SSL_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$SSL_PORT\"..." >&5
ovs_wait_cond () {
    SSL_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$SSL_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 0,
               \"a2b\": [\"set\", [[\"named-uuid\", \"row2\"]]],
               \"a2a\": [\"set\", [[\"named-uuid\", \"row1\"]]]},
       \"uuid-name\": \"row1\"},
      {\"op\": \"insert\",
       \"table\": \"b\",
       \"row\": {\"b\": 1,
               \"b2b\": [\"set\", [[\"named-uuid\", \"row2\"]]],
               \"b2a\": [\"set\", [[\"named-uuid\", \"row1\"]]]},
       \"uuid-name\": \"row2\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["constraints",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0,
               "a2b": ["set", [["named-uuid", "row2"]]],
               "a2a": ["set", [["named-uuid", "row1"]]]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "b",
       "row": {"b": 1,
               "b2b": ["set", [["named-uuid", "row2"]]],
               "b2a": ["set", [["named-uuid", "row1"]]]},
       "uuid-name": "row2"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a2b\": [\"set\", [[\"uuid\", \"b516b960-5b19-4fc2-bb82-fe1cbd6d0241\"]]]}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["constraints",
      {"op": "insert",
       "table": "a",
       "row": {"a2b": ["set", [["uuid", "b516b960-5b19-4fc2-bb82-fe1cbd6d0241"]]]}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 0]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": [[\"b\", \"==\", 1]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["constraints",
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '   [\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 0]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '   ["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": [[\"b\", \"==\", 1]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["constraints",
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 0]]},
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": [[\"b\", \"==\", 1]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]},
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"uuid\":[\"uuid\",\"<2>\"]},{\"details\":\"Table a column a2b row <2> references nonexistent row <3> in table b.\",\"error\":\"referential integrity violation\"}]
[{\"count\":1},{\"details\":\"cannot delete a row <0> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"count\":1},{\"details\":\"cannot delete b row <1> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"count\":1},{\"details\":\"cannot delete a row <0> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"count\":1},{\"details\":\"cannot delete b row <1> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"count\":1},{\"count\":1}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1862
#AT_START_1863
at_fn_group_banner 1863 'ovsdb-server.at:1248' \
  "weak references" "                                " 87
at_xfail=no
(
  $as_echo "1863. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1248"
   weak_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=\$PKIDIR/testpki-privkey2.pem --certificate=\$PKIDIR/testpki-cert2.pem --ca-cert=\$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db"
at_fn_check_prepare_dynamic "ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db" "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting until SSL_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$SSL_PORT\"..." >&5
ovs_wait_cond () {
    SSL_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$SSL_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"weak\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 0,
               \"a2a\": [\"set\", [[\"named-uuid\", \"row1\"],
                               [\"named-uuid\", \"row2\"],
                               [\"uuid\", \"0e767b36-6822-4044-8307-d58467e04669\"]]],
               \"a2a1\": [\"named-uuid\", \"row1\"],
               \"a2b\": [\"named-uuid\", \"row3\"]},
       \"uuid-name\": \"row1\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 1,
               \"a2a\": [\"set\", [[\"named-uuid\", \"row1\"],
                               [\"named-uuid\", \"row2\"]]],
               \"a2a1\": [\"named-uuid\", \"row2\"],
               \"a2b\": [\"named-uuid\", \"row3\"]},
       \"uuid-name\": \"row2\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 2,
               \"a2a\": [\"set\", [[\"named-uuid\", \"row1\"],
                               [\"named-uuid\", \"row2\"]]],
               \"a2a1\": [\"named-uuid\", \"row2\"],
               \"a2b\": [\"named-uuid\", \"row4\"]}},
      {\"op\": \"insert\",
       \"table\": \"b\",
       \"row\": {\"b\": 2,
               \"b2a\": [\"named-uuid\", \"row1\"]},
       \"uuid-name\": \"row3\"},
      {\"op\": \"insert\",
       \"table\": \"b\",
       \"row\": {\"b\": 3,
               \"b2a\": [\"named-uuid\", \"row2\"]},
       \"uuid-name\": \"row4\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["weak",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0,
               "a2a": ["set", [["named-uuid", "row1"],
                               ["named-uuid", "row2"],
                               ["uuid", "0e767b36-6822-4044-8307-d58467e04669"]]],
               "a2a1": ["named-uuid", "row1"],
               "a2b": ["named-uuid", "row3"]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 1,
               "a2a": ["set", [["named-uuid", "row1"],
                               ["named-uuid", "row2"]]],
               "a2a1": ["named-uuid", "row2"],
               "a2b": ["named-uuid", "row3"]},
       "uuid-name": "row2"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 2,
               "a2a": ["set", [["named-uuid", "row1"],
                               ["named-uuid", "row2"]]],
               "a2a1": ["named-uuid", "row2"],
               "a2b": ["named-uuid", "row4"]}},
      {"op": "insert",
       "table": "b",
       "row": {"b": 2,
               "b2a": ["named-uuid", "row1"]},
       "uuid-name": "row3"},
      {"op": "insert",
       "table": "b",
       "row": {"b": 3,
               "b2a": ["named-uuid", "row2"]},
       "uuid-name": "row4"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '      [\"weak\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"a2a\", \"a2a1\", \"a2b\"],
       \"sort\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '      ["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"b\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"b\", \"b2a\"],
       \"sort\": [\"b\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '      [\"weak\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a2a1\": [\"named-uuid\", \"me\"]},
       \"uuid-name\": \"me\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '      ["weak",
      {"op": "insert",
       "table": "a",
       "row": {"a2a1": ["named-uuid", "me"]},
       "uuid-name": "me"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '      [\"weak\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": [[\"b\", \"==\", 3]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '      ["weak",
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 3]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '      [\"weak\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 1]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '      ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '      [\"weak\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 2]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '      ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 2]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"a2a\", \"a2a1\", \"a2b\"],
       \"sort\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"b\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"b\", \"b2a\"],
       \"sort\": [\"b\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '   [\"weak\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 0]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '   ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"a2a\", \"a2a1\", \"a2b\"],
       \"sort\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"b\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"b\", \"b2a\"],
       \"sort\": [\"b\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '   [\"weak\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 1]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '   ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"a2a\", \"a2a1\", \"a2b\"],
       \"sort\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"b\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"b\", \"b2a\"],
       \"sort\": [\"b\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]},{\"uuid\":[\"uuid\",\"<3>\"]},{\"uuid\":[\"uuid\",\"<4>\"]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"a2a\":[\"set\",[[\"uuid\",\"<0>\"],[\"uuid\",\"<1>\"]]],\"a2a1\":[\"uuid\",\"<0>\"],\"a2b\":[\"uuid\",\"<3>\"]},{\"_uuid\":[\"uuid\",\"<1>\"],\"a2a\":[\"set\",[[\"uuid\",\"<0>\"],[\"uuid\",\"<1>\"]]],\"a2a1\":[\"uuid\",\"<1>\"],\"a2b\":[\"uuid\",\"<3>\"]},{\"_uuid\":[\"uuid\",\"<2>\"],\"a2a\":[\"set\",[[\"uuid\",\"<0>\"],[\"uuid\",\"<1>\"]]],\"a2a1\":[\"uuid\",\"<1>\"],\"a2b\":[\"uuid\",\"<4>\"]}]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<3>\"],\"b\":2,\"b2a\":[\"uuid\",\"<0>\"]},{\"_uuid\":[\"uuid\",\"<4>\"],\"b\":3,\"b2a\":[\"uuid\",\"<1>\"]}]}]
[{\"uuid\":[\"uuid\",\"<5>\"]},{\"details\":\"Weak reference column \\\"a2b\\\" in \\\"a\\\" row <5> (inserted within this transaction) contained all-zeros UUID (probably as the default value for this column) but deleting this value caused a constraint volation because this column is not allowed to be empty.\",\"error\":\"constraint violation\"}]
[{\"count\":1},{\"details\":\"Deletion of 1 weak reference(s) to deleted (or never-existing) rows from column \\\"a2b\\\" in \\\"a\\\" row <2> caused this column to become empty, but constraints on this column disallow an empty column.\",\"error\":\"constraint violation\"}]
[{\"count\":1},{\"details\":\"Deletion of 1 weak reference(s) to deleted (or never-existing) rows from column \\\"a2a1\\\" in \\\"a\\\" row <2> caused this column to become empty, but constraints on this column disallow an empty column.\",\"error\":\"constraint violation\"}]
[{\"count\":1}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"a2a\":[\"set\",[[\"uuid\",\"<0>\"],[\"uuid\",\"<1>\"]]],\"a2a1\":[\"uuid\",\"<0>\"],\"a2b\":[\"uuid\",\"<3>\"]},{\"_uuid\":[\"uuid\",\"<1>\"],\"a2a\":[\"set\",[[\"uuid\",\"<0>\"],[\"uuid\",\"<1>\"]]],\"a2a1\":[\"uuid\",\"<1>\"],\"a2b\":[\"uuid\",\"<3>\"]}]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<3>\"],\"b\":2,\"b2a\":[\"uuid\",\"<0>\"]},{\"_uuid\":[\"uuid\",\"<4>\"],\"b\":3,\"b2a\":[\"uuid\",\"<1>\"]}]}]
[{\"count\":1}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<1>\"],\"a2a\":[\"uuid\",\"<1>\"],\"a2a1\":[\"uuid\",\"<1>\"],\"a2b\":[\"uuid\",\"<3>\"]}]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<3>\"],\"b\":2,\"b2a\":[\"set\",[]]},{\"_uuid\":[\"uuid\",\"<4>\"],\"b\":3,\"b2a\":[\"uuid\",\"<1>\"]}]}]
[{\"count\":1}]
[{\"rows\":[]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<3>\"],\"b\":2,\"b2a\":[\"set\",[]]},{\"_uuid\":[\"uuid\",\"<4>\"],\"b\":3,\"b2a\":[\"set\",[]]}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1863
#AT_START_1864
at_fn_group_banner 1864 'ovsdb-server.at:1248' \
  "immutable columns" "                              " 87
at_xfail=no
(
  $as_echo "1864. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1248"
   immutable_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=\$PKIDIR/testpki-privkey2.pem --certificate=\$PKIDIR/testpki-cert2.pem --ca-cert=\$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db"
at_fn_check_prepare_dynamic "ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db" "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting until SSL_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$SSL_PORT\"..." >&5
ovs_wait_cond () {
    SSL_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$SSL_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"immutable\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"i\": 5},
       \"uuid-name\": \"row1\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["immutable",
      {"op": "insert",
       "table": "a",
       "row": {"i": 5},
       "uuid-name": "row1"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"immutable\",
      {\"op\": \"update\",
       \"table\": \"a\",
       \"row\": {\"i\": 10},
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["immutable",
      {"op": "update",
       "table": "a",
       "row": {"i": 10},
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"immutable\",
      {\"op\": \"update\",
       \"table\": \"a\",
       \"row\": {\"i\": 5},
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["immutable",
      {"op": "update",
       "table": "a",
       "row": {"i": 5},
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"immutable\",
      {\"op\": \"mutate\",
       \"table\": \"a\",
       \"where\": [],
       \"mutations\": [[\"i\", \"-=\", 5]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["immutable",
      {"op": "mutate",
       "table": "a",
       "where": [],
       "mutations": [["i", "-=", 5]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"immutable\",
      {\"op\": \"mutate\",
       \"table\": \"a\",
       \"where\": [],
       \"mutations\": [[\"i\", \"*=\", 1]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["immutable",
      {"op": "mutate",
       "table": "a",
       "where": [],
       "mutations": [["i", "*=", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"details\":\"Cannot update immutable column i in table a.\",\"error\":\"constraint violation\",\"syntax\":\"{\\\"op\\\":\\\"update\\\",\\\"row\\\":{\\\"i\\\":10},\\\"table\\\":\\\"a\\\",\\\"where\\\":[]}\"}]
[{\"details\":\"Cannot update immutable column i in table a.\",\"error\":\"constraint violation\",\"syntax\":\"{\\\"op\\\":\\\"update\\\",\\\"row\\\":{\\\"i\\\":5},\\\"table\\\":\\\"a\\\",\\\"where\\\":[]}\"}]
[{\"details\":\"Cannot mutate immutable column i in table a.\",\"error\":\"constraint violation\",\"syntax\":\"[\\\"i\\\",\\\"-=\\\",5]\"}]
[{\"details\":\"Cannot mutate immutable column i in table a.\",\"error\":\"constraint violation\",\"syntax\":\"[\\\"i\\\",\\\"*=\\\",1]\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1864
#AT_START_1865
at_fn_group_banner 1865 'ovsdb-server.at:1248' \
  "garbage collection" "                             " 87
at_xfail=no
(
  $as_echo "1865. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1248"
   gc_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=\$PKIDIR/testpki-privkey2.pem --certificate=\$PKIDIR/testpki-cert2.pem --ca-cert=\$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db"
at_fn_check_prepare_dynamic "ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db" "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting until SSL_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$SSL_PORT\"..." >&5
ovs_wait_cond () {
    SSL_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$SSL_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '   [\"gc\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 0}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '   ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '      [\"gc\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 0, \"a2a\": [\"named-uuid\", \"row1\"]},
       \"uuid-name\": \"row0\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 1, \"a2a\": [\"named-uuid\", \"row2\"]},
       \"uuid-name\": \"row1\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 2, \"a2a\": [\"named-uuid\", \"row3\"]},
       \"uuid-name\": \"row2\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 3},
       \"uuid-name\": \"row3\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '      ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0, "a2a": ["named-uuid", "row1"]},
       "uuid-name": "row0"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 1, "a2a": ["named-uuid", "row2"]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 2, "a2a": ["named-uuid", "row3"]},
       "uuid-name": "row2"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 3},
       "uuid-name": "row3"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '      [\"gc\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 4, \"a2a\": [\"named-uuid\", \"row5\"]},
       \"uuid-name\": \"row4\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 5, \"a2a\": [\"named-uuid\", \"row4\"]},
       \"uuid-name\": \"row5\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '      ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 4, "a2a": ["named-uuid", "row5"]},
       "uuid-name": "row4"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 5, "a2a": ["named-uuid", "row4"]},
       "uuid-name": "row5"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"],
       \"sort\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"],
       "sort": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '   [\"gc\",
      {\"op\": \"update\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 4]],
       \"row\": {\"a2a\": [\"set\", []]}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '   ["gc",
      {"op": "update",
       "table": "a",
       "where": [["a", "==", 4]],
       "row": {"a2a": ["set", []]}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '      [\"gc\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 6, \"wa2a\": [\"named-uuid\", \"row7\"]},
       \"uuid-name\": \"row6\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 7, \"wa2a\": [\"named-uuid\", \"row6\"]},
       \"uuid-name\": \"row7\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '      ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 6, "wa2a": ["named-uuid", "row7"]},
       "uuid-name": "row6"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 7, "wa2a": ["named-uuid", "row6"]},
       "uuid-name": "row7"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '   [\"gc\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 8, \"a2a\": [\"named-uuid\", \"row9\"]},
       \"uuid-name\": \"row8\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 9, \"a2a\": [\"named-uuid\", \"row10\"]},
       \"uuid-name\": \"row9\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 10, \"a2a\": [\"named-uuid\", \"row11\"]},
       \"uuid-name\": \"row10\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 11, \"a2a\": [\"named-uuid\", \"row8\"]},
       \"uuid-name\": \"row11\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '   ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 8, "a2a": ["named-uuid", "row9"]},
       "uuid-name": "row8"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 9, "a2a": ["named-uuid", "row10"]},
       "uuid-name": "row9"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 10, "a2a": ["named-uuid", "row11"]},
       "uuid-name": "row10"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 11, "a2a": ["named-uuid", "row8"]},
       "uuid-name": "row11"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"],
       \"sort\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"],
       "sort": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '   [\"gc\",
      {\"op\": \"update\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 9]],
       \"row\": {\"a2a\": [\"set\", []]}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '   ["gc",
      {"op": "update",
       "table": "a",
       "where": [["a", "==", 9]],
       "row": {"a2a": ["set", []]}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '   [\"gc\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 12, \"a2a\": [\"named-uuid\", \"self\"]},
       \"uuid-name\": \"self\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '   ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 12, "a2a": ["named-uuid", "self"]},
       "uuid-name": "self"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:\$SSL_PORT '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1248"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:127.0.0.1:$SSL_PORT '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"rows\":[]}]
[{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]},{\"uuid\":[\"uuid\",\"<3>\"]},{\"uuid\":[\"uuid\",\"<4>\"]}]
[{\"rows\":[]}]
[{\"uuid\":[\"uuid\",\"<5>\"]},{\"uuid\":[\"uuid\",\"<6>\"]}]
[{\"rows\":[{\"a\":4},{\"a\":5}]}]
[{\"count\":1}]
[{\"rows\":[]}]
[{\"uuid\":[\"uuid\",\"<7>\"]},{\"uuid\":[\"uuid\",\"<8>\"]}]
[{\"rows\":[]}]
[{\"uuid\":[\"uuid\",\"<9>\"]},{\"uuid\":[\"uuid\",\"<10>\"]},{\"uuid\":[\"uuid\",\"<11>\"]},{\"uuid\":[\"uuid\",\"<12>\"]}]
[{\"rows\":[{\"a\":8},{\"a\":9},{\"a\":10},{\"a\":11}]}]
[{\"count\":1}]
[{\"rows\":[]}]
[{\"uuid\":[\"uuid\",\"<13>\"]}]
[{\"rows\":[]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1248: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1248"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1248"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1248: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1248: wait failed" >&5

    $as_echo "ovsdb-server.at:1248" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1248"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1865
#AT_START_1866
at_fn_group_banner 1866 'ovsdb-server.at:1286' \
  "insert default row, query table" "                " 88
at_xfail=no
(
  $as_echo "1866. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "ovsdb-server.at:1286" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1286"
   $as_echo "ovsdb-server.at:1286" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1286"
   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1286: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1286"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1286"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1286: ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=\$PKIDIR/testpki-privkey2.pem --certificate=\$PKIDIR/testpki-cert2.pem --ca-cert=\$PKIDIR/testpki-cacert.pem --remote=pssl:0:[::1] db"
at_fn_check_prepare_dynamic "ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:[::1] db" "ovsdb-server.at:1286"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --private-key=$PKIDIR/testpki-privkey2.pem --certificate=$PKIDIR/testpki-cert2.pem --ca-cert=$PKIDIR/testpki-cacert.pem --remote=pssl:0:[::1] db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1286"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1286: waiting until SSL_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$SSL_PORT\"..." >&5
ovs_wait_cond () {
    SSL_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$SSL_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1286: wait failed" >&5

    $as_echo "ovsdb-server.at:1286" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1286"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1286: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:[::1]:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1286"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:[::1]:$SSL_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1286"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1286: ovsdb-client --private-key=\$PKIDIR/testpki-privkey.pem --certificate=\$PKIDIR/testpki-cert.pem --ca-cert=\$PKIDIR/testpki-cacert.pem transact ssl:[::1]:\$SSL_PORT '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1286"
( $at_check_trace; ovsdb-client --private-key=$PKIDIR/testpki-privkey.pem --certificate=$PKIDIR/testpki-cert.pem --ca-cert=$PKIDIR/testpki-cacert.pem transact ssl:[::1]:$SSL_PORT '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1286"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1286: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1286"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<1>\"],\"name\":\"\",\"number\":0}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1286"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1286: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1286"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1286"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1286: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1286"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1286"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1286: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1286: wait failed" >&5

    $as_echo "ovsdb-server.at:1286" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1286"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1866
#AT_START_1867
at_fn_group_banner 1867 'ovsdb-server.at:1322' \
  "insert default row, query table" "                " 89
at_xfail=no
(
  $as_echo "1867. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<1>\"],\"name\":\"\",\"number\":0}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1867
#AT_START_1868
at_fn_group_banner 1868 'ovsdb-server.at:1322' \
  "insert row, query table" "                        " 89
at_xfail=no
(
  $as_echo "1868. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<1>\"],\"name\":\"zero\",\"number\":0}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1868
#AT_START_1869
at_fn_group_banner 1869 'ovsdb-server.at:1322' \
  "insert rows, query by value" "                    " 89
at_xfail=no
(
  $as_echo "1869. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"zero\"]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [["name", "==", "zero"]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"one\"]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [["name", "==", "one"]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"zero\",\"number\":0}]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<3>\"],\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1869
#AT_START_1870
at_fn_group_banner 1870 'ovsdb-server.at:1322' \
  "insert rows, query by named-uuid" "               " 89
at_xfail=no
(
  $as_echo "1870. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"second\"},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [[\"_uuid\", \"==\", [\"named-uuid\", \"first\"]]]},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [[\"_uuid\", \"==\", [\"named-uuid\", \"second\"]]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "second"},
      {"op": "select",
       "table": "ordinals",
       "where": [["_uuid", "==", ["named-uuid", "first"]]]},
      {"op": "select",
       "table": "ordinals",
       "where": [["_uuid", "==", ["named-uuid", "second"]]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"zero\",\"number\":0}]},{\"rows\":[{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<3>\"],\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1870
#AT_START_1871
at_fn_group_banner 1871 'ovsdb-server.at:1322' \
  "insert rows, update rows by value" "              " 89
at_xfail=no
(
  $as_echo "1871. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"update\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"zero\"]],
       \"row\": {\"name\": \"nought\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [["name", "==", "zero"]],
       "row": {"name": "nought"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"sort\": [\"number\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "sort": ["number"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"count\":1}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"nought\",\"number\":0},{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<3>\"],\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1871
#AT_START_1872
at_fn_group_banner 1872 'ovsdb-server.at:1322' \
  "insert rows, mutate rows" "                       " 89
at_xfail=no
(
  $as_echo "1872. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"mutate\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"zero\"]],
       \"mutations\": [[\"number\", \"+=\", 2]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["ordinals",
      {"op": "mutate",
       "table": "ordinals",
       "where": [["name", "==", "zero"]],
       "mutations": [["number", "+=", 2]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"sort\": [\"number\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "sort": ["number"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"count\":1}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"one\",\"number\":1},{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<3>\"],\"name\":\"zero\",\"number\":2}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1872
#AT_START_1873
at_fn_group_banner 1873 'ovsdb-server.at:1322' \
  "insert rows, delete by named-uuid" "              " 89
at_xfail=no
(
  $as_echo "1873. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"second\"},
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": [[\"_uuid\", \"==\", [\"named-uuid\", \"first\"]]]},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\",\"number\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "second"},
      {"op": "delete",
       "table": "ordinals",
       "where": [["_uuid", "==", ["named-uuid", "first"]]]},
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "columns": ["name","number"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"count\":1},{\"rows\":[{\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1873
#AT_START_1874
at_fn_group_banner 1874 'ovsdb-server.at:1322' \
  "insert rows, delete rows by value" "              " 89
at_xfail=no
(
  $as_echo "1874. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"zero\"]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": [["name", "==", "zero"]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"count\":1}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1874
#AT_START_1875
at_fn_group_banner 1875 'ovsdb-server.at:1322' \
  "insert rows, delete by (non-matching) value" "    " 89
at_xfail=no
(
  $as_echo "1875. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"nought\"]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": [["name", "==", "nought"]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"sort\": [\"number\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "sort": ["number"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"count\":0}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"zero\",\"number\":0},{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<3>\"],\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1875
#AT_START_1876
at_fn_group_banner 1876 'ovsdb-server.at:1322' \
  "insert rows, delete all" "                        " 89
at_xfail=no
(
  $as_echo "1876. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"second\"},
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": []},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\",\"number\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "second"},
      {"op": "delete",
       "table": "ordinals",
       "where": []},
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "columns": ["name","number"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"count\":2},{\"rows\":[]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1876
#AT_START_1877
at_fn_group_banner 1877 'ovsdb-server.at:1322' \
  "insert row, query table, commit" "                " 89
at_xfail=no
(
  $as_echo "1877. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": []},
      {\"op\": \"commit\",
       \"durable\": false}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "select",
       "table": "ordinals",
       "where": []},
      {"op": "commit",
       "durable": false}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<1>\"],\"name\":\"zero\",\"number\":0}]},{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1877
#AT_START_1878
at_fn_group_banner 1878 'ovsdb-server.at:1322' \
  "insert row, query table, commit durably" "        " 89
at_xfail=no
(
  $as_echo "1878. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": []},
      {\"op\": \"commit\",
       \"durable\": true}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "select",
       "table": "ordinals",
       "where": []},
      {"op": "commit",
       "durable": true}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<1>\"],\"name\":\"zero\",\"number\":0}]},{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1878
#AT_START_1879
at_fn_group_banner 1879 'ovsdb-server.at:1322' \
  "equality wait with correct rows" "                " 89
at_xfail=no
(
  $as_echo "1879. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 0,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"==\",
       \"rows\": [{\"name\": \"zero\", \"number\": 0},
                {\"name\": \"one\", \"number\": 1}]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "==",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1}]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1879
#AT_START_1880
at_fn_group_banner 1880 'ovsdb-server.at:1322' \
  "equality wait with extra row" "                   " 89
at_xfail=no
(
  $as_echo "1880. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 0,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"==\",
       \"rows\": [{\"name\": \"zero\", \"number\": 0},
                {\"name\": \"one\", \"number\": 1},
                {\"name\": \"two\", \"number\": 2}]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "==",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1},
                {"name": "two", "number": 2}]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"details\":\"\\\"where\\\" clause test failed\",\"error\":\"timed out\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1880
#AT_START_1881
at_fn_group_banner 1881 'ovsdb-server.at:1322' \
  "equality wait with missing row" "                 " 89
at_xfail=no
(
  $as_echo "1881. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 0,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"==\",
       \"rows\": [{\"name\": \"one\", \"number\": 1}]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "==",
       "rows": [{"name": "one", "number": 1}]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"details\":\"\\\"where\\\" clause test failed\",\"error\":\"timed out\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1881
#AT_START_1882
at_fn_group_banner 1882 'ovsdb-server.at:1322' \
  "inequality wait with correct rows" "              " 89
at_xfail=no
(
  $as_echo "1882. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 0,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"!=\",
       \"rows\": [{\"name\": \"zero\", \"number\": 0},
                {\"name\": \"one\", \"number\": 1}]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "!=",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1}]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"details\":\"\\\"where\\\" clause test failed\",\"error\":\"timed out\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1882
#AT_START_1883
at_fn_group_banner 1883 'ovsdb-server.at:1322' \
  "inequality wait with extra row" "                 " 89
at_xfail=no
(
  $as_echo "1883. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 0,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"!=\",
       \"rows\": [{\"name\": \"zero\", \"number\": 0},
                {\"name\": \"one\", \"number\": 1},
                {\"name\": \"two\", \"number\": 2}]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "!=",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1},
                {"name": "two", "number": 2}]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1883
#AT_START_1884
at_fn_group_banner 1884 'ovsdb-server.at:1322' \
  "inequality wait with missing row" "               " 89
at_xfail=no
(
  $as_echo "1884. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 0,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"!=\",
       \"rows\": [{\"name\": \"one\", \"number\": 1}]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "!=",
       "rows": [{"name": "one", "number": 1}]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1884
#AT_START_1885
at_fn_group_banner 1885 'ovsdb-server.at:1322' \
  "insert and update constraints" "                  " 89
at_xfail=no
(
  $as_echo "1885. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   constraint_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"constrained\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"constrained\",
       \"row\": {\"positive\": -1}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {"positive": -1}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"constraints\",
      {\"op\": \"update\",
       \"table\": \"constrained\",
       \"where\": [],
       \"row\": {\"positive\": -2}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["constraints",
      {"op": "update",
       "table": "constrained",
       "where": [],
       "row": {"positive": -2}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"constrained\",
       \"row\": {\"positive\": 1}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {"positive": 1}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"constrained\",
       \"row\": {\"positive\": 2}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {"positive": 2}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"details\":\"0 is less than minimum allowed value 1\",\"error\":\"constraint violation\"}]
[{\"details\":\"-1 is less than minimum allowed value 1\",\"error\":\"constraint violation\"}]
[{\"details\":\"-2 is less than minimum allowed value 1\",\"error\":\"constraint violation\"}]
[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]},{\"details\":\"transaction causes \\\"constrained\\\" table to contain 2 rows, greater than the schema-defined limit of 1 row(s)\",\"error\":\"constraint violation\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1885
#AT_START_1886
at_fn_group_banner 1886 'ovsdb-server.at:1322' \
  "index uniqueness checking" "                      " 89
at_xfail=no
(
  $as_echo "1886. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '   [\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"another one\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '   ["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "another one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '   [\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"another one\"}},
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"one\"]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '   ["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "another one"}},
      {"op": "delete",
       "table": "ordinals",
       "where": [["name", "==", "one"]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '   [\"ordinals\",
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": []},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"still another one\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '   ["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": []},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "still another one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '   [\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 2, \"name\": \"two\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '   ["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 2, "name": "two"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '   [\"ordinals\",
      {\"op\": \"update\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"row\": {\"number\": 3}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '   ["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [],
       "row": {"number": 3}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '   [\"ordinals\",
      {\"op\": \"update\",
       \"table\": \"ordinals\",
       \"where\": [[\"number\", \"==\", 1]],
       \"row\": {\"number\": 2, \"name\": \"old two\"}},
      {\"op\": \"update\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"two\"]],
       \"row\": {\"number\": 1, \"name\": \"old one\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '   ["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [["number", "==", 1]],
       "row": {"number": 2, "name": "old two"}},
      {"op": "update",
       "table": "ordinals",
       "where": [["name", "==", "two"]],
       "row": {"number": 1, "name": "old one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '   [\"ordinals\",
      {\"op\": \"mutate\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"mutations\": [[\"number\", \"*=\", 10]]},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"new one\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 2, \"name\": \"new two\"}},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"number\", \"name\"],
       \"sort\": [\"number\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '   ["ordinals",
      {"op": "mutate",
       "table": "ordinals",
       "where": [],
       "mutations": [["number", "*=", 10]]},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "new one"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 2, "name": "new two"}},
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "columns": ["number", "name"],
       "sort": ["number"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]},{\"details\":\"Transaction causes multiple rows in \\\"ordinals\\\" table to have identical values (1) for index on column \\\"number\\\".  First row, with UUID <0>, existed in the database before this transaction and was not modified by the transaction.  Second row, with UUID <1>, was inserted by this transaction.\",\"error\":\"constraint violation\"}]
[{\"uuid\":[\"uuid\",\"<2>\"]},{\"count\":1}]
[{\"count\":1},{\"uuid\":[\"uuid\",\"<3>\"]},{\"uuid\":[\"uuid\",\"<4>\"]},{\"details\":\"Transaction causes multiple rows in \\\"ordinals\\\" table to have identical values (1) for index on column \\\"number\\\".  First row, with UUID <4>, was inserted by this transaction.  Second row, with UUID <3>, was inserted by this transaction.\",\"error\":\"constraint violation\"}]
[{\"uuid\":[\"uuid\",\"<5>\"]}]
[{\"count\":2},{\"details\":\"Transaction causes multiple rows in \\\"ordinals\\\" table to have identical values (3) for index on column \\\"number\\\".  First row, with UUID <5>, had the following index values before the transaction: 2.  Second row, with UUID <2>, had the following index values before the transaction: 1.\",\"error\":\"constraint violation\"}]
[{\"count\":1},{\"count\":1}]
[{\"count\":2},{\"uuid\":[\"uuid\",\"<6>\"]},{\"uuid\":[\"uuid\",\"<7>\"]},{\"rows\":[{\"name\":\"new one\",\"number\":1},{\"name\":\"new two\",\"number\":2},{\"name\":\"old one\",\"number\":10},{\"name\":\"old two\",\"number\":20}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1886
#AT_START_1887
at_fn_group_banner 1887 'ovsdb-server.at:1322' \
  "referential integrity -- simple" "                " 89
at_xfail=no
(
  $as_echo "1887. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   constraint_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"b\",
       \"row\": {\"b\": 1},
       \"uuid-name\": \"brow\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 0,
               \"a2b\": [\"set\", [[\"named-uuid\", \"brow\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 1,
               \"a2b\": [\"set\", [[\"named-uuid\", \"brow\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 2,
               \"a2b\": [\"set\", [[\"named-uuid\", \"brow\"]]]}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["constraints",
      {"op": "insert",
       "table": "b",
       "row": {"b": 1},
       "uuid-name": "brow"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 0,
               "a2b": ["set", [["named-uuid", "brow"]]]}},
      {"op": "insert",
       "table": "a",
       "row": {"a": 1,
               "a2b": ["set", [["named-uuid", "brow"]]]}},
      {"op": "insert",
       "table": "a",
       "row": {"a": 2,
               "a2b": ["set", [["named-uuid", "brow"]]]}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '   [\"constraints\",
      {\"op\": \"mutate\",
       \"table\": \"b\",
       \"where\": [],
       \"mutations\": [[\"x\", \"delete\", 0]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '   ["constraints",
      {"op": "mutate",
       "table": "b",
       "where": [],
       "mutations": [["x", "delete", 0]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 0]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 1]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 2]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 2]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]},{\"uuid\":[\"uuid\",\"<3>\"]}]
[{\"count\":1},{\"details\":\"cannot delete b row <0> because of 3 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"details\":\"Attempted to store 0 elements in set of 1 to 2 integers.\",\"error\":\"constraint violation\"}]
[{\"count\":1}]
[{\"count\":1},{\"details\":\"cannot delete b row <0> because of 2 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"count\":1}]
[{\"count\":1},{\"details\":\"cannot delete b row <0> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"count\":1}]
[{\"count\":1}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1887
#AT_START_1888
at_fn_group_banner 1888 'ovsdb-server.at:1322' \
  "referential integrity -- mutual references" "     " 89
at_xfail=no
(
  $as_echo "1888. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   constraint_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 0,
               \"a2b\": [\"set\", [[\"named-uuid\", \"row2\"]]],
               \"a2a\": [\"set\", [[\"named-uuid\", \"row1\"]]]},
       \"uuid-name\": \"row1\"},
      {\"op\": \"insert\",
       \"table\": \"b\",
       \"row\": {\"b\": 1,
               \"b2b\": [\"set\", [[\"named-uuid\", \"row2\"]]],
               \"b2a\": [\"set\", [[\"named-uuid\", \"row1\"]]]},
       \"uuid-name\": \"row2\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["constraints",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0,
               "a2b": ["set", [["named-uuid", "row2"]]],
               "a2a": ["set", [["named-uuid", "row1"]]]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "b",
       "row": {"b": 1,
               "b2b": ["set", [["named-uuid", "row2"]]],
               "b2a": ["set", [["named-uuid", "row1"]]]},
       "uuid-name": "row2"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a2b\": [\"set\", [[\"uuid\", \"b516b960-5b19-4fc2-bb82-fe1cbd6d0241\"]]]}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["constraints",
      {"op": "insert",
       "table": "a",
       "row": {"a2b": ["set", [["uuid", "b516b960-5b19-4fc2-bb82-fe1cbd6d0241"]]]}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 0]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": [[\"b\", \"==\", 1]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["constraints",
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '   [\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 0]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '   ["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": [[\"b\", \"==\", 1]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["constraints",
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 0]]},
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": [[\"b\", \"==\", 1]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]},
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"uuid\":[\"uuid\",\"<2>\"]},{\"details\":\"Table a column a2b row <2> references nonexistent row <3> in table b.\",\"error\":\"referential integrity violation\"}]
[{\"count\":1},{\"details\":\"cannot delete a row <0> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"count\":1},{\"details\":\"cannot delete b row <1> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"count\":1},{\"details\":\"cannot delete a row <0> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"count\":1},{\"details\":\"cannot delete b row <1> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"count\":1},{\"count\":1}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1888
#AT_START_1889
at_fn_group_banner 1889 'ovsdb-server.at:1322' \
  "weak references" "                                " 89
at_xfail=no
(
  $as_echo "1889. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   weak_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"weak\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 0,
               \"a2a\": [\"set\", [[\"named-uuid\", \"row1\"],
                               [\"named-uuid\", \"row2\"],
                               [\"uuid\", \"0e767b36-6822-4044-8307-d58467e04669\"]]],
               \"a2a1\": [\"named-uuid\", \"row1\"],
               \"a2b\": [\"named-uuid\", \"row3\"]},
       \"uuid-name\": \"row1\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 1,
               \"a2a\": [\"set\", [[\"named-uuid\", \"row1\"],
                               [\"named-uuid\", \"row2\"]]],
               \"a2a1\": [\"named-uuid\", \"row2\"],
               \"a2b\": [\"named-uuid\", \"row3\"]},
       \"uuid-name\": \"row2\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 2,
               \"a2a\": [\"set\", [[\"named-uuid\", \"row1\"],
                               [\"named-uuid\", \"row2\"]]],
               \"a2a1\": [\"named-uuid\", \"row2\"],
               \"a2b\": [\"named-uuid\", \"row4\"]}},
      {\"op\": \"insert\",
       \"table\": \"b\",
       \"row\": {\"b\": 2,
               \"b2a\": [\"named-uuid\", \"row1\"]},
       \"uuid-name\": \"row3\"},
      {\"op\": \"insert\",
       \"table\": \"b\",
       \"row\": {\"b\": 3,
               \"b2a\": [\"named-uuid\", \"row2\"]},
       \"uuid-name\": \"row4\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["weak",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0,
               "a2a": ["set", [["named-uuid", "row1"],
                               ["named-uuid", "row2"],
                               ["uuid", "0e767b36-6822-4044-8307-d58467e04669"]]],
               "a2a1": ["named-uuid", "row1"],
               "a2b": ["named-uuid", "row3"]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 1,
               "a2a": ["set", [["named-uuid", "row1"],
                               ["named-uuid", "row2"]]],
               "a2a1": ["named-uuid", "row2"],
               "a2b": ["named-uuid", "row3"]},
       "uuid-name": "row2"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 2,
               "a2a": ["set", [["named-uuid", "row1"],
                               ["named-uuid", "row2"]]],
               "a2a1": ["named-uuid", "row2"],
               "a2b": ["named-uuid", "row4"]}},
      {"op": "insert",
       "table": "b",
       "row": {"b": 2,
               "b2a": ["named-uuid", "row1"]},
       "uuid-name": "row3"},
      {"op": "insert",
       "table": "b",
       "row": {"b": 3,
               "b2a": ["named-uuid", "row2"]},
       "uuid-name": "row4"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '      [\"weak\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"a2a\", \"a2a1\", \"a2b\"],
       \"sort\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '      ["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"b\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"b\", \"b2a\"],
       \"sort\": [\"b\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '      [\"weak\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a2a1\": [\"named-uuid\", \"me\"]},
       \"uuid-name\": \"me\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '      ["weak",
      {"op": "insert",
       "table": "a",
       "row": {"a2a1": ["named-uuid", "me"]},
       "uuid-name": "me"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '      [\"weak\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": [[\"b\", \"==\", 3]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '      ["weak",
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 3]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '      [\"weak\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 1]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '      ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '      [\"weak\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 2]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '      ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 2]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"a2a\", \"a2a1\", \"a2b\"],
       \"sort\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"b\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"b\", \"b2a\"],
       \"sort\": [\"b\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '   [\"weak\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 0]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '   ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"a2a\", \"a2a1\", \"a2b\"],
       \"sort\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"b\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"b\", \"b2a\"],
       \"sort\": [\"b\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '   [\"weak\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 1]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '   ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"a2a\", \"a2a1\", \"a2b\"],
       \"sort\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"b\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"b\", \"b2a\"],
       \"sort\": [\"b\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]},{\"uuid\":[\"uuid\",\"<3>\"]},{\"uuid\":[\"uuid\",\"<4>\"]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"a2a\":[\"set\",[[\"uuid\",\"<0>\"],[\"uuid\",\"<1>\"]]],\"a2a1\":[\"uuid\",\"<0>\"],\"a2b\":[\"uuid\",\"<3>\"]},{\"_uuid\":[\"uuid\",\"<1>\"],\"a2a\":[\"set\",[[\"uuid\",\"<0>\"],[\"uuid\",\"<1>\"]]],\"a2a1\":[\"uuid\",\"<1>\"],\"a2b\":[\"uuid\",\"<3>\"]},{\"_uuid\":[\"uuid\",\"<2>\"],\"a2a\":[\"set\",[[\"uuid\",\"<0>\"],[\"uuid\",\"<1>\"]]],\"a2a1\":[\"uuid\",\"<1>\"],\"a2b\":[\"uuid\",\"<4>\"]}]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<3>\"],\"b\":2,\"b2a\":[\"uuid\",\"<0>\"]},{\"_uuid\":[\"uuid\",\"<4>\"],\"b\":3,\"b2a\":[\"uuid\",\"<1>\"]}]}]
[{\"uuid\":[\"uuid\",\"<5>\"]},{\"details\":\"Weak reference column \\\"a2b\\\" in \\\"a\\\" row <5> (inserted within this transaction) contained all-zeros UUID (probably as the default value for this column) but deleting this value caused a constraint volation because this column is not allowed to be empty.\",\"error\":\"constraint violation\"}]
[{\"count\":1},{\"details\":\"Deletion of 1 weak reference(s) to deleted (or never-existing) rows from column \\\"a2b\\\" in \\\"a\\\" row <2> caused this column to become empty, but constraints on this column disallow an empty column.\",\"error\":\"constraint violation\"}]
[{\"count\":1},{\"details\":\"Deletion of 1 weak reference(s) to deleted (or never-existing) rows from column \\\"a2a1\\\" in \\\"a\\\" row <2> caused this column to become empty, but constraints on this column disallow an empty column.\",\"error\":\"constraint violation\"}]
[{\"count\":1}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"a2a\":[\"set\",[[\"uuid\",\"<0>\"],[\"uuid\",\"<1>\"]]],\"a2a1\":[\"uuid\",\"<0>\"],\"a2b\":[\"uuid\",\"<3>\"]},{\"_uuid\":[\"uuid\",\"<1>\"],\"a2a\":[\"set\",[[\"uuid\",\"<0>\"],[\"uuid\",\"<1>\"]]],\"a2a1\":[\"uuid\",\"<1>\"],\"a2b\":[\"uuid\",\"<3>\"]}]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<3>\"],\"b\":2,\"b2a\":[\"uuid\",\"<0>\"]},{\"_uuid\":[\"uuid\",\"<4>\"],\"b\":3,\"b2a\":[\"uuid\",\"<1>\"]}]}]
[{\"count\":1}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<1>\"],\"a2a\":[\"uuid\",\"<1>\"],\"a2a1\":[\"uuid\",\"<1>\"],\"a2b\":[\"uuid\",\"<3>\"]}]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<3>\"],\"b\":2,\"b2a\":[\"set\",[]]},{\"_uuid\":[\"uuid\",\"<4>\"],\"b\":3,\"b2a\":[\"uuid\",\"<1>\"]}]}]
[{\"count\":1}]
[{\"rows\":[]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<3>\"],\"b\":2,\"b2a\":[\"set\",[]]},{\"_uuid\":[\"uuid\",\"<4>\"],\"b\":3,\"b2a\":[\"set\",[]]}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1889
#AT_START_1890
at_fn_group_banner 1890 'ovsdb-server.at:1322' \
  "immutable columns" "                              " 89
at_xfail=no
(
  $as_echo "1890. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   immutable_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"immutable\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"i\": 5},
       \"uuid-name\": \"row1\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["immutable",
      {"op": "insert",
       "table": "a",
       "row": {"i": 5},
       "uuid-name": "row1"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"immutable\",
      {\"op\": \"update\",
       \"table\": \"a\",
       \"row\": {\"i\": 10},
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["immutable",
      {"op": "update",
       "table": "a",
       "row": {"i": 10},
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"immutable\",
      {\"op\": \"update\",
       \"table\": \"a\",
       \"row\": {\"i\": 5},
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["immutable",
      {"op": "update",
       "table": "a",
       "row": {"i": 5},
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"immutable\",
      {\"op\": \"mutate\",
       \"table\": \"a\",
       \"where\": [],
       \"mutations\": [[\"i\", \"-=\", 5]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["immutable",
      {"op": "mutate",
       "table": "a",
       "where": [],
       "mutations": [["i", "-=", 5]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"immutable\",
      {\"op\": \"mutate\",
       \"table\": \"a\",
       \"where\": [],
       \"mutations\": [[\"i\", \"*=\", 1]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["immutable",
      {"op": "mutate",
       "table": "a",
       "where": [],
       "mutations": [["i", "*=", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"details\":\"Cannot update immutable column i in table a.\",\"error\":\"constraint violation\",\"syntax\":\"{\\\"op\\\":\\\"update\\\",\\\"row\\\":{\\\"i\\\":10},\\\"table\\\":\\\"a\\\",\\\"where\\\":[]}\"}]
[{\"details\":\"Cannot update immutable column i in table a.\",\"error\":\"constraint violation\",\"syntax\":\"{\\\"op\\\":\\\"update\\\",\\\"row\\\":{\\\"i\\\":5},\\\"table\\\":\\\"a\\\",\\\"where\\\":[]}\"}]
[{\"details\":\"Cannot mutate immutable column i in table a.\",\"error\":\"constraint violation\",\"syntax\":\"[\\\"i\\\",\\\"-=\\\",5]\"}]
[{\"details\":\"Cannot mutate immutable column i in table a.\",\"error\":\"constraint violation\",\"syntax\":\"[\\\"i\\\",\\\"*=\\\",1]\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1890
#AT_START_1891
at_fn_group_banner 1891 'ovsdb-server.at:1322' \
  "garbage collection" "                             " 89
at_xfail=no
(
  $as_echo "1891. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   gc_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '   [\"gc\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 0}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '   ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '      [\"gc\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 0, \"a2a\": [\"named-uuid\", \"row1\"]},
       \"uuid-name\": \"row0\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 1, \"a2a\": [\"named-uuid\", \"row2\"]},
       \"uuid-name\": \"row1\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 2, \"a2a\": [\"named-uuid\", \"row3\"]},
       \"uuid-name\": \"row2\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 3},
       \"uuid-name\": \"row3\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '      ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0, "a2a": ["named-uuid", "row1"]},
       "uuid-name": "row0"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 1, "a2a": ["named-uuid", "row2"]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 2, "a2a": ["named-uuid", "row3"]},
       "uuid-name": "row2"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 3},
       "uuid-name": "row3"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '      [\"gc\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 4, \"a2a\": [\"named-uuid\", \"row5\"]},
       \"uuid-name\": \"row4\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 5, \"a2a\": [\"named-uuid\", \"row4\"]},
       \"uuid-name\": \"row5\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '      ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 4, "a2a": ["named-uuid", "row5"]},
       "uuid-name": "row4"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 5, "a2a": ["named-uuid", "row4"]},
       "uuid-name": "row5"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"],
       \"sort\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"],
       "sort": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '   [\"gc\",
      {\"op\": \"update\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 4]],
       \"row\": {\"a2a\": [\"set\", []]}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '   ["gc",
      {"op": "update",
       "table": "a",
       "where": [["a", "==", 4]],
       "row": {"a2a": ["set", []]}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '      [\"gc\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 6, \"wa2a\": [\"named-uuid\", \"row7\"]},
       \"uuid-name\": \"row6\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 7, \"wa2a\": [\"named-uuid\", \"row6\"]},
       \"uuid-name\": \"row7\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '      ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 6, "wa2a": ["named-uuid", "row7"]},
       "uuid-name": "row6"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 7, "wa2a": ["named-uuid", "row6"]},
       "uuid-name": "row7"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '   [\"gc\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 8, \"a2a\": [\"named-uuid\", \"row9\"]},
       \"uuid-name\": \"row8\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 9, \"a2a\": [\"named-uuid\", \"row10\"]},
       \"uuid-name\": \"row9\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 10, \"a2a\": [\"named-uuid\", \"row11\"]},
       \"uuid-name\": \"row10\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 11, \"a2a\": [\"named-uuid\", \"row8\"]},
       \"uuid-name\": \"row11\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '   ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 8, "a2a": ["named-uuid", "row9"]},
       "uuid-name": "row8"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 9, "a2a": ["named-uuid", "row10"]},
       "uuid-name": "row9"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 10, "a2a": ["named-uuid", "row11"]},
       "uuid-name": "row10"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 11, "a2a": ["named-uuid", "row8"]},
       "uuid-name": "row11"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"],
       \"sort\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"],
       "sort": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '   [\"gc\",
      {\"op\": \"update\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 9]],
       \"row\": {\"a2a\": [\"set\", []]}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '   ["gc",
      {"op": "update",
       "table": "a",
       "where": [["a", "==", 9]],
       "row": {"a2a": ["set", []]}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '   [\"gc\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 12, \"a2a\": [\"named-uuid\", \"self\"]},
       \"uuid-name\": \"self\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '   ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 12, "a2a": ["named-uuid", "self"]},
       "uuid-name": "self"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1322"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"rows\":[]}]
[{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]},{\"uuid\":[\"uuid\",\"<3>\"]},{\"uuid\":[\"uuid\",\"<4>\"]}]
[{\"rows\":[]}]
[{\"uuid\":[\"uuid\",\"<5>\"]},{\"uuid\":[\"uuid\",\"<6>\"]}]
[{\"rows\":[{\"a\":4},{\"a\":5}]}]
[{\"count\":1}]
[{\"rows\":[]}]
[{\"uuid\":[\"uuid\",\"<7>\"]},{\"uuid\":[\"uuid\",\"<8>\"]}]
[{\"rows\":[]}]
[{\"uuid\":[\"uuid\",\"<9>\"]},{\"uuid\":[\"uuid\",\"<10>\"]},{\"uuid\":[\"uuid\",\"<11>\"]},{\"uuid\":[\"uuid\",\"<12>\"]}]
[{\"rows\":[{\"a\":8},{\"a\":9},{\"a\":10},{\"a\":11}]}]
[{\"count\":1}]
[{\"rows\":[]}]
[{\"uuid\":[\"uuid\",\"<13>\"]}]
[{\"rows\":[]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1322: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1322"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1322"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1322: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1322: wait failed" >&5

    $as_echo "ovsdb-server.at:1322" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1322"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1891
#AT_START_1892
at_fn_group_banner 1892 'ovsdb-server.at:1359' \
  "insert default row, query table" "                " 90
at_xfail=no
(
  $as_echo "1892. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "ovsdb-server.at:1359" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1359"
   ordinal_schema > schema
   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1359: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1359"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1359"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1359: ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:[::1] db"
at_fn_check_prepare_trace "ovsdb-server.at:1359"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --remote=ptcp:0:[::1] db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1359"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1359: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1359: wait failed" >&5

    $as_echo "ovsdb-server.at:1359" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1359"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1359: ovsdb-client transact tcp:[::1]:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1359"
( $at_check_trace; ovsdb-client transact tcp:[::1]:$TCP_PORT '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1359"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1359: ovsdb-client transact tcp:[::1]:\$TCP_PORT '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1359"
( $at_check_trace; ovsdb-client transact tcp:[::1]:$TCP_PORT '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1359"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1359: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1359"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<1>\"],\"name\":\"\",\"number\":0}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1359"
if $at_failed; then :
  test ! -e pid || kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1359: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1359"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1359"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1359: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1359"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1359"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1359: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1359: wait failed" >&5

    $as_echo "ovsdb-server.at:1359" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1359"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1892
#AT_START_1893
at_fn_group_banner 1893 'ovsdb-server.at:1395' \
  "insert default row, query table" "                " 91
at_xfail=no
(
  $as_echo "1893. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-server.at:1395" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1395"

   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {}}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": []}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<1>\"],\"name\":\"\",\"number\":0}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1893
#AT_START_1894
at_fn_group_banner 1894 'ovsdb-server.at:1395' \
  "insert row, query table" "                        " 91
at_xfail=no
(
  $as_echo "1894. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-server.at:1395" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1395"

   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": []}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<1>\"],\"name\":\"zero\",\"number\":0}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1894
#AT_START_1895
at_fn_group_banner 1895 'ovsdb-server.at:1395' \
  "insert rows, query by value" "                    " 91
at_xfail=no
(
  $as_echo "1895. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-server.at:1395" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1395"

   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [["name", "==", "zero"]]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [["name", "==", "one"]]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"zero\",\"number\":0}]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<3>\"],\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1895
#AT_START_1896
at_fn_group_banner 1896 'ovsdb-server.at:1395' \
  "insert rows, query by named-uuid" "               " 91
at_xfail=no
(
  $as_echo "1896. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-server.at:1395" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1395"

   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "second"},
      {"op": "select",
       "table": "ordinals",
       "where": [["_uuid", "==", ["named-uuid", "first"]]]},
      {"op": "select",
       "table": "ordinals",
       "where": [["_uuid", "==", ["named-uuid", "second"]]]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"zero\",\"number\":0}]},{\"rows\":[{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<3>\"],\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1896
#AT_START_1897
at_fn_group_banner 1897 'ovsdb-server.at:1395' \
  "insert rows, update rows by value" "              " 91
at_xfail=no
(
  $as_echo "1897. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-server.at:1395" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1395"

   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [["name", "==", "zero"]],
       "row": {"name": "nought"}}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "sort": ["number"]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"count\":1}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"nought\",\"number\":0},{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<3>\"],\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1897
#AT_START_1898
at_fn_group_banner 1898 'ovsdb-server.at:1395' \
  "insert rows, mutate rows" "                       " 91
at_xfail=no
(
  $as_echo "1898. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-server.at:1395" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1395"

   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["ordinals",
      {"op": "mutate",
       "table": "ordinals",
       "where": [["name", "==", "zero"]],
       "mutations": [["number", "+=", 2]]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "sort": ["number"]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"count\":1}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"one\",\"number\":1},{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<3>\"],\"name\":\"zero\",\"number\":2}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1898
#AT_START_1899
at_fn_group_banner 1899 'ovsdb-server.at:1395' \
  "insert rows, delete by named-uuid" "              " 91
at_xfail=no
(
  $as_echo "1899. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-server.at:1395" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1395"

   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "second"},
      {"op": "delete",
       "table": "ordinals",
       "where": [["_uuid", "==", ["named-uuid", "first"]]]},
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "columns": ["name","number"]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"count\":1},{\"rows\":[{\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1899
#AT_START_1900
at_fn_group_banner 1900 'ovsdb-server.at:1395' \
  "insert rows, delete rows by value" "              " 91
at_xfail=no
(
  $as_echo "1900. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-server.at:1395" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1395"

   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": [["name", "==", "zero"]]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": []}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"count\":1}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1900
#AT_START_1901
at_fn_group_banner 1901 'ovsdb-server.at:1395' \
  "insert rows, delete by (non-matching) value" "    " 91
at_xfail=no
(
  $as_echo "1901. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-server.at:1395" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1395"

   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": [["name", "==", "nought"]]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "sort": ["number"]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"count\":0}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<2>\"],\"name\":\"zero\",\"number\":0},{\"_uuid\":[\"uuid\",\"<1>\"],\"_version\":[\"uuid\",\"<3>\"],\"name\":\"one\",\"number\":1}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1901
#AT_START_1902
at_fn_group_banner 1902 'ovsdb-server.at:1395' \
  "insert rows, delete all" "                        " 91
at_xfail=no
(
  $as_echo "1902. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-server.at:1395" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1395"

   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "second"},
      {"op": "delete",
       "table": "ordinals",
       "where": []},
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "columns": ["name","number"]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"count\":2},{\"rows\":[]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1902
#AT_START_1903
at_fn_group_banner 1903 'ovsdb-server.at:1395' \
  "insert row, query table, commit" "                " 91
at_xfail=no
(
  $as_echo "1903. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-server.at:1395" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1395"

   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "select",
       "table": "ordinals",
       "where": []},
      {"op": "commit",
       "durable": false}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<1>\"],\"name\":\"zero\",\"number\":0}]},{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1903
#AT_START_1904
at_fn_group_banner 1904 'ovsdb-server.at:1395' \
  "insert row, query table, commit durably" "        " 91
at_xfail=no
(
  $as_echo "1904. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-server.at:1395" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1395"

   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "select",
       "table": "ordinals",
       "where": []},
      {"op": "commit",
       "durable": true}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"_version\":[\"uuid\",\"<1>\"],\"name\":\"zero\",\"number\":0}]},{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1904
#AT_START_1905
at_fn_group_banner 1905 'ovsdb-server.at:1395' \
  "equality wait with correct rows" "                " 91
at_xfail=no
(
  $as_echo "1905. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-server.at:1395" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1395"

   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "==",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1}]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1905
#AT_START_1906
at_fn_group_banner 1906 'ovsdb-server.at:1395' \
  "equality wait with extra row" "                   " 91
at_xfail=no
(
  $as_echo "1906. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-server.at:1395" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1395"

   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "==",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1},
                {"name": "two", "number": 2}]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"details\":\"\\\"where\\\" clause test failed\",\"error\":\"timed out\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1906
#AT_START_1907
at_fn_group_banner 1907 'ovsdb-server.at:1395' \
  "equality wait with missing row" "                 " 91
at_xfail=no
(
  $as_echo "1907. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-server.at:1395" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1395"

   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "==",
       "rows": [{"name": "one", "number": 1}]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"details\":\"\\\"where\\\" clause test failed\",\"error\":\"timed out\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1907
#AT_START_1908
at_fn_group_banner 1908 'ovsdb-server.at:1395' \
  "inequality wait with correct rows" "              " 91
at_xfail=no
(
  $as_echo "1908. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-server.at:1395" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1395"

   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "!=",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1}]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"details\":\"\\\"where\\\" clause test failed\",\"error\":\"timed out\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1908
#AT_START_1909
at_fn_group_banner 1909 'ovsdb-server.at:1395' \
  "inequality wait with extra row" "                 " 91
at_xfail=no
(
  $as_echo "1909. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-server.at:1395" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1395"

   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "!=",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1},
                {"name": "two", "number": 2}]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1909
#AT_START_1910
at_fn_group_banner 1910 'ovsdb-server.at:1395' \
  "inequality wait with missing row" "               " 91
at_xfail=no
(
  $as_echo "1910. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-server.at:1395" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1395"

   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "!=",
       "rows": [{"name": "one", "number": 1}]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1910
#AT_START_1911
at_fn_group_banner 1911 'ovsdb-server.at:1395' \
  "insert and update constraints" "                  " 91
at_xfail=no
(
  $as_echo "1911. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-server.at:1395" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1395"

   constraint_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {}}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {"positive": -1}}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["constraints",
      {"op": "update",
       "table": "constrained",
       "where": [],
       "row": {"positive": -2}}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {"positive": 1}}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {"positive": 2}}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"details\":\"0 is less than minimum allowed value 1\",\"error\":\"constraint violation\"}]
[{\"details\":\"-1 is less than minimum allowed value 1\",\"error\":\"constraint violation\"}]
[{\"details\":\"-2 is less than minimum allowed value 1\",\"error\":\"constraint violation\"}]
[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]},{\"details\":\"transaction causes \\\"constrained\\\" table to contain 2 rows, greater than the schema-defined limit of 1 row(s)\",\"error\":\"constraint violation\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1911
#AT_START_1912
at_fn_group_banner 1912 'ovsdb-server.at:1395' \
  "index uniqueness checking" "                      " 91
at_xfail=no
(
  $as_echo "1912. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-server.at:1395" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1395"

   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '   ["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "another one"}}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '   ["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "another one"}},
      {"op": "delete",
       "table": "ordinals",
       "where": [["name", "==", "one"]]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '   ["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": []},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "still another one"}}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '   ["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 2, "name": "two"}}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '   ["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [],
       "row": {"number": 3}}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '   ["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [["number", "==", 1]],
       "row": {"number": 2, "name": "old two"}},
      {"op": "update",
       "table": "ordinals",
       "where": [["name", "==", "two"]],
       "row": {"number": 1, "name": "old one"}}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '   ["ordinals",
      {"op": "mutate",
       "table": "ordinals",
       "where": [],
       "mutations": [["number", "*=", 10]]},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "new one"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 2, "name": "new two"}},
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "columns": ["number", "name"],
       "sort": ["number"]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"uuid\":[\"uuid\",\"<1>\"]},{\"details\":\"Transaction causes multiple rows in \\\"ordinals\\\" table to have identical values (1) for index on column \\\"number\\\".  First row, with UUID <0>, existed in the database before this transaction and was not modified by the transaction.  Second row, with UUID <1>, was inserted by this transaction.\",\"error\":\"constraint violation\"}]
[{\"uuid\":[\"uuid\",\"<2>\"]},{\"count\":1}]
[{\"count\":1},{\"uuid\":[\"uuid\",\"<3>\"]},{\"uuid\":[\"uuid\",\"<4>\"]},{\"details\":\"Transaction causes multiple rows in \\\"ordinals\\\" table to have identical values (1) for index on column \\\"number\\\".  First row, with UUID <4>, was inserted by this transaction.  Second row, with UUID <3>, was inserted by this transaction.\",\"error\":\"constraint violation\"}]
[{\"uuid\":[\"uuid\",\"<5>\"]}]
[{\"count\":2},{\"details\":\"Transaction causes multiple rows in \\\"ordinals\\\" table to have identical values (3) for index on column \\\"number\\\".  First row, with UUID <5>, had the following index values before the transaction: 2.  Second row, with UUID <2>, had the following index values before the transaction: 1.\",\"error\":\"constraint violation\"}]
[{\"count\":1},{\"count\":1}]
[{\"count\":2},{\"uuid\":[\"uuid\",\"<6>\"]},{\"uuid\":[\"uuid\",\"<7>\"]},{\"rows\":[{\"name\":\"new one\",\"number\":1},{\"name\":\"new two\",\"number\":2},{\"name\":\"old one\",\"number\":10},{\"name\":\"old two\",\"number\":20}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1912
#AT_START_1913
at_fn_group_banner 1913 'ovsdb-server.at:1395' \
  "referential integrity -- simple" "                " 91
at_xfail=no
(
  $as_echo "1913. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-server.at:1395" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1395"

   constraint_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["constraints",
      {"op": "insert",
       "table": "b",
       "row": {"b": 1},
       "uuid-name": "brow"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 0,
               "a2b": ["set", [["named-uuid", "brow"]]]}},
      {"op": "insert",
       "table": "a",
       "row": {"a": 1,
               "a2b": ["set", [["named-uuid", "brow"]]]}},
      {"op": "insert",
       "table": "a",
       "row": {"a": 2,
               "a2b": ["set", [["named-uuid", "brow"]]]}}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '   ["constraints",
      {"op": "mutate",
       "table": "b",
       "where": [],
       "mutations": [["x", "delete", 0]]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 1]]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 2]]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]},{\"uuid\":[\"uuid\",\"<3>\"]}]
[{\"count\":1},{\"details\":\"cannot delete b row <0> because of 3 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"details\":\"Attempted to store 0 elements in set of 1 to 2 integers.\",\"error\":\"constraint violation\"}]
[{\"count\":1}]
[{\"count\":1},{\"details\":\"cannot delete b row <0> because of 2 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"count\":1}]
[{\"count\":1},{\"details\":\"cannot delete b row <0> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"count\":1}]
[{\"count\":1}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1913
#AT_START_1914
at_fn_group_banner 1914 'ovsdb-server.at:1395' \
  "referential integrity -- mutual references" "     " 91
at_xfail=no
(
  $as_echo "1914. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-server.at:1395" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1395"

   constraint_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["constraints",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0,
               "a2b": ["set", [["named-uuid", "row2"]]],
               "a2a": ["set", [["named-uuid", "row1"]]]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "b",
       "row": {"b": 1,
               "b2b": ["set", [["named-uuid", "row2"]]],
               "b2a": ["set", [["named-uuid", "row1"]]]},
       "uuid-name": "row2"}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["constraints",
      {"op": "insert",
       "table": "a",
       "row": {"a2b": ["set", [["uuid", "b516b960-5b19-4fc2-bb82-fe1cbd6d0241"]]]}}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["constraints",
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 1]]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '   ["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["constraints",
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 1]]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]},
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 1]]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]}]
[{\"uuid\":[\"uuid\",\"<2>\"]},{\"details\":\"Table a column a2b row <2> references nonexistent row <3> in table b.\",\"error\":\"referential integrity violation\"}]
[{\"count\":1},{\"details\":\"cannot delete a row <0> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"count\":1},{\"details\":\"cannot delete b row <1> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"count\":1},{\"details\":\"cannot delete a row <0> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"count\":1},{\"details\":\"cannot delete b row <1> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]
[{\"count\":1},{\"count\":1}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1914
#AT_START_1915
at_fn_group_banner 1915 'ovsdb-server.at:1395' \
  "weak references" "                                " 91
at_xfail=no
(
  $as_echo "1915. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-server.at:1395" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1395"

   weak_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["weak",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0,
               "a2a": ["set", [["named-uuid", "row1"],
                               ["named-uuid", "row2"],
                               ["uuid", "0e767b36-6822-4044-8307-d58467e04669"]]],
               "a2a1": ["named-uuid", "row1"],
               "a2b": ["named-uuid", "row3"]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 1,
               "a2a": ["set", [["named-uuid", "row1"],
                               ["named-uuid", "row2"]]],
               "a2a1": ["named-uuid", "row2"],
               "a2b": ["named-uuid", "row3"]},
       "uuid-name": "row2"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 2,
               "a2a": ["set", [["named-uuid", "row1"],
                               ["named-uuid", "row2"]]],
               "a2a1": ["named-uuid", "row2"],
               "a2b": ["named-uuid", "row4"]}},
      {"op": "insert",
       "table": "b",
       "row": {"b": 2,
               "b2a": ["named-uuid", "row1"]},
       "uuid-name": "row3"},
      {"op": "insert",
       "table": "b",
       "row": {"b": 3,
               "b2a": ["named-uuid", "row2"]},
       "uuid-name": "row4"}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '      ["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '      ["weak",
      {"op": "insert",
       "table": "a",
       "row": {"a2a1": ["named-uuid", "me"]},
       "uuid-name": "me"}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '      ["weak",
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 3]]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '      ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 1]]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '      ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 2]]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '   ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '   ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 1]]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]},{\"uuid\":[\"uuid\",\"<3>\"]},{\"uuid\":[\"uuid\",\"<4>\"]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"a2a\":[\"set\",[[\"uuid\",\"<0>\"],[\"uuid\",\"<1>\"]]],\"a2a1\":[\"uuid\",\"<0>\"],\"a2b\":[\"uuid\",\"<3>\"]},{\"_uuid\":[\"uuid\",\"<1>\"],\"a2a\":[\"set\",[[\"uuid\",\"<0>\"],[\"uuid\",\"<1>\"]]],\"a2a1\":[\"uuid\",\"<1>\"],\"a2b\":[\"uuid\",\"<3>\"]},{\"_uuid\":[\"uuid\",\"<2>\"],\"a2a\":[\"set\",[[\"uuid\",\"<0>\"],[\"uuid\",\"<1>\"]]],\"a2a1\":[\"uuid\",\"<1>\"],\"a2b\":[\"uuid\",\"<4>\"]}]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<3>\"],\"b\":2,\"b2a\":[\"uuid\",\"<0>\"]},{\"_uuid\":[\"uuid\",\"<4>\"],\"b\":3,\"b2a\":[\"uuid\",\"<1>\"]}]}]
[{\"uuid\":[\"uuid\",\"<5>\"]},{\"details\":\"Weak reference column \\\"a2b\\\" in \\\"a\\\" row <5> (inserted within this transaction) contained all-zeros UUID (probably as the default value for this column) but deleting this value caused a constraint volation because this column is not allowed to be empty.\",\"error\":\"constraint violation\"}]
[{\"count\":1},{\"details\":\"Deletion of 1 weak reference(s) to deleted (or never-existing) rows from column \\\"a2b\\\" in \\\"a\\\" row <2> caused this column to become empty, but constraints on this column disallow an empty column.\",\"error\":\"constraint violation\"}]
[{\"count\":1},{\"details\":\"Deletion of 1 weak reference(s) to deleted (or never-existing) rows from column \\\"a2a1\\\" in \\\"a\\\" row <2> caused this column to become empty, but constraints on this column disallow an empty column.\",\"error\":\"constraint violation\"}]
[{\"count\":1}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<0>\"],\"a2a\":[\"set\",[[\"uuid\",\"<0>\"],[\"uuid\",\"<1>\"]]],\"a2a1\":[\"uuid\",\"<0>\"],\"a2b\":[\"uuid\",\"<3>\"]},{\"_uuid\":[\"uuid\",\"<1>\"],\"a2a\":[\"set\",[[\"uuid\",\"<0>\"],[\"uuid\",\"<1>\"]]],\"a2a1\":[\"uuid\",\"<1>\"],\"a2b\":[\"uuid\",\"<3>\"]}]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<3>\"],\"b\":2,\"b2a\":[\"uuid\",\"<0>\"]},{\"_uuid\":[\"uuid\",\"<4>\"],\"b\":3,\"b2a\":[\"uuid\",\"<1>\"]}]}]
[{\"count\":1}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<1>\"],\"a2a\":[\"uuid\",\"<1>\"],\"a2a1\":[\"uuid\",\"<1>\"],\"a2b\":[\"uuid\",\"<3>\"]}]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<3>\"],\"b\":2,\"b2a\":[\"set\",[]]},{\"_uuid\":[\"uuid\",\"<4>\"],\"b\":3,\"b2a\":[\"uuid\",\"<1>\"]}]}]
[{\"count\":1}]
[{\"rows\":[]}]
[{\"rows\":[{\"_uuid\":[\"uuid\",\"<3>\"],\"b\":2,\"b2a\":[\"set\",[]]},{\"_uuid\":[\"uuid\",\"<4>\"],\"b\":3,\"b2a\":[\"set\",[]]}]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1915
#AT_START_1916
at_fn_group_banner 1916 'ovsdb-server.at:1395' \
  "immutable columns" "                              " 91
at_xfail=no
(
  $as_echo "1916. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-server.at:1395" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1395"

   immutable_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["immutable",
      {"op": "insert",
       "table": "a",
       "row": {"i": 5},
       "uuid-name": "row1"}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["immutable",
      {"op": "update",
       "table": "a",
       "row": {"i": 10},
       "where": []}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["immutable",
      {"op": "update",
       "table": "a",
       "row": {"i": 5},
       "where": []}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["immutable",
      {"op": "mutate",
       "table": "a",
       "where": [],
       "mutations": [["i", "-=", 5]]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["immutable",
      {"op": "mutate",
       "table": "a",
       "where": [],
       "mutations": [["i", "*=", 1]]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"details\":\"Cannot update immutable column i in table a.\",\"error\":\"constraint violation\",\"syntax\":\"{\\\"op\\\":\\\"update\\\",\\\"row\\\":{\\\"i\\\":10},\\\"table\\\":\\\"a\\\",\\\"where\\\":[]}\"}]
[{\"details\":\"Cannot update immutable column i in table a.\",\"error\":\"constraint violation\",\"syntax\":\"{\\\"op\\\":\\\"update\\\",\\\"row\\\":{\\\"i\\\":5},\\\"table\\\":\\\"a\\\",\\\"where\\\":[]}\"}]
[{\"details\":\"Cannot mutate immutable column i in table a.\",\"error\":\"constraint violation\",\"syntax\":\"[\\\"i\\\",\\\"-=\\\",5]\"}]
[{\"details\":\"Cannot mutate immutable column i in table a.\",\"error\":\"constraint violation\",\"syntax\":\"[\\\"i\\\",\\\"*=\\\",1]\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1916
#AT_START_1917
at_fn_group_banner 1917 'ovsdb-server.at:1395' \
  "garbage collection" "                             " 91
at_xfail=no
(
  $as_echo "1917. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-server.at:1395" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1395"

   gc_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '   ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0}}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '      ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0, "a2a": ["named-uuid", "row1"]},
       "uuid-name": "row0"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 1, "a2a": ["named-uuid", "row2"]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 2, "a2a": ["named-uuid", "row3"]},
       "uuid-name": "row2"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 3},
       "uuid-name": "row3"}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '      ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 4, "a2a": ["named-uuid", "row5"]},
       "uuid-name": "row4"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 5, "a2a": ["named-uuid", "row4"]},
       "uuid-name": "row5"}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"],
       "sort": ["a"]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '   ["gc",
      {"op": "update",
       "table": "a",
       "where": [["a", "==", 4]],
       "row": {"a2a": ["set", []]}}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '      ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 6, "wa2a": ["named-uuid", "row7"]},
       "uuid-name": "row6"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 7, "wa2a": ["named-uuid", "row6"]},
       "uuid-name": "row7"}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '   ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 8, "a2a": ["named-uuid", "row9"]},
       "uuid-name": "row8"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 9, "a2a": ["named-uuid", "row10"]},
       "uuid-name": "row9"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 10, "a2a": ["named-uuid", "row11"]},
       "uuid-name": "row10"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 11, "a2a": ["named-uuid", "row8"]},
       "uuid-name": "row11"}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"],
       "sort": ["a"]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '   ["gc",
      {"op": "update",
       "table": "a",
       "where": [["a", "==", 9]],
       "row": {"a2a": ["set", []]}}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '   ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 12, "a2a": ["named-uuid", "self"]},
       "uuid-name": "self"}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output
cat >txnfile <<'_ATEOF'
ovsdb-client transact unix:socket '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
_ATEOF

      { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: ovsdb-server --remote=punix:socket db --run=\"sh txnfile\""
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; ovsdb-server --remote=punix:socket db --run="sh txnfile"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

      cat stdout >> output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1395: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1395"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
[{\"rows\":[]}]
[{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]},{\"uuid\":[\"uuid\",\"<3>\"]},{\"uuid\":[\"uuid\",\"<4>\"]}]
[{\"rows\":[]}]
[{\"uuid\":[\"uuid\",\"<5>\"]},{\"uuid\":[\"uuid\",\"<6>\"]}]
[{\"rows\":[{\"a\":4},{\"a\":5}]}]
[{\"count\":1}]
[{\"rows\":[]}]
[{\"uuid\":[\"uuid\",\"<7>\"]},{\"uuid\":[\"uuid\",\"<8>\"]}]
[{\"rows\":[]}]
[{\"uuid\":[\"uuid\",\"<9>\"]},{\"uuid\":[\"uuid\",\"<10>\"]},{\"uuid\":[\"uuid\",\"<11>\"]},{\"uuid\":[\"uuid\",\"<12>\"]}]
[{\"rows\":[{\"a\":8},{\"a\":9},{\"a\":10},{\"a\":11}]}]
[{\"count\":1}]
[{\"rows\":[]}]
[{\"uuid\":[\"uuid\",\"<13>\"]}]
[{\"rows\":[]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1917
#AT_START_1918
at_fn_group_banner 1918 'ovsdb-server.at:1435' \
  "insert default row, query table" "                " 92
at_xfail=no
(
  $as_echo "1918. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db2 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db2 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   i
   on_exit 'test ! -e pid || kill `cat pid`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid2 || kill `cat pid2`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client dump"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client dump
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting until  ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2..." >&5
ovs_wait_cond () {
     ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

   cp pid2 savepid2
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl -t \"\`pwd\`\"/unixctl2 -e exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \`cat savepid2\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat savepid2`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5
    kill `cat savepid2`
    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1918
#AT_START_1919
at_fn_group_banner 1919 'ovsdb-server.at:1435' \
  "insert row, query table" "                        " 92
at_xfail=no
(
  $as_echo "1919. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db2 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db2 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   i
   on_exit 'test ! -e pid || kill `cat pid`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid2 || kill `cat pid2`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client dump"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client dump
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting until  ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2..." >&5
ovs_wait_cond () {
     ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

   cp pid2 savepid2
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl -t \"\`pwd\`\"/unixctl2 -e exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \`cat savepid2\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat savepid2`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5
    kill `cat savepid2`
    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1919
#AT_START_1920
at_fn_group_banner 1920 'ovsdb-server.at:1435' \
  "insert rows, query by value" "                    " 92
at_xfail=no
(
  $as_echo "1920. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db2 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db2 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   i
   on_exit 'test ! -e pid || kill `cat pid`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid2 || kill `cat pid2`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"zero\"]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [["name", "==", "zero"]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"one\"]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [["name", "==", "one"]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client dump"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client dump
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting until  ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2..." >&5
ovs_wait_cond () {
     ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

   cp pid2 savepid2
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl -t \"\`pwd\`\"/unixctl2 -e exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \`cat savepid2\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat savepid2`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5
    kill `cat savepid2`
    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1920
#AT_START_1921
at_fn_group_banner 1921 'ovsdb-server.at:1435' \
  "insert rows, query by named-uuid" "               " 92
at_xfail=no
(
  $as_echo "1921. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db2 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db2 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   i
   on_exit 'test ! -e pid || kill `cat pid`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid2 || kill `cat pid2`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"second\"},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [[\"_uuid\", \"==\", [\"named-uuid\", \"first\"]]]},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [[\"_uuid\", \"==\", [\"named-uuid\", \"second\"]]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "second"},
      {"op": "select",
       "table": "ordinals",
       "where": [["_uuid", "==", ["named-uuid", "first"]]]},
      {"op": "select",
       "table": "ordinals",
       "where": [["_uuid", "==", ["named-uuid", "second"]]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client dump"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client dump
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting until  ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2..." >&5
ovs_wait_cond () {
     ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

   cp pid2 savepid2
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl -t \"\`pwd\`\"/unixctl2 -e exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \`cat savepid2\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat savepid2`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5
    kill `cat savepid2`
    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1921
#AT_START_1922
at_fn_group_banner 1922 'ovsdb-server.at:1435' \
  "insert rows, update rows by value" "              " 92
at_xfail=no
(
  $as_echo "1922. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db2 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db2 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   i
   on_exit 'test ! -e pid || kill `cat pid`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid2 || kill `cat pid2`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"ordinals\",
      {\"op\": \"update\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"zero\"]],
       \"row\": {\"name\": \"nought\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [["name", "==", "zero"]],
       "row": {"name": "nought"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"sort\": [\"number\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "sort": ["number"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client dump"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client dump
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting until  ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2..." >&5
ovs_wait_cond () {
     ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

   cp pid2 savepid2
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl -t \"\`pwd\`\"/unixctl2 -e exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \`cat savepid2\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat savepid2`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5
    kill `cat savepid2`
    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1922
#AT_START_1923
at_fn_group_banner 1923 'ovsdb-server.at:1435' \
  "insert rows, mutate rows" "                       " 92
at_xfail=no
(
  $as_echo "1923. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db2 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db2 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   i
   on_exit 'test ! -e pid || kill `cat pid`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid2 || kill `cat pid2`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"ordinals\",
      {\"op\": \"mutate\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"zero\"]],
       \"mutations\": [[\"number\", \"+=\", 2]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["ordinals",
      {"op": "mutate",
       "table": "ordinals",
       "where": [["name", "==", "zero"]],
       "mutations": [["number", "+=", 2]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"sort\": [\"number\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "sort": ["number"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client dump"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client dump
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting until  ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2..." >&5
ovs_wait_cond () {
     ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

   cp pid2 savepid2
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl -t \"\`pwd\`\"/unixctl2 -e exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \`cat savepid2\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat savepid2`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5
    kill `cat savepid2`
    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1923
#AT_START_1924
at_fn_group_banner 1924 'ovsdb-server.at:1435' \
  "insert rows, delete by named-uuid" "              " 92
at_xfail=no
(
  $as_echo "1924. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db2 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db2 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   i
   on_exit 'test ! -e pid || kill `cat pid`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid2 || kill `cat pid2`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"second\"},
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": [[\"_uuid\", \"==\", [\"named-uuid\", \"first\"]]]},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\",\"number\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "second"},
      {"op": "delete",
       "table": "ordinals",
       "where": [["_uuid", "==", ["named-uuid", "first"]]]},
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "columns": ["name","number"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client dump"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client dump
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting until  ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2..." >&5
ovs_wait_cond () {
     ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

   cp pid2 savepid2
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl -t \"\`pwd\`\"/unixctl2 -e exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \`cat savepid2\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat savepid2`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5
    kill `cat savepid2`
    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1924
#AT_START_1925
at_fn_group_banner 1925 'ovsdb-server.at:1435' \
  "insert rows, delete rows by value" "              " 92
at_xfail=no
(
  $as_echo "1925. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db2 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db2 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   i
   on_exit 'test ! -e pid || kill `cat pid`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid2 || kill `cat pid2`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"ordinals\",
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"zero\"]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": [["name", "==", "zero"]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client dump"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client dump
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting until  ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2..." >&5
ovs_wait_cond () {
     ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

   cp pid2 savepid2
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl -t \"\`pwd\`\"/unixctl2 -e exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \`cat savepid2\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat savepid2`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5
    kill `cat savepid2`
    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1925
#AT_START_1926
at_fn_group_banner 1926 'ovsdb-server.at:1435' \
  "insert rows, delete by (non-matching) value" "    " 92
at_xfail=no
(
  $as_echo "1926. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db2 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db2 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   i
   on_exit 'test ! -e pid || kill `cat pid`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid2 || kill `cat pid2`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"first\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"ordinals\",
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"nought\"]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": [["name", "==", "nought"]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"ordinals\",
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"sort\": [\"number\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "sort": ["number"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client dump"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client dump
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting until  ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2..." >&5
ovs_wait_cond () {
     ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

   cp pid2 savepid2
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl -t \"\`pwd\`\"/unixctl2 -e exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \`cat savepid2\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat savepid2`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5
    kill `cat savepid2`
    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1926
#AT_START_1927
at_fn_group_banner 1927 'ovsdb-server.at:1435' \
  "insert rows, delete all" "                        " 92
at_xfail=no
(
  $as_echo "1927. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db2 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db2 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   i
   on_exit 'test ! -e pid || kill `cat pid`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid2 || kill `cat pid2`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"},
       \"uuid-name\": \"first\"},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"},
       \"uuid-name\": \"second\"},
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": []},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\",\"number\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "second"},
      {"op": "delete",
       "table": "ordinals",
       "where": []},
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "columns": ["name","number"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client dump"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client dump
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting until  ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2..." >&5
ovs_wait_cond () {
     ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

   cp pid2 savepid2
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl -t \"\`pwd\`\"/unixctl2 -e exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \`cat savepid2\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat savepid2`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5
    kill `cat savepid2`
    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1927
#AT_START_1928
at_fn_group_banner 1928 'ovsdb-server.at:1435' \
  "insert row, query table, commit" "                " 92
at_xfail=no
(
  $as_echo "1928. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db2 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db2 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   i
   on_exit 'test ! -e pid || kill `cat pid`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid2 || kill `cat pid2`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": []},
      {\"op\": \"commit\",
       \"durable\": false}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "select",
       "table": "ordinals",
       "where": []},
      {"op": "commit",
       "durable": false}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client dump"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client dump
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting until  ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2..." >&5
ovs_wait_cond () {
     ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

   cp pid2 savepid2
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl -t \"\`pwd\`\"/unixctl2 -e exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \`cat savepid2\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat savepid2`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5
    kill `cat savepid2`
    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1928
#AT_START_1929
at_fn_group_banner 1929 'ovsdb-server.at:1435' \
  "insert row, query table, commit durably" "        " 92
at_xfail=no
(
  $as_echo "1929. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db2 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db2 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   i
   on_exit 'test ! -e pid || kill `cat pid`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid2 || kill `cat pid2`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": []},
      {\"op\": \"commit\",
       \"durable\": true}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "select",
       "table": "ordinals",
       "where": []},
      {"op": "commit",
       "durable": true}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client dump"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client dump
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting until  ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2..." >&5
ovs_wait_cond () {
     ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

   cp pid2 savepid2
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl -t \"\`pwd\`\"/unixctl2 -e exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \`cat savepid2\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat savepid2`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5
    kill `cat savepid2`
    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1929
#AT_START_1930
at_fn_group_banner 1930 'ovsdb-server.at:1435' \
  "equality wait with correct rows" "                " 92
at_xfail=no
(
  $as_echo "1930. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db2 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db2 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   i
   on_exit 'test ! -e pid || kill `cat pid`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid2 || kill `cat pid2`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 0,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"==\",
       \"rows\": [{\"name\": \"zero\", \"number\": 0},
                {\"name\": \"one\", \"number\": 1}]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "==",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1}]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client dump"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client dump
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting until  ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2..." >&5
ovs_wait_cond () {
     ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

   cp pid2 savepid2
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl -t \"\`pwd\`\"/unixctl2 -e exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \`cat savepid2\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat savepid2`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5
    kill `cat savepid2`
    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1930
#AT_START_1931
at_fn_group_banner 1931 'ovsdb-server.at:1435' \
  "equality wait with extra row" "                   " 92
at_xfail=no
(
  $as_echo "1931. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db2 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db2 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   i
   on_exit 'test ! -e pid || kill `cat pid`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid2 || kill `cat pid2`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 0,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"==\",
       \"rows\": [{\"name\": \"zero\", \"number\": 0},
                {\"name\": \"one\", \"number\": 1},
                {\"name\": \"two\", \"number\": 2}]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "==",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1},
                {"name": "two", "number": 2}]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client dump"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client dump
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting until  ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2..." >&5
ovs_wait_cond () {
     ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

   cp pid2 savepid2
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl -t \"\`pwd\`\"/unixctl2 -e exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \`cat savepid2\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat savepid2`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5
    kill `cat savepid2`
    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1931
#AT_START_1932
at_fn_group_banner 1932 'ovsdb-server.at:1435' \
  "equality wait with missing row" "                 " 92
at_xfail=no
(
  $as_echo "1932. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db2 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db2 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   i
   on_exit 'test ! -e pid || kill `cat pid`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid2 || kill `cat pid2`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 0,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"==\",
       \"rows\": [{\"name\": \"one\", \"number\": 1}]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "==",
       "rows": [{"name": "one", "number": 1}]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client dump"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client dump
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting until  ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2..." >&5
ovs_wait_cond () {
     ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

   cp pid2 savepid2
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl -t \"\`pwd\`\"/unixctl2 -e exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \`cat savepid2\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat savepid2`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5
    kill `cat savepid2`
    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1932
#AT_START_1933
at_fn_group_banner 1933 'ovsdb-server.at:1435' \
  "inequality wait with correct rows" "              " 92
at_xfail=no
(
  $as_echo "1933. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db2 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db2 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   i
   on_exit 'test ! -e pid || kill `cat pid`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid2 || kill `cat pid2`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 0,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"!=\",
       \"rows\": [{\"name\": \"zero\", \"number\": 0},
                {\"name\": \"one\", \"number\": 1}]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "!=",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1}]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client dump"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client dump
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting until  ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2..." >&5
ovs_wait_cond () {
     ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

   cp pid2 savepid2
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl -t \"\`pwd\`\"/unixctl2 -e exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \`cat savepid2\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat savepid2`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5
    kill `cat savepid2`
    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1933
#AT_START_1934
at_fn_group_banner 1934 'ovsdb-server.at:1435' \
  "inequality wait with extra row" "                 " 92
at_xfail=no
(
  $as_echo "1934. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db2 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db2 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   i
   on_exit 'test ! -e pid || kill `cat pid`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid2 || kill `cat pid2`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 0,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"!=\",
       \"rows\": [{\"name\": \"zero\", \"number\": 0},
                {\"name\": \"one\", \"number\": 1},
                {\"name\": \"two\", \"number\": 2}]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "!=",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1},
                {"name": "two", "number": 2}]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client dump"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client dump
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting until  ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2..." >&5
ovs_wait_cond () {
     ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

   cp pid2 savepid2
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl -t \"\`pwd\`\"/unixctl2 -e exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \`cat savepid2\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat savepid2`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5
    kill `cat savepid2`
    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1934
#AT_START_1935
at_fn_group_banner 1935 'ovsdb-server.at:1435' \
  "inequality wait with missing row" "               " 92
at_xfail=no
(
  $as_echo "1935. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db2 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db2 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   i
   on_exit 'test ! -e pid || kill `cat pid`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid2 || kill `cat pid2`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"wait\",
       \"timeout\": 0,
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"name\", \"number\"],
       \"until\": \"!=\",
       \"rows\": [{\"name\": \"one\", \"number\": 1}]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "!=",
       "rows": [{"name": "one", "number": 1}]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client dump"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client dump
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting until  ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2..." >&5
ovs_wait_cond () {
     ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

   cp pid2 savepid2
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl -t \"\`pwd\`\"/unixctl2 -e exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \`cat savepid2\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat savepid2`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5
    kill `cat savepid2`
    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1935
#AT_START_1936
at_fn_group_banner 1936 'ovsdb-server.at:1435' \
  "insert and update constraints" "                  " 92
at_xfail=no
(
  $as_echo "1936. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   constraint_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db2 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db2 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   i
   on_exit 'test ! -e pid || kill `cat pid`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid2 || kill `cat pid2`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"constrained\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"constrained\",
       \"row\": {\"positive\": -1}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {"positive": -1}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"constraints\",
      {\"op\": \"update\",
       \"table\": \"constrained\",
       \"where\": [],
       \"row\": {\"positive\": -2}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["constraints",
      {"op": "update",
       "table": "constrained",
       "where": [],
       "row": {"positive": -2}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"constrained\",
       \"row\": {\"positive\": 1}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {"positive": 1}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"constrained\",
       \"row\": {\"positive\": 2}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {"positive": 2}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client dump"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client dump
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting until  ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2..." >&5
ovs_wait_cond () {
     ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

   cp pid2 savepid2
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl -t \"\`pwd\`\"/unixctl2 -e exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \`cat savepid2\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat savepid2`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5
    kill `cat savepid2`
    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1936
#AT_START_1937
at_fn_group_banner 1937 'ovsdb-server.at:1435' \
  "index uniqueness checking" "                      " 92
at_xfail=no
(
  $as_echo "1937. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db2 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db2 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   i
   on_exit 'test ! -e pid || kill `cat pid`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid2 || kill `cat pid2`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '   [\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"another one\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '   ["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "another one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '   [\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"another one\"}},
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"one\"]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '   ["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "another one"}},
      {"op": "delete",
       "table": "ordinals",
       "where": [["name", "==", "one"]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '   [\"ordinals\",
      {\"op\": \"delete\",
       \"table\": \"ordinals\",
       \"where\": []},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"one\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"still another one\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '   ["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": []},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "still another one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '   [\"ordinals\",
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 2, \"name\": \"two\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '   ["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 2, "name": "two"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '   [\"ordinals\",
      {\"op\": \"update\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"row\": {\"number\": 3}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '   ["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [],
       "row": {"number": 3}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '   [\"ordinals\",
      {\"op\": \"update\",
       \"table\": \"ordinals\",
       \"where\": [[\"number\", \"==\", 1]],
       \"row\": {\"number\": 2, \"name\": \"old two\"}},
      {\"op\": \"update\",
       \"table\": \"ordinals\",
       \"where\": [[\"name\", \"==\", \"two\"]],
       \"row\": {\"number\": 1, \"name\": \"old one\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '   ["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [["number", "==", 1]],
       "row": {"number": 2, "name": "old two"}},
      {"op": "update",
       "table": "ordinals",
       "where": [["name", "==", "two"]],
       "row": {"number": 1, "name": "old one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '   [\"ordinals\",
      {\"op\": \"mutate\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"mutations\": [[\"number\", \"*=\", 10]]},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 1, \"name\": \"new one\"}},
      {\"op\": \"insert\",
       \"table\": \"ordinals\",
       \"row\": {\"number\": 2, \"name\": \"new two\"}},
      {\"op\": \"select\",
       \"table\": \"ordinals\",
       \"where\": [],
       \"columns\": [\"number\", \"name\"],
       \"sort\": [\"number\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '   ["ordinals",
      {"op": "mutate",
       "table": "ordinals",
       "where": [],
       "mutations": [["number", "*=", 10]]},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "new one"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 2, "name": "new two"}},
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "columns": ["number", "name"],
       "sort": ["number"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client dump"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client dump
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting until  ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2..." >&5
ovs_wait_cond () {
     ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

   cp pid2 savepid2
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl -t \"\`pwd\`\"/unixctl2 -e exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \`cat savepid2\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat savepid2`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5
    kill `cat savepid2`
    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1937
#AT_START_1938
at_fn_group_banner 1938 'ovsdb-server.at:1435' \
  "referential integrity -- simple" "                " 92
at_xfail=no
(
  $as_echo "1938. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   constraint_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db2 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db2 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   i
   on_exit 'test ! -e pid || kill `cat pid`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid2 || kill `cat pid2`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"b\",
       \"row\": {\"b\": 1},
       \"uuid-name\": \"brow\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 0,
               \"a2b\": [\"set\", [[\"named-uuid\", \"brow\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 1,
               \"a2b\": [\"set\", [[\"named-uuid\", \"brow\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 2,
               \"a2b\": [\"set\", [[\"named-uuid\", \"brow\"]]]}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["constraints",
      {"op": "insert",
       "table": "b",
       "row": {"b": 1},
       "uuid-name": "brow"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 0,
               "a2b": ["set", [["named-uuid", "brow"]]]}},
      {"op": "insert",
       "table": "a",
       "row": {"a": 1,
               "a2b": ["set", [["named-uuid", "brow"]]]}},
      {"op": "insert",
       "table": "a",
       "row": {"a": 2,
               "a2b": ["set", [["named-uuid", "brow"]]]}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '   [\"constraints\",
      {\"op\": \"mutate\",
       \"table\": \"b\",
       \"where\": [],
       \"mutations\": [[\"x\", \"delete\", 0]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '   ["constraints",
      {"op": "mutate",
       "table": "b",
       "where": [],
       "mutations": [["x", "delete", 0]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 0]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 1]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 2]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 2]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client dump"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client dump
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting until  ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2..." >&5
ovs_wait_cond () {
     ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

   cp pid2 savepid2
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl -t \"\`pwd\`\"/unixctl2 -e exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \`cat savepid2\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat savepid2`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5
    kill `cat savepid2`
    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1938
#AT_START_1939
at_fn_group_banner 1939 'ovsdb-server.at:1435' \
  "referential integrity -- mutual references" "     " 92
at_xfail=no
(
  $as_echo "1939. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   constraint_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db2 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db2 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   i
   on_exit 'test ! -e pid || kill `cat pid`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid2 || kill `cat pid2`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 0,
               \"a2b\": [\"set\", [[\"named-uuid\", \"row2\"]]],
               \"a2a\": [\"set\", [[\"named-uuid\", \"row1\"]]]},
       \"uuid-name\": \"row1\"},
      {\"op\": \"insert\",
       \"table\": \"b\",
       \"row\": {\"b\": 1,
               \"b2b\": [\"set\", [[\"named-uuid\", \"row2\"]]],
               \"b2a\": [\"set\", [[\"named-uuid\", \"row1\"]]]},
       \"uuid-name\": \"row2\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["constraints",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0,
               "a2b": ["set", [["named-uuid", "row2"]]],
               "a2a": ["set", [["named-uuid", "row1"]]]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "b",
       "row": {"b": 1,
               "b2b": ["set", [["named-uuid", "row2"]]],
               "b2a": ["set", [["named-uuid", "row1"]]]},
       "uuid-name": "row2"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"constraints\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a2b\": [\"set\", [[\"uuid\", \"b516b960-5b19-4fc2-bb82-fe1cbd6d0241\"]]]}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["constraints",
      {"op": "insert",
       "table": "a",
       "row": {"a2b": ["set", [["uuid", "b516b960-5b19-4fc2-bb82-fe1cbd6d0241"]]]}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 0]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": [[\"b\", \"==\", 1]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["constraints",
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '   [\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 0]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '   ["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": [[\"b\", \"==\", 1]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["constraints",
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"constraints\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 0]]},
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": [[\"b\", \"==\", 1]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]},
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client dump"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client dump
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting until  ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2..." >&5
ovs_wait_cond () {
     ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

   cp pid2 savepid2
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl -t \"\`pwd\`\"/unixctl2 -e exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \`cat savepid2\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat savepid2`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5
    kill `cat savepid2`
    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1939
#AT_START_1940
at_fn_group_banner 1940 'ovsdb-server.at:1435' \
  "weak references" "                                " 92
at_xfail=no
(
  $as_echo "1940. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   weak_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db2 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db2 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   i
   on_exit 'test ! -e pid || kill `cat pid`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid2 || kill `cat pid2`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"weak\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 0,
               \"a2a\": [\"set\", [[\"named-uuid\", \"row1\"],
                               [\"named-uuid\", \"row2\"],
                               [\"uuid\", \"0e767b36-6822-4044-8307-d58467e04669\"]]],
               \"a2a1\": [\"named-uuid\", \"row1\"],
               \"a2b\": [\"named-uuid\", \"row3\"]},
       \"uuid-name\": \"row1\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 1,
               \"a2a\": [\"set\", [[\"named-uuid\", \"row1\"],
                               [\"named-uuid\", \"row2\"]]],
               \"a2a1\": [\"named-uuid\", \"row2\"],
               \"a2b\": [\"named-uuid\", \"row3\"]},
       \"uuid-name\": \"row2\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 2,
               \"a2a\": [\"set\", [[\"named-uuid\", \"row1\"],
                               [\"named-uuid\", \"row2\"]]],
               \"a2a1\": [\"named-uuid\", \"row2\"],
               \"a2b\": [\"named-uuid\", \"row4\"]}},
      {\"op\": \"insert\",
       \"table\": \"b\",
       \"row\": {\"b\": 2,
               \"b2a\": [\"named-uuid\", \"row1\"]},
       \"uuid-name\": \"row3\"},
      {\"op\": \"insert\",
       \"table\": \"b\",
       \"row\": {\"b\": 3,
               \"b2a\": [\"named-uuid\", \"row2\"]},
       \"uuid-name\": \"row4\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["weak",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0,
               "a2a": ["set", [["named-uuid", "row1"],
                               ["named-uuid", "row2"],
                               ["uuid", "0e767b36-6822-4044-8307-d58467e04669"]]],
               "a2a1": ["named-uuid", "row1"],
               "a2b": ["named-uuid", "row3"]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 1,
               "a2a": ["set", [["named-uuid", "row1"],
                               ["named-uuid", "row2"]]],
               "a2a1": ["named-uuid", "row2"],
               "a2b": ["named-uuid", "row3"]},
       "uuid-name": "row2"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 2,
               "a2a": ["set", [["named-uuid", "row1"],
                               ["named-uuid", "row2"]]],
               "a2a1": ["named-uuid", "row2"],
               "a2b": ["named-uuid", "row4"]}},
      {"op": "insert",
       "table": "b",
       "row": {"b": 2,
               "b2a": ["named-uuid", "row1"]},
       "uuid-name": "row3"},
      {"op": "insert",
       "table": "b",
       "row": {"b": 3,
               "b2a": ["named-uuid", "row2"]},
       "uuid-name": "row4"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '      [\"weak\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"a2a\", \"a2a1\", \"a2b\"],
       \"sort\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '      ["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"b\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"b\", \"b2a\"],
       \"sort\": [\"b\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '      [\"weak\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a2a1\": [\"named-uuid\", \"me\"]},
       \"uuid-name\": \"me\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '      ["weak",
      {"op": "insert",
       "table": "a",
       "row": {"a2a1": ["named-uuid", "me"]},
       "uuid-name": "me"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '      [\"weak\",
      {\"op\": \"delete\",
       \"table\": \"b\",
       \"where\": [[\"b\", \"==\", 3]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '      ["weak",
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 3]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '      [\"weak\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 1]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '      ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '      [\"weak\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 2]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '      ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 2]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"a2a\", \"a2a1\", \"a2b\"],
       \"sort\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"b\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"b\", \"b2a\"],
       \"sort\": [\"b\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '   [\"weak\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 0]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '   ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"a2a\", \"a2a1\", \"a2b\"],
       \"sort\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"b\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"b\", \"b2a\"],
       \"sort\": [\"b\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '   [\"weak\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 1]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '   ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"a2a\", \"a2a1\", \"a2b\"],
       \"sort\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"weak\",
      {\"op\": \"select\",
       \"table\": \"b\",
       \"where\": [],
       \"columns\": [\"_uuid\", \"b\", \"b2a\"],
       \"sort\": [\"b\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client dump"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client dump
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting until  ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2..." >&5
ovs_wait_cond () {
     ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

   cp pid2 savepid2
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl -t \"\`pwd\`\"/unixctl2 -e exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \`cat savepid2\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat savepid2`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5
    kill `cat savepid2`
    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1940
#AT_START_1941
at_fn_group_banner 1941 'ovsdb-server.at:1435' \
  "immutable columns" "                              " 92
at_xfail=no
(
  $as_echo "1941. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   immutable_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db2 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db2 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   i
   on_exit 'test ! -e pid || kill `cat pid`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid2 || kill `cat pid2`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"immutable\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"i\": 5},
       \"uuid-name\": \"row1\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["immutable",
      {"op": "insert",
       "table": "a",
       "row": {"i": 5},
       "uuid-name": "row1"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"immutable\",
      {\"op\": \"update\",
       \"table\": \"a\",
       \"row\": {\"i\": 10},
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["immutable",
      {"op": "update",
       "table": "a",
       "row": {"i": 10},
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"immutable\",
      {\"op\": \"update\",
       \"table\": \"a\",
       \"row\": {\"i\": 5},
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["immutable",
      {"op": "update",
       "table": "a",
       "row": {"i": 5},
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"immutable\",
      {\"op\": \"mutate\",
       \"table\": \"a\",
       \"where\": [],
       \"mutations\": [[\"i\", \"-=\", 5]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["immutable",
      {"op": "mutate",
       "table": "a",
       "where": [],
       "mutations": [["i", "-=", 5]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"immutable\",
      {\"op\": \"mutate\",
       \"table\": \"a\",
       \"where\": [],
       \"mutations\": [[\"i\", \"*=\", 1]]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["immutable",
      {"op": "mutate",
       "table": "a",
       "where": [],
       "mutations": [["i", "*=", 1]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client dump"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client dump
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting until  ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2..." >&5
ovs_wait_cond () {
     ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

   cp pid2 savepid2
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl -t \"\`pwd\`\"/unixctl2 -e exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \`cat savepid2\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat savepid2`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5
    kill `cat savepid2`
    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1941
#AT_START_1942
at_fn_group_banner 1942 'ovsdb-server.at:1435' \
  "garbage collection" "                             " 92
at_xfail=no
(
  $as_echo "1942. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   gc_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-tool create db2 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-tool create db2 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   i
   on_exit 'test ! -e pid || kill `cat pid`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid2 || kill `cat pid2`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '   [\"gc\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 0}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '   ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '      [\"gc\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 0, \"a2a\": [\"named-uuid\", \"row1\"]},
       \"uuid-name\": \"row0\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 1, \"a2a\": [\"named-uuid\", \"row2\"]},
       \"uuid-name\": \"row1\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 2, \"a2a\": [\"named-uuid\", \"row3\"]},
       \"uuid-name\": \"row2\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 3},
       \"uuid-name\": \"row3\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '      ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0, "a2a": ["named-uuid", "row1"]},
       "uuid-name": "row0"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 1, "a2a": ["named-uuid", "row2"]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 2, "a2a": ["named-uuid", "row3"]},
       "uuid-name": "row2"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 3},
       "uuid-name": "row3"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '      [\"gc\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 4, \"a2a\": [\"named-uuid\", \"row5\"]},
       \"uuid-name\": \"row4\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 5, \"a2a\": [\"named-uuid\", \"row4\"]},
       \"uuid-name\": \"row5\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '      ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 4, "a2a": ["named-uuid", "row5"]},
       "uuid-name": "row4"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 5, "a2a": ["named-uuid", "row4"]},
       "uuid-name": "row5"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"],
       \"sort\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"],
       "sort": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '   [\"gc\",
      {\"op\": \"update\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 4]],
       \"row\": {\"a2a\": [\"set\", []]}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '   ["gc",
      {"op": "update",
       "table": "a",
       "where": [["a", "==", 4]],
       "row": {"a2a": ["set", []]}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '      [\"gc\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 6, \"wa2a\": [\"named-uuid\", \"row7\"]},
       \"uuid-name\": \"row6\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 7, \"wa2a\": [\"named-uuid\", \"row6\"]},
       \"uuid-name\": \"row7\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '      ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 6, "wa2a": ["named-uuid", "row7"]},
       "uuid-name": "row6"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 7, "wa2a": ["named-uuid", "row6"]},
       "uuid-name": "row7"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '   [\"gc\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 8, \"a2a\": [\"named-uuid\", \"row9\"]},
       \"uuid-name\": \"row8\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 9, \"a2a\": [\"named-uuid\", \"row10\"]},
       \"uuid-name\": \"row9\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 10, \"a2a\": [\"named-uuid\", \"row11\"]},
       \"uuid-name\": \"row10\"},
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 11, \"a2a\": [\"named-uuid\", \"row8\"]},
       \"uuid-name\": \"row11\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '   ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 8, "a2a": ["named-uuid", "row9"]},
       "uuid-name": "row8"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 9, "a2a": ["named-uuid", "row10"]},
       "uuid-name": "row9"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 10, "a2a": ["named-uuid", "row11"]},
       "uuid-name": "row10"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 11, "a2a": ["named-uuid", "row8"]},
       "uuid-name": "row11"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"],
       \"sort\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"],
       "sort": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '   [\"gc\",
      {\"op\": \"update\",
       \"table\": \"a\",
       \"where\": [[\"a\", \"==\", 9]],
       \"row\": {\"a2a\": [\"set\", []]}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '   ["gc",
      {"op": "update",
       "table": "a",
       "where": [["a", "==", 9]],
       "row": {"a2a": ["set", []]}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '   [\"gc\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"a\": 12, \"a2a\": [\"named-uuid\", \"self\"]},
       \"uuid-name\": \"self\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '   ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 12, "a2a": ["named-uuid", "self"]},
       "uuid-name": "self"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client transact '[\"gc\",
      {\"op\": \"select\",
       \"table\": \"a\",
       \"where\": [],
       \"columns\": [\"a\"]}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client transact '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovsdb-client dump"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovsdb-client dump
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting until  ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2..." >&5
ovs_wait_cond () {
     ovsdb-client dump unix:db2.sock > dump2; diff stdout dump2
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5

    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

   cp pid2 savepid2
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1435: ovs-appctl -t \"\`pwd\`\"/unixctl2 -e exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1435"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1435: waiting while kill -0 \`cat savepid2\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat savepid2`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1435: wait failed" >&5
    kill `cat savepid2`
    $as_echo "ovsdb-server.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1435"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1942
#AT_START_1943
at_fn_group_banner 1943 'ovsdb-server.at:1489' \
  "insert monitored table, insert excluded table" "  " 93
at_xfail=no
(
  $as_echo "1943. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "ovsdb-server.at:1489" >"$at_check_line_file"
(test $DIFF_SUPPORTS_NORMAL_FORMAT = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1489"
   replication_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovsdb-tool create db2 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovsdb-tool create db2 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid || kill `cat pid`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock --sync-exclude-tables=mydb:b db2"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock --sync-exclude-tables=mydb:b db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid2 || kill `cat pid2`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489:  ovsdb-client transact '[\"mydb\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}}]' "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1489"
( $at_check_trace;  ovsdb-client transact '["mydb",
      {"op": "insert",
       "table": "a",
       "row": {"number": 0, "name": "zero"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489:  ovsdb-client transact '[\"mydb\",
      {\"op\": \"insert\",
       \"table\": \"b\",
       \"row\": {\"number\": 1, \"name\": \"one\"}}]' "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1489"
( $at_check_trace;  ovsdb-client transact '["mydb",
      {"op": "insert",
       "table": "b",
       "row": {"number": 1, "name": "one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489:  ovsdb-client transact '[\"mydb\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"number\": 1, \"name\": \"one\"}}]' "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1489"
( $at_check_trace;  ovsdb-client transact '["mydb",
      {"op": "insert",
       "table": "a",
       "row": {"number": 1, "name": "one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovsdb-client dump"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovsdb-client dump
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat stdout > dump1

   $as_echo "ovsdb-server.at:1489: waiting until  ovsdb-client dump unix:db2.sock | grep one ..." >&5
ovs_wait_cond () {
     ovsdb-client dump unix:db2.sock | grep one
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1489: wait failed" >&5

    $as_echo "ovsdb-server.at:1489" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1489"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovsdb-client dump unix:db2.sock"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovsdb-client dump unix:db2.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat stdout > dump2

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: diff dump1 dump2"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; diff dump1 dump2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat stdout > output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "8,10c8,9
< _uuid                                name number
< ------------------------------------ ---- ------
< <0> one  1
---
> _uuid name number
> ----- ---- ------
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1489: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1489: wait failed" >&5

    $as_echo "ovsdb-server.at:1489" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1489"
fi

   cp pid2 savepid2
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovs-appctl -t \"\`pwd\`\"/unixctl2 -e exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1489"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1489: waiting while kill -0 \`cat savepid2\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat savepid2`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1489: wait failed" >&5
    kill `cat savepid2`
    $as_echo "ovsdb-server.at:1489" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1489"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1943
#AT_START_1944
at_fn_group_banner 1944 'ovsdb-server.at:1489' \
  "insert monitored table, update excluded table" "  " 93
at_xfail=no
(
  $as_echo "1944. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "ovsdb-server.at:1489" >"$at_check_line_file"
(test $DIFF_SUPPORTS_NORMAL_FORMAT = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1489"
   replication_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovsdb-tool create db2 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovsdb-tool create db2 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid || kill `cat pid`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock --sync-exclude-tables=mydb:b db2"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock --sync-exclude-tables=mydb:b db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid2 || kill `cat pid2`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489:  ovsdb-client transact '[\"mydb\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}}]' "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1489"
( $at_check_trace;  ovsdb-client transact '["mydb",
      {"op": "insert",
       "table": "a",
       "row": {"number": 0, "name": "zero"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489:  ovsdb-client transact '[\"mydb\",
      {\"op\": \"insert\",
       \"table\": \"b\",
       \"row\": {\"number\": 1, \"name\": \"one\"}}]' "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1489"
( $at_check_trace;  ovsdb-client transact '["mydb",
      {"op": "insert",
       "table": "b",
       "row": {"number": 1, "name": "one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489:  ovsdb-client transact '[\"mydb\",
      {\"op\": \"update\",
       \"table\": \"b\",
       \"where\":[[\"name\",\"==\",\"one\"]],
       \"row\": {\"number\": 2, \"name\": \"two\"}}]' "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1489"
( $at_check_trace;  ovsdb-client transact '["mydb",
      {"op": "update",
       "table": "b",
       "where":[["name","==","one"]],
       "row": {"number": 2, "name": "two"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489:  ovsdb-client transact '[\"mydb\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"number\": 1, \"name\": \"one\"}}]' "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1489"
( $at_check_trace;  ovsdb-client transact '["mydb",
      {"op": "insert",
       "table": "a",
       "row": {"number": 1, "name": "one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovsdb-client dump"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovsdb-client dump
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat stdout > dump1

   $as_echo "ovsdb-server.at:1489: waiting until  ovsdb-client dump unix:db2.sock | grep one ..." >&5
ovs_wait_cond () {
     ovsdb-client dump unix:db2.sock | grep one
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1489: wait failed" >&5

    $as_echo "ovsdb-server.at:1489" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1489"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovsdb-client dump unix:db2.sock"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovsdb-client dump unix:db2.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat stdout > dump2

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: diff dump1 dump2"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; diff dump1 dump2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat stdout > output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "8,10c8,9
< _uuid                                name number
< ------------------------------------ ---- ------
< <0> two  2
---
> _uuid name number
> ----- ---- ------
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1489: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1489: wait failed" >&5

    $as_echo "ovsdb-server.at:1489" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1489"
fi

   cp pid2 savepid2
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovs-appctl -t \"\`pwd\`\"/unixctl2 -e exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1489"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1489: waiting while kill -0 \`cat savepid2\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat savepid2`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1489: wait failed" >&5
    kill `cat savepid2`
    $as_echo "ovsdb-server.at:1489" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1489"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1944
#AT_START_1945
at_fn_group_banner 1945 'ovsdb-server.at:1489' \
  "update monitored table, insert excluded table" "  " 93
at_xfail=no
(
  $as_echo "1945. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "ovsdb-server.at:1489" >"$at_check_line_file"
(test $DIFF_SUPPORTS_NORMAL_FORMAT = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1489"
   replication_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovsdb-tool create db2 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovsdb-tool create db2 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid || kill `cat pid`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock --sync-exclude-tables=mydb:b db2"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock --sync-exclude-tables=mydb:b db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid2 || kill `cat pid2`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489:  ovsdb-client transact '[\"mydb\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}}]' "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1489"
( $at_check_trace;  ovsdb-client transact '["mydb",
      {"op": "insert",
       "table": "a",
       "row": {"number": 0, "name": "zero"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489:  ovsdb-client transact '[\"mydb\",
      {\"op\": \"update\",
       \"table\": \"a\",
       \"where\":[[\"name\",\"==\",\"zero\"]],
       \"row\": {\"number\": 1, \"name\": \"one\"}}]' "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1489"
( $at_check_trace;  ovsdb-client transact '["mydb",
      {"op": "update",
       "table": "a",
       "where":[["name","==","zero"]],
       "row": {"number": 1, "name": "one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489:  ovsdb-client transact '[\"mydb\",
      {\"op\": \"insert\",
       \"table\": \"b\",
       \"row\": {\"number\": 2, \"name\": \"two\"}}]' "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1489"
( $at_check_trace;  ovsdb-client transact '["mydb",
      {"op": "insert",
       "table": "b",
       "row": {"number": 2, "name": "two"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovsdb-client dump"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovsdb-client dump
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat stdout > dump1

   $as_echo "ovsdb-server.at:1489: waiting until  ovsdb-client dump unix:db2.sock | grep one ..." >&5
ovs_wait_cond () {
     ovsdb-client dump unix:db2.sock | grep one
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1489: wait failed" >&5

    $as_echo "ovsdb-server.at:1489" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1489"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovsdb-client dump unix:db2.sock"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovsdb-client dump unix:db2.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat stdout > dump2

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: diff dump1 dump2"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; diff dump1 dump2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat stdout > output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "7,9c7,8
< _uuid                                name number
< ------------------------------------ ---- ------
< <0> two  2
---
> _uuid name number
> ----- ---- ------
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1489: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1489: wait failed" >&5

    $as_echo "ovsdb-server.at:1489" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1489"
fi

   cp pid2 savepid2
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovs-appctl -t \"\`pwd\`\"/unixctl2 -e exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1489"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1489: waiting while kill -0 \`cat savepid2\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat savepid2`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1489: wait failed" >&5
    kill `cat savepid2`
    $as_echo "ovsdb-server.at:1489" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1489"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1945
#AT_START_1946
at_fn_group_banner 1946 'ovsdb-server.at:1489' \
  "update monitored table, update excluded table" "  " 93
at_xfail=no
(
  $as_echo "1946. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "ovsdb-server.at:1489" >"$at_check_line_file"
(test $DIFF_SUPPORTS_NORMAL_FORMAT = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1489"
   replication_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovsdb-tool create db2 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovsdb-tool create db2 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid || kill `cat pid`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock --sync-exclude-tables=mydb:b db2"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock --sync-exclude-tables=mydb:b db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid2 || kill `cat pid2`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489:  ovsdb-client transact '[\"mydb\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}}]' "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1489"
( $at_check_trace;  ovsdb-client transact '["mydb",
      {"op": "insert",
       "table": "a",
       "row": {"number": 0, "name": "zero"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489:  ovsdb-client transact '[\"mydb\",
      {\"op\": \"update\",
       \"table\": \"a\",
       \"where\":[[\"name\",\"==\",\"zero\"]],
       \"row\": {\"number\": 1, \"name\": \"one\"}}]' "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1489"
( $at_check_trace;  ovsdb-client transact '["mydb",
      {"op": "update",
       "table": "a",
       "where":[["name","==","zero"]],
       "row": {"number": 1, "name": "one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489:  ovsdb-client transact '[\"mydb\",
      {\"op\": \"insert\",
       \"table\": \"b\",
       \"row\": {\"number\": 2, \"name\": \"two\"}}]' "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1489"
( $at_check_trace;  ovsdb-client transact '["mydb",
      {"op": "insert",
       "table": "b",
       "row": {"number": 2, "name": "two"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489:  ovsdb-client transact '[\"mydb\",
      {\"op\": \"update\",
       \"table\": \"b\",
       \"where\":[[\"name\",\"==\",\"two\"]],
       \"row\": {\"number\": 3, \"name\": \"three\"}}]' "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1489"
( $at_check_trace;  ovsdb-client transact '["mydb",
      {"op": "update",
       "table": "b",
       "where":[["name","==","two"]],
       "row": {"number": 3, "name": "three"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovsdb-client dump"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovsdb-client dump
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat stdout > dump1

   $as_echo "ovsdb-server.at:1489: waiting until  ovsdb-client dump unix:db2.sock | grep one ..." >&5
ovs_wait_cond () {
     ovsdb-client dump unix:db2.sock | grep one
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1489: wait failed" >&5

    $as_echo "ovsdb-server.at:1489" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1489"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovsdb-client dump unix:db2.sock"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovsdb-client dump unix:db2.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat stdout > dump2

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: diff dump1 dump2"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; diff dump1 dump2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat stdout > output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "7,9c7,8
< _uuid                                name  number
< ------------------------------------ ----- ------
< <0> three 3
---
> _uuid name number
> ----- ---- ------
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1489: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1489: wait failed" >&5

    $as_echo "ovsdb-server.at:1489" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1489"
fi

   cp pid2 savepid2
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovs-appctl -t \"\`pwd\`\"/unixctl2 -e exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1489"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1489: waiting while kill -0 \`cat savepid2\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat savepid2`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1489: wait failed" >&5
    kill `cat savepid2`
    $as_echo "ovsdb-server.at:1489" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1489"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1946
#AT_START_1947
at_fn_group_banner 1947 'ovsdb-server.at:1489' \
  "delete monitored table, insert excluded table" "  " 93
at_xfail=no
(
  $as_echo "1947. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "ovsdb-server.at:1489" >"$at_check_line_file"
(test $DIFF_SUPPORTS_NORMAL_FORMAT = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1489"
   replication_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovsdb-tool create db2 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovsdb-tool create db2 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid || kill `cat pid`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock --sync-exclude-tables=mydb:b db2"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock --sync-exclude-tables=mydb:b db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid2 || kill `cat pid2`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489:  ovsdb-client transact '[\"mydb\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}}]' "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1489"
( $at_check_trace;  ovsdb-client transact '["mydb",
      {"op": "insert",
       "table": "a",
       "row": {"number": 0, "name": "zero"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489:  ovsdb-client transact '[\"mydb\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\":[[\"name\",\"==\",\"zero\"]]}]' "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1489"
( $at_check_trace;  ovsdb-client transact '["mydb",
      {"op": "delete",
       "table": "a",
       "where":[["name","==","zero"]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489:  ovsdb-client transact '[\"mydb\",
      {\"op\": \"insert\",
       \"table\": \"b\",
       \"row\": {\"number\": 1, \"name\": \"one\"}}]' "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1489"
( $at_check_trace;  ovsdb-client transact '["mydb",
      {"op": "insert",
       "table": "b",
       "row": {"number": 1, "name": "one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489:  ovsdb-client transact '[\"mydb\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"number\": 1, \"name\": \"one\"}}]' "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1489"
( $at_check_trace;  ovsdb-client transact '["mydb",
      {"op": "insert",
       "table": "a",
       "row": {"number": 1, "name": "one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovsdb-client dump"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovsdb-client dump
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat stdout > dump1

   $as_echo "ovsdb-server.at:1489: waiting until  ovsdb-client dump unix:db2.sock | grep one ..." >&5
ovs_wait_cond () {
     ovsdb-client dump unix:db2.sock | grep one
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1489: wait failed" >&5

    $as_echo "ovsdb-server.at:1489" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1489"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovsdb-client dump unix:db2.sock"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovsdb-client dump unix:db2.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat stdout > dump2

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: diff dump1 dump2"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; diff dump1 dump2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat stdout > output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "7,9c7,8
< _uuid                                name number
< ------------------------------------ ---- ------
< <0> one  1
---
> _uuid name number
> ----- ---- ------
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1489: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1489: wait failed" >&5

    $as_echo "ovsdb-server.at:1489" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1489"
fi

   cp pid2 savepid2
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovs-appctl -t \"\`pwd\`\"/unixctl2 -e exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1489"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1489: waiting while kill -0 \`cat savepid2\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat savepid2`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1489: wait failed" >&5
    kill `cat savepid2`
    $as_echo "ovsdb-server.at:1489" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1489"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1947
#AT_START_1948
at_fn_group_banner 1948 'ovsdb-server.at:1489' \
  "delete monitored table, update excluded table" "  " 93
at_xfail=no
(
  $as_echo "1948. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   $as_echo "ovsdb-server.at:1489" >"$at_check_line_file"
(test $DIFF_SUPPORTS_NORMAL_FORMAT = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1489"
   replication_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovsdb-tool create db2 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovsdb-tool create db2 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid || kill `cat pid`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock --sync-exclude-tables=mydb:b db2"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock --sync-exclude-tables=mydb:b db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'test ! -e pid2 || kill `cat pid2`'

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489:  ovsdb-client transact '[\"mydb\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"number\": 0, \"name\": \"zero\"}}]' "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1489"
( $at_check_trace;  ovsdb-client transact '["mydb",
      {"op": "insert",
       "table": "a",
       "row": {"number": 0, "name": "zero"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489:  ovsdb-client transact '[\"mydb\",
      {\"op\": \"delete\",
       \"table\": \"a\",
       \"where\":[[\"name\",\"==\",\"zero\"]]}]' "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1489"
( $at_check_trace;  ovsdb-client transact '["mydb",
      {"op": "delete",
       "table": "a",
       "where":[["name","==","zero"]]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489:  ovsdb-client transact '[\"mydb\",
      {\"op\": \"insert\",
       \"table\": \"b\",
       \"row\": {\"number\": 1, \"name\": \"one\"}}]' "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1489"
( $at_check_trace;  ovsdb-client transact '["mydb",
      {"op": "insert",
       "table": "b",
       "row": {"number": 1, "name": "one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489:  ovsdb-client transact '[\"mydb\",
      {\"op\": \"update\",
       \"table\": \"b\",
       \"where\":[[\"name\",\"==\",\"one\"]],
       \"row\": {\"number\": 2, \"name\": \"two\"}}]' "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1489"
( $at_check_trace;  ovsdb-client transact '["mydb",
      {"op": "update",
       "table": "b",
       "where":[["name","==","one"]],
       "row": {"number": 2, "name": "two"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489:  ovsdb-client transact '[\"mydb\",
      {\"op\": \"insert\",
       \"table\": \"a\",
       \"row\": {\"number\": 1, \"name\": \"one\"}}]' "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1489"
( $at_check_trace;  ovsdb-client transact '["mydb",
      {"op": "insert",
       "table": "a",
       "row": {"number": 1, "name": "one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovsdb-client dump"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovsdb-client dump
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat stdout > dump1

   $as_echo "ovsdb-server.at:1489: waiting until  ovsdb-client dump unix:db2.sock | grep one ..." >&5
ovs_wait_cond () {
     ovsdb-client dump unix:db2.sock | grep one
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1489: wait failed" >&5

    $as_echo "ovsdb-server.at:1489" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1489"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovsdb-client dump unix:db2.sock"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovsdb-client dump unix:db2.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat stdout > dump2

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: diff dump1 dump2"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; diff dump1 dump2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   cat stdout > output

   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "7,9c7,8
< _uuid                                name number
< ------------------------------------ ---- ------
< <0> two  2
---
> _uuid name number
> ----- ---- ------
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1489"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1489: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1489: wait failed" >&5

    $as_echo "ovsdb-server.at:1489" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1489"
fi

   cp pid2 savepid2
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1489: ovs-appctl -t \"\`pwd\`\"/unixctl2 -e exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1489"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1489"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1489: waiting while kill -0 \`cat savepid2\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat savepid2`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1489: wait failed" >&5
    kill `cat savepid2`
    $as_echo "ovsdb-server.at:1489" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1489"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1948
#AT_START_1949
at_fn_group_banner 1949 'ovsdb-server.at:1494' \
  "ovsdb-server/get-active-ovsdb-server" "           " 94
at_xfail=no
(
  $as_echo "1949. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ordinal_schema > schema
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1497: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1497"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1497"
$at_failed && at_fn_log_failure
$at_traceon; }

on_exit 'kill `cat *.pid`'
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1499: ovsdb-server --detach --no-chdir --pidfile --sync-from=tcp:127.0.0.1:9999 db"
at_fn_check_prepare_trace "ovsdb-server.at:1499"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --sync-from=tcp:127.0.0.1:9999 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1499"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1501: ovs-appctl -t ovsdb-server ovsdb-server/get-active-ovsdb-server"
at_fn_check_prepare_trace "ovsdb-server.at:1501"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/get-active-ovsdb-server
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "tcp:127.0.0.1:9999
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1501"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1949
#AT_START_1950
at_fn_group_banner 1950 'ovsdb-server.at:1507' \
  "ovsdb-server/set-active-ovsdb-server" "           " 94
at_xfail=no
(
  $as_echo "1950. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ordinal_schema > schema
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1510: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1510"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1510"
$at_failed && at_fn_log_failure
$at_traceon; }

on_exit 'kill `cat *.pid`'
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1512: ovsdb-server --detach --no-chdir --pidfile db"
at_fn_check_prepare_trace "ovsdb-server.at:1512"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1512"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1514: ovs-appctl -t ovsdb-server ovsdb-server/set-active-ovsdb-server tcp:127.0.0.1:9999"
at_fn_check_prepare_trace "ovsdb-server.at:1514"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/set-active-ovsdb-server tcp:127.0.0.1:9999
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1514"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1515: ovs-appctl -t ovsdb-server ovsdb-server/get-active-ovsdb-server"
at_fn_check_prepare_trace "ovsdb-server.at:1515"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/get-active-ovsdb-server
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "tcp:127.0.0.1:9999
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1515"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1950
#AT_START_1951
at_fn_group_banner 1951 'ovsdb-server.at:1521' \
  "ovsdb-server/get-sync-exclude-tables" "           " 94
at_xfail=no
(
  $as_echo "1951. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ordinal_schema > schema
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1524: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1524"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1524"
$at_failed && at_fn_log_failure
$at_traceon; }

on_exit 'kill `cat *.pid`'
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1526: ovsdb-server --detach --no-chdir --pidfile --sync-exclude-tables=mydb:db1,mydb:db2 db"
at_fn_check_prepare_trace "ovsdb-server.at:1526"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --sync-exclude-tables=mydb:db1,mydb:db2 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1526"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1528: ovs-appctl -t ovsdb-server ovsdb-server/get-sync-exclude-tables"
at_fn_check_prepare_trace "ovsdb-server.at:1528"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/get-sync-exclude-tables
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "mydb:db1,mydb:db2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1528"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1951
#AT_START_1952
at_fn_group_banner 1952 'ovsdb-server.at:1534' \
  "ovsdb-server/set-sync-exclude-tables" "           " 94
at_xfail=no
(
  $as_echo "1952. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


$as_echo "ovsdb-server.at:1536" >"$at_check_line_file"
(test $DIFF_SUPPORTS_NORMAL_FORMAT = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1536"

replication_schema > schema
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1539: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1539"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1539"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1540: ovsdb-tool create db2 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1540"
( $at_check_trace; ovsdb-tool create db2 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1540"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1542: ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-server.at:1542"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1542"
$at_failed && at_fn_log_failure
$at_traceon; }

on_exit 'test ! -e pid || kill `cat pid`'

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1545: ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2"
at_fn_check_prepare_trace "ovsdb-server.at:1545"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1545"
$at_failed && at_fn_log_failure
$at_traceon; }

on_exit 'test ! -e pid2 || kill `cat pid2`'

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1548: ovs-appctl -t \"\`pwd\`\"/unixctl2 ovsdb-server/set-sync-exclude-tables mydb:b"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1548"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 ovsdb-server/set-sync-exclude-tables mydb:b
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1548"
if $at_failed; then :
  test ! -e pid || kill `cat pid`; test ! -e pid2 || kill `cat pid2`
fi
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1550: ovsdb-client transact unix:db.sock \\
 '[\"mydb\",
    {\"op\": \"insert\",
      \"table\": \"a\",
      \"row\": {\"number\": 0, \"name\": \"zero\"}},
    {\"op\": \"insert\",
      \"table\": \"b\",
      \"row\": {\"number\": 1, \"name\": \"one\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1550"
( $at_check_trace; ovsdb-client transact unix:db.sock \
 '["mydb",
    {"op": "insert",
      "table": "a",
      "row": {"number": 0, "name": "zero"}},
    {"op": "insert",
      "table": "b",
      "row": {"number": 1, "name": "one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1550"
if $at_failed; then :
  test ! -e pid || kill `cat pid`; test ! -e pid2 || kill `cat pid2`
fi
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1560: ovsdb-client dump unix:db.sock"
at_fn_check_prepare_trace "ovsdb-server.at:1560"
( $at_check_trace; ovsdb-client dump unix:db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1560"
if $at_failed; then :
  test ! -e pid || kill `cat pid`; test ! -e pid2 || kill `cat pid2`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout > dump1
$as_echo "ovsdb-server.at:1563: waiting until  ovsdb-client dump unix:db2.sock | grep zero ..." >&5
ovs_wait_cond () {
     ovsdb-client dump unix:db2.sock | grep zero
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1563: wait failed" >&5

    $as_echo "ovsdb-server.at:1563" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1563"
fi

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1564: ovsdb-client dump unix:db2.sock"
at_fn_check_prepare_trace "ovsdb-server.at:1564"
( $at_check_trace; ovsdb-client dump unix:db2.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1564"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout > dump2

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1567: diff dump1 dump2"
at_fn_check_prepare_trace "ovsdb-server.at:1567"
( $at_check_trace; diff dump1 dump2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-server.at:1567"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout > output

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1570: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1570"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "7,9c7,8
< _uuid                                name number
< ------------------------------------ ---- ------
< <0> one  1
---
> _uuid name number
> ----- ---- ------
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1570"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1579: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1579"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1579"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1579: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1579"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1579"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1579: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1579: wait failed" >&5

    $as_echo "ovsdb-server.at:1579" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1579"
fi

cp pid2 savepid2
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1580: ovs-appctl -t \"\`pwd\`\"/unixctl2 -e exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1580"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1580"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1580: waiting while kill -0 \`cat savepid2\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat savepid2`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1580: wait failed" >&5
    kill `cat savepid2`
    $as_echo "ovsdb-server.at:1580" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1580"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1952
#AT_START_1953
at_fn_group_banner 1953 'ovsdb-server.at:1584' \
  "ovsdb-server/connect-active-server" "             " 94
at_xfail=no
(
  $as_echo "1953. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


replication_schema > schema
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1587: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1587"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1587"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1588: ovsdb-tool create db2 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1588"
( $at_check_trace; ovsdb-tool create db2 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1588"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1590: ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-server.at:1590"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1590"
$at_failed && at_fn_log_failure
$at_traceon; }

on_exit 'test ! -e pid || kill `cat pid`'

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1593: ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 db2"
at_fn_check_prepare_trace "ovsdb-server.at:1593"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1593"
$at_failed && at_fn_log_failure
$at_traceon; }

on_exit 'test ! -e pid2 || kill `cat pid2`'

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1597: ovs-appctl -t \"\`pwd\`\"/unixctl2 ovsdb-server/connect-active-ovsdb-server"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1597"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 ovsdb-server/connect-active-ovsdb-server
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "Unable to connect: active server is not specified.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1597"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1601: ovs-appctl -t \"\`pwd\`\"/unixctl2 ovsdb-server/set-active-ovsdb-server unix:db.sock"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1601"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 ovsdb-server/set-active-ovsdb-server unix:db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1601"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1603: ovs-appctl -t \"\`pwd\`\"/unixctl2 ovsdb-server/connect-active-ovsdb-server"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1603"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 ovsdb-server/connect-active-ovsdb-server
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1603"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1605: ovsdb-client transact unix:db.sock \\
 '[\"mydb\",
  {\"op\": \"insert\",
   \"table\": \"a\",
   \"row\": {\"number\": 0, \"name\": \"zero\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1605"
( $at_check_trace; ovsdb-client transact unix:db.sock \
 '["mydb",
  {"op": "insert",
   "table": "a",
   "row": {"number": 0, "name": "zero"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1605"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1611: ovsdb-client dump unix:db.sock"
at_fn_check_prepare_trace "ovsdb-server.at:1611"
( $at_check_trace; ovsdb-client dump unix:db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1611"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout > dump1
$as_echo "ovsdb-server.at:1613: waiting until  ovsdb-client dump unix:db2.sock | grep zero ..." >&5
ovs_wait_cond () {
     ovsdb-client dump unix:db2.sock | grep zero
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1613: wait failed" >&5

    $as_echo "ovsdb-server.at:1613" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1613"
fi

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1614: ovsdb-client dump unix:db2.sock"
at_fn_check_prepare_trace "ovsdb-server.at:1614"
( $at_check_trace; ovsdb-client dump unix:db2.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1614"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout > dump2

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1617: diff dump1 dump2"
at_fn_check_prepare_trace "ovsdb-server.at:1617"
( $at_check_trace; diff dump1 dump2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1617"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1618: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1618"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1618"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1618: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1618"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1618"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1618: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1618: wait failed" >&5

    $as_echo "ovsdb-server.at:1618" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1618"
fi

cp pid2 savepid2
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1619: ovs-appctl -t \"\`pwd\`\"/unixctl2 -e exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1619"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1619"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1619: waiting while kill -0 \`cat savepid2\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat savepid2`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1619: wait failed" >&5
    kill `cat savepid2`
    $as_echo "ovsdb-server.at:1619" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1619"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1953
#AT_START_1954
at_fn_group_banner 1954 'ovsdb-server.at:1623' \
  "ovsdb-server/disconnect-active-server" "          " 94
at_xfail=no
(
  $as_echo "1954. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


$as_echo "ovsdb-server.at:1625" >"$at_check_line_file"
(test $DIFF_SUPPORTS_NORMAL_FORMAT = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-server.at:1625"

replication_schema > schema
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1628: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1628"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1628"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1629: ovsdb-tool create db2 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1629"
( $at_check_trace; ovsdb-tool create db2 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1629"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1631: ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1"
at_fn_check_prepare_trace "ovsdb-server.at:1631"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile --remote=punix:db.sock db1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1631"
$at_failed && at_fn_log_failure
$at_traceon; }

on_exit 'test ! -e pid || kill `cat pid`'

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1634: ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2"
at_fn_check_prepare_trace "ovsdb-server.at:1634"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=pid2 --remote=punix:db2.sock --unixctl=unixctl2 --sync-from=unix:db.sock db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1634"
$at_failed && at_fn_log_failure
$at_traceon; }

on_exit 'test ! -e pid2 || kill `cat pid2`'

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1637: ovsdb-client transact unix:db.sock \\
'[\"mydb\",
  {\"op\": \"insert\",
   \"table\": \"a\",
   \"row\": {\"number\": 0, \"name\": \"zero\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1637"
( $at_check_trace; ovsdb-client transact unix:db.sock \
'["mydb",
  {"op": "insert",
   "table": "a",
   "row": {"number": 0, "name": "zero"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1637"
$at_failed && at_fn_log_failure
$at_traceon; }


$as_echo "ovsdb-server.at:1645: waiting until ovsdb-client dump unix:db2.sock | grep zero..." >&5
ovs_wait_cond () {
    ovsdb-client dump unix:db2.sock | grep zero
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1645: wait failed" >&5

    $as_echo "ovsdb-server.at:1645" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1645"
fi


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1648: ovsdb-client transact unix:db2.sock \\
'[\"mydb\",
  {\"op\": \"insert\",
   \"table\": \"b\",
   \"row\": {\"number\": 1, \"name\": \"one\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1648"
( $at_check_trace; ovsdb-client transact unix:db2.sock \
'["mydb",
  {"op": "insert",
   "table": "b",
   "row": {"number": 1, "name": "one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"details\":\"insert operation not allowed when database server is in read only mode\",\"error\":\"not allowed\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1648"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1656: ovs-appctl -t \"\`pwd\`\"/unixctl2 ovsdb-server/disconnect-active-ovsdb-server"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1656"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 ovsdb-server/disconnect-active-ovsdb-server
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1656"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1658: ovsdb-client transact unix:db.sock \\
'[\"mydb\",
  {\"op\": \"insert\",
   \"table\": \"b\",
   \"row\": {\"number\": 1, \"name\": \"one\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1658"
( $at_check_trace; ovsdb-client transact unix:db.sock \
'["mydb",
  {"op": "insert",
   "table": "b",
   "row": {"number": 1, "name": "one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1658"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1664: ovsdb-client dump unix:db.sock"
at_fn_check_prepare_trace "ovsdb-server.at:1664"
( $at_check_trace; ovsdb-client dump unix:db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1664"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout > dump1

sleep 1
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1668: ovsdb-client dump unix:db2.sock"
at_fn_check_prepare_trace "ovsdb-server.at:1668"
( $at_check_trace; ovsdb-client dump unix:db2.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1668"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout > dump2

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1671: diff dump1 dump2"
at_fn_check_prepare_trace "ovsdb-server.at:1671"
( $at_check_trace; diff dump1 dump2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-server.at:1671"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout > output

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1674: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1674"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "7,9c7,8
< _uuid                                name number
< ------------------------------------ ---- ------
< <0> one  1
---
> _uuid name number
> ----- ---- ------
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1674"
if $at_failed; then :
  test ! -e pid || kill `cat pid`; test ! -e pid2 || kill `cat pid2`
fi
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1684: ovsdb-client transact unix:db2.sock \\
'[\"mydb\",
  {\"op\": \"insert\",
   \"table\": \"b\",
   \"row\": {\"number\": 1, \"name\": \"one\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1684"
( $at_check_trace; ovsdb-client transact unix:db2.sock \
'["mydb",
  {"op": "insert",
   "table": "b",
   "row": {"number": 1, "name": "one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1684"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1690: ovsdb-client dump unix:db2.sock"
at_fn_check_prepare_trace "ovsdb-server.at:1690"
( $at_check_trace; ovsdb-client dump unix:db2.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1690"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout > output

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1693: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1693"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a table
_uuid                                name number
------------------------------------ ---- ------
<0> zero 0

b table
_uuid                                name number
------------------------------------ ---- ------
<1> one  1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1693"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1704: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1704"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1704"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1704: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1704"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1704"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1704: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1704: wait failed" >&5

    $as_echo "ovsdb-server.at:1704" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1704"
fi

cp pid2 savepid2
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1705: ovs-appctl -t \"\`pwd\`\"/unixctl2 -e exit"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1705"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1705"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1705: waiting while kill -0 \`cat savepid2\`..." >&5
ovs_wait_cond () {
    if kill -0 `cat savepid2`; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1705: wait failed" >&5
    kill `cat savepid2`
    $as_echo "ovsdb-server.at:1705" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1705"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1954
#AT_START_1955
at_fn_group_banner 1955 'ovsdb-server.at:1709' \
  "ovsdb-server/active-backup-role-switching" "      " 94
at_xfail=no
(
  $as_echo "1955. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


replication_schema > schema
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1712: ovsdb-tool create db1 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1712"
( $at_check_trace; ovsdb-tool create db1 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1712"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1713: ovsdb-tool create db2 schema"
at_fn_check_prepare_trace "ovsdb-server.at:1713"
( $at_check_trace; ovsdb-tool create db2 schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1713"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1716: ovsdb-tool transact db1 \\
'[\"mydb\",
  {\"op\": \"insert\",
   \"table\": \"a\",
   \"row\": {\"number\": 9, \"name\": \"nine\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1716"
( $at_check_trace; ovsdb-tool transact db1 \
'["mydb",
  {"op": "insert",
   "table": "a",
   "row": {"number": 9, "name": "nine"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1716"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1722: ovsdb-tool transact db2 \\
'[\"mydb\",
  {\"op\": \"insert\",
   \"table\": \"a\",
   \"row\": {\"number\": 9, \"name\": \"nine\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1722"
( $at_check_trace; ovsdb-tool transact db2 \
'["mydb",
  {"op": "insert",
   "table": "a",
   "row": {"number": 9, "name": "nine"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1722"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1732: ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile=\"\`pwd\`\"/pid --remote=punix:db.sock --unixctl=\"\`pwd\`\"/unixctl db1 --sync-from=unix:db2.sock --active "
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1732"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server1.log --pidfile="`pwd`"/pid --remote=punix:db.sock --unixctl="`pwd`"/unixctl db1 --sync-from=unix:db2.sock --active
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1732"
$at_failed && at_fn_log_failure
$at_traceon; }

on_exit 'test ! -e pid || kill `cat pid`'

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1735: ovs-appctl -t \"\`pwd\`\"/unixctl ovsdb-server/connect-active-ovsdb-server"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1735"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl ovsdb-server/connect-active-ovsdb-server
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1735"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1737: ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile=\"\`pwd\`\"/pid2 --remote=punix:db2.sock --unixctl=\"\`pwd\`\"/unixctl2 --sync-from=unix:db.sock db2"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1737"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server2.log --pidfile="`pwd`"/pid2 --remote=punix:db2.sock --unixctl="`pwd`"/unixctl2 --sync-from=unix:db.sock db2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1737"
$at_failed && at_fn_log_failure
$at_traceon; }

on_exit 'test ! -e pid2 || kill `cat pid2`'

$as_echo "ovsdb-server.at:1742: waiting until ovs-appctl -t \"\`pwd\`\"/unixctl ovsdb-server/sync-status |grep replicating..." >&5
ovs_wait_cond () {
    ovs-appctl -t "`pwd`"/unixctl ovsdb-server/sync-status |grep replicating
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1742: wait failed" >&5

    $as_echo "ovsdb-server.at:1742" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1742"
fi

$as_echo "ovsdb-server.at:1743: waiting until ovs-appctl -t \"\`pwd\`\"/unixctl2 ovsdb-server/sync-status |grep replicating..." >&5
ovs_wait_cond () {
    ovs-appctl -t "`pwd`"/unixctl2 ovsdb-server/sync-status |grep replicating
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1743: wait failed" >&5

    $as_echo "ovsdb-server.at:1743" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1743"
fi


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1746: ovs-appctl -t \"\`pwd\`\"/unixctl ovsdb-server/disconnect-active-ovsdb-server"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1746"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl ovsdb-server/disconnect-active-ovsdb-server
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1746"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1747: ovs-appctl -t \"\`pwd\`\"/unixctl ovsdb-server/sync-status"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1747"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl ovsdb-server/sync-status
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "state: active
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1747"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1751: ovsdb-client transact unix:db.sock \\
'[\"mydb\",
  {\"op\": \"insert\",
   \"table\": \"a\",
   \"row\": {\"number\": 0, \"name\": \"zero\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1751"
( $at_check_trace; ovsdb-client transact unix:db.sock \
'["mydb",
  {"op": "insert",
   "table": "a",
   "row": {"number": 0, "name": "zero"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1751"
$at_failed && at_fn_log_failure
$at_traceon; }


$as_echo "ovsdb-server.at:1758: waiting until ovsdb-client dump unix:db2.sock | grep zero..." >&5
ovs_wait_cond () {
    ovsdb-client dump unix:db2.sock | grep zero
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1758: wait failed" >&5

    $as_echo "ovsdb-server.at:1758" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1758"
fi


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1761: ovs-appctl -t \"\`pwd\`\"/unixctl2 ovsdb-server/disconnect-active-ovsdb-server"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1761"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 ovsdb-server/disconnect-active-ovsdb-server
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1761"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1762: ovs-appctl -t \"\`pwd\`\"/unixctl ovsdb-server/connect-active-ovsdb-server"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1762"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl ovsdb-server/connect-active-ovsdb-server
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1762"
$at_failed && at_fn_log_failure
$at_traceon; }


$as_echo "ovsdb-server.at:1765: waiting until ovs-appctl -t \"\`pwd\`\"/unixctl ovsdb-server/sync-status |grep replicating..." >&5
ovs_wait_cond () {
    ovs-appctl -t "`pwd`"/unixctl ovsdb-server/sync-status |grep replicating
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1765: wait failed" >&5

    $as_echo "ovsdb-server.at:1765" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1765"
fi

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1766: ovs-appctl -t \"\`pwd\`\"/unixctl2 ovsdb-server/sync-status"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1766"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl2 ovsdb-server/sync-status
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "state: active
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1766"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1770: ovsdb-client transact unix:db2.sock \\
'[\"mydb\",
  {\"op\": \"insert\",
   \"table\": \"b\",
   \"row\": {\"number\": 1, \"name\": \"one\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1770"
( $at_check_trace; ovsdb-client transact unix:db2.sock \
'["mydb",
  {"op": "insert",
   "table": "b",
   "row": {"number": 1, "name": "one"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1770"
$at_failed && at_fn_log_failure
$at_traceon; }


$as_echo "ovsdb-server.at:1777: waiting until ovsdb-client dump unix:db.sock | grep one..." >&5
ovs_wait_cond () {
    ovsdb-client dump unix:db.sock | grep one
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1777: wait failed" >&5

    $as_echo "ovsdb-server.at:1777" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1777"
fi


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1780: ovsdb-client dump unix:db.sock"
at_fn_check_prepare_trace "ovsdb-server.at:1780"
( $at_check_trace; ovsdb-client dump unix:db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1780"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout > dump1

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1783: ovsdb-client dump unix:db2.sock"
at_fn_check_prepare_trace "ovsdb-server.at:1783"
( $at_check_trace; ovsdb-client dump unix:db2.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1783"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout > dump2

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1786: diff dump1 dump2"
at_fn_check_prepare_trace "ovsdb-server.at:1786"
( $at_check_trace; diff dump1 dump2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1786"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1955
#AT_START_1956
at_fn_group_banner 1956 'ovsdb-server.at:1793' \
  "ovsdb-server prevent self replicating" "          " 94
at_xfail=no
(
  $as_echo "1956. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


replication_schema > schema
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1796: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1796"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1796"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1799: ovsdb-tool transact db \\
'[\"mydb\",
  {\"op\": \"insert\",
   \"table\": \"a\",
   \"row\": {\"number\": 9, \"name\": \"nine\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1799"
( $at_check_trace; ovsdb-tool transact db \
'["mydb",
  {"op": "insert",
   "table": "a",
   "row": {"number": 9, "name": "nine"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1799"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1806: ovsdb-server --detach --no-chdir --log-file=ovsdb-server.log --pidfile=\"\`pwd\`\"/pid --remote=punix:db.sock --unixctl=\"\`pwd\`\"/unixctl db --sync-from=unix:db.sock --active "
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1806"
( $at_check_trace; ovsdb-server --detach --no-chdir --log-file=ovsdb-server.log --pidfile="`pwd`"/pid --remote=punix:db.sock --unixctl="`pwd`"/unixctl db --sync-from=unix:db.sock --active
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1806"
$at_failed && at_fn_log_failure
$at_traceon; }

on_exit 'test ! -e pid || kill `cat pid`'

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1810: ovsdb-client dump unix:db.sock"
at_fn_check_prepare_trace "ovsdb-server.at:1810"
( $at_check_trace; ovsdb-client dump unix:db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1810"
$at_failed && at_fn_log_failure
$at_traceon; }

cp stdout dump1

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1813: ovs-appctl -t \"\`pwd\`\"/unixctl ovsdb-server/connect-active-ovsdb-server"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-server.at:1813"
( $at_check_trace; ovs-appctl -t "`pwd`"/unixctl ovsdb-server/connect-active-ovsdb-server
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1813"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1815: grep \"Self replicating is not allowed\" ovsdb-server.log"
at_fn_check_prepare_trace "ovsdb-server.at:1815"
( $at_check_trace; grep "Self replicating is not allowed" ovsdb-server.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1815"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1818: ovsdb-client dump unix:db.sock"
at_fn_check_prepare_trace "ovsdb-server.at:1818"
( $at_check_trace; ovsdb-client dump unix:db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1818"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout > dump2

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1821: diff dump1 dump2"
at_fn_check_prepare_trace "ovsdb-server.at:1821"
( $at_check_trace; diff dump1 dump2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1821"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1956
#AT_START_1957
at_fn_group_banner 1957 'ovsdb-server.at:1824' \
  "ovsdb-server/read-only db:ptcp connection" "      " 94
at_xfail=no
(
  $as_echo "1957. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >schema <<'_ATEOF'
{"name": "mydb",
     "tables": {
       "Root": {
         "columns": {
           "managers": {
             "type": {
               "key": {"type": "uuid", "refTable": "Manager"},
               "min": 0,
               "max": "unlimited"}}}},
       "Manager": {
         "columns": {
           "target": {
             "type": "string"},
           "read_only": {
             "type": {
               "key": "boolean",
               "min": 0,
               "max": 1}},
           "is_connected": {
             "type": {
               "key": "boolean",
               "min": 0,
               "max": 1}}}},
       "ordinals": {
         "columns": {
           "number": {"type": "integer"},
           "name": {"type": "string"}},
         "indexes": [["number"]]}
    },
     "version": "5.1.3",
     "cksum": "12345678 9"
}
_ATEOF

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1860: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-server.at:1860"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1860"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1861: ovsdb-tool transact db \\
     '[\"mydb\",
       {\"op\": \"insert\",
        \"table\": \"Root\",
        \"row\": {
          \"managers\": [\"set\", [[\"named-uuid\", \"x\"]]]}},
       {\"op\": \"insert\",
        \"table\": \"Manager\",
        \"uuid-name\": \"x\",
        \"row\": {\"target\": \"ptcp:0:127.0.0.1\",
               \"read_only\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1861"
( $at_check_trace; ovsdb-tool transact db \
     '["mydb",
       {"op": "insert",
        "table": "Root",
        "row": {
          "managers": ["set", [["named-uuid", "x"]]]}},
       {"op": "insert",
        "table": "Manager",
        "uuid-name": "x",
        "row": {"target": "ptcp:0:127.0.0.1",
               "read_only": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1861"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1874: ovsdb-server --log-file --detach --no-chdir --pidfile --remote=db:mydb,Root,managers db"
at_fn_check_prepare_trace "ovsdb-server.at:1874"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --remote=db:mydb,Root,managers db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1874"
$at_failed && at_fn_log_failure
$at_traceon; }

$as_echo "ovsdb-server.at:1875: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1875: wait failed" >&5

    $as_echo "ovsdb-server.at:1875" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1875"
fi

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1876: ovsdb-client get-schema-version tcp:127.0.0.1:\$TCP_PORT mydb"
at_fn_check_prepare_dynamic "ovsdb-client get-schema-version tcp:127.0.0.1:$TCP_PORT mydb" "ovsdb-server.at:1876"
( $at_check_trace; ovsdb-client get-schema-version tcp:127.0.0.1:$TCP_PORT mydb
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "5.1.3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1876"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1879: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT \\
        '[\"mydb\",
         {\"op\": \"insert\",
          \"table\": \"ordinals\",
          \"row\": {\"name\": \"two\", \"number\": '2'}}
         ]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-server.at:1879"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT \
        '["mydb",
         {"op": "insert",
          "table": "ordinals",
          "row": {"name": "two", "number": '2'}}
         ]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1879"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1886: uuidfilt output"
at_fn_check_prepare_trace "ovsdb-server.at:1886"
( $at_check_trace; uuidfilt output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"details\":\"insert operation not allowed when database server is in read only mode\",\"error\":\"not allowed\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1886"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-server.at:1888: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-server.at:1888"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1888"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-server.at:1888: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-server.at:1888"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-server.at:1888"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-server.at:1888: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-server.at:1888: wait failed" >&5

    $as_echo "ovsdb-server.at:1888" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-server.at:1888"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1957
#AT_START_1958
at_fn_group_banner 1958 'ovsdb-client.at:3' \
  "ovsdb-client get-schema-version and get-schema-cksum" "" 95
at_xfail=no
(
  $as_echo "1958. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ordinal_schema > schema
{ set +x
$as_echo "$at_srcdir/ovsdb-client.at:6: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-client.at:6"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-client.at:6"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-client.at:7: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db"
at_fn_check_prepare_trace "ovsdb-client.at:7"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-client.at:7"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-client.at:8: ovsdb-client get-schema-version unix:socket ordinals"
at_fn_check_prepare_trace "ovsdb-client.at:8"
( $at_check_trace; ovsdb-client get-schema-version unix:socket ordinals
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "5.1.3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-client.at:8"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-client.at:10: ovsdb-client get-schema-cksum unix:socket ordinals"
at_fn_check_prepare_trace "ovsdb-client.at:10"
( $at_check_trace; ovsdb-client get-schema-cksum unix:socket ordinals
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "12345678 9
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-client.at:10"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-client.at:12: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-client.at:12"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-client.at:12"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-client.at:12: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-client.at:12"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-client.at:12"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-client.at:12: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-client.at:12: wait failed" >&5

    $as_echo "ovsdb-client.at:12" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-client.at:12"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1958
#AT_START_1959
at_fn_group_banner 1959 'ovsdb-client.at:15' \
  "ovsdb-client backup and restore" "                " 95
at_xfail=no
(
  $as_echo "1959. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



on_exit 'kill `cat *.pid`'

ordinal_schema > schema
touch .db.~lock~
{ set +x
$as_echo "$at_srcdir/ovsdb-client.at:23: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-client.at:23"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-client.at:23"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-client.at:26: for pair in 'zero 0' 'one 1' 'two 2' 'three 3' 'four 4' 'five 5'; do
      set -- \$pair
      ovsdb-tool transact db '
        [\"ordinals\",
         {\"op\": \"insert\",
          \"table\": \"ordinals\",
          \"row\": {\"name\": \"'\$1'\", \"number\": '\$2'}},
         {\"op\": \"comment\",
          \"comment\": \"add row for '\"\$pair\"'\"}]'
    done | uuidfilt"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-client.at:26"
( $at_check_trace; for pair in 'zero 0' 'one 1' 'two 2' 'three 3' 'four 4' 'five 5'; do
      set -- $pair
      ovsdb-tool transact db '
        ["ordinals",
         {"op": "insert",
          "table": "ordinals",
          "row": {"name": "'$1'", "number": '$2'}},
         {"op": "comment",
          "comment": "add row for '"$pair"'"}]'
    done | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{}]
[{\"uuid\":[\"uuid\",\"<1>\"]},{}]
[{\"uuid\":[\"uuid\",\"<2>\"]},{}]
[{\"uuid\":[\"uuid\",\"<3>\"]},{}]
[{\"uuid\":[\"uuid\",\"<4>\"]},{}]
[{\"uuid\":[\"uuid\",\"<5>\"]},{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-client.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-client.at:46: ovsdb-server -vfile -vvlog:off --detach --no-chdir --pidfile --log-file --remote=punix:db.sock db"
at_fn_check_prepare_trace "ovsdb-client.at:46"
( $at_check_trace; ovsdb-server -vfile -vvlog:off --detach --no-chdir --pidfile --log-file --remote=punix:db.sock db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-client.at:46"
$at_failed && at_fn_log_failure
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ovsdb-client.at:50: ovsdb-client dump > dump1"
at_fn_check_prepare_trace "ovsdb-client.at:50"
( $at_check_trace; ovsdb-client dump > dump1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-client.at:50"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-client.at:51: ovsdb-client backup > backup"
at_fn_check_prepare_trace "ovsdb-client.at:51"
( $at_check_trace; ovsdb-client backup > backup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-client.at:51"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-client.at:55: ovsdb-client transact '
      [\"ordinals\",
       {\"op\": \"update\",
        \"table\": \"ordinals\",
	\"where\": [],
	\"row\": {\"name\": \"\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-client.at:55"
( $at_check_trace; ovsdb-client transact '
      ["ordinals",
       {"op": "update",
        "table": "ordinals",
	"where": [],
	"row": {"name": ""}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[{\"count\":6}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-client.at:55"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-client.at:65: ovsdb-client --no-headings dump ordinals | sort -k 3 | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-client.at:65"
( $at_check_trace; ovsdb-client --no-headings dump ordinals | sort -k 3 | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ordinals table
<0> \"\" 0
<1> \"\" 1
<2> \"\" 2
<3> \"\" 3
<4> \"\" 4
<5> \"\" 5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-client.at:65"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-client.at:74: ovsdb-client restore < backup"
at_fn_check_prepare_trace "ovsdb-client.at:74"
( $at_check_trace; ovsdb-client restore < backup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-client.at:74"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-client.at:75: ovsdb-client dump | tr -s ' ' | sort -k 3 | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-client.at:75"
( $at_check_trace; ovsdb-client dump | tr -s ' ' | sort -k 3 | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ordinals table
------------------------------------ ----- ------
<0> zero 0
<1> one 1
<2> two 2
<3> three 3
<4> four 4
<5> five 5
_uuid name number
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-client.at:75"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

# Combining the original dump and the backup dump should reveal that the
# rows have different uuids:
{ set +x
$as_echo "$at_srcdir/ovsdb-client.at:88: (ovsdb-client dump; cat dump1) | tr -s ' ' | sort -k 3 | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-client.at:88"
( $at_check_trace; (ovsdb-client dump; cat dump1) | tr -s ' ' | sort -k 3 | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ordinals table
ordinals table
------------------------------------ ----- ------
------------------------------------ ----- ------
<0> zero 0
<1> zero 0
<2> one 1
<3> one 1
<4> two 2
<5> two 2
<6> three 3
<7> three 3
<8> four 4
<9> four 4
<10> five 5
<11> five 5
_uuid name number
_uuid name number
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-client.at:88"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-client.at:110: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovsdb-client.at:110"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-client.at:110"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-client.at:110: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-client.at:110"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-client.at:110"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   $as_echo "ovsdb-client.at:110: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-client.at:110: wait failed" >&5

    $as_echo "ovsdb-client.at:110" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-client.at:110"
fi

{ set +x
$as_echo "$at_srcdir/ovsdb-client.at:111: ovsdb-server -vfile -vvlog:off --detach --no-chdir --pidfile --log-file --remote=punix:db.sock backup"
at_fn_check_prepare_trace "ovsdb-client.at:111"
( $at_check_trace; ovsdb-server -vfile -vvlog:off --detach --no-chdir --pidfile --log-file --remote=punix:db.sock backup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-client.at:111"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-client.at:114: ovsdb-client dump > dump2"
at_fn_check_prepare_trace "ovsdb-client.at:114"
( $at_check_trace; ovsdb-client dump > dump2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-client.at:114"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

sort dump2 > expout

{ set +x
$as_echo "$at_srcdir/ovsdb-client.at:118: sort dump1"
at_fn_check_prepare_trace "ovsdb-client.at:118"
( $at_check_trace; sort dump1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-client.at:118"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1959
#AT_START_1960
at_fn_group_banner 1960 'ovsdb-client.at:122' \
  "ovsdb-client query" "                             " 95
at_xfail=no
(
  $as_echo "1960. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



on_exit 'kill `cat *.pid`'

ordinal_schema > schema
touch .db.~lock~
{ set +x
$as_echo "$at_srcdir/ovsdb-client.at:130: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-client.at:130"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-client.at:130"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-client.at:133: ovsdb-server -vfile -vvlog:off --detach --no-chdir --pidfile --log-file --remote=punix:db.sock db"
at_fn_check_prepare_trace "ovsdb-client.at:133"
( $at_check_trace; ovsdb-server -vfile -vvlog:off --detach --no-chdir --pidfile --log-file --remote=punix:db.sock db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-client.at:133"
$at_failed && at_fn_log_failure
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ovsdb-client.at:138: for txn in 'transact zero 0' \\
               'query one 1' \\
	       'transact two 2' \\
	       'query three 3' \\
	       'transact four 4' \\
	       'query five 5'
    do
      set -- \$txn
      ovsdb-client \$1 '
        [\"ordinals\",
         {\"op\": \"insert\",
          \"table\": \"ordinals\",
          \"row\": {\"name\": \"'\$2'\", \"number\": '\$3'}},
         {\"op\": \"comment\",
          \"comment\": \"add row for '\"\$pair\"'\"}]'
    done | uuidfilt"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-client.at:138"
( $at_check_trace; for txn in 'transact zero 0' \
               'query one 1' \
	       'transact two 2' \
	       'query three 3' \
	       'transact four 4' \
	       'query five 5'
    do
      set -- $txn
      ovsdb-client $1 '
        ["ordinals",
         {"op": "insert",
          "table": "ordinals",
          "row": {"name": "'$2'", "number": '$3'}},
         {"op": "comment",
          "comment": "add row for '"$pair"'"}]'
    done | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]},{}]
[{\"uuid\":[\"uuid\",\"<1>\"]},{}]
[{\"uuid\":[\"uuid\",\"<2>\"]},{}]
[{\"uuid\":[\"uuid\",\"<3>\"]},{}]
[{\"uuid\":[\"uuid\",\"<4>\"]},{}]
[{\"uuid\":[\"uuid\",\"<5>\"]},{}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-client.at:138"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-client.at:163: ovsdb-client -f csv dump | sort -t, -k 3 | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-client.at:163"
( $at_check_trace; ovsdb-client -f csv dump | sort -t, -k 3 | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ordinals table
<0>,zero,0
<1>,two,2
<2>,four,4
_uuid,name,number
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-client.at:163"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-client.at:171: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovsdb-client.at:171"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-client.at:171"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-client.at:171: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-client.at:171"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-client.at:171"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   $as_echo "ovsdb-client.at:171: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-client.at:171: wait failed" >&5

    $as_echo "ovsdb-client.at:171" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-client.at:171"
fi


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1960
#AT_START_1961
at_fn_group_banner 1961 'ovsdb-monitor.at:111' \
  "monitor insert into empty table" "                " 96
at_xfail=no
(
  $as_echo "1961. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init







   ovsdb_check_monitor 'ordinal_schema' 'ordinals' 'ordinals' 'row,action,name,number,_version
<0>,insert,"""zero""",0,"[""uuid"",""<1>""]"
' '' \
      -- \
     '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1961
#AT_START_1962
at_fn_group_banner 1962 'ovsdb-monitor.at:123' \
  "monitor insert into populated table" "            " 96
at_xfail=no
(
  $as_echo "1962. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init







   ovsdb_check_monitor 'ordinal_schema' 'ordinals' 'ordinals' 'row,action,name,number,_version
<0>,initial,"""ten""",10,"[""uuid"",""<1>""]"

row,action,name,number,_version
<2>,insert,"""zero""",0,"[""uuid"",""<3>""]"
' '' \
     '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 10, "name": "ten"}}]'  -- \
     '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1962
#AT_START_1963
at_fn_group_banner 1963 'ovsdb-monitor.at:141' \
  "monitor delete" "                                 " 96
at_xfail=no
(
  $as_echo "1963. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init







   ovsdb_check_monitor 'ordinal_schema' 'ordinals' 'ordinals' 'row,action,name,number,_version
<0>,initial,"""ten""",10,"[""uuid"",""<1>""]"

row,action,name,number,_version
<0>,delete,"""ten""",10,"[""uuid"",""<1>""]"
' '' \
     '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 10, "name": "ten"}}]'  -- \
     '["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": [["number", "==", 10]]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1963
#AT_START_1964
at_fn_group_banner 1964 'ovsdb-monitor.at:159' \
  "monitor row update" "                             " 96
at_xfail=no
(
  $as_echo "1964. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init







   ovsdb_check_monitor 'ordinal_schema' 'ordinals' 'ordinals' 'row,action,name,number,_version
<0>,initial,"""ten""",10,"[""uuid"",""<1>""]"

row,action,name,number,_version
<0>,old,"""ten""",,"[""uuid"",""<1>""]"
,new,"""five plus five""",10,"[""uuid"",""<2>""]"
' '' \
     '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 10, "name": "ten"}}]'  -- \
     '["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [["number", "==", 10]],
       "row": {"name": "five plus five"}}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1964
#AT_START_1965
at_fn_group_banner 1965 'ovsdb-monitor.at:179' \
  "monitor no-op row updates" "                      " 96
at_xfail=no
(
  $as_echo "1965. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init







   ovsdb_check_monitor 'ordinal_schema' 'ordinals' 'ordinals' 'row,action,name,number,_version
<0>,initial,"""ten""",10,"[""uuid"",""<1>""]"

row,action,name,number,_version
<2>,insert,"""nine""",9,"[""uuid"",""<3>""]"
' '' \
     '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 10, "name": "ten"}}]'  -- \
     '["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [["number", "==", 10]],
       "row": {"number": 10, "name": "ten"}}]' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 9, "name": "nine"}}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1965
#AT_START_1966
at_fn_group_banner 1966 'ovsdb-monitor.at:202' \
  "monitor insert-and-update transaction" "          " 96
at_xfail=no
(
  $as_echo "1966. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init







   ovsdb_check_monitor 'ordinal_schema' 'ordinals' 'ordinals' 'row,action,name,number,_version
<0>,initial,"""ten""",10,"[""uuid"",""<1>""]"

row,action,name,number,_version
<2>,insert,"""three squared""",9,"[""uuid"",""<3>""]"
' '' \
     '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 10, "name": "ten"}}]'  -- \
     '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 9, "name": "nine"},
       "uuid-name": "nine"},
      {"op": "update",
       "table": "ordinals",
       "where": [["_uuid", "==", ["named-uuid", "nine"]]],
       "row": {"name": "three squared"}}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1966
#AT_START_1967
at_fn_group_banner 1967 'ovsdb-monitor.at:225' \
  "monitor insert-update-and-delete transaction" "   " 96
at_xfail=no
(
  $as_echo "1967. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init







   ovsdb_check_monitor 'ordinal_schema' 'ordinals' 'ordinals' 'row,action,name,number,_version
<0>,initial,"""ten""",10,"[""uuid"",""<1>""]"

row,action,name,number,_version
<2>,insert,"""seven""",7,"[""uuid"",""<3>""]"
' '' \
     '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 10, "name": "ten"}}]'  -- \
     '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 9, "name": "nine"},
       "uuid-name": "nine"},
      {"op": "update",
       "table": "ordinals",
       "where": [["_uuid", "==", ["named-uuid", "nine"]]],
       "row": {"name": "three squared"}},
      {"op": "delete",
       "table": "ordinals",
       "where": [["_uuid", "==", ["named-uuid", "nine"]]]},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 7, "name": "seven"}}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1967
#AT_START_1968
at_fn_group_banner 1968 'ovsdb-monitor.at:254' \
  "monitor weak reference change" "                  " 96
at_xfail=no
(
  $as_echo "1968. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init







   ovsdb_check_monitor 'weak_schema' 'weak' 'a' 'row,action,a,a2a,a2a1,a2b,_version
<0>,initial,0,"[""set"",[]]","[""uuid"",""<0>""]","[""uuid"",""<1>""]","[""uuid"",""<2>""]"
<3>,initial,1,"[""uuid"",""<0>""]","[""uuid"",""<3>""]","[""uuid"",""<1>""]","[""uuid"",""<4>""]"

row,action,a,a2a,a2a1,a2b,_version
<0>,delete,0,"[""set"",[]]","[""uuid"",""<0>""]","[""uuid"",""<1>""]","[""uuid"",""<2>""]"
<3>,old,,"[""uuid"",""<0>""]",,,"[""uuid"",""<4>""]"
,new,1,"[""set"",[]]","[""uuid"",""<3>""]","[""uuid"",""<1>""]","[""uuid"",""<5>""]"
' '' \
     '["weak",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0,
               "a2a1": ["named-uuid", "a0"],
               "a2b": ["named-uuid", "b2"]},
       "uuid-name": "a0"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 1,
               "a2a": ["named-uuid", "a0"],
               "a2a1": ["named-uuid", "a1"],
               "a2b": ["named-uuid", "b2"]},
       "uuid-name": "a1"},
      {"op": "insert",
       "table": "b",
       "row": {"b": 2},
       "uuid-name": "b2"}]'  -- \
     '["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1968
#AT_START_1969
at_fn_group_banner 1969 'ovsdb-monitor.at:289' \
  "monitor insert-update-and-delete transaction" "   " 96
at_xfail=no
(
  $as_echo "1969. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init







   ovsdb_check_monitor 'ordinal_schema' 'ordinals' 'ordinals' 'row,action,name,number,_version
<0>,initial,"""ten""",10,"[""uuid"",""<1>""]"

row,action,name,number,_version
<2>,insert,"""seven""",7,"[""uuid"",""<3>""]"
' '' \
     '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 10, "name": "ten"}}]'  -- \
     '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 9, "name": "nine"},
       "uuid-name": "nine"},
      {"op": "update",
       "table": "ordinals",
       "where": [["_uuid", "==", ["named-uuid", "nine"]]],
       "row": {"name": "three squared"}},
      {"op": "delete",
       "table": "ordinals",
       "where": [["_uuid", "==", ["named-uuid", "nine"]]]},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 7, "name": "seven"}}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1969
#AT_START_1970
at_fn_group_banner 1970 'ovsdb-monitor.at:340' \
  "monitor all operations" "                         " 97
at_xfail=no
(
  $as_echo "1970. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init







   ovsdb_check_monitor 'ordinal_schema' 'ordinals' 'ordinals' 'row,action,name,number,_version
<0>,initial,"""ten""",10,"[""uuid"",""<1>""]"

row,action,name,number,_version
<2>,insert,"""five""",5,"[""uuid"",""<3>""]"

row,action,name,number,_version
<2>,old,"""five""",,"[""uuid"",""<3>""]"
,new,"""FIVE""",5,"[""uuid"",""<4>""]"

row,action,name,number,_version
<2>,delete,"""FIVE""",5,"[""uuid"",""<4>""]"
<0>,delete,"""ten""",10,"[""uuid"",""<1>""]"
' '' \
     '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 10, "name": "ten"}}]'  -- \
     '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 5, "name": "five"}}]' '["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [["name", "==", "five"]],
       "row": {"name": "FIVE"}}]' '["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": []}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1970
#AT_START_1971
at_fn_group_banner 1971 'ovsdb-monitor.at:360' \
  "monitor initial only" "                           " 97
at_xfail=no
(
  $as_echo "1971. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init







   ovsdb_check_monitor 'ordinal_schema' 'ordinals' 'ordinals' 'row,action,name,number,_version
<0>,initial,"""ten""",10,"[""uuid"",""<1>""]"
' '!insert,!delete,!modify' \
     '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 10, "name": "ten"}}]'  -- \
     '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 5, "name": "five"}}]' '["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [["name", "==", "five"]],
       "row": {"name": "FIVE"}}]' '["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": []}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1971
#AT_START_1972
at_fn_group_banner 1972 'ovsdb-monitor.at:367' \
  "monitor insert only" "                            " 97
at_xfail=no
(
  $as_echo "1972. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init







   ovsdb_check_monitor 'ordinal_schema' 'ordinals' 'ordinals' 'row,action,name,number,_version
<0>,insert,"""five""",5,"[""uuid"",""<1>""]"
' '!initial,!delete,!modify' \
     '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 10, "name": "ten"}}]'  -- \
     '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 5, "name": "five"}}]' '["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [["name", "==", "five"]],
       "row": {"name": "FIVE"}}]' '["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": []}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1972
#AT_START_1973
at_fn_group_banner 1973 'ovsdb-monitor.at:374' \
  "monitor delete only" "                            " 97
at_xfail=no
(
  $as_echo "1973. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init







   ovsdb_check_monitor 'ordinal_schema' 'ordinals' 'ordinals' 'row,action,name,number,_version
<0>,delete,"""FIVE""",5,"[""uuid"",""<1>""]"
<2>,delete,"""ten""",10,"[""uuid"",""<3>""]"
' '!initial,!insert,!modify' \
     '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 10, "name": "ten"}}]'  -- \
     '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 5, "name": "five"}}]' '["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [["name", "==", "five"]],
       "row": {"name": "FIVE"}}]' '["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": []}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1973
#AT_START_1974
at_fn_group_banner 1974 'ovsdb-monitor.at:382' \
  "monitor modify only" "                            " 97
at_xfail=no
(
  $as_echo "1974. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init







   ovsdb_check_monitor 'ordinal_schema' 'ordinals' 'ordinals' 'row,action,name,number,_version
<0>,old,"""five""",,"[""uuid"",""<1>""]"
,new,"""FIVE""",5,"[""uuid"",""<2>""]"
' '!initial,!insert,!delete' \
     '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 10, "name": "ten"}}]'  -- \
     '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 5, "name": "five"}}]' '["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [["name", "==", "five"]],
       "row": {"name": "FIVE"}}]' '["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": []}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1974
#AT_START_1975
at_fn_group_banner 1975 'ovsdb-monitor.at:392' \
  "monitor-cond empty condition" "                   " 98
at_xfail=no
(
  $as_echo "1975. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:392: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-monitor.at:392"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:392"
$at_failed && at_fn_log_failure
$at_traceon; }

   for txn in '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 2, "name": "two"}}]' ; do
     { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:392: ovsdb-tool transact db \"\$txn\""
at_fn_check_prepare_dynamic "ovsdb-tool transact db \"$txn\"" "ovsdb-monitor.at:392"
( $at_check_trace; ovsdb-tool transact db "$txn"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:392"
$at_failed && at_fn_log_failure
$at_traceon; }

   done

   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:392: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket --log-file=\"\`pwd\`\"/ovsdb-server-log db >/dev/null 2>&1"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-monitor.at:392"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket --log-file="`pwd`"/ovsdb-server-log db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:392"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:392: ovsdb-client -vjsonrpc --pidfile --detach --no-chdir -d json monitor-cond --format=csv unix:socket ordinals '[]' ordinals  > output"
at_fn_check_prepare_trace "ovsdb-monitor.at:392"
( $at_check_trace; ovsdb-client -vjsonrpc --pidfile --detach --no-chdir -d json monitor-cond --format=csv unix:socket ordinals '[]' ordinals  > output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:392"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   on_exit 'kill `cat ovsdb-client.pid`'
   for txn in '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 10, "name": "ten"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 11, "name": "eleven"}}]' ; do
     { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:392: ovsdb-client transact unix:socket \"\$txn\""
at_fn_check_prepare_dynamic "ovsdb-client transact unix:socket \"$txn\"" "ovsdb-monitor.at:392"
( $at_check_trace; ovsdb-client transact unix:socket "$txn"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:392"
if $at_failed; then :
  kill `cat server-pid client-pid`
fi
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   done
   for cond in ; do
     { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:392: ovs-appctl -t ovsdb-client ovsdb-client/cond_change ordinals \"\$cond\""
at_fn_check_prepare_dynamic "ovs-appctl -t ovsdb-client ovsdb-client/cond_change ordinals \"$cond\"" "ovsdb-monitor.at:392"
( $at_check_trace; ovs-appctl -t ovsdb-client ovsdb-client/cond_change ordinals "$cond"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:392"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   done
   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:392: ovsdb-client transact unix:socket '[\"ordinals\"]'"
at_fn_check_prepare_trace "ovsdb-monitor.at:392"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:392"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:392: ovs-appctl -t ovsdb-server -e exit"
at_fn_check_prepare_trace "ovsdb-monitor.at:392"
( $at_check_trace; ovs-appctl -t ovsdb-server -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:392"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   $as_echo "ovsdb-monitor.at:392: waiting until test ! -e ovsdb-server.pid && test ! -e ovsdb-client.pid..." >&5
ovs_wait_cond () {
    test ! -e ovsdb-server.pid && test ! -e ovsdb-client.pid
}
if ovs_wait; then :
else
    $as_echo "ovsdb-monitor.at:392: wait failed" >&5

    $as_echo "ovsdb-monitor.at:392" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-monitor.at:392"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:392: \$PYTHON \$srcdir/ovsdb-monitor-sort.py < output | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-monitor.at:392"
( $at_check_trace; $PYTHON $srcdir/ovsdb-monitor-sort.py < output | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "row,action,name,number,_version
<0>,initial,\"\"\"one\"\"\",1,\"[\"\"uuid\"\",\"\"<1>\"\"]\"
<2>,initial,\"\"\"two\"\"\",2,\"[\"\"uuid\"\",\"\"<3>\"\"]\"
<4>,initial,\"\"\"zero\"\"\",,\"[\"\"uuid\"\",\"\"<5>\"\"]\"

row,action,name,number,_version
<6>,insert,\"\"\"eleven\"\"\",11,\"[\"\"uuid\"\",\"\"<7>\"\"]\"
<8>,insert,\"\"\"ten\"\"\",10,\"[\"\"uuid\"\",\"\"<9>\"\"]\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:392"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1975
#AT_START_1976
at_fn_group_banner 1976 'ovsdb-monitor.at:423' \
  "monitor-cond multiple conditions" "               " 98
at_xfail=no
(
  $as_echo "1976. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:423: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-monitor.at:423"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:423"
$at_failed && at_fn_log_failure
$at_traceon; }

   for txn in '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 2, "name": "two"}}]' ; do
     { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:423: ovsdb-tool transact db \"\$txn\""
at_fn_check_prepare_dynamic "ovsdb-tool transact db \"$txn\"" "ovsdb-monitor.at:423"
( $at_check_trace; ovsdb-tool transact db "$txn"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:423"
$at_failed && at_fn_log_failure
$at_traceon; }

   done

   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:423: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket --log-file=\"\`pwd\`\"/ovsdb-server-log db >/dev/null 2>&1"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-monitor.at:423"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket --log-file="`pwd`"/ovsdb-server-log db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:423"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:423: ovsdb-client -vjsonrpc --pidfile --detach --no-chdir -d json monitor-cond --format=csv unix:socket ordinals '[[\"name\",\"==\",\"one\"],[\"name\",\"==\",\"ten\"]]' ordinals  > output"
at_fn_check_prepare_trace "ovsdb-monitor.at:423"
( $at_check_trace; ovsdb-client -vjsonrpc --pidfile --detach --no-chdir -d json monitor-cond --format=csv unix:socket ordinals '[["name","==","one"],["name","==","ten"]]' ordinals  > output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:423"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   on_exit 'kill `cat ovsdb-client.pid`'
   for txn in '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 10, "name": "ten"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 11, "name": "eleven"}}]' ; do
     { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:423: ovsdb-client transact unix:socket \"\$txn\""
at_fn_check_prepare_dynamic "ovsdb-client transact unix:socket \"$txn\"" "ovsdb-monitor.at:423"
( $at_check_trace; ovsdb-client transact unix:socket "$txn"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:423"
if $at_failed; then :
  kill `cat server-pid client-pid`
fi
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   done
   for cond in ; do
     { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:423: ovs-appctl -t ovsdb-client ovsdb-client/cond_change ordinals \"\$cond\""
at_fn_check_prepare_dynamic "ovs-appctl -t ovsdb-client ovsdb-client/cond_change ordinals \"$cond\"" "ovsdb-monitor.at:423"
( $at_check_trace; ovs-appctl -t ovsdb-client ovsdb-client/cond_change ordinals "$cond"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:423"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   done
   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:423: ovsdb-client transact unix:socket '[\"ordinals\"]'"
at_fn_check_prepare_trace "ovsdb-monitor.at:423"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:423"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:423: ovs-appctl -t ovsdb-server -e exit"
at_fn_check_prepare_trace "ovsdb-monitor.at:423"
( $at_check_trace; ovs-appctl -t ovsdb-server -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:423"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   $as_echo "ovsdb-monitor.at:423: waiting until test ! -e ovsdb-server.pid && test ! -e ovsdb-client.pid..." >&5
ovs_wait_cond () {
    test ! -e ovsdb-server.pid && test ! -e ovsdb-client.pid
}
if ovs_wait; then :
else
    $as_echo "ovsdb-monitor.at:423: wait failed" >&5

    $as_echo "ovsdb-monitor.at:423" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-monitor.at:423"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:423: \$PYTHON \$srcdir/ovsdb-monitor-sort.py < output | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-monitor.at:423"
( $at_check_trace; $PYTHON $srcdir/ovsdb-monitor-sort.py < output | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "row,action,name,number,_version
<0>,initial,\"\"\"one\"\"\",1,\"[\"\"uuid\"\",\"\"<1>\"\"]\"

row,action,name,number,_version
<2>,insert,\"\"\"ten\"\"\",10,\"[\"\"uuid\"\",\"\"<3>\"\"]\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:423"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1976
#AT_START_1977
at_fn_group_banner 1977 'ovsdb-monitor.at:451' \
  "monitor-cond delete from populated table" "       " 98
at_xfail=no
(
  $as_echo "1977. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:451: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-monitor.at:451"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   for txn in '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 2, "name": "two"}}]' ; do
     { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:451: ovsdb-tool transact db \"\$txn\""
at_fn_check_prepare_dynamic "ovsdb-tool transact db \"$txn\"" "ovsdb-monitor.at:451"
( $at_check_trace; ovsdb-tool transact db "$txn"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   done

   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:451: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket --log-file=\"\`pwd\`\"/ovsdb-server-log db >/dev/null 2>&1"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-monitor.at:451"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket --log-file="`pwd`"/ovsdb-server-log db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:451"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:451: ovsdb-client -vjsonrpc --pidfile --detach --no-chdir -d json monitor-cond --format=csv unix:socket ordinals '[[\"name\",\"==\",\"one\"],[\"name\",\"==\",\"ten\"]]' ordinals  > output"
at_fn_check_prepare_trace "ovsdb-monitor.at:451"
( $at_check_trace; ovsdb-client -vjsonrpc --pidfile --detach --no-chdir -d json monitor-cond --format=csv unix:socket ordinals '[["name","==","one"],["name","==","ten"]]' ordinals  > output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:451"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   on_exit 'kill `cat ovsdb-client.pid`'
   for txn in '["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": []}]' ; do
     { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:451: ovsdb-client transact unix:socket \"\$txn\""
at_fn_check_prepare_dynamic "ovsdb-client transact unix:socket \"$txn\"" "ovsdb-monitor.at:451"
( $at_check_trace; ovsdb-client transact unix:socket "$txn"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:451"
if $at_failed; then :
  kill `cat server-pid client-pid`
fi
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   done
   for cond in ; do
     { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:451: ovs-appctl -t ovsdb-client ovsdb-client/cond_change ordinals \"\$cond\""
at_fn_check_prepare_dynamic "ovs-appctl -t ovsdb-client ovsdb-client/cond_change ordinals \"$cond\"" "ovsdb-monitor.at:451"
( $at_check_trace; ovs-appctl -t ovsdb-client ovsdb-client/cond_change ordinals "$cond"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:451"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   done
   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:451: ovsdb-client transact unix:socket '[\"ordinals\"]'"
at_fn_check_prepare_trace "ovsdb-monitor.at:451"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:451"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:451: ovs-appctl -t ovsdb-server -e exit"
at_fn_check_prepare_trace "ovsdb-monitor.at:451"
( $at_check_trace; ovs-appctl -t ovsdb-server -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:451"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   $as_echo "ovsdb-monitor.at:451: waiting until test ! -e ovsdb-server.pid && test ! -e ovsdb-client.pid..." >&5
ovs_wait_cond () {
    test ! -e ovsdb-server.pid && test ! -e ovsdb-client.pid
}
if ovs_wait; then :
else
    $as_echo "ovsdb-monitor.at:451: wait failed" >&5

    $as_echo "ovsdb-monitor.at:451" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-monitor.at:451"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:451: \$PYTHON \$srcdir/ovsdb-monitor-sort.py < output | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-monitor.at:451"
( $at_check_trace; $PYTHON $srcdir/ovsdb-monitor-sort.py < output | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "row,action,name,number,_version
<0>,initial,\"\"\"one\"\"\",1,\"[\"\"uuid\"\",\"\"<1>\"\"]\"

row,action,name,number,_version
<0>,delete,,,
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:451"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1977
#AT_START_1978
at_fn_group_banner 1978 'ovsdb-monitor.at:476' \
  "monitor-cond insert due to modify" "              " 98
at_xfail=no
(
  $as_echo "1978. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:476: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-monitor.at:476"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:476"
$at_failed && at_fn_log_failure
$at_traceon; }

   for txn in '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 2, "name": "two"}}]' ; do
     { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:476: ovsdb-tool transact db \"\$txn\""
at_fn_check_prepare_dynamic "ovsdb-tool transact db \"$txn\"" "ovsdb-monitor.at:476"
( $at_check_trace; ovsdb-tool transact db "$txn"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:476"
$at_failed && at_fn_log_failure
$at_traceon; }

   done

   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:476: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket --log-file=\"\`pwd\`\"/ovsdb-server-log db >/dev/null 2>&1"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-monitor.at:476"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket --log-file="`pwd`"/ovsdb-server-log db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:476"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:476: ovsdb-client -vjsonrpc --pidfile --detach --no-chdir -d json monitor-cond --format=csv unix:socket ordinals '[[\"name\",\"==\",\"ONE\"]]' ordinals !initial,!delete,!modify > output"
at_fn_check_prepare_trace "ovsdb-monitor.at:476"
( $at_check_trace; ovsdb-client -vjsonrpc --pidfile --detach --no-chdir -d json monitor-cond --format=csv unix:socket ordinals '[["name","==","ONE"]]' ordinals !initial,!delete,!modify > output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:476"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   on_exit 'kill `cat ovsdb-client.pid`'
   for txn in '["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [["name", "==", "one"]],
       "row": {"name": "ONE"}}]' ; do
     { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:476: ovsdb-client transact unix:socket \"\$txn\""
at_fn_check_prepare_dynamic "ovsdb-client transact unix:socket \"$txn\"" "ovsdb-monitor.at:476"
( $at_check_trace; ovsdb-client transact unix:socket "$txn"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:476"
if $at_failed; then :
  kill `cat server-pid client-pid`
fi
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   done
   for cond in ; do
     { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:476: ovs-appctl -t ovsdb-client ovsdb-client/cond_change ordinals \"\$cond\""
at_fn_check_prepare_dynamic "ovs-appctl -t ovsdb-client ovsdb-client/cond_change ordinals \"$cond\"" "ovsdb-monitor.at:476"
( $at_check_trace; ovs-appctl -t ovsdb-client ovsdb-client/cond_change ordinals "$cond"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:476"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   done
   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:476: ovsdb-client transact unix:socket '[\"ordinals\"]'"
at_fn_check_prepare_trace "ovsdb-monitor.at:476"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:476"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:476: ovs-appctl -t ovsdb-server -e exit"
at_fn_check_prepare_trace "ovsdb-monitor.at:476"
( $at_check_trace; ovs-appctl -t ovsdb-server -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:476"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   $as_echo "ovsdb-monitor.at:476: waiting until test ! -e ovsdb-server.pid && test ! -e ovsdb-client.pid..." >&5
ovs_wait_cond () {
    test ! -e ovsdb-server.pid && test ! -e ovsdb-client.pid
}
if ovs_wait; then :
else
    $as_echo "ovsdb-monitor.at:476: wait failed" >&5

    $as_echo "ovsdb-monitor.at:476" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-monitor.at:476"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:476: \$PYTHON \$srcdir/ovsdb-monitor-sort.py < output | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-monitor.at:476"
( $at_check_trace; $PYTHON $srcdir/ovsdb-monitor-sort.py < output | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "row,action,name,number,_version
<0>,insert,\"\"\"ONE\"\"\",1,\"[\"\"uuid\"\",\"\"<1>\"\"]\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:476"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1978
#AT_START_1979
at_fn_group_banner 1979 'ovsdb-monitor.at:500' \
  "monitor-cond delete due to modify" "              " 98
at_xfail=no
(
  $as_echo "1979. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:500: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-monitor.at:500"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:500"
$at_failed && at_fn_log_failure
$at_traceon; }

   for txn in '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 2, "name": "two"}}]' ; do
     { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:500: ovsdb-tool transact db \"\$txn\""
at_fn_check_prepare_dynamic "ovsdb-tool transact db \"$txn\"" "ovsdb-monitor.at:500"
( $at_check_trace; ovsdb-tool transact db "$txn"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:500"
$at_failed && at_fn_log_failure
$at_traceon; }

   done

   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:500: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket --log-file=\"\`pwd\`\"/ovsdb-server-log db >/dev/null 2>&1"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-monitor.at:500"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket --log-file="`pwd`"/ovsdb-server-log db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:500"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:500: ovsdb-client -vjsonrpc --pidfile --detach --no-chdir -d json monitor-cond --format=csv unix:socket ordinals '[[\"name\",\"==\",\"one\"]]' ordinals !initial,!insert,!modify > output"
at_fn_check_prepare_trace "ovsdb-monitor.at:500"
( $at_check_trace; ovsdb-client -vjsonrpc --pidfile --detach --no-chdir -d json monitor-cond --format=csv unix:socket ordinals '[["name","==","one"]]' ordinals !initial,!insert,!modify > output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:500"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   on_exit 'kill `cat ovsdb-client.pid`'
   for txn in '["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [["name", "==", "one"]],
       "row": {"name": "ONE"}}]' ; do
     { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:500: ovsdb-client transact unix:socket \"\$txn\""
at_fn_check_prepare_dynamic "ovsdb-client transact unix:socket \"$txn\"" "ovsdb-monitor.at:500"
( $at_check_trace; ovsdb-client transact unix:socket "$txn"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:500"
if $at_failed; then :
  kill `cat server-pid client-pid`
fi
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   done
   for cond in ; do
     { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:500: ovs-appctl -t ovsdb-client ovsdb-client/cond_change ordinals \"\$cond\""
at_fn_check_prepare_dynamic "ovs-appctl -t ovsdb-client ovsdb-client/cond_change ordinals \"$cond\"" "ovsdb-monitor.at:500"
( $at_check_trace; ovs-appctl -t ovsdb-client ovsdb-client/cond_change ordinals "$cond"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:500"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   done
   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:500: ovsdb-client transact unix:socket '[\"ordinals\"]'"
at_fn_check_prepare_trace "ovsdb-monitor.at:500"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:500"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:500: ovs-appctl -t ovsdb-server -e exit"
at_fn_check_prepare_trace "ovsdb-monitor.at:500"
( $at_check_trace; ovs-appctl -t ovsdb-server -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:500"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   $as_echo "ovsdb-monitor.at:500: waiting until test ! -e ovsdb-server.pid && test ! -e ovsdb-client.pid..." >&5
ovs_wait_cond () {
    test ! -e ovsdb-server.pid && test ! -e ovsdb-client.pid
}
if ovs_wait; then :
else
    $as_echo "ovsdb-monitor.at:500: wait failed" >&5

    $as_echo "ovsdb-monitor.at:500" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-monitor.at:500"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:500: \$PYTHON \$srcdir/ovsdb-monitor-sort.py < output | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-monitor.at:500"
( $at_check_trace; $PYTHON $srcdir/ovsdb-monitor-sort.py < output | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "row,action,name,number,_version
<0>,delete,,,
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:500"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1979
#AT_START_1980
at_fn_group_banner 1980 'ovsdb-monitor.at:524' \
  "monitor-cond condition non-monitored columns" "   " 98
at_xfail=no
(
  $as_echo "1980. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:524: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-monitor.at:524"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:524"
$at_failed && at_fn_log_failure
$at_traceon; }

   for txn in '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 2, "name": "two"}}]' ; do
     { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:524: ovsdb-tool transact db \"\$txn\""
at_fn_check_prepare_dynamic "ovsdb-tool transact db \"$txn\"" "ovsdb-monitor.at:524"
( $at_check_trace; ovsdb-tool transact db "$txn"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:524"
$at_failed && at_fn_log_failure
$at_traceon; }

   done

   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:524: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket --log-file=\"\`pwd\`\"/ovsdb-server-log db >/dev/null 2>&1"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-monitor.at:524"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket --log-file="`pwd`"/ovsdb-server-log db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:524"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:524: ovsdb-client -vjsonrpc --pidfile --detach --no-chdir -d json monitor-cond --format=csv unix:socket ordinals '[[\"name\",\"==\",\"one\"],[\"name\",\"==\",\"ten\"]]' ordinals \"number\" > output"
at_fn_check_prepare_trace "ovsdb-monitor.at:524"
( $at_check_trace; ovsdb-client -vjsonrpc --pidfile --detach --no-chdir -d json monitor-cond --format=csv unix:socket ordinals '[["name","==","one"],["name","==","ten"]]' ordinals "number" > output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:524"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   on_exit 'kill `cat ovsdb-client.pid`'
   for txn in '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 10, "name": "ten"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 11, "name": "eleven"}}]' ; do
     { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:524: ovsdb-client transact unix:socket \"\$txn\""
at_fn_check_prepare_dynamic "ovsdb-client transact unix:socket \"$txn\"" "ovsdb-monitor.at:524"
( $at_check_trace; ovsdb-client transact unix:socket "$txn"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:524"
if $at_failed; then :
  kill `cat server-pid client-pid`
fi
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   done
   for cond in ; do
     { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:524: ovs-appctl -t ovsdb-client ovsdb-client/cond_change ordinals \"\$cond\""
at_fn_check_prepare_dynamic "ovs-appctl -t ovsdb-client ovsdb-client/cond_change ordinals \"$cond\"" "ovsdb-monitor.at:524"
( $at_check_trace; ovs-appctl -t ovsdb-client ovsdb-client/cond_change ordinals "$cond"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:524"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   done
   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:524: ovsdb-client transact unix:socket '[\"ordinals\"]'"
at_fn_check_prepare_trace "ovsdb-monitor.at:524"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:524"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:524: ovs-appctl -t ovsdb-server -e exit"
at_fn_check_prepare_trace "ovsdb-monitor.at:524"
( $at_check_trace; ovs-appctl -t ovsdb-server -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:524"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   $as_echo "ovsdb-monitor.at:524: waiting until test ! -e ovsdb-server.pid && test ! -e ovsdb-client.pid..." >&5
ovs_wait_cond () {
    test ! -e ovsdb-server.pid && test ! -e ovsdb-client.pid
}
if ovs_wait; then :
else
    $as_echo "ovsdb-monitor.at:524: wait failed" >&5

    $as_echo "ovsdb-monitor.at:524" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-monitor.at:524"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:524: \$PYTHON \$srcdir/ovsdb-monitor-sort.py < output | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-monitor.at:524"
( $at_check_trace; $PYTHON $srcdir/ovsdb-monitor-sort.py < output | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "row,action,number
<0>,initial,1

row,action,number
<1>,insert,10
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:524"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1980
#AT_START_1981
at_fn_group_banner 1981 'ovsdb-monitor.at:553' \
  "monitor-cond-change" "                            " 98
at_xfail=no
(
  $as_echo "1981. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ordinal_schema > schema
   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:553: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-monitor.at:553"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:553"
$at_failed && at_fn_log_failure
$at_traceon; }

   for txn in '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 2, "name": "two"}}]' ; do
     { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:553: ovsdb-tool transact db \"\$txn\""
at_fn_check_prepare_dynamic "ovsdb-tool transact db \"$txn\"" "ovsdb-monitor.at:553"
( $at_check_trace; ovsdb-tool transact db "$txn"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:553"
$at_failed && at_fn_log_failure
$at_traceon; }

   done

   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:553: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket --log-file=\"\`pwd\`\"/ovsdb-server-log db >/dev/null 2>&1"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-monitor.at:553"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket --log-file="`pwd`"/ovsdb-server-log db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:553"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:553: ovsdb-client -vjsonrpc --pidfile --detach --no-chdir -d json monitor-cond --format=csv unix:socket ordinals '[]' ordinals  > output"
at_fn_check_prepare_trace "ovsdb-monitor.at:553"
( $at_check_trace; ovsdb-client -vjsonrpc --pidfile --detach --no-chdir -d json monitor-cond --format=csv unix:socket ordinals '[]' ordinals  > output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:553"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   on_exit 'kill `cat ovsdb-client.pid`'
   for txn in ; do
     { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:553: ovsdb-client transact unix:socket \"\$txn\""
at_fn_check_prepare_dynamic "ovsdb-client transact unix:socket \"$txn\"" "ovsdb-monitor.at:553"
( $at_check_trace; ovsdb-client transact unix:socket "$txn"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:553"
if $at_failed; then :
  kill `cat server-pid client-pid`
fi
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   done
   for cond in '[["name","==","one"],["name","==","two"]]' '[["name","==","one"]]' '[false]' '[true]' ; do
     { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:553: ovs-appctl -t ovsdb-client ovsdb-client/cond_change ordinals \"\$cond\""
at_fn_check_prepare_dynamic "ovs-appctl -t ovsdb-client ovsdb-client/cond_change ordinals \"$cond\"" "ovsdb-monitor.at:553"
( $at_check_trace; ovs-appctl -t ovsdb-client ovsdb-client/cond_change ordinals "$cond"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:553"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   done
   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:553: ovsdb-client transact unix:socket '[\"ordinals\"]'"
at_fn_check_prepare_trace "ovsdb-monitor.at:553"
( $at_check_trace; ovsdb-client transact unix:socket '["ordinals"]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:553"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:553: ovs-appctl -t ovsdb-server -e exit"
at_fn_check_prepare_trace "ovsdb-monitor.at:553"
( $at_check_trace; ovs-appctl -t ovsdb-server -e exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:553"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   $as_echo "ovsdb-monitor.at:553: waiting until test ! -e ovsdb-server.pid && test ! -e ovsdb-client.pid..." >&5
ovs_wait_cond () {
    test ! -e ovsdb-server.pid && test ! -e ovsdb-client.pid
}
if ovs_wait; then :
else
    $as_echo "ovsdb-monitor.at:553: wait failed" >&5

    $as_echo "ovsdb-monitor.at:553" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-monitor.at:553"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-monitor.at:553: \$PYTHON \$srcdir/ovsdb-monitor-sort.py < output | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-monitor.at:553"
( $at_check_trace; $PYTHON $srcdir/ovsdb-monitor-sort.py < output | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "row,action,name,number,_version
<0>,initial,\"\"\"one\"\"\",1,\"[\"\"uuid\"\",\"\"<1>\"\"]\"
<2>,initial,\"\"\"two\"\"\",2,\"[\"\"uuid\"\",\"\"<3>\"\"]\"
<4>,initial,\"\"\"zero\"\"\",,\"[\"\"uuid\"\",\"\"<5>\"\"]\"

row,action,name,number,_version
<4>,delete,,,

row,action,name,number,_version
<2>,delete,,,

row,action,name,number,_version
<0>,delete,,,

row,action,name,number,_version
<0>,insert,\"\"\"one\"\"\",1,\"[\"\"uuid\"\",\"\"<1>\"\"]\"
<2>,insert,\"\"\"two\"\"\",2,\"[\"\"uuid\"\",\"\"<3>\"\"]\"
<4>,insert,\"\"\"zero\"\"\",,\"[\"\"uuid\"\",\"\"<5>\"\"]\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-monitor.at:553"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1981
#AT_START_1982
at_fn_group_banner 1982 'ovsdb-idl.at:163' \
  "simple passive idl, initially empty, select empty - Python ptcp" "" 99
at_xfail=no
(
  $as_echo "1982. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:163" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:163"

   # find free TCP port
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:163: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:163"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:163"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:163: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:163: wait failed" >&5

    $as_echo "ovsdb-idl.at:163" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:163"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:163: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:163"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:163"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:163: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:163"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:163"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:163: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:163: wait failed" >&5

    $as_echo "ovsdb-idl.at:163" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:163"
fi

   rm -f db

   # start OVSDB server in passive mode
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:163: ovsdb_start_idltest \"tcp:127.0.0.1:\$TCP_PORT\""
at_fn_check_prepare_dynamic "ovsdb_start_idltest \"tcp:127.0.0.1:$TCP_PORT\"" "ovsdb-idl.at:163"
( $at_check_trace; ovsdb_start_idltest "tcp:127.0.0.1:$TCP_PORT"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:163"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:163: \$PYTHON \$srcdir/test-ovsdb.py -t10 idl_passive \$srcdir/idltest.ovsschema ptcp:127.0.0.1:\$TCP_PORT '[\"idltest\",{\"op\":\"select\",\"table\":\"link1\",\"where\":[]}]'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py -t10 idl_passive $srcdir/idltest.ovsschema ptcp:127.0.0.1:$TCP_PORT '[\"idltest\",{\"op\":\"select\",\"table\":\"link1\",\"where\":[]}]'" "ovsdb-idl.at:163"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py -t10 idl_passive $srcdir/idltest.ovsschema ptcp:127.0.0.1:$TCP_PORT '["idltest",{"op":"select","table":"link1","where":[]}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:163"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:163: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:163"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"rows\":[]}]}
002: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:163"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:163: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:163"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:163"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:163: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:163"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:163"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:163: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:163: wait failed" >&5

    $as_echo "ovsdb-idl.at:163" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:163"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1982
#AT_START_1983
at_fn_group_banner 1983 'ovsdb-idl.at:171' \
  "simple idl, initially empty, no ops - C" "        " 99
at_xfail=no
(
  $as_echo "1983. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:171"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket "
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:171"
( $at_check_trace; test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:171"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:171"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:171"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:171: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:171: wait failed" >&5

    $as_echo "ovsdb-idl.at:171" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:171"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1983
#AT_START_1984
at_fn_group_banner 1984 'ovsdb-idl.at:171' \
  "simple idl, initially empty, no ops - Python2" "  " 99
at_xfail=no
(
  $as_echo "1984. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:171" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:171"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:171"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket " "ovsdb-idl.at:171"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:171"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:171"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:171"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:171: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:171: wait failed" >&5

    $as_echo "ovsdb-idl.at:171" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:171"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1984
#AT_START_1985
at_fn_group_banner 1985 'ovsdb-idl.at:171' \
  "simple idl, initially empty, no ops - Python3" "  " 99
at_xfail=no
(
  $as_echo "1985. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:171" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:171"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:171"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket " "ovsdb-idl.at:171"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:171"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:171"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:171"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:171: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:171: wait failed" >&5

    $as_echo "ovsdb-idl.at:171" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:171"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1985
#AT_START_1986
at_fn_group_banner 1986 'ovsdb-idl.at:171' \
  "simple idl, initially empty, no ops - Python2 - register_columns" "" 99
at_xfail=no
(
  $as_echo "1986. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:171" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:171"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:171"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 " "ovsdb-idl.at:171"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:171"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:171"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:171"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:171: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:171: wait failed" >&5

    $as_echo "ovsdb-idl.at:171" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:171"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1986
#AT_START_1987
at_fn_group_banner 1987 'ovsdb-idl.at:171' \
  "simple idl, initially empty, no ops - Python3 - register_columns" "" 99
at_xfail=no
(
  $as_echo "1987. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:171" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:171"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:171"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 " "ovsdb-idl.at:171"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:171"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:171"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:171"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:171: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:171: wait failed" >&5

    $as_echo "ovsdb-idl.at:171" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:171"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1987
#AT_START_1988
at_fn_group_banner 1988 'ovsdb-idl.at:171' \
  "simple idl, initially empty, no ops - Python2 - tcp" "" 99
at_xfail=no
(
  $as_echo "1988. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:171" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:171"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:171"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:171: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:171: wait failed" >&5

    $as_echo "ovsdb-idl.at:171" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:171"
fi



   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT " "ovsdb-idl.at:171"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:171"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:171"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:171"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:171: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:171: wait failed" >&5

    $as_echo "ovsdb-idl.at:171" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:171"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1988
#AT_START_1989
at_fn_group_banner 1989 'ovsdb-idl.at:171' \
  "simple idl, initially empty, no ops - Python3 - tcp" "" 99
at_xfail=no
(
  $as_echo "1989. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:171" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:171"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:171"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:171: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:171: wait failed" >&5

    $as_echo "ovsdb-idl.at:171" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:171"
fi



   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT " "ovsdb-idl.at:171"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:171"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:171"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:171"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:171: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:171: wait failed" >&5

    $as_echo "ovsdb-idl.at:171" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:171"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1989
#AT_START_1990
at_fn_group_banner 1990 'ovsdb-idl.at:171' \
  "simple idl, initially empty, no ops - Python2 - tcp6" "" 99
at_xfail=no
(
  $as_echo "1990. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:171" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:171"
   $as_echo "ovsdb-idl.at:171" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:171"
   $as_echo "ovsdb-idl.at:171" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:171"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:171"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:171: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:171: wait failed" >&5

    $as_echo "ovsdb-idl.at:171" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:171"
fi

   echo "TCP_PORT=$TCP_PORT"


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT "
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT " "ovsdb-idl.at:171"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:171"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:171"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:171"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:171: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:171: wait failed" >&5

    $as_echo "ovsdb-idl.at:171" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:171"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1990
#AT_START_1991
at_fn_group_banner 1991 'ovsdb-idl.at:171' \
  "simple idl, initially empty, no ops - Python3 - tcp6" "" 99
at_xfail=no
(
  $as_echo "1991. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:171" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:171"
   $as_echo "ovsdb-idl.at:171" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:171"
   $as_echo "ovsdb-idl.at:171" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:171"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:171"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:171: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:171: wait failed" >&5

    $as_echo "ovsdb-idl.at:171" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:171"
fi

   echo "TCP_PORT=$TCP_PORT"


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT "
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT " "ovsdb-idl.at:171"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:171"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:171"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:171: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:171"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:171: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:171: wait failed" >&5

    $as_echo "ovsdb-idl.at:171" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:171"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1991
#AT_START_1992
at_fn_group_banner 1992 'ovsdb-idl.at:178' \
  "simple idl, initially empty, various ops - C" "   " 99
at_xfail=no
(
  $as_echo "1992. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:178"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true,
               \"s\": \"mystring\",
               \"u\": [\"uuid\", \"84f5c8f5-ac76-4dbc-a24f-8860eb407fc1\"],
               \"ia\": [\"set\", [1, 2, 3]],
               \"ra\": [\"set\", [-0.5]],
               \"ba\": [\"set\", [true]],
               \"sa\": [\"set\", [\"abc\", \"def\"]],
               \"ua\": [\"set\", [[\"uuid\", \"69443985-7806-45e2-b35f-574a04e720f9\"],
                              [\"uuid\", \"aad11ef0-816a-4b01-93e6-03b8b4256b98\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [],
       \"row\": {\"b\": true}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [],
       \"row\": {\"r\": 123.5}}]' \\
    '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": -1,
               \"r\": 125,
               \"b\": false,
               \"s\": \"\",
               \"ia\": [\"set\", [1]],
               \"ra\": [\"set\", [1.5]],
               \"ba\": [\"set\", [false]],
               \"sa\": [\"set\", []],
               \"ua\": [\"set\", []]}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [[\"i\", \"<\", 1]],
       \"row\": {\"s\": \"newstring\"}}]' \\
    '[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"simple\",
       \"where\": [[\"i\", \"==\", 0]]}]' \\
    'reconnect'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:178"
( $at_check_trace; test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true,
               "s": "mystring",
               "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],
               "ia": ["set", [1, 2, 3]],
               "ra": ["set", [-0.5]],
               "ba": ["set", [true]],
               "sa": ["set", ["abc", "def"]],
               "ua": ["set", [["uuid", "69443985-7806-45e2-b35f-574a04e720f9"],
                              ["uuid", "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [],
       "row": {"b": true}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [],
       "row": {"r": 123.5}}]' \
    '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": -1,
               "r": 125,
               "b": false,
               "s": "",
               "ia": ["set", [1]],
               "ra": ["set", [1.5]],
               "ba": ["set", [false]],
               "sa": ["set", []],
               "ua": ["set", []]}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [["i", "<", 1]],
       "row": {"s": "newstring"}}]' \
    '["idltest",
      {"op": "delete",
       "table": "simple",
       "where": [["i", "==", 0]]}]' \
    'reconnect'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:178"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]}]}
002: i=0 r=0 b=false s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=2 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
003: {\"error\":null,\"result\":[{\"count\":2}]}
004: i=0 r=0 b=true s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: i=1 r=2 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
005: {\"error\":null,\"result\":[{\"count\":2}]}
006: i=0 r=123.5 b=true s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
006: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
007: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<6>\"]}]}
008: i=-1 r=125 b=false s= u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
008: i=0 r=123.5 b=true s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
008: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
009: {\"error\":null,\"result\":[{\"count\":2}]}
010: i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
010: i=0 r=123.5 b=true s=newstring u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
010: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
011: {\"error\":null,\"result\":[{\"count\":1}]}
012: i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
012: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
013: reconnect
014: i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
014: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
015: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:178"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:178"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:178: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:178: wait failed" >&5

    $as_echo "ovsdb-idl.at:178" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:178"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1992
#AT_START_1993
at_fn_group_banner 1993 'ovsdb-idl.at:178' \
  "simple idl, initially empty, various ops - Python2" "" 99
at_xfail=no
(
  $as_echo "1993. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:178" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:178"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:178"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true,
               \"s\": \"mystring\",
               \"u\": [\"uuid\", \"84f5c8f5-ac76-4dbc-a24f-8860eb407fc1\"],
               \"ia\": [\"set\", [1, 2, 3]],
               \"ra\": [\"set\", [-0.5]],
               \"ba\": [\"set\", [true]],
               \"sa\": [\"set\", [\"abc\", \"def\"]],
               \"ua\": [\"set\", [[\"uuid\", \"69443985-7806-45e2-b35f-574a04e720f9\"],
                              [\"uuid\", \"aad11ef0-816a-4b01-93e6-03b8b4256b98\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [],
       \"row\": {\"b\": true}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [],
       \"row\": {\"r\": 123.5}}]' \\
    '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": -1,
               \"r\": 125,
               \"b\": false,
               \"s\": \"\",
               \"ia\": [\"set\", [1]],
               \"ra\": [\"set\", [1.5]],
               \"ba\": [\"set\", [false]],
               \"sa\": [\"set\", []],
               \"ua\": [\"set\", []]}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [[\"i\", \"<\", 1]],
       \"row\": {\"s\": \"newstring\"}}]' \\
    '[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"simple\",
       \"where\": [[\"i\", \"==\", 0]]}]' \\
    'reconnect'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:178"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true,
               "s": "mystring",
               "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],
               "ia": ["set", [1, 2, 3]],
               "ra": ["set", [-0.5]],
               "ba": ["set", [true]],
               "sa": ["set", ["abc", "def"]],
               "ua": ["set", [["uuid", "69443985-7806-45e2-b35f-574a04e720f9"],
                              ["uuid", "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [],
       "row": {"b": true}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [],
       "row": {"r": 123.5}}]' \
    '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": -1,
               "r": 125,
               "b": false,
               "s": "",
               "ia": ["set", [1]],
               "ra": ["set", [1.5]],
               "ba": ["set", [false]],
               "sa": ["set", []],
               "ua": ["set", []]}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [["i", "<", 1]],
       "row": {"s": "newstring"}}]' \
    '["idltest",
      {"op": "delete",
       "table": "simple",
       "where": [["i", "==", 0]]}]' \
    'reconnect'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:178"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]}]}
002: i=0 r=0 b=false s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=2 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
003: {\"error\":null,\"result\":[{\"count\":2}]}
004: i=0 r=0 b=true s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: i=1 r=2 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
005: {\"error\":null,\"result\":[{\"count\":2}]}
006: i=0 r=123.5 b=true s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
006: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
007: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<6>\"]}]}
008: i=-1 r=125 b=false s= u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
008: i=0 r=123.5 b=true s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
008: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
009: {\"error\":null,\"result\":[{\"count\":2}]}
010: i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
010: i=0 r=123.5 b=true s=newstring u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
010: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
011: {\"error\":null,\"result\":[{\"count\":1}]}
012: i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
012: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
013: reconnect
014: i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
014: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
015: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:178"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:178"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:178: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:178: wait failed" >&5

    $as_echo "ovsdb-idl.at:178" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:178"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1993
#AT_START_1994
at_fn_group_banner 1994 'ovsdb-idl.at:178' \
  "simple idl, initially empty, various ops - Python3" "" 99
at_xfail=no
(
  $as_echo "1994. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:178" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:178"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:178"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true,
               \"s\": \"mystring\",
               \"u\": [\"uuid\", \"84f5c8f5-ac76-4dbc-a24f-8860eb407fc1\"],
               \"ia\": [\"set\", [1, 2, 3]],
               \"ra\": [\"set\", [-0.5]],
               \"ba\": [\"set\", [true]],
               \"sa\": [\"set\", [\"abc\", \"def\"]],
               \"ua\": [\"set\", [[\"uuid\", \"69443985-7806-45e2-b35f-574a04e720f9\"],
                              [\"uuid\", \"aad11ef0-816a-4b01-93e6-03b8b4256b98\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [],
       \"row\": {\"b\": true}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [],
       \"row\": {\"r\": 123.5}}]' \\
    '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": -1,
               \"r\": 125,
               \"b\": false,
               \"s\": \"\",
               \"ia\": [\"set\", [1]],
               \"ra\": [\"set\", [1.5]],
               \"ba\": [\"set\", [false]],
               \"sa\": [\"set\", []],
               \"ua\": [\"set\", []]}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [[\"i\", \"<\", 1]],
       \"row\": {\"s\": \"newstring\"}}]' \\
    '[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"simple\",
       \"where\": [[\"i\", \"==\", 0]]}]' \\
    'reconnect'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:178"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true,
               "s": "mystring",
               "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],
               "ia": ["set", [1, 2, 3]],
               "ra": ["set", [-0.5]],
               "ba": ["set", [true]],
               "sa": ["set", ["abc", "def"]],
               "ua": ["set", [["uuid", "69443985-7806-45e2-b35f-574a04e720f9"],
                              ["uuid", "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [],
       "row": {"b": true}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [],
       "row": {"r": 123.5}}]' \
    '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": -1,
               "r": 125,
               "b": false,
               "s": "",
               "ia": ["set", [1]],
               "ra": ["set", [1.5]],
               "ba": ["set", [false]],
               "sa": ["set", []],
               "ua": ["set", []]}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [["i", "<", 1]],
       "row": {"s": "newstring"}}]' \
    '["idltest",
      {"op": "delete",
       "table": "simple",
       "where": [["i", "==", 0]]}]' \
    'reconnect'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:178"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]}]}
002: i=0 r=0 b=false s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=2 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
003: {\"error\":null,\"result\":[{\"count\":2}]}
004: i=0 r=0 b=true s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: i=1 r=2 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
005: {\"error\":null,\"result\":[{\"count\":2}]}
006: i=0 r=123.5 b=true s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
006: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
007: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<6>\"]}]}
008: i=-1 r=125 b=false s= u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
008: i=0 r=123.5 b=true s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
008: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
009: {\"error\":null,\"result\":[{\"count\":2}]}
010: i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
010: i=0 r=123.5 b=true s=newstring u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
010: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
011: {\"error\":null,\"result\":[{\"count\":1}]}
012: i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
012: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
013: reconnect
014: i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
014: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
015: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:178"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:178"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:178: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:178: wait failed" >&5

    $as_echo "ovsdb-idl.at:178" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:178"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1994
#AT_START_1995
at_fn_group_banner 1995 'ovsdb-idl.at:178' \
  "simple idl, initially empty, various ops - Python2 - register_columns" "" 99
at_xfail=no
(
  $as_echo "1995. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:178" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:178"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:178"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true,
               \"s\": \"mystring\",
               \"u\": [\"uuid\", \"84f5c8f5-ac76-4dbc-a24f-8860eb407fc1\"],
               \"ia\": [\"set\", [1, 2, 3]],
               \"ra\": [\"set\", [-0.5]],
               \"ba\": [\"set\", [true]],
               \"sa\": [\"set\", [\"abc\", \"def\"]],
               \"ua\": [\"set\", [[\"uuid\", \"69443985-7806-45e2-b35f-574a04e720f9\"],
                              [\"uuid\", \"aad11ef0-816a-4b01-93e6-03b8b4256b98\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [],
       \"row\": {\"b\": true}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [],
       \"row\": {\"r\": 123.5}}]' \\
    '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": -1,
               \"r\": 125,
               \"b\": false,
               \"s\": \"\",
               \"ia\": [\"set\", [1]],
               \"ra\": [\"set\", [1.5]],
               \"ba\": [\"set\", [false]],
               \"sa\": [\"set\", []],
               \"ua\": [\"set\", []]}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [[\"i\", \"<\", 1]],
       \"row\": {\"s\": \"newstring\"}}]' \\
    '[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"simple\",
       \"where\": [[\"i\", \"==\", 0]]}]' \\
    'reconnect'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:178"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true,
               "s": "mystring",
               "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],
               "ia": ["set", [1, 2, 3]],
               "ra": ["set", [-0.5]],
               "ba": ["set", [true]],
               "sa": ["set", ["abc", "def"]],
               "ua": ["set", [["uuid", "69443985-7806-45e2-b35f-574a04e720f9"],
                              ["uuid", "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [],
       "row": {"b": true}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [],
       "row": {"r": 123.5}}]' \
    '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": -1,
               "r": 125,
               "b": false,
               "s": "",
               "ia": ["set", [1]],
               "ra": ["set", [1.5]],
               "ba": ["set", [false]],
               "sa": ["set", []],
               "ua": ["set", []]}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [["i", "<", 1]],
       "row": {"s": "newstring"}}]' \
    '["idltest",
      {"op": "delete",
       "table": "simple",
       "where": [["i", "==", 0]]}]' \
    'reconnect'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:178"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]}]}
002: i=0 r=0 b=false s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=2 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
003: {\"error\":null,\"result\":[{\"count\":2}]}
004: i=0 r=0 b=true s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: i=1 r=2 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
005: {\"error\":null,\"result\":[{\"count\":2}]}
006: i=0 r=123.5 b=true s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
006: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
007: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<6>\"]}]}
008: i=-1 r=125 b=false s= u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
008: i=0 r=123.5 b=true s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
008: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
009: {\"error\":null,\"result\":[{\"count\":2}]}
010: i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
010: i=0 r=123.5 b=true s=newstring u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
010: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
011: {\"error\":null,\"result\":[{\"count\":1}]}
012: i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
012: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
013: reconnect
014: i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
014: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
015: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:178"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:178"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:178: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:178: wait failed" >&5

    $as_echo "ovsdb-idl.at:178" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:178"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1995
#AT_START_1996
at_fn_group_banner 1996 'ovsdb-idl.at:178' \
  "simple idl, initially empty, various ops - Python3 - register_columns" "" 99
at_xfail=no
(
  $as_echo "1996. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:178" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:178"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:178"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true,
               \"s\": \"mystring\",
               \"u\": [\"uuid\", \"84f5c8f5-ac76-4dbc-a24f-8860eb407fc1\"],
               \"ia\": [\"set\", [1, 2, 3]],
               \"ra\": [\"set\", [-0.5]],
               \"ba\": [\"set\", [true]],
               \"sa\": [\"set\", [\"abc\", \"def\"]],
               \"ua\": [\"set\", [[\"uuid\", \"69443985-7806-45e2-b35f-574a04e720f9\"],
                              [\"uuid\", \"aad11ef0-816a-4b01-93e6-03b8b4256b98\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [],
       \"row\": {\"b\": true}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [],
       \"row\": {\"r\": 123.5}}]' \\
    '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": -1,
               \"r\": 125,
               \"b\": false,
               \"s\": \"\",
               \"ia\": [\"set\", [1]],
               \"ra\": [\"set\", [1.5]],
               \"ba\": [\"set\", [false]],
               \"sa\": [\"set\", []],
               \"ua\": [\"set\", []]}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [[\"i\", \"<\", 1]],
       \"row\": {\"s\": \"newstring\"}}]' \\
    '[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"simple\",
       \"where\": [[\"i\", \"==\", 0]]}]' \\
    'reconnect'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:178"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true,
               "s": "mystring",
               "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],
               "ia": ["set", [1, 2, 3]],
               "ra": ["set", [-0.5]],
               "ba": ["set", [true]],
               "sa": ["set", ["abc", "def"]],
               "ua": ["set", [["uuid", "69443985-7806-45e2-b35f-574a04e720f9"],
                              ["uuid", "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [],
       "row": {"b": true}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [],
       "row": {"r": 123.5}}]' \
    '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": -1,
               "r": 125,
               "b": false,
               "s": "",
               "ia": ["set", [1]],
               "ra": ["set", [1.5]],
               "ba": ["set", [false]],
               "sa": ["set", []],
               "ua": ["set", []]}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [["i", "<", 1]],
       "row": {"s": "newstring"}}]' \
    '["idltest",
      {"op": "delete",
       "table": "simple",
       "where": [["i", "==", 0]]}]' \
    'reconnect'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:178"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]}]}
002: i=0 r=0 b=false s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=2 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
003: {\"error\":null,\"result\":[{\"count\":2}]}
004: i=0 r=0 b=true s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: i=1 r=2 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
005: {\"error\":null,\"result\":[{\"count\":2}]}
006: i=0 r=123.5 b=true s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
006: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
007: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<6>\"]}]}
008: i=-1 r=125 b=false s= u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
008: i=0 r=123.5 b=true s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
008: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
009: {\"error\":null,\"result\":[{\"count\":2}]}
010: i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
010: i=0 r=123.5 b=true s=newstring u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
010: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
011: {\"error\":null,\"result\":[{\"count\":1}]}
012: i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
012: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
013: reconnect
014: i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
014: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
015: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:178"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:178"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:178: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:178: wait failed" >&5

    $as_echo "ovsdb-idl.at:178" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:178"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1996
#AT_START_1997
at_fn_group_banner 1997 'ovsdb-idl.at:178' \
  "simple idl, initially empty, various ops - Python2 - tcp" "" 99
at_xfail=no
(
  $as_echo "1997. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:178" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:178"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:178"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:178: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:178: wait failed" >&5

    $as_echo "ovsdb-idl.at:178" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:178"
fi



   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true,
               \"s\": \"mystring\",
               \"u\": [\"uuid\", \"84f5c8f5-ac76-4dbc-a24f-8860eb407fc1\"],
               \"ia\": [\"set\", [1, 2, 3]],
               \"ra\": [\"set\", [-0.5]],
               \"ba\": [\"set\", [true]],
               \"sa\": [\"set\", [\"abc\", \"def\"]],
               \"ua\": [\"set\", [[\"uuid\", \"69443985-7806-45e2-b35f-574a04e720f9\"],
                              [\"uuid\", \"aad11ef0-816a-4b01-93e6-03b8b4256b98\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [],
       \"row\": {\"b\": true}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [],
       \"row\": {\"r\": 123.5}}]' \\
    '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": -1,
               \"r\": 125,
               \"b\": false,
               \"s\": \"\",
               \"ia\": [\"set\", [1]],
               \"ra\": [\"set\", [1.5]],
               \"ba\": [\"set\", [false]],
               \"sa\": [\"set\", []],
               \"ua\": [\"set\", []]}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [[\"i\", \"<\", 1]],
       \"row\": {\"s\": \"newstring\"}}]' \\
    '[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"simple\",
       \"where\": [[\"i\", \"==\", 0]]}]' \\
    'reconnect'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:178"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true,
               "s": "mystring",
               "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],
               "ia": ["set", [1, 2, 3]],
               "ra": ["set", [-0.5]],
               "ba": ["set", [true]],
               "sa": ["set", ["abc", "def"]],
               "ua": ["set", [["uuid", "69443985-7806-45e2-b35f-574a04e720f9"],
                              ["uuid", "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [],
       "row": {"b": true}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [],
       "row": {"r": 123.5}}]' \
    '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": -1,
               "r": 125,
               "b": false,
               "s": "",
               "ia": ["set", [1]],
               "ra": ["set", [1.5]],
               "ba": ["set", [false]],
               "sa": ["set", []],
               "ua": ["set", []]}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [["i", "<", 1]],
       "row": {"s": "newstring"}}]' \
    '["idltest",
      {"op": "delete",
       "table": "simple",
       "where": [["i", "==", 0]]}]' \
    'reconnect'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:178"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]}]}
002: i=0 r=0 b=false s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=2 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
003: {\"error\":null,\"result\":[{\"count\":2}]}
004: i=0 r=0 b=true s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: i=1 r=2 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
005: {\"error\":null,\"result\":[{\"count\":2}]}
006: i=0 r=123.5 b=true s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
006: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
007: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<6>\"]}]}
008: i=-1 r=125 b=false s= u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
008: i=0 r=123.5 b=true s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
008: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
009: {\"error\":null,\"result\":[{\"count\":2}]}
010: i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
010: i=0 r=123.5 b=true s=newstring u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
010: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
011: {\"error\":null,\"result\":[{\"count\":1}]}
012: i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
012: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
013: reconnect
014: i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
014: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
015: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:178"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:178"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:178: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:178: wait failed" >&5

    $as_echo "ovsdb-idl.at:178" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:178"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1997
#AT_START_1998
at_fn_group_banner 1998 'ovsdb-idl.at:178' \
  "simple idl, initially empty, various ops - Python3 - tcp" "" 99
at_xfail=no
(
  $as_echo "1998. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:178" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:178"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:178"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:178: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:178: wait failed" >&5

    $as_echo "ovsdb-idl.at:178" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:178"
fi



   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true,
               \"s\": \"mystring\",
               \"u\": [\"uuid\", \"84f5c8f5-ac76-4dbc-a24f-8860eb407fc1\"],
               \"ia\": [\"set\", [1, 2, 3]],
               \"ra\": [\"set\", [-0.5]],
               \"ba\": [\"set\", [true]],
               \"sa\": [\"set\", [\"abc\", \"def\"]],
               \"ua\": [\"set\", [[\"uuid\", \"69443985-7806-45e2-b35f-574a04e720f9\"],
                              [\"uuid\", \"aad11ef0-816a-4b01-93e6-03b8b4256b98\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [],
       \"row\": {\"b\": true}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [],
       \"row\": {\"r\": 123.5}}]' \\
    '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": -1,
               \"r\": 125,
               \"b\": false,
               \"s\": \"\",
               \"ia\": [\"set\", [1]],
               \"ra\": [\"set\", [1.5]],
               \"ba\": [\"set\", [false]],
               \"sa\": [\"set\", []],
               \"ua\": [\"set\", []]}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [[\"i\", \"<\", 1]],
       \"row\": {\"s\": \"newstring\"}}]' \\
    '[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"simple\",
       \"where\": [[\"i\", \"==\", 0]]}]' \\
    'reconnect'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:178"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true,
               "s": "mystring",
               "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],
               "ia": ["set", [1, 2, 3]],
               "ra": ["set", [-0.5]],
               "ba": ["set", [true]],
               "sa": ["set", ["abc", "def"]],
               "ua": ["set", [["uuid", "69443985-7806-45e2-b35f-574a04e720f9"],
                              ["uuid", "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [],
       "row": {"b": true}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [],
       "row": {"r": 123.5}}]' \
    '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": -1,
               "r": 125,
               "b": false,
               "s": "",
               "ia": ["set", [1]],
               "ra": ["set", [1.5]],
               "ba": ["set", [false]],
               "sa": ["set", []],
               "ua": ["set", []]}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [["i", "<", 1]],
       "row": {"s": "newstring"}}]' \
    '["idltest",
      {"op": "delete",
       "table": "simple",
       "where": [["i", "==", 0]]}]' \
    'reconnect'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:178"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]}]}
002: i=0 r=0 b=false s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=2 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
003: {\"error\":null,\"result\":[{\"count\":2}]}
004: i=0 r=0 b=true s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: i=1 r=2 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
005: {\"error\":null,\"result\":[{\"count\":2}]}
006: i=0 r=123.5 b=true s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
006: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
007: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<6>\"]}]}
008: i=-1 r=125 b=false s= u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
008: i=0 r=123.5 b=true s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
008: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
009: {\"error\":null,\"result\":[{\"count\":2}]}
010: i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
010: i=0 r=123.5 b=true s=newstring u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
010: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
011: {\"error\":null,\"result\":[{\"count\":1}]}
012: i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
012: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
013: reconnect
014: i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
014: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
015: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:178"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:178"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:178: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:178: wait failed" >&5

    $as_echo "ovsdb-idl.at:178" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:178"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1998
#AT_START_1999
at_fn_group_banner 1999 'ovsdb-idl.at:178' \
  "simple idl, initially empty, various ops - Python2 - tcp6" "" 99
at_xfail=no
(
  $as_echo "1999. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:178" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:178"
   $as_echo "ovsdb-idl.at:178" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:178"
   $as_echo "ovsdb-idl.at:178" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:178"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:178"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:178: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:178: wait failed" >&5

    $as_echo "ovsdb-idl.at:178" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:178"
fi

   echo "TCP_PORT=$TCP_PORT"


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true,
               \"s\": \"mystring\",
               \"u\": [\"uuid\", \"84f5c8f5-ac76-4dbc-a24f-8860eb407fc1\"],
               \"ia\": [\"set\", [1, 2, 3]],
               \"ra\": [\"set\", [-0.5]],
               \"ba\": [\"set\", [true]],
               \"sa\": [\"set\", [\"abc\", \"def\"]],
               \"ua\": [\"set\", [[\"uuid\", \"69443985-7806-45e2-b35f-574a04e720f9\"],
                              [\"uuid\", \"aad11ef0-816a-4b01-93e6-03b8b4256b98\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [],
       \"row\": {\"b\": true}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [],
       \"row\": {\"r\": 123.5}}]' \\
    '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": -1,
               \"r\": 125,
               \"b\": false,
               \"s\": \"\",
               \"ia\": [\"set\", [1]],
               \"ra\": [\"set\", [1.5]],
               \"ba\": [\"set\", [false]],
               \"sa\": [\"set\", []],
               \"ua\": [\"set\", []]}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [[\"i\", \"<\", 1]],
       \"row\": {\"s\": \"newstring\"}}]' \\
    '[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"simple\",
       \"where\": [[\"i\", \"==\", 0]]}]' \\
    'reconnect'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:178"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true,
               "s": "mystring",
               "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],
               "ia": ["set", [1, 2, 3]],
               "ra": ["set", [-0.5]],
               "ba": ["set", [true]],
               "sa": ["set", ["abc", "def"]],
               "ua": ["set", [["uuid", "69443985-7806-45e2-b35f-574a04e720f9"],
                              ["uuid", "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [],
       "row": {"b": true}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [],
       "row": {"r": 123.5}}]' \
    '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": -1,
               "r": 125,
               "b": false,
               "s": "",
               "ia": ["set", [1]],
               "ra": ["set", [1.5]],
               "ba": ["set", [false]],
               "sa": ["set", []],
               "ua": ["set", []]}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [["i", "<", 1]],
       "row": {"s": "newstring"}}]' \
    '["idltest",
      {"op": "delete",
       "table": "simple",
       "where": [["i", "==", 0]]}]' \
    'reconnect'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:178"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]}]}
002: i=0 r=0 b=false s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=2 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
003: {\"error\":null,\"result\":[{\"count\":2}]}
004: i=0 r=0 b=true s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: i=1 r=2 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
005: {\"error\":null,\"result\":[{\"count\":2}]}
006: i=0 r=123.5 b=true s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
006: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
007: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<6>\"]}]}
008: i=-1 r=125 b=false s= u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
008: i=0 r=123.5 b=true s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
008: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
009: {\"error\":null,\"result\":[{\"count\":2}]}
010: i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
010: i=0 r=123.5 b=true s=newstring u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
010: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
011: {\"error\":null,\"result\":[{\"count\":1}]}
012: i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
012: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
013: reconnect
014: i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
014: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
015: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:178"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:178"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:178: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:178: wait failed" >&5

    $as_echo "ovsdb-idl.at:178" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:178"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1999
#AT_START_2000
at_fn_group_banner 2000 'ovsdb-idl.at:178' \
  "simple idl, initially empty, various ops - Python3 - tcp6" "" 99
at_xfail=no
(
  $as_echo "2000. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:178" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:178"
   $as_echo "ovsdb-idl.at:178" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:178"
   $as_echo "ovsdb-idl.at:178" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:178"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:178"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:178: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:178: wait failed" >&5

    $as_echo "ovsdb-idl.at:178" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:178"
fi

   echo "TCP_PORT=$TCP_PORT"


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true,
               \"s\": \"mystring\",
               \"u\": [\"uuid\", \"84f5c8f5-ac76-4dbc-a24f-8860eb407fc1\"],
               \"ia\": [\"set\", [1, 2, 3]],
               \"ra\": [\"set\", [-0.5]],
               \"ba\": [\"set\", [true]],
               \"sa\": [\"set\", [\"abc\", \"def\"]],
               \"ua\": [\"set\", [[\"uuid\", \"69443985-7806-45e2-b35f-574a04e720f9\"],
                              [\"uuid\", \"aad11ef0-816a-4b01-93e6-03b8b4256b98\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [],
       \"row\": {\"b\": true}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [],
       \"row\": {\"r\": 123.5}}]' \\
    '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": -1,
               \"r\": 125,
               \"b\": false,
               \"s\": \"\",
               \"ia\": [\"set\", [1]],
               \"ra\": [\"set\", [1.5]],
               \"ba\": [\"set\", [false]],
               \"sa\": [\"set\", []],
               \"ua\": [\"set\", []]}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [[\"i\", \"<\", 1]],
       \"row\": {\"s\": \"newstring\"}}]' \\
    '[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"simple\",
       \"where\": [[\"i\", \"==\", 0]]}]' \\
    'reconnect'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:178"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true,
               "s": "mystring",
               "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],
               "ia": ["set", [1, 2, 3]],
               "ra": ["set", [-0.5]],
               "ba": ["set", [true]],
               "sa": ["set", ["abc", "def"]],
               "ua": ["set", [["uuid", "69443985-7806-45e2-b35f-574a04e720f9"],
                              ["uuid", "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [],
       "row": {"b": true}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [],
       "row": {"r": 123.5}}]' \
    '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": -1,
               "r": 125,
               "b": false,
               "s": "",
               "ia": ["set", [1]],
               "ra": ["set", [1.5]],
               "ba": ["set", [false]],
               "sa": ["set", []],
               "ua": ["set", []]}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [["i", "<", 1]],
       "row": {"s": "newstring"}}]' \
    '["idltest",
      {"op": "delete",
       "table": "simple",
       "where": [["i", "==", 0]]}]' \
    'reconnect'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:178"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]}]}
002: i=0 r=0 b=false s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=2 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
003: {\"error\":null,\"result\":[{\"count\":2}]}
004: i=0 r=0 b=true s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: i=1 r=2 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
005: {\"error\":null,\"result\":[{\"count\":2}]}
006: i=0 r=123.5 b=true s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
006: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
007: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<6>\"]}]}
008: i=-1 r=125 b=false s= u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
008: i=0 r=123.5 b=true s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
008: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
009: {\"error\":null,\"result\":[{\"count\":2}]}
010: i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
010: i=0 r=123.5 b=true s=newstring u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
010: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
011: {\"error\":null,\"result\":[{\"count\":1}]}
012: i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
012: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
013: reconnect
014: i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
014: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
015: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:178"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:178: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:178"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:178: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:178: wait failed" >&5

    $as_echo "ovsdb-idl.at:178" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:178"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2000
#AT_START_2001
at_fn_group_banner 2001 'ovsdb-idl.at:256' \
  "simple idl, initially populated - C" "            " 99
at_xfail=no
(
  $as_echo "2001. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:256"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true,
               \"s\": \"mystring\",
               \"u\": [\"uuid\", \"84f5c8f5-ac76-4dbc-a24f-8860eb407fc1\"],
               \"ia\": [\"set\", [1, 2, 3]],
               \"ra\": [\"set\", [-0.5]],
               \"ba\": [\"set\", [true]],
               \"sa\": [\"set\", [\"abc\", \"def\"]],
               \"ua\": [\"set\", [[\"uuid\", \"69443985-7806-45e2-b35f-574a04e720f9\"],
                              [\"uuid\", \"aad11ef0-816a-4b01-93e6-03b8b4256b98\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:256"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true,
               "s": "mystring",
               "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],
               "ia": ["set", [1, 2, 3]],
               "ra": ["set", [-0.5]],
               "ba": ["set", [true]],
               "sa": ["set", ["abc", "def"]],
               "ua": ["set", [["uuid", "69443985-7806-45e2-b35f-574a04e720f9"],
                              ["uuid", "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [],
       \"row\": {\"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:256"
( $at_check_trace; test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [],
       "row": {"b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:256"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
000: i=1 r=2 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<5>
001: {\"error\":null,\"result\":[{\"count\":2}]}
002: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=2 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<5>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:256"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:256"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:256: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:256: wait failed" >&5

    $as_echo "ovsdb-idl.at:256" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:256"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2001
#AT_START_2002
at_fn_group_banner 2002 'ovsdb-idl.at:256' \
  "simple idl, initially populated - Python2" "      " 99
at_xfail=no
(
  $as_echo "2002. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:256" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:256"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:256"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true,
               \"s\": \"mystring\",
               \"u\": [\"uuid\", \"84f5c8f5-ac76-4dbc-a24f-8860eb407fc1\"],
               \"ia\": [\"set\", [1, 2, 3]],
               \"ra\": [\"set\", [-0.5]],
               \"ba\": [\"set\", [true]],
               \"sa\": [\"set\", [\"abc\", \"def\"]],
               \"ua\": [\"set\", [[\"uuid\", \"69443985-7806-45e2-b35f-574a04e720f9\"],
                              [\"uuid\", \"aad11ef0-816a-4b01-93e6-03b8b4256b98\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:256"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true,
               "s": "mystring",
               "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],
               "ia": ["set", [1, 2, 3]],
               "ra": ["set", [-0.5]],
               "ba": ["set", [true]],
               "sa": ["set", ["abc", "def"]],
               "ua": ["set", [["uuid", "69443985-7806-45e2-b35f-574a04e720f9"],
                              ["uuid", "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [],
       \"row\": {\"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:256"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [],
       "row": {"b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:256"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
000: i=1 r=2 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<5>
001: {\"error\":null,\"result\":[{\"count\":2}]}
002: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=2 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<5>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:256"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:256"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:256: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:256: wait failed" >&5

    $as_echo "ovsdb-idl.at:256" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:256"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2002
#AT_START_2003
at_fn_group_banner 2003 'ovsdb-idl.at:256' \
  "simple idl, initially populated - Python3" "      " 99
at_xfail=no
(
  $as_echo "2003. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:256" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:256"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:256"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true,
               \"s\": \"mystring\",
               \"u\": [\"uuid\", \"84f5c8f5-ac76-4dbc-a24f-8860eb407fc1\"],
               \"ia\": [\"set\", [1, 2, 3]],
               \"ra\": [\"set\", [-0.5]],
               \"ba\": [\"set\", [true]],
               \"sa\": [\"set\", [\"abc\", \"def\"]],
               \"ua\": [\"set\", [[\"uuid\", \"69443985-7806-45e2-b35f-574a04e720f9\"],
                              [\"uuid\", \"aad11ef0-816a-4b01-93e6-03b8b4256b98\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:256"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true,
               "s": "mystring",
               "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],
               "ia": ["set", [1, 2, 3]],
               "ra": ["set", [-0.5]],
               "ba": ["set", [true]],
               "sa": ["set", ["abc", "def"]],
               "ua": ["set", [["uuid", "69443985-7806-45e2-b35f-574a04e720f9"],
                              ["uuid", "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [],
       \"row\": {\"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:256"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [],
       "row": {"b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:256"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
000: i=1 r=2 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<5>
001: {\"error\":null,\"result\":[{\"count\":2}]}
002: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=2 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<5>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:256"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:256"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:256: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:256: wait failed" >&5

    $as_echo "ovsdb-idl.at:256" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:256"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2003
#AT_START_2004
at_fn_group_banner 2004 'ovsdb-idl.at:256' \
  "simple idl, initially populated - Python2 - register_columns" "" 99
at_xfail=no
(
  $as_echo "2004. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:256" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:256"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:256"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true,
               \"s\": \"mystring\",
               \"u\": [\"uuid\", \"84f5c8f5-ac76-4dbc-a24f-8860eb407fc1\"],
               \"ia\": [\"set\", [1, 2, 3]],
               \"ra\": [\"set\", [-0.5]],
               \"ba\": [\"set\", [true]],
               \"sa\": [\"set\", [\"abc\", \"def\"]],
               \"ua\": [\"set\", [[\"uuid\", \"69443985-7806-45e2-b35f-574a04e720f9\"],
                              [\"uuid\", \"aad11ef0-816a-4b01-93e6-03b8b4256b98\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:256"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true,
               "s": "mystring",
               "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],
               "ia": ["set", [1, 2, 3]],
               "ra": ["set", [-0.5]],
               "ba": ["set", [true]],
               "sa": ["set", ["abc", "def"]],
               "ua": ["set", [["uuid", "69443985-7806-45e2-b35f-574a04e720f9"],
                              ["uuid", "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [],
       \"row\": {\"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:256"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [],
       "row": {"b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:256"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
000: i=1 r=2 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<5>
001: {\"error\":null,\"result\":[{\"count\":2}]}
002: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=2 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<5>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:256"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:256"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:256: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:256: wait failed" >&5

    $as_echo "ovsdb-idl.at:256" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:256"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2004
#AT_START_2005
at_fn_group_banner 2005 'ovsdb-idl.at:256' \
  "simple idl, initially populated - Python3 - register_columns" "" 99
at_xfail=no
(
  $as_echo "2005. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:256" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:256"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:256"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true,
               \"s\": \"mystring\",
               \"u\": [\"uuid\", \"84f5c8f5-ac76-4dbc-a24f-8860eb407fc1\"],
               \"ia\": [\"set\", [1, 2, 3]],
               \"ra\": [\"set\", [-0.5]],
               \"ba\": [\"set\", [true]],
               \"sa\": [\"set\", [\"abc\", \"def\"]],
               \"ua\": [\"set\", [[\"uuid\", \"69443985-7806-45e2-b35f-574a04e720f9\"],
                              [\"uuid\", \"aad11ef0-816a-4b01-93e6-03b8b4256b98\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:256"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true,
               "s": "mystring",
               "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],
               "ia": ["set", [1, 2, 3]],
               "ra": ["set", [-0.5]],
               "ba": ["set", [true]],
               "sa": ["set", ["abc", "def"]],
               "ua": ["set", [["uuid", "69443985-7806-45e2-b35f-574a04e720f9"],
                              ["uuid", "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [],
       \"row\": {\"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:256"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [],
       "row": {"b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:256"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
000: i=1 r=2 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<5>
001: {\"error\":null,\"result\":[{\"count\":2}]}
002: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=2 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<5>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:256"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:256"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:256: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:256: wait failed" >&5

    $as_echo "ovsdb-idl.at:256" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:256"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2005
#AT_START_2006
at_fn_group_banner 2006 'ovsdb-idl.at:256' \
  "simple idl, initially populated - Python2 - tcp" "" 99
at_xfail=no
(
  $as_echo "2006. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:256" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:256"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:256"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:256: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:256: wait failed" >&5

    $as_echo "ovsdb-idl.at:256" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:256"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true,
               \"s\": \"mystring\",
               \"u\": [\"uuid\", \"84f5c8f5-ac76-4dbc-a24f-8860eb407fc1\"],
               \"ia\": [\"set\", [1, 2, 3]],
               \"ra\": [\"set\", [-0.5]],
               \"ba\": [\"set\", [true]],
               \"sa\": [\"set\", [\"abc\", \"def\"]],
               \"ua\": [\"set\", [[\"uuid\", \"69443985-7806-45e2-b35f-574a04e720f9\"],
                              [\"uuid\", \"aad11ef0-816a-4b01-93e6-03b8b4256b98\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:256"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true,
               "s": "mystring",
               "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],
               "ia": ["set", [1, 2, 3]],
               "ra": ["set", [-0.5]],
               "ba": ["set", [true]],
               "sa": ["set", ["abc", "def"]],
               "ua": ["set", [["uuid", "69443985-7806-45e2-b35f-574a04e720f9"],
                              ["uuid", "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [],
       \"row\": {\"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:256"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [],
       "row": {"b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:256"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
000: i=1 r=2 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<5>
001: {\"error\":null,\"result\":[{\"count\":2}]}
002: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=2 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<5>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:256"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:256"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:256: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:256: wait failed" >&5

    $as_echo "ovsdb-idl.at:256" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:256"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2006
#AT_START_2007
at_fn_group_banner 2007 'ovsdb-idl.at:256' \
  "simple idl, initially populated - Python3 - tcp" "" 99
at_xfail=no
(
  $as_echo "2007. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:256" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:256"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:256"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:256: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:256: wait failed" >&5

    $as_echo "ovsdb-idl.at:256" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:256"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true,
               \"s\": \"mystring\",
               \"u\": [\"uuid\", \"84f5c8f5-ac76-4dbc-a24f-8860eb407fc1\"],
               \"ia\": [\"set\", [1, 2, 3]],
               \"ra\": [\"set\", [-0.5]],
               \"ba\": [\"set\", [true]],
               \"sa\": [\"set\", [\"abc\", \"def\"]],
               \"ua\": [\"set\", [[\"uuid\", \"69443985-7806-45e2-b35f-574a04e720f9\"],
                              [\"uuid\", \"aad11ef0-816a-4b01-93e6-03b8b4256b98\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:256"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true,
               "s": "mystring",
               "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],
               "ia": ["set", [1, 2, 3]],
               "ra": ["set", [-0.5]],
               "ba": ["set", [true]],
               "sa": ["set", ["abc", "def"]],
               "ua": ["set", [["uuid", "69443985-7806-45e2-b35f-574a04e720f9"],
                              ["uuid", "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [],
       \"row\": {\"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:256"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [],
       "row": {"b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:256"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
000: i=1 r=2 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<5>
001: {\"error\":null,\"result\":[{\"count\":2}]}
002: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=2 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<5>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:256"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:256"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:256: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:256: wait failed" >&5

    $as_echo "ovsdb-idl.at:256" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:256"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2007
#AT_START_2008
at_fn_group_banner 2008 'ovsdb-idl.at:256' \
  "simple idl, initially populated - Python2 - tcp6" "" 99
at_xfail=no
(
  $as_echo "2008. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:256" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:256"
   $as_echo "ovsdb-idl.at:256" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:256"
   $as_echo "ovsdb-idl.at:256" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:256"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:256"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:256: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:256: wait failed" >&5

    $as_echo "ovsdb-idl.at:256" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:256"
fi

   echo "TCP_PORT=$TCP_PORT"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: ovsdb-client transact \"tcp:[::1]:\$TCP_PORT\" '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true,
               \"s\": \"mystring\",
               \"u\": [\"uuid\", \"84f5c8f5-ac76-4dbc-a24f-8860eb407fc1\"],
               \"ia\": [\"set\", [1, 2, 3]],
               \"ra\": [\"set\", [-0.5]],
               \"ba\": [\"set\", [true]],
               \"sa\": [\"set\", [\"abc\", \"def\"]],
               \"ua\": [\"set\", [[\"uuid\", \"69443985-7806-45e2-b35f-574a04e720f9\"],
                              [\"uuid\", \"aad11ef0-816a-4b01-93e6-03b8b4256b98\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:256"
( $at_check_trace; ovsdb-client transact "tcp:[::1]:$TCP_PORT" '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true,
               "s": "mystring",
               "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],
               "ia": ["set", [1, 2, 3]],
               "ra": ["set", [-0.5]],
               "ba": ["set", [true]],
               "sa": ["set", ["abc", "def"]],
               "ua": ["set", [["uuid", "69443985-7806-45e2-b35f-574a04e720f9"],
                              ["uuid", "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [],
       \"row\": {\"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:256"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [],
       "row": {"b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:256"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
000: i=1 r=2 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<5>
001: {\"error\":null,\"result\":[{\"count\":2}]}
002: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=2 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<5>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:256"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:256"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:256: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:256: wait failed" >&5

    $as_echo "ovsdb-idl.at:256" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:256"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2008
#AT_START_2009
at_fn_group_banner 2009 'ovsdb-idl.at:256' \
  "simple idl, initially populated - Python3 - tcp6" "" 99
at_xfail=no
(
  $as_echo "2009. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:256" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:256"
   $as_echo "ovsdb-idl.at:256" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:256"
   $as_echo "ovsdb-idl.at:256" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:256"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:256"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:256: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:256: wait failed" >&5

    $as_echo "ovsdb-idl.at:256" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:256"
fi

   echo "TCP_PORT=$TCP_PORT"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: ovsdb-client transact \"tcp:[::1]:\$TCP_PORT\" '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true,
               \"s\": \"mystring\",
               \"u\": [\"uuid\", \"84f5c8f5-ac76-4dbc-a24f-8860eb407fc1\"],
               \"ia\": [\"set\", [1, 2, 3]],
               \"ra\": [\"set\", [-0.5]],
               \"ba\": [\"set\", [true]],
               \"sa\": [\"set\", [\"abc\", \"def\"]],
               \"ua\": [\"set\", [[\"uuid\", \"69443985-7806-45e2-b35f-574a04e720f9\"],
                              [\"uuid\", \"aad11ef0-816a-4b01-93e6-03b8b4256b98\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:256"
( $at_check_trace; ovsdb-client transact "tcp:[::1]:$TCP_PORT" '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true,
               "s": "mystring",
               "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],
               "ia": ["set", [1, 2, 3]],
               "ra": ["set", [-0.5]],
               "ba": ["set", [true]],
               "sa": ["set", ["abc", "def"]],
               "ua": ["set", [["uuid", "69443985-7806-45e2-b35f-574a04e720f9"],
                              ["uuid", "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [],
       \"row\": {\"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:256"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [],
       "row": {"b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:256"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
000: i=1 r=2 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<5>
001: {\"error\":null,\"result\":[{\"count\":2}]}
002: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=2 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<5>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:256"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:256: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:256"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:256: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:256: wait failed" >&5

    $as_echo "ovsdb-idl.at:256" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:256"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2009
#AT_START_2010
at_fn_group_banner 2010 'ovsdb-idl.at:287' \
  "simple idl, writing via IDL - C" "                " 99
at_xfail=no
(
  $as_echo "2010. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:287"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true,
               \"s\": \"mystring\",
               \"u\": [\"uuid\", \"84f5c8f5-ac76-4dbc-a24f-8860eb407fc1\"],
               \"ia\": [\"set\", [1, 2, 3]],
               \"ra\": [\"set\", [-0.5]],
               \"ba\": [\"set\", [true]],
               \"sa\": [\"set\", [\"abc\", \"def\"]],
               \"ua\": [\"set\", [[\"uuid\", \"69443985-7806-45e2-b35f-574a04e720f9\"],
                              [\"uuid\", \"aad11ef0-816a-4b01-93e6-03b8b4256b98\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:287"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true,
               "s": "mystring",
               "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],
               "ia": ["set", [1, 2, 3]],
               "ra": ["set", [-0.5]],
               "ba": ["set", [true]],
               "sa": ["set", ["abc", "def"]],
               "ua": ["set", [["uuid", "69443985-7806-45e2-b35f-574a04e720f9"],
                              ["uuid", "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket 'verify 0 b, verify 1 r, set 0 b 1, set 1 r 3.5' \\
    'insert 2, verify 2 i, verify 1 b, delete 1'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:287"
( $at_check_trace; test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket 'verify 0 b, verify 1 r, set 0 b 1, set 1 r 3.5' \
    'insert 2, verify 2 i, verify 1 b, delete 1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:287"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
000: i=1 r=2 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<5>
001: commit, status=success
002: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=3.5 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<5>
003: commit, status=success
004: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: i=2 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<6>
005: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:287"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:287"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:287: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:287: wait failed" >&5

    $as_echo "ovsdb-idl.at:287" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:287"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2010
#AT_START_2011
at_fn_group_banner 2011 'ovsdb-idl.at:287' \
  "simple idl, writing via IDL - Python2" "          " 99
at_xfail=no
(
  $as_echo "2011. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:287" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:287"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:287"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true,
               \"s\": \"mystring\",
               \"u\": [\"uuid\", \"84f5c8f5-ac76-4dbc-a24f-8860eb407fc1\"],
               \"ia\": [\"set\", [1, 2, 3]],
               \"ra\": [\"set\", [-0.5]],
               \"ba\": [\"set\", [true]],
               \"sa\": [\"set\", [\"abc\", \"def\"]],
               \"ua\": [\"set\", [[\"uuid\", \"69443985-7806-45e2-b35f-574a04e720f9\"],
                              [\"uuid\", \"aad11ef0-816a-4b01-93e6-03b8b4256b98\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:287"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true,
               "s": "mystring",
               "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],
               "ia": ["set", [1, 2, 3]],
               "ra": ["set", [-0.5]],
               "ba": ["set", [true]],
               "sa": ["set", ["abc", "def"]],
               "ua": ["set", [["uuid", "69443985-7806-45e2-b35f-574a04e720f9"],
                              ["uuid", "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket 'verify 0 b, verify 1 r, set 0 b 1, set 1 r 3.5' \\
    'insert 2, verify 2 i, verify 1 b, delete 1'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:287"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'verify 0 b, verify 1 r, set 0 b 1, set 1 r 3.5' \
    'insert 2, verify 2 i, verify 1 b, delete 1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:287"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
000: i=1 r=2 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<5>
001: commit, status=success
002: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=3.5 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<5>
003: commit, status=success
004: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: i=2 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<6>
005: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:287"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:287"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:287: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:287: wait failed" >&5

    $as_echo "ovsdb-idl.at:287" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:287"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2011
#AT_START_2012
at_fn_group_banner 2012 'ovsdb-idl.at:287' \
  "simple idl, writing via IDL - Python3" "          " 99
at_xfail=no
(
  $as_echo "2012. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:287" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:287"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:287"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true,
               \"s\": \"mystring\",
               \"u\": [\"uuid\", \"84f5c8f5-ac76-4dbc-a24f-8860eb407fc1\"],
               \"ia\": [\"set\", [1, 2, 3]],
               \"ra\": [\"set\", [-0.5]],
               \"ba\": [\"set\", [true]],
               \"sa\": [\"set\", [\"abc\", \"def\"]],
               \"ua\": [\"set\", [[\"uuid\", \"69443985-7806-45e2-b35f-574a04e720f9\"],
                              [\"uuid\", \"aad11ef0-816a-4b01-93e6-03b8b4256b98\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:287"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true,
               "s": "mystring",
               "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],
               "ia": ["set", [1, 2, 3]],
               "ra": ["set", [-0.5]],
               "ba": ["set", [true]],
               "sa": ["set", ["abc", "def"]],
               "ua": ["set", [["uuid", "69443985-7806-45e2-b35f-574a04e720f9"],
                              ["uuid", "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket 'verify 0 b, verify 1 r, set 0 b 1, set 1 r 3.5' \\
    'insert 2, verify 2 i, verify 1 b, delete 1'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:287"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'verify 0 b, verify 1 r, set 0 b 1, set 1 r 3.5' \
    'insert 2, verify 2 i, verify 1 b, delete 1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:287"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
000: i=1 r=2 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<5>
001: commit, status=success
002: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=3.5 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<5>
003: commit, status=success
004: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: i=2 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<6>
005: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:287"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:287"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:287: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:287: wait failed" >&5

    $as_echo "ovsdb-idl.at:287" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:287"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2012
#AT_START_2013
at_fn_group_banner 2013 'ovsdb-idl.at:287' \
  "simple idl, writing via IDL - Python2 - register_columns" "" 99
at_xfail=no
(
  $as_echo "2013. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:287" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:287"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:287"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true,
               \"s\": \"mystring\",
               \"u\": [\"uuid\", \"84f5c8f5-ac76-4dbc-a24f-8860eb407fc1\"],
               \"ia\": [\"set\", [1, 2, 3]],
               \"ra\": [\"set\", [-0.5]],
               \"ba\": [\"set\", [true]],
               \"sa\": [\"set\", [\"abc\", \"def\"]],
               \"ua\": [\"set\", [[\"uuid\", \"69443985-7806-45e2-b35f-574a04e720f9\"],
                              [\"uuid\", \"aad11ef0-816a-4b01-93e6-03b8b4256b98\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:287"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true,
               "s": "mystring",
               "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],
               "ia": ["set", [1, 2, 3]],
               "ra": ["set", [-0.5]],
               "ba": ["set", [true]],
               "sa": ["set", ["abc", "def"]],
               "ua": ["set", [["uuid", "69443985-7806-45e2-b35f-574a04e720f9"],
                              ["uuid", "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'verify 0 b, verify 1 r, set 0 b 1, set 1 r 3.5' \\
    'insert 2, verify 2 i, verify 1 b, delete 1'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:287"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'verify 0 b, verify 1 r, set 0 b 1, set 1 r 3.5' \
    'insert 2, verify 2 i, verify 1 b, delete 1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:287"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
000: i=1 r=2 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<5>
001: commit, status=success
002: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=3.5 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<5>
003: commit, status=success
004: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: i=2 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<6>
005: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:287"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:287"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:287: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:287: wait failed" >&5

    $as_echo "ovsdb-idl.at:287" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:287"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2013
#AT_START_2014
at_fn_group_banner 2014 'ovsdb-idl.at:287' \
  "simple idl, writing via IDL - Python3 - register_columns" "" 99
at_xfail=no
(
  $as_echo "2014. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:287" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:287"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:287"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true,
               \"s\": \"mystring\",
               \"u\": [\"uuid\", \"84f5c8f5-ac76-4dbc-a24f-8860eb407fc1\"],
               \"ia\": [\"set\", [1, 2, 3]],
               \"ra\": [\"set\", [-0.5]],
               \"ba\": [\"set\", [true]],
               \"sa\": [\"set\", [\"abc\", \"def\"]],
               \"ua\": [\"set\", [[\"uuid\", \"69443985-7806-45e2-b35f-574a04e720f9\"],
                              [\"uuid\", \"aad11ef0-816a-4b01-93e6-03b8b4256b98\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:287"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true,
               "s": "mystring",
               "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],
               "ia": ["set", [1, 2, 3]],
               "ra": ["set", [-0.5]],
               "ba": ["set", [true]],
               "sa": ["set", ["abc", "def"]],
               "ua": ["set", [["uuid", "69443985-7806-45e2-b35f-574a04e720f9"],
                              ["uuid", "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'verify 0 b, verify 1 r, set 0 b 1, set 1 r 3.5' \\
    'insert 2, verify 2 i, verify 1 b, delete 1'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:287"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'verify 0 b, verify 1 r, set 0 b 1, set 1 r 3.5' \
    'insert 2, verify 2 i, verify 1 b, delete 1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:287"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
000: i=1 r=2 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<5>
001: commit, status=success
002: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=3.5 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<5>
003: commit, status=success
004: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: i=2 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<6>
005: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:287"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:287"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:287: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:287: wait failed" >&5

    $as_echo "ovsdb-idl.at:287" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:287"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2014
#AT_START_2015
at_fn_group_banner 2015 'ovsdb-idl.at:287' \
  "simple idl, writing via IDL - Python2 - tcp" "    " 99
at_xfail=no
(
  $as_echo "2015. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:287" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:287"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:287"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:287: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:287: wait failed" >&5

    $as_echo "ovsdb-idl.at:287" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:287"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true,
               \"s\": \"mystring\",
               \"u\": [\"uuid\", \"84f5c8f5-ac76-4dbc-a24f-8860eb407fc1\"],
               \"ia\": [\"set\", [1, 2, 3]],
               \"ra\": [\"set\", [-0.5]],
               \"ba\": [\"set\", [true]],
               \"sa\": [\"set\", [\"abc\", \"def\"]],
               \"ua\": [\"set\", [[\"uuid\", \"69443985-7806-45e2-b35f-574a04e720f9\"],
                              [\"uuid\", \"aad11ef0-816a-4b01-93e6-03b8b4256b98\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:287"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true,
               "s": "mystring",
               "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],
               "ia": ["set", [1, 2, 3]],
               "ra": ["set", [-0.5]],
               "ba": ["set", [true]],
               "sa": ["set", ["abc", "def"]],
               "ua": ["set", [["uuid", "69443985-7806-45e2-b35f-574a04e720f9"],
                              ["uuid", "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT 'verify 0 b, verify 1 r, set 0 b 1, set 1 r 3.5' \\
    'insert 2, verify 2 i, verify 1 b, delete 1'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:287"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT 'verify 0 b, verify 1 r, set 0 b 1, set 1 r 3.5' \
    'insert 2, verify 2 i, verify 1 b, delete 1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:287"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
000: i=1 r=2 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<5>
001: commit, status=success
002: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=3.5 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<5>
003: commit, status=success
004: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: i=2 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<6>
005: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:287"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:287"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:287: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:287: wait failed" >&5

    $as_echo "ovsdb-idl.at:287" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:287"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2015
#AT_START_2016
at_fn_group_banner 2016 'ovsdb-idl.at:287' \
  "simple idl, writing via IDL - Python3 - tcp" "    " 99
at_xfail=no
(
  $as_echo "2016. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:287" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:287"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:287"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:287: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:287: wait failed" >&5

    $as_echo "ovsdb-idl.at:287" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:287"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true,
               \"s\": \"mystring\",
               \"u\": [\"uuid\", \"84f5c8f5-ac76-4dbc-a24f-8860eb407fc1\"],
               \"ia\": [\"set\", [1, 2, 3]],
               \"ra\": [\"set\", [-0.5]],
               \"ba\": [\"set\", [true]],
               \"sa\": [\"set\", [\"abc\", \"def\"]],
               \"ua\": [\"set\", [[\"uuid\", \"69443985-7806-45e2-b35f-574a04e720f9\"],
                              [\"uuid\", \"aad11ef0-816a-4b01-93e6-03b8b4256b98\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:287"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true,
               "s": "mystring",
               "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],
               "ia": ["set", [1, 2, 3]],
               "ra": ["set", [-0.5]],
               "ba": ["set", [true]],
               "sa": ["set", ["abc", "def"]],
               "ua": ["set", [["uuid", "69443985-7806-45e2-b35f-574a04e720f9"],
                              ["uuid", "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT 'verify 0 b, verify 1 r, set 0 b 1, set 1 r 3.5' \\
    'insert 2, verify 2 i, verify 1 b, delete 1'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:287"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT 'verify 0 b, verify 1 r, set 0 b 1, set 1 r 3.5' \
    'insert 2, verify 2 i, verify 1 b, delete 1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:287"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
000: i=1 r=2 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<5>
001: commit, status=success
002: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=3.5 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<5>
003: commit, status=success
004: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: i=2 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<6>
005: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:287"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:287"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:287: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:287: wait failed" >&5

    $as_echo "ovsdb-idl.at:287" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:287"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2016
#AT_START_2017
at_fn_group_banner 2017 'ovsdb-idl.at:287' \
  "simple idl, writing via IDL - Python2 - tcp6" "   " 99
at_xfail=no
(
  $as_echo "2017. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:287" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:287"
   $as_echo "ovsdb-idl.at:287" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:287"
   $as_echo "ovsdb-idl.at:287" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:287"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:287"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:287: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:287: wait failed" >&5

    $as_echo "ovsdb-idl.at:287" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:287"
fi

   echo "TCP_PORT=$TCP_PORT"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: ovsdb-client transact \"tcp:[::1]:\$TCP_PORT\" '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true,
               \"s\": \"mystring\",
               \"u\": [\"uuid\", \"84f5c8f5-ac76-4dbc-a24f-8860eb407fc1\"],
               \"ia\": [\"set\", [1, 2, 3]],
               \"ra\": [\"set\", [-0.5]],
               \"ba\": [\"set\", [true]],
               \"sa\": [\"set\", [\"abc\", \"def\"]],
               \"ua\": [\"set\", [[\"uuid\", \"69443985-7806-45e2-b35f-574a04e720f9\"],
                              [\"uuid\", \"aad11ef0-816a-4b01-93e6-03b8b4256b98\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:287"
( $at_check_trace; ovsdb-client transact "tcp:[::1]:$TCP_PORT" '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true,
               "s": "mystring",
               "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],
               "ia": ["set", [1, 2, 3]],
               "ra": ["set", [-0.5]],
               "ba": ["set", [true]],
               "sa": ["set", ["abc", "def"]],
               "ua": ["set", [["uuid", "69443985-7806-45e2-b35f-574a04e720f9"],
                              ["uuid", "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT 'verify 0 b, verify 1 r, set 0 b 1, set 1 r 3.5' \\
    'insert 2, verify 2 i, verify 1 b, delete 1'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:287"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT 'verify 0 b, verify 1 r, set 0 b 1, set 1 r 3.5' \
    'insert 2, verify 2 i, verify 1 b, delete 1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:287"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
000: i=1 r=2 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<5>
001: commit, status=success
002: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=3.5 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<5>
003: commit, status=success
004: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: i=2 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<6>
005: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:287"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:287"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:287: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:287: wait failed" >&5

    $as_echo "ovsdb-idl.at:287" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:287"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2017
#AT_START_2018
at_fn_group_banner 2018 'ovsdb-idl.at:287' \
  "simple idl, writing via IDL - Python3 - tcp6" "   " 99
at_xfail=no
(
  $as_echo "2018. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:287" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:287"
   $as_echo "ovsdb-idl.at:287" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:287"
   $as_echo "ovsdb-idl.at:287" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:287"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:287"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:287: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:287: wait failed" >&5

    $as_echo "ovsdb-idl.at:287" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:287"
fi

   echo "TCP_PORT=$TCP_PORT"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: ovsdb-client transact \"tcp:[::1]:\$TCP_PORT\" '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true,
               \"s\": \"mystring\",
               \"u\": [\"uuid\", \"84f5c8f5-ac76-4dbc-a24f-8860eb407fc1\"],
               \"ia\": [\"set\", [1, 2, 3]],
               \"ra\": [\"set\", [-0.5]],
               \"ba\": [\"set\", [true]],
               \"sa\": [\"set\", [\"abc\", \"def\"]],
               \"ua\": [\"set\", [[\"uuid\", \"69443985-7806-45e2-b35f-574a04e720f9\"],
                              [\"uuid\", \"aad11ef0-816a-4b01-93e6-03b8b4256b98\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:287"
( $at_check_trace; ovsdb-client transact "tcp:[::1]:$TCP_PORT" '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true,
               "s": "mystring",
               "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],
               "ia": ["set", [1, 2, 3]],
               "ra": ["set", [-0.5]],
               "ba": ["set", [true]],
               "sa": ["set", ["abc", "def"]],
               "ua": ["set", [["uuid", "69443985-7806-45e2-b35f-574a04e720f9"],
                              ["uuid", "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT 'verify 0 b, verify 1 r, set 0 b 1, set 1 r 3.5' \\
    'insert 2, verify 2 i, verify 1 b, delete 1'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:287"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT 'verify 0 b, verify 1 r, set 0 b 1, set 1 r 3.5' \
    'insert 2, verify 2 i, verify 1 b, delete 1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:287"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
000: i=1 r=2 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<5>
001: commit, status=success
002: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=3.5 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<5>
003: commit, status=success
004: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: i=2 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<6>
005: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:287"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:287: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:287"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:287: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:287: wait failed" >&5

    $as_echo "ovsdb-idl.at:287" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:287"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2018
#AT_START_2019
at_fn_group_banner 2019 'ovsdb-idl.at:318' \
  "simple idl, writing via IDL with unicode - C" "   " 99
at_xfail=no
(
  $as_echo "2019. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:318"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"s\": \"(╯°□°）╯︵ ┻━┻\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:318"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"s": "(╯°□°）╯︵ ┻━┻"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket 'set 0 b 1, insert 1, set 1 s \"¯\\_(ツ)_/¯\"'"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:318"
( $at_check_trace; test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket 'set 0 b 1, insert 1, set 1 s "¯\_(ツ)_/¯"'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:318"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s=(╯°□°）╯︵ ┻━┻ u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: commit, status=success
002: i=0 r=0 b=true s=(╯°□°）╯︵ ┻━┻ u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=0 b=false s=\"¯\\_(ツ)_/¯\" u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:318"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:318"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:318: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:318: wait failed" >&5

    $as_echo "ovsdb-idl.at:318" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:318"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2019
#AT_START_2020
at_fn_group_banner 2020 'ovsdb-idl.at:318' \
  "simple idl, writing via IDL with unicode - Python2" "" 99
at_xfail=no
(
  $as_echo "2020. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:318" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:318"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:318"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"s\": \"(╯°□°）╯︵ ┻━┻\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:318"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"s": "(╯°□°）╯︵ ┻━┻"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket 'set 0 b 1, insert 1, set 1 s \"¯\\_(ツ)_/¯\"'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'set 0 b 1, insert 1, set 1 s \"¯\\_(ツ)_/¯\"'" "ovsdb-idl.at:318"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'set 0 b 1, insert 1, set 1 s "¯\_(ツ)_/¯"'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:318"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s=(╯°□°）╯︵ ┻━┻ u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: commit, status=success
002: i=0 r=0 b=true s=(╯°□°）╯︵ ┻━┻ u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=0 b=false s=\"¯\\_(ツ)_/¯\" u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:318"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:318"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:318: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:318: wait failed" >&5

    $as_echo "ovsdb-idl.at:318" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:318"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2020
#AT_START_2021
at_fn_group_banner 2021 'ovsdb-idl.at:318' \
  "simple idl, writing via IDL with unicode - Python3" "" 99
at_xfail=no
(
  $as_echo "2021. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:318" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:318"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:318"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"s\": \"(╯°□°）╯︵ ┻━┻\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:318"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"s": "(╯°□°）╯︵ ┻━┻"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket 'set 0 b 1, insert 1, set 1 s \"¯\\_(ツ)_/¯\"'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'set 0 b 1, insert 1, set 1 s \"¯\\_(ツ)_/¯\"'" "ovsdb-idl.at:318"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'set 0 b 1, insert 1, set 1 s "¯\_(ツ)_/¯"'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:318"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s=(╯°□°）╯︵ ┻━┻ u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: commit, status=success
002: i=0 r=0 b=true s=(╯°□°）╯︵ ┻━┻ u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=0 b=false s=\"¯\\_(ツ)_/¯\" u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:318"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:318"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:318: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:318: wait failed" >&5

    $as_echo "ovsdb-idl.at:318" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:318"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2021
#AT_START_2022
at_fn_group_banner 2022 'ovsdb-idl.at:318' \
  "simple idl, writing via IDL with unicode - Python2 - register_columns" "" 99
at_xfail=no
(
  $as_echo "2022. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:318" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:318"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:318"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"s\": \"(╯°□°）╯︵ ┻━┻\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:318"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"s": "(╯°□°）╯︵ ┻━┻"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'set 0 b 1, insert 1, set 1 s \"¯\\_(ツ)_/¯\"'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'set 0 b 1, insert 1, set 1 s \"¯\\_(ツ)_/¯\"'" "ovsdb-idl.at:318"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'set 0 b 1, insert 1, set 1 s "¯\_(ツ)_/¯"'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:318"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s=(╯°□°）╯︵ ┻━┻ u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: commit, status=success
002: i=0 r=0 b=true s=(╯°□°）╯︵ ┻━┻ u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=0 b=false s=\"¯\\_(ツ)_/¯\" u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:318"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:318"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:318: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:318: wait failed" >&5

    $as_echo "ovsdb-idl.at:318" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:318"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2022
#AT_START_2023
at_fn_group_banner 2023 'ovsdb-idl.at:318' \
  "simple idl, writing via IDL with unicode - Python3 - register_columns" "" 99
at_xfail=no
(
  $as_echo "2023. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:318" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:318"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:318"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"s\": \"(╯°□°）╯︵ ┻━┻\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:318"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"s": "(╯°□°）╯︵ ┻━┻"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'set 0 b 1, insert 1, set 1 s \"¯\\_(ツ)_/¯\"'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'set 0 b 1, insert 1, set 1 s \"¯\\_(ツ)_/¯\"'" "ovsdb-idl.at:318"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'set 0 b 1, insert 1, set 1 s "¯\_(ツ)_/¯"'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:318"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s=(╯°□°）╯︵ ┻━┻ u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: commit, status=success
002: i=0 r=0 b=true s=(╯°□°）╯︵ ┻━┻ u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=0 b=false s=\"¯\\_(ツ)_/¯\" u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:318"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:318"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:318: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:318: wait failed" >&5

    $as_echo "ovsdb-idl.at:318" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:318"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2023
#AT_START_2024
at_fn_group_banner 2024 'ovsdb-idl.at:318' \
  "simple idl, writing via IDL with unicode - Python2 - tcp" "" 99
at_xfail=no
(
  $as_echo "2024. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:318" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:318"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:318"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:318: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:318: wait failed" >&5

    $as_echo "ovsdb-idl.at:318" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:318"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"s\": \"(╯°□°）╯︵ ┻━┻\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:318"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"s": "(╯°□°）╯︵ ┻━┻"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT 'set 0 b 1, insert 1, set 1 s \"¯\\_(ツ)_/¯\"'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT 'set 0 b 1, insert 1, set 1 s \"¯\\_(ツ)_/¯\"'" "ovsdb-idl.at:318"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT 'set 0 b 1, insert 1, set 1 s "¯\_(ツ)_/¯"'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:318"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s=(╯°□°）╯︵ ┻━┻ u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: commit, status=success
002: i=0 r=0 b=true s=(╯°□°）╯︵ ┻━┻ u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=0 b=false s=\"¯\\_(ツ)_/¯\" u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:318"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:318"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:318: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:318: wait failed" >&5

    $as_echo "ovsdb-idl.at:318" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:318"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2024
#AT_START_2025
at_fn_group_banner 2025 'ovsdb-idl.at:318' \
  "simple idl, writing via IDL with unicode - Python3 - tcp" "" 99
at_xfail=no
(
  $as_echo "2025. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:318" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:318"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:318"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:318: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:318: wait failed" >&5

    $as_echo "ovsdb-idl.at:318" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:318"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"s\": \"(╯°□°）╯︵ ┻━┻\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:318"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"s": "(╯°□°）╯︵ ┻━┻"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT 'set 0 b 1, insert 1, set 1 s \"¯\\_(ツ)_/¯\"'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT 'set 0 b 1, insert 1, set 1 s \"¯\\_(ツ)_/¯\"'" "ovsdb-idl.at:318"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT 'set 0 b 1, insert 1, set 1 s "¯\_(ツ)_/¯"'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:318"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s=(╯°□°）╯︵ ┻━┻ u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: commit, status=success
002: i=0 r=0 b=true s=(╯°□°）╯︵ ┻━┻ u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=0 b=false s=\"¯\\_(ツ)_/¯\" u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:318"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:318"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:318: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:318: wait failed" >&5

    $as_echo "ovsdb-idl.at:318" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:318"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2025
#AT_START_2026
at_fn_group_banner 2026 'ovsdb-idl.at:318' \
  "simple idl, writing via IDL with unicode - Python2 - tcp6" "" 99
at_xfail=no
(
  $as_echo "2026. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:318" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:318"
   $as_echo "ovsdb-idl.at:318" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:318"
   $as_echo "ovsdb-idl.at:318" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:318"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:318"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:318: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:318: wait failed" >&5

    $as_echo "ovsdb-idl.at:318" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:318"
fi

   echo "TCP_PORT=$TCP_PORT"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: ovsdb-client transact \"tcp:[::1]:\$TCP_PORT\" '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"s\": \"(╯°□°）╯︵ ┻━┻\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:318"
( $at_check_trace; ovsdb-client transact "tcp:[::1]:$TCP_PORT" '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"s": "(╯°□°）╯︵ ┻━┻"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT 'set 0 b 1, insert 1, set 1 s \"¯\\_(ツ)_/¯\"'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT 'set 0 b 1, insert 1, set 1 s \"¯\\_(ツ)_/¯\"'" "ovsdb-idl.at:318"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT 'set 0 b 1, insert 1, set 1 s "¯\_(ツ)_/¯"'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:318"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s=(╯°□°）╯︵ ┻━┻ u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: commit, status=success
002: i=0 r=0 b=true s=(╯°□°）╯︵ ┻━┻ u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=0 b=false s=\"¯\\_(ツ)_/¯\" u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:318"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:318"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:318: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:318: wait failed" >&5

    $as_echo "ovsdb-idl.at:318" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:318"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2026
#AT_START_2027
at_fn_group_banner 2027 'ovsdb-idl.at:318' \
  "simple idl, writing via IDL with unicode - Python3 - tcp6" "" 99
at_xfail=no
(
  $as_echo "2027. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:318" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:318"
   $as_echo "ovsdb-idl.at:318" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:318"
   $as_echo "ovsdb-idl.at:318" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:318"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:318"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:318: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:318: wait failed" >&5

    $as_echo "ovsdb-idl.at:318" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:318"
fi

   echo "TCP_PORT=$TCP_PORT"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: ovsdb-client transact \"tcp:[::1]:\$TCP_PORT\" '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"s\": \"(╯°□°）╯︵ ┻━┻\"}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:318"
( $at_check_trace; ovsdb-client transact "tcp:[::1]:$TCP_PORT" '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"s": "(╯°□°）╯︵ ┻━┻"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT 'set 0 b 1, insert 1, set 1 s \"¯\\_(ツ)_/¯\"'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT 'set 0 b 1, insert 1, set 1 s \"¯\\_(ツ)_/¯\"'" "ovsdb-idl.at:318"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT 'set 0 b 1, insert 1, set 1 s "¯\_(ツ)_/¯"'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:318"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s=(╯°□°）╯︵ ┻━┻ u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: commit, status=success
002: i=0 r=0 b=true s=(╯°□°）╯︵ ┻━┻ u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=0 b=false s=\"¯\\_(ツ)_/¯\" u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:318"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:318: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:318"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:318: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:318: wait failed" >&5

    $as_echo "ovsdb-idl.at:318" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:318"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2027
#AT_START_2028
at_fn_group_banner 2028 'ovsdb-idl.at:352' \
  "simple idl, writing large data via IDL with unicode - Python2" "" 99
at_xfail=no
(
  $as_echo "2028. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:352" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:352"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:352: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:352"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:352"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:352: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"s\": \"'\$(printf \"测试超过四千零九十六个字节的中文字符串以使解码出现问题。%.0s\" {1..50})'\"}}]'"
at_fn_check_prepare_notrace 'a $(...) command substitution' "ovsdb-idl.at:352"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"s": "'$(printf "测试超过四千零九十六个字节的中文字符串以使解码出现问题。%.0s" {1..50})'"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:352"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:352: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket 'set 0 b 1, insert 1, set 1 s '\$(printf \"测试超过四千零九十六个字节的中文字符串以使解码出现问题。%.0s\" {1..100})''"
at_fn_check_prepare_notrace 'a $(...) command substitution' "ovsdb-idl.at:352"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'set 0 b 1, insert 1, set 1 s '$(printf "测试超过四千零九十六个字节的中文字符串以使解码出现问题。%.0s" {1..100})''
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:352"
$at_failed && at_fn_log_failure
$at_traceon; }

   echo "000: i=0 r=0 b=false s=$(printf "测试超过四千零九十六个字节的中文字符串以使解码出现问题。%.0s" {1..50}) u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: commit, status=success
002: i=0 r=0 b=true s=$(printf "测试超过四千零九十六个字节的中文字符串以使解码出现问题。%.0s" {1..50}) u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=0 b=false s=$(printf "测试超过四千零九十六个字节的中文字符串以使解码出现问题。%.0s" {1..100}) u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
003: done" > expout
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:352: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:352"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:352"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:352: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:352"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:352"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:352: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:352"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:352"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:352: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:352: wait failed" >&5

    $as_echo "ovsdb-idl.at:352" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:352"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2028
#AT_START_2029
at_fn_group_banner 2029 'ovsdb-idl.at:352' \
  "simple idl, writing large data via IDL with unicode - Python3" "" 99
at_xfail=no
(
  $as_echo "2029. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:352" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:352"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:352: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:352"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:352"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:352: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"s\": \"'\$(printf \"测试超过四千零九十六个字节的中文字符串以使解码出现问题。%.0s\" {1..50})'\"}}]'"
at_fn_check_prepare_notrace 'a $(...) command substitution' "ovsdb-idl.at:352"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"s": "'$(printf "测试超过四千零九十六个字节的中文字符串以使解码出现问题。%.0s" {1..50})'"}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:352"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:352: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket 'set 0 b 1, insert 1, set 1 s '\$(printf \"测试超过四千零九十六个字节的中文字符串以使解码出现问题。%.0s\" {1..100})''"
at_fn_check_prepare_notrace 'a $(...) command substitution' "ovsdb-idl.at:352"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'set 0 b 1, insert 1, set 1 s '$(printf "测试超过四千零九十六个字节的中文字符串以使解码出现问题。%.0s" {1..100})''
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:352"
$at_failed && at_fn_log_failure
$at_traceon; }

   echo "000: i=0 r=0 b=false s=$(printf "测试超过四千零九十六个字节的中文字符串以使解码出现问题。%.0s" {1..50}) u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: commit, status=success
002: i=0 r=0 b=true s=$(printf "测试超过四千零九十六个字节的中文字符串以使解码出现问题。%.0s" {1..50}) u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=0 b=false s=$(printf "测试超过四千零九十六个字节的中文字符串以使解码出现问题。%.0s" {1..100}) u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
003: done" > expout
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:352: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:352"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:352"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:352: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:352"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:352"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:352: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:352"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:352"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:352: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:352: wait failed" >&5

    $as_echo "ovsdb-idl.at:352" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:352"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2029
#AT_START_2030
at_fn_group_banner 2030 'ovsdb-idl.at:364' \
  "simple idl, handling verification failure - C" "  " 99
at_xfail=no
(
  $as_echo "2030. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:364"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:364"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket 'set 0 b 1' \\
    '+[\"idltest\",
       {\"op\": \"update\",
        \"table\": \"simple\",
        \"where\": [[\"i\", \"==\", 1]],
        \"row\": {\"r\": 5.0}}]' \\
    '+verify 1 r, set 1 r 3' \\
    'verify 1 r, set 1 r 3' \\
    "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:364"
( $at_check_trace; test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket 'set 0 b 1' \
    '+["idltest",
       {"op": "update",
        "table": "simple",
        "where": [["i", "==", 1]],
        "row": {"r": 5.0}}]' \
    '+verify 1 r, set 1 r 3' \
    'verify 1 r, set 1 r 3' \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:364"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
000: i=1 r=2 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
001: commit, status=success
002: {\"error\":null,\"result\":[{\"count\":1}]}
003: commit, status=try again
004: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: i=1 r=5 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
005: commit, status=success
006: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
006: i=1 r=3 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
007: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:364"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:364"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:364: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:364: wait failed" >&5

    $as_echo "ovsdb-idl.at:364" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:364"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2030
#AT_START_2031
at_fn_group_banner 2031 'ovsdb-idl.at:364' \
  "simple idl, handling verification failure - Python2" "" 99
at_xfail=no
(
  $as_echo "2031. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:364" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:364"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:364"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:364"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket 'set 0 b 1' \\
    '+[\"idltest\",
       {\"op\": \"update\",
        \"table\": \"simple\",
        \"where\": [[\"i\", \"==\", 1]],
        \"row\": {\"r\": 5.0}}]' \\
    '+verify 1 r, set 1 r 3' \\
    'verify 1 r, set 1 r 3' \\
    "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:364"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'set 0 b 1' \
    '+["idltest",
       {"op": "update",
        "table": "simple",
        "where": [["i", "==", 1]],
        "row": {"r": 5.0}}]' \
    '+verify 1 r, set 1 r 3' \
    'verify 1 r, set 1 r 3' \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:364"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
000: i=1 r=2 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
001: commit, status=success
002: {\"error\":null,\"result\":[{\"count\":1}]}
003: commit, status=try again
004: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: i=1 r=5 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
005: commit, status=success
006: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
006: i=1 r=3 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
007: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:364"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:364"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:364: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:364: wait failed" >&5

    $as_echo "ovsdb-idl.at:364" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:364"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2031
#AT_START_2032
at_fn_group_banner 2032 'ovsdb-idl.at:364' \
  "simple idl, handling verification failure - Python3" "" 99
at_xfail=no
(
  $as_echo "2032. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:364" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:364"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:364"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:364"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket 'set 0 b 1' \\
    '+[\"idltest\",
       {\"op\": \"update\",
        \"table\": \"simple\",
        \"where\": [[\"i\", \"==\", 1]],
        \"row\": {\"r\": 5.0}}]' \\
    '+verify 1 r, set 1 r 3' \\
    'verify 1 r, set 1 r 3' \\
    "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:364"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'set 0 b 1' \
    '+["idltest",
       {"op": "update",
        "table": "simple",
        "where": [["i", "==", 1]],
        "row": {"r": 5.0}}]' \
    '+verify 1 r, set 1 r 3' \
    'verify 1 r, set 1 r 3' \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:364"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
000: i=1 r=2 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
001: commit, status=success
002: {\"error\":null,\"result\":[{\"count\":1}]}
003: commit, status=try again
004: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: i=1 r=5 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
005: commit, status=success
006: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
006: i=1 r=3 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
007: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:364"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:364"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:364: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:364: wait failed" >&5

    $as_echo "ovsdb-idl.at:364" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:364"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2032
#AT_START_2033
at_fn_group_banner 2033 'ovsdb-idl.at:364' \
  "simple idl, handling verification failure - Python2 - register_columns" "" 99
at_xfail=no
(
  $as_echo "2033. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:364" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:364"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:364"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:364"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'set 0 b 1' \\
    '+[\"idltest\",
       {\"op\": \"update\",
        \"table\": \"simple\",
        \"where\": [[\"i\", \"==\", 1]],
        \"row\": {\"r\": 5.0}}]' \\
    '+verify 1 r, set 1 r 3' \\
    'verify 1 r, set 1 r 3' \\
    "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:364"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'set 0 b 1' \
    '+["idltest",
       {"op": "update",
        "table": "simple",
        "where": [["i", "==", 1]],
        "row": {"r": 5.0}}]' \
    '+verify 1 r, set 1 r 3' \
    'verify 1 r, set 1 r 3' \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:364"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
000: i=1 r=2 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
001: commit, status=success
002: {\"error\":null,\"result\":[{\"count\":1}]}
003: commit, status=try again
004: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: i=1 r=5 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
005: commit, status=success
006: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
006: i=1 r=3 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
007: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:364"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:364"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:364: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:364: wait failed" >&5

    $as_echo "ovsdb-idl.at:364" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:364"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2033
#AT_START_2034
at_fn_group_banner 2034 'ovsdb-idl.at:364' \
  "simple idl, handling verification failure - Python3 - register_columns" "" 99
at_xfail=no
(
  $as_echo "2034. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:364" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:364"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:364"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:364"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'set 0 b 1' \\
    '+[\"idltest\",
       {\"op\": \"update\",
        \"table\": \"simple\",
        \"where\": [[\"i\", \"==\", 1]],
        \"row\": {\"r\": 5.0}}]' \\
    '+verify 1 r, set 1 r 3' \\
    'verify 1 r, set 1 r 3' \\
    "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:364"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'set 0 b 1' \
    '+["idltest",
       {"op": "update",
        "table": "simple",
        "where": [["i", "==", 1]],
        "row": {"r": 5.0}}]' \
    '+verify 1 r, set 1 r 3' \
    'verify 1 r, set 1 r 3' \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:364"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
000: i=1 r=2 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
001: commit, status=success
002: {\"error\":null,\"result\":[{\"count\":1}]}
003: commit, status=try again
004: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: i=1 r=5 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
005: commit, status=success
006: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
006: i=1 r=3 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
007: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:364"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:364"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:364: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:364: wait failed" >&5

    $as_echo "ovsdb-idl.at:364" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:364"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2034
#AT_START_2035
at_fn_group_banner 2035 'ovsdb-idl.at:364' \
  "simple idl, handling verification failure - Python2 - tcp" "" 99
at_xfail=no
(
  $as_echo "2035. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:364" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:364"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:364"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:364: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:364: wait failed" >&5

    $as_echo "ovsdb-idl.at:364" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:364"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:364"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT 'set 0 b 1' \\
    '+[\"idltest\",
       {\"op\": \"update\",
        \"table\": \"simple\",
        \"where\": [[\"i\", \"==\", 1]],
        \"row\": {\"r\": 5.0}}]' \\
    '+verify 1 r, set 1 r 3' \\
    'verify 1 r, set 1 r 3' \\
    "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:364"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT 'set 0 b 1' \
    '+["idltest",
       {"op": "update",
        "table": "simple",
        "where": [["i", "==", 1]],
        "row": {"r": 5.0}}]' \
    '+verify 1 r, set 1 r 3' \
    'verify 1 r, set 1 r 3' \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:364"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
000: i=1 r=2 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
001: commit, status=success
002: {\"error\":null,\"result\":[{\"count\":1}]}
003: commit, status=try again
004: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: i=1 r=5 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
005: commit, status=success
006: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
006: i=1 r=3 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
007: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:364"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:364"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:364: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:364: wait failed" >&5

    $as_echo "ovsdb-idl.at:364" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:364"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2035
#AT_START_2036
at_fn_group_banner 2036 'ovsdb-idl.at:364' \
  "simple idl, handling verification failure - Python3 - tcp" "" 99
at_xfail=no
(
  $as_echo "2036. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:364" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:364"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:364"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:364: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:364: wait failed" >&5

    $as_echo "ovsdb-idl.at:364" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:364"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:364"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT 'set 0 b 1' \\
    '+[\"idltest\",
       {\"op\": \"update\",
        \"table\": \"simple\",
        \"where\": [[\"i\", \"==\", 1]],
        \"row\": {\"r\": 5.0}}]' \\
    '+verify 1 r, set 1 r 3' \\
    'verify 1 r, set 1 r 3' \\
    "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:364"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT 'set 0 b 1' \
    '+["idltest",
       {"op": "update",
        "table": "simple",
        "where": [["i", "==", 1]],
        "row": {"r": 5.0}}]' \
    '+verify 1 r, set 1 r 3' \
    'verify 1 r, set 1 r 3' \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:364"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
000: i=1 r=2 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
001: commit, status=success
002: {\"error\":null,\"result\":[{\"count\":1}]}
003: commit, status=try again
004: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: i=1 r=5 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
005: commit, status=success
006: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
006: i=1 r=3 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
007: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:364"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:364"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:364: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:364: wait failed" >&5

    $as_echo "ovsdb-idl.at:364" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:364"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2036
#AT_START_2037
at_fn_group_banner 2037 'ovsdb-idl.at:364' \
  "simple idl, handling verification failure - Python2 - tcp6" "" 99
at_xfail=no
(
  $as_echo "2037. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:364" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:364"
   $as_echo "ovsdb-idl.at:364" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:364"
   $as_echo "ovsdb-idl.at:364" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:364"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:364"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:364: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:364: wait failed" >&5

    $as_echo "ovsdb-idl.at:364" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:364"
fi

   echo "TCP_PORT=$TCP_PORT"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: ovsdb-client transact \"tcp:[::1]:\$TCP_PORT\" '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:364"
( $at_check_trace; ovsdb-client transact "tcp:[::1]:$TCP_PORT" '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT 'set 0 b 1' \\
    '+[\"idltest\",
       {\"op\": \"update\",
        \"table\": \"simple\",
        \"where\": [[\"i\", \"==\", 1]],
        \"row\": {\"r\": 5.0}}]' \\
    '+verify 1 r, set 1 r 3' \\
    'verify 1 r, set 1 r 3' \\
    "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:364"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT 'set 0 b 1' \
    '+["idltest",
       {"op": "update",
        "table": "simple",
        "where": [["i", "==", 1]],
        "row": {"r": 5.0}}]' \
    '+verify 1 r, set 1 r 3' \
    'verify 1 r, set 1 r 3' \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:364"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
000: i=1 r=2 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
001: commit, status=success
002: {\"error\":null,\"result\":[{\"count\":1}]}
003: commit, status=try again
004: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: i=1 r=5 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
005: commit, status=success
006: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
006: i=1 r=3 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
007: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:364"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:364"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:364: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:364: wait failed" >&5

    $as_echo "ovsdb-idl.at:364" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:364"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2037
#AT_START_2038
at_fn_group_banner 2038 'ovsdb-idl.at:364' \
  "simple idl, handling verification failure - Python3 - tcp6" "" 99
at_xfail=no
(
  $as_echo "2038. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:364" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:364"
   $as_echo "ovsdb-idl.at:364" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:364"
   $as_echo "ovsdb-idl.at:364" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:364"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:364"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:364: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:364: wait failed" >&5

    $as_echo "ovsdb-idl.at:364" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:364"
fi

   echo "TCP_PORT=$TCP_PORT"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: ovsdb-client transact \"tcp:[::1]:\$TCP_PORT\" '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:364"
( $at_check_trace; ovsdb-client transact "tcp:[::1]:$TCP_PORT" '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT 'set 0 b 1' \\
    '+[\"idltest\",
       {\"op\": \"update\",
        \"table\": \"simple\",
        \"where\": [[\"i\", \"==\", 1]],
        \"row\": {\"r\": 5.0}}]' \\
    '+verify 1 r, set 1 r 3' \\
    'verify 1 r, set 1 r 3' \\
    "
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:364"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT 'set 0 b 1' \
    '+["idltest",
       {"op": "update",
        "table": "simple",
        "where": [["i", "==", 1]],
        "row": {"r": 5.0}}]' \
    '+verify 1 r, set 1 r 3' \
    'verify 1 r, set 1 r 3' \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:364"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
000: i=1 r=2 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
001: commit, status=success
002: {\"error\":null,\"result\":[{\"count\":1}]}
003: commit, status=try again
004: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: i=1 r=5 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
005: commit, status=success
006: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
006: i=1 r=3 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
007: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:364"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:364: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:364"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:364: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:364: wait failed" >&5

    $as_echo "ovsdb-idl.at:364" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:364"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2038
#AT_START_2039
at_fn_group_banner 2039 'ovsdb-idl.at:395' \
  "simple idl, increment operation - C" "            " 99
at_xfail=no
(
  $as_echo "2039. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:395"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:395"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket 'set 0 r 2.0, increment 0'"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:395"
( $at_check_trace; test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket 'set 0 r 2.0, increment 0'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:395"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: commit, status=success, increment=1
002: i=1 r=2 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:395"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:395"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:395: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:395: wait failed" >&5

    $as_echo "ovsdb-idl.at:395" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:395"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2039
#AT_START_2040
at_fn_group_banner 2040 'ovsdb-idl.at:395' \
  "simple idl, increment operation - Python2" "      " 99
at_xfail=no
(
  $as_echo "2040. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:395" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:395"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:395"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:395"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket 'set 0 r 2.0, increment 0'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'set 0 r 2.0, increment 0'" "ovsdb-idl.at:395"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'set 0 r 2.0, increment 0'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:395"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: commit, status=success, increment=1
002: i=1 r=2 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:395"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:395"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:395: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:395: wait failed" >&5

    $as_echo "ovsdb-idl.at:395" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:395"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2040
#AT_START_2041
at_fn_group_banner 2041 'ovsdb-idl.at:395' \
  "simple idl, increment operation - Python3" "      " 99
at_xfail=no
(
  $as_echo "2041. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:395" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:395"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:395"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:395"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket 'set 0 r 2.0, increment 0'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'set 0 r 2.0, increment 0'" "ovsdb-idl.at:395"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'set 0 r 2.0, increment 0'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:395"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: commit, status=success, increment=1
002: i=1 r=2 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:395"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:395"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:395: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:395: wait failed" >&5

    $as_echo "ovsdb-idl.at:395" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:395"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2041
#AT_START_2042
at_fn_group_banner 2042 'ovsdb-idl.at:395' \
  "simple idl, increment operation - Python2 - register_columns" "" 99
at_xfail=no
(
  $as_echo "2042. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:395" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:395"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:395"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:395"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'set 0 r 2.0, increment 0'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'set 0 r 2.0, increment 0'" "ovsdb-idl.at:395"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'set 0 r 2.0, increment 0'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:395"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: commit, status=success, increment=1
002: i=1 r=2 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:395"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:395"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:395: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:395: wait failed" >&5

    $as_echo "ovsdb-idl.at:395" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:395"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2042
#AT_START_2043
at_fn_group_banner 2043 'ovsdb-idl.at:395' \
  "simple idl, increment operation - Python3 - register_columns" "" 99
at_xfail=no
(
  $as_echo "2043. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:395" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:395"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:395"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:395"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'set 0 r 2.0, increment 0'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'set 0 r 2.0, increment 0'" "ovsdb-idl.at:395"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'set 0 r 2.0, increment 0'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:395"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: commit, status=success, increment=1
002: i=1 r=2 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:395"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:395"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:395: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:395: wait failed" >&5

    $as_echo "ovsdb-idl.at:395" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:395"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2043
#AT_START_2044
at_fn_group_banner 2044 'ovsdb-idl.at:395' \
  "simple idl, increment operation - Python2 - tcp" "" 99
at_xfail=no
(
  $as_echo "2044. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:395" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:395"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:395"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:395: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:395: wait failed" >&5

    $as_echo "ovsdb-idl.at:395" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:395"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:395"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT 'set 0 r 2.0, increment 0'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT 'set 0 r 2.0, increment 0'" "ovsdb-idl.at:395"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT 'set 0 r 2.0, increment 0'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:395"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: commit, status=success, increment=1
002: i=1 r=2 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:395"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:395"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:395: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:395: wait failed" >&5

    $as_echo "ovsdb-idl.at:395" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:395"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2044
#AT_START_2045
at_fn_group_banner 2045 'ovsdb-idl.at:395' \
  "simple idl, increment operation - Python3 - tcp" "" 99
at_xfail=no
(
  $as_echo "2045. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:395" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:395"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:395"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:395: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:395: wait failed" >&5

    $as_echo "ovsdb-idl.at:395" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:395"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:395"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT 'set 0 r 2.0, increment 0'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT 'set 0 r 2.0, increment 0'" "ovsdb-idl.at:395"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT 'set 0 r 2.0, increment 0'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:395"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: commit, status=success, increment=1
002: i=1 r=2 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:395"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:395"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:395: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:395: wait failed" >&5

    $as_echo "ovsdb-idl.at:395" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:395"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2045
#AT_START_2046
at_fn_group_banner 2046 'ovsdb-idl.at:395' \
  "simple idl, increment operation - Python2 - tcp6" "" 99
at_xfail=no
(
  $as_echo "2046. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:395" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:395"
   $as_echo "ovsdb-idl.at:395" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:395"
   $as_echo "ovsdb-idl.at:395" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:395"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:395"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:395: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:395: wait failed" >&5

    $as_echo "ovsdb-idl.at:395" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:395"
fi

   echo "TCP_PORT=$TCP_PORT"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: ovsdb-client transact \"tcp:[::1]:\$TCP_PORT\" '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:395"
( $at_check_trace; ovsdb-client transact "tcp:[::1]:$TCP_PORT" '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT 'set 0 r 2.0, increment 0'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT 'set 0 r 2.0, increment 0'" "ovsdb-idl.at:395"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT 'set 0 r 2.0, increment 0'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:395"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: commit, status=success, increment=1
002: i=1 r=2 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:395"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:395"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:395: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:395: wait failed" >&5

    $as_echo "ovsdb-idl.at:395" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:395"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2046
#AT_START_2047
at_fn_group_banner 2047 'ovsdb-idl.at:395' \
  "simple idl, increment operation - Python3 - tcp6" "" 99
at_xfail=no
(
  $as_echo "2047. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:395" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:395"
   $as_echo "ovsdb-idl.at:395" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:395"
   $as_echo "ovsdb-idl.at:395" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:395"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:395"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:395: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:395: wait failed" >&5

    $as_echo "ovsdb-idl.at:395" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:395"
fi

   echo "TCP_PORT=$TCP_PORT"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: ovsdb-client transact \"tcp:[::1]:\$TCP_PORT\" '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:395"
( $at_check_trace; ovsdb-client transact "tcp:[::1]:$TCP_PORT" '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT 'set 0 r 2.0, increment 0'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT 'set 0 r 2.0, increment 0'" "ovsdb-idl.at:395"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT 'set 0 r 2.0, increment 0'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:395"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: commit, status=success, increment=1
002: i=1 r=2 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:395"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:395: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:395"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:395: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:395: wait failed" >&5

    $as_echo "ovsdb-idl.at:395" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:395"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2047
#AT_START_2048
at_fn_group_banner 2048 'ovsdb-idl.at:407' \
  "simple idl, aborting - C" "                       " 99
at_xfail=no
(
  $as_echo "2048. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:407"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:407"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket 'set 0 r 2.0, abort' \\
'+set 0 b 1'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:407"
( $at_check_trace; test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket 'set 0 r 2.0, abort' \
'+set 0 b 1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:407"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: commit, status=aborted
002: commit, status=success
003: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:407"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:407"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:407: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:407: wait failed" >&5

    $as_echo "ovsdb-idl.at:407" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:407"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2048
#AT_START_2049
at_fn_group_banner 2049 'ovsdb-idl.at:407' \
  "simple idl, aborting - Python2" "                 " 99
at_xfail=no
(
  $as_echo "2049. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:407" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:407"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:407"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:407"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket 'set 0 r 2.0, abort' \\
'+set 0 b 1'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:407"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'set 0 r 2.0, abort' \
'+set 0 b 1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:407"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: commit, status=aborted
002: commit, status=success
003: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:407"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:407"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:407: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:407: wait failed" >&5

    $as_echo "ovsdb-idl.at:407" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:407"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2049
#AT_START_2050
at_fn_group_banner 2050 'ovsdb-idl.at:407' \
  "simple idl, aborting - Python3" "                 " 99
at_xfail=no
(
  $as_echo "2050. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:407" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:407"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:407"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:407"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket 'set 0 r 2.0, abort' \\
'+set 0 b 1'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:407"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'set 0 r 2.0, abort' \
'+set 0 b 1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:407"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: commit, status=aborted
002: commit, status=success
003: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:407"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:407"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:407: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:407: wait failed" >&5

    $as_echo "ovsdb-idl.at:407" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:407"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2050
#AT_START_2051
at_fn_group_banner 2051 'ovsdb-idl.at:407' \
  "simple idl, aborting - Python2 - register_columns" "" 99
at_xfail=no
(
  $as_echo "2051. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:407" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:407"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:407"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:407"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'set 0 r 2.0, abort' \\
'+set 0 b 1'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:407"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'set 0 r 2.0, abort' \
'+set 0 b 1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:407"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: commit, status=aborted
002: commit, status=success
003: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:407"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:407"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:407: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:407: wait failed" >&5

    $as_echo "ovsdb-idl.at:407" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:407"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2051
#AT_START_2052
at_fn_group_banner 2052 'ovsdb-idl.at:407' \
  "simple idl, aborting - Python3 - register_columns" "" 99
at_xfail=no
(
  $as_echo "2052. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:407" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:407"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:407"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:407"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'set 0 r 2.0, abort' \\
'+set 0 b 1'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:407"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'set 0 r 2.0, abort' \
'+set 0 b 1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:407"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: commit, status=aborted
002: commit, status=success
003: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:407"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:407"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:407: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:407: wait failed" >&5

    $as_echo "ovsdb-idl.at:407" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:407"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2052
#AT_START_2053
at_fn_group_banner 2053 'ovsdb-idl.at:407' \
  "simple idl, aborting - Python2 - tcp" "           " 99
at_xfail=no
(
  $as_echo "2053. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:407" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:407"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:407"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:407: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:407: wait failed" >&5

    $as_echo "ovsdb-idl.at:407" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:407"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:407"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT 'set 0 r 2.0, abort' \\
'+set 0 b 1'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:407"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT 'set 0 r 2.0, abort' \
'+set 0 b 1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:407"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: commit, status=aborted
002: commit, status=success
003: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:407"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:407"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:407: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:407: wait failed" >&5

    $as_echo "ovsdb-idl.at:407" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:407"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2053
#AT_START_2054
at_fn_group_banner 2054 'ovsdb-idl.at:407' \
  "simple idl, aborting - Python3 - tcp" "           " 99
at_xfail=no
(
  $as_echo "2054. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:407" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:407"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:407"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:407: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:407: wait failed" >&5

    $as_echo "ovsdb-idl.at:407" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:407"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:407"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT 'set 0 r 2.0, abort' \\
'+set 0 b 1'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:407"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT 'set 0 r 2.0, abort' \
'+set 0 b 1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:407"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: commit, status=aborted
002: commit, status=success
003: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:407"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:407"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:407: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:407: wait failed" >&5

    $as_echo "ovsdb-idl.at:407" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:407"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2054
#AT_START_2055
at_fn_group_banner 2055 'ovsdb-idl.at:407' \
  "simple idl, aborting - Python2 - tcp6" "          " 99
at_xfail=no
(
  $as_echo "2055. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:407" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:407"
   $as_echo "ovsdb-idl.at:407" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:407"
   $as_echo "ovsdb-idl.at:407" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:407"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:407"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:407: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:407: wait failed" >&5

    $as_echo "ovsdb-idl.at:407" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:407"
fi

   echo "TCP_PORT=$TCP_PORT"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: ovsdb-client transact \"tcp:[::1]:\$TCP_PORT\" '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:407"
( $at_check_trace; ovsdb-client transact "tcp:[::1]:$TCP_PORT" '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT 'set 0 r 2.0, abort' \\
'+set 0 b 1'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:407"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT 'set 0 r 2.0, abort' \
'+set 0 b 1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:407"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: commit, status=aborted
002: commit, status=success
003: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:407"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:407"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:407: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:407: wait failed" >&5

    $as_echo "ovsdb-idl.at:407" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:407"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2055
#AT_START_2056
at_fn_group_banner 2056 'ovsdb-idl.at:407' \
  "simple idl, aborting - Python3 - tcp6" "          " 99
at_xfail=no
(
  $as_echo "2056. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:407" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:407"
   $as_echo "ovsdb-idl.at:407" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:407"
   $as_echo "ovsdb-idl.at:407" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:407"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:407"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:407: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:407: wait failed" >&5

    $as_echo "ovsdb-idl.at:407" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:407"
fi

   echo "TCP_PORT=$TCP_PORT"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: ovsdb-client transact \"tcp:[::1]:\$TCP_PORT\" '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:407"
( $at_check_trace; ovsdb-client transact "tcp:[::1]:$TCP_PORT" '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT 'set 0 r 2.0, abort' \\
'+set 0 b 1'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:407"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT 'set 0 r 2.0, abort' \
'+set 0 b 1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:407"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: commit, status=aborted
002: commit, status=success
003: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:407"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:407: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:407"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:407: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:407: wait failed" >&5

    $as_echo "ovsdb-idl.at:407" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:407"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2056
#AT_START_2057
at_fn_group_banner 2057 'ovsdb-idl.at:421' \
  "simple idl, destroy without commit or abort - C" "" 99
at_xfail=no
(
  $as_echo "2057. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:421"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:421"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket 'set 0 r 2.0, destroy' \\
'+set 0 b 1'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:421"
( $at_check_trace; test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket 'set 0 r 2.0, destroy' \
'+set 0 b 1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:421"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: destroy
002: commit, status=success
003: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:421"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:421"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:421: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:421: wait failed" >&5

    $as_echo "ovsdb-idl.at:421" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:421"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2057
#AT_START_2058
at_fn_group_banner 2058 'ovsdb-idl.at:421' \
  "simple idl, destroy without commit or abort - Python2" "" 99
at_xfail=no
(
  $as_echo "2058. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:421" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:421"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:421"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:421"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket 'set 0 r 2.0, destroy' \\
'+set 0 b 1'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:421"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'set 0 r 2.0, destroy' \
'+set 0 b 1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:421"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: destroy
002: commit, status=success
003: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:421"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:421"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:421: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:421: wait failed" >&5

    $as_echo "ovsdb-idl.at:421" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:421"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2058
#AT_START_2059
at_fn_group_banner 2059 'ovsdb-idl.at:421' \
  "simple idl, destroy without commit or abort - Python3" "" 99
at_xfail=no
(
  $as_echo "2059. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:421" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:421"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:421"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:421"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket 'set 0 r 2.0, destroy' \\
'+set 0 b 1'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:421"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'set 0 r 2.0, destroy' \
'+set 0 b 1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:421"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: destroy
002: commit, status=success
003: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:421"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:421"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:421: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:421: wait failed" >&5

    $as_echo "ovsdb-idl.at:421" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:421"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2059
#AT_START_2060
at_fn_group_banner 2060 'ovsdb-idl.at:421' \
  "simple idl, destroy without commit or abort - Python2 - register_columns" "" 99
at_xfail=no
(
  $as_echo "2060. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:421" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:421"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:421"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:421"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'set 0 r 2.0, destroy' \\
'+set 0 b 1'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:421"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'set 0 r 2.0, destroy' \
'+set 0 b 1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:421"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: destroy
002: commit, status=success
003: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:421"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:421"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:421: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:421: wait failed" >&5

    $as_echo "ovsdb-idl.at:421" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:421"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2060
#AT_START_2061
at_fn_group_banner 2061 'ovsdb-idl.at:421' \
  "simple idl, destroy without commit or abort - Python3 - register_columns" "" 99
at_xfail=no
(
  $as_echo "2061. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:421" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:421"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:421"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:421"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'set 0 r 2.0, destroy' \\
'+set 0 b 1'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:421"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'set 0 r 2.0, destroy' \
'+set 0 b 1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:421"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: destroy
002: commit, status=success
003: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:421"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:421"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:421: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:421: wait failed" >&5

    $as_echo "ovsdb-idl.at:421" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:421"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2061
#AT_START_2062
at_fn_group_banner 2062 'ovsdb-idl.at:421' \
  "simple idl, destroy without commit or abort - Python2 - tcp" "" 99
at_xfail=no
(
  $as_echo "2062. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:421" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:421"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:421"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:421: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:421: wait failed" >&5

    $as_echo "ovsdb-idl.at:421" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:421"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:421"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT 'set 0 r 2.0, destroy' \\
'+set 0 b 1'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:421"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT 'set 0 r 2.0, destroy' \
'+set 0 b 1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:421"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: destroy
002: commit, status=success
003: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:421"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:421"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:421: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:421: wait failed" >&5

    $as_echo "ovsdb-idl.at:421" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:421"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2062
#AT_START_2063
at_fn_group_banner 2063 'ovsdb-idl.at:421' \
  "simple idl, destroy without commit or abort - Python3 - tcp" "" 99
at_xfail=no
(
  $as_echo "2063. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:421" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:421"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:421"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:421: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:421: wait failed" >&5

    $as_echo "ovsdb-idl.at:421" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:421"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:421"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT 'set 0 r 2.0, destroy' \\
'+set 0 b 1'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:421"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT 'set 0 r 2.0, destroy' \
'+set 0 b 1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:421"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: destroy
002: commit, status=success
003: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:421"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:421"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:421: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:421: wait failed" >&5

    $as_echo "ovsdb-idl.at:421" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:421"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2063
#AT_START_2064
at_fn_group_banner 2064 'ovsdb-idl.at:421' \
  "simple idl, destroy without commit or abort - Python2 - tcp6" "" 99
at_xfail=no
(
  $as_echo "2064. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:421" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:421"
   $as_echo "ovsdb-idl.at:421" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:421"
   $as_echo "ovsdb-idl.at:421" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:421"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:421"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:421: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:421: wait failed" >&5

    $as_echo "ovsdb-idl.at:421" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:421"
fi

   echo "TCP_PORT=$TCP_PORT"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: ovsdb-client transact \"tcp:[::1]:\$TCP_PORT\" '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:421"
( $at_check_trace; ovsdb-client transact "tcp:[::1]:$TCP_PORT" '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT 'set 0 r 2.0, destroy' \\
'+set 0 b 1'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:421"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT 'set 0 r 2.0, destroy' \
'+set 0 b 1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:421"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: destroy
002: commit, status=success
003: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:421"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:421"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:421: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:421: wait failed" >&5

    $as_echo "ovsdb-idl.at:421" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:421"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2064
#AT_START_2065
at_fn_group_banner 2065 'ovsdb-idl.at:421' \
  "simple idl, destroy without commit or abort - Python3 - tcp6" "" 99
at_xfail=no
(
  $as_echo "2065. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:421" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:421"
   $as_echo "ovsdb-idl.at:421" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:421"
   $as_echo "ovsdb-idl.at:421" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:421"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:421"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:421: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:421: wait failed" >&5

    $as_echo "ovsdb-idl.at:421" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:421"
fi

   echo "TCP_PORT=$TCP_PORT"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: ovsdb-client transact \"tcp:[::1]:\$TCP_PORT\" '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:421"
( $at_check_trace; ovsdb-client transact "tcp:[::1]:$TCP_PORT" '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT 'set 0 r 2.0, destroy' \\
'+set 0 b 1'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:421"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT 'set 0 r 2.0, destroy' \
'+set 0 b 1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:421"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
001: destroy
002: commit, status=success
003: i=0 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:421"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:421: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:421"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:421: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:421: wait failed" >&5

    $as_echo "ovsdb-idl.at:421" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:421"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2065
#AT_START_2066
at_fn_group_banner 2066 'ovsdb-idl.at:435' \
  "simple idl, conditional, false condition - C" "   " 99
at_xfail=no
(
  $as_echo "2066. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:435"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: ovsdb-client transact unix:socket '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:435"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket 'condition simple []' \\
    'condition simple [true]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:435"
( $at_check_trace; test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket 'condition simple []' \
    'condition simple [true]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:435"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:435: wait failed" >&5

    $as_echo "ovsdb-idl.at:435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:435"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2066
#AT_START_2067
at_fn_group_banner 2067 'ovsdb-idl.at:435' \
  "simple idl, conditional, false condition - Python2" "" 99
at_xfail=no
(
  $as_echo "2067. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:435" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:435"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:435"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: ovsdb-client transact unix:socket '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:435"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket 'condition simple []' \\
    'condition simple [true]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:435"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'condition simple []' \
    'condition simple [true]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:435"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:435: wait failed" >&5

    $as_echo "ovsdb-idl.at:435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:435"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2067
#AT_START_2068
at_fn_group_banner 2068 'ovsdb-idl.at:435' \
  "simple idl, conditional, false condition - Python3" "" 99
at_xfail=no
(
  $as_echo "2068. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:435" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:435"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:435"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: ovsdb-client transact unix:socket '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:435"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket 'condition simple []' \\
    'condition simple [true]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:435"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'condition simple []' \
    'condition simple [true]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:435"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:435: wait failed" >&5

    $as_echo "ovsdb-idl.at:435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:435"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2068
#AT_START_2069
at_fn_group_banner 2069 'ovsdb-idl.at:435' \
  "simple idl, conditional, false condition - Python2 - register_columns" "" 99
at_xfail=no
(
  $as_echo "2069. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:435" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:435"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:435"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: ovsdb-client transact unix:socket '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:435"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'condition simple []' \\
    'condition simple [true]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:435"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'condition simple []' \
    'condition simple [true]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:435"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:435: wait failed" >&5

    $as_echo "ovsdb-idl.at:435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:435"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2069
#AT_START_2070
at_fn_group_banner 2070 'ovsdb-idl.at:435' \
  "simple idl, conditional, false condition - Python3 - register_columns" "" 99
at_xfail=no
(
  $as_echo "2070. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:435" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:435"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:435"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: ovsdb-client transact unix:socket '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:435"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'condition simple []' \\
    'condition simple [true]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:435"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'condition simple []' \
    'condition simple [true]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:435"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:435: wait failed" >&5

    $as_echo "ovsdb-idl.at:435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:435"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2070
#AT_START_2071
at_fn_group_banner 2071 'ovsdb-idl.at:435' \
  "simple idl, conditional, false condition - Python2 - tcp" "" 99
at_xfail=no
(
  $as_echo "2071. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:435" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:435"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:435"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:435: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:435: wait failed" >&5

    $as_echo "ovsdb-idl.at:435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:435"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:435"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT 'condition simple []' \\
    'condition simple [true]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:435"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT 'condition simple []' \
    'condition simple [true]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:435"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:435: wait failed" >&5

    $as_echo "ovsdb-idl.at:435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:435"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2071
#AT_START_2072
at_fn_group_banner 2072 'ovsdb-idl.at:435' \
  "simple idl, conditional, false condition - Python3 - tcp" "" 99
at_xfail=no
(
  $as_echo "2072. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:435" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:435"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:435"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:435: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:435: wait failed" >&5

    $as_echo "ovsdb-idl.at:435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:435"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:435"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT 'condition simple []' \\
    'condition simple [true]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:435"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT 'condition simple []' \
    'condition simple [true]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:435"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:435: wait failed" >&5

    $as_echo "ovsdb-idl.at:435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:435"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2072
#AT_START_2073
at_fn_group_banner 2073 'ovsdb-idl.at:435' \
  "simple idl, conditional, false condition - Python2 - tcp6" "" 99
at_xfail=no
(
  $as_echo "2073. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:435" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:435"
   $as_echo "ovsdb-idl.at:435" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:435"
   $as_echo "ovsdb-idl.at:435" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:435"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:435"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:435: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:435: wait failed" >&5

    $as_echo "ovsdb-idl.at:435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:435"
fi

   echo "TCP_PORT=$TCP_PORT"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: ovsdb-client transact \"tcp:[::1]:\$TCP_PORT\" '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:435"
( $at_check_trace; ovsdb-client transact "tcp:[::1]:$TCP_PORT" '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT 'condition simple []' \\
    'condition simple [true]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:435"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT 'condition simple []' \
    'condition simple [true]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:435"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:435: wait failed" >&5

    $as_echo "ovsdb-idl.at:435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:435"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2073
#AT_START_2074
at_fn_group_banner 2074 'ovsdb-idl.at:435' \
  "simple idl, conditional, false condition - Python3 - tcp6" "" 99
at_xfail=no
(
  $as_echo "2074. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:435" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:435"
   $as_echo "ovsdb-idl.at:435" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:435"
   $as_echo "ovsdb-idl.at:435" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:435"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:435"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:435: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:435: wait failed" >&5

    $as_echo "ovsdb-idl.at:435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:435"
fi

   echo "TCP_PORT=$TCP_PORT"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: ovsdb-client transact \"tcp:[::1]:\$TCP_PORT\" '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:435"
( $at_check_trace; ovsdb-client transact "tcp:[::1]:$TCP_PORT" '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT 'condition simple []' \\
    'condition simple [true]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:435"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT 'condition simple []' \
    'condition simple [true]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:435"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:435: wait failed" >&5

    $as_echo "ovsdb-idl.at:435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:435"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2074
#AT_START_2075
at_fn_group_banner 2075 'ovsdb-idl.at:451' \
  "simple idl, conditional, true condition - C" "    " 99
at_xfail=no
(
  $as_echo "2075. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:451"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: ovsdb-client transact unix:socket '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:451"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket 'condition simple []' \\
    'condition simple [true]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:451"
( $at_check_trace; test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket 'condition simple []' \
    'condition simple [true]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:451"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:451"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:451"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:451: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:451: wait failed" >&5

    $as_echo "ovsdb-idl.at:451" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:451"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2075
#AT_START_2076
at_fn_group_banner 2076 'ovsdb-idl.at:451' \
  "simple idl, conditional, true condition - Python2" "" 99
at_xfail=no
(
  $as_echo "2076. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:451" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:451"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:451"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: ovsdb-client transact unix:socket '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:451"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket 'condition simple []' \\
    'condition simple [true]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:451"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'condition simple []' \
    'condition simple [true]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:451"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:451"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:451"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:451: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:451: wait failed" >&5

    $as_echo "ovsdb-idl.at:451" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:451"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2076
#AT_START_2077
at_fn_group_banner 2077 'ovsdb-idl.at:451' \
  "simple idl, conditional, true condition - Python3" "" 99
at_xfail=no
(
  $as_echo "2077. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:451" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:451"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:451"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: ovsdb-client transact unix:socket '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:451"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket 'condition simple []' \\
    'condition simple [true]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:451"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'condition simple []' \
    'condition simple [true]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:451"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:451"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:451"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:451: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:451: wait failed" >&5

    $as_echo "ovsdb-idl.at:451" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:451"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2077
#AT_START_2078
at_fn_group_banner 2078 'ovsdb-idl.at:451' \
  "simple idl, conditional, true condition - Python2 - register_columns" "" 99
at_xfail=no
(
  $as_echo "2078. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:451" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:451"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:451"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: ovsdb-client transact unix:socket '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:451"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'condition simple []' \\
    'condition simple [true]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:451"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'condition simple []' \
    'condition simple [true]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:451"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:451"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:451"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:451: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:451: wait failed" >&5

    $as_echo "ovsdb-idl.at:451" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:451"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2078
#AT_START_2079
at_fn_group_banner 2079 'ovsdb-idl.at:451' \
  "simple idl, conditional, true condition - Python3 - register_columns" "" 99
at_xfail=no
(
  $as_echo "2079. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:451" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:451"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:451"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: ovsdb-client transact unix:socket '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:451"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'condition simple []' \\
    'condition simple [true]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:451"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'condition simple []' \
    'condition simple [true]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:451"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:451"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:451"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:451: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:451: wait failed" >&5

    $as_echo "ovsdb-idl.at:451" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:451"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2079
#AT_START_2080
at_fn_group_banner 2080 'ovsdb-idl.at:451' \
  "simple idl, conditional, true condition - Python2 - tcp" "" 99
at_xfail=no
(
  $as_echo "2080. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:451" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:451"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:451"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:451: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:451: wait failed" >&5

    $as_echo "ovsdb-idl.at:451" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:451"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:451"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT 'condition simple []' \\
    'condition simple [true]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:451"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT 'condition simple []' \
    'condition simple [true]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:451"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:451"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:451"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:451: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:451: wait failed" >&5

    $as_echo "ovsdb-idl.at:451" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:451"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2080
#AT_START_2081
at_fn_group_banner 2081 'ovsdb-idl.at:451' \
  "simple idl, conditional, true condition - Python3 - tcp" "" 99
at_xfail=no
(
  $as_echo "2081. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:451" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:451"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:451"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:451: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:451: wait failed" >&5

    $as_echo "ovsdb-idl.at:451" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:451"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:451"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT 'condition simple []' \\
    'condition simple [true]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:451"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT 'condition simple []' \
    'condition simple [true]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:451"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:451"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:451"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:451: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:451: wait failed" >&5

    $as_echo "ovsdb-idl.at:451" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:451"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2081
#AT_START_2082
at_fn_group_banner 2082 'ovsdb-idl.at:451' \
  "simple idl, conditional, true condition - Python2 - tcp6" "" 99
at_xfail=no
(
  $as_echo "2082. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:451" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:451"
   $as_echo "ovsdb-idl.at:451" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:451"
   $as_echo "ovsdb-idl.at:451" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:451"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:451"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:451: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:451: wait failed" >&5

    $as_echo "ovsdb-idl.at:451" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:451"
fi

   echo "TCP_PORT=$TCP_PORT"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: ovsdb-client transact \"tcp:[::1]:\$TCP_PORT\" '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:451"
( $at_check_trace; ovsdb-client transact "tcp:[::1]:$TCP_PORT" '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT 'condition simple []' \\
    'condition simple [true]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:451"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT 'condition simple []' \
    'condition simple [true]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:451"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:451"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:451"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:451: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:451: wait failed" >&5

    $as_echo "ovsdb-idl.at:451" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:451"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2082
#AT_START_2083
at_fn_group_banner 2083 'ovsdb-idl.at:451' \
  "simple idl, conditional, true condition - Python3 - tcp6" "" 99
at_xfail=no
(
  $as_echo "2083. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:451" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:451"
   $as_echo "ovsdb-idl.at:451" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:451"
   $as_echo "ovsdb-idl.at:451" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:451"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:451"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:451: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:451: wait failed" >&5

    $as_echo "ovsdb-idl.at:451" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:451"
fi

   echo "TCP_PORT=$TCP_PORT"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: ovsdb-client transact \"tcp:[::1]:\$TCP_PORT\" '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:451"
( $at_check_trace; ovsdb-client transact "tcp:[::1]:$TCP_PORT" '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT 'condition simple []' \\
    'condition simple [true]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:451"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT 'condition simple []' \
    'condition simple [true]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:451"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:451"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:451: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:451"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:451: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:451: wait failed" >&5

    $as_echo "ovsdb-idl.at:451" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:451"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2083
#AT_START_2084
at_fn_group_banner 2084 'ovsdb-idl.at:467' \
  "simple idl, conditional, multiple clauses in condition - C" "" 99
at_xfail=no
(
  $as_echo "2084. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:467"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: ovsdb-client transact unix:socket '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}},
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 2,
               \"r\": 3.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:467"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}},
       {"op": "insert",
       "table": "simple",
       "row": {"i": 2,
               "r": 3.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket 'condition simple []' \\
    'condition simple [[\"i\",\"==\",1],[\"i\",\"==\",2]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:467"
( $at_check_trace; test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket 'condition simple []' \
    'condition simple [["i","==",1],["i","==",2]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:467"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
003: i=2 r=3 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:467"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:467"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:467: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:467: wait failed" >&5

    $as_echo "ovsdb-idl.at:467" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:467"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2084
#AT_START_2085
at_fn_group_banner 2085 'ovsdb-idl.at:467' \
  "simple idl, conditional, multiple clauses in condition - Python2" "" 99
at_xfail=no
(
  $as_echo "2085. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:467" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:467"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:467"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: ovsdb-client transact unix:socket '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}},
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 2,
               \"r\": 3.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:467"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}},
       {"op": "insert",
       "table": "simple",
       "row": {"i": 2,
               "r": 3.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket 'condition simple []' \\
    'condition simple [[\"i\",\"==\",1],[\"i\",\"==\",2]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:467"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'condition simple []' \
    'condition simple [["i","==",1],["i","==",2]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:467"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
003: i=2 r=3 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:467"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:467"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:467: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:467: wait failed" >&5

    $as_echo "ovsdb-idl.at:467" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:467"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2085
#AT_START_2086
at_fn_group_banner 2086 'ovsdb-idl.at:467' \
  "simple idl, conditional, multiple clauses in condition - Python3" "" 99
at_xfail=no
(
  $as_echo "2086. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:467" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:467"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:467"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: ovsdb-client transact unix:socket '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}},
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 2,
               \"r\": 3.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:467"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}},
       {"op": "insert",
       "table": "simple",
       "row": {"i": 2,
               "r": 3.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket 'condition simple []' \\
    'condition simple [[\"i\",\"==\",1],[\"i\",\"==\",2]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:467"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'condition simple []' \
    'condition simple [["i","==",1],["i","==",2]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:467"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
003: i=2 r=3 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:467"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:467"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:467: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:467: wait failed" >&5

    $as_echo "ovsdb-idl.at:467" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:467"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2086
#AT_START_2087
at_fn_group_banner 2087 'ovsdb-idl.at:467' \
  "simple idl, conditional, multiple clauses in condition - Python2 - register_columns" "" 99
at_xfail=no
(
  $as_echo "2087. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:467" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:467"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:467"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: ovsdb-client transact unix:socket '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}},
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 2,
               \"r\": 3.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:467"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}},
       {"op": "insert",
       "table": "simple",
       "row": {"i": 2,
               "r": 3.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'condition simple []' \\
    'condition simple [[\"i\",\"==\",1],[\"i\",\"==\",2]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:467"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'condition simple []' \
    'condition simple [["i","==",1],["i","==",2]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:467"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
003: i=2 r=3 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:467"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:467"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:467: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:467: wait failed" >&5

    $as_echo "ovsdb-idl.at:467" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:467"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2087
#AT_START_2088
at_fn_group_banner 2088 'ovsdb-idl.at:467' \
  "simple idl, conditional, multiple clauses in condition - Python3 - register_columns" "" 99
at_xfail=no
(
  $as_echo "2088. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:467" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:467"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:467"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: ovsdb-client transact unix:socket '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}},
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 2,
               \"r\": 3.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:467"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}},
       {"op": "insert",
       "table": "simple",
       "row": {"i": 2,
               "r": 3.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'condition simple []' \\
    'condition simple [[\"i\",\"==\",1],[\"i\",\"==\",2]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:467"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'condition simple []' \
    'condition simple [["i","==",1],["i","==",2]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:467"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
003: i=2 r=3 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:467"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:467"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:467: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:467: wait failed" >&5

    $as_echo "ovsdb-idl.at:467" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:467"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2088
#AT_START_2089
at_fn_group_banner 2089 'ovsdb-idl.at:467' \
  "simple idl, conditional, multiple clauses in condition - Python2 - tcp" "" 99
at_xfail=no
(
  $as_echo "2089. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:467" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:467"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:467"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:467: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:467: wait failed" >&5

    $as_echo "ovsdb-idl.at:467" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:467"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}},
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 2,
               \"r\": 3.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:467"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}},
       {"op": "insert",
       "table": "simple",
       "row": {"i": 2,
               "r": 3.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT 'condition simple []' \\
    'condition simple [[\"i\",\"==\",1],[\"i\",\"==\",2]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:467"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT 'condition simple []' \
    'condition simple [["i","==",1],["i","==",2]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:467"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
003: i=2 r=3 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:467"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:467"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:467: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:467: wait failed" >&5

    $as_echo "ovsdb-idl.at:467" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:467"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2089
#AT_START_2090
at_fn_group_banner 2090 'ovsdb-idl.at:467' \
  "simple idl, conditional, multiple clauses in condition - Python3 - tcp" "" 99
at_xfail=no
(
  $as_echo "2090. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:467" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:467"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:467"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:467: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:467: wait failed" >&5

    $as_echo "ovsdb-idl.at:467" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:467"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}},
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 2,
               \"r\": 3.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:467"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}},
       {"op": "insert",
       "table": "simple",
       "row": {"i": 2,
               "r": 3.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT 'condition simple []' \\
    'condition simple [[\"i\",\"==\",1],[\"i\",\"==\",2]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:467"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT 'condition simple []' \
    'condition simple [["i","==",1],["i","==",2]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:467"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
003: i=2 r=3 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:467"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:467"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:467: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:467: wait failed" >&5

    $as_echo "ovsdb-idl.at:467" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:467"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2090
#AT_START_2091
at_fn_group_banner 2091 'ovsdb-idl.at:467' \
  "simple idl, conditional, multiple clauses in condition - Python2 - tcp6" "" 99
at_xfail=no
(
  $as_echo "2091. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:467" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:467"
   $as_echo "ovsdb-idl.at:467" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:467"
   $as_echo "ovsdb-idl.at:467" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:467"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:467"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:467: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:467: wait failed" >&5

    $as_echo "ovsdb-idl.at:467" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:467"
fi

   echo "TCP_PORT=$TCP_PORT"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: ovsdb-client transact \"tcp:[::1]:\$TCP_PORT\" '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}},
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 2,
               \"r\": 3.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:467"
( $at_check_trace; ovsdb-client transact "tcp:[::1]:$TCP_PORT" '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}},
       {"op": "insert",
       "table": "simple",
       "row": {"i": 2,
               "r": 3.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT 'condition simple []' \\
    'condition simple [[\"i\",\"==\",1],[\"i\",\"==\",2]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:467"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT 'condition simple []' \
    'condition simple [["i","==",1],["i","==",2]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:467"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
003: i=2 r=3 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:467"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:467"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:467: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:467: wait failed" >&5

    $as_echo "ovsdb-idl.at:467" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:467"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2091
#AT_START_2092
at_fn_group_banner 2092 'ovsdb-idl.at:467' \
  "simple idl, conditional, multiple clauses in condition - Python3 - tcp6" "" 99
at_xfail=no
(
  $as_echo "2092. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:467" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:467"
   $as_echo "ovsdb-idl.at:467" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:467"
   $as_echo "ovsdb-idl.at:467" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:467"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:467"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:467: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:467: wait failed" >&5

    $as_echo "ovsdb-idl.at:467" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:467"
fi

   echo "TCP_PORT=$TCP_PORT"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: ovsdb-client transact \"tcp:[::1]:\$TCP_PORT\" '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}},
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 2,
               \"r\": 3.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:467"
( $at_check_trace; ovsdb-client transact "tcp:[::1]:$TCP_PORT" '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}},
       {"op": "insert",
       "table": "simple",
       "row": {"i": 2,
               "r": 3.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT 'condition simple []' \\
    'condition simple [[\"i\",\"==\",1],[\"i\",\"==\",2]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:467"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT 'condition simple []' \
    'condition simple [["i","==",1],["i","==",2]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:467"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
003: i=2 r=3 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:467"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:467: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:467"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:467"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:467: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:467: wait failed" >&5

    $as_echo "ovsdb-idl.at:467" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:467"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2092
#AT_START_2093
at_fn_group_banner 2093 'ovsdb-idl.at:489' \
  "simple idl, conditional, modify as insert due to condition - C" "" 99
at_xfail=no
(
  $as_echo "2093. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:489"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: ovsdb-client transact unix:socket '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:489"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket 'condition simple []' \\
    'condition simple [[\"i\",\"==\",1]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:489"
( $at_check_trace; test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket 'condition simple []' \
    'condition simple [["i","==",1]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:489"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:489"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:489"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:489: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:489: wait failed" >&5

    $as_echo "ovsdb-idl.at:489" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:489"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2093
#AT_START_2094
at_fn_group_banner 2094 'ovsdb-idl.at:489' \
  "simple idl, conditional, modify as insert due to condition - Python2" "" 99
at_xfail=no
(
  $as_echo "2094. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:489" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:489"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:489"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: ovsdb-client transact unix:socket '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:489"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket 'condition simple []' \\
    'condition simple [[\"i\",\"==\",1]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:489"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'condition simple []' \
    'condition simple [["i","==",1]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:489"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:489"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:489"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:489: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:489: wait failed" >&5

    $as_echo "ovsdb-idl.at:489" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:489"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2094
#AT_START_2095
at_fn_group_banner 2095 'ovsdb-idl.at:489' \
  "simple idl, conditional, modify as insert due to condition - Python3" "" 99
at_xfail=no
(
  $as_echo "2095. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:489" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:489"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:489"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: ovsdb-client transact unix:socket '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:489"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket 'condition simple []' \\
    'condition simple [[\"i\",\"==\",1]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:489"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'condition simple []' \
    'condition simple [["i","==",1]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:489"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:489"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:489"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:489: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:489: wait failed" >&5

    $as_echo "ovsdb-idl.at:489" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:489"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2095
#AT_START_2096
at_fn_group_banner 2096 'ovsdb-idl.at:489' \
  "simple idl, conditional, modify as insert due to condition - Python2 - register_columns" "" 99
at_xfail=no
(
  $as_echo "2096. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:489" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:489"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:489"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: ovsdb-client transact unix:socket '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:489"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'condition simple []' \\
    'condition simple [[\"i\",\"==\",1]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:489"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'condition simple []' \
    'condition simple [["i","==",1]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:489"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:489"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:489"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:489: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:489: wait failed" >&5

    $as_echo "ovsdb-idl.at:489" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:489"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2096
#AT_START_2097
at_fn_group_banner 2097 'ovsdb-idl.at:489' \
  "simple idl, conditional, modify as insert due to condition - Python3 - register_columns" "" 99
at_xfail=no
(
  $as_echo "2097. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:489" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:489"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:489"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: ovsdb-client transact unix:socket '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:489"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'condition simple []' \\
    'condition simple [[\"i\",\"==\",1]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:489"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'condition simple []' \
    'condition simple [["i","==",1]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:489"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:489"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:489"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:489: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:489: wait failed" >&5

    $as_echo "ovsdb-idl.at:489" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:489"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2097
#AT_START_2098
at_fn_group_banner 2098 'ovsdb-idl.at:489' \
  "simple idl, conditional, modify as insert due to condition - Python2 - tcp" "" 99
at_xfail=no
(
  $as_echo "2098. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:489" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:489"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:489"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:489: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:489: wait failed" >&5

    $as_echo "ovsdb-idl.at:489" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:489"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:489"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT 'condition simple []' \\
    'condition simple [[\"i\",\"==\",1]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:489"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT 'condition simple []' \
    'condition simple [["i","==",1]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:489"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:489"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:489"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:489: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:489: wait failed" >&5

    $as_echo "ovsdb-idl.at:489" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:489"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2098
#AT_START_2099
at_fn_group_banner 2099 'ovsdb-idl.at:489' \
  "simple idl, conditional, modify as insert due to condition - Python3 - tcp" "" 99
at_xfail=no
(
  $as_echo "2099. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:489" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:489"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:489"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:489: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:489: wait failed" >&5

    $as_echo "ovsdb-idl.at:489" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:489"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:489"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT 'condition simple []' \\
    'condition simple [[\"i\",\"==\",1]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:489"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT 'condition simple []' \
    'condition simple [["i","==",1]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:489"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:489"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:489"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:489: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:489: wait failed" >&5

    $as_echo "ovsdb-idl.at:489" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:489"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2099
#AT_START_2100
at_fn_group_banner 2100 'ovsdb-idl.at:489' \
  "simple idl, conditional, modify as insert due to condition - Python2 - tcp6" "" 99
at_xfail=no
(
  $as_echo "2100. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:489" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:489"
   $as_echo "ovsdb-idl.at:489" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:489"
   $as_echo "ovsdb-idl.at:489" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:489"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:489"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:489: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:489: wait failed" >&5

    $as_echo "ovsdb-idl.at:489" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:489"
fi

   echo "TCP_PORT=$TCP_PORT"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: ovsdb-client transact \"tcp:[::1]:\$TCP_PORT\" '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:489"
( $at_check_trace; ovsdb-client transact "tcp:[::1]:$TCP_PORT" '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT 'condition simple []' \\
    'condition simple [[\"i\",\"==\",1]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:489"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT 'condition simple []' \
    'condition simple [["i","==",1]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:489"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:489"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:489"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:489: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:489: wait failed" >&5

    $as_echo "ovsdb-idl.at:489" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:489"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2100
#AT_START_2101
at_fn_group_banner 2101 'ovsdb-idl.at:489' \
  "simple idl, conditional, modify as insert due to condition - Python3 - tcp6" "" 99
at_xfail=no
(
  $as_echo "2101. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:489" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:489"
   $as_echo "ovsdb-idl.at:489" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:489"
   $as_echo "ovsdb-idl.at:489" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:489"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:489"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:489: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:489: wait failed" >&5

    $as_echo "ovsdb-idl.at:489" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:489"
fi

   echo "TCP_PORT=$TCP_PORT"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: ovsdb-client transact \"tcp:[::1]:\$TCP_PORT\" '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:489"
( $at_check_trace; ovsdb-client transact "tcp:[::1]:$TCP_PORT" '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT 'condition simple []' \\
    'condition simple [[\"i\",\"==\",1]]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:489"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT 'condition simple []' \
    'condition simple [["i","==",1]]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:489"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:489"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:489: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:489"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:489: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:489: wait failed" >&5

    $as_echo "ovsdb-idl.at:489" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:489"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2101
#AT_START_2102
at_fn_group_banner 2102 'ovsdb-idl.at:505' \
  "simple idl, conditional, modify as delete due to condition - C" "" 99
at_xfail=no
(
  $as_echo "2102. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:505"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: ovsdb-client transact unix:socket '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:505"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket 'condition simple []' \\
    'condition simple [[\"i\",\"==\",1],[\"i\",\"==\",2]]' \\
    'condition simple [[\"i\",\"==\",2]]' \\
    '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 2,
               \"r\": 3.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:505"
( $at_check_trace; test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket 'condition simple []' \
    'condition simple [["i","==",1],["i","==",2]]' \
    'condition simple [["i","==",2]]' \
    '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 2,
               "r": 3.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:505"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: change conditions
005: empty
006: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<2>\"]}]}
007: i=2 r=3 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
008: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:505"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:505"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:505: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:505: wait failed" >&5

    $as_echo "ovsdb-idl.at:505" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:505"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2102
#AT_START_2103
at_fn_group_banner 2103 'ovsdb-idl.at:505' \
  "simple idl, conditional, modify as delete due to condition - Python2" "" 99
at_xfail=no
(
  $as_echo "2103. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:505" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:505"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:505"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: ovsdb-client transact unix:socket '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:505"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket 'condition simple []' \\
    'condition simple [[\"i\",\"==\",1],[\"i\",\"==\",2]]' \\
    'condition simple [[\"i\",\"==\",2]]' \\
    '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 2,
               \"r\": 3.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:505"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'condition simple []' \
    'condition simple [["i","==",1],["i","==",2]]' \
    'condition simple [["i","==",2]]' \
    '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 2,
               "r": 3.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:505"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: change conditions
005: empty
006: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<2>\"]}]}
007: i=2 r=3 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
008: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:505"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:505"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:505: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:505: wait failed" >&5

    $as_echo "ovsdb-idl.at:505" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:505"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2103
#AT_START_2104
at_fn_group_banner 2104 'ovsdb-idl.at:505' \
  "simple idl, conditional, modify as delete due to condition - Python3" "" 99
at_xfail=no
(
  $as_echo "2104. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:505" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:505"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:505"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: ovsdb-client transact unix:socket '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:505"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket 'condition simple []' \\
    'condition simple [[\"i\",\"==\",1],[\"i\",\"==\",2]]' \\
    'condition simple [[\"i\",\"==\",2]]' \\
    '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 2,
               \"r\": 3.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:505"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'condition simple []' \
    'condition simple [["i","==",1],["i","==",2]]' \
    'condition simple [["i","==",2]]' \
    '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 2,
               "r": 3.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:505"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: change conditions
005: empty
006: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<2>\"]}]}
007: i=2 r=3 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
008: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:505"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:505"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:505: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:505: wait failed" >&5

    $as_echo "ovsdb-idl.at:505" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:505"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2104
#AT_START_2105
at_fn_group_banner 2105 'ovsdb-idl.at:505' \
  "simple idl, conditional, modify as delete due to condition - Python2 - register_columns" "" 99
at_xfail=no
(
  $as_echo "2105. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:505" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:505"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:505"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: ovsdb-client transact unix:socket '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:505"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'condition simple []' \\
    'condition simple [[\"i\",\"==\",1],[\"i\",\"==\",2]]' \\
    'condition simple [[\"i\",\"==\",2]]' \\
    '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 2,
               \"r\": 3.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:505"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'condition simple []' \
    'condition simple [["i","==",1],["i","==",2]]' \
    'condition simple [["i","==",2]]' \
    '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 2,
               "r": 3.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:505"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: change conditions
005: empty
006: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<2>\"]}]}
007: i=2 r=3 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
008: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:505"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:505"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:505: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:505: wait failed" >&5

    $as_echo "ovsdb-idl.at:505" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:505"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2105
#AT_START_2106
at_fn_group_banner 2106 'ovsdb-idl.at:505' \
  "simple idl, conditional, modify as delete due to condition - Python3 - register_columns" "" 99
at_xfail=no
(
  $as_echo "2106. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:505" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:505"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:505"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: ovsdb-client transact unix:socket '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:505"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'condition simple []' \\
    'condition simple [[\"i\",\"==\",1],[\"i\",\"==\",2]]' \\
    'condition simple [[\"i\",\"==\",2]]' \\
    '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 2,
               \"r\": 3.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:505"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'condition simple []' \
    'condition simple [["i","==",1],["i","==",2]]' \
    'condition simple [["i","==",2]]' \
    '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 2,
               "r": 3.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:505"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: change conditions
005: empty
006: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<2>\"]}]}
007: i=2 r=3 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
008: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:505"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:505"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:505: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:505: wait failed" >&5

    $as_echo "ovsdb-idl.at:505" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:505"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2106
#AT_START_2107
at_fn_group_banner 2107 'ovsdb-idl.at:505' \
  "simple idl, conditional, modify as delete due to condition - Python2 - tcp" "" 99
at_xfail=no
(
  $as_echo "2107. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:505" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:505"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:505"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:505: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:505: wait failed" >&5

    $as_echo "ovsdb-idl.at:505" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:505"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:505"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT 'condition simple []' \\
    'condition simple [[\"i\",\"==\",1],[\"i\",\"==\",2]]' \\
    'condition simple [[\"i\",\"==\",2]]' \\
    '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 2,
               \"r\": 3.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:505"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT 'condition simple []' \
    'condition simple [["i","==",1],["i","==",2]]' \
    'condition simple [["i","==",2]]' \
    '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 2,
               "r": 3.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:505"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: change conditions
005: empty
006: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<2>\"]}]}
007: i=2 r=3 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
008: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:505"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:505"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:505: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:505: wait failed" >&5

    $as_echo "ovsdb-idl.at:505" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:505"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2107
#AT_START_2108
at_fn_group_banner 2108 'ovsdb-idl.at:505' \
  "simple idl, conditional, modify as delete due to condition - Python3 - tcp" "" 99
at_xfail=no
(
  $as_echo "2108. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:505" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:505"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:505"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:505: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:505: wait failed" >&5

    $as_echo "ovsdb-idl.at:505" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:505"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:505"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT 'condition simple []' \\
    'condition simple [[\"i\",\"==\",1],[\"i\",\"==\",2]]' \\
    'condition simple [[\"i\",\"==\",2]]' \\
    '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 2,
               \"r\": 3.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:505"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT 'condition simple []' \
    'condition simple [["i","==",1],["i","==",2]]' \
    'condition simple [["i","==",2]]' \
    '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 2,
               "r": 3.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:505"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: change conditions
005: empty
006: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<2>\"]}]}
007: i=2 r=3 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
008: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:505"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:505"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:505: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:505: wait failed" >&5

    $as_echo "ovsdb-idl.at:505" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:505"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2108
#AT_START_2109
at_fn_group_banner 2109 'ovsdb-idl.at:505' \
  "simple idl, conditional, modify as delete due to condition - Python2 - tcp6" "" 99
at_xfail=no
(
  $as_echo "2109. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:505" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:505"
   $as_echo "ovsdb-idl.at:505" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:505"
   $as_echo "ovsdb-idl.at:505" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:505"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:505"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:505: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:505: wait failed" >&5

    $as_echo "ovsdb-idl.at:505" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:505"
fi

   echo "TCP_PORT=$TCP_PORT"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: ovsdb-client transact \"tcp:[::1]:\$TCP_PORT\" '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:505"
( $at_check_trace; ovsdb-client transact "tcp:[::1]:$TCP_PORT" '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT 'condition simple []' \\
    'condition simple [[\"i\",\"==\",1],[\"i\",\"==\",2]]' \\
    'condition simple [[\"i\",\"==\",2]]' \\
    '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 2,
               \"r\": 3.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:505"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT 'condition simple []' \
    'condition simple [["i","==",1],["i","==",2]]' \
    'condition simple [["i","==",2]]' \
    '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 2,
               "r": 3.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:505"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: change conditions
005: empty
006: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<2>\"]}]}
007: i=2 r=3 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
008: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:505"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:505"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:505: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:505: wait failed" >&5

    $as_echo "ovsdb-idl.at:505" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:505"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2109
#AT_START_2110
at_fn_group_banner 2110 'ovsdb-idl.at:505' \
  "simple idl, conditional, modify as delete due to condition - Python3 - tcp6" "" 99
at_xfail=no
(
  $as_echo "2110. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:505" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:505"
   $as_echo "ovsdb-idl.at:505" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:505"
   $as_echo "ovsdb-idl.at:505" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:505"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:505"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:505: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:505: wait failed" >&5

    $as_echo "ovsdb-idl.at:505" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:505"
fi

   echo "TCP_PORT=$TCP_PORT"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: ovsdb-client transact \"tcp:[::1]:\$TCP_PORT\" '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:505"
( $at_check_trace; ovsdb-client transact "tcp:[::1]:$TCP_PORT" '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT 'condition simple []' \\
    'condition simple [[\"i\",\"==\",1],[\"i\",\"==\",2]]' \\
    'condition simple [[\"i\",\"==\",2]]' \\
    '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 2,
               \"r\": 3.0,
               \"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:505"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT 'condition simple []' \
    'condition simple [["i","==",1],["i","==",2]]' \
    'condition simple [["i","==",2]]' \
    '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 2,
               "r": 3.0,
               "b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:505"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: change conditions
005: empty
006: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<2>\"]}]}
007: i=2 r=3 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
008: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:505"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:505: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:505"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:505"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:505: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:505: wait failed" >&5

    $as_echo "ovsdb-idl.at:505" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:505"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2110
#AT_START_2111
at_fn_group_banner 2111 'ovsdb-idl.at:532' \
  "simple idl, conditional, multiple tables - C" "   " 99
at_xfail=no
(
  $as_echo "2111. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:532"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: ovsdb-client transact unix:socket '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}},
       {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"named-uuid\", \"self\"]},
       \"uuid-name\": \"self\"},
        {\"op\": \"insert\",
       \"table\": \"link2\",
       \"row\": {\"i\": 2},
       \"uuid-name\": \"row0\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:532"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}},
       {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["named-uuid", "self"]},
       "uuid-name": "self"},
        {"op": "insert",
       "table": "link2",
       "row": {"i": 2},
       "uuid-name": "row0"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket 'condition simple [];link1 [];link2 []' \\
    'condition simple [[\"i\",\"==\",1]]' \\
    'condition link1 [[\"i\",\"==\",0]]' \\
    'condition link2 [[\"i\",\"==\",3]]' \\
    '+[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"link2\",
       \"row\": {\"i\": 3},
        \"uuid-name\": \"row0\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:532"
( $at_check_trace; test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket 'condition simple [];link1 [];link2 []' \
    'condition simple [["i","==",1]]' \
    'condition link1 [["i","==",0]]' \
    'condition link2 [["i","==",3]]' \
    '+["idltest",
       {"op": "insert",
       "table": "link2",
       "row": {"i": 3},
        "uuid-name": "row0"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:532"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: change conditions
005: i=0 k=0 ka=[] l2= uuid=<2>
005: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
006: change conditions
007: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<3>\"]}]}
008: i=0 k=0 ka=[] l2= uuid=<2>
008: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
008: i=3 l1= uuid=<3>
009: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:532"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:532"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:532: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:532: wait failed" >&5

    $as_echo "ovsdb-idl.at:532" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:532"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2111
#AT_START_2112
at_fn_group_banner 2112 'ovsdb-idl.at:532' \
  "simple idl, conditional, multiple tables - Python2" "" 99
at_xfail=no
(
  $as_echo "2112. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:532" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:532"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:532"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: ovsdb-client transact unix:socket '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}},
       {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"named-uuid\", \"self\"]},
       \"uuid-name\": \"self\"},
        {\"op\": \"insert\",
       \"table\": \"link2\",
       \"row\": {\"i\": 2},
       \"uuid-name\": \"row0\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:532"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}},
       {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["named-uuid", "self"]},
       "uuid-name": "self"},
        {"op": "insert",
       "table": "link2",
       "row": {"i": 2},
       "uuid-name": "row0"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket 'condition simple [];link1 [];link2 []' \\
    'condition simple [[\"i\",\"==\",1]]' \\
    'condition link1 [[\"i\",\"==\",0]]' \\
    'condition link2 [[\"i\",\"==\",3]]' \\
    '+[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"link2\",
       \"row\": {\"i\": 3},
        \"uuid-name\": \"row0\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:532"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'condition simple [];link1 [];link2 []' \
    'condition simple [["i","==",1]]' \
    'condition link1 [["i","==",0]]' \
    'condition link2 [["i","==",3]]' \
    '+["idltest",
       {"op": "insert",
       "table": "link2",
       "row": {"i": 3},
        "uuid-name": "row0"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:532"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: change conditions
005: i=0 k=0 ka=[] l2= uuid=<2>
005: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
006: change conditions
007: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<3>\"]}]}
008: i=0 k=0 ka=[] l2= uuid=<2>
008: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
008: i=3 l1= uuid=<3>
009: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:532"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:532"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:532: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:532: wait failed" >&5

    $as_echo "ovsdb-idl.at:532" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:532"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2112
#AT_START_2113
at_fn_group_banner 2113 'ovsdb-idl.at:532' \
  "simple idl, conditional, multiple tables - Python3" "" 99
at_xfail=no
(
  $as_echo "2113. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:532" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:532"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:532"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: ovsdb-client transact unix:socket '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}},
       {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"named-uuid\", \"self\"]},
       \"uuid-name\": \"self\"},
        {\"op\": \"insert\",
       \"table\": \"link2\",
       \"row\": {\"i\": 2},
       \"uuid-name\": \"row0\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:532"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}},
       {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["named-uuid", "self"]},
       "uuid-name": "self"},
        {"op": "insert",
       "table": "link2",
       "row": {"i": 2},
       "uuid-name": "row0"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket 'condition simple [];link1 [];link2 []' \\
    'condition simple [[\"i\",\"==\",1]]' \\
    'condition link1 [[\"i\",\"==\",0]]' \\
    'condition link2 [[\"i\",\"==\",3]]' \\
    '+[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"link2\",
       \"row\": {\"i\": 3},
        \"uuid-name\": \"row0\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:532"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'condition simple [];link1 [];link2 []' \
    'condition simple [["i","==",1]]' \
    'condition link1 [["i","==",0]]' \
    'condition link2 [["i","==",3]]' \
    '+["idltest",
       {"op": "insert",
       "table": "link2",
       "row": {"i": 3},
        "uuid-name": "row0"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:532"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: change conditions
005: i=0 k=0 ka=[] l2= uuid=<2>
005: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
006: change conditions
007: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<3>\"]}]}
008: i=0 k=0 ka=[] l2= uuid=<2>
008: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
008: i=3 l1= uuid=<3>
009: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:532"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:532"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:532: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:532: wait failed" >&5

    $as_echo "ovsdb-idl.at:532" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:532"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2113
#AT_START_2114
at_fn_group_banner 2114 'ovsdb-idl.at:532' \
  "simple idl, conditional, multiple tables - Python2 - register_columns" "" 99
at_xfail=no
(
  $as_echo "2114. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:532" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:532"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:532"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: ovsdb-client transact unix:socket '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}},
       {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"named-uuid\", \"self\"]},
       \"uuid-name\": \"self\"},
        {\"op\": \"insert\",
       \"table\": \"link2\",
       \"row\": {\"i\": 2},
       \"uuid-name\": \"row0\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:532"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}},
       {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["named-uuid", "self"]},
       "uuid-name": "self"},
        {"op": "insert",
       "table": "link2",
       "row": {"i": 2},
       "uuid-name": "row0"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'condition simple [];link1 [];link2 []' \\
    'condition simple [[\"i\",\"==\",1]]' \\
    'condition link1 [[\"i\",\"==\",0]]' \\
    'condition link2 [[\"i\",\"==\",3]]' \\
    '+[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"link2\",
       \"row\": {\"i\": 3},
        \"uuid-name\": \"row0\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:532"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'condition simple [];link1 [];link2 []' \
    'condition simple [["i","==",1]]' \
    'condition link1 [["i","==",0]]' \
    'condition link2 [["i","==",3]]' \
    '+["idltest",
       {"op": "insert",
       "table": "link2",
       "row": {"i": 3},
        "uuid-name": "row0"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:532"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: change conditions
005: i=0 k=0 ka=[] l2= uuid=<2>
005: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
006: change conditions
007: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<3>\"]}]}
008: i=0 k=0 ka=[] l2= uuid=<2>
008: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
008: i=3 l1= uuid=<3>
009: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:532"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:532"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:532: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:532: wait failed" >&5

    $as_echo "ovsdb-idl.at:532" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:532"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2114
#AT_START_2115
at_fn_group_banner 2115 'ovsdb-idl.at:532' \
  "simple idl, conditional, multiple tables - Python3 - register_columns" "" 99
at_xfail=no
(
  $as_echo "2115. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:532" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:532"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:532"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: ovsdb-client transact unix:socket '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}},
       {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"named-uuid\", \"self\"]},
       \"uuid-name\": \"self\"},
        {\"op\": \"insert\",
       \"table\": \"link2\",
       \"row\": {\"i\": 2},
       \"uuid-name\": \"row0\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:532"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}},
       {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["named-uuid", "self"]},
       "uuid-name": "self"},
        {"op": "insert",
       "table": "link2",
       "row": {"i": 2},
       "uuid-name": "row0"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'condition simple [];link1 [];link2 []' \\
    'condition simple [[\"i\",\"==\",1]]' \\
    'condition link1 [[\"i\",\"==\",0]]' \\
    'condition link2 [[\"i\",\"==\",3]]' \\
    '+[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"link2\",
       \"row\": {\"i\": 3},
        \"uuid-name\": \"row0\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:532"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 'condition simple [];link1 [];link2 []' \
    'condition simple [["i","==",1]]' \
    'condition link1 [["i","==",0]]' \
    'condition link2 [["i","==",3]]' \
    '+["idltest",
       {"op": "insert",
       "table": "link2",
       "row": {"i": 3},
        "uuid-name": "row0"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:532"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: change conditions
005: i=0 k=0 ka=[] l2= uuid=<2>
005: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
006: change conditions
007: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<3>\"]}]}
008: i=0 k=0 ka=[] l2= uuid=<2>
008: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
008: i=3 l1= uuid=<3>
009: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:532"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:532"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:532: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:532: wait failed" >&5

    $as_echo "ovsdb-idl.at:532" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:532"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2115
#AT_START_2116
at_fn_group_banner 2116 'ovsdb-idl.at:532' \
  "simple idl, conditional, multiple tables - Python2 - tcp" "" 99
at_xfail=no
(
  $as_echo "2116. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:532" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:532"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:532"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:532: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:532: wait failed" >&5

    $as_echo "ovsdb-idl.at:532" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:532"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}},
       {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"named-uuid\", \"self\"]},
       \"uuid-name\": \"self\"},
        {\"op\": \"insert\",
       \"table\": \"link2\",
       \"row\": {\"i\": 2},
       \"uuid-name\": \"row0\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:532"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}},
       {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["named-uuid", "self"]},
       "uuid-name": "self"},
        {"op": "insert",
       "table": "link2",
       "row": {"i": 2},
       "uuid-name": "row0"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT 'condition simple [];link1 [];link2 []' \\
    'condition simple [[\"i\",\"==\",1]]' \\
    'condition link1 [[\"i\",\"==\",0]]' \\
    'condition link2 [[\"i\",\"==\",3]]' \\
    '+[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"link2\",
       \"row\": {\"i\": 3},
        \"uuid-name\": \"row0\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:532"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT 'condition simple [];link1 [];link2 []' \
    'condition simple [["i","==",1]]' \
    'condition link1 [["i","==",0]]' \
    'condition link2 [["i","==",3]]' \
    '+["idltest",
       {"op": "insert",
       "table": "link2",
       "row": {"i": 3},
        "uuid-name": "row0"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:532"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: change conditions
005: i=0 k=0 ka=[] l2= uuid=<2>
005: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
006: change conditions
007: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<3>\"]}]}
008: i=0 k=0 ka=[] l2= uuid=<2>
008: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
008: i=3 l1= uuid=<3>
009: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:532"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:532"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:532: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:532: wait failed" >&5

    $as_echo "ovsdb-idl.at:532" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:532"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2116
#AT_START_2117
at_fn_group_banner 2117 'ovsdb-idl.at:532' \
  "simple idl, conditional, multiple tables - Python3 - tcp" "" 99
at_xfail=no
(
  $as_echo "2117. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:532" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:532"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:532"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:532: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:532: wait failed" >&5

    $as_echo "ovsdb-idl.at:532" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:532"
fi


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: ovsdb-client transact tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}},
       {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"named-uuid\", \"self\"]},
       \"uuid-name\": \"self\"},
        {\"op\": \"insert\",
       \"table\": \"link2\",
       \"row\": {\"i\": 2},
       \"uuid-name\": \"row0\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:532"
( $at_check_trace; ovsdb-client transact tcp:127.0.0.1:$TCP_PORT '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}},
       {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["named-uuid", "self"]},
       "uuid-name": "self"},
        {"op": "insert",
       "table": "link2",
       "row": {"i": 2},
       "uuid-name": "row0"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT 'condition simple [];link1 [];link2 []' \\
    'condition simple [[\"i\",\"==\",1]]' \\
    'condition link1 [[\"i\",\"==\",0]]' \\
    'condition link2 [[\"i\",\"==\",3]]' \\
    '+[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"link2\",
       \"row\": {\"i\": 3},
        \"uuid-name\": \"row0\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:532"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT 'condition simple [];link1 [];link2 []' \
    'condition simple [["i","==",1]]' \
    'condition link1 [["i","==",0]]' \
    'condition link2 [["i","==",3]]' \
    '+["idltest",
       {"op": "insert",
       "table": "link2",
       "row": {"i": 3},
        "uuid-name": "row0"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:532"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: change conditions
005: i=0 k=0 ka=[] l2= uuid=<2>
005: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
006: change conditions
007: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<3>\"]}]}
008: i=0 k=0 ka=[] l2= uuid=<2>
008: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
008: i=3 l1= uuid=<3>
009: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:532"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:532"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:532: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:532: wait failed" >&5

    $as_echo "ovsdb-idl.at:532" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:532"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2117
#AT_START_2118
at_fn_group_banner 2118 'ovsdb-idl.at:532' \
  "simple idl, conditional, multiple tables - Python2 - tcp6" "" 99
at_xfail=no
(
  $as_echo "2118. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:532" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:532"
   $as_echo "ovsdb-idl.at:532" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:532"
   $as_echo "ovsdb-idl.at:532" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:532"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:532"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:532: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:532: wait failed" >&5

    $as_echo "ovsdb-idl.at:532" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:532"
fi

   echo "TCP_PORT=$TCP_PORT"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: ovsdb-client transact \"tcp:[::1]:\$TCP_PORT\" '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}},
       {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"named-uuid\", \"self\"]},
       \"uuid-name\": \"self\"},
        {\"op\": \"insert\",
       \"table\": \"link2\",
       \"row\": {\"i\": 2},
       \"uuid-name\": \"row0\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:532"
( $at_check_trace; ovsdb-client transact "tcp:[::1]:$TCP_PORT" '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}},
       {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["named-uuid", "self"]},
       "uuid-name": "self"},
        {"op": "insert",
       "table": "link2",
       "row": {"i": 2},
       "uuid-name": "row0"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT 'condition simple [];link1 [];link2 []' \\
    'condition simple [[\"i\",\"==\",1]]' \\
    'condition link1 [[\"i\",\"==\",0]]' \\
    'condition link2 [[\"i\",\"==\",3]]' \\
    '+[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"link2\",
       \"row\": {\"i\": 3},
        \"uuid-name\": \"row0\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:532"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT 'condition simple [];link1 [];link2 []' \
    'condition simple [["i","==",1]]' \
    'condition link1 [["i","==",0]]' \
    'condition link2 [["i","==",3]]' \
    '+["idltest",
       {"op": "insert",
       "table": "link2",
       "row": {"i": 3},
        "uuid-name": "row0"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:532"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: change conditions
005: i=0 k=0 ka=[] l2= uuid=<2>
005: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
006: change conditions
007: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<3>\"]}]}
008: i=0 k=0 ka=[] l2= uuid=<2>
008: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
008: i=3 l1= uuid=<3>
009: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:532"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:532"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:532: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:532: wait failed" >&5

    $as_echo "ovsdb-idl.at:532" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:532"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2118
#AT_START_2119
at_fn_group_banner 2119 'ovsdb-idl.at:532' \
  "simple idl, conditional, multiple tables - Python3 - tcp6" "" 99
at_xfail=no
(
  $as_echo "2119. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:532" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:532"
   $as_echo "ovsdb-idl.at:532" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:532"
   $as_echo "ovsdb-idl.at:532" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:532"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:532"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:532: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:532: wait failed" >&5

    $as_echo "ovsdb-idl.at:532" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:532"
fi

   echo "TCP_PORT=$TCP_PORT"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: ovsdb-client transact \"tcp:[::1]:\$TCP_PORT\" '[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true}},
       {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"named-uuid\", \"self\"]},
       \"uuid-name\": \"self\"},
        {\"op\": \"insert\",
       \"table\": \"link2\",
       \"row\": {\"i\": 2},
       \"uuid-name\": \"row0\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:532"
( $at_check_trace; ovsdb-client transact "tcp:[::1]:$TCP_PORT" '["idltest",
       {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true}},
       {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["named-uuid", "self"]},
       "uuid-name": "self"},
        {"op": "insert",
       "table": "link2",
       "row": {"i": 2},
       "uuid-name": "row0"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT 'condition simple [];link1 [];link2 []' \\
    'condition simple [[\"i\",\"==\",1]]' \\
    'condition link1 [[\"i\",\"==\",0]]' \\
    'condition link2 [[\"i\",\"==\",3]]' \\
    '+[\"idltest\",
       {\"op\": \"insert\",
       \"table\": \"link2\",
       \"row\": {\"i\": 3},
        \"uuid-name\": \"row0\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:532"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT 'condition simple [];link1 [];link2 []' \
    'condition simple [["i","==",1]]' \
    'condition link1 [["i","==",0]]' \
    'condition link2 [["i","==",3]]' \
    '+["idltest",
       {"op": "insert",
       "table": "link2",
       "row": {"i": 3},
        "uuid-name": "row0"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:532"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: change conditions
001: empty
002: change conditions
003: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: change conditions
005: i=0 k=0 ka=[] l2= uuid=<2>
005: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
006: change conditions
007: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<3>\"]}]}
008: i=0 k=0 ka=[] l2= uuid=<2>
008: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
008: i=3 l1= uuid=<3>
009: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:532"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:532: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:532"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:532"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:532: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:532: wait failed" >&5

    $as_echo "ovsdb-idl.at:532" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:532"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2119
#AT_START_2120
at_fn_group_banner 2120 'ovsdb-idl.at:571' \
  "self-linking idl, consistent ops - C" "           " 99
at_xfail=no
(
  $as_echo "2120. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:571"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"named-uuid\", \"self\"]},
       \"uuid-name\": \"self\"}]' \\
    '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"row2\"]},
       \"uuid-name\": \"row1\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 2, \"k\": [\"named-uuid\", \"row1\"]},
       \"uuid-name\": \"row2\"}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [[\"i\", \"==\", 1]],
       \"row\": {\"k\": [\"uuid\", \"#1#\"]}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [],
       \"row\": {\"k\": [\"uuid\", \"#0#\"]}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:571"
( $at_check_trace; test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["named-uuid", "self"]},
       "uuid-name": "self"}]' \
    '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 1, "k": ["named-uuid", "row2"]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 2, "k": ["named-uuid", "row1"]},
       "uuid-name": "row2"}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [["i", "==", 1]],
       "row": {"k": ["uuid", "#1#"]}}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [],
       "row": {"k": ["uuid", "#0#"]}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:571"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]}]}
002: i=0 k=0 ka=[] l2= uuid=<0>
003: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]}]}
004: i=0 k=0 ka=[] l2= uuid=<0>
004: i=1 k=2 ka=[] l2= uuid=<1>
004: i=2 k=1 ka=[] l2= uuid=<2>
005: {\"error\":null,\"result\":[{\"count\":1}]}
006: i=0 k=0 ka=[] l2= uuid=<0>
006: i=1 k=1 ka=[] l2= uuid=<1>
006: i=2 k=1 ka=[] l2= uuid=<2>
007: {\"error\":null,\"result\":[{\"count\":3}]}
008: i=0 k=0 ka=[] l2= uuid=<0>
008: i=1 k=0 ka=[] l2= uuid=<1>
008: i=2 k=0 ka=[] l2= uuid=<2>
009: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:571"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:571"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:571: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:571: wait failed" >&5

    $as_echo "ovsdb-idl.at:571" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:571"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2120
#AT_START_2121
at_fn_group_banner 2121 'ovsdb-idl.at:571' \
  "self-linking idl, consistent ops - Python2" "     " 99
at_xfail=no
(
  $as_echo "2121. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:571" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:571"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:571"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"named-uuid\", \"self\"]},
       \"uuid-name\": \"self\"}]' \\
    '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"row2\"]},
       \"uuid-name\": \"row1\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 2, \"k\": [\"named-uuid\", \"row1\"]},
       \"uuid-name\": \"row2\"}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [[\"i\", \"==\", 1]],
       \"row\": {\"k\": [\"uuid\", \"#1#\"]}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [],
       \"row\": {\"k\": [\"uuid\", \"#0#\"]}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:571"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["named-uuid", "self"]},
       "uuid-name": "self"}]' \
    '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 1, "k": ["named-uuid", "row2"]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 2, "k": ["named-uuid", "row1"]},
       "uuid-name": "row2"}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [["i", "==", 1]],
       "row": {"k": ["uuid", "#1#"]}}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [],
       "row": {"k": ["uuid", "#0#"]}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:571"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]}]}
002: i=0 k=0 ka=[] l2= uuid=<0>
003: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]}]}
004: i=0 k=0 ka=[] l2= uuid=<0>
004: i=1 k=2 ka=[] l2= uuid=<1>
004: i=2 k=1 ka=[] l2= uuid=<2>
005: {\"error\":null,\"result\":[{\"count\":1}]}
006: i=0 k=0 ka=[] l2= uuid=<0>
006: i=1 k=1 ka=[] l2= uuid=<1>
006: i=2 k=1 ka=[] l2= uuid=<2>
007: {\"error\":null,\"result\":[{\"count\":3}]}
008: i=0 k=0 ka=[] l2= uuid=<0>
008: i=1 k=0 ka=[] l2= uuid=<1>
008: i=2 k=0 ka=[] l2= uuid=<2>
009: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:571"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:571"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:571: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:571: wait failed" >&5

    $as_echo "ovsdb-idl.at:571" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:571"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2121
#AT_START_2122
at_fn_group_banner 2122 'ovsdb-idl.at:571' \
  "self-linking idl, consistent ops - Python3" "     " 99
at_xfail=no
(
  $as_echo "2122. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:571" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:571"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:571"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"named-uuid\", \"self\"]},
       \"uuid-name\": \"self\"}]' \\
    '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"row2\"]},
       \"uuid-name\": \"row1\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 2, \"k\": [\"named-uuid\", \"row1\"]},
       \"uuid-name\": \"row2\"}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [[\"i\", \"==\", 1]],
       \"row\": {\"k\": [\"uuid\", \"#1#\"]}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [],
       \"row\": {\"k\": [\"uuid\", \"#0#\"]}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:571"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["named-uuid", "self"]},
       "uuid-name": "self"}]' \
    '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 1, "k": ["named-uuid", "row2"]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 2, "k": ["named-uuid", "row1"]},
       "uuid-name": "row2"}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [["i", "==", 1]],
       "row": {"k": ["uuid", "#1#"]}}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [],
       "row": {"k": ["uuid", "#0#"]}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:571"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]}]}
002: i=0 k=0 ka=[] l2= uuid=<0>
003: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]}]}
004: i=0 k=0 ka=[] l2= uuid=<0>
004: i=1 k=2 ka=[] l2= uuid=<1>
004: i=2 k=1 ka=[] l2= uuid=<2>
005: {\"error\":null,\"result\":[{\"count\":1}]}
006: i=0 k=0 ka=[] l2= uuid=<0>
006: i=1 k=1 ka=[] l2= uuid=<1>
006: i=2 k=1 ka=[] l2= uuid=<2>
007: {\"error\":null,\"result\":[{\"count\":3}]}
008: i=0 k=0 ka=[] l2= uuid=<0>
008: i=1 k=0 ka=[] l2= uuid=<1>
008: i=2 k=0 ka=[] l2= uuid=<2>
009: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:571"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:571"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:571: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:571: wait failed" >&5

    $as_echo "ovsdb-idl.at:571" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:571"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2122
#AT_START_2123
at_fn_group_banner 2123 'ovsdb-idl.at:571' \
  "self-linking idl, consistent ops - Python2 - register_columns" "" 99
at_xfail=no
(
  $as_echo "2123. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:571" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:571"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:571"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"named-uuid\", \"self\"]},
       \"uuid-name\": \"self\"}]' \\
    '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"row2\"]},
       \"uuid-name\": \"row1\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 2, \"k\": [\"named-uuid\", \"row1\"]},
       \"uuid-name\": \"row2\"}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [[\"i\", \"==\", 1]],
       \"row\": {\"k\": [\"uuid\", \"#1#\"]}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [],
       \"row\": {\"k\": [\"uuid\", \"#0#\"]}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:571"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["named-uuid", "self"]},
       "uuid-name": "self"}]' \
    '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 1, "k": ["named-uuid", "row2"]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 2, "k": ["named-uuid", "row1"]},
       "uuid-name": "row2"}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [["i", "==", 1]],
       "row": {"k": ["uuid", "#1#"]}}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [],
       "row": {"k": ["uuid", "#0#"]}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:571"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]}]}
002: i=0 k=0 ka=[] l2= uuid=<0>
003: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]}]}
004: i=0 k=0 ka=[] l2= uuid=<0>
004: i=1 k=2 ka=[] l2= uuid=<1>
004: i=2 k=1 ka=[] l2= uuid=<2>
005: {\"error\":null,\"result\":[{\"count\":1}]}
006: i=0 k=0 ka=[] l2= uuid=<0>
006: i=1 k=1 ka=[] l2= uuid=<1>
006: i=2 k=1 ka=[] l2= uuid=<2>
007: {\"error\":null,\"result\":[{\"count\":3}]}
008: i=0 k=0 ka=[] l2= uuid=<0>
008: i=1 k=0 ka=[] l2= uuid=<1>
008: i=2 k=0 ka=[] l2= uuid=<2>
009: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:571"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:571"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:571: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:571: wait failed" >&5

    $as_echo "ovsdb-idl.at:571" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:571"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2123
#AT_START_2124
at_fn_group_banner 2124 'ovsdb-idl.at:571' \
  "self-linking idl, consistent ops - Python3 - register_columns" "" 99
at_xfail=no
(
  $as_echo "2124. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:571" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:571"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:571"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"named-uuid\", \"self\"]},
       \"uuid-name\": \"self\"}]' \\
    '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"row2\"]},
       \"uuid-name\": \"row1\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 2, \"k\": [\"named-uuid\", \"row1\"]},
       \"uuid-name\": \"row2\"}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [[\"i\", \"==\", 1]],
       \"row\": {\"k\": [\"uuid\", \"#1#\"]}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [],
       \"row\": {\"k\": [\"uuid\", \"#0#\"]}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:571"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["named-uuid", "self"]},
       "uuid-name": "self"}]' \
    '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 1, "k": ["named-uuid", "row2"]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 2, "k": ["named-uuid", "row1"]},
       "uuid-name": "row2"}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [["i", "==", 1]],
       "row": {"k": ["uuid", "#1#"]}}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [],
       "row": {"k": ["uuid", "#0#"]}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:571"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]}]}
002: i=0 k=0 ka=[] l2= uuid=<0>
003: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]}]}
004: i=0 k=0 ka=[] l2= uuid=<0>
004: i=1 k=2 ka=[] l2= uuid=<1>
004: i=2 k=1 ka=[] l2= uuid=<2>
005: {\"error\":null,\"result\":[{\"count\":1}]}
006: i=0 k=0 ka=[] l2= uuid=<0>
006: i=1 k=1 ka=[] l2= uuid=<1>
006: i=2 k=1 ka=[] l2= uuid=<2>
007: {\"error\":null,\"result\":[{\"count\":3}]}
008: i=0 k=0 ka=[] l2= uuid=<0>
008: i=1 k=0 ka=[] l2= uuid=<1>
008: i=2 k=0 ka=[] l2= uuid=<2>
009: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:571"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:571"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:571: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:571: wait failed" >&5

    $as_echo "ovsdb-idl.at:571" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:571"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2124
#AT_START_2125
at_fn_group_banner 2125 'ovsdb-idl.at:571' \
  "self-linking idl, consistent ops - Python2 - tcp" "" 99
at_xfail=no
(
  $as_echo "2125. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:571" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:571"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:571"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:571: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:571: wait failed" >&5

    $as_echo "ovsdb-idl.at:571" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:571"
fi



   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"named-uuid\", \"self\"]},
       \"uuid-name\": \"self\"}]' \\
    '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"row2\"]},
       \"uuid-name\": \"row1\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 2, \"k\": [\"named-uuid\", \"row1\"]},
       \"uuid-name\": \"row2\"}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [[\"i\", \"==\", 1]],
       \"row\": {\"k\": [\"uuid\", \"#1#\"]}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [],
       \"row\": {\"k\": [\"uuid\", \"#0#\"]}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:571"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["named-uuid", "self"]},
       "uuid-name": "self"}]' \
    '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 1, "k": ["named-uuid", "row2"]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 2, "k": ["named-uuid", "row1"]},
       "uuid-name": "row2"}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [["i", "==", 1]],
       "row": {"k": ["uuid", "#1#"]}}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [],
       "row": {"k": ["uuid", "#0#"]}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:571"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]}]}
002: i=0 k=0 ka=[] l2= uuid=<0>
003: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]}]}
004: i=0 k=0 ka=[] l2= uuid=<0>
004: i=1 k=2 ka=[] l2= uuid=<1>
004: i=2 k=1 ka=[] l2= uuid=<2>
005: {\"error\":null,\"result\":[{\"count\":1}]}
006: i=0 k=0 ka=[] l2= uuid=<0>
006: i=1 k=1 ka=[] l2= uuid=<1>
006: i=2 k=1 ka=[] l2= uuid=<2>
007: {\"error\":null,\"result\":[{\"count\":3}]}
008: i=0 k=0 ka=[] l2= uuid=<0>
008: i=1 k=0 ka=[] l2= uuid=<1>
008: i=2 k=0 ka=[] l2= uuid=<2>
009: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:571"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:571"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:571: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:571: wait failed" >&5

    $as_echo "ovsdb-idl.at:571" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:571"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2125
#AT_START_2126
at_fn_group_banner 2126 'ovsdb-idl.at:571' \
  "self-linking idl, consistent ops - Python3 - tcp" "" 99
at_xfail=no
(
  $as_echo "2126. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:571" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:571"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:571"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:571: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:571: wait failed" >&5

    $as_echo "ovsdb-idl.at:571" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:571"
fi



   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"named-uuid\", \"self\"]},
       \"uuid-name\": \"self\"}]' \\
    '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"row2\"]},
       \"uuid-name\": \"row1\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 2, \"k\": [\"named-uuid\", \"row1\"]},
       \"uuid-name\": \"row2\"}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [[\"i\", \"==\", 1]],
       \"row\": {\"k\": [\"uuid\", \"#1#\"]}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [],
       \"row\": {\"k\": [\"uuid\", \"#0#\"]}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:571"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["named-uuid", "self"]},
       "uuid-name": "self"}]' \
    '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 1, "k": ["named-uuid", "row2"]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 2, "k": ["named-uuid", "row1"]},
       "uuid-name": "row2"}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [["i", "==", 1]],
       "row": {"k": ["uuid", "#1#"]}}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [],
       "row": {"k": ["uuid", "#0#"]}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:571"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]}]}
002: i=0 k=0 ka=[] l2= uuid=<0>
003: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]}]}
004: i=0 k=0 ka=[] l2= uuid=<0>
004: i=1 k=2 ka=[] l2= uuid=<1>
004: i=2 k=1 ka=[] l2= uuid=<2>
005: {\"error\":null,\"result\":[{\"count\":1}]}
006: i=0 k=0 ka=[] l2= uuid=<0>
006: i=1 k=1 ka=[] l2= uuid=<1>
006: i=2 k=1 ka=[] l2= uuid=<2>
007: {\"error\":null,\"result\":[{\"count\":3}]}
008: i=0 k=0 ka=[] l2= uuid=<0>
008: i=1 k=0 ka=[] l2= uuid=<1>
008: i=2 k=0 ka=[] l2= uuid=<2>
009: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:571"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:571"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:571: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:571: wait failed" >&5

    $as_echo "ovsdb-idl.at:571" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:571"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2126
#AT_START_2127
at_fn_group_banner 2127 'ovsdb-idl.at:571' \
  "self-linking idl, consistent ops - Python2 - tcp6" "" 99
at_xfail=no
(
  $as_echo "2127. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:571" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:571"
   $as_echo "ovsdb-idl.at:571" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:571"
   $as_echo "ovsdb-idl.at:571" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:571"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:571"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:571: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:571: wait failed" >&5

    $as_echo "ovsdb-idl.at:571" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:571"
fi

   echo "TCP_PORT=$TCP_PORT"


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"named-uuid\", \"self\"]},
       \"uuid-name\": \"self\"}]' \\
    '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"row2\"]},
       \"uuid-name\": \"row1\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 2, \"k\": [\"named-uuid\", \"row1\"]},
       \"uuid-name\": \"row2\"}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [[\"i\", \"==\", 1]],
       \"row\": {\"k\": [\"uuid\", \"#1#\"]}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [],
       \"row\": {\"k\": [\"uuid\", \"#0#\"]}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:571"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["named-uuid", "self"]},
       "uuid-name": "self"}]' \
    '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 1, "k": ["named-uuid", "row2"]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 2, "k": ["named-uuid", "row1"]},
       "uuid-name": "row2"}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [["i", "==", 1]],
       "row": {"k": ["uuid", "#1#"]}}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [],
       "row": {"k": ["uuid", "#0#"]}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:571"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]}]}
002: i=0 k=0 ka=[] l2= uuid=<0>
003: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]}]}
004: i=0 k=0 ka=[] l2= uuid=<0>
004: i=1 k=2 ka=[] l2= uuid=<1>
004: i=2 k=1 ka=[] l2= uuid=<2>
005: {\"error\":null,\"result\":[{\"count\":1}]}
006: i=0 k=0 ka=[] l2= uuid=<0>
006: i=1 k=1 ka=[] l2= uuid=<1>
006: i=2 k=1 ka=[] l2= uuid=<2>
007: {\"error\":null,\"result\":[{\"count\":3}]}
008: i=0 k=0 ka=[] l2= uuid=<0>
008: i=1 k=0 ka=[] l2= uuid=<1>
008: i=2 k=0 ka=[] l2= uuid=<2>
009: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:571"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:571"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:571: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:571: wait failed" >&5

    $as_echo "ovsdb-idl.at:571" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:571"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2127
#AT_START_2128
at_fn_group_banner 2128 'ovsdb-idl.at:571' \
  "self-linking idl, consistent ops - Python3 - tcp6" "" 99
at_xfail=no
(
  $as_echo "2128. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:571" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:571"
   $as_echo "ovsdb-idl.at:571" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:571"
   $as_echo "ovsdb-idl.at:571" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:571"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:571"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:571: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:571: wait failed" >&5

    $as_echo "ovsdb-idl.at:571" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:571"
fi

   echo "TCP_PORT=$TCP_PORT"


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"named-uuid\", \"self\"]},
       \"uuid-name\": \"self\"}]' \\
    '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"row2\"]},
       \"uuid-name\": \"row1\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 2, \"k\": [\"named-uuid\", \"row1\"]},
       \"uuid-name\": \"row2\"}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [[\"i\", \"==\", 1]],
       \"row\": {\"k\": [\"uuid\", \"#1#\"]}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [],
       \"row\": {\"k\": [\"uuid\", \"#0#\"]}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:571"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["named-uuid", "self"]},
       "uuid-name": "self"}]' \
    '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 1, "k": ["named-uuid", "row2"]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 2, "k": ["named-uuid", "row1"]},
       "uuid-name": "row2"}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [["i", "==", 1]],
       "row": {"k": ["uuid", "#1#"]}}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [],
       "row": {"k": ["uuid", "#0#"]}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:571"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]}]}
002: i=0 k=0 ka=[] l2= uuid=<0>
003: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]}]}
004: i=0 k=0 ka=[] l2= uuid=<0>
004: i=1 k=2 ka=[] l2= uuid=<1>
004: i=2 k=1 ka=[] l2= uuid=<2>
005: {\"error\":null,\"result\":[{\"count\":1}]}
006: i=0 k=0 ka=[] l2= uuid=<0>
006: i=1 k=1 ka=[] l2= uuid=<1>
006: i=2 k=1 ka=[] l2= uuid=<2>
007: {\"error\":null,\"result\":[{\"count\":3}]}
008: i=0 k=0 ka=[] l2= uuid=<0>
008: i=1 k=0 ka=[] l2= uuid=<1>
008: i=2 k=0 ka=[] l2= uuid=<2>
009: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:571"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:571: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:571"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:571: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:571: wait failed" >&5

    $as_echo "ovsdb-idl.at:571" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:571"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2128
#AT_START_2129
at_fn_group_banner 2129 'ovsdb-idl.at:615' \
  "self-linking idl, inconsistent ops - C" "         " 99
at_xfail=no
(
  $as_echo "2129. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:615"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"uuid\", \"cf197cc5-c8c9-42f5-82d5-c71a9f2cb96b\"]}}]' \\
    '+[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"uuid-name\": \"one\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"one\"]}},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 2, \"k\": [\"named-uuid\", \"one\"]}}]' \\
     '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [],
       \"row\": {\"k\": [\"uuid\", \"c2fca39a-e69a-42a4-9c56-5eca85839ce9\"]}}]' \\
     '+[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"link1\",
       \"where\": [[\"_uuid\", \"==\", [\"uuid\", \"#1#\"]]]}]' \\
     '+[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"link1\",
       \"where\": [[\"_uuid\", \"==\", [\"uuid\", \"#2#\"]]]}]' \\
     '[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"link1\",
       \"where\": []}]' \\
"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:615"
( $at_check_trace; test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["uuid", "cf197cc5-c8c9-42f5-82d5-c71a9f2cb96b"]}}]' \
    '+["idltest",
      {"op": "insert",
       "table": "link1",
       "uuid-name": "one",
       "row": {"i": 1, "k": ["named-uuid", "one"]}},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 2, "k": ["named-uuid", "one"]}}]' \
     '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [],
       "row": {"k": ["uuid", "c2fca39a-e69a-42a4-9c56-5eca85839ce9"]}}]' \
     '+["idltest",
      {"op": "delete",
       "table": "link1",
       "where": [["_uuid", "==", ["uuid", "#1#"]]]}]' \
     '+["idltest",
      {"op": "delete",
       "table": "link1",
       "where": [["_uuid", "==", ["uuid", "#2#"]]]}]' \
     '["idltest",
      {"op": "delete",
       "table": "link1",
       "where": []}]' \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: sort stdout | uuidfilt| sed -e '/004:/s/row <[23]> references/row <x> references/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:615"
( $at_check_trace; sort stdout | uuidfilt| sed -e '/004:/s/row <[23]> references/row <x> references/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"details\":\"Table link1 column k row <0> references nonexistent row <1> in table link1.\",\"error\":\"referential integrity violation\"}]}
002: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<2>\"]},{\"uuid\":[\"uuid\",\"<3>\"]}]}
003: i=1 k=1 ka=[] l2= uuid=<2>
003: i=2 k=1 ka=[] l2= uuid=<3>
004: {\"error\":null,\"result\":[{\"count\":2},{\"details\":\"Table link1 column k row <x> references nonexistent row <4> in table link1.\",\"error\":\"referential integrity violation\"}]}
005: {\"error\":null,\"result\":[{\"count\":1},{\"details\":\"cannot delete link1 row <2> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]}
006: {\"error\":null,\"result\":[{\"count\":1}]}
007: i=1 k=1 ka=[] l2= uuid=<2>
008: {\"error\":null,\"result\":[{\"count\":1}]}
009: empty
010: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:615"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:615"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:615: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:615: wait failed" >&5

    $as_echo "ovsdb-idl.at:615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:615"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2129
#AT_START_2130
at_fn_group_banner 2130 'ovsdb-idl.at:615' \
  "self-linking idl, inconsistent ops - Python2" "   " 99
at_xfail=no
(
  $as_echo "2130. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:615" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:615"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:615"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"uuid\", \"cf197cc5-c8c9-42f5-82d5-c71a9f2cb96b\"]}}]' \\
    '+[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"uuid-name\": \"one\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"one\"]}},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 2, \"k\": [\"named-uuid\", \"one\"]}}]' \\
     '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [],
       \"row\": {\"k\": [\"uuid\", \"c2fca39a-e69a-42a4-9c56-5eca85839ce9\"]}}]' \\
     '+[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"link1\",
       \"where\": [[\"_uuid\", \"==\", [\"uuid\", \"#1#\"]]]}]' \\
     '+[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"link1\",
       \"where\": [[\"_uuid\", \"==\", [\"uuid\", \"#2#\"]]]}]' \\
     '[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"link1\",
       \"where\": []}]' \\
"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:615"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["uuid", "cf197cc5-c8c9-42f5-82d5-c71a9f2cb96b"]}}]' \
    '+["idltest",
      {"op": "insert",
       "table": "link1",
       "uuid-name": "one",
       "row": {"i": 1, "k": ["named-uuid", "one"]}},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 2, "k": ["named-uuid", "one"]}}]' \
     '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [],
       "row": {"k": ["uuid", "c2fca39a-e69a-42a4-9c56-5eca85839ce9"]}}]' \
     '+["idltest",
      {"op": "delete",
       "table": "link1",
       "where": [["_uuid", "==", ["uuid", "#1#"]]]}]' \
     '+["idltest",
      {"op": "delete",
       "table": "link1",
       "where": [["_uuid", "==", ["uuid", "#2#"]]]}]' \
     '["idltest",
      {"op": "delete",
       "table": "link1",
       "where": []}]' \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: sort stdout | uuidfilt| sed -e '/004:/s/row <[23]> references/row <x> references/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:615"
( $at_check_trace; sort stdout | uuidfilt| sed -e '/004:/s/row <[23]> references/row <x> references/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"details\":\"Table link1 column k row <0> references nonexistent row <1> in table link1.\",\"error\":\"referential integrity violation\"}]}
002: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<2>\"]},{\"uuid\":[\"uuid\",\"<3>\"]}]}
003: i=1 k=1 ka=[] l2= uuid=<2>
003: i=2 k=1 ka=[] l2= uuid=<3>
004: {\"error\":null,\"result\":[{\"count\":2},{\"details\":\"Table link1 column k row <x> references nonexistent row <4> in table link1.\",\"error\":\"referential integrity violation\"}]}
005: {\"error\":null,\"result\":[{\"count\":1},{\"details\":\"cannot delete link1 row <2> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]}
006: {\"error\":null,\"result\":[{\"count\":1}]}
007: i=1 k=1 ka=[] l2= uuid=<2>
008: {\"error\":null,\"result\":[{\"count\":1}]}
009: empty
010: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:615"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:615"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:615: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:615: wait failed" >&5

    $as_echo "ovsdb-idl.at:615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:615"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2130
#AT_START_2131
at_fn_group_banner 2131 'ovsdb-idl.at:615' \
  "self-linking idl, inconsistent ops - Python3" "   " 99
at_xfail=no
(
  $as_echo "2131. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:615" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:615"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:615"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"uuid\", \"cf197cc5-c8c9-42f5-82d5-c71a9f2cb96b\"]}}]' \\
    '+[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"uuid-name\": \"one\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"one\"]}},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 2, \"k\": [\"named-uuid\", \"one\"]}}]' \\
     '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [],
       \"row\": {\"k\": [\"uuid\", \"c2fca39a-e69a-42a4-9c56-5eca85839ce9\"]}}]' \\
     '+[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"link1\",
       \"where\": [[\"_uuid\", \"==\", [\"uuid\", \"#1#\"]]]}]' \\
     '+[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"link1\",
       \"where\": [[\"_uuid\", \"==\", [\"uuid\", \"#2#\"]]]}]' \\
     '[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"link1\",
       \"where\": []}]' \\
"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:615"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["uuid", "cf197cc5-c8c9-42f5-82d5-c71a9f2cb96b"]}}]' \
    '+["idltest",
      {"op": "insert",
       "table": "link1",
       "uuid-name": "one",
       "row": {"i": 1, "k": ["named-uuid", "one"]}},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 2, "k": ["named-uuid", "one"]}}]' \
     '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [],
       "row": {"k": ["uuid", "c2fca39a-e69a-42a4-9c56-5eca85839ce9"]}}]' \
     '+["idltest",
      {"op": "delete",
       "table": "link1",
       "where": [["_uuid", "==", ["uuid", "#1#"]]]}]' \
     '+["idltest",
      {"op": "delete",
       "table": "link1",
       "where": [["_uuid", "==", ["uuid", "#2#"]]]}]' \
     '["idltest",
      {"op": "delete",
       "table": "link1",
       "where": []}]' \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: sort stdout | uuidfilt| sed -e '/004:/s/row <[23]> references/row <x> references/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:615"
( $at_check_trace; sort stdout | uuidfilt| sed -e '/004:/s/row <[23]> references/row <x> references/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"details\":\"Table link1 column k row <0> references nonexistent row <1> in table link1.\",\"error\":\"referential integrity violation\"}]}
002: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<2>\"]},{\"uuid\":[\"uuid\",\"<3>\"]}]}
003: i=1 k=1 ka=[] l2= uuid=<2>
003: i=2 k=1 ka=[] l2= uuid=<3>
004: {\"error\":null,\"result\":[{\"count\":2},{\"details\":\"Table link1 column k row <x> references nonexistent row <4> in table link1.\",\"error\":\"referential integrity violation\"}]}
005: {\"error\":null,\"result\":[{\"count\":1},{\"details\":\"cannot delete link1 row <2> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]}
006: {\"error\":null,\"result\":[{\"count\":1}]}
007: i=1 k=1 ka=[] l2= uuid=<2>
008: {\"error\":null,\"result\":[{\"count\":1}]}
009: empty
010: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:615"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:615"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:615: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:615: wait failed" >&5

    $as_echo "ovsdb-idl.at:615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:615"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2131
#AT_START_2132
at_fn_group_banner 2132 'ovsdb-idl.at:615' \
  "self-linking idl, inconsistent ops - Python2 - register_columns" "" 99
at_xfail=no
(
  $as_echo "2132. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:615" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:615"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:615"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"uuid\", \"cf197cc5-c8c9-42f5-82d5-c71a9f2cb96b\"]}}]' \\
    '+[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"uuid-name\": \"one\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"one\"]}},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 2, \"k\": [\"named-uuid\", \"one\"]}}]' \\
     '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [],
       \"row\": {\"k\": [\"uuid\", \"c2fca39a-e69a-42a4-9c56-5eca85839ce9\"]}}]' \\
     '+[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"link1\",
       \"where\": [[\"_uuid\", \"==\", [\"uuid\", \"#1#\"]]]}]' \\
     '+[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"link1\",
       \"where\": [[\"_uuid\", \"==\", [\"uuid\", \"#2#\"]]]}]' \\
     '[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"link1\",
       \"where\": []}]' \\
"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:615"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["uuid", "cf197cc5-c8c9-42f5-82d5-c71a9f2cb96b"]}}]' \
    '+["idltest",
      {"op": "insert",
       "table": "link1",
       "uuid-name": "one",
       "row": {"i": 1, "k": ["named-uuid", "one"]}},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 2, "k": ["named-uuid", "one"]}}]' \
     '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [],
       "row": {"k": ["uuid", "c2fca39a-e69a-42a4-9c56-5eca85839ce9"]}}]' \
     '+["idltest",
      {"op": "delete",
       "table": "link1",
       "where": [["_uuid", "==", ["uuid", "#1#"]]]}]' \
     '+["idltest",
      {"op": "delete",
       "table": "link1",
       "where": [["_uuid", "==", ["uuid", "#2#"]]]}]' \
     '["idltest",
      {"op": "delete",
       "table": "link1",
       "where": []}]' \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: sort stdout | uuidfilt| sed -e '/004:/s/row <[23]> references/row <x> references/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:615"
( $at_check_trace; sort stdout | uuidfilt| sed -e '/004:/s/row <[23]> references/row <x> references/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"details\":\"Table link1 column k row <0> references nonexistent row <1> in table link1.\",\"error\":\"referential integrity violation\"}]}
002: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<2>\"]},{\"uuid\":[\"uuid\",\"<3>\"]}]}
003: i=1 k=1 ka=[] l2= uuid=<2>
003: i=2 k=1 ka=[] l2= uuid=<3>
004: {\"error\":null,\"result\":[{\"count\":2},{\"details\":\"Table link1 column k row <x> references nonexistent row <4> in table link1.\",\"error\":\"referential integrity violation\"}]}
005: {\"error\":null,\"result\":[{\"count\":1},{\"details\":\"cannot delete link1 row <2> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]}
006: {\"error\":null,\"result\":[{\"count\":1}]}
007: i=1 k=1 ka=[] l2= uuid=<2>
008: {\"error\":null,\"result\":[{\"count\":1}]}
009: empty
010: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:615"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:615"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:615: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:615: wait failed" >&5

    $as_echo "ovsdb-idl.at:615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:615"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2132
#AT_START_2133
at_fn_group_banner 2133 'ovsdb-idl.at:615' \
  "self-linking idl, inconsistent ops - Python3 - register_columns" "" 99
at_xfail=no
(
  $as_echo "2133. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:615" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:615"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:615"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"uuid\", \"cf197cc5-c8c9-42f5-82d5-c71a9f2cb96b\"]}}]' \\
    '+[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"uuid-name\": \"one\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"one\"]}},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 2, \"k\": [\"named-uuid\", \"one\"]}}]' \\
     '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [],
       \"row\": {\"k\": [\"uuid\", \"c2fca39a-e69a-42a4-9c56-5eca85839ce9\"]}}]' \\
     '+[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"link1\",
       \"where\": [[\"_uuid\", \"==\", [\"uuid\", \"#1#\"]]]}]' \\
     '+[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"link1\",
       \"where\": [[\"_uuid\", \"==\", [\"uuid\", \"#2#\"]]]}]' \\
     '[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"link1\",
       \"where\": []}]' \\
"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:615"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["uuid", "cf197cc5-c8c9-42f5-82d5-c71a9f2cb96b"]}}]' \
    '+["idltest",
      {"op": "insert",
       "table": "link1",
       "uuid-name": "one",
       "row": {"i": 1, "k": ["named-uuid", "one"]}},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 2, "k": ["named-uuid", "one"]}}]' \
     '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [],
       "row": {"k": ["uuid", "c2fca39a-e69a-42a4-9c56-5eca85839ce9"]}}]' \
     '+["idltest",
      {"op": "delete",
       "table": "link1",
       "where": [["_uuid", "==", ["uuid", "#1#"]]]}]' \
     '+["idltest",
      {"op": "delete",
       "table": "link1",
       "where": [["_uuid", "==", ["uuid", "#2#"]]]}]' \
     '["idltest",
      {"op": "delete",
       "table": "link1",
       "where": []}]' \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: sort stdout | uuidfilt| sed -e '/004:/s/row <[23]> references/row <x> references/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:615"
( $at_check_trace; sort stdout | uuidfilt| sed -e '/004:/s/row <[23]> references/row <x> references/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"details\":\"Table link1 column k row <0> references nonexistent row <1> in table link1.\",\"error\":\"referential integrity violation\"}]}
002: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<2>\"]},{\"uuid\":[\"uuid\",\"<3>\"]}]}
003: i=1 k=1 ka=[] l2= uuid=<2>
003: i=2 k=1 ka=[] l2= uuid=<3>
004: {\"error\":null,\"result\":[{\"count\":2},{\"details\":\"Table link1 column k row <x> references nonexistent row <4> in table link1.\",\"error\":\"referential integrity violation\"}]}
005: {\"error\":null,\"result\":[{\"count\":1},{\"details\":\"cannot delete link1 row <2> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]}
006: {\"error\":null,\"result\":[{\"count\":1}]}
007: i=1 k=1 ka=[] l2= uuid=<2>
008: {\"error\":null,\"result\":[{\"count\":1}]}
009: empty
010: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:615"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:615"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:615: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:615: wait failed" >&5

    $as_echo "ovsdb-idl.at:615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:615"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2133
#AT_START_2134
at_fn_group_banner 2134 'ovsdb-idl.at:615' \
  "self-linking idl, inconsistent ops - Python2 - tcp" "" 99
at_xfail=no
(
  $as_echo "2134. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:615" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:615"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:615"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:615: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:615: wait failed" >&5

    $as_echo "ovsdb-idl.at:615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:615"
fi



   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"uuid\", \"cf197cc5-c8c9-42f5-82d5-c71a9f2cb96b\"]}}]' \\
    '+[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"uuid-name\": \"one\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"one\"]}},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 2, \"k\": [\"named-uuid\", \"one\"]}}]' \\
     '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [],
       \"row\": {\"k\": [\"uuid\", \"c2fca39a-e69a-42a4-9c56-5eca85839ce9\"]}}]' \\
     '+[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"link1\",
       \"where\": [[\"_uuid\", \"==\", [\"uuid\", \"#1#\"]]]}]' \\
     '+[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"link1\",
       \"where\": [[\"_uuid\", \"==\", [\"uuid\", \"#2#\"]]]}]' \\
     '[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"link1\",
       \"where\": []}]' \\
"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:615"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["uuid", "cf197cc5-c8c9-42f5-82d5-c71a9f2cb96b"]}}]' \
    '+["idltest",
      {"op": "insert",
       "table": "link1",
       "uuid-name": "one",
       "row": {"i": 1, "k": ["named-uuid", "one"]}},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 2, "k": ["named-uuid", "one"]}}]' \
     '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [],
       "row": {"k": ["uuid", "c2fca39a-e69a-42a4-9c56-5eca85839ce9"]}}]' \
     '+["idltest",
      {"op": "delete",
       "table": "link1",
       "where": [["_uuid", "==", ["uuid", "#1#"]]]}]' \
     '+["idltest",
      {"op": "delete",
       "table": "link1",
       "where": [["_uuid", "==", ["uuid", "#2#"]]]}]' \
     '["idltest",
      {"op": "delete",
       "table": "link1",
       "where": []}]' \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: sort stdout | uuidfilt| sed -e '/004:/s/row <[23]> references/row <x> references/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:615"
( $at_check_trace; sort stdout | uuidfilt| sed -e '/004:/s/row <[23]> references/row <x> references/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"details\":\"Table link1 column k row <0> references nonexistent row <1> in table link1.\",\"error\":\"referential integrity violation\"}]}
002: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<2>\"]},{\"uuid\":[\"uuid\",\"<3>\"]}]}
003: i=1 k=1 ka=[] l2= uuid=<2>
003: i=2 k=1 ka=[] l2= uuid=<3>
004: {\"error\":null,\"result\":[{\"count\":2},{\"details\":\"Table link1 column k row <x> references nonexistent row <4> in table link1.\",\"error\":\"referential integrity violation\"}]}
005: {\"error\":null,\"result\":[{\"count\":1},{\"details\":\"cannot delete link1 row <2> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]}
006: {\"error\":null,\"result\":[{\"count\":1}]}
007: i=1 k=1 ka=[] l2= uuid=<2>
008: {\"error\":null,\"result\":[{\"count\":1}]}
009: empty
010: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:615"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:615"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:615: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:615: wait failed" >&5

    $as_echo "ovsdb-idl.at:615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:615"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2134
#AT_START_2135
at_fn_group_banner 2135 'ovsdb-idl.at:615' \
  "self-linking idl, inconsistent ops - Python3 - tcp" "" 99
at_xfail=no
(
  $as_echo "2135. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:615" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:615"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:615"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:615: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:615: wait failed" >&5

    $as_echo "ovsdb-idl.at:615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:615"
fi



   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"uuid\", \"cf197cc5-c8c9-42f5-82d5-c71a9f2cb96b\"]}}]' \\
    '+[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"uuid-name\": \"one\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"one\"]}},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 2, \"k\": [\"named-uuid\", \"one\"]}}]' \\
     '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [],
       \"row\": {\"k\": [\"uuid\", \"c2fca39a-e69a-42a4-9c56-5eca85839ce9\"]}}]' \\
     '+[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"link1\",
       \"where\": [[\"_uuid\", \"==\", [\"uuid\", \"#1#\"]]]}]' \\
     '+[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"link1\",
       \"where\": [[\"_uuid\", \"==\", [\"uuid\", \"#2#\"]]]}]' \\
     '[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"link1\",
       \"where\": []}]' \\
"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:615"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["uuid", "cf197cc5-c8c9-42f5-82d5-c71a9f2cb96b"]}}]' \
    '+["idltest",
      {"op": "insert",
       "table": "link1",
       "uuid-name": "one",
       "row": {"i": 1, "k": ["named-uuid", "one"]}},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 2, "k": ["named-uuid", "one"]}}]' \
     '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [],
       "row": {"k": ["uuid", "c2fca39a-e69a-42a4-9c56-5eca85839ce9"]}}]' \
     '+["idltest",
      {"op": "delete",
       "table": "link1",
       "where": [["_uuid", "==", ["uuid", "#1#"]]]}]' \
     '+["idltest",
      {"op": "delete",
       "table": "link1",
       "where": [["_uuid", "==", ["uuid", "#2#"]]]}]' \
     '["idltest",
      {"op": "delete",
       "table": "link1",
       "where": []}]' \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: sort stdout | uuidfilt| sed -e '/004:/s/row <[23]> references/row <x> references/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:615"
( $at_check_trace; sort stdout | uuidfilt| sed -e '/004:/s/row <[23]> references/row <x> references/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"details\":\"Table link1 column k row <0> references nonexistent row <1> in table link1.\",\"error\":\"referential integrity violation\"}]}
002: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<2>\"]},{\"uuid\":[\"uuid\",\"<3>\"]}]}
003: i=1 k=1 ka=[] l2= uuid=<2>
003: i=2 k=1 ka=[] l2= uuid=<3>
004: {\"error\":null,\"result\":[{\"count\":2},{\"details\":\"Table link1 column k row <x> references nonexistent row <4> in table link1.\",\"error\":\"referential integrity violation\"}]}
005: {\"error\":null,\"result\":[{\"count\":1},{\"details\":\"cannot delete link1 row <2> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]}
006: {\"error\":null,\"result\":[{\"count\":1}]}
007: i=1 k=1 ka=[] l2= uuid=<2>
008: {\"error\":null,\"result\":[{\"count\":1}]}
009: empty
010: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:615"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:615"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:615: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:615: wait failed" >&5

    $as_echo "ovsdb-idl.at:615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:615"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2135
#AT_START_2136
at_fn_group_banner 2136 'ovsdb-idl.at:615' \
  "self-linking idl, inconsistent ops - Python2 - tcp6" "" 99
at_xfail=no
(
  $as_echo "2136. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:615" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:615"
   $as_echo "ovsdb-idl.at:615" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:615"
   $as_echo "ovsdb-idl.at:615" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:615"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:615"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:615: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:615: wait failed" >&5

    $as_echo "ovsdb-idl.at:615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:615"
fi

   echo "TCP_PORT=$TCP_PORT"


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"uuid\", \"cf197cc5-c8c9-42f5-82d5-c71a9f2cb96b\"]}}]' \\
    '+[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"uuid-name\": \"one\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"one\"]}},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 2, \"k\": [\"named-uuid\", \"one\"]}}]' \\
     '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [],
       \"row\": {\"k\": [\"uuid\", \"c2fca39a-e69a-42a4-9c56-5eca85839ce9\"]}}]' \\
     '+[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"link1\",
       \"where\": [[\"_uuid\", \"==\", [\"uuid\", \"#1#\"]]]}]' \\
     '+[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"link1\",
       \"where\": [[\"_uuid\", \"==\", [\"uuid\", \"#2#\"]]]}]' \\
     '[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"link1\",
       \"where\": []}]' \\
"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:615"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["uuid", "cf197cc5-c8c9-42f5-82d5-c71a9f2cb96b"]}}]' \
    '+["idltest",
      {"op": "insert",
       "table": "link1",
       "uuid-name": "one",
       "row": {"i": 1, "k": ["named-uuid", "one"]}},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 2, "k": ["named-uuid", "one"]}}]' \
     '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [],
       "row": {"k": ["uuid", "c2fca39a-e69a-42a4-9c56-5eca85839ce9"]}}]' \
     '+["idltest",
      {"op": "delete",
       "table": "link1",
       "where": [["_uuid", "==", ["uuid", "#1#"]]]}]' \
     '+["idltest",
      {"op": "delete",
       "table": "link1",
       "where": [["_uuid", "==", ["uuid", "#2#"]]]}]' \
     '["idltest",
      {"op": "delete",
       "table": "link1",
       "where": []}]' \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: sort stdout | uuidfilt| sed -e '/004:/s/row <[23]> references/row <x> references/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:615"
( $at_check_trace; sort stdout | uuidfilt| sed -e '/004:/s/row <[23]> references/row <x> references/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"details\":\"Table link1 column k row <0> references nonexistent row <1> in table link1.\",\"error\":\"referential integrity violation\"}]}
002: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<2>\"]},{\"uuid\":[\"uuid\",\"<3>\"]}]}
003: i=1 k=1 ka=[] l2= uuid=<2>
003: i=2 k=1 ka=[] l2= uuid=<3>
004: {\"error\":null,\"result\":[{\"count\":2},{\"details\":\"Table link1 column k row <x> references nonexistent row <4> in table link1.\",\"error\":\"referential integrity violation\"}]}
005: {\"error\":null,\"result\":[{\"count\":1},{\"details\":\"cannot delete link1 row <2> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]}
006: {\"error\":null,\"result\":[{\"count\":1}]}
007: i=1 k=1 ka=[] l2= uuid=<2>
008: {\"error\":null,\"result\":[{\"count\":1}]}
009: empty
010: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:615"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:615"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:615: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:615: wait failed" >&5

    $as_echo "ovsdb-idl.at:615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:615"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2136
#AT_START_2137
at_fn_group_banner 2137 'ovsdb-idl.at:615' \
  "self-linking idl, inconsistent ops - Python3 - tcp6" "" 99
at_xfail=no
(
  $as_echo "2137. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:615" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:615"
   $as_echo "ovsdb-idl.at:615" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:615"
   $as_echo "ovsdb-idl.at:615" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:615"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:615"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:615: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:615: wait failed" >&5

    $as_echo "ovsdb-idl.at:615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:615"
fi

   echo "TCP_PORT=$TCP_PORT"


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"uuid\", \"cf197cc5-c8c9-42f5-82d5-c71a9f2cb96b\"]}}]' \\
    '+[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"uuid-name\": \"one\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"one\"]}},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 2, \"k\": [\"named-uuid\", \"one\"]}}]' \\
     '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [],
       \"row\": {\"k\": [\"uuid\", \"c2fca39a-e69a-42a4-9c56-5eca85839ce9\"]}}]' \\
     '+[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"link1\",
       \"where\": [[\"_uuid\", \"==\", [\"uuid\", \"#1#\"]]]}]' \\
     '+[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"link1\",
       \"where\": [[\"_uuid\", \"==\", [\"uuid\", \"#2#\"]]]}]' \\
     '[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"link1\",
       \"where\": []}]' \\
"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:615"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["uuid", "cf197cc5-c8c9-42f5-82d5-c71a9f2cb96b"]}}]' \
    '+["idltest",
      {"op": "insert",
       "table": "link1",
       "uuid-name": "one",
       "row": {"i": 1, "k": ["named-uuid", "one"]}},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 2, "k": ["named-uuid", "one"]}}]' \
     '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [],
       "row": {"k": ["uuid", "c2fca39a-e69a-42a4-9c56-5eca85839ce9"]}}]' \
     '+["idltest",
      {"op": "delete",
       "table": "link1",
       "where": [["_uuid", "==", ["uuid", "#1#"]]]}]' \
     '+["idltest",
      {"op": "delete",
       "table": "link1",
       "where": [["_uuid", "==", ["uuid", "#2#"]]]}]' \
     '["idltest",
      {"op": "delete",
       "table": "link1",
       "where": []}]' \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: sort stdout | uuidfilt| sed -e '/004:/s/row <[23]> references/row <x> references/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:615"
( $at_check_trace; sort stdout | uuidfilt| sed -e '/004:/s/row <[23]> references/row <x> references/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"details\":\"Table link1 column k row <0> references nonexistent row <1> in table link1.\",\"error\":\"referential integrity violation\"}]}
002: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<2>\"]},{\"uuid\":[\"uuid\",\"<3>\"]}]}
003: i=1 k=1 ka=[] l2= uuid=<2>
003: i=2 k=1 ka=[] l2= uuid=<3>
004: {\"error\":null,\"result\":[{\"count\":2},{\"details\":\"Table link1 column k row <x> references nonexistent row <4> in table link1.\",\"error\":\"referential integrity violation\"}]}
005: {\"error\":null,\"result\":[{\"count\":1},{\"details\":\"cannot delete link1 row <2> because of 1 remaining reference(s)\",\"error\":\"referential integrity violation\"}]}
006: {\"error\":null,\"result\":[{\"count\":1}]}
007: i=1 k=1 ka=[] l2= uuid=<2>
008: {\"error\":null,\"result\":[{\"count\":1}]}
009: empty
010: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:615"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:615: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:615"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:615: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:615: wait failed" >&5

    $as_echo "ovsdb-idl.at:615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:615"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2137
#AT_START_2138
at_fn_group_banner 2138 'ovsdb-idl.at:663' \
  "self-linking idl, sets - C" "                     " 99
at_xfail=no
(
  $as_echo "2138. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:663"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"named-uuid\", \"i0\"], \"ka\": [\"set\", [[\"named-uuid\", \"i0\"]]]},
       \"uuid-name\": \"i0\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"i0\"], \"ka\": [\"set\", [[\"named-uuid\", \"i1\"]]]},
       \"uuid-name\": \"i1\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 2, \"k\": [\"named-uuid\", \"i0\"], \"ka\": [\"set\", [[\"named-uuid\", \"i2\"]]]},
       \"uuid-name\": \"i2\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 3, \"k\": [\"named-uuid\", \"i0\"], \"ka\": [\"set\", [[\"named-uuid\", \"i3\"]]]},
       \"uuid-name\": \"i3\"}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [],
       \"row\": {\"ka\": [\"set\", [[\"uuid\", \"#0#\"], [\"uuid\", \"#1#\"], [\"uuid\", \"#2#\"], [\"uuid\", \"#3#\"]]]}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [[\"i\", \"==\", 2]],
       \"row\": {\"ka\": [\"set\", [[\"uuid\", \"#0#\"], [\"uuid\", \"88702e78-845b-4a6e-ad08-cf68922ae84a\"], [\"uuid\", \"#2#\"]]]}}]' \\
    '+[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"link1\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:663"
( $at_check_trace; test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["named-uuid", "i0"], "ka": ["set", [["named-uuid", "i0"]]]},
       "uuid-name": "i0"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 1, "k": ["named-uuid", "i0"], "ka": ["set", [["named-uuid", "i1"]]]},
       "uuid-name": "i1"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 2, "k": ["named-uuid", "i0"], "ka": ["set", [["named-uuid", "i2"]]]},
       "uuid-name": "i2"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 3, "k": ["named-uuid", "i0"], "ka": ["set", [["named-uuid", "i3"]]]},
       "uuid-name": "i3"}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [],
       "row": {"ka": ["set", [["uuid", "#0#"], ["uuid", "#1#"], ["uuid", "#2#"], ["uuid", "#3#"]]]}}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [["i", "==", 2]],
       "row": {"ka": ["set", [["uuid", "#0#"], ["uuid", "88702e78-845b-4a6e-ad08-cf68922ae84a"], ["uuid", "#2#"]]]}}]' \
    '+["idltest",
      {"op": "delete",
       "table": "link1",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:663"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]},{\"uuid\":[\"uuid\",\"<3>\"]}]}
002: i=0 k=0 ka=[0] l2= uuid=<0>
002: i=1 k=0 ka=[1] l2= uuid=<1>
002: i=2 k=0 ka=[2] l2= uuid=<2>
002: i=3 k=0 ka=[3] l2= uuid=<3>
003: {\"error\":null,\"result\":[{\"count\":4}]}
004: i=0 k=0 ka=[0 1 2 3] l2= uuid=<0>
004: i=1 k=0 ka=[0 1 2 3] l2= uuid=<1>
004: i=2 k=0 ka=[0 1 2 3] l2= uuid=<2>
004: i=3 k=0 ka=[0 1 2 3] l2= uuid=<3>
005: {\"error\":null,\"result\":[{\"count\":1},{\"details\":\"Table link1 column ka row <2> references nonexistent row <4> in table link1.\",\"error\":\"referential integrity violation\"}]}
006: {\"error\":null,\"result\":[{\"count\":4}]}
007: empty
008: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:663"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:663"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:663: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:663: wait failed" >&5

    $as_echo "ovsdb-idl.at:663" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:663"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2138
#AT_START_2139
at_fn_group_banner 2139 'ovsdb-idl.at:663' \
  "self-linking idl, sets - Python2" "               " 99
at_xfail=no
(
  $as_echo "2139. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:663" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:663"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:663"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"named-uuid\", \"i0\"], \"ka\": [\"set\", [[\"named-uuid\", \"i0\"]]]},
       \"uuid-name\": \"i0\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"i0\"], \"ka\": [\"set\", [[\"named-uuid\", \"i1\"]]]},
       \"uuid-name\": \"i1\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 2, \"k\": [\"named-uuid\", \"i0\"], \"ka\": [\"set\", [[\"named-uuid\", \"i2\"]]]},
       \"uuid-name\": \"i2\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 3, \"k\": [\"named-uuid\", \"i0\"], \"ka\": [\"set\", [[\"named-uuid\", \"i3\"]]]},
       \"uuid-name\": \"i3\"}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [],
       \"row\": {\"ka\": [\"set\", [[\"uuid\", \"#0#\"], [\"uuid\", \"#1#\"], [\"uuid\", \"#2#\"], [\"uuid\", \"#3#\"]]]}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [[\"i\", \"==\", 2]],
       \"row\": {\"ka\": [\"set\", [[\"uuid\", \"#0#\"], [\"uuid\", \"88702e78-845b-4a6e-ad08-cf68922ae84a\"], [\"uuid\", \"#2#\"]]]}}]' \\
    '+[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"link1\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:663"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["named-uuid", "i0"], "ka": ["set", [["named-uuid", "i0"]]]},
       "uuid-name": "i0"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 1, "k": ["named-uuid", "i0"], "ka": ["set", [["named-uuid", "i1"]]]},
       "uuid-name": "i1"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 2, "k": ["named-uuid", "i0"], "ka": ["set", [["named-uuid", "i2"]]]},
       "uuid-name": "i2"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 3, "k": ["named-uuid", "i0"], "ka": ["set", [["named-uuid", "i3"]]]},
       "uuid-name": "i3"}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [],
       "row": {"ka": ["set", [["uuid", "#0#"], ["uuid", "#1#"], ["uuid", "#2#"], ["uuid", "#3#"]]]}}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [["i", "==", 2]],
       "row": {"ka": ["set", [["uuid", "#0#"], ["uuid", "88702e78-845b-4a6e-ad08-cf68922ae84a"], ["uuid", "#2#"]]]}}]' \
    '+["idltest",
      {"op": "delete",
       "table": "link1",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:663"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]},{\"uuid\":[\"uuid\",\"<3>\"]}]}
002: i=0 k=0 ka=[0] l2= uuid=<0>
002: i=1 k=0 ka=[1] l2= uuid=<1>
002: i=2 k=0 ka=[2] l2= uuid=<2>
002: i=3 k=0 ka=[3] l2= uuid=<3>
003: {\"error\":null,\"result\":[{\"count\":4}]}
004: i=0 k=0 ka=[0 1 2 3] l2= uuid=<0>
004: i=1 k=0 ka=[0 1 2 3] l2= uuid=<1>
004: i=2 k=0 ka=[0 1 2 3] l2= uuid=<2>
004: i=3 k=0 ka=[0 1 2 3] l2= uuid=<3>
005: {\"error\":null,\"result\":[{\"count\":1},{\"details\":\"Table link1 column ka row <2> references nonexistent row <4> in table link1.\",\"error\":\"referential integrity violation\"}]}
006: {\"error\":null,\"result\":[{\"count\":4}]}
007: empty
008: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:663"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:663"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:663: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:663: wait failed" >&5

    $as_echo "ovsdb-idl.at:663" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:663"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2139
#AT_START_2140
at_fn_group_banner 2140 'ovsdb-idl.at:663' \
  "self-linking idl, sets - Python3" "               " 99
at_xfail=no
(
  $as_echo "2140. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:663" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:663"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:663"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"named-uuid\", \"i0\"], \"ka\": [\"set\", [[\"named-uuid\", \"i0\"]]]},
       \"uuid-name\": \"i0\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"i0\"], \"ka\": [\"set\", [[\"named-uuid\", \"i1\"]]]},
       \"uuid-name\": \"i1\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 2, \"k\": [\"named-uuid\", \"i0\"], \"ka\": [\"set\", [[\"named-uuid\", \"i2\"]]]},
       \"uuid-name\": \"i2\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 3, \"k\": [\"named-uuid\", \"i0\"], \"ka\": [\"set\", [[\"named-uuid\", \"i3\"]]]},
       \"uuid-name\": \"i3\"}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [],
       \"row\": {\"ka\": [\"set\", [[\"uuid\", \"#0#\"], [\"uuid\", \"#1#\"], [\"uuid\", \"#2#\"], [\"uuid\", \"#3#\"]]]}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [[\"i\", \"==\", 2]],
       \"row\": {\"ka\": [\"set\", [[\"uuid\", \"#0#\"], [\"uuid\", \"88702e78-845b-4a6e-ad08-cf68922ae84a\"], [\"uuid\", \"#2#\"]]]}}]' \\
    '+[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"link1\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:663"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["named-uuid", "i0"], "ka": ["set", [["named-uuid", "i0"]]]},
       "uuid-name": "i0"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 1, "k": ["named-uuid", "i0"], "ka": ["set", [["named-uuid", "i1"]]]},
       "uuid-name": "i1"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 2, "k": ["named-uuid", "i0"], "ka": ["set", [["named-uuid", "i2"]]]},
       "uuid-name": "i2"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 3, "k": ["named-uuid", "i0"], "ka": ["set", [["named-uuid", "i3"]]]},
       "uuid-name": "i3"}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [],
       "row": {"ka": ["set", [["uuid", "#0#"], ["uuid", "#1#"], ["uuid", "#2#"], ["uuid", "#3#"]]]}}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [["i", "==", 2]],
       "row": {"ka": ["set", [["uuid", "#0#"], ["uuid", "88702e78-845b-4a6e-ad08-cf68922ae84a"], ["uuid", "#2#"]]]}}]' \
    '+["idltest",
      {"op": "delete",
       "table": "link1",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:663"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]},{\"uuid\":[\"uuid\",\"<3>\"]}]}
002: i=0 k=0 ka=[0] l2= uuid=<0>
002: i=1 k=0 ka=[1] l2= uuid=<1>
002: i=2 k=0 ka=[2] l2= uuid=<2>
002: i=3 k=0 ka=[3] l2= uuid=<3>
003: {\"error\":null,\"result\":[{\"count\":4}]}
004: i=0 k=0 ka=[0 1 2 3] l2= uuid=<0>
004: i=1 k=0 ka=[0 1 2 3] l2= uuid=<1>
004: i=2 k=0 ka=[0 1 2 3] l2= uuid=<2>
004: i=3 k=0 ka=[0 1 2 3] l2= uuid=<3>
005: {\"error\":null,\"result\":[{\"count\":1},{\"details\":\"Table link1 column ka row <2> references nonexistent row <4> in table link1.\",\"error\":\"referential integrity violation\"}]}
006: {\"error\":null,\"result\":[{\"count\":4}]}
007: empty
008: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:663"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:663"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:663: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:663: wait failed" >&5

    $as_echo "ovsdb-idl.at:663" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:663"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2140
#AT_START_2141
at_fn_group_banner 2141 'ovsdb-idl.at:663' \
  "self-linking idl, sets - Python2 - register_columns" "" 99
at_xfail=no
(
  $as_echo "2141. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:663" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:663"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:663"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"named-uuid\", \"i0\"], \"ka\": [\"set\", [[\"named-uuid\", \"i0\"]]]},
       \"uuid-name\": \"i0\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"i0\"], \"ka\": [\"set\", [[\"named-uuid\", \"i1\"]]]},
       \"uuid-name\": \"i1\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 2, \"k\": [\"named-uuid\", \"i0\"], \"ka\": [\"set\", [[\"named-uuid\", \"i2\"]]]},
       \"uuid-name\": \"i2\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 3, \"k\": [\"named-uuid\", \"i0\"], \"ka\": [\"set\", [[\"named-uuid\", \"i3\"]]]},
       \"uuid-name\": \"i3\"}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [],
       \"row\": {\"ka\": [\"set\", [[\"uuid\", \"#0#\"], [\"uuid\", \"#1#\"], [\"uuid\", \"#2#\"], [\"uuid\", \"#3#\"]]]}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [[\"i\", \"==\", 2]],
       \"row\": {\"ka\": [\"set\", [[\"uuid\", \"#0#\"], [\"uuid\", \"88702e78-845b-4a6e-ad08-cf68922ae84a\"], [\"uuid\", \"#2#\"]]]}}]' \\
    '+[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"link1\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:663"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["named-uuid", "i0"], "ka": ["set", [["named-uuid", "i0"]]]},
       "uuid-name": "i0"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 1, "k": ["named-uuid", "i0"], "ka": ["set", [["named-uuid", "i1"]]]},
       "uuid-name": "i1"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 2, "k": ["named-uuid", "i0"], "ka": ["set", [["named-uuid", "i2"]]]},
       "uuid-name": "i2"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 3, "k": ["named-uuid", "i0"], "ka": ["set", [["named-uuid", "i3"]]]},
       "uuid-name": "i3"}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [],
       "row": {"ka": ["set", [["uuid", "#0#"], ["uuid", "#1#"], ["uuid", "#2#"], ["uuid", "#3#"]]]}}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [["i", "==", 2]],
       "row": {"ka": ["set", [["uuid", "#0#"], ["uuid", "88702e78-845b-4a6e-ad08-cf68922ae84a"], ["uuid", "#2#"]]]}}]' \
    '+["idltest",
      {"op": "delete",
       "table": "link1",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:663"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]},{\"uuid\":[\"uuid\",\"<3>\"]}]}
002: i=0 k=0 ka=[0] l2= uuid=<0>
002: i=1 k=0 ka=[1] l2= uuid=<1>
002: i=2 k=0 ka=[2] l2= uuid=<2>
002: i=3 k=0 ka=[3] l2= uuid=<3>
003: {\"error\":null,\"result\":[{\"count\":4}]}
004: i=0 k=0 ka=[0 1 2 3] l2= uuid=<0>
004: i=1 k=0 ka=[0 1 2 3] l2= uuid=<1>
004: i=2 k=0 ka=[0 1 2 3] l2= uuid=<2>
004: i=3 k=0 ka=[0 1 2 3] l2= uuid=<3>
005: {\"error\":null,\"result\":[{\"count\":1},{\"details\":\"Table link1 column ka row <2> references nonexistent row <4> in table link1.\",\"error\":\"referential integrity violation\"}]}
006: {\"error\":null,\"result\":[{\"count\":4}]}
007: empty
008: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:663"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:663"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:663: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:663: wait failed" >&5

    $as_echo "ovsdb-idl.at:663" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:663"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2141
#AT_START_2142
at_fn_group_banner 2142 'ovsdb-idl.at:663' \
  "self-linking idl, sets - Python3 - register_columns" "" 99
at_xfail=no
(
  $as_echo "2142. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:663" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:663"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:663"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"named-uuid\", \"i0\"], \"ka\": [\"set\", [[\"named-uuid\", \"i0\"]]]},
       \"uuid-name\": \"i0\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"i0\"], \"ka\": [\"set\", [[\"named-uuid\", \"i1\"]]]},
       \"uuid-name\": \"i1\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 2, \"k\": [\"named-uuid\", \"i0\"], \"ka\": [\"set\", [[\"named-uuid\", \"i2\"]]]},
       \"uuid-name\": \"i2\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 3, \"k\": [\"named-uuid\", \"i0\"], \"ka\": [\"set\", [[\"named-uuid\", \"i3\"]]]},
       \"uuid-name\": \"i3\"}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [],
       \"row\": {\"ka\": [\"set\", [[\"uuid\", \"#0#\"], [\"uuid\", \"#1#\"], [\"uuid\", \"#2#\"], [\"uuid\", \"#3#\"]]]}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [[\"i\", \"==\", 2]],
       \"row\": {\"ka\": [\"set\", [[\"uuid\", \"#0#\"], [\"uuid\", \"88702e78-845b-4a6e-ad08-cf68922ae84a\"], [\"uuid\", \"#2#\"]]]}}]' \\
    '+[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"link1\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:663"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["named-uuid", "i0"], "ka": ["set", [["named-uuid", "i0"]]]},
       "uuid-name": "i0"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 1, "k": ["named-uuid", "i0"], "ka": ["set", [["named-uuid", "i1"]]]},
       "uuid-name": "i1"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 2, "k": ["named-uuid", "i0"], "ka": ["set", [["named-uuid", "i2"]]]},
       "uuid-name": "i2"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 3, "k": ["named-uuid", "i0"], "ka": ["set", [["named-uuid", "i3"]]]},
       "uuid-name": "i3"}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [],
       "row": {"ka": ["set", [["uuid", "#0#"], ["uuid", "#1#"], ["uuid", "#2#"], ["uuid", "#3#"]]]}}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [["i", "==", 2]],
       "row": {"ka": ["set", [["uuid", "#0#"], ["uuid", "88702e78-845b-4a6e-ad08-cf68922ae84a"], ["uuid", "#2#"]]]}}]' \
    '+["idltest",
      {"op": "delete",
       "table": "link1",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:663"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]},{\"uuid\":[\"uuid\",\"<3>\"]}]}
002: i=0 k=0 ka=[0] l2= uuid=<0>
002: i=1 k=0 ka=[1] l2= uuid=<1>
002: i=2 k=0 ka=[2] l2= uuid=<2>
002: i=3 k=0 ka=[3] l2= uuid=<3>
003: {\"error\":null,\"result\":[{\"count\":4}]}
004: i=0 k=0 ka=[0 1 2 3] l2= uuid=<0>
004: i=1 k=0 ka=[0 1 2 3] l2= uuid=<1>
004: i=2 k=0 ka=[0 1 2 3] l2= uuid=<2>
004: i=3 k=0 ka=[0 1 2 3] l2= uuid=<3>
005: {\"error\":null,\"result\":[{\"count\":1},{\"details\":\"Table link1 column ka row <2> references nonexistent row <4> in table link1.\",\"error\":\"referential integrity violation\"}]}
006: {\"error\":null,\"result\":[{\"count\":4}]}
007: empty
008: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:663"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:663"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:663: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:663: wait failed" >&5

    $as_echo "ovsdb-idl.at:663" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:663"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2142
#AT_START_2143
at_fn_group_banner 2143 'ovsdb-idl.at:663' \
  "self-linking idl, sets - Python2 - tcp" "         " 99
at_xfail=no
(
  $as_echo "2143. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:663" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:663"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:663"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:663: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:663: wait failed" >&5

    $as_echo "ovsdb-idl.at:663" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:663"
fi



   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"named-uuid\", \"i0\"], \"ka\": [\"set\", [[\"named-uuid\", \"i0\"]]]},
       \"uuid-name\": \"i0\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"i0\"], \"ka\": [\"set\", [[\"named-uuid\", \"i1\"]]]},
       \"uuid-name\": \"i1\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 2, \"k\": [\"named-uuid\", \"i0\"], \"ka\": [\"set\", [[\"named-uuid\", \"i2\"]]]},
       \"uuid-name\": \"i2\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 3, \"k\": [\"named-uuid\", \"i0\"], \"ka\": [\"set\", [[\"named-uuid\", \"i3\"]]]},
       \"uuid-name\": \"i3\"}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [],
       \"row\": {\"ka\": [\"set\", [[\"uuid\", \"#0#\"], [\"uuid\", \"#1#\"], [\"uuid\", \"#2#\"], [\"uuid\", \"#3#\"]]]}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [[\"i\", \"==\", 2]],
       \"row\": {\"ka\": [\"set\", [[\"uuid\", \"#0#\"], [\"uuid\", \"88702e78-845b-4a6e-ad08-cf68922ae84a\"], [\"uuid\", \"#2#\"]]]}}]' \\
    '+[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"link1\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:663"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["named-uuid", "i0"], "ka": ["set", [["named-uuid", "i0"]]]},
       "uuid-name": "i0"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 1, "k": ["named-uuid", "i0"], "ka": ["set", [["named-uuid", "i1"]]]},
       "uuid-name": "i1"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 2, "k": ["named-uuid", "i0"], "ka": ["set", [["named-uuid", "i2"]]]},
       "uuid-name": "i2"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 3, "k": ["named-uuid", "i0"], "ka": ["set", [["named-uuid", "i3"]]]},
       "uuid-name": "i3"}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [],
       "row": {"ka": ["set", [["uuid", "#0#"], ["uuid", "#1#"], ["uuid", "#2#"], ["uuid", "#3#"]]]}}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [["i", "==", 2]],
       "row": {"ka": ["set", [["uuid", "#0#"], ["uuid", "88702e78-845b-4a6e-ad08-cf68922ae84a"], ["uuid", "#2#"]]]}}]' \
    '+["idltest",
      {"op": "delete",
       "table": "link1",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:663"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]},{\"uuid\":[\"uuid\",\"<3>\"]}]}
002: i=0 k=0 ka=[0] l2= uuid=<0>
002: i=1 k=0 ka=[1] l2= uuid=<1>
002: i=2 k=0 ka=[2] l2= uuid=<2>
002: i=3 k=0 ka=[3] l2= uuid=<3>
003: {\"error\":null,\"result\":[{\"count\":4}]}
004: i=0 k=0 ka=[0 1 2 3] l2= uuid=<0>
004: i=1 k=0 ka=[0 1 2 3] l2= uuid=<1>
004: i=2 k=0 ka=[0 1 2 3] l2= uuid=<2>
004: i=3 k=0 ka=[0 1 2 3] l2= uuid=<3>
005: {\"error\":null,\"result\":[{\"count\":1},{\"details\":\"Table link1 column ka row <2> references nonexistent row <4> in table link1.\",\"error\":\"referential integrity violation\"}]}
006: {\"error\":null,\"result\":[{\"count\":4}]}
007: empty
008: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:663"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:663"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:663: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:663: wait failed" >&5

    $as_echo "ovsdb-idl.at:663" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:663"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2143
#AT_START_2144
at_fn_group_banner 2144 'ovsdb-idl.at:663' \
  "self-linking idl, sets - Python3 - tcp" "         " 99
at_xfail=no
(
  $as_echo "2144. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:663" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:663"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:663"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:663: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:663: wait failed" >&5

    $as_echo "ovsdb-idl.at:663" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:663"
fi



   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"named-uuid\", \"i0\"], \"ka\": [\"set\", [[\"named-uuid\", \"i0\"]]]},
       \"uuid-name\": \"i0\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"i0\"], \"ka\": [\"set\", [[\"named-uuid\", \"i1\"]]]},
       \"uuid-name\": \"i1\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 2, \"k\": [\"named-uuid\", \"i0\"], \"ka\": [\"set\", [[\"named-uuid\", \"i2\"]]]},
       \"uuid-name\": \"i2\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 3, \"k\": [\"named-uuid\", \"i0\"], \"ka\": [\"set\", [[\"named-uuid\", \"i3\"]]]},
       \"uuid-name\": \"i3\"}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [],
       \"row\": {\"ka\": [\"set\", [[\"uuid\", \"#0#\"], [\"uuid\", \"#1#\"], [\"uuid\", \"#2#\"], [\"uuid\", \"#3#\"]]]}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [[\"i\", \"==\", 2]],
       \"row\": {\"ka\": [\"set\", [[\"uuid\", \"#0#\"], [\"uuid\", \"88702e78-845b-4a6e-ad08-cf68922ae84a\"], [\"uuid\", \"#2#\"]]]}}]' \\
    '+[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"link1\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:663"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["named-uuid", "i0"], "ka": ["set", [["named-uuid", "i0"]]]},
       "uuid-name": "i0"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 1, "k": ["named-uuid", "i0"], "ka": ["set", [["named-uuid", "i1"]]]},
       "uuid-name": "i1"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 2, "k": ["named-uuid", "i0"], "ka": ["set", [["named-uuid", "i2"]]]},
       "uuid-name": "i2"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 3, "k": ["named-uuid", "i0"], "ka": ["set", [["named-uuid", "i3"]]]},
       "uuid-name": "i3"}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [],
       "row": {"ka": ["set", [["uuid", "#0#"], ["uuid", "#1#"], ["uuid", "#2#"], ["uuid", "#3#"]]]}}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [["i", "==", 2]],
       "row": {"ka": ["set", [["uuid", "#0#"], ["uuid", "88702e78-845b-4a6e-ad08-cf68922ae84a"], ["uuid", "#2#"]]]}}]' \
    '+["idltest",
      {"op": "delete",
       "table": "link1",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:663"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]},{\"uuid\":[\"uuid\",\"<3>\"]}]}
002: i=0 k=0 ka=[0] l2= uuid=<0>
002: i=1 k=0 ka=[1] l2= uuid=<1>
002: i=2 k=0 ka=[2] l2= uuid=<2>
002: i=3 k=0 ka=[3] l2= uuid=<3>
003: {\"error\":null,\"result\":[{\"count\":4}]}
004: i=0 k=0 ka=[0 1 2 3] l2= uuid=<0>
004: i=1 k=0 ka=[0 1 2 3] l2= uuid=<1>
004: i=2 k=0 ka=[0 1 2 3] l2= uuid=<2>
004: i=3 k=0 ka=[0 1 2 3] l2= uuid=<3>
005: {\"error\":null,\"result\":[{\"count\":1},{\"details\":\"Table link1 column ka row <2> references nonexistent row <4> in table link1.\",\"error\":\"referential integrity violation\"}]}
006: {\"error\":null,\"result\":[{\"count\":4}]}
007: empty
008: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:663"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:663"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:663: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:663: wait failed" >&5

    $as_echo "ovsdb-idl.at:663" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:663"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2144
#AT_START_2145
at_fn_group_banner 2145 'ovsdb-idl.at:663' \
  "self-linking idl, sets - Python2 - tcp6" "        " 99
at_xfail=no
(
  $as_echo "2145. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:663" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:663"
   $as_echo "ovsdb-idl.at:663" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:663"
   $as_echo "ovsdb-idl.at:663" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:663"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:663"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:663: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:663: wait failed" >&5

    $as_echo "ovsdb-idl.at:663" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:663"
fi

   echo "TCP_PORT=$TCP_PORT"


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"named-uuid\", \"i0\"], \"ka\": [\"set\", [[\"named-uuid\", \"i0\"]]]},
       \"uuid-name\": \"i0\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"i0\"], \"ka\": [\"set\", [[\"named-uuid\", \"i1\"]]]},
       \"uuid-name\": \"i1\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 2, \"k\": [\"named-uuid\", \"i0\"], \"ka\": [\"set\", [[\"named-uuid\", \"i2\"]]]},
       \"uuid-name\": \"i2\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 3, \"k\": [\"named-uuid\", \"i0\"], \"ka\": [\"set\", [[\"named-uuid\", \"i3\"]]]},
       \"uuid-name\": \"i3\"}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [],
       \"row\": {\"ka\": [\"set\", [[\"uuid\", \"#0#\"], [\"uuid\", \"#1#\"], [\"uuid\", \"#2#\"], [\"uuid\", \"#3#\"]]]}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [[\"i\", \"==\", 2]],
       \"row\": {\"ka\": [\"set\", [[\"uuid\", \"#0#\"], [\"uuid\", \"88702e78-845b-4a6e-ad08-cf68922ae84a\"], [\"uuid\", \"#2#\"]]]}}]' \\
    '+[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"link1\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:663"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["named-uuid", "i0"], "ka": ["set", [["named-uuid", "i0"]]]},
       "uuid-name": "i0"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 1, "k": ["named-uuid", "i0"], "ka": ["set", [["named-uuid", "i1"]]]},
       "uuid-name": "i1"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 2, "k": ["named-uuid", "i0"], "ka": ["set", [["named-uuid", "i2"]]]},
       "uuid-name": "i2"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 3, "k": ["named-uuid", "i0"], "ka": ["set", [["named-uuid", "i3"]]]},
       "uuid-name": "i3"}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [],
       "row": {"ka": ["set", [["uuid", "#0#"], ["uuid", "#1#"], ["uuid", "#2#"], ["uuid", "#3#"]]]}}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [["i", "==", 2]],
       "row": {"ka": ["set", [["uuid", "#0#"], ["uuid", "88702e78-845b-4a6e-ad08-cf68922ae84a"], ["uuid", "#2#"]]]}}]' \
    '+["idltest",
      {"op": "delete",
       "table": "link1",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:663"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]},{\"uuid\":[\"uuid\",\"<3>\"]}]}
002: i=0 k=0 ka=[0] l2= uuid=<0>
002: i=1 k=0 ka=[1] l2= uuid=<1>
002: i=2 k=0 ka=[2] l2= uuid=<2>
002: i=3 k=0 ka=[3] l2= uuid=<3>
003: {\"error\":null,\"result\":[{\"count\":4}]}
004: i=0 k=0 ka=[0 1 2 3] l2= uuid=<0>
004: i=1 k=0 ka=[0 1 2 3] l2= uuid=<1>
004: i=2 k=0 ka=[0 1 2 3] l2= uuid=<2>
004: i=3 k=0 ka=[0 1 2 3] l2= uuid=<3>
005: {\"error\":null,\"result\":[{\"count\":1},{\"details\":\"Table link1 column ka row <2> references nonexistent row <4> in table link1.\",\"error\":\"referential integrity violation\"}]}
006: {\"error\":null,\"result\":[{\"count\":4}]}
007: empty
008: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:663"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:663"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:663: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:663: wait failed" >&5

    $as_echo "ovsdb-idl.at:663" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:663"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2145
#AT_START_2146
at_fn_group_banner 2146 'ovsdb-idl.at:663' \
  "self-linking idl, sets - Python3 - tcp6" "        " 99
at_xfail=no
(
  $as_echo "2146. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:663" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:663"
   $as_echo "ovsdb-idl.at:663" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:663"
   $as_echo "ovsdb-idl.at:663" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:663"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:663"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:663: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:663: wait failed" >&5

    $as_echo "ovsdb-idl.at:663" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:663"
fi

   echo "TCP_PORT=$TCP_PORT"


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"named-uuid\", \"i0\"], \"ka\": [\"set\", [[\"named-uuid\", \"i0\"]]]},
       \"uuid-name\": \"i0\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"i0\"], \"ka\": [\"set\", [[\"named-uuid\", \"i1\"]]]},
       \"uuid-name\": \"i1\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 2, \"k\": [\"named-uuid\", \"i0\"], \"ka\": [\"set\", [[\"named-uuid\", \"i2\"]]]},
       \"uuid-name\": \"i2\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 3, \"k\": [\"named-uuid\", \"i0\"], \"ka\": [\"set\", [[\"named-uuid\", \"i3\"]]]},
       \"uuid-name\": \"i3\"}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [],
       \"row\": {\"ka\": [\"set\", [[\"uuid\", \"#0#\"], [\"uuid\", \"#1#\"], [\"uuid\", \"#2#\"], [\"uuid\", \"#3#\"]]]}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [[\"i\", \"==\", 2]],
       \"row\": {\"ka\": [\"set\", [[\"uuid\", \"#0#\"], [\"uuid\", \"88702e78-845b-4a6e-ad08-cf68922ae84a\"], [\"uuid\", \"#2#\"]]]}}]' \\
    '+[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"link1\",
       \"where\": []}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:663"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["named-uuid", "i0"], "ka": ["set", [["named-uuid", "i0"]]]},
       "uuid-name": "i0"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 1, "k": ["named-uuid", "i0"], "ka": ["set", [["named-uuid", "i1"]]]},
       "uuid-name": "i1"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 2, "k": ["named-uuid", "i0"], "ka": ["set", [["named-uuid", "i2"]]]},
       "uuid-name": "i2"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 3, "k": ["named-uuid", "i0"], "ka": ["set", [["named-uuid", "i3"]]]},
       "uuid-name": "i3"}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [],
       "row": {"ka": ["set", [["uuid", "#0#"], ["uuid", "#1#"], ["uuid", "#2#"], ["uuid", "#3#"]]]}}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [["i", "==", 2]],
       "row": {"ka": ["set", [["uuid", "#0#"], ["uuid", "88702e78-845b-4a6e-ad08-cf68922ae84a"], ["uuid", "#2#"]]]}}]' \
    '+["idltest",
      {"op": "delete",
       "table": "link1",
       "where": []}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:663"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]},{\"uuid\":[\"uuid\",\"<3>\"]}]}
002: i=0 k=0 ka=[0] l2= uuid=<0>
002: i=1 k=0 ka=[1] l2= uuid=<1>
002: i=2 k=0 ka=[2] l2= uuid=<2>
002: i=3 k=0 ka=[3] l2= uuid=<3>
003: {\"error\":null,\"result\":[{\"count\":4}]}
004: i=0 k=0 ka=[0 1 2 3] l2= uuid=<0>
004: i=1 k=0 ka=[0 1 2 3] l2= uuid=<1>
004: i=2 k=0 ka=[0 1 2 3] l2= uuid=<2>
004: i=3 k=0 ka=[0 1 2 3] l2= uuid=<3>
005: {\"error\":null,\"result\":[{\"count\":1},{\"details\":\"Table link1 column ka row <2> references nonexistent row <4> in table link1.\",\"error\":\"referential integrity violation\"}]}
006: {\"error\":null,\"result\":[{\"count\":4}]}
007: empty
008: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:663"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:663: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:663"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:663"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:663: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:663: wait failed" >&5

    $as_echo "ovsdb-idl.at:663" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:663"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2146
#AT_START_2147
at_fn_group_banner 2147 'ovsdb-idl.at:713' \
  "external-linking idl, consistent ops - C" "       " 99
at_xfail=no
(
  $as_echo "2147. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:713"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link2\",
       \"row\": {\"i\": 0},
       \"uuid-name\": \"row0\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"row1\"], \"l2\": [\"set\", [[\"named-uuid\", \"row0\"]]]},
       \"uuid-name\": \"row1\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:713"
( $at_check_trace; test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket '["idltest",
      {"op": "insert",
       "table": "link2",
       "row": {"i": 0},
       "uuid-name": "row0"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 1, "k": ["named-uuid", "row1"], "l2": ["set", [["named-uuid", "row0"]]]},
       "uuid-name": "row1"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:713"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]}]}
002: i=0 l1= uuid=<0>
002: i=1 k=1 ka=[] l2=0 uuid=<1>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:713"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:713"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:713: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:713: wait failed" >&5

    $as_echo "ovsdb-idl.at:713" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:713"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2147
#AT_START_2148
at_fn_group_banner 2148 'ovsdb-idl.at:713' \
  "external-linking idl, consistent ops - Python2" " " 99
at_xfail=no
(
  $as_echo "2148. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:713" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:713"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:713"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link2\",
       \"row\": {\"i\": 0},
       \"uuid-name\": \"row0\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"row1\"], \"l2\": [\"set\", [[\"named-uuid\", \"row0\"]]]},
       \"uuid-name\": \"row1\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:713"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket '["idltest",
      {"op": "insert",
       "table": "link2",
       "row": {"i": 0},
       "uuid-name": "row0"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 1, "k": ["named-uuid", "row1"], "l2": ["set", [["named-uuid", "row0"]]]},
       "uuid-name": "row1"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:713"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]}]}
002: i=0 l1= uuid=<0>
002: i=1 k=1 ka=[] l2=0 uuid=<1>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:713"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:713"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:713: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:713: wait failed" >&5

    $as_echo "ovsdb-idl.at:713" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:713"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2148
#AT_START_2149
at_fn_group_banner 2149 'ovsdb-idl.at:713' \
  "external-linking idl, consistent ops - Python3" " " 99
at_xfail=no
(
  $as_echo "2149. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:713" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:713"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:713"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link2\",
       \"row\": {\"i\": 0},
       \"uuid-name\": \"row0\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"row1\"], \"l2\": [\"set\", [[\"named-uuid\", \"row0\"]]]},
       \"uuid-name\": \"row1\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:713"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket '["idltest",
      {"op": "insert",
       "table": "link2",
       "row": {"i": 0},
       "uuid-name": "row0"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 1, "k": ["named-uuid", "row1"], "l2": ["set", [["named-uuid", "row0"]]]},
       "uuid-name": "row1"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:713"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]}]}
002: i=0 l1= uuid=<0>
002: i=1 k=1 ka=[] l2=0 uuid=<1>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:713"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:713"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:713: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:713: wait failed" >&5

    $as_echo "ovsdb-idl.at:713" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:713"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2149
#AT_START_2150
at_fn_group_banner 2150 'ovsdb-idl.at:713' \
  "external-linking idl, consistent ops - Python2 - register_columns" "" 99
at_xfail=no
(
  $as_echo "2150. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:713" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:713"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:713"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link2\",
       \"row\": {\"i\": 0},
       \"uuid-name\": \"row0\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"row1\"], \"l2\": [\"set\", [[\"named-uuid\", \"row0\"]]]},
       \"uuid-name\": \"row1\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:713"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 '["idltest",
      {"op": "insert",
       "table": "link2",
       "row": {"i": 0},
       "uuid-name": "row0"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 1, "k": ["named-uuid", "row1"], "l2": ["set", [["named-uuid", "row0"]]]},
       "uuid-name": "row1"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:713"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]}]}
002: i=0 l1= uuid=<0>
002: i=1 k=1 ka=[] l2=0 uuid=<1>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:713"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:713"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:713: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:713: wait failed" >&5

    $as_echo "ovsdb-idl.at:713" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:713"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2150
#AT_START_2151
at_fn_group_banner 2151 'ovsdb-idl.at:713' \
  "external-linking idl, consistent ops - Python3 - register_columns" "" 99
at_xfail=no
(
  $as_echo "2151. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:713" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:713"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:713"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link2\",
       \"row\": {\"i\": 0},
       \"uuid-name\": \"row0\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"row1\"], \"l2\": [\"set\", [[\"named-uuid\", \"row0\"]]]},
       \"uuid-name\": \"row1\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:713"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:b,ba,i,ia,r,ra,s,sa,u,ua?link1:i,k,ka,l2?link2:i,l1 '["idltest",
      {"op": "insert",
       "table": "link2",
       "row": {"i": 0},
       "uuid-name": "row0"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 1, "k": ["named-uuid", "row1"], "l2": ["set", [["named-uuid", "row0"]]]},
       "uuid-name": "row1"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:713"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]}]}
002: i=0 l1= uuid=<0>
002: i=1 k=1 ka=[] l2=0 uuid=<1>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:713"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:713"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:713: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:713: wait failed" >&5

    $as_echo "ovsdb-idl.at:713" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:713"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2151
#AT_START_2152
at_fn_group_banner 2152 'ovsdb-idl.at:713' \
  "external-linking idl, consistent ops - Python2 - tcp" "" 99
at_xfail=no
(
  $as_echo "2152. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:713" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:713"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:713"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:713: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:713: wait failed" >&5

    $as_echo "ovsdb-idl.at:713" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:713"
fi



   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link2\",
       \"row\": {\"i\": 0},
       \"uuid-name\": \"row0\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"row1\"], \"l2\": [\"set\", [[\"named-uuid\", \"row0\"]]]},
       \"uuid-name\": \"row1\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:713"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT '["idltest",
      {"op": "insert",
       "table": "link2",
       "row": {"i": 0},
       "uuid-name": "row0"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 1, "k": ["named-uuid", "row1"], "l2": ["set", [["named-uuid", "row0"]]]},
       "uuid-name": "row1"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:713"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]}]}
002: i=0 l1= uuid=<0>
002: i=1 k=1 ka=[] l2=0 uuid=<1>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:713"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:713"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:713: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:713: wait failed" >&5

    $as_echo "ovsdb-idl.at:713" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:713"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2152
#AT_START_2153
at_fn_group_banner 2153 'ovsdb-idl.at:713' \
  "external-linking idl, consistent ops - Python3 - tcp" "" 99
at_xfail=no
(
  $as_echo "2153. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:713" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:713"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: ovsdb_start_idltest \"ptcp:0:127.0.0.1\""
at_fn_check_prepare_trace "ovsdb-idl.at:713"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:127.0.0.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:713: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:713: wait failed" >&5

    $as_echo "ovsdb-idl.at:713" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:713"
fi



   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:127.0.0.1:\$TCP_PORT '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link2\",
       \"row\": {\"i\": 0},
       \"uuid-name\": \"row0\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"row1\"], \"l2\": [\"set\", [[\"named-uuid\", \"row0\"]]]},
       \"uuid-name\": \"row1\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:713"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:127.0.0.1:$TCP_PORT '["idltest",
      {"op": "insert",
       "table": "link2",
       "row": {"i": 0},
       "uuid-name": "row0"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 1, "k": ["named-uuid", "row1"], "l2": ["set", [["named-uuid", "row0"]]]},
       "uuid-name": "row1"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:713"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]}]}
002: i=0 l1= uuid=<0>
002: i=1 k=1 ka=[] l2=0 uuid=<1>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:713"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:713"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:713: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:713: wait failed" >&5

    $as_echo "ovsdb-idl.at:713" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:713"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2153
#AT_START_2154
at_fn_group_banner 2154 'ovsdb-idl.at:713' \
  "external-linking idl, consistent ops - Python2 - tcp6" "" 99
at_xfail=no
(
  $as_echo "2154. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:713" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:713"
   $as_echo "ovsdb-idl.at:713" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:713"
   $as_echo "ovsdb-idl.at:713" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:713"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:713"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:713: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:713: wait failed" >&5

    $as_echo "ovsdb-idl.at:713" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:713"
fi

   echo "TCP_PORT=$TCP_PORT"


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link2\",
       \"row\": {\"i\": 0},
       \"uuid-name\": \"row0\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"row1\"], \"l2\": [\"set\", [[\"named-uuid\", \"row0\"]]]},
       \"uuid-name\": \"row1\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:713"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT '["idltest",
      {"op": "insert",
       "table": "link2",
       "row": {"i": 0},
       "uuid-name": "row0"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 1, "k": ["named-uuid", "row1"], "l2": ["set", [["named-uuid", "row0"]]]},
       "uuid-name": "row1"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:713"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]}]}
002: i=0 l1= uuid=<0>
002: i=1 k=1 ka=[] l2=0 uuid=<1>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:713"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:713"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:713: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:713: wait failed" >&5

    $as_echo "ovsdb-idl.at:713" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:713"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2154
#AT_START_2155
at_fn_group_banner 2155 'ovsdb-idl.at:713' \
  "external-linking idl, consistent ops - Python3 - tcp6" "" 99
at_xfail=no
(
  $as_echo "2155. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:713" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:713"
   $as_echo "ovsdb-idl.at:713" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:713"
   $as_echo "ovsdb-idl.at:713" >"$at_check_line_file"
(test $HAVE_IPV6 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:713"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: ovsdb_start_idltest \"ptcp:0:[::1]\""
at_fn_check_prepare_trace "ovsdb-idl.at:713"
( $at_check_trace; ovsdb_start_idltest "ptcp:0:[::1]"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:713: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:713: wait failed" >&5

    $as_echo "ovsdb-idl.at:713" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:713"
fi

   echo "TCP_PORT=$TCP_PORT"


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema tcp:[::1]:\$TCP_PORT '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link2\",
       \"row\": {\"i\": 0},
       \"uuid-name\": \"row0\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"row1\"], \"l2\": [\"set\", [[\"named-uuid\", \"row0\"]]]},
       \"uuid-name\": \"row1\"}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:713"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema tcp:[::1]:$TCP_PORT '["idltest",
      {"op": "insert",
       "table": "link2",
       "row": {"i": 0},
       "uuid-name": "row0"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 1, "k": ["named-uuid", "row1"], "l2": ["set", [["named-uuid", "row0"]]]},
       "uuid-name": "row1"}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:713"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]}]}
002: i=0 l1= uuid=<0>
002: i=1 k=1 ka=[] l2=0 uuid=<1>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:713"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:713: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:713"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:713: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:713: wait failed" >&5

    $as_echo "ovsdb-idl.at:713" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:713"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2155
#AT_START_2156
at_fn_group_banner 2156 'ovsdb-idl.at:731' \
  "external-linking idl, insert ops - Python2" "     " 99
at_xfail=no
(
  $as_echo "2156. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:731" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:731"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:731: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:731"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:731"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:731: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket 'linktest'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'linktest'" "ovsdb-idl.at:731"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'linktest'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:731"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:731: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:731"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: commit, status=success
002: i=1 k=1 ka=[1] l2= uuid=<0>
002: i=2 k=1 ka=[1 2] l2= uuid=<1>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:731"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:731: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:731"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:731"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:731: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:731"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:731"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:731: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:731: wait failed" >&5

    $as_echo "ovsdb-idl.at:731" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:731"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2156
#AT_START_2157
at_fn_group_banner 2157 'ovsdb-idl.at:731' \
  "external-linking idl, insert ops - Python3" "     " 99
at_xfail=no
(
  $as_echo "2157. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:731" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:731"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:731: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:731"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:731"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:731: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket 'linktest'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'linktest'" "ovsdb-idl.at:731"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'linktest'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:731"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:731: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:731"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: commit, status=success
002: i=1 k=1 ka=[1] l2= uuid=<0>
002: i=2 k=1 ka=[1 2] l2= uuid=<1>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:731"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:731: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:731"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:731"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:731: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:731"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:731"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:731: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:731: wait failed" >&5

    $as_echo "ovsdb-idl.at:731" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:731"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2157
#AT_START_2158
at_fn_group_banner 2158 'ovsdb-idl.at:741' \
  "getattr idl, insert ops - Python2" "              " 99
at_xfail=no
(
  $as_echo "2158. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:741" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:741"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:741: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:741"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:741"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:741: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket 'getattrtest'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'getattrtest'" "ovsdb-idl.at:741"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'getattrtest'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:741"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:741: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:741"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: commit, status=success
002: i=2 k=2 ka=[] l2= uuid=<0>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:741"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:741: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:741"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:741"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:741: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:741"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:741"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:741: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:741: wait failed" >&5

    $as_echo "ovsdb-idl.at:741" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:741"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2158
#AT_START_2159
at_fn_group_banner 2159 'ovsdb-idl.at:741' \
  "getattr idl, insert ops - Python3" "              " 99
at_xfail=no
(
  $as_echo "2159. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:741" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:741"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:741: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:741"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:741"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:741: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket 'getattrtest'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'getattrtest'" "ovsdb-idl.at:741"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'getattrtest'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:741"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:741: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:741"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: commit, status=success
002: i=2 k=2 ka=[] l2= uuid=<0>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:741"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:741: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:741"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:741"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:741: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:741"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:741"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:741: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:741: wait failed" >&5

    $as_echo "ovsdb-idl.at:741" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:741"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2159
#AT_START_2160
at_fn_group_banner 2160 'ovsdb-idl.at:750' \
  "row-from-json idl, whats this - Python2" "        " 99
at_xfail=no
(
  $as_echo "2160. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:750" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:750"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:750: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:750"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:750"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:750: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:750"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:750"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:750: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket 'notifytest insert 2, notifytest set 1 b 1, notifytest delete 0'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'notifytest insert 2, notifytest set 1 b 1, notifytest delete 0'" "ovsdb-idl.at:750"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'notifytest insert 2, notifytest set 1 b 1, notifytest delete 0'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:750"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:750: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:750"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
000: i=1 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
001: commit, status=success, events=create|2|None, delete|0|None, update|1|b
002: i=1 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
002: i=2 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<3>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:750"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:750: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:750"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:750"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:750: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:750"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:750"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:750: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:750: wait failed" >&5

    $as_echo "ovsdb-idl.at:750" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:750"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2160
#AT_START_2161
at_fn_group_banner 2161 'ovsdb-idl.at:750' \
  "row-from-json idl, whats this - Python3" "        " 99
at_xfail=no
(
  $as_echo "2161. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:750" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:750"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:750: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:750"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:750"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:750: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:750"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:750"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:750: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket 'notifytest insert 2, notifytest set 1 b 1, notifytest delete 0'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'notifytest insert 2, notifytest set 1 b 1, notifytest delete 0'" "ovsdb-idl.at:750"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'notifytest insert 2, notifytest set 1 b 1, notifytest delete 0'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:750"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:750: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:750"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
000: i=1 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
001: commit, status=success, events=create|2|None, delete|0|None, update|1|b
002: i=1 r=0 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<2>
002: i=2 r=0 b=false s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<3>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:750"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:750: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:750"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:750"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:750: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:750"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:750"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:750: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:750: wait failed" >&5

    $as_echo "ovsdb-idl.at:750" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:750"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2161
#AT_START_2162
at_fn_group_banner 2162 'ovsdb-idl.at:767' \
  "idl handling of missing tables and columns - C" " " 99
at_xfail=no
(
  $as_echo "2162. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



# idltest2.ovsschema is the same as idltest.ovsschema, except that
# table link2 and column l2 have been deleted.  But the IDL still
# expects them to be there, so this test checks that it properly
# tolerates them being missing.
{ set +x
$as_echo "$at_srcdir/ovsdb-idl.at:774: ovsdb_start_idltest \"\" \"\$abs_srcdir/idltest2.ovsschema\""
at_fn_check_prepare_dynamic "ovsdb_start_idltest \"\" \"$abs_srcdir/idltest2.ovsschema\"" "ovsdb-idl.at:774"
( $at_check_trace; ovsdb_start_idltest "" "$abs_srcdir/idltest2.ovsschema"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:774"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-idl.at:775: test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 0, \"k\": [\"named-uuid\", \"self\"]},
       \"uuid-name\": \"self\"}]' \\
    '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 1, \"k\": [\"named-uuid\", \"row2\"]},
       \"uuid-name\": \"row1\"},
      {\"op\": \"insert\",
       \"table\": \"link1\",
       \"row\": {\"i\": 2, \"k\": [\"named-uuid\", \"row1\"]},
       \"uuid-name\": \"row2\"}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [[\"i\", \"==\", 1]],
       \"row\": {\"k\": [\"uuid\", \"#1#\"]}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"link1\",
       \"where\": [],
       \"row\": {\"k\": [\"uuid\", \"#0#\"]}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:775"
( $at_check_trace; test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 idl unix:socket '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 0, "k": ["named-uuid", "self"]},
       "uuid-name": "self"}]' \
    '["idltest",
      {"op": "insert",
       "table": "link1",
       "row": {"i": 1, "k": ["named-uuid", "row2"]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "link1",
       "row": {"i": 2, "k": ["named-uuid", "row1"]},
       "uuid-name": "row2"}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [["i", "==", 1]],
       "row": {"k": ["uuid", "#1#"]}}]' \
    '["idltest",
      {"op": "update",
       "table": "link1",
       "where": [],
       "row": {"k": ["uuid", "#0#"]}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:775"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-idl.at:800: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:800"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]}]}
002: i=0 k=0 ka=[] l2= uuid=<0>
003: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<1>\"]},{\"uuid\":[\"uuid\",\"<2>\"]}]}
004: i=0 k=0 ka=[] l2= uuid=<0>
004: i=1 k=2 ka=[] l2= uuid=<1>
004: i=2 k=1 ka=[] l2= uuid=<2>
005: {\"error\":null,\"result\":[{\"count\":1}]}
006: i=0 k=0 ka=[] l2= uuid=<0>
006: i=1 k=1 ka=[] l2= uuid=<1>
006: i=2 k=1 ka=[] l2= uuid=<2>
007: {\"error\":null,\"result\":[{\"count\":3}]}
008: i=0 k=0 ka=[] l2= uuid=<0>
008: i=1 k=0 ka=[] l2= uuid=<1>
008: i=2 k=0 ka=[] l2= uuid=<2>
009: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:800"
$at_failed && at_fn_log_failure
$at_traceon; }


# Check that ovsdb-idl figured out that table link2 and column l2 are missing.
{ set +x
$as_echo "$at_srcdir/ovsdb-idl.at:820: grep ovsdb_idl stderr | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:820"
( $at_check_trace; grep ovsdb_idl stderr | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "test-ovsdb|ovsdb_idl|idltest database lacks link2 table (database needs upgrade?)
test-ovsdb|ovsdb_idl|link1 table in idltest database lacks l2 column (database needs upgrade?)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:820"
$at_failed && at_fn_log_failure
$at_traceon; }


# Check that ovsdb-idl sent on "monitor" request and that it didn't
# mention that table or column, and (for paranoia) that it did mention another
# table and column.
{ set +x
$as_echo "$at_srcdir/ovsdb-idl.at:828: grep -c '\"monitor\\|monitor_cond\"' stderr"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:828"
( $at_check_trace; grep -c '"monitor\|monitor_cond"' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:828"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-idl.at:830: grep '\"monitor\\|monitor_cond\"' stderr | grep link2"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:830"
( $at_check_trace; grep '"monitor\|monitor_cond"' stderr | grep link2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-idl.at:830"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-idl.at:831: grep '\"monitor\\|monitor_cond\"' stderr | grep l2"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:831"
( $at_check_trace; grep '"monitor\|monitor_cond"' stderr | grep l2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovsdb-idl.at:831"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-idl.at:832: grep '\"monitor\\|monitor_cond\"' stderr | grep -c '\"link1\"'"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:832"
( $at_check_trace; grep '"monitor\|monitor_cond"' stderr | grep -c '"link1"'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:832"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-idl.at:834: grep '\"monitor\\|monitor_cond\"' stderr | grep -c '\"ua\"'"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:834"
( $at_check_trace; grep '"monitor\|monitor_cond"' stderr | grep -c '"ua"'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:834"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-idl.at:836: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:836"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:836"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:836: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:836"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:836"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:836: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:836: wait failed" >&5

    $as_echo "ovsdb-idl.at:836" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:836"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2162
#AT_START_2163
at_fn_group_banner 2163 'ovsdb-idl.at:856' \
  "simple idl, initially populated - Python fetch" " " 99
at_xfail=no
(
  $as_echo "2163. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:856" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:856"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:856: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:856"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:856"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:856: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true,
               \"s\": \"mystring\",
               \"u\": [\"uuid\", \"84f5c8f5-ac76-4dbc-a24f-8860eb407fc1\"],
               \"ia\": [\"set\", [1, 2, 3]],
               \"ra\": [\"set\", [-0.5]],
               \"ba\": [\"set\", [true]],
               \"sa\": [\"set\", [\"abc\", \"def\"]],
               \"ua\": [\"set\", [[\"uuid\", \"69443985-7806-45e2-b35f-574a04e720f9\"],
                              [\"uuid\", \"aad11ef0-816a-4b01-93e6-03b8b4256b98\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:856"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true,
               "s": "mystring",
               "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],
               "ia": ["set", [1, 2, 3]],
               "ra": ["set", [-0.5]],
               "ba": ["set", [true]],
               "sa": ["set", ["abc", "def"]],
               "ua": ["set", [["uuid", "69443985-7806-45e2-b35f-574a04e720f9"],
                              ["uuid", "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:856"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:856: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple:i,r! 'fetch 0 r'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:i,r! 'fetch 0 r'" "ovsdb-idl.at:856"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple:i,r! 'fetch 0 r'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:856"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:856: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:856"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=0 uuid=<0>
000: i=1 uuid=<1>
001: commit, status=success
002: i=0 r=0 uuid=<0>
002: i=1 uuid=<1>
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:856"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:856: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:856"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:856"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:856: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:856"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:856"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:856: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:856: wait failed" >&5

    $as_echo "ovsdb-idl.at:856" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:856"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2163
#AT_START_2164
at_fn_group_banner 2164 'ovsdb-idl.at:902' \
  "simple idl disable monitor-cond - Python" "       " 99
at_xfail=no
(
  $as_echo "2164. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:902" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:902"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:902: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:902"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:902"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:902: ovs-appctl -t ovsdb-server ovsdb-server/disable-monitor-cond"
at_fn_check_prepare_trace "ovsdb-idl.at:902"
( $at_check_trace; ovs-appctl -t ovsdb-server ovsdb-server/disable-monitor-cond
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:902"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:902: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true,
               \"s\": \"mystring\",
               \"u\": [\"uuid\", \"84f5c8f5-ac76-4dbc-a24f-8860eb407fc1\"],
               \"ia\": [\"set\", [1, 2, 3]],
               \"ra\": [\"set\", [-0.5]],
               \"ba\": [\"set\", [true]],
               \"sa\": [\"set\", [\"abc\", \"def\"]],
               \"ua\": [\"set\", [[\"uuid\", \"69443985-7806-45e2-b35f-574a04e720f9\"],
                              [\"uuid\", \"aad11ef0-816a-4b01-93e6-03b8b4256b98\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [],
       \"row\": {\"b\": true}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [],
       \"row\": {\"r\": 123.5}}]' \\
    '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": -1,
               \"r\": 125,
               \"b\": false,
               \"s\": \"\",
               \"ia\": [\"set\", [1]],
               \"ra\": [\"set\", [1.5]],
               \"ba\": [\"set\", [false]],
               \"sa\": [\"set\", []],
               \"ua\": [\"set\", []]}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [[\"i\", \"<\", 1]],
       \"row\": {\"s\": \"newstring\"}}]' \\
    '[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"simple\",
       \"where\": [[\"i\", \"==\", 0]]}]' \\
    'reconnect'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:902"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true,
               "s": "mystring",
               "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],
               "ia": ["set", [1, 2, 3]],
               "ra": ["set", [-0.5]],
               "ba": ["set", [true]],
               "sa": ["set", ["abc", "def"]],
               "ua": ["set", [["uuid", "69443985-7806-45e2-b35f-574a04e720f9"],
                              ["uuid", "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [],
       "row": {"b": true}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [],
       "row": {"r": 123.5}}]' \
    '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": -1,
               "r": 125,
               "b": false,
               "s": "",
               "ia": ["set", [1]],
               "ra": ["set", [1.5]],
               "ba": ["set", [false]],
               "sa": ["set", []],
               "ua": ["set", []]}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [["i", "<", 1]],
       "row": {"s": "newstring"}}]' \
    '["idltest",
      {"op": "delete",
       "table": "simple",
       "where": [["i", "==", 0]]}]' \
    'reconnect'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:902"
if $at_failed; then :
  kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:902: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:902"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]}]}
002: i=0 r=0 b=false s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=2 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
003: {\"error\":null,\"result\":[{\"count\":2}]}
004: i=0 r=0 b=true s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: i=1 r=2 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
005: {\"error\":null,\"result\":[{\"count\":2}]}
006: i=0 r=123.5 b=true s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
006: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
007: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<6>\"]}]}
008: i=-1 r=125 b=false s= u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
008: i=0 r=123.5 b=true s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
008: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
009: {\"error\":null,\"result\":[{\"count\":2}]}
010: i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
010: i=0 r=123.5 b=true s=newstring u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
010: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
011: {\"error\":null,\"result\":[{\"count\":1}]}
012: i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
012: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
013: reconnect
014: i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
014: i=1 r=123.5 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
015: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:902"
if $at_failed; then :
  kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:902: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:902"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:902"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:902: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:902"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:902"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:902: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:902: wait failed" >&5

    $as_echo "ovsdb-idl.at:902" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:902"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2164
#AT_START_2165
at_fn_group_banner 2165 'ovsdb-idl.at:995' \
  "track, simple idl, initially populated - C" "     " 99
at_xfail=no
(
  $as_echo "2165. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:995: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:995"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:995"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:995: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true,
               \"s\": \"mystring\",
               \"u\": [\"uuid\", \"84f5c8f5-ac76-4dbc-a24f-8860eb407fc1\"],
               \"ia\": [\"set\", [1, 2, 3]],
               \"ra\": [\"set\", [-0.5]],
               \"ba\": [\"set\", [true]],
               \"sa\": [\"set\", [\"abc\", \"def\"]],
               \"ua\": [\"set\", [[\"uuid\", \"69443985-7806-45e2-b35f-574a04e720f9\"],
                              [\"uuid\", \"aad11ef0-816a-4b01-93e6-03b8b4256b98\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:995"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true,
               "s": "mystring",
               "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],
               "ia": ["set", [1, 2, 3]],
               "ra": ["set", [-0.5]],
               "ba": ["set", [true]],
               "sa": ["set", ["abc", "def"]],
               "ua": ["set", [["uuid", "69443985-7806-45e2-b35f-574a04e720f9"],
                              ["uuid", "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:995"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:995: test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 -c idl unix:socket '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [],
       \"row\": {\"b\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:995"
( $at_check_trace; test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 -c idl unix:socket '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [],
       "row": {"b": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:995"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:995: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:995"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: i=1 r=2 b=true s=mystring u=<0> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<1> <2>] uuid=<3>
000: updated columns: b ba i ia r ra s sa u ua
001: {\"error\":null,\"result\":[{\"count\":2}]}
002: i=0 r=0 b=true s= u=<4> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<5>
002: i=1 r=2 b=true s=mystring u=<0> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<1> <2>] uuid=<3>
002: updated columns: b
003: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:995"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:995: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:995"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:995"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:995: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:995"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:995"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:995: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:995: wait failed" >&5

    $as_echo "ovsdb-idl.at:995" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:995"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2165
#AT_START_2166
at_fn_group_banner 2166 'ovsdb-idl.at:1027' \
  "track, simple idl, initially empty, various ops - C" "" 99
at_xfail=no
(
  $as_echo "2166. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1027: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:1027"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1027"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1027: test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 -c idl unix:socket '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true,
               \"s\": \"mystring\",
               \"u\": [\"uuid\", \"84f5c8f5-ac76-4dbc-a24f-8860eb407fc1\"],
               \"ia\": [\"set\", [1, 2, 3]],
               \"ra\": [\"set\", [-0.5]],
               \"ba\": [\"set\", [true]],
               \"sa\": [\"set\", [\"abc\", \"def\"]],
               \"ua\": [\"set\", [[\"uuid\", \"69443985-7806-45e2-b35f-574a04e720f9\"],
                              [\"uuid\", \"aad11ef0-816a-4b01-93e6-03b8b4256b98\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [],
       \"row\": {\"b\": true}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [],
       \"row\": {\"r\": 123.5}}]' \\
    '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": -1,
               \"r\": 125,
               \"b\": false,
               \"s\": \"\",
               \"ia\": [\"set\", [1]],
               \"ra\": [\"set\", [1.5]],
               \"ba\": [\"set\", [false]],
               \"sa\": [\"set\", []],
               \"ua\": [\"set\", []]}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [[\"i\", \"<\", 1]],
       \"row\": {\"s\": \"newstring\"}}]' \\
    '[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"simple\",
       \"where\": [[\"i\", \"==\", 0]]}]' \\
    'reconnect'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:1027"
( $at_check_trace; test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 -c idl unix:socket '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true,
               "s": "mystring",
               "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],
               "ia": ["set", [1, 2, 3]],
               "ra": ["set", [-0.5]],
               "ba": ["set", [true]],
               "sa": ["set", ["abc", "def"]],
               "ua": ["set", [["uuid", "69443985-7806-45e2-b35f-574a04e720f9"],
                              ["uuid", "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [],
       "row": {"b": true}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [],
       "row": {"r": 123.5}}]' \
    '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": -1,
               "r": 125,
               "b": false,
               "s": "",
               "ia": ["set", [1]],
               "ra": ["set", [1.5]],
               "ba": ["set", [false]],
               "sa": ["set", []],
               "ua": ["set", []]}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [["i", "<", 1]],
       "row": {"s": "newstring"}}]' \
    '["idltest",
      {"op": "delete",
       "table": "simple",
       "where": [["i", "==", 0]]}]' \
    'reconnect'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1027"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1027: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:1027"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]}]}
002: i=1 r=2 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<0>
002: updated columns: b ba i ia r ra s sa u ua
003: {\"error\":null,\"result\":[{\"count\":2}]}
004: i=0 r=0 b=true s= u=<5> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: updated columns: b
005: {\"error\":null,\"result\":[{\"count\":2}]}
006: i=0 r=123.5 b=true s= u=<5> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
006: i=1 r=123.5 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<0>
006: updated columns: r
006: updated columns: r
007: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<6>\"]}]}
008: i=-1 r=125 b=false s= u=<5> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
008: updated columns: ba i ia r ra
009: {\"error\":null,\"result\":[{\"count\":2}]}
010: i=-1 r=125 b=false s=newstring u=<5> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
010: i=0 r=123.5 b=true s=newstring u=<5> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
010: updated columns: s
010: updated columns: s
011: {\"error\":null,\"result\":[{\"count\":1}]}
012: ##deleted## uuid=<1>
013: reconnect
014: i=-1 r=125 b=false s=newstring u=<5> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
014: i=1 r=123.5 b=true s=mystring u=<2> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<3> <4>] uuid=<0>
014: updated columns: b ba i ia r ra s sa u ua
014: updated columns: ba i ia r ra s
015: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1027"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1027: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:1027"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1027"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1027: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:1027"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1027"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:1027: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:1027: wait failed" >&5

    $as_echo "ovsdb-idl.at:1027" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:1027"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2166
#AT_START_2167
at_fn_group_banner 2167 'ovsdb-idl.at:1121' \
  "map, simple2 idl-partial-update-map-column, initially populated - C" "" 99
at_xfail=no
(
  $as_echo "2167. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1121: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:1121"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1121"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1121: ovsdb-client transact unix:socket '[\"idltest\", {\"op\":\"insert\", \"table\":\"simple2\",
                \"row\":{\"name\":\"myString1\",\"smap\":[\"map\",[[\"key1\",\"value1\"],[\"key2\",\"value2\"]]]} }]'
"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:1121"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest", {"op":"insert", "table":"simple2",
                "row":{"name":"myString1","smap":["map",[["key1","value1"],["key2","value2"]]]} }]'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1121"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1121: test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 -c idl-partial-update-map-column unix:socket "
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:1121"
( $at_check_trace; test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 -c idl-partial-update-map-column unix:socket
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1121"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1121: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:1121"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: Getting records
001: name=myString1 smap=[[key1 : value1],[key2 : value2]] imap=[]
002: After insert element
003: name=String2 smap=[[key1 : myList1],[key2 : value2]] imap=[[3 : myids2]]
004: After insert duplicated element
005: name=String2 smap=[[key1 : myList1],[key2 : value2]] imap=[[3 : myids2]]
006: After delete element
007: name=String2 smap=[[key2 : value2]] imap=[[3 : myids2]]
008: After trying to delete a deleted element
009: name=String2 smap=[[key2 : value2]] imap=[[3 : myids2]]
010: End test
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1121"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1121: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:1121"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1121"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1121: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:1121"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1121"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:1121: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:1121: wait failed" >&5

    $as_echo "ovsdb-idl.at:1121" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:1121"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2167
#AT_START_2168
at_fn_group_banner 2168 'ovsdb-idl.at:1139' \
  "partial-map idl - Python2" "                      " 99
at_xfail=no
(
  $as_echo "2168. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:1139" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:1139"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1139: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:1139"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1139"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1139: ovsdb-client transact unix:socket '[\"idltest\", {\"op\":\"insert\", \"table\":\"simple2\",
                \"row\":{\"name\":\"myString1\",\"smap\":[\"map\",[[\"key1\",\"value1\"],[\"key2\",\"value2\"]]]} }]'
"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:1139"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest", {"op":"insert", "table":"simple2",
                "row":{"name":"myString1","smap":["map",[["key1","value1"],["key2","value2"]]]} }]'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1139"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1139: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple2:name,smap,imap 'partialmapinsertelement' 'partialmapinsertmultipleelements' 'partialmapdelelements' 'partialmapmutatenew'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple2:name,smap,imap 'partialmapinsertelement' 'partialmapinsertmultipleelements' 'partialmapdelelements' 'partialmapmutatenew'" "ovsdb-idl.at:1139"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple2:name,smap,imap 'partialmapinsertelement' 'partialmapinsertmultipleelements' 'partialmapdelelements' 'partialmapmutatenew'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1139"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1139: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:1139"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: name=myString1 smap=[(key1 value1) (key2 value2)] imap=[]
001: commit, status=success
002: name=String2 smap=[(key1 myList1) (key2 value2)] imap=[(3 myids2)]
003: commit, status=success
004: name=String2 smap=[(key1 myList1) (key2 myList2) (key3 myList3) (key4 myList4)] imap=[(3 myids2)]
005: commit, status=success
006: name=String2 smap=[(key2 myList2)] imap=[(3 myids2)]
007: commit, status=success
008: name=String2 smap=[(key2 myList2)] imap=[(3 myids2)]
008: name=String2New smap=[(key1 newList1) (key2 newList2)] imap=[]
009: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1139"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1139: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:1139"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1139"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1139: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:1139"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1139"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:1139: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:1139: wait failed" >&5

    $as_echo "ovsdb-idl.at:1139" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:1139"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2168
#AT_START_2169
at_fn_group_banner 2169 'ovsdb-idl.at:1139' \
  "partial-map idl - Python3" "                      " 99
at_xfail=no
(
  $as_echo "2169. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:1139" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:1139"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1139: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:1139"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1139"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1139: ovsdb-client transact unix:socket '[\"idltest\", {\"op\":\"insert\", \"table\":\"simple2\",
                \"row\":{\"name\":\"myString1\",\"smap\":[\"map\",[[\"key1\",\"value1\"],[\"key2\",\"value2\"]]]} }]'
"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:1139"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest", {"op":"insert", "table":"simple2",
                "row":{"name":"myString1","smap":["map",[["key1","value1"],["key2","value2"]]]} }]'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1139"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1139: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket ?simple2:name,smap,imap 'partialmapinsertelement' 'partialmapinsertmultipleelements' 'partialmapdelelements' 'partialmapmutatenew'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple2:name,smap,imap 'partialmapinsertelement' 'partialmapinsertmultipleelements' 'partialmapdelelements' 'partialmapmutatenew'" "ovsdb-idl.at:1139"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket ?simple2:name,smap,imap 'partialmapinsertelement' 'partialmapinsertmultipleelements' 'partialmapdelelements' 'partialmapmutatenew'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1139"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1139: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:1139"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: name=myString1 smap=[(key1 value1) (key2 value2)] imap=[]
001: commit, status=success
002: name=String2 smap=[(key1 myList1) (key2 value2)] imap=[(3 myids2)]
003: commit, status=success
004: name=String2 smap=[(key1 myList1) (key2 myList2) (key3 myList3) (key4 myList4)] imap=[(3 myids2)]
005: commit, status=success
006: name=String2 smap=[(key2 myList2)] imap=[(3 myids2)]
007: commit, status=success
008: name=String2 smap=[(key2 myList2)] imap=[(3 myids2)]
008: name=String2New smap=[(key1 newList1) (key2 newList2)] imap=[]
009: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1139"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1139: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:1139"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1139"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1139: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:1139"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1139"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:1139: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:1139: wait failed" >&5

    $as_echo "ovsdb-idl.at:1139" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:1139"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2169
#AT_START_2170
at_fn_group_banner 2170 'ovsdb-idl.at:1170' \
  "set, simple3 idl-partial-update-set-column, initially populated - C" "" 99
at_xfail=no
(
  $as_echo "2170. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1170: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:1170"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1170"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1170: ovsdb-client transact unix:socket '[\"idltest\", {\"op\":\"insert\", \"table\":\"simple3\",
                \"row\":{\"name\":\"mySet1\",\"uset\":[\"set\", [[ \"uuid\", \"0005b872-f9e5-43be-ae02-3184b9680e75\" ], [ \"uuid\", \"000d2f6a-76af-412f-b59d-e7bcd3e84eff\" ]]]} }]'
"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:1170"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest", {"op":"insert", "table":"simple3",
                "row":{"name":"mySet1","uset":["set", [[ "uuid", "0005b872-f9e5-43be-ae02-3184b9680e75" ], [ "uuid", "000d2f6a-76af-412f-b59d-e7bcd3e84eff" ]]]} }]'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1170"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1170: test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 -c idl-partial-update-set-column unix:socket "
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:1170"
( $at_check_trace; test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 -c idl-partial-update-set-column unix:socket
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1170"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1170: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:1170"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: Getting records
001: name=mySet1 uset=[[<0>],[<1>]] uref=[]
002: After rename+add new value
003: name=String2 uset=[[<0>],[<1>],[<2>]] uref=[]
004: After add new value
005: name=String2 uset=[[<0>],[<1>],[<2>],[<3>]] uref=[]
006: After delete value
007: name=String2 uset=[[<0>],[<1>],[<3>]] uref=[]
008: After trying to delete a deleted value
009: name=String2 uset=[[<0>],[<1>],[<3>]] uref=[]
010: After add to other table + set of strong ref
011: name=String2 uset=[[<0>],[<1>],[<3>]] uref=[[<4>]]
012: End test
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1170"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1170: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:1170"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1170"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1170: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:1170"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1170"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:1170: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:1170: wait failed" >&5

    $as_echo "ovsdb-idl.at:1170" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:1170"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2170
#AT_START_2171
at_fn_group_banner 2171 'ovsdb-idl.at:1190' \
  "partial-set idl - Python2" "                      " 99
at_xfail=no
(
  $as_echo "2171. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:1190" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:1190"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1190: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:1190"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1190"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1190: ovsdb-client transact unix:socket '[\"idltest\", {\"op\":\"insert\", \"table\":\"simple3\", \"uuid-name\":\"newrow\",
                    \"row\":{\"name\":\"mySet1\",\"uset\":[\"set\", [[ \"uuid\", \"0005b872-f9e5-43be-ae02-3184b9680e75\" ]]]} },
               {\"op\":\"insert\", \"table\":\"simple4\", \"row\":{\"name\":\"seed\"}},
               {\"op\":\"mutate\", \"table\":\"simple3\", \"where\":[[\"_uuid\", \"==\", [\"named-uuid\", \"newrow\"]]],
                    \"mutations\": [[\"uset\", \"insert\", [\"set\", [[\"uuid\", \"000d2f6a-76af-412f-b59d-e7bcd3e84eff\"]]]]]}]'
"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:1190"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest", {"op":"insert", "table":"simple3", "uuid-name":"newrow",
                    "row":{"name":"mySet1","uset":["set", [[ "uuid", "0005b872-f9e5-43be-ae02-3184b9680e75" ]]]} },
               {"op":"insert", "table":"simple4", "row":{"name":"seed"}},
               {"op":"mutate", "table":"simple3", "where":[["_uuid", "==", ["named-uuid", "newrow"]]],
                    "mutations": [["uset", "insert", ["set", [["uuid", "000d2f6a-76af-412f-b59d-e7bcd3e84eff"]]]]]}]'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1190"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1190: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket 'partialrenamesetadd' 'partialduplicateadd' 'partialsetdel' 'partialsetref' 'partialsetoverrideops' 'partialsetadddelete' 'partialsetmutatenew'"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'partialrenamesetadd' 'partialduplicateadd' 'partialsetdel' 'partialsetref' 'partialsetoverrideops' 'partialsetadddelete' 'partialsetmutatenew'" "ovsdb-idl.at:1190"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'partialrenamesetadd' 'partialduplicateadd' 'partialsetdel' 'partialsetref' 'partialsetoverrideops' 'partialsetadddelete' 'partialsetmutatenew'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1190"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1190: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:1190"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: name=mySet1 uset=[<0> <1>]
001: commit, status=success
002: name=String2 uset=[<0> <1> <2>]
003: commit, status=success
004: name=String2 uset=[<0> <1> <2> <3>]
005: commit, status=success
006: name=String2 uset=[<0> <1> <3>]
007: commit, status=success
008: name=String2 uset=[<0> <1> <3>]
009: commit, status=success
010: name=String2 uset=[<3>]
011: commit, status=success
012: name=String2 uset=[<4> <5>]
013: commit, status=success
014: name=String2 uset=[<4> <5>]
014: name=String3 uset=[<6>]
015: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1190"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1190: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:1190"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1190"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1190: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:1190"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1190"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:1190: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:1190: wait failed" >&5

    $as_echo "ovsdb-idl.at:1190" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:1190"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2171
#AT_START_2172
at_fn_group_banner 2172 'ovsdb-idl.at:1190' \
  "partial-set idl - Python3" "                      " 99
at_xfail=no
(
  $as_echo "2172. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:1190" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:1190"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1190: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:1190"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1190"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1190: ovsdb-client transact unix:socket '[\"idltest\", {\"op\":\"insert\", \"table\":\"simple3\", \"uuid-name\":\"newrow\",
                    \"row\":{\"name\":\"mySet1\",\"uset\":[\"set\", [[ \"uuid\", \"0005b872-f9e5-43be-ae02-3184b9680e75\" ]]]} },
               {\"op\":\"insert\", \"table\":\"simple4\", \"row\":{\"name\":\"seed\"}},
               {\"op\":\"mutate\", \"table\":\"simple3\", \"where\":[[\"_uuid\", \"==\", [\"named-uuid\", \"newrow\"]]],
                    \"mutations\": [[\"uset\", \"insert\", [\"set\", [[\"uuid\", \"000d2f6a-76af-412f-b59d-e7bcd3e84eff\"]]]]]}]'
"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:1190"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest", {"op":"insert", "table":"simple3", "uuid-name":"newrow",
                    "row":{"name":"mySet1","uset":["set", [[ "uuid", "0005b872-f9e5-43be-ae02-3184b9680e75" ]]]} },
               {"op":"insert", "table":"simple4", "row":{"name":"seed"}},
               {"op":"mutate", "table":"simple3", "where":[["_uuid", "==", ["named-uuid", "newrow"]]],
                    "mutations": [["uset", "insert", ["set", [["uuid", "000d2f6a-76af-412f-b59d-e7bcd3e84eff"]]]]]}]'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1190"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1190: \$PYTHON3 \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket 'partialrenamesetadd' 'partialduplicateadd' 'partialsetdel' 'partialsetref' 'partialsetoverrideops' 'partialsetadddelete' 'partialsetmutatenew'"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'partialrenamesetadd' 'partialduplicateadd' 'partialsetdel' 'partialsetref' 'partialsetoverrideops' 'partialsetadddelete' 'partialsetmutatenew'" "ovsdb-idl.at:1190"
( $at_check_trace; $PYTHON3 $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'partialrenamesetadd' 'partialduplicateadd' 'partialsetdel' 'partialsetref' 'partialsetoverrideops' 'partialsetadddelete' 'partialsetmutatenew'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1190"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1190: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:1190"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: name=mySet1 uset=[<0> <1>]
001: commit, status=success
002: name=String2 uset=[<0> <1> <2>]
003: commit, status=success
004: name=String2 uset=[<0> <1> <2> <3>]
005: commit, status=success
006: name=String2 uset=[<0> <1> <3>]
007: commit, status=success
008: name=String2 uset=[<0> <1> <3>]
009: commit, status=success
010: name=String2 uset=[<3>]
011: commit, status=success
012: name=String2 uset=[<4> <5>]
013: commit, status=success
014: name=String2 uset=[<4> <5>]
014: name=String3 uset=[<6>]
015: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1190"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1190: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:1190"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1190"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1190: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:1190"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1190"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:1190: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:1190: wait failed" >&5

    $as_echo "ovsdb-idl.at:1190" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:1190"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2172
#AT_START_2173
at_fn_group_banner 2173 'ovsdb-idl.at:1262' \
  "simple idl verify notify - Python" "              " 99
at_xfail=no
(
  $as_echo "2173. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:1262" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:1262"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1262: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:1262"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1262"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1262: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema unix:socket 'track-notify' \\
    '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true,
               \"s\": \"mystring\",
               \"u\": [\"uuid\", \"84f5c8f5-ac76-4dbc-a24f-8860eb407fc1\"],
               \"ia\": [\"set\", [1, 2, 3]],
               \"ra\": [\"set\", [-0.5]],
               \"ba\": [\"set\", [true]],
               \"sa\": [\"set\", [\"abc\", \"def\"]],
               \"ua\": [\"set\", [[\"uuid\", \"69443985-7806-45e2-b35f-574a04e720f9\"],
                              [\"uuid\", \"aad11ef0-816a-4b01-93e6-03b8b4256b98\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [],
       \"row\": {\"b\": false}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [],
       \"row\": {\"r\": 123.5}}]' \\
    '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": -1,
               \"r\": 125,
               \"b\": false,
               \"s\": \"\",
               \"ia\": [\"set\", [1]],
               \"ra\": [\"set\", [1.5]],
               \"ba\": [\"set\", [false]],
               \"sa\": [\"set\", []],
               \"ua\": [\"set\", []]}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [[\"i\", \"<\", 1]],
       \"row\": {\"s\": \"newstring\"}}]' \\
    '[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"simple\",
       \"where\": [[\"i\", \"==\", 0]]}]' \\
    'reconnect'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:1262"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema unix:socket 'track-notify' \
    '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true,
               "s": "mystring",
               "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],
               "ia": ["set", [1, 2, 3]],
               "ra": ["set", [-0.5]],
               "ba": ["set", [true]],
               "sa": ["set", ["abc", "def"]],
               "ua": ["set", [["uuid", "69443985-7806-45e2-b35f-574a04e720f9"],
                              ["uuid", "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [],
       "row": {"b": false}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [],
       "row": {"r": 123.5}}]' \
    '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": -1,
               "r": 125,
               "b": false,
               "s": "",
               "ia": ["set", [1]],
               "ra": ["set", [1.5]],
               "ba": ["set", [false]],
               "sa": ["set", []],
               "ua": ["set", []]}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [["i", "<", 1]],
       "row": {"s": "newstring"}}]' \
    '["idltest",
      {"op": "delete",
       "table": "simple",
       "where": [["i", "==", 0]]}]' \
    'reconnect'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1262"
if $at_failed; then :
  kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1262: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:1262"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]}]}
002: event:create, row={i=0 r=0 b=false s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>}, updates=None
002: event:create, row={i=1 r=2 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>}, updates=None
002: i=0 r=0 b=false s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=2 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
003: {\"error\":null,\"result\":[{\"count\":2}]}
004: event:update, row={i=1 r=2 b=false s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>}, updates={b=true uuid=<0>}
004: i=0 r=0 b=false s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: i=1 r=2 b=false s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
005: {\"error\":null,\"result\":[{\"count\":2}]}
006: event:update, row={i=0 r=123.5 b=false s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>}, updates={r=0 uuid=<1>}
006: event:update, row={i=1 r=123.5 b=false s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>}, updates={r=2 uuid=<0>}
006: i=0 r=123.5 b=false s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
006: i=1 r=123.5 b=false s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
007: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<6>\"]}]}
008: event:create, row={i=-1 r=125 b=false s= u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>}, updates=None
008: i=-1 r=125 b=false s= u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
008: i=0 r=123.5 b=false s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
008: i=1 r=123.5 b=false s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
009: {\"error\":null,\"result\":[{\"count\":2}]}
010: event:update, row={i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>}, updates={s= uuid=<6>}
010: event:update, row={i=0 r=123.5 b=false s=newstring u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>}, updates={s= uuid=<1>}
010: i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
010: i=0 r=123.5 b=false s=newstring u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
010: i=1 r=123.5 b=false s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
011: {\"error\":null,\"result\":[{\"count\":1}]}
012: event:delete, row={i=0 r=123.5 b=false s=newstring u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>}, updates=None
012: i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
012: i=1 r=123.5 b=false s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
013: reconnect
014: event:create, row={i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>}, updates=None
014: event:create, row={i=1 r=123.5 b=false s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>}, updates=None
014: i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
014: i=1 r=123.5 b=false s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
015: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1262"
if $at_failed; then :
  kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1262: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:1262"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1262"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1262: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:1262"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1262"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:1262: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:1262: wait failed" >&5

    $as_echo "ovsdb-idl.at:1262" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:1262"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2173
#AT_START_2174
at_fn_group_banner 2174 'ovsdb-idl.at:1262' \
  "simple idl verify notify - SSL" "                 " 99
at_xfail=no
(
  $as_echo "2174. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "ovsdb-idl.at:1262" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:1262"
   $as_echo "ovsdb-idl.at:1262" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:1262"
   $PYTHON -c "import OpenSSL.SSL"
   SSL_PRESENT=$?
   $as_echo "ovsdb-idl.at:1262" >"$at_check_line_file"
(test $SSL_PRESENT != 0) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-idl.at:1262"

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1262: ovsdb-tool create db \$abs_srcdir/idltest.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_srcdir/idltest.ovsschema" "ovsdb-idl.at:1262"
( $at_check_trace; ovsdb-tool create db $abs_srcdir/idltest.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1262"
$at_failed && at_fn_log_failure
$at_traceon; }

   PKIDIR=$abs_top_builddir/tests
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1262: ovsdb-server -vconsole:warn --log-file --detach --no-chdir \\
             --pidfile \\
             --private-key=\$PKIDIR/testpki-privkey2.pem \\
             --certificate=\$PKIDIR/testpki-cert2.pem \\
             --ca-cert=\$PKIDIR/testpki-cacert.pem \\
             --remote=pssl:0:127.0.0.1 db"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:1262"
( $at_check_trace; ovsdb-server -vconsole:warn --log-file --detach --no-chdir \
             --pidfile \
             --private-key=$PKIDIR/testpki-privkey2.pem \
             --certificate=$PKIDIR/testpki-cert2.pem \
             --ca-cert=$PKIDIR/testpki-cacert.pem \
             --remote=pssl:0:127.0.0.1 db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1262"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
   $as_echo "ovsdb-idl.at:1262: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:1262: wait failed" >&5

    $as_echo "ovsdb-idl.at:1262" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:1262"
fi

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1262: \$PYTHON \$srcdir/test-ovsdb.py  -t10 idl \$srcdir/idltest.ovsschema \\
             ssl:127.0.0.1:\$TCP_PORT \$PKIDIR/testpki-privkey.pem \\
             \$PKIDIR/testpki-cert.pem \$PKIDIR/testpki-cacert.pem 'track-notify' \\
    '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": 1,
               \"r\": 2.0,
               \"b\": true,
               \"s\": \"mystring\",
               \"u\": [\"uuid\", \"84f5c8f5-ac76-4dbc-a24f-8860eb407fc1\"],
               \"ia\": [\"set\", [1, 2, 3]],
               \"ra\": [\"set\", [-0.5]],
               \"ba\": [\"set\", [true]],
               \"sa\": [\"set\", [\"abc\", \"def\"]],
               \"ua\": [\"set\", [[\"uuid\", \"69443985-7806-45e2-b35f-574a04e720f9\"],
                              [\"uuid\", \"aad11ef0-816a-4b01-93e6-03b8b4256b98\"]]]}},
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [],
       \"row\": {\"b\": false}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [],
       \"row\": {\"r\": 123.5}}]' \\
    '[\"idltest\",
      {\"op\": \"insert\",
       \"table\": \"simple\",
       \"row\": {\"i\": -1,
               \"r\": 125,
               \"b\": false,
               \"s\": \"\",
               \"ia\": [\"set\", [1]],
               \"ra\": [\"set\", [1.5]],
               \"ba\": [\"set\", [false]],
               \"sa\": [\"set\", []],
               \"ua\": [\"set\", []]}}]' \\
    '[\"idltest\",
      {\"op\": \"update\",
       \"table\": \"simple\",
       \"where\": [[\"i\", \"<\", 1]],
       \"row\": {\"s\": \"newstring\"}}]' \\
    '[\"idltest\",
      {\"op\": \"delete\",
       \"table\": \"simple\",
       \"where\": [[\"i\", \"==\", 0]]}]' \\
    'reconnect'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:1262"
( $at_check_trace; $PYTHON $srcdir/test-ovsdb.py  -t10 idl $srcdir/idltest.ovsschema \
             ssl:127.0.0.1:$TCP_PORT $PKIDIR/testpki-privkey.pem \
             $PKIDIR/testpki-cert.pem $PKIDIR/testpki-cacert.pem 'track-notify' \
    '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": 1,
               "r": 2.0,
               "b": true,
               "s": "mystring",
               "u": ["uuid", "84f5c8f5-ac76-4dbc-a24f-8860eb407fc1"],
               "ia": ["set", [1, 2, 3]],
               "ra": ["set", [-0.5]],
               "ba": ["set", [true]],
               "sa": ["set", ["abc", "def"]],
               "ua": ["set", [["uuid", "69443985-7806-45e2-b35f-574a04e720f9"],
                              ["uuid", "aad11ef0-816a-4b01-93e6-03b8b4256b98"]]]}},
      {"op": "insert",
       "table": "simple",
       "row": {}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [],
       "row": {"b": false}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [],
       "row": {"r": 123.5}}]' \
    '["idltest",
      {"op": "insert",
       "table": "simple",
       "row": {"i": -1,
               "r": 125,
               "b": false,
               "s": "",
               "ia": ["set", [1]],
               "ra": ["set", [1.5]],
               "ba": ["set", [false]],
               "sa": ["set", []],
               "ua": ["set", []]}}]' \
    '["idltest",
      {"op": "update",
       "table": "simple",
       "where": [["i", "<", 1]],
       "row": {"s": "newstring"}}]' \
    '["idltest",
      {"op": "delete",
       "table": "simple",
       "where": [["i", "==", 0]]}]' \
    'reconnect'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1262"
if $at_failed; then :
  kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1262: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:1262"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: empty
001: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<0>\"]},{\"uuid\":[\"uuid\",\"<1>\"]}]}
002: event:create, row={i=0 r=0 b=false s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>}, updates=None
002: event:create, row={i=1 r=2 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>}, updates=None
002: i=0 r=0 b=false s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
002: i=1 r=2 b=true s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
003: {\"error\":null,\"result\":[{\"count\":2}]}
004: event:update, row={i=1 r=2 b=false s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>}, updates={b=true uuid=<0>}
004: i=0 r=0 b=false s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
004: i=1 r=2 b=false s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
005: {\"error\":null,\"result\":[{\"count\":2}]}
006: event:update, row={i=0 r=123.5 b=false s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>}, updates={r=0 uuid=<1>}
006: event:update, row={i=1 r=123.5 b=false s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>}, updates={r=2 uuid=<0>}
006: i=0 r=123.5 b=false s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
006: i=1 r=123.5 b=false s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
007: {\"error\":null,\"result\":[{\"uuid\":[\"uuid\",\"<6>\"]}]}
008: event:create, row={i=-1 r=125 b=false s= u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>}, updates=None
008: i=-1 r=125 b=false s= u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
008: i=0 r=123.5 b=false s= u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
008: i=1 r=123.5 b=false s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
009: {\"error\":null,\"result\":[{\"count\":2}]}
010: event:update, row={i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>}, updates={s= uuid=<6>}
010: event:update, row={i=0 r=123.5 b=false s=newstring u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>}, updates={s= uuid=<1>}
010: i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
010: i=0 r=123.5 b=false s=newstring u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>
010: i=1 r=123.5 b=false s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
011: {\"error\":null,\"result\":[{\"count\":1}]}
012: event:delete, row={i=0 r=123.5 b=false s=newstring u=<2> ia=[] ra=[] ba=[] sa=[] ua=[] uuid=<1>}, updates=None
012: i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
012: i=1 r=123.5 b=false s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
013: reconnect
014: event:create, row={i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>}, updates=None
014: event:create, row={i=1 r=123.5 b=false s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>}, updates=None
014: i=-1 r=125 b=false s=newstring u=<2> ia=[1] ra=[1.5] ba=[false] sa=[] ua=[] uuid=<6>
014: i=1 r=123.5 b=false s=mystring u=<3> ia=[1 2 3] ra=[-0.5] ba=[true] sa=[abc def] ua=[<4> <5>] uuid=<0>
015: done
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1262"
if $at_failed; then :
  kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1262: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:1262"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1262"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1262: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:1262"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1262"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:1262: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:1262: wait failed" >&5

    $as_echo "ovsdb-idl.at:1262" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:1262"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2174
#AT_START_2175
at_fn_group_banner 2175 'ovsdb-idl.at:1385' \
  "Compound_index, single column test  - C" "        " 99
at_xfail=no
(
  $as_echo "2175. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1385: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:1385"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1385"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1385: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\", \"table\": \"simple\", \"row\": {\"s\":\"List000\", \"i\": 1, \"b\":true, \"r\":101.0}},
      {\"op\": \"insert\", \"table\": \"simple\", \"row\": {\"s\":\"List000\", \"i\": 2, \"b\":false, \"r\":102.0}},
      {\"op\": \"insert\", \"table\": \"simple\", \"row\": {\"s\":\"List000\", \"i\": 10, \"b\":true, \"r\":110.0}},
      {\"op\": \"insert\", \"table\": \"simple\", \"row\": {\"s\":\"List001\", \"i\": 1, \"b\":false, \"r\":110.0}},
      {\"op\": \"insert\", \"table\": \"simple\", \"row\": {\"s\":\"List001\", \"i\": 2, \"b\":true, \"r\":120.0}},
      {\"op\": \"insert\", \"table\": \"simple\", \"row\": {\"s\":\"List001\", \"i\": 2, \"b\":true, \"r\":122.0}},
      {\"op\": \"insert\", \"table\": \"simple\", \"row\": {\"s\":\"List001\", \"i\": 4, \"b\":true, \"r\":130.0}},
      {\"op\": \"insert\", \"table\": \"simple\", \"row\": {\"s\":\"List005\", \"i\": 5, \"b\":true, \"r\":130.0}},
      {\"op\": \"insert\", \"table\": \"simple\", \"row\": {\"s\":\"List020\", \"i\": 20, \"b\":true, \"r\":220.0}},
      {\"op\": \"insert\", \"table\": \"simple\", \"row\": {\"s\":\"List020\", \"i\": 19, \"b\":true, \"r\":219.0}}
      ]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:1385"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert", "table": "simple", "row": {"s":"List000", "i": 1, "b":true, "r":101.0}},
      {"op": "insert", "table": "simple", "row": {"s":"List000", "i": 2, "b":false, "r":102.0}},
      {"op": "insert", "table": "simple", "row": {"s":"List000", "i": 10, "b":true, "r":110.0}},
      {"op": "insert", "table": "simple", "row": {"s":"List001", "i": 1, "b":false, "r":110.0}},
      {"op": "insert", "table": "simple", "row": {"s":"List001", "i": 2, "b":true, "r":120.0}},
      {"op": "insert", "table": "simple", "row": {"s":"List001", "i": 2, "b":true, "r":122.0}},
      {"op": "insert", "table": "simple", "row": {"s":"List001", "i": 4, "b":true, "r":130.0}},
      {"op": "insert", "table": "simple", "row": {"s":"List005", "i": 5, "b":true, "r":130.0}},
      {"op": "insert", "table": "simple", "row": {"s":"List020", "i": 20, "b":true, "r":220.0}},
      {"op": "insert", "table": "simple", "row": {"s":"List020", "i": 19, "b":true, "r":219.0}}
      ]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1385"
if $at_failed; then :
  kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

# Generate the data to be tested.
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1385: test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 -c idl-compound-index unix:socket idl_compound_index_single_column"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:1385"
( $at_check_trace; test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 -c idl-compound-index unix:socket idl_compound_index_single_column
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1385"
if $at_failed; then :
  kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

# Filter the rows of data that corresponds to the string index eliminating the extra columns of data.
# This is done to verifiy that the output data is in the correct and expected order.
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1385: cat stdout | grep -oh '[0-9]\\{3\\}: s=.*' | sed -e 's/ i=.*//g'"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:1385"
( $at_check_trace; cat stdout | grep -oh '[0-9]\{3\}: s=.*' | sed -e 's/ i=.*//g'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "001: s=List000
001: s=List000
001: s=List000
001: s=List001
001: s=List001
001: s=List001
001: s=List001
001: s=List005
001: s=List020
001: s=List020
003: s=List001
003: s=List001
003: s=List001
003: s=List001
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1385"
if $at_failed; then :
  kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

# Here, the data is filtered and sorted in order to have all the rows in the index and be
# able to determined that all the involved rows are present.
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1385: cat stdout | grep -oh '[0-9]\\{3\\}: s=.*' | sort -k 1,1n -k 2,2 -k 3,3"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:1385"
( $at_check_trace; cat stdout | grep -oh '[0-9]\{3\}: s=.*' | sort -k 1,1n -k 2,2 -k 3,3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "001: s=List000 i=1 b=True r=101.000000
001: s=List000 i=10 b=True r=110.000000
001: s=List000 i=2 b=False r=102.000000
001: s=List001 i=1 b=False r=110.000000
001: s=List001 i=2 b=True r=120.000000
001: s=List001 i=2 b=True r=122.000000
001: s=List001 i=4 b=True r=130.000000
001: s=List005 i=5 b=True r=130.000000
001: s=List020 i=19 b=True r=219.000000
001: s=List020 i=20 b=True r=220.000000
003: s=List001 i=1 b=False r=110.000000
003: s=List001 i=2 b=True r=120.000000
003: s=List001 i=2 b=True r=122.000000
003: s=List001 i=4 b=True r=130.000000
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1385"
if $at_failed; then :
  kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

# Filter the rows of data that corresponds to the integer index eliminating the extra columns of data.
# This is done to verifiy that the output data is in the correct and expected order.
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1385: cat stdout | grep -oh '[0-9]\\{3\\}: i=.*' | sed -e 's/ s=.*//g'"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:1385"
( $at_check_trace; cat stdout | grep -oh '[0-9]\{3\}: i=.*' | sed -e 's/ s=.*//g'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "002: i=1
002: i=1
002: i=2
002: i=2
002: i=2
002: i=4
002: i=5
002: i=10
002: i=19
002: i=20
004: i=5
005: i=4
005: i=5
006: i=5
006: i=10
006: i=19
006: i=20
006: i=54
007: i=1
007: i=1
007: i=2
007: i=2
007: i=2
007: i=5
007: i=10
007: i=19
007: i=20
007: i=54
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1385"
if $at_failed; then :
  kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

# Here again, the data is filtered and sorted in order to have all the rows in the index and be
# able to determined that all the involved rows are present.
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1385: cat stdout | grep -oh '[0-9]\\{3\\}: i=.*' | sort -k 1,1n -k 2,2 -k 3,3"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:1385"
( $at_check_trace; cat stdout | grep -oh '[0-9]\{3\}: i=.*' | sort -k 1,1n -k 2,2 -k 3,3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "002: i=1 s=List000 b=True r=101.000000
002: i=1 s=List001 b=False r=110.000000
002: i=10 s=List000 b=True r=110.000000
002: i=19 s=List020 b=True r=219.000000
002: i=2 s=List000 b=False r=102.000000
002: i=2 s=List001 b=True r=120.000000
002: i=2 s=List001 b=True r=122.000000
002: i=20 s=List020 b=True r=220.000000
002: i=4 s=List001 b=True r=130.000000
002: i=5 s=List005 b=True r=130.000000
004: i=5 s=List005 b=True r=130.000000
005: i=4 s=List001 b=True r=130.000000
005: i=5 s=List005 b=True r=130.000000
006: i=10 s=List000 b=True r=110.000000
006: i=19 s=List020 b=True r=219.000000
006: i=20 s=List020 b=True r=220.000000
006: i=5 s=List005 b=True r=130.000000
006: i=54 s=Lista054 b=False r=0.000000
007: i=1 s=List000 b=True r=101.000000
007: i=1 s=List001 b=False r=110.000000
007: i=10 s=List000 b=True r=110.000000
007: i=19 s=List020 b=True r=219.000000
007: i=2 s=List000 b=False r=102.000000
007: i=2 s=List001 b=True r=120.000000
007: i=2 s=List001 b=True r=122.000000
007: i=20 s=List020 b=True r=220.000000
007: i=5 s=List005 b=True r=130.000000
007: i=54 s=Lista054 b=False r=0.000000
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1385"
if $at_failed; then :
  kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1385: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:1385"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1385"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1385: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:1385"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1385"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:1385: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:1385: wait failed" >&5

    $as_echo "ovsdb-idl.at:1385" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:1385"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2175
#AT_START_2176
at_fn_group_banner 2176 'ovsdb-idl.at:1522' \
  "Compound_index, double column test  - C" "        " 99
at_xfail=no
(
  $as_echo "2176. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1522: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:1522"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1522"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1522: ovsdb-client transact unix:socket '[\"idltest\",
      {\"op\": \"insert\", \"table\": \"simple\", \"row\": {\"s\":\"List000\", \"i\": 1, \"b\":true, \"r\":101.0}},
      {\"op\": \"insert\", \"table\": \"simple\", \"row\": {\"s\":\"List000\", \"i\": 2, \"b\":false, \"r\":102.0}},
      {\"op\": \"insert\", \"table\": \"simple\", \"row\": {\"s\":\"List000\", \"i\": 10, \"b\":true, \"r\":110.0}},
      {\"op\": \"insert\", \"table\": \"simple\", \"row\": {\"s\":\"List001\", \"i\": 1, \"b\":false, \"r\":110.0}},
      {\"op\": \"insert\", \"table\": \"simple\", \"row\": {\"s\":\"List001\", \"i\": 2, \"b\":true, \"r\":120.0}},
      {\"op\": \"insert\", \"table\": \"simple\", \"row\": {\"s\":\"List001\", \"i\": 2, \"b\":true, \"r\":122.0}},
      {\"op\": \"insert\", \"table\": \"simple\", \"row\": {\"s\":\"List001\", \"i\": 4, \"b\":true, \"r\":130.0}},
      {\"op\": \"insert\", \"table\": \"simple\", \"row\": {\"s\":\"List005\", \"i\": 5, \"b\":true, \"r\":130.0}},
      {\"op\": \"insert\", \"table\": \"simple\", \"row\": {\"s\":\"List020\", \"i\": 20, \"b\":true, \"r\":220.0}},
      {\"op\": \"insert\", \"table\": \"simple\", \"row\": {\"s\":\"List020\", \"i\": 19, \"b\":true, \"r\":219.0}}
      ]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-idl.at:1522"
( $at_check_trace; ovsdb-client transact unix:socket '["idltest",
      {"op": "insert", "table": "simple", "row": {"s":"List000", "i": 1, "b":true, "r":101.0}},
      {"op": "insert", "table": "simple", "row": {"s":"List000", "i": 2, "b":false, "r":102.0}},
      {"op": "insert", "table": "simple", "row": {"s":"List000", "i": 10, "b":true, "r":110.0}},
      {"op": "insert", "table": "simple", "row": {"s":"List001", "i": 1, "b":false, "r":110.0}},
      {"op": "insert", "table": "simple", "row": {"s":"List001", "i": 2, "b":true, "r":120.0}},
      {"op": "insert", "table": "simple", "row": {"s":"List001", "i": 2, "b":true, "r":122.0}},
      {"op": "insert", "table": "simple", "row": {"s":"List001", "i": 4, "b":true, "r":130.0}},
      {"op": "insert", "table": "simple", "row": {"s":"List005", "i": 5, "b":true, "r":130.0}},
      {"op": "insert", "table": "simple", "row": {"s":"List020", "i": 20, "b":true, "r":220.0}},
      {"op": "insert", "table": "simple", "row": {"s":"List020", "i": 19, "b":true, "r":219.0}}
      ]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1522"
if $at_failed; then :
  kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

# Generate the data to be tested.
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1522: test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 -c idl-compound-index unix:socket idl_compound_index_double_column"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:1522"
( $at_check_trace; test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 -c idl-compound-index unix:socket idl_compound_index_double_column
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1522"
if $at_failed; then :
  kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

# Filter the rows of data that corresponds to the string-integer index eliminating the extra columns of data.
# This is done to verifiy that the output data is in the correct and expected order.
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1522: cat stdout | grep -oh '[0-9]\\{3\\}: s=.*' | sed -e 's/ b=.*//g'"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:1522"
( $at_check_trace; cat stdout | grep -oh '[0-9]\{3\}: s=.*' | sed -e 's/ b=.*//g'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "001: s=List000 i=1
001: s=List000 i=2
001: s=List000 i=10
001: s=List001 i=1
001: s=List001 i=2
001: s=List001 i=2
001: s=List001 i=4
001: s=List005 i=5
001: s=List020 i=19
001: s=List020 i=20
002: s=List000 i=10
002: s=List000 i=2
002: s=List000 i=1
002: s=List001 i=4
002: s=List001 i=2
002: s=List001 i=2
002: s=List001 i=1
002: s=List005 i=5
002: s=List020 i=20
002: s=List020 i=19
003: s=List000 i=10
004: s=List001 i=1
004: s=List001 i=2
004: s=List001 i=2
004: s=List001 i=4
004: s=List005 i=5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1522"
if $at_failed; then :
  kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

# Here, the data is filtered and sorted in order to have all the rows in the index and be
# able to determined that all the involved rows are present.
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1522: cat stdout | grep -oh '[0-9]\\{3\\}: s=.*' | sort -k 1,1n -k 2,2 -k 3,3"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:1522"
( $at_check_trace; cat stdout | grep -oh '[0-9]\{3\}: s=.*' | sort -k 1,1n -k 2,2 -k 3,3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "001: s=List000 i=1 b=True r=101.000000
001: s=List000 i=10 b=True r=110.000000
001: s=List000 i=2 b=False r=102.000000
001: s=List001 i=1 b=False r=110.000000
001: s=List001 i=2 b=True r=120.000000
001: s=List001 i=2 b=True r=122.000000
001: s=List001 i=4 b=True r=130.000000
001: s=List005 i=5 b=True r=130.000000
001: s=List020 i=19 b=True r=219.000000
001: s=List020 i=20 b=True r=220.000000
002: s=List000 i=1 b=True r=101.000000
002: s=List000 i=10 b=True r=110.000000
002: s=List000 i=2 b=False r=102.000000
002: s=List001 i=1 b=False r=110.000000
002: s=List001 i=2 b=True r=120.000000
002: s=List001 i=2 b=True r=122.000000
002: s=List001 i=4 b=True r=130.000000
002: s=List005 i=5 b=True r=130.000000
002: s=List020 i=19 b=True r=219.000000
002: s=List020 i=20 b=True r=220.000000
003: s=List000 i=10 b=True r=110.000000
004: s=List001 i=1 b=False r=110.000000
004: s=List001 i=2 b=True r=120.000000
004: s=List001 i=2 b=True r=122.000000
004: s=List001 i=4 b=True r=130.000000
004: s=List005 i=5 b=True r=130.000000
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1522"
if $at_failed; then :
  kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

# Filter the rows of data that corresponds to the integer index eliminating the extra columns of data.
# This is done to verifiy that the output data is in the correct and expected order.
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1522: cat stdout | grep -oh '[0-9]\\{3\\}: i=.*' | sed -e 's/ b=.*//g'"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:1522"
( $at_check_trace; cat stdout | grep -oh '[0-9]\{3\}: i=.*' | sed -e 's/ b=.*//g'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "005: i=1 s=List000
005: i=1 s=List001
005: i=2 s=List000
005: i=2 s=List001
005: i=2 s=List001
005: i=4 s=List001
005: i=5 s=List005
005: i=10 s=List000
005: i=19 s=List020
005: i=20 s=List020
006: i=20 s=List020
006: i=19 s=List020
006: i=10 s=List000
006: i=5 s=List005
006: i=4 s=List001
006: i=2 s=List000
006: i=2 s=List001
006: i=2 s=List001
006: i=1 s=List000
006: i=1 s=List001
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1522"
if $at_failed; then :
  kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

# Here again, the data is filtered and sorted in order to have all the rows in the index and be
# able to determined that all the involved rows are present.
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1522: cat stdout | grep -oh '[0-9]\\{3\\}: i=.*' | sort -k 1,1n -k 2,2 -k 3,3"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:1522"
( $at_check_trace; cat stdout | grep -oh '[0-9]\{3\}: i=.*' | sort -k 1,1n -k 2,2 -k 3,3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "005: i=1 s=List000 b=True r=101.000000
005: i=1 s=List001 b=False r=110.000000
005: i=10 s=List000 b=True r=110.000000
005: i=19 s=List020 b=True r=219.000000
005: i=2 s=List000 b=False r=102.000000
005: i=2 s=List001 b=True r=120.000000
005: i=2 s=List001 b=True r=122.000000
005: i=20 s=List020 b=True r=220.000000
005: i=4 s=List001 b=True r=130.000000
005: i=5 s=List005 b=True r=130.000000
006: i=1 s=List000 b=True r=101.000000
006: i=1 s=List001 b=False r=110.000000
006: i=10 s=List000 b=True r=110.000000
006: i=19 s=List020 b=True r=219.000000
006: i=2 s=List000 b=False r=102.000000
006: i=2 s=List001 b=True r=120.000000
006: i=2 s=List001 b=True r=122.000000
006: i=20 s=List020 b=True r=220.000000
006: i=4 s=List001 b=True r=130.000000
006: i=5 s=List005 b=True r=130.000000
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1522"
if $at_failed; then :
  kill `cat pid`
fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1522: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:1522"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1522"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1522: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:1522"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1522"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:1522: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:1522: wait failed" >&5

    $as_echo "ovsdb-idl.at:1522" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:1522"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2176
#AT_START_2177
at_fn_group_banner 2177 'ovsdb-idl.at:1646' \
  "set, simple3 idl-compound-index-with-ref, initially populated - C" "" 99
at_xfail=no
(
  $as_echo "2177. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1646: ovsdb_start_idltest"
at_fn_check_prepare_trace "ovsdb-idl.at:1646"
( $at_check_trace; ovsdb_start_idltest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1646"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1646: test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 -c idl-compound-index-with-ref unix:socket "
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:1646"
( $at_check_trace; test-ovsdb '-vPATTERN:console:test-ovsdb|%c|%m' -vjsonrpc -t10 -c idl-compound-index-with-ref unix:socket
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1646"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1646: sort stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovsdb-idl.at:1646"
( $at_check_trace; sort stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "000: After add to other table + set of strong ref
001: name= uset=[] uref=[[<0>]]
002: check simple4: not empty
003: Query using index with reference
004: name= uset=[] uref=[[<0>]]
005: After delete
007: check simple4: empty
008: End test
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1646"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1646: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-idl.at:1646"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1646"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-idl.at:1646: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-idl.at:1646"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-idl.at:1646"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-idl.at:1646: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-idl.at:1646: wait failed" >&5

    $as_echo "ovsdb-idl.at:1646" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-idl.at:1646"
fi

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2177
#AT_START_2178
at_fn_group_banner 2178 'ovsdb-lock.at:21' \
  "ovsdb lock -- lock" "                             " 100
at_xfail=no
(
  $as_echo "2178. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

    $as_echo "ovsdb-lock.at:21" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-lock.at:21"

    ordinal_schema > schema
    { set +x
$as_echo "$at_srcdir/ovsdb-lock.at:21: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-lock.at:21"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-lock.at:21"
$at_failed && at_fn_log_failure
$at_traceon; }


    { set +x
$as_echo "$at_srcdir/ovsdb-lock.at:21: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket --log-file=\"\`pwd\`\"/ovsdb-server-log db >/dev/null 2>&1"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-lock.at:21"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket --log-file="`pwd`"/ovsdb-server-log db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-lock.at:21"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-lock.at:22: ovsdb-client --detach lock unix:socket lock0 >c1-output 2>&1"
at_fn_check_prepare_trace "ovsdb-lock.at:22"
( $at_check_trace; ovsdb-client --detach lock unix:socket lock0 >c1-output 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-lock.at:22"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-lock.at:24: ovsdb-client --detach lock unix:socket lock1 >c2-output 2>&1"
at_fn_check_prepare_trace "ovsdb-lock.at:24"
( $at_check_trace; ovsdb-client --detach lock unix:socket lock1 >c2-output 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-lock.at:24"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-lock.at:26: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovsdb-lock.at:26"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-lock.at:26"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-lock.at:26: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-lock.at:26"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-lock.at:26"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   $as_echo "ovsdb-lock.at:26: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-lock.at:26: wait failed" >&5

    $as_echo "ovsdb-lock.at:26" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-lock.at:26"
fi

{ set +x
$as_echo "$at_srcdir/ovsdb-lock.at:27: cat c1-output"
at_fn_check_prepare_trace "ovsdb-lock.at:27"
( $at_check_trace; cat c1-output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"locked\":true}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-lock.at:27"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-lock.at:29: cat c2-output"
at_fn_check_prepare_trace "ovsdb-lock.at:29"
( $at_check_trace; cat c2-output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"locked\":true}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-lock.at:29"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2178
#AT_START_2179
at_fn_group_banner 2179 'ovsdb-lock.at:37' \
  "ovsdb lock -- unlock" "                           " 100
at_xfail=no
(
  $as_echo "2179. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

    $as_echo "ovsdb-lock.at:37" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-lock.at:37"

    ordinal_schema > schema
    { set +x
$as_echo "$at_srcdir/ovsdb-lock.at:37: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-lock.at:37"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-lock.at:37"
$at_failed && at_fn_log_failure
$at_traceon; }


    { set +x
$as_echo "$at_srcdir/ovsdb-lock.at:37: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket --log-file=\"\`pwd\`\"/ovsdb-server-log db >/dev/null 2>&1"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-lock.at:37"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket --log-file="`pwd`"/ovsdb-server-log db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-lock.at:37"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-lock.at:38: ovsdb-client --detach --pidfile lock unix:socket lock0 >c1-output 2>&1"
at_fn_check_prepare_trace "ovsdb-lock.at:38"
( $at_check_trace; ovsdb-client --detach --pidfile lock unix:socket lock0 >c1-output 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-lock.at:38"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-lock.at:40: ovsdb-client --detach lock unix:socket lock0 >c2-output 2>&1"
at_fn_check_prepare_trace "ovsdb-lock.at:40"
( $at_check_trace; ovsdb-client --detach lock unix:socket lock0 >c2-output 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-lock.at:40"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-lock.at:42: ovs-appctl -t ovsdb-client unlock lock0"
at_fn_check_prepare_trace "ovsdb-lock.at:42"
( $at_check_trace; ovs-appctl -t ovsdb-client unlock lock0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-lock.at:42"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-lock.at:43: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovsdb-lock.at:43"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-lock.at:43"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-lock.at:43: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-lock.at:43"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-lock.at:43"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   $as_echo "ovsdb-lock.at:43: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-lock.at:43: wait failed" >&5

    $as_echo "ovsdb-lock.at:43" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-lock.at:43"
fi

{ set +x
$as_echo "$at_srcdir/ovsdb-lock.at:44: cat c1-output"
at_fn_check_prepare_trace "ovsdb-lock.at:44"
( $at_check_trace; cat c1-output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"locked\":true}
{}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-lock.at:44"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-lock.at:47: cat c2-output"
at_fn_check_prepare_trace "ovsdb-lock.at:47"
( $at_check_trace; cat c2-output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"locked\":false}
locked
[\"lock0\"]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-lock.at:47"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2179
#AT_START_2180
at_fn_group_banner 2180 'ovsdb-lock.at:57' \
  "ovsdb lock -- steal" "                            " 100
at_xfail=no
(
  $as_echo "2180. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

    $as_echo "ovsdb-lock.at:57" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-lock.at:57"

    ordinal_schema > schema
    { set +x
$as_echo "$at_srcdir/ovsdb-lock.at:57: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-lock.at:57"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-lock.at:57"
$at_failed && at_fn_log_failure
$at_traceon; }


    { set +x
$as_echo "$at_srcdir/ovsdb-lock.at:57: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket --log-file=\"\`pwd\`\"/ovsdb-server-log db >/dev/null 2>&1"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovsdb-lock.at:57"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket --log-file="`pwd`"/ovsdb-server-log db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-lock.at:57"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-lock.at:58: ovsdb-client --detach lock unix:socket lock0 >c1-output 2>&1"
at_fn_check_prepare_trace "ovsdb-lock.at:58"
( $at_check_trace; ovsdb-client --detach lock unix:socket lock0 >c1-output 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-lock.at:58"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-lock.at:60: ovsdb-client --detach --pidfile steal unix:socket lock0 >c2-output 2>&1"
at_fn_check_prepare_trace "ovsdb-lock.at:60"
( $at_check_trace; ovsdb-client --detach --pidfile steal unix:socket lock0 >c2-output 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-lock.at:60"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-lock.at:62: ovs-appctl -t ovsdb-client unlock lock0"
at_fn_check_prepare_trace "ovsdb-lock.at:62"
( $at_check_trace; ovs-appctl -t ovsdb-client unlock lock0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-lock.at:62"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-lock.at:63: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovsdb-lock.at:63"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-lock.at:63"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-lock.at:63: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-lock.at:63"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-lock.at:63"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

   $as_echo "ovsdb-lock.at:63: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-lock.at:63: wait failed" >&5

    $as_echo "ovsdb-lock.at:63" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-lock.at:63"
fi

{ set +x
$as_echo "$at_srcdir/ovsdb-lock.at:64: cat c1-output"
at_fn_check_prepare_trace "ovsdb-lock.at:64"
( $at_check_trace; cat c1-output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"locked\":true}
stolen
[\"lock0\"]
locked
[\"lock0\"]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-lock.at:64"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-lock.at:70: cat c2-output"
at_fn_check_prepare_trace "ovsdb-lock.at:70"
( $at_check_trace; cat c2-output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{\"locked\":true}
{}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-lock.at:70"
$at_failed && at_fn_log_failure  \
"ovsdb-server-log"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2180
#AT_START_2181
at_fn_group_banner 2181 'ovsdb-rbac.at:3' \
  "ovsdb-server/rbac 2" "                            " 101
at_xfail=no
(
  $as_echo "2181. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


$as_echo "ovsdb-rbac.at:5" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovsdb-rbac.at:5"

RBAC_PKIDIR="$(pwd)"
RBAC_PKI="sh $abs_top_srcdir/utilities/ovs-pki.in --dir=$RBAC_PKIDIR/pki --log=$RBAC_PKIDIR/rbac-pki.log"
$RBAC_PKI -B 1024 init
$RBAC_PKI -B 1024 req+sign ovsdb-server switch
$RBAC_PKI -B 1024 -u req+sign client-1 switch
$RBAC_PKI -B 1024 -u req+sign client-2 switch

cat >schema <<'_ATEOF'
{"name": "mydb",
     "tables": {
       "Root": {
         "columns": {
           "connections": {
             "type": {
               "key": {"type": "uuid", "refTable": "Connection"},
               "min": 0,
               "max": "unlimited"}}},
          "isRoot": true},
       "Connection": {
         "columns": {
           "target": {
             "type": "string"},
           "role": {
             "type": "string"}}},
        "RBAC_Role": {
            "columns": {
                "name": {"type": "string"},
                "permissions": {
                    "type": {"key": {"type": "string"},
                             "value": {"type": "uuid",
                                       "refTable": "RBAC_Permission",
                                       "refType": "weak"},
                                     "min": 0, "max": "unlimited"}}},
            "isRoot": true},
        "RBAC_Permission": {
            "columns": {
                "table": {"type": "string"},
                "authorization": {"type": {"key": "string",
                                           "min": 0,
                                           "max": "unlimited"}},
                "insert_delete": {"type": "boolean"},
                "update" : {"type": {"key": "string",
                                     "min": 0,
                                     "max": "unlimited"}}},
            "isRoot": true},
       "fixed_colors": {
         "columns": {
           "name": {"type": "string"}, "value": {"type": "integer"}},
         "indexes": [["name"]],
         "isRoot": true},
       "user_colors": {
         "columns": {
           "creator": {"type": "string"},
           "name": {"type": "string"},
           "value": {"type": "integer"}},
         "indexes": [["name"]],
         "isRoot": true},
       "other_colors": {
         "columns": {
           "creator": {
             "type": {"key": {"type": "string"},
                      "value": {"type": "string"},
                      "min": 0, "max": "unlimited"}},
           "name": {"type": "string"},
           "value": {"type": "integer"}},
         "indexes": [["name"]],
         "isRoot": true}
    },
     "version": "5.1.3",
     "cksum": "12345678 9"
}
_ATEOF


{ set +x
$as_echo "$at_srcdir/ovsdb-rbac.at:80: ovsdb-tool create db schema"
at_fn_check_prepare_trace "ovsdb-rbac.at:80"
( $at_check_trace; ovsdb-tool create db schema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-rbac.at:80"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovsdb-rbac.at:81: ovsdb-tool transact db \\
     '[\"mydb\",
       {\"op\": \"insert\",
        \"table\": \"Root\",
        \"row\": {
          \"connections\": [\"set\", [[\"named-uuid\", \"x\"]]]}},
       {\"op\": \"insert\",
        \"table\": \"Connection\",
        \"uuid-name\": \"x\",
        \"row\": {\"target\": \"pssl:0:127.0.0.1\",
                \"role\": \"testrole\"}},
       {\"op\": \"insert\",
        \"table\": \"fixed_colors\",
        \"row\": {\"name\": \"red\",
                \"value\": '16711680'}},
       {\"op\": \"insert\",
        \"table\": \"RBAC_Role\",
        \"row\": {\"name\": \"testrole\",
                \"permissions\": [\"map\", [[\"user_colors\", [\"named-uuid\", \"y\"]],
                                        [\"other_colors\", [\"named-uuid\", \"z\"]]]]}},
       {\"op\": \"insert\",
        \"table\": \"RBAC_Permission\",
        \"uuid-name\": \"y\",
        \"row\": {\"authorization\": \"creator\",
                \"insert_delete\": true,
                \"table\": \"user_colors\",
                \"update\": [\"set\", [\"name\", \"value\"]]}},
       {\"op\": \"insert\",
        \"table\": \"RBAC_Permission\",
        \"uuid-name\": \"z\",
        \"row\": {\"authorization\": \"creator:chassis\",
                \"insert_delete\": true,
                \"table\": \"user_colors\",
                \"update\": [\"set\", [\"name\", \"value\"]]}}
]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-rbac.at:81"
( $at_check_trace; ovsdb-tool transact db \
     '["mydb",
       {"op": "insert",
        "table": "Root",
        "row": {
          "connections": ["set", [["named-uuid", "x"]]]}},
       {"op": "insert",
        "table": "Connection",
        "uuid-name": "x",
        "row": {"target": "pssl:0:127.0.0.1",
                "role": "testrole"}},
       {"op": "insert",
        "table": "fixed_colors",
        "row": {"name": "red",
                "value": '16711680'}},
       {"op": "insert",
        "table": "RBAC_Role",
        "row": {"name": "testrole",
                "permissions": ["map", [["user_colors", ["named-uuid", "y"]],
                                        ["other_colors", ["named-uuid", "z"]]]]}},
       {"op": "insert",
        "table": "RBAC_Permission",
        "uuid-name": "y",
        "row": {"authorization": "creator",
                "insert_delete": true,
                "table": "user_colors",
                "update": ["set", ["name", "value"]]}},
       {"op": "insert",
        "table": "RBAC_Permission",
        "uuid-name": "z",
        "row": {"authorization": "creator:chassis",
                "insert_delete": true,
                "table": "user_colors",
                "update": ["set", ["name", "value"]]}}
]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-rbac.at:81"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-rbac.at:118: ovsdb-server --log-file --detach --no-chdir --pidfile --remote=db:mydb,Root,connections \\
        --private-key=\$RBAC_PKIDIR/ovsdb-server-privkey.pem \\
        --certificate=\$RBAC_PKIDIR/ovsdb-server-cert.pem \\
        --ca-cert=\$RBAC_PKIDIR/pki/switchca/cacert.pem \\
        db"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-rbac.at:118"
( $at_check_trace; ovsdb-server --log-file --detach --no-chdir --pidfile --remote=db:mydb,Root,connections \
        --private-key=$RBAC_PKIDIR/ovsdb-server-privkey.pem \
        --certificate=$RBAC_PKIDIR/ovsdb-server-cert.pem \
        --ca-cert=$RBAC_PKIDIR/pki/switchca/cacert.pem \
        db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-rbac.at:118"
$at_failed && at_fn_log_failure
$at_traceon; }

$as_echo "ovsdb-rbac.at:123: waiting until SSL_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$SSL_PORT\"..." >&5
ovs_wait_cond () {
    SSL_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$SSL_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovsdb-rbac.at:123: wait failed" >&5

    $as_echo "ovsdb-rbac.at:123" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-rbac.at:123"
fi


# Test 1:
# Attempt to insert a row into the "fixed_colors" table.  This should
# fail as there are no permissions for role "testrole" for this table.
{ set +x
$as_echo "$at_srcdir/ovsdb-rbac.at:128: ovsdb-client transact ssl:127.0.0.1:\$SSL_PORT \\
        --private-key=\$RBAC_PKIDIR/client-1-privkey.pem \\
        --certificate=\$RBAC_PKIDIR/client-1-cert.pem \\
        --ca-cert=\$RBAC_PKIDIR/pki/switchca/cacert.pem \\
        '[\"mydb\",
         {\"op\": \"insert\",
          \"table\": \"fixed_colors\",
          \"row\": {\"name\": \"chartreuse\", \"value\": '8388352'}}
         ]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-rbac.at:128"
( $at_check_trace; ovsdb-client transact ssl:127.0.0.1:$SSL_PORT \
        --private-key=$RBAC_PKIDIR/client-1-privkey.pem \
        --certificate=$RBAC_PKIDIR/client-1-cert.pem \
        --ca-cert=$RBAC_PKIDIR/pki/switchca/cacert.pem \
        '["mydb",
         {"op": "insert",
          "table": "fixed_colors",
          "row": {"name": "chartreuse", "value": '8388352'}}
         ]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-rbac.at:128"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-rbac.at:138: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-rbac.at:138"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"details\":\"RBAC rules for client \\\"client-1\\\" role \\\"testrole\\\" prohibit row insertion into table \\\"fixed_colors\\\".\",\"error\":\"permission error\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-rbac.at:138"
$at_failed && at_fn_log_failure
$at_traceon; }


# Test 2:
# Attempt to insert a row into the "user_colors" table with a client ID that
# does not match the value in the column used for authorization.  This should
# fail the authorization check for insertion.
{ set +x
$as_echo "$at_srcdir/ovsdb-rbac.at:145: ovsdb-client transact ssl:127.0.0.1:\$SSL_PORT \\
        --private-key=\$RBAC_PKIDIR/client-1-privkey.pem \\
        --certificate=\$RBAC_PKIDIR/client-1-cert.pem \\
        --ca-cert=\$RBAC_PKIDIR/pki/switchca/cacert.pem \\
        '[\"mydb\",
         {\"op\": \"insert\",
          \"table\": \"user_colors\",
          \"row\": {\"creator\": \"client-2\", \"name\": \"chartreuse\", \"value\": '8388352'}}
         ]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-rbac.at:145"
( $at_check_trace; ovsdb-client transact ssl:127.0.0.1:$SSL_PORT \
        --private-key=$RBAC_PKIDIR/client-1-privkey.pem \
        --certificate=$RBAC_PKIDIR/client-1-cert.pem \
        --ca-cert=$RBAC_PKIDIR/pki/switchca/cacert.pem \
        '["mydb",
         {"op": "insert",
          "table": "user_colors",
          "row": {"creator": "client-2", "name": "chartreuse", "value": '8388352'}}
         ]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-rbac.at:145"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-rbac.at:155: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-rbac.at:155"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"details\":\"RBAC rules for client \\\"client-1\\\" role \\\"testrole\\\" prohibit row insertion into table \\\"user_colors\\\".\",\"error\":\"permission error\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-rbac.at:155"
$at_failed && at_fn_log_failure
$at_traceon; }


# Test 3:
# Attempt to insert a row into the "user_colors" table.  This should
# succeed since role "testrole" has permissions for this table that
# allow row insertion.
{ set +x
$as_echo "$at_srcdir/ovsdb-rbac.at:162: ovsdb-client transact ssl:127.0.0.1:\$SSL_PORT \\
        --private-key=\$RBAC_PKIDIR/client-1-privkey.pem \\
        --certificate=\$RBAC_PKIDIR/client-1-cert.pem \\
        --ca-cert=\$RBAC_PKIDIR/pki/switchca/cacert.pem \\
        '[\"mydb\",
         {\"op\": \"insert\",
          \"table\": \"user_colors\",
          \"row\": {\"creator\": \"client-1\", \"name\": \"chartreuse\", \"value\": '8388352'}}
         ]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-rbac.at:162"
( $at_check_trace; ovsdb-client transact ssl:127.0.0.1:$SSL_PORT \
        --private-key=$RBAC_PKIDIR/client-1-privkey.pem \
        --certificate=$RBAC_PKIDIR/client-1-cert.pem \
        --ca-cert=$RBAC_PKIDIR/pki/switchca/cacert.pem \
        '["mydb",
         {"op": "insert",
          "table": "user_colors",
          "row": {"creator": "client-1", "name": "chartreuse", "value": '8388352'}}
         ]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-rbac.at:162"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-rbac.at:172: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-rbac.at:172"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-rbac.at:172"
$at_failed && at_fn_log_failure
$at_traceon; }


# Test 4:
# Attempt to update a column in the "user_colors" table.  This should
# succeed since role "testrole" has permissions for this table that
# allow update of the "value" column when ID is equal to the value in
# the "creator" column.
{ set +x
$as_echo "$at_srcdir/ovsdb-rbac.at:180: ovsdb-client transact ssl:127.0.0.1:\$SSL_PORT \\
        --private-key=\$RBAC_PKIDIR/client-1-privkey.pem \\
        --certificate=\$RBAC_PKIDIR/client-1-cert.pem \\
        --ca-cert=\$RBAC_PKIDIR/pki/switchca/cacert.pem \\
        '[\"mydb\",
         {\"op\": \"update\",
          \"table\": \"user_colors\",
          \"where\": [[\"name\", \"==\", \"chartreuse\"]],
          \"row\": {\"value\": '8388353'}}
         ]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-rbac.at:180"
( $at_check_trace; ovsdb-client transact ssl:127.0.0.1:$SSL_PORT \
        --private-key=$RBAC_PKIDIR/client-1-privkey.pem \
        --certificate=$RBAC_PKIDIR/client-1-cert.pem \
        --ca-cert=$RBAC_PKIDIR/pki/switchca/cacert.pem \
        '["mydb",
         {"op": "update",
          "table": "user_colors",
          "where": [["name", "==", "chartreuse"]],
          "row": {"value": '8388353'}}
         ]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-rbac.at:180"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-rbac.at:191: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-rbac.at:191"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"count\":1}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-rbac.at:191"
$at_failed && at_fn_log_failure
$at_traceon; }


# Test 5:
# Attempt to update a column in the "user_colors" table.  Same as
# previous test, but with a different client ID. This should fail
# the RBAC authorization test because "client-2" does not match the
# "creator" column for this row.
{ set +x
$as_echo "$at_srcdir/ovsdb-rbac.at:199: ovsdb-client transact ssl:127.0.0.1:\$SSL_PORT \\
        --private-key=\$RBAC_PKIDIR/client-2-privkey.pem \\
        --certificate=\$RBAC_PKIDIR/client-2-cert.pem \\
        --ca-cert=\$RBAC_PKIDIR/pki/switchca/cacert.pem \\
        '[\"mydb\",
         {\"op\": \"update\",
          \"table\": \"user_colors\",
          \"where\": [[\"name\", \"==\", \"chartreuse\"]],
          \"row\": {\"value\": '8388354'}}
         ]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-rbac.at:199"
( $at_check_trace; ovsdb-client transact ssl:127.0.0.1:$SSL_PORT \
        --private-key=$RBAC_PKIDIR/client-2-privkey.pem \
        --certificate=$RBAC_PKIDIR/client-2-cert.pem \
        --ca-cert=$RBAC_PKIDIR/pki/switchca/cacert.pem \
        '["mydb",
         {"op": "update",
          "table": "user_colors",
          "where": [["name", "==", "chartreuse"]],
          "row": {"value": '8388354'}}
         ]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-rbac.at:199"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-rbac.at:210: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-rbac.at:210"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"details\":\"RBAC rules for client \\\"client-2\\\" role \\\"testrole\\\" prohibit modification of table \\\"user_colors\\\".\",\"error\":\"permission error\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-rbac.at:210"
$at_failed && at_fn_log_failure
$at_traceon; }


# Test 6:
# Attempt to mutate a column in the "user_colors" table.  This should
# succeed since role "testrole" has permissions for this table that
# allow update of the "value" column when ID is equal to the value in
# the "creator" column.
{ set +x
$as_echo "$at_srcdir/ovsdb-rbac.at:218: ovsdb-client transact ssl:127.0.0.1:\$SSL_PORT \\
        --private-key=\$RBAC_PKIDIR/client-1-privkey.pem \\
        --certificate=\$RBAC_PKIDIR/client-1-cert.pem \\
        --ca-cert=\$RBAC_PKIDIR/pki/switchca/cacert.pem \\
        '[\"mydb\",
         {\"op\": \"mutate\",
          \"table\": \"user_colors\",
          \"where\": [[\"name\", \"==\", \"chartreuse\"]],
          \"mutations\": [[\"value\", \"+=\", '10']]}
         ]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-rbac.at:218"
( $at_check_trace; ovsdb-client transact ssl:127.0.0.1:$SSL_PORT \
        --private-key=$RBAC_PKIDIR/client-1-privkey.pem \
        --certificate=$RBAC_PKIDIR/client-1-cert.pem \
        --ca-cert=$RBAC_PKIDIR/pki/switchca/cacert.pem \
        '["mydb",
         {"op": "mutate",
          "table": "user_colors",
          "where": [["name", "==", "chartreuse"]],
          "mutations": [["value", "+=", '10']]}
         ]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-rbac.at:218"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-rbac.at:229: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-rbac.at:229"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"count\":1}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-rbac.at:229"
$at_failed && at_fn_log_failure
$at_traceon; }


# Test 7:
# Attempt to mutate a column in the "user_colors" table.  Same as
# previous test, but with a different client ID. This should fail
# the RBAC authorization test because "client-2" does not match the
# "creator" column for this row.
{ set +x
$as_echo "$at_srcdir/ovsdb-rbac.at:237: ovsdb-client transact ssl:127.0.0.1:\$SSL_PORT \\
        --private-key=\$RBAC_PKIDIR/client-2-privkey.pem \\
        --certificate=\$RBAC_PKIDIR/client-2-cert.pem \\
        --ca-cert=\$RBAC_PKIDIR/pki/switchca/cacert.pem \\
        '[\"mydb\",
         {\"op\": \"mutate\",
          \"table\": \"user_colors\",
          \"where\": [[\"name\", \"==\", \"chartreuse\"]],
          \"mutations\": [[\"value\", \"+=\", '10']]}
         ]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-rbac.at:237"
( $at_check_trace; ovsdb-client transact ssl:127.0.0.1:$SSL_PORT \
        --private-key=$RBAC_PKIDIR/client-2-privkey.pem \
        --certificate=$RBAC_PKIDIR/client-2-cert.pem \
        --ca-cert=$RBAC_PKIDIR/pki/switchca/cacert.pem \
        '["mydb",
         {"op": "mutate",
          "table": "user_colors",
          "where": [["name", "==", "chartreuse"]],
          "mutations": [["value", "+=", '10']]}
         ]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-rbac.at:237"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-rbac.at:248: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-rbac.at:248"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"details\":\"RBAC rules for client \\\"client-2\\\" role \\\"testrole\\\" prohibit mutate operation on table \\\"user_colors\\\".\",\"error\":\"permission error\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-rbac.at:248"
$at_failed && at_fn_log_failure
$at_traceon; }


# Test 8:
# Attempt to delete a row from the "user_colors" table. This should fail
# the RBAC authorization test because "client-2" does not match the
# "creator" column for this row.
{ set +x
$as_echo "$at_srcdir/ovsdb-rbac.at:255: ovsdb-client transact ssl:127.0.0.1:\$SSL_PORT \\
        --private-key=\$RBAC_PKIDIR/client-2-privkey.pem \\
        --certificate=\$RBAC_PKIDIR/client-2-cert.pem \\
        --ca-cert=\$RBAC_PKIDIR/pki/switchca/cacert.pem \\
        '[\"mydb\",
         {\"op\": \"delete\",
          \"table\": \"user_colors\",
          \"where\": [[\"name\", \"==\", \"chartreuse\"]]}
         ]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-rbac.at:255"
( $at_check_trace; ovsdb-client transact ssl:127.0.0.1:$SSL_PORT \
        --private-key=$RBAC_PKIDIR/client-2-privkey.pem \
        --certificate=$RBAC_PKIDIR/client-2-cert.pem \
        --ca-cert=$RBAC_PKIDIR/pki/switchca/cacert.pem \
        '["mydb",
         {"op": "delete",
          "table": "user_colors",
          "where": [["name", "==", "chartreuse"]]}
         ]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-rbac.at:255"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-rbac.at:265: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-rbac.at:265"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"details\":\"RBAC rules for client \\\"client-2\\\" role \\\"testrole\\\" prohibit row deletion from table \\\"user_colors\\\".\",\"error\":\"permission error\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-rbac.at:265"
$at_failed && at_fn_log_failure
$at_traceon; }


# Test 9:
# Attempt to delete a row from the "user_colors" table. This should pass
# the RBAC authorization test because "client-1" does matches the
# "creator" column for this row.
{ set +x
$as_echo "$at_srcdir/ovsdb-rbac.at:272: ovsdb-client transact ssl:127.0.0.1:\$SSL_PORT \\
        --private-key=\$RBAC_PKIDIR/client-1-privkey.pem \\
        --certificate=\$RBAC_PKIDIR/client-1-cert.pem \\
        --ca-cert=\$RBAC_PKIDIR/pki/switchca/cacert.pem \\
        '[\"mydb\",
         {\"op\": \"delete\",
          \"table\": \"user_colors\",
          \"where\": [[\"name\", \"==\", \"chartreuse\"]]}
         ]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-rbac.at:272"
( $at_check_trace; ovsdb-client transact ssl:127.0.0.1:$SSL_PORT \
        --private-key=$RBAC_PKIDIR/client-1-privkey.pem \
        --certificate=$RBAC_PKIDIR/client-1-cert.pem \
        --ca-cert=$RBAC_PKIDIR/pki/switchca/cacert.pem \
        '["mydb",
         {"op": "delete",
          "table": "user_colors",
          "where": [["name", "==", "chartreuse"]]}
         ]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-rbac.at:272"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-rbac.at:282: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-rbac.at:282"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"count\":1}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-rbac.at:282"
$at_failed && at_fn_log_failure
$at_traceon; }


# Test 10:
# Attempt to insert a row into the "other_colors" table.  This should
# succeed since role "testrole" has permissions for this table that
# allow row insertion.
{ set +x
$as_echo "$at_srcdir/ovsdb-rbac.at:289: ovsdb-client transact ssl:127.0.0.1:\$SSL_PORT \\
        --private-key=\$RBAC_PKIDIR/client-1-privkey.pem \\
        --certificate=\$RBAC_PKIDIR/client-1-cert.pem \\
        --ca-cert=\$RBAC_PKIDIR/pki/switchca/cacert.pem \\
        '[\"mydb\",
         {\"op\": \"insert\",
          \"table\": \"other_colors\",
          \"row\": {\"creator\": [\"map\",[[\"chassis\", \"client-1\"]]], \"name\": \"seafoam\", \"value\": '7466680'}}
         ]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-rbac.at:289"
( $at_check_trace; ovsdb-client transact ssl:127.0.0.1:$SSL_PORT \
        --private-key=$RBAC_PKIDIR/client-1-privkey.pem \
        --certificate=$RBAC_PKIDIR/client-1-cert.pem \
        --ca-cert=$RBAC_PKIDIR/pki/switchca/cacert.pem \
        '["mydb",
         {"op": "insert",
          "table": "other_colors",
          "row": {"creator": ["map",[["chassis", "client-1"]]], "name": "seafoam", "value": '7466680'}}
         ]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-rbac.at:289"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-rbac.at:299: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-rbac.at:299"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"uuid\":[\"uuid\",\"<0>\"]}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-rbac.at:299"
$at_failed && at_fn_log_failure
$at_traceon; }


# Test 11:
# Attempt to update a column in the "user_colors" table.  This should
# succeed since role "testrole" has permissions for this table that
# allow update of the "value" column when ID is equal to the value in
# the "creator" column.
{ set +x
$as_echo "$at_srcdir/ovsdb-rbac.at:307: ovsdb-client transact ssl:127.0.0.1:\$SSL_PORT \\
        --private-key=\$RBAC_PKIDIR/client-1-privkey.pem \\
        --certificate=\$RBAC_PKIDIR/client-1-cert.pem \\
        --ca-cert=\$RBAC_PKIDIR/pki/switchca/cacert.pem \\
        '[\"mydb\",
         {\"op\": \"update\",
          \"table\": \"other_colors\",
          \"where\": [[\"name\", \"==\", \"seafoam\"]],
          \"row\": {\"value\": '8388353'}}
         ]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-rbac.at:307"
( $at_check_trace; ovsdb-client transact ssl:127.0.0.1:$SSL_PORT \
        --private-key=$RBAC_PKIDIR/client-1-privkey.pem \
        --certificate=$RBAC_PKIDIR/client-1-cert.pem \
        --ca-cert=$RBAC_PKIDIR/pki/switchca/cacert.pem \
        '["mydb",
         {"op": "update",
          "table": "other_colors",
          "where": [["name", "==", "seafoam"]],
          "row": {"value": '8388353'}}
         ]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-rbac.at:307"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-rbac.at:318: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-rbac.at:318"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"count\":1}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-rbac.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }


# Test 12:
# Attempt to update a column in the "other_colors" table.  Same as
# previous test, but with a different client ID. This should fail
# the RBAC authorization test because "client-2" does not match the
# "creator" column for this row.
{ set +x
$as_echo "$at_srcdir/ovsdb-rbac.at:326: ovsdb-client transact ssl:127.0.0.1:\$SSL_PORT \\
        --private-key=\$RBAC_PKIDIR/client-2-privkey.pem \\
        --certificate=\$RBAC_PKIDIR/client-2-cert.pem \\
        --ca-cert=\$RBAC_PKIDIR/pki/switchca/cacert.pem \\
        '[\"mydb\",
         {\"op\": \"update\",
          \"table\": \"other_colors\",
          \"where\": [[\"name\", \"==\", \"seafoam\"]],
          \"row\": {\"value\": '8388354'}}
         ]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-rbac.at:326"
( $at_check_trace; ovsdb-client transact ssl:127.0.0.1:$SSL_PORT \
        --private-key=$RBAC_PKIDIR/client-2-privkey.pem \
        --certificate=$RBAC_PKIDIR/client-2-cert.pem \
        --ca-cert=$RBAC_PKIDIR/pki/switchca/cacert.pem \
        '["mydb",
         {"op": "update",
          "table": "other_colors",
          "where": [["name", "==", "seafoam"]],
          "row": {"value": '8388354'}}
         ]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-rbac.at:326"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-rbac.at:337: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-rbac.at:337"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"details\":\"RBAC rules for client \\\"client-2\\\" role \\\"testrole\\\" prohibit modification of table \\\"other_colors\\\".\",\"error\":\"permission error\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-rbac.at:337"
$at_failed && at_fn_log_failure
$at_traceon; }


# Test 13:
# Attempt to delete a row from the "other_colors" table. This should fail
# the RBAC authorization test because "client-2" does not match the
# "creator" column for this row.
{ set +x
$as_echo "$at_srcdir/ovsdb-rbac.at:344: ovsdb-client transact ssl:127.0.0.1:\$SSL_PORT \\
        --private-key=\$RBAC_PKIDIR/client-2-privkey.pem \\
        --certificate=\$RBAC_PKIDIR/client-2-cert.pem \\
        --ca-cert=\$RBAC_PKIDIR/pki/switchca/cacert.pem \\
        '[\"mydb\",
         {\"op\": \"delete\",
          \"table\": \"other_colors\",
          \"where\": [[\"name\", \"==\", \"seafoam\"]]}
         ]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-rbac.at:344"
( $at_check_trace; ovsdb-client transact ssl:127.0.0.1:$SSL_PORT \
        --private-key=$RBAC_PKIDIR/client-2-privkey.pem \
        --certificate=$RBAC_PKIDIR/client-2-cert.pem \
        --ca-cert=$RBAC_PKIDIR/pki/switchca/cacert.pem \
        '["mydb",
         {"op": "delete",
          "table": "other_colors",
          "where": [["name", "==", "seafoam"]]}
         ]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-rbac.at:344"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-rbac.at:354: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-rbac.at:354"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"details\":\"RBAC rules for client \\\"client-2\\\" role \\\"testrole\\\" prohibit row deletion from table \\\"other_colors\\\".\",\"error\":\"permission error\"}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-rbac.at:354"
$at_failed && at_fn_log_failure
$at_traceon; }


# Test 14:
# Attempt to delete a row from the "other_colors" table. This should pass
# the RBAC authorization test because "client-1" does matches the
# "creator" column for this row.
{ set +x
$as_echo "$at_srcdir/ovsdb-rbac.at:361: ovsdb-client transact ssl:127.0.0.1:\$SSL_PORT \\
        --private-key=\$RBAC_PKIDIR/client-1-privkey.pem \\
        --certificate=\$RBAC_PKIDIR/client-1-cert.pem \\
        --ca-cert=\$RBAC_PKIDIR/pki/switchca/cacert.pem \\
        '[\"mydb\",
         {\"op\": \"delete\",
          \"table\": \"other_colors\",
          \"where\": [[\"name\", \"==\", \"seafoam\"]]}
         ]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovsdb-rbac.at:361"
( $at_check_trace; ovsdb-client transact ssl:127.0.0.1:$SSL_PORT \
        --private-key=$RBAC_PKIDIR/client-1-privkey.pem \
        --certificate=$RBAC_PKIDIR/client-1-cert.pem \
        --ca-cert=$RBAC_PKIDIR/pki/switchca/cacert.pem \
        '["mydb",
         {"op": "delete",
          "table": "other_colors",
          "where": [["name", "==", "seafoam"]]}
         ]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-rbac.at:361"
$at_failed && at_fn_log_failure
$at_traceon; }

cat stdout >> output
{ set +x
$as_echo "$at_srcdir/ovsdb-rbac.at:371: uuidfilt stdout"
at_fn_check_prepare_trace "ovsdb-rbac.at:371"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "[{\"count\":1}]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-rbac.at:371"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovsdb-rbac.at:374: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovsdb-rbac.at:374"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-rbac.at:374"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovsdb-rbac.at:374: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovsdb-rbac.at:374"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovsdb-rbac.at:374"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovsdb-rbac.at:374: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovsdb-rbac.at:374: wait failed" >&5

    $as_echo "ovsdb-rbac.at:374" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovsdb-rbac.at:374"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2181
#AT_START_2182
at_fn_group_banner 2182 'ovsdb-cluster.at:45' \
  "insert default row, query table - cluster of 1" " " 102
at_xfail=no
(
  $as_echo "2182. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 1 "ordinal_schema" '[{"uuid":["uuid","<0>"]}]
[{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<1>"],"name":"","number":0}]}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {}}]' '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": []}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2182
#AT_START_2183
at_fn_group_banner 2183 'ovsdb-cluster.at:45' \
  "insert row, query table - cluster of 1" "         " 102
at_xfail=no
(
  $as_echo "2183. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 1 "ordinal_schema" '[{"uuid":["uuid","<0>"]}]
[{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<1>"],"name":"zero","number":0}]}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}}]' '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": []}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2183
#AT_START_2184
at_fn_group_banner 2184 'ovsdb-cluster.at:45' \
  "insert rows, query by value - cluster of 1" "     " 102
at_xfail=no
(
  $as_echo "2184. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 1 "ordinal_schema" '[{"uuid":["uuid","<0>"]}]
[{"uuid":["uuid","<1>"]}]
[{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<2>"],"name":"zero","number":0}]}]
[{"rows":[{"_uuid":["uuid","<1>"],"_version":["uuid","<3>"],"name":"one","number":1}]}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}}]' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}}]' '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [["name", "==", "zero"]]}]' '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [["name", "==", "one"]]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2184
#AT_START_2185
at_fn_group_banner 2185 'ovsdb-cluster.at:45' \
  "insert rows, query by named-uuid - cluster of 1" "" 102
at_xfail=no
(
  $as_echo "2185. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 1 "ordinal_schema" '[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<2>"],"name":"zero","number":0}]},{"rows":[{"_uuid":["uuid","<1>"],"_version":["uuid","<3>"],"name":"one","number":1}]}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "second"},
      {"op": "select",
       "table": "ordinals",
       "where": [["_uuid", "==", ["named-uuid", "first"]]]},
      {"op": "select",
       "table": "ordinals",
       "where": [["_uuid", "==", ["named-uuid", "second"]]]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2185
#AT_START_2186
at_fn_group_banner 2186 'ovsdb-cluster.at:45' \
  "insert rows, update rows by value - cluster of 1" "" 102
at_xfail=no
(
  $as_echo "2186. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 1 "ordinal_schema" '[{"uuid":["uuid","<0>"]}]
[{"uuid":["uuid","<1>"]}]
[{"count":1}]
[{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<2>"],"name":"nought","number":0},{"_uuid":["uuid","<1>"],"_version":["uuid","<3>"],"name":"one","number":1}]}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]' '["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [["name", "==", "zero"]],
       "row": {"name": "nought"}}]' '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "sort": ["number"]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2186
#AT_START_2187
at_fn_group_banner 2187 'ovsdb-cluster.at:45' \
  "insert rows, mutate rows - cluster of 1" "        " 102
at_xfail=no
(
  $as_echo "2187. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 1 "ordinal_schema" '[{"uuid":["uuid","<0>"]}]
[{"uuid":["uuid","<1>"]}]
[{"count":1}]
[{"rows":[{"_uuid":["uuid","<1>"],"_version":["uuid","<2>"],"name":"one","number":1},{"_uuid":["uuid","<0>"],"_version":["uuid","<3>"],"name":"zero","number":2}]}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]' '["ordinals",
      {"op": "mutate",
       "table": "ordinals",
       "where": [["name", "==", "zero"]],
       "mutations": [["number", "+=", 2]]}]' '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "sort": ["number"]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2187
#AT_START_2188
at_fn_group_banner 2188 'ovsdb-cluster.at:45' \
  "insert rows, delete by named-uuid - cluster of 1" "" 102
at_xfail=no
(
  $as_echo "2188. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 1 "ordinal_schema" '[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"count":1},{"rows":[{"name":"one","number":1}]}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "second"},
      {"op": "delete",
       "table": "ordinals",
       "where": [["_uuid", "==", ["named-uuid", "first"]]]},
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "columns": ["name","number"]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2188
#AT_START_2189
at_fn_group_banner 2189 'ovsdb-cluster.at:45' \
  "insert rows, delete rows by value - cluster of 1" "" 102
at_xfail=no
(
  $as_echo "2189. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 1 "ordinal_schema" '[{"uuid":["uuid","<0>"]}]
[{"uuid":["uuid","<1>"]}]
[{"count":1}]
[{"rows":[{"_uuid":["uuid","<1>"],"_version":["uuid","<2>"],"name":"one","number":1}]}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]' '["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": [["name", "==", "zero"]]}]' '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": []}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2189
#AT_START_2190
at_fn_group_banner 2190 'ovsdb-cluster.at:45' \
  "insert rows, delete by (non-matching) value - cluster of 1" "" 102
at_xfail=no
(
  $as_echo "2190. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 1 "ordinal_schema" '[{"uuid":["uuid","<0>"]}]
[{"uuid":["uuid","<1>"]}]
[{"count":0}]
[{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<2>"],"name":"zero","number":0},{"_uuid":["uuid","<1>"],"_version":["uuid","<3>"],"name":"one","number":1}]}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]' '["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": [["name", "==", "nought"]]}]' '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "sort": ["number"]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2190
#AT_START_2191
at_fn_group_banner 2191 'ovsdb-cluster.at:45' \
  "insert rows, delete all - cluster of 1" "         " 102
at_xfail=no
(
  $as_echo "2191. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 1 "ordinal_schema" '[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"count":2},{"rows":[]}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "second"},
      {"op": "delete",
       "table": "ordinals",
       "where": []},
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "columns": ["name","number"]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2191
#AT_START_2192
at_fn_group_banner 2192 'ovsdb-cluster.at:45' \
  "insert row, query table, commit - cluster of 1" " " 102
at_xfail=no
(
  $as_echo "2192. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 1 "ordinal_schema" '[{"uuid":["uuid","<0>"]},{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<1>"],"name":"zero","number":0}]},{}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "select",
       "table": "ordinals",
       "where": []},
      {"op": "commit",
       "durable": false}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2192
#AT_START_2193
at_fn_group_banner 2193 'ovsdb-cluster.at:45' \
  "insert row, query table, commit durably - cluster of 1" "" 102
at_xfail=no
(
  $as_echo "2193. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 1 "ordinal_schema" '[{"uuid":["uuid","<0>"]},{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<1>"],"name":"zero","number":0}]},{}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "select",
       "table": "ordinals",
       "where": []},
      {"op": "commit",
       "durable": true}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2193
#AT_START_2194
at_fn_group_banner 2194 'ovsdb-cluster.at:45' \
  "equality wait with correct rows - cluster of 1" " " 102
at_xfail=no
(
  $as_echo "2194. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 1 "ordinal_schema" '[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "==",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1}]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2194
#AT_START_2195
at_fn_group_banner 2195 'ovsdb-cluster.at:45' \
  "equality wait with extra row - cluster of 1" "    " 102
at_xfail=no
(
  $as_echo "2195. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 1 "ordinal_schema" '[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"details":"\"where\" clause test failed","error":"timed out"}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "==",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1},
                {"name": "two", "number": 2}]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2195
#AT_START_2196
at_fn_group_banner 2196 'ovsdb-cluster.at:45' \
  "equality wait with missing row - cluster of 1" "  " 102
at_xfail=no
(
  $as_echo "2196. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 1 "ordinal_schema" '[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"details":"\"where\" clause test failed","error":"timed out"}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "==",
       "rows": [{"name": "one", "number": 1}]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2196
#AT_START_2197
at_fn_group_banner 2197 'ovsdb-cluster.at:45' \
  "inequality wait with correct rows - cluster of 1" "" 102
at_xfail=no
(
  $as_echo "2197. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 1 "ordinal_schema" '[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"details":"\"where\" clause test failed","error":"timed out"}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "!=",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1}]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2197
#AT_START_2198
at_fn_group_banner 2198 'ovsdb-cluster.at:45' \
  "inequality wait with extra row - cluster of 1" "  " 102
at_xfail=no
(
  $as_echo "2198. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 1 "ordinal_schema" '[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "!=",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1},
                {"name": "two", "number": 2}]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2198
#AT_START_2199
at_fn_group_banner 2199 'ovsdb-cluster.at:45' \
  "inequality wait with missing row - cluster of 1" "" 102
at_xfail=no
(
  $as_echo "2199. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 1 "ordinal_schema" '[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "!=",
       "rows": [{"name": "one", "number": 1}]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2199
#AT_START_2200
at_fn_group_banner 2200 'ovsdb-cluster.at:45' \
  "insert and update constraints - cluster of 1" "   " 102
at_xfail=no
(
  $as_echo "2200. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 1 "constraint_schema" '[{"details":"0 is less than minimum allowed value 1","error":"constraint violation"}]
[{"details":"-1 is less than minimum allowed value 1","error":"constraint violation"}]
[{"details":"-2 is less than minimum allowed value 1","error":"constraint violation"}]
[{"uuid":["uuid","<0>"]}]
[{"uuid":["uuid","<1>"]},{"details":"transaction causes \"constrained\" table to contain 2 rows, greater than the schema-defined limit of 1 row(s)","error":"constraint violation"}]
' '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {}}]' '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {"positive": -1}}]' '["constraints",
      {"op": "update",
       "table": "constrained",
       "where": [],
       "row": {"positive": -2}}]' '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {"positive": 1}}]' '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {"positive": 2}}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2200
#AT_START_2201
at_fn_group_banner 2201 'ovsdb-cluster.at:45' \
  "index uniqueness checking - cluster of 1" "       " 102
at_xfail=no
(
  $as_echo "2201. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 1 "ordinal_schema" '[{"uuid":["uuid","<0>"]}]
[{"uuid":["uuid","<1>"]},{"details":"Transaction causes multiple rows in \"ordinals\" table to have identical values (1) for index on column \"number\".  First row, with UUID <0>, existed in the database before this transaction and was not modified by the transaction.  Second row, with UUID <1>, was inserted by this transaction.","error":"constraint violation"}]
[{"uuid":["uuid","<2>"]},{"count":1}]
[{"count":1},{"uuid":["uuid","<3>"]},{"uuid":["uuid","<4>"]},{"details":"Transaction causes multiple rows in \"ordinals\" table to have identical values (1) for index on column \"number\".  First row, with UUID <4>, was inserted by this transaction.  Second row, with UUID <3>, was inserted by this transaction.","error":"constraint violation"}]
[{"uuid":["uuid","<5>"]}]
[{"count":2},{"details":"Transaction causes multiple rows in \"ordinals\" table to have identical values (3) for index on column \"number\".  First row, with UUID <5>, had the following index values before the transaction: 2.  Second row, with UUID <2>, had the following index values before the transaction: 1.","error":"constraint violation"}]
[{"count":1},{"count":1}]
[{"count":2},{"uuid":["uuid","<6>"]},{"uuid":["uuid","<7>"]},{"rows":[{"name":"new one","number":1},{"name":"new two","number":2},{"name":"old one","number":10},{"name":"old two","number":20}]}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}}]' '   ["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "another one"}}]' '   ["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "another one"}},
      {"op": "delete",
       "table": "ordinals",
       "where": [["name", "==", "one"]]}]' '   ["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": []},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "still another one"}}]' '   ["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 2, "name": "two"}}]' '   ["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [],
       "row": {"number": 3}}]' '   ["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [["number", "==", 1]],
       "row": {"number": 2, "name": "old two"}},
      {"op": "update",
       "table": "ordinals",
       "where": [["name", "==", "two"]],
       "row": {"number": 1, "name": "old one"}}]' '   ["ordinals",
      {"op": "mutate",
       "table": "ordinals",
       "where": [],
       "mutations": [["number", "*=", 10]]},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "new one"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 2, "name": "new two"}},
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "columns": ["number", "name"],
       "sort": ["number"]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2201
#AT_START_2202
at_fn_group_banner 2202 'ovsdb-cluster.at:45' \
  "referential integrity -- simple - cluster of 1" " " 102
at_xfail=no
(
  $as_echo "2202. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 1 "constraint_schema" '[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"uuid":["uuid","<2>"]},{"uuid":["uuid","<3>"]}]
[{"count":1},{"details":"cannot delete b row <0> because of 3 remaining reference(s)","error":"referential integrity violation"}]
[{"details":"Attempted to store 0 elements in set of 1 to 2 integers.","error":"constraint violation"}]
[{"count":1}]
[{"count":1},{"details":"cannot delete b row <0> because of 2 remaining reference(s)","error":"referential integrity violation"}]
[{"count":1}]
[{"count":1},{"details":"cannot delete b row <0> because of 1 remaining reference(s)","error":"referential integrity violation"}]
[{"count":1}]
[{"count":1}]
' '["constraints",
      {"op": "insert",
       "table": "b",
       "row": {"b": 1},
       "uuid-name": "brow"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 0,
               "a2b": ["set", [["named-uuid", "brow"]]]}},
      {"op": "insert",
       "table": "a",
       "row": {"a": 1,
               "a2b": ["set", [["named-uuid", "brow"]]]}},
      {"op": "insert",
       "table": "a",
       "row": {"a": 2,
               "a2b": ["set", [["named-uuid", "brow"]]]}}]' '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]' '   ["constraints",
      {"op": "mutate",
       "table": "b",
       "where": [],
       "mutations": [["x", "delete", 0]]}]' '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]' '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]' '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 1]]}]' '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]' '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 2]]}]' '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2202
#AT_START_2203
at_fn_group_banner 2203 'ovsdb-cluster.at:45' \
  "referential integrity -- mutual references - cluster of 1" "" 102
at_xfail=no
(
  $as_echo "2203. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 1 "constraint_schema" '[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]}]
[{"uuid":["uuid","<2>"]},{"details":"Table a column a2b row <2> references nonexistent row <3> in table b.","error":"referential integrity violation"}]
[{"count":1},{"details":"cannot delete a row <0> because of 1 remaining reference(s)","error":"referential integrity violation"}]
[{"count":1},{"details":"cannot delete b row <1> because of 1 remaining reference(s)","error":"referential integrity violation"}]
[{"count":1},{"details":"cannot delete a row <0> because of 1 remaining reference(s)","error":"referential integrity violation"}]
[{"count":1},{"details":"cannot delete b row <1> because of 1 remaining reference(s)","error":"referential integrity violation"}]
[{"count":1},{"count":1}]
' '["constraints",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0,
               "a2b": ["set", [["named-uuid", "row2"]]],
               "a2a": ["set", [["named-uuid", "row1"]]]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "b",
       "row": {"b": 1,
               "b2b": ["set", [["named-uuid", "row2"]]],
               "b2a": ["set", [["named-uuid", "row1"]]]},
       "uuid-name": "row2"}]' '["constraints",
      {"op": "insert",
       "table": "a",
       "row": {"a2b": ["set", [["uuid", "b516b960-5b19-4fc2-bb82-fe1cbd6d0241"]]]}}]' '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]' '["constraints",
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 1]]}]' '   ["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]' '["constraints",
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 1]]}]' '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]},
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 1]]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2203
#AT_START_2204
at_fn_group_banner 2204 'ovsdb-cluster.at:45' \
  "weak references - cluster of 1" "                 " 102
at_xfail=no
(
  $as_echo "2204. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 1 "weak_schema" '[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"uuid":["uuid","<2>"]},{"uuid":["uuid","<3>"]},{"uuid":["uuid","<4>"]}]
[{"rows":[{"_uuid":["uuid","<0>"],"a2a":["set",[["uuid","<0>"],["uuid","<1>"]]],"a2a1":["uuid","<0>"],"a2b":["uuid","<3>"]},{"_uuid":["uuid","<1>"],"a2a":["set",[["uuid","<0>"],["uuid","<1>"]]],"a2a1":["uuid","<1>"],"a2b":["uuid","<3>"]},{"_uuid":["uuid","<2>"],"a2a":["set",[["uuid","<0>"],["uuid","<1>"]]],"a2a1":["uuid","<1>"],"a2b":["uuid","<4>"]}]}]
[{"rows":[{"_uuid":["uuid","<3>"],"b":2,"b2a":["uuid","<0>"]},{"_uuid":["uuid","<4>"],"b":3,"b2a":["uuid","<1>"]}]}]
[{"uuid":["uuid","<5>"]},{"details":"Weak reference column \"a2b\" in \"a\" row <5> (inserted within this transaction) contained all-zeros UUID (probably as the default value for this column) but deleting this value caused a constraint volation because this column is not allowed to be empty.","error":"constraint violation"}]
[{"count":1},{"details":"Deletion of 1 weak reference(s) to deleted (or never-existing) rows from column \"a2b\" in \"a\" row <2> caused this column to become empty, but constraints on this column disallow an empty column.","error":"constraint violation"}]
[{"count":1},{"details":"Deletion of 1 weak reference(s) to deleted (or never-existing) rows from column \"a2a1\" in \"a\" row <2> caused this column to become empty, but constraints on this column disallow an empty column.","error":"constraint violation"}]
[{"count":1}]
[{"rows":[{"_uuid":["uuid","<0>"],"a2a":["set",[["uuid","<0>"],["uuid","<1>"]]],"a2a1":["uuid","<0>"],"a2b":["uuid","<3>"]},{"_uuid":["uuid","<1>"],"a2a":["set",[["uuid","<0>"],["uuid","<1>"]]],"a2a1":["uuid","<1>"],"a2b":["uuid","<3>"]}]}]
[{"rows":[{"_uuid":["uuid","<3>"],"b":2,"b2a":["uuid","<0>"]},{"_uuid":["uuid","<4>"],"b":3,"b2a":["uuid","<1>"]}]}]
[{"count":1}]
[{"rows":[{"_uuid":["uuid","<1>"],"a2a":["uuid","<1>"],"a2a1":["uuid","<1>"],"a2b":["uuid","<3>"]}]}]
[{"rows":[{"_uuid":["uuid","<3>"],"b":2,"b2a":["set",[]]},{"_uuid":["uuid","<4>"],"b":3,"b2a":["uuid","<1>"]}]}]
[{"count":1}]
[{"rows":[]}]
[{"rows":[{"_uuid":["uuid","<3>"],"b":2,"b2a":["set",[]]},{"_uuid":["uuid","<4>"],"b":3,"b2a":["set",[]]}]}]
' '["weak",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0,
               "a2a": ["set", [["named-uuid", "row1"],
                               ["named-uuid", "row2"],
                               ["uuid", "0e767b36-6822-4044-8307-d58467e04669"]]],
               "a2a1": ["named-uuid", "row1"],
               "a2b": ["named-uuid", "row3"]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 1,
               "a2a": ["set", [["named-uuid", "row1"],
                               ["named-uuid", "row2"]]],
               "a2a1": ["named-uuid", "row2"],
               "a2b": ["named-uuid", "row3"]},
       "uuid-name": "row2"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 2,
               "a2a": ["set", [["named-uuid", "row1"],
                               ["named-uuid", "row2"]]],
               "a2a1": ["named-uuid", "row2"],
               "a2b": ["named-uuid", "row4"]}},
      {"op": "insert",
       "table": "b",
       "row": {"b": 2,
               "b2a": ["named-uuid", "row1"]},
       "uuid-name": "row3"},
      {"op": "insert",
       "table": "b",
       "row": {"b": 3,
               "b2a": ["named-uuid", "row2"]},
       "uuid-name": "row4"}]' '      ["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]' '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]' '      ["weak",
      {"op": "insert",
       "table": "a",
       "row": {"a2a1": ["named-uuid", "me"]},
       "uuid-name": "me"}]' '      ["weak",
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 3]]}]' '      ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 1]]}]' '      ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 2]]}]' '["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]' '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]' '   ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]' '["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]' '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]' '   ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 1]]}]' '["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]' '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2204
#AT_START_2205
at_fn_group_banner 2205 'ovsdb-cluster.at:45' \
  "immutable columns - cluster of 1" "               " 102
at_xfail=no
(
  $as_echo "2205. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 1 "immutable_schema" '[{"uuid":["uuid","<0>"]}]
[{"details":"Cannot update immutable column i in table a.","error":"constraint violation","syntax":"{\"op\":\"update\",\"row\":{\"i\":10},\"table\":\"a\",\"where\":[]}"}]
[{"details":"Cannot update immutable column i in table a.","error":"constraint violation","syntax":"{\"op\":\"update\",\"row\":{\"i\":5},\"table\":\"a\",\"where\":[]}"}]
[{"details":"Cannot mutate immutable column i in table a.","error":"constraint violation","syntax":"[\"i\",\"-=\",5]"}]
[{"details":"Cannot mutate immutable column i in table a.","error":"constraint violation","syntax":"[\"i\",\"*=\",1]"}]
' '["immutable",
      {"op": "insert",
       "table": "a",
       "row": {"i": 5},
       "uuid-name": "row1"}]' '["immutable",
      {"op": "update",
       "table": "a",
       "row": {"i": 10},
       "where": []}]' '["immutable",
      {"op": "update",
       "table": "a",
       "row": {"i": 5},
       "where": []}]' '["immutable",
      {"op": "mutate",
       "table": "a",
       "where": [],
       "mutations": [["i", "-=", 5]]}]' '["immutable",
      {"op": "mutate",
       "table": "a",
       "where": [],
       "mutations": [["i", "*=", 1]]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2205
#AT_START_2206
at_fn_group_banner 2206 'ovsdb-cluster.at:45' \
  "garbage collection - cluster of 1" "              " 102
at_xfail=no
(
  $as_echo "2206. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 1 "gc_schema" '[{"uuid":["uuid","<0>"]}]
[{"rows":[]}]
[{"uuid":["uuid","<1>"]},{"uuid":["uuid","<2>"]},{"uuid":["uuid","<3>"]},{"uuid":["uuid","<4>"]}]
[{"rows":[]}]
[{"uuid":["uuid","<5>"]},{"uuid":["uuid","<6>"]}]
[{"rows":[{"a":4},{"a":5}]}]
[{"count":1}]
[{"rows":[]}]
[{"uuid":["uuid","<7>"]},{"uuid":["uuid","<8>"]}]
[{"rows":[]}]
[{"uuid":["uuid","<9>"]},{"uuid":["uuid","<10>"]},{"uuid":["uuid","<11>"]},{"uuid":["uuid","<12>"]}]
[{"rows":[{"a":8},{"a":9},{"a":10},{"a":11}]}]
[{"count":1}]
[{"rows":[]}]
[{"uuid":["uuid","<13>"]}]
[{"rows":[]}]
' '   ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0}}]' '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]' '      ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0, "a2a": ["named-uuid", "row1"]},
       "uuid-name": "row0"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 1, "a2a": ["named-uuid", "row2"]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 2, "a2a": ["named-uuid", "row3"]},
       "uuid-name": "row2"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 3},
       "uuid-name": "row3"}]' '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]' '      ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 4, "a2a": ["named-uuid", "row5"]},
       "uuid-name": "row4"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 5, "a2a": ["named-uuid", "row4"]},
       "uuid-name": "row5"}]' '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"],
       "sort": ["a"]}]' '   ["gc",
      {"op": "update",
       "table": "a",
       "where": [["a", "==", 4]],
       "row": {"a2a": ["set", []]}}]' '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]' '      ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 6, "wa2a": ["named-uuid", "row7"]},
       "uuid-name": "row6"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 7, "wa2a": ["named-uuid", "row6"]},
       "uuid-name": "row7"}]' '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]' '   ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 8, "a2a": ["named-uuid", "row9"]},
       "uuid-name": "row8"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 9, "a2a": ["named-uuid", "row10"]},
       "uuid-name": "row9"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 10, "a2a": ["named-uuid", "row11"]},
       "uuid-name": "row10"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 11, "a2a": ["named-uuid", "row8"]},
       "uuid-name": "row11"}]' '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"],
       "sort": ["a"]}]' '   ["gc",
      {"op": "update",
       "table": "a",
       "where": [["a", "==", 9]],
       "row": {"a2a": ["set", []]}}]' '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]' '   ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 12, "a2a": ["named-uuid", "self"]},
       "uuid-name": "self"}]' '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2206
#AT_START_2207
at_fn_group_banner 2207 'ovsdb-cluster.at:54' \
  "insert default row, query table - cluster of 3" " " 103
at_xfail=no
(
  $as_echo "2207. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 3 "ordinal_schema" '[{"uuid":["uuid","<0>"]}]
[{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<1>"],"name":"","number":0}]}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {}}]' '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": []}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2207
#AT_START_2208
at_fn_group_banner 2208 'ovsdb-cluster.at:54' \
  "insert row, query table - cluster of 3" "         " 103
at_xfail=no
(
  $as_echo "2208. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 3 "ordinal_schema" '[{"uuid":["uuid","<0>"]}]
[{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<1>"],"name":"zero","number":0}]}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}}]' '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": []}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2208
#AT_START_2209
at_fn_group_banner 2209 'ovsdb-cluster.at:54' \
  "insert rows, query by value - cluster of 3" "     " 103
at_xfail=no
(
  $as_echo "2209. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 3 "ordinal_schema" '[{"uuid":["uuid","<0>"]}]
[{"uuid":["uuid","<1>"]}]
[{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<2>"],"name":"zero","number":0}]}]
[{"rows":[{"_uuid":["uuid","<1>"],"_version":["uuid","<3>"],"name":"one","number":1}]}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}}]' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}}]' '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [["name", "==", "zero"]]}]' '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [["name", "==", "one"]]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2209
#AT_START_2210
at_fn_group_banner 2210 'ovsdb-cluster.at:54' \
  "insert rows, query by named-uuid - cluster of 3" "" 103
at_xfail=no
(
  $as_echo "2210. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 3 "ordinal_schema" '[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<2>"],"name":"zero","number":0}]},{"rows":[{"_uuid":["uuid","<1>"],"_version":["uuid","<3>"],"name":"one","number":1}]}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "second"},
      {"op": "select",
       "table": "ordinals",
       "where": [["_uuid", "==", ["named-uuid", "first"]]]},
      {"op": "select",
       "table": "ordinals",
       "where": [["_uuid", "==", ["named-uuid", "second"]]]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2210
#AT_START_2211
at_fn_group_banner 2211 'ovsdb-cluster.at:54' \
  "insert rows, update rows by value - cluster of 3" "" 103
at_xfail=no
(
  $as_echo "2211. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 3 "ordinal_schema" '[{"uuid":["uuid","<0>"]}]
[{"uuid":["uuid","<1>"]}]
[{"count":1}]
[{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<2>"],"name":"nought","number":0},{"_uuid":["uuid","<1>"],"_version":["uuid","<3>"],"name":"one","number":1}]}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]' '["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [["name", "==", "zero"]],
       "row": {"name": "nought"}}]' '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "sort": ["number"]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2211
#AT_START_2212
at_fn_group_banner 2212 'ovsdb-cluster.at:54' \
  "insert rows, mutate rows - cluster of 3" "        " 103
at_xfail=no
(
  $as_echo "2212. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 3 "ordinal_schema" '[{"uuid":["uuid","<0>"]}]
[{"uuid":["uuid","<1>"]}]
[{"count":1}]
[{"rows":[{"_uuid":["uuid","<1>"],"_version":["uuid","<2>"],"name":"one","number":1},{"_uuid":["uuid","<0>"],"_version":["uuid","<3>"],"name":"zero","number":2}]}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]' '["ordinals",
      {"op": "mutate",
       "table": "ordinals",
       "where": [["name", "==", "zero"]],
       "mutations": [["number", "+=", 2]]}]' '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "sort": ["number"]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2212
#AT_START_2213
at_fn_group_banner 2213 'ovsdb-cluster.at:54' \
  "insert rows, delete by named-uuid - cluster of 3" "" 103
at_xfail=no
(
  $as_echo "2213. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 3 "ordinal_schema" '[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"count":1},{"rows":[{"name":"one","number":1}]}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "second"},
      {"op": "delete",
       "table": "ordinals",
       "where": [["_uuid", "==", ["named-uuid", "first"]]]},
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "columns": ["name","number"]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2213
#AT_START_2214
at_fn_group_banner 2214 'ovsdb-cluster.at:54' \
  "insert rows, delete rows by value - cluster of 3" "" 103
at_xfail=no
(
  $as_echo "2214. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 3 "ordinal_schema" '[{"uuid":["uuid","<0>"]}]
[{"uuid":["uuid","<1>"]}]
[{"count":1}]
[{"rows":[{"_uuid":["uuid","<1>"],"_version":["uuid","<2>"],"name":"one","number":1}]}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]' '["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": [["name", "==", "zero"]]}]' '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": []}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2214
#AT_START_2215
at_fn_group_banner 2215 'ovsdb-cluster.at:54' \
  "insert rows, delete by (non-matching) value - cluster of 3" "" 103
at_xfail=no
(
  $as_echo "2215. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 3 "ordinal_schema" '[{"uuid":["uuid","<0>"]}]
[{"uuid":["uuid","<1>"]}]
[{"count":0}]
[{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<2>"],"name":"zero","number":0},{"_uuid":["uuid","<1>"],"_version":["uuid","<3>"],"name":"one","number":1}]}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]' '["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": [["name", "==", "nought"]]}]' '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "sort": ["number"]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2215
#AT_START_2216
at_fn_group_banner 2216 'ovsdb-cluster.at:54' \
  "insert rows, delete all - cluster of 3" "         " 103
at_xfail=no
(
  $as_echo "2216. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 3 "ordinal_schema" '[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"count":2},{"rows":[]}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "second"},
      {"op": "delete",
       "table": "ordinals",
       "where": []},
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "columns": ["name","number"]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2216
#AT_START_2217
at_fn_group_banner 2217 'ovsdb-cluster.at:54' \
  "insert row, query table, commit - cluster of 3" " " 103
at_xfail=no
(
  $as_echo "2217. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 3 "ordinal_schema" '[{"uuid":["uuid","<0>"]},{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<1>"],"name":"zero","number":0}]},{}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "select",
       "table": "ordinals",
       "where": []},
      {"op": "commit",
       "durable": false}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2217
#AT_START_2218
at_fn_group_banner 2218 'ovsdb-cluster.at:54' \
  "insert row, query table, commit durably - cluster of 3" "" 103
at_xfail=no
(
  $as_echo "2218. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 3 "ordinal_schema" '[{"uuid":["uuid","<0>"]},{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<1>"],"name":"zero","number":0}]},{}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "select",
       "table": "ordinals",
       "where": []},
      {"op": "commit",
       "durable": true}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2218
#AT_START_2219
at_fn_group_banner 2219 'ovsdb-cluster.at:54' \
  "equality wait with correct rows - cluster of 3" " " 103
at_xfail=no
(
  $as_echo "2219. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 3 "ordinal_schema" '[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "==",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1}]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2219
#AT_START_2220
at_fn_group_banner 2220 'ovsdb-cluster.at:54' \
  "equality wait with extra row - cluster of 3" "    " 103
at_xfail=no
(
  $as_echo "2220. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 3 "ordinal_schema" '[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"details":"\"where\" clause test failed","error":"timed out"}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "==",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1},
                {"name": "two", "number": 2}]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2220
#AT_START_2221
at_fn_group_banner 2221 'ovsdb-cluster.at:54' \
  "equality wait with missing row - cluster of 3" "  " 103
at_xfail=no
(
  $as_echo "2221. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 3 "ordinal_schema" '[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"details":"\"where\" clause test failed","error":"timed out"}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "==",
       "rows": [{"name": "one", "number": 1}]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2221
#AT_START_2222
at_fn_group_banner 2222 'ovsdb-cluster.at:54' \
  "inequality wait with correct rows - cluster of 3" "" 103
at_xfail=no
(
  $as_echo "2222. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 3 "ordinal_schema" '[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"details":"\"where\" clause test failed","error":"timed out"}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "!=",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1}]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2222
#AT_START_2223
at_fn_group_banner 2223 'ovsdb-cluster.at:54' \
  "inequality wait with extra row - cluster of 3" "  " 103
at_xfail=no
(
  $as_echo "2223. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 3 "ordinal_schema" '[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "!=",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1},
                {"name": "two", "number": 2}]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2223
#AT_START_2224
at_fn_group_banner 2224 'ovsdb-cluster.at:54' \
  "inequality wait with missing row - cluster of 3" "" 103
at_xfail=no
(
  $as_echo "2224. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 3 "ordinal_schema" '[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "!=",
       "rows": [{"name": "one", "number": 1}]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2224
#AT_START_2225
at_fn_group_banner 2225 'ovsdb-cluster.at:54' \
  "insert and update constraints - cluster of 3" "   " 103
at_xfail=no
(
  $as_echo "2225. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 3 "constraint_schema" '[{"details":"0 is less than minimum allowed value 1","error":"constraint violation"}]
[{"details":"-1 is less than minimum allowed value 1","error":"constraint violation"}]
[{"details":"-2 is less than minimum allowed value 1","error":"constraint violation"}]
[{"uuid":["uuid","<0>"]}]
[{"uuid":["uuid","<1>"]},{"details":"transaction causes \"constrained\" table to contain 2 rows, greater than the schema-defined limit of 1 row(s)","error":"constraint violation"}]
' '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {}}]' '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {"positive": -1}}]' '["constraints",
      {"op": "update",
       "table": "constrained",
       "where": [],
       "row": {"positive": -2}}]' '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {"positive": 1}}]' '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {"positive": 2}}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2225
#AT_START_2226
at_fn_group_banner 2226 'ovsdb-cluster.at:54' \
  "index uniqueness checking - cluster of 3" "       " 103
at_xfail=no
(
  $as_echo "2226. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 3 "ordinal_schema" '[{"uuid":["uuid","<0>"]}]
[{"uuid":["uuid","<1>"]},{"details":"Transaction causes multiple rows in \"ordinals\" table to have identical values (1) for index on column \"number\".  First row, with UUID <0>, existed in the database before this transaction and was not modified by the transaction.  Second row, with UUID <1>, was inserted by this transaction.","error":"constraint violation"}]
[{"uuid":["uuid","<2>"]},{"count":1}]
[{"count":1},{"uuid":["uuid","<3>"]},{"uuid":["uuid","<4>"]},{"details":"Transaction causes multiple rows in \"ordinals\" table to have identical values (1) for index on column \"number\".  First row, with UUID <4>, was inserted by this transaction.  Second row, with UUID <3>, was inserted by this transaction.","error":"constraint violation"}]
[{"uuid":["uuid","<5>"]}]
[{"count":2},{"details":"Transaction causes multiple rows in \"ordinals\" table to have identical values (3) for index on column \"number\".  First row, with UUID <5>, had the following index values before the transaction: 2.  Second row, with UUID <2>, had the following index values before the transaction: 1.","error":"constraint violation"}]
[{"count":1},{"count":1}]
[{"count":2},{"uuid":["uuid","<6>"]},{"uuid":["uuid","<7>"]},{"rows":[{"name":"new one","number":1},{"name":"new two","number":2},{"name":"old one","number":10},{"name":"old two","number":20}]}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}}]' '   ["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "another one"}}]' '   ["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "another one"}},
      {"op": "delete",
       "table": "ordinals",
       "where": [["name", "==", "one"]]}]' '   ["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": []},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "still another one"}}]' '   ["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 2, "name": "two"}}]' '   ["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [],
       "row": {"number": 3}}]' '   ["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [["number", "==", 1]],
       "row": {"number": 2, "name": "old two"}},
      {"op": "update",
       "table": "ordinals",
       "where": [["name", "==", "two"]],
       "row": {"number": 1, "name": "old one"}}]' '   ["ordinals",
      {"op": "mutate",
       "table": "ordinals",
       "where": [],
       "mutations": [["number", "*=", 10]]},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "new one"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 2, "name": "new two"}},
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "columns": ["number", "name"],
       "sort": ["number"]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2226
#AT_START_2227
at_fn_group_banner 2227 'ovsdb-cluster.at:54' \
  "referential integrity -- simple - cluster of 3" " " 103
at_xfail=no
(
  $as_echo "2227. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 3 "constraint_schema" '[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"uuid":["uuid","<2>"]},{"uuid":["uuid","<3>"]}]
[{"count":1},{"details":"cannot delete b row <0> because of 3 remaining reference(s)","error":"referential integrity violation"}]
[{"details":"Attempted to store 0 elements in set of 1 to 2 integers.","error":"constraint violation"}]
[{"count":1}]
[{"count":1},{"details":"cannot delete b row <0> because of 2 remaining reference(s)","error":"referential integrity violation"}]
[{"count":1}]
[{"count":1},{"details":"cannot delete b row <0> because of 1 remaining reference(s)","error":"referential integrity violation"}]
[{"count":1}]
[{"count":1}]
' '["constraints",
      {"op": "insert",
       "table": "b",
       "row": {"b": 1},
       "uuid-name": "brow"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 0,
               "a2b": ["set", [["named-uuid", "brow"]]]}},
      {"op": "insert",
       "table": "a",
       "row": {"a": 1,
               "a2b": ["set", [["named-uuid", "brow"]]]}},
      {"op": "insert",
       "table": "a",
       "row": {"a": 2,
               "a2b": ["set", [["named-uuid", "brow"]]]}}]' '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]' '   ["constraints",
      {"op": "mutate",
       "table": "b",
       "where": [],
       "mutations": [["x", "delete", 0]]}]' '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]' '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]' '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 1]]}]' '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]' '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 2]]}]' '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2227
#AT_START_2228
at_fn_group_banner 2228 'ovsdb-cluster.at:54' \
  "referential integrity -- mutual references - cluster of 3" "" 103
at_xfail=no
(
  $as_echo "2228. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 3 "constraint_schema" '[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]}]
[{"uuid":["uuid","<2>"]},{"details":"Table a column a2b row <2> references nonexistent row <3> in table b.","error":"referential integrity violation"}]
[{"count":1},{"details":"cannot delete a row <0> because of 1 remaining reference(s)","error":"referential integrity violation"}]
[{"count":1},{"details":"cannot delete b row <1> because of 1 remaining reference(s)","error":"referential integrity violation"}]
[{"count":1},{"details":"cannot delete a row <0> because of 1 remaining reference(s)","error":"referential integrity violation"}]
[{"count":1},{"details":"cannot delete b row <1> because of 1 remaining reference(s)","error":"referential integrity violation"}]
[{"count":1},{"count":1}]
' '["constraints",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0,
               "a2b": ["set", [["named-uuid", "row2"]]],
               "a2a": ["set", [["named-uuid", "row1"]]]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "b",
       "row": {"b": 1,
               "b2b": ["set", [["named-uuid", "row2"]]],
               "b2a": ["set", [["named-uuid", "row1"]]]},
       "uuid-name": "row2"}]' '["constraints",
      {"op": "insert",
       "table": "a",
       "row": {"a2b": ["set", [["uuid", "b516b960-5b19-4fc2-bb82-fe1cbd6d0241"]]]}}]' '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]' '["constraints",
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 1]]}]' '   ["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]' '["constraints",
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 1]]}]' '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]},
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 1]]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2228
#AT_START_2229
at_fn_group_banner 2229 'ovsdb-cluster.at:54' \
  "weak references - cluster of 3" "                 " 103
at_xfail=no
(
  $as_echo "2229. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 3 "weak_schema" '[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"uuid":["uuid","<2>"]},{"uuid":["uuid","<3>"]},{"uuid":["uuid","<4>"]}]
[{"rows":[{"_uuid":["uuid","<0>"],"a2a":["set",[["uuid","<0>"],["uuid","<1>"]]],"a2a1":["uuid","<0>"],"a2b":["uuid","<3>"]},{"_uuid":["uuid","<1>"],"a2a":["set",[["uuid","<0>"],["uuid","<1>"]]],"a2a1":["uuid","<1>"],"a2b":["uuid","<3>"]},{"_uuid":["uuid","<2>"],"a2a":["set",[["uuid","<0>"],["uuid","<1>"]]],"a2a1":["uuid","<1>"],"a2b":["uuid","<4>"]}]}]
[{"rows":[{"_uuid":["uuid","<3>"],"b":2,"b2a":["uuid","<0>"]},{"_uuid":["uuid","<4>"],"b":3,"b2a":["uuid","<1>"]}]}]
[{"uuid":["uuid","<5>"]},{"details":"Weak reference column \"a2b\" in \"a\" row <5> (inserted within this transaction) contained all-zeros UUID (probably as the default value for this column) but deleting this value caused a constraint volation because this column is not allowed to be empty.","error":"constraint violation"}]
[{"count":1},{"details":"Deletion of 1 weak reference(s) to deleted (or never-existing) rows from column \"a2b\" in \"a\" row <2> caused this column to become empty, but constraints on this column disallow an empty column.","error":"constraint violation"}]
[{"count":1},{"details":"Deletion of 1 weak reference(s) to deleted (or never-existing) rows from column \"a2a1\" in \"a\" row <2> caused this column to become empty, but constraints on this column disallow an empty column.","error":"constraint violation"}]
[{"count":1}]
[{"rows":[{"_uuid":["uuid","<0>"],"a2a":["set",[["uuid","<0>"],["uuid","<1>"]]],"a2a1":["uuid","<0>"],"a2b":["uuid","<3>"]},{"_uuid":["uuid","<1>"],"a2a":["set",[["uuid","<0>"],["uuid","<1>"]]],"a2a1":["uuid","<1>"],"a2b":["uuid","<3>"]}]}]
[{"rows":[{"_uuid":["uuid","<3>"],"b":2,"b2a":["uuid","<0>"]},{"_uuid":["uuid","<4>"],"b":3,"b2a":["uuid","<1>"]}]}]
[{"count":1}]
[{"rows":[{"_uuid":["uuid","<1>"],"a2a":["uuid","<1>"],"a2a1":["uuid","<1>"],"a2b":["uuid","<3>"]}]}]
[{"rows":[{"_uuid":["uuid","<3>"],"b":2,"b2a":["set",[]]},{"_uuid":["uuid","<4>"],"b":3,"b2a":["uuid","<1>"]}]}]
[{"count":1}]
[{"rows":[]}]
[{"rows":[{"_uuid":["uuid","<3>"],"b":2,"b2a":["set",[]]},{"_uuid":["uuid","<4>"],"b":3,"b2a":["set",[]]}]}]
' '["weak",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0,
               "a2a": ["set", [["named-uuid", "row1"],
                               ["named-uuid", "row2"],
                               ["uuid", "0e767b36-6822-4044-8307-d58467e04669"]]],
               "a2a1": ["named-uuid", "row1"],
               "a2b": ["named-uuid", "row3"]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 1,
               "a2a": ["set", [["named-uuid", "row1"],
                               ["named-uuid", "row2"]]],
               "a2a1": ["named-uuid", "row2"],
               "a2b": ["named-uuid", "row3"]},
       "uuid-name": "row2"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 2,
               "a2a": ["set", [["named-uuid", "row1"],
                               ["named-uuid", "row2"]]],
               "a2a1": ["named-uuid", "row2"],
               "a2b": ["named-uuid", "row4"]}},
      {"op": "insert",
       "table": "b",
       "row": {"b": 2,
               "b2a": ["named-uuid", "row1"]},
       "uuid-name": "row3"},
      {"op": "insert",
       "table": "b",
       "row": {"b": 3,
               "b2a": ["named-uuid", "row2"]},
       "uuid-name": "row4"}]' '      ["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]' '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]' '      ["weak",
      {"op": "insert",
       "table": "a",
       "row": {"a2a1": ["named-uuid", "me"]},
       "uuid-name": "me"}]' '      ["weak",
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 3]]}]' '      ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 1]]}]' '      ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 2]]}]' '["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]' '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]' '   ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]' '["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]' '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]' '   ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 1]]}]' '["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]' '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2229
#AT_START_2230
at_fn_group_banner 2230 'ovsdb-cluster.at:54' \
  "immutable columns - cluster of 3" "               " 103
at_xfail=no
(
  $as_echo "2230. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 3 "immutable_schema" '[{"uuid":["uuid","<0>"]}]
[{"details":"Cannot update immutable column i in table a.","error":"constraint violation","syntax":"{\"op\":\"update\",\"row\":{\"i\":10},\"table\":\"a\",\"where\":[]}"}]
[{"details":"Cannot update immutable column i in table a.","error":"constraint violation","syntax":"{\"op\":\"update\",\"row\":{\"i\":5},\"table\":\"a\",\"where\":[]}"}]
[{"details":"Cannot mutate immutable column i in table a.","error":"constraint violation","syntax":"[\"i\",\"-=\",5]"}]
[{"details":"Cannot mutate immutable column i in table a.","error":"constraint violation","syntax":"[\"i\",\"*=\",1]"}]
' '["immutable",
      {"op": "insert",
       "table": "a",
       "row": {"i": 5},
       "uuid-name": "row1"}]' '["immutable",
      {"op": "update",
       "table": "a",
       "row": {"i": 10},
       "where": []}]' '["immutable",
      {"op": "update",
       "table": "a",
       "row": {"i": 5},
       "where": []}]' '["immutable",
      {"op": "mutate",
       "table": "a",
       "where": [],
       "mutations": [["i", "-=", 5]]}]' '["immutable",
      {"op": "mutate",
       "table": "a",
       "where": [],
       "mutations": [["i", "*=", 1]]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2230
#AT_START_2231
at_fn_group_banner 2231 'ovsdb-cluster.at:54' \
  "garbage collection - cluster of 3" "              " 103
at_xfail=no
(
  $as_echo "2231. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 3 "gc_schema" '[{"uuid":["uuid","<0>"]}]
[{"rows":[]}]
[{"uuid":["uuid","<1>"]},{"uuid":["uuid","<2>"]},{"uuid":["uuid","<3>"]},{"uuid":["uuid","<4>"]}]
[{"rows":[]}]
[{"uuid":["uuid","<5>"]},{"uuid":["uuid","<6>"]}]
[{"rows":[{"a":4},{"a":5}]}]
[{"count":1}]
[{"rows":[]}]
[{"uuid":["uuid","<7>"]},{"uuid":["uuid","<8>"]}]
[{"rows":[]}]
[{"uuid":["uuid","<9>"]},{"uuid":["uuid","<10>"]},{"uuid":["uuid","<11>"]},{"uuid":["uuid","<12>"]}]
[{"rows":[{"a":8},{"a":9},{"a":10},{"a":11}]}]
[{"count":1}]
[{"rows":[]}]
[{"uuid":["uuid","<13>"]}]
[{"rows":[]}]
' '   ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0}}]' '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]' '      ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0, "a2a": ["named-uuid", "row1"]},
       "uuid-name": "row0"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 1, "a2a": ["named-uuid", "row2"]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 2, "a2a": ["named-uuid", "row3"]},
       "uuid-name": "row2"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 3},
       "uuid-name": "row3"}]' '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]' '      ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 4, "a2a": ["named-uuid", "row5"]},
       "uuid-name": "row4"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 5, "a2a": ["named-uuid", "row4"]},
       "uuid-name": "row5"}]' '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"],
       "sort": ["a"]}]' '   ["gc",
      {"op": "update",
       "table": "a",
       "where": [["a", "==", 4]],
       "row": {"a2a": ["set", []]}}]' '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]' '      ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 6, "wa2a": ["named-uuid", "row7"]},
       "uuid-name": "row6"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 7, "wa2a": ["named-uuid", "row6"]},
       "uuid-name": "row7"}]' '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]' '   ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 8, "a2a": ["named-uuid", "row9"]},
       "uuid-name": "row8"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 9, "a2a": ["named-uuid", "row10"]},
       "uuid-name": "row9"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 10, "a2a": ["named-uuid", "row11"]},
       "uuid-name": "row10"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 11, "a2a": ["named-uuid", "row8"]},
       "uuid-name": "row11"}]' '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"],
       "sort": ["a"]}]' '   ["gc",
      {"op": "update",
       "table": "a",
       "where": [["a", "==", 9]],
       "row": {"a2a": ["set", []]}}]' '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]' '   ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 12, "a2a": ["named-uuid", "self"]},
       "uuid-name": "self"}]' '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2231
#AT_START_2232
at_fn_group_banner 2232 'ovsdb-cluster.at:63' \
  "insert default row, query table - cluster of 5" " " 104
at_xfail=no
(
  $as_echo "2232. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 5 "ordinal_schema" '[{"uuid":["uuid","<0>"]}]
[{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<1>"],"name":"","number":0}]}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {}}]' '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": []}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2232
#AT_START_2233
at_fn_group_banner 2233 'ovsdb-cluster.at:63' \
  "insert row, query table - cluster of 5" "         " 104
at_xfail=no
(
  $as_echo "2233. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 5 "ordinal_schema" '[{"uuid":["uuid","<0>"]}]
[{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<1>"],"name":"zero","number":0}]}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}}]' '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": []}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2233
#AT_START_2234
at_fn_group_banner 2234 'ovsdb-cluster.at:63' \
  "insert rows, query by value - cluster of 5" "     " 104
at_xfail=no
(
  $as_echo "2234. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 5 "ordinal_schema" '[{"uuid":["uuid","<0>"]}]
[{"uuid":["uuid","<1>"]}]
[{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<2>"],"name":"zero","number":0}]}]
[{"rows":[{"_uuid":["uuid","<1>"],"_version":["uuid","<3>"],"name":"one","number":1}]}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}}]' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}}]' '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [["name", "==", "zero"]]}]' '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [["name", "==", "one"]]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2234
#AT_START_2235
at_fn_group_banner 2235 'ovsdb-cluster.at:63' \
  "insert rows, query by named-uuid - cluster of 5" "" 104
at_xfail=no
(
  $as_echo "2235. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 5 "ordinal_schema" '[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<2>"],"name":"zero","number":0}]},{"rows":[{"_uuid":["uuid","<1>"],"_version":["uuid","<3>"],"name":"one","number":1}]}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "second"},
      {"op": "select",
       "table": "ordinals",
       "where": [["_uuid", "==", ["named-uuid", "first"]]]},
      {"op": "select",
       "table": "ordinals",
       "where": [["_uuid", "==", ["named-uuid", "second"]]]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2235
#AT_START_2236
at_fn_group_banner 2236 'ovsdb-cluster.at:63' \
  "insert rows, update rows by value - cluster of 5" "" 104
at_xfail=no
(
  $as_echo "2236. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 5 "ordinal_schema" '[{"uuid":["uuid","<0>"]}]
[{"uuid":["uuid","<1>"]}]
[{"count":1}]
[{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<2>"],"name":"nought","number":0},{"_uuid":["uuid","<1>"],"_version":["uuid","<3>"],"name":"one","number":1}]}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]' '["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [["name", "==", "zero"]],
       "row": {"name": "nought"}}]' '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "sort": ["number"]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2236
#AT_START_2237
at_fn_group_banner 2237 'ovsdb-cluster.at:63' \
  "insert rows, mutate rows - cluster of 5" "        " 104
at_xfail=no
(
  $as_echo "2237. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 5 "ordinal_schema" '[{"uuid":["uuid","<0>"]}]
[{"uuid":["uuid","<1>"]}]
[{"count":1}]
[{"rows":[{"_uuid":["uuid","<1>"],"_version":["uuid","<2>"],"name":"one","number":1},{"_uuid":["uuid","<0>"],"_version":["uuid","<3>"],"name":"zero","number":2}]}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]' '["ordinals",
      {"op": "mutate",
       "table": "ordinals",
       "where": [["name", "==", "zero"]],
       "mutations": [["number", "+=", 2]]}]' '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "sort": ["number"]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2237
#AT_START_2238
at_fn_group_banner 2238 'ovsdb-cluster.at:63' \
  "insert rows, delete by named-uuid - cluster of 5" "" 104
at_xfail=no
(
  $as_echo "2238. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 5 "ordinal_schema" '[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"count":1},{"rows":[{"name":"one","number":1}]}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "second"},
      {"op": "delete",
       "table": "ordinals",
       "where": [["_uuid", "==", ["named-uuid", "first"]]]},
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "columns": ["name","number"]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2238
#AT_START_2239
at_fn_group_banner 2239 'ovsdb-cluster.at:63' \
  "insert rows, delete rows by value - cluster of 5" "" 104
at_xfail=no
(
  $as_echo "2239. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 5 "ordinal_schema" '[{"uuid":["uuid","<0>"]}]
[{"uuid":["uuid","<1>"]}]
[{"count":1}]
[{"rows":[{"_uuid":["uuid","<1>"],"_version":["uuid","<2>"],"name":"one","number":1}]}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]' '["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": [["name", "==", "zero"]]}]' '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": []}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2239
#AT_START_2240
at_fn_group_banner 2240 'ovsdb-cluster.at:63' \
  "insert rows, delete by (non-matching) value - cluster of 5" "" 104
at_xfail=no
(
  $as_echo "2240. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 5 "ordinal_schema" '[{"uuid":["uuid","<0>"]}]
[{"uuid":["uuid","<1>"]}]
[{"count":0}]
[{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<2>"],"name":"zero","number":0},{"_uuid":["uuid","<1>"],"_version":["uuid","<3>"],"name":"one","number":1}]}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"}]' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "first"}]' '["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": [["name", "==", "nought"]]}]' '["ordinals",
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "sort": ["number"]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2240
#AT_START_2241
at_fn_group_banner 2241 'ovsdb-cluster.at:63' \
  "insert rows, delete all - cluster of 5" "         " 104
at_xfail=no
(
  $as_echo "2241. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 5 "ordinal_schema" '[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"count":2},{"rows":[]}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"},
       "uuid-name": "first"},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"},
       "uuid-name": "second"},
      {"op": "delete",
       "table": "ordinals",
       "where": []},
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "columns": ["name","number"]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2241
#AT_START_2242
at_fn_group_banner 2242 'ovsdb-cluster.at:63' \
  "insert row, query table, commit - cluster of 5" " " 104
at_xfail=no
(
  $as_echo "2242. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 5 "ordinal_schema" '[{"uuid":["uuid","<0>"]},{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<1>"],"name":"zero","number":0}]},{}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "select",
       "table": "ordinals",
       "where": []},
      {"op": "commit",
       "durable": false}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2242
#AT_START_2243
at_fn_group_banner 2243 'ovsdb-cluster.at:63' \
  "insert row, query table, commit durably - cluster of 5" "" 104
at_xfail=no
(
  $as_echo "2243. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 5 "ordinal_schema" '[{"uuid":["uuid","<0>"]},{"rows":[{"_uuid":["uuid","<0>"],"_version":["uuid","<1>"],"name":"zero","number":0}]},{}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "select",
       "table": "ordinals",
       "where": []},
      {"op": "commit",
       "durable": true}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2243
#AT_START_2244
at_fn_group_banner 2244 'ovsdb-cluster.at:63' \
  "equality wait with correct rows - cluster of 5" " " 104
at_xfail=no
(
  $as_echo "2244. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 5 "ordinal_schema" '[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "==",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1}]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2244
#AT_START_2245
at_fn_group_banner 2245 'ovsdb-cluster.at:63' \
  "equality wait with extra row - cluster of 5" "    " 104
at_xfail=no
(
  $as_echo "2245. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 5 "ordinal_schema" '[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"details":"\"where\" clause test failed","error":"timed out"}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "==",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1},
                {"name": "two", "number": 2}]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2245
#AT_START_2246
at_fn_group_banner 2246 'ovsdb-cluster.at:63' \
  "equality wait with missing row - cluster of 5" "  " 104
at_xfail=no
(
  $as_echo "2246. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 5 "ordinal_schema" '[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"details":"\"where\" clause test failed","error":"timed out"}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "==",
       "rows": [{"name": "one", "number": 1}]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2246
#AT_START_2247
at_fn_group_banner 2247 'ovsdb-cluster.at:63' \
  "inequality wait with correct rows - cluster of 5" "" 104
at_xfail=no
(
  $as_echo "2247. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 5 "ordinal_schema" '[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"details":"\"where\" clause test failed","error":"timed out"}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "!=",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1}]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2247
#AT_START_2248
at_fn_group_banner 2248 'ovsdb-cluster.at:63' \
  "inequality wait with extra row - cluster of 5" "  " 104
at_xfail=no
(
  $as_echo "2248. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 5 "ordinal_schema" '[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "!=",
       "rows": [{"name": "zero", "number": 0},
                {"name": "one", "number": 1},
                {"name": "two", "number": 2}]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2248
#AT_START_2249
at_fn_group_banner 2249 'ovsdb-cluster.at:63' \
  "inequality wait with missing row - cluster of 5" "" 104
at_xfail=no
(
  $as_echo "2249. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 5 "ordinal_schema" '[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 0, "name": "zero"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "wait",
       "timeout": 0,
       "table": "ordinals",
       "where": [],
       "columns": ["name", "number"],
       "until": "!=",
       "rows": [{"name": "one", "number": 1}]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2249
#AT_START_2250
at_fn_group_banner 2250 'ovsdb-cluster.at:63' \
  "insert and update constraints - cluster of 5" "   " 104
at_xfail=no
(
  $as_echo "2250. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 5 "constraint_schema" '[{"details":"0 is less than minimum allowed value 1","error":"constraint violation"}]
[{"details":"-1 is less than minimum allowed value 1","error":"constraint violation"}]
[{"details":"-2 is less than minimum allowed value 1","error":"constraint violation"}]
[{"uuid":["uuid","<0>"]}]
[{"uuid":["uuid","<1>"]},{"details":"transaction causes \"constrained\" table to contain 2 rows, greater than the schema-defined limit of 1 row(s)","error":"constraint violation"}]
' '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {}}]' '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {"positive": -1}}]' '["constraints",
      {"op": "update",
       "table": "constrained",
       "where": [],
       "row": {"positive": -2}}]' '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {"positive": 1}}]' '["constraints",
      {"op": "insert",
       "table": "constrained",
       "row": {"positive": 2}}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2250
#AT_START_2251
at_fn_group_banner 2251 'ovsdb-cluster.at:63' \
  "index uniqueness checking - cluster of 5" "       " 104
at_xfail=no
(
  $as_echo "2251. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 5 "ordinal_schema" '[{"uuid":["uuid","<0>"]}]
[{"uuid":["uuid","<1>"]},{"details":"Transaction causes multiple rows in \"ordinals\" table to have identical values (1) for index on column \"number\".  First row, with UUID <0>, existed in the database before this transaction and was not modified by the transaction.  Second row, with UUID <1>, was inserted by this transaction.","error":"constraint violation"}]
[{"uuid":["uuid","<2>"]},{"count":1}]
[{"count":1},{"uuid":["uuid","<3>"]},{"uuid":["uuid","<4>"]},{"details":"Transaction causes multiple rows in \"ordinals\" table to have identical values (1) for index on column \"number\".  First row, with UUID <4>, was inserted by this transaction.  Second row, with UUID <3>, was inserted by this transaction.","error":"constraint violation"}]
[{"uuid":["uuid","<5>"]}]
[{"count":2},{"details":"Transaction causes multiple rows in \"ordinals\" table to have identical values (3) for index on column \"number\".  First row, with UUID <5>, had the following index values before the transaction: 2.  Second row, with UUID <2>, had the following index values before the transaction: 1.","error":"constraint violation"}]
[{"count":1},{"count":1}]
[{"count":2},{"uuid":["uuid","<6>"]},{"uuid":["uuid","<7>"]},{"rows":[{"name":"new one","number":1},{"name":"new two","number":2},{"name":"old one","number":10},{"name":"old two","number":20}]}]
' '["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}}]' '   ["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "another one"}}]' '   ["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "another one"}},
      {"op": "delete",
       "table": "ordinals",
       "where": [["name", "==", "one"]]}]' '   ["ordinals",
      {"op": "delete",
       "table": "ordinals",
       "where": []},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "one"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "still another one"}}]' '   ["ordinals",
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 2, "name": "two"}}]' '   ["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [],
       "row": {"number": 3}}]' '   ["ordinals",
      {"op": "update",
       "table": "ordinals",
       "where": [["number", "==", 1]],
       "row": {"number": 2, "name": "old two"}},
      {"op": "update",
       "table": "ordinals",
       "where": [["name", "==", "two"]],
       "row": {"number": 1, "name": "old one"}}]' '   ["ordinals",
      {"op": "mutate",
       "table": "ordinals",
       "where": [],
       "mutations": [["number", "*=", 10]]},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 1, "name": "new one"}},
      {"op": "insert",
       "table": "ordinals",
       "row": {"number": 2, "name": "new two"}},
      {"op": "select",
       "table": "ordinals",
       "where": [],
       "columns": ["number", "name"],
       "sort": ["number"]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2251
#AT_START_2252
at_fn_group_banner 2252 'ovsdb-cluster.at:63' \
  "referential integrity -- simple - cluster of 5" " " 104
at_xfail=no
(
  $as_echo "2252. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 5 "constraint_schema" '[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"uuid":["uuid","<2>"]},{"uuid":["uuid","<3>"]}]
[{"count":1},{"details":"cannot delete b row <0> because of 3 remaining reference(s)","error":"referential integrity violation"}]
[{"details":"Attempted to store 0 elements in set of 1 to 2 integers.","error":"constraint violation"}]
[{"count":1}]
[{"count":1},{"details":"cannot delete b row <0> because of 2 remaining reference(s)","error":"referential integrity violation"}]
[{"count":1}]
[{"count":1},{"details":"cannot delete b row <0> because of 1 remaining reference(s)","error":"referential integrity violation"}]
[{"count":1}]
[{"count":1}]
' '["constraints",
      {"op": "insert",
       "table": "b",
       "row": {"b": 1},
       "uuid-name": "brow"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 0,
               "a2b": ["set", [["named-uuid", "brow"]]]}},
      {"op": "insert",
       "table": "a",
       "row": {"a": 1,
               "a2b": ["set", [["named-uuid", "brow"]]]}},
      {"op": "insert",
       "table": "a",
       "row": {"a": 2,
               "a2b": ["set", [["named-uuid", "brow"]]]}}]' '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]' '   ["constraints",
      {"op": "mutate",
       "table": "b",
       "where": [],
       "mutations": [["x", "delete", 0]]}]' '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]' '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]' '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 1]]}]' '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]' '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 2]]}]' '["constraints",
      {"op": "delete",
       "table": "b",
       "where": []}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2252
#AT_START_2253
at_fn_group_banner 2253 'ovsdb-cluster.at:63' \
  "referential integrity -- mutual references - cluster of 5" "" 104
at_xfail=no
(
  $as_echo "2253. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 5 "constraint_schema" '[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]}]
[{"uuid":["uuid","<2>"]},{"details":"Table a column a2b row <2> references nonexistent row <3> in table b.","error":"referential integrity violation"}]
[{"count":1},{"details":"cannot delete a row <0> because of 1 remaining reference(s)","error":"referential integrity violation"}]
[{"count":1},{"details":"cannot delete b row <1> because of 1 remaining reference(s)","error":"referential integrity violation"}]
[{"count":1},{"details":"cannot delete a row <0> because of 1 remaining reference(s)","error":"referential integrity violation"}]
[{"count":1},{"details":"cannot delete b row <1> because of 1 remaining reference(s)","error":"referential integrity violation"}]
[{"count":1},{"count":1}]
' '["constraints",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0,
               "a2b": ["set", [["named-uuid", "row2"]]],
               "a2a": ["set", [["named-uuid", "row1"]]]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "b",
       "row": {"b": 1,
               "b2b": ["set", [["named-uuid", "row2"]]],
               "b2a": ["set", [["named-uuid", "row1"]]]},
       "uuid-name": "row2"}]' '["constraints",
      {"op": "insert",
       "table": "a",
       "row": {"a2b": ["set", [["uuid", "b516b960-5b19-4fc2-bb82-fe1cbd6d0241"]]]}}]' '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]' '["constraints",
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 1]]}]' '   ["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]' '["constraints",
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 1]]}]' '["constraints",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]},
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 1]]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2253
#AT_START_2254
at_fn_group_banner 2254 'ovsdb-cluster.at:63' \
  "weak references - cluster of 5" "                 " 104
at_xfail=no
(
  $as_echo "2254. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 5 "weak_schema" '[{"uuid":["uuid","<0>"]},{"uuid":["uuid","<1>"]},{"uuid":["uuid","<2>"]},{"uuid":["uuid","<3>"]},{"uuid":["uuid","<4>"]}]
[{"rows":[{"_uuid":["uuid","<0>"],"a2a":["set",[["uuid","<0>"],["uuid","<1>"]]],"a2a1":["uuid","<0>"],"a2b":["uuid","<3>"]},{"_uuid":["uuid","<1>"],"a2a":["set",[["uuid","<0>"],["uuid","<1>"]]],"a2a1":["uuid","<1>"],"a2b":["uuid","<3>"]},{"_uuid":["uuid","<2>"],"a2a":["set",[["uuid","<0>"],["uuid","<1>"]]],"a2a1":["uuid","<1>"],"a2b":["uuid","<4>"]}]}]
[{"rows":[{"_uuid":["uuid","<3>"],"b":2,"b2a":["uuid","<0>"]},{"_uuid":["uuid","<4>"],"b":3,"b2a":["uuid","<1>"]}]}]
[{"uuid":["uuid","<5>"]},{"details":"Weak reference column \"a2b\" in \"a\" row <5> (inserted within this transaction) contained all-zeros UUID (probably as the default value for this column) but deleting this value caused a constraint volation because this column is not allowed to be empty.","error":"constraint violation"}]
[{"count":1},{"details":"Deletion of 1 weak reference(s) to deleted (or never-existing) rows from column \"a2b\" in \"a\" row <2> caused this column to become empty, but constraints on this column disallow an empty column.","error":"constraint violation"}]
[{"count":1},{"details":"Deletion of 1 weak reference(s) to deleted (or never-existing) rows from column \"a2a1\" in \"a\" row <2> caused this column to become empty, but constraints on this column disallow an empty column.","error":"constraint violation"}]
[{"count":1}]
[{"rows":[{"_uuid":["uuid","<0>"],"a2a":["set",[["uuid","<0>"],["uuid","<1>"]]],"a2a1":["uuid","<0>"],"a2b":["uuid","<3>"]},{"_uuid":["uuid","<1>"],"a2a":["set",[["uuid","<0>"],["uuid","<1>"]]],"a2a1":["uuid","<1>"],"a2b":["uuid","<3>"]}]}]
[{"rows":[{"_uuid":["uuid","<3>"],"b":2,"b2a":["uuid","<0>"]},{"_uuid":["uuid","<4>"],"b":3,"b2a":["uuid","<1>"]}]}]
[{"count":1}]
[{"rows":[{"_uuid":["uuid","<1>"],"a2a":["uuid","<1>"],"a2a1":["uuid","<1>"],"a2b":["uuid","<3>"]}]}]
[{"rows":[{"_uuid":["uuid","<3>"],"b":2,"b2a":["set",[]]},{"_uuid":["uuid","<4>"],"b":3,"b2a":["uuid","<1>"]}]}]
[{"count":1}]
[{"rows":[]}]
[{"rows":[{"_uuid":["uuid","<3>"],"b":2,"b2a":["set",[]]},{"_uuid":["uuid","<4>"],"b":3,"b2a":["set",[]]}]}]
' '["weak",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0,
               "a2a": ["set", [["named-uuid", "row1"],
                               ["named-uuid", "row2"],
                               ["uuid", "0e767b36-6822-4044-8307-d58467e04669"]]],
               "a2a1": ["named-uuid", "row1"],
               "a2b": ["named-uuid", "row3"]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 1,
               "a2a": ["set", [["named-uuid", "row1"],
                               ["named-uuid", "row2"]]],
               "a2a1": ["named-uuid", "row2"],
               "a2b": ["named-uuid", "row3"]},
       "uuid-name": "row2"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 2,
               "a2a": ["set", [["named-uuid", "row1"],
                               ["named-uuid", "row2"]]],
               "a2a1": ["named-uuid", "row2"],
               "a2b": ["named-uuid", "row4"]}},
      {"op": "insert",
       "table": "b",
       "row": {"b": 2,
               "b2a": ["named-uuid", "row1"]},
       "uuid-name": "row3"},
      {"op": "insert",
       "table": "b",
       "row": {"b": 3,
               "b2a": ["named-uuid", "row2"]},
       "uuid-name": "row4"}]' '      ["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]' '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]' '      ["weak",
      {"op": "insert",
       "table": "a",
       "row": {"a2a1": ["named-uuid", "me"]},
       "uuid-name": "me"}]' '      ["weak",
      {"op": "delete",
       "table": "b",
       "where": [["b", "==", 3]]}]' '      ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 1]]}]' '      ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 2]]}]' '["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]' '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]' '   ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 0]]}]' '["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]' '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]' '   ["weak",
      {"op": "delete",
       "table": "a",
       "where": [["a", "==", 1]]}]' '["weak",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["_uuid", "a2a", "a2a1", "a2b"],
       "sort": ["a"]}]' '["weak",
      {"op": "select",
       "table": "b",
       "where": [],
       "columns": ["_uuid", "b", "b2a"],
       "sort": ["b"]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2254
#AT_START_2255
at_fn_group_banner 2255 'ovsdb-cluster.at:63' \
  "immutable columns - cluster of 5" "               " 104
at_xfail=no
(
  $as_echo "2255. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 5 "immutable_schema" '[{"uuid":["uuid","<0>"]}]
[{"details":"Cannot update immutable column i in table a.","error":"constraint violation","syntax":"{\"op\":\"update\",\"row\":{\"i\":10},\"table\":\"a\",\"where\":[]}"}]
[{"details":"Cannot update immutable column i in table a.","error":"constraint violation","syntax":"{\"op\":\"update\",\"row\":{\"i\":5},\"table\":\"a\",\"where\":[]}"}]
[{"details":"Cannot mutate immutable column i in table a.","error":"constraint violation","syntax":"[\"i\",\"-=\",5]"}]
[{"details":"Cannot mutate immutable column i in table a.","error":"constraint violation","syntax":"[\"i\",\"*=\",1]"}]
' '["immutable",
      {"op": "insert",
       "table": "a",
       "row": {"i": 5},
       "uuid-name": "row1"}]' '["immutable",
      {"op": "update",
       "table": "a",
       "row": {"i": 10},
       "where": []}]' '["immutable",
      {"op": "update",
       "table": "a",
       "row": {"i": 5},
       "where": []}]' '["immutable",
      {"op": "mutate",
       "table": "a",
       "where": [],
       "mutations": [["i", "-=", 5]]}]' '["immutable",
      {"op": "mutate",
       "table": "a",
       "where": [],
       "mutations": [["i", "*=", 1]]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2255
#AT_START_2256
at_fn_group_banner 2256 'ovsdb-cluster.at:63' \
  "garbage collection - cluster of 5" "              " 104
at_xfail=no
(
  $as_echo "2256. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   ovsdb_check_cluster 5 "gc_schema" '[{"uuid":["uuid","<0>"]}]
[{"rows":[]}]
[{"uuid":["uuid","<1>"]},{"uuid":["uuid","<2>"]},{"uuid":["uuid","<3>"]},{"uuid":["uuid","<4>"]}]
[{"rows":[]}]
[{"uuid":["uuid","<5>"]},{"uuid":["uuid","<6>"]}]
[{"rows":[{"a":4},{"a":5}]}]
[{"count":1}]
[{"rows":[]}]
[{"uuid":["uuid","<7>"]},{"uuid":["uuid","<8>"]}]
[{"rows":[]}]
[{"uuid":["uuid","<9>"]},{"uuid":["uuid","<10>"]},{"uuid":["uuid","<11>"]},{"uuid":["uuid","<12>"]}]
[{"rows":[{"a":8},{"a":9},{"a":10},{"a":11}]}]
[{"count":1}]
[{"rows":[]}]
[{"uuid":["uuid","<13>"]}]
[{"rows":[]}]
' '   ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0}}]' '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]' '      ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 0, "a2a": ["named-uuid", "row1"]},
       "uuid-name": "row0"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 1, "a2a": ["named-uuid", "row2"]},
       "uuid-name": "row1"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 2, "a2a": ["named-uuid", "row3"]},
       "uuid-name": "row2"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 3},
       "uuid-name": "row3"}]' '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]' '      ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 4, "a2a": ["named-uuid", "row5"]},
       "uuid-name": "row4"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 5, "a2a": ["named-uuid", "row4"]},
       "uuid-name": "row5"}]' '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"],
       "sort": ["a"]}]' '   ["gc",
      {"op": "update",
       "table": "a",
       "where": [["a", "==", 4]],
       "row": {"a2a": ["set", []]}}]' '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]' '      ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 6, "wa2a": ["named-uuid", "row7"]},
       "uuid-name": "row6"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 7, "wa2a": ["named-uuid", "row6"]},
       "uuid-name": "row7"}]' '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]' '   ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 8, "a2a": ["named-uuid", "row9"]},
       "uuid-name": "row8"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 9, "a2a": ["named-uuid", "row10"]},
       "uuid-name": "row9"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 10, "a2a": ["named-uuid", "row11"]},
       "uuid-name": "row10"},
      {"op": "insert",
       "table": "a",
       "row": {"a": 11, "a2a": ["named-uuid", "row8"]},
       "uuid-name": "row11"}]' '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"],
       "sort": ["a"]}]' '   ["gc",
      {"op": "update",
       "table": "a",
       "where": [["a", "==", 9]],
       "row": {"a2a": ["set", []]}}]' '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]' '   ["gc",
      {"op": "insert",
       "table": "a",
       "row": {"a": 12, "a2a": ["named-uuid", "self"]},
       "uuid-name": "self"}]' '["gc",
      {"op": "select",
       "table": "a",
       "where": [],
       "columns": ["a"]}]'
   $as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2256
#AT_START_2257
at_fn_group_banner 2257 'ovsdb-cluster.at:217' \
  "OVSDB 3-server torture test - kill/restart leader" "" 105
at_xfail=no
(
  $as_echo "2257. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ovsdb_torture_test 3 1 kill
$as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2257
#AT_START_2258
at_fn_group_banner 2258 'ovsdb-cluster.at:221' \
  "OVSDB 3-server torture test - kill/restart follower 1" "" 105
at_xfail=no
(
  $as_echo "2258. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ovsdb_torture_test 3 2 kill
$as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2258
#AT_START_2259
at_fn_group_banner 2259 'ovsdb-cluster.at:225' \
  "OVSDB 3-server torture test - kill/restart follower 2" "" 105
at_xfail=no
(
  $as_echo "2259. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ovsdb_torture_test 3 3 kill
$as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2259
#AT_START_2260
at_fn_group_banner 2260 'ovsdb-cluster.at:229' \
  "OVSDB 5-server torture test - kill/restart leader" "" 105
at_xfail=no
(
  $as_echo "2260. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ovsdb_torture_test 5 1 kill
$as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2260
#AT_START_2261
at_fn_group_banner 2261 'ovsdb-cluster.at:233' \
  "OVSDB 5-server torture test - kill/restart follower 1" "" 105
at_xfail=no
(
  $as_echo "2261. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ovsdb_torture_test 5 2 kill
$as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2261
#AT_START_2262
at_fn_group_banner 2262 'ovsdb-cluster.at:237' \
  "OVSDB 5-server torture test - kill/restart follower 2" "" 105
at_xfail=no
(
  $as_echo "2262. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ovsdb_torture_test 5 3 kill
$as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2262
#AT_START_2263
at_fn_group_banner 2263 'ovsdb-cluster.at:241' \
  "OVSDB 5-server torture test - kill/restart follower 3" "" 105
at_xfail=no
(
  $as_echo "2263. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ovsdb_torture_test 5 4 kill
$as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2263
#AT_START_2264
at_fn_group_banner 2264 'ovsdb-cluster.at:245' \
  "OVSDB 5-server torture test - kill/restart follower 4" "" 105
at_xfail=no
(
  $as_echo "2264. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ovsdb_torture_test 5 5 kill
$as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2264
#AT_START_2265
at_fn_group_banner 2265 'ovsdb-cluster.at:250' \
  "OVSDB 3-server torture test - remove/re-add leader" "" 105
at_xfail=no
(
  $as_echo "2265. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ovsdb_torture_test 3 1 remove
$as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2265
#AT_START_2266
at_fn_group_banner 2266 'ovsdb-cluster.at:254' \
  "OVSDB 3-server torture test - remove/re-add follower 1" "" 105
at_xfail=no
(
  $as_echo "2266. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ovsdb_torture_test 3 2 remove
$as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2266
#AT_START_2267
at_fn_group_banner 2267 'ovsdb-cluster.at:258' \
  "OVSDB 3-server torture test - remove/re-add follower 2" "" 105
at_xfail=no
(
  $as_echo "2267. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ovsdb_torture_test 3 3 remove
$as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2267
#AT_START_2268
at_fn_group_banner 2268 'ovsdb-cluster.at:262' \
  "OVSDB 5-server torture test - remove/re-add leader" "" 105
at_xfail=no
(
  $as_echo "2268. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ovsdb_torture_test 5 1 remove
$as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2268
#AT_START_2269
at_fn_group_banner 2269 'ovsdb-cluster.at:266' \
  "OVSDB 5-server torture test - remove/re-add follower 1" "" 105
at_xfail=no
(
  $as_echo "2269. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ovsdb_torture_test 5 2 remove
$as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2269
#AT_START_2270
at_fn_group_banner 2270 'ovsdb-cluster.at:270' \
  "OVSDB 5-server torture test - remove/re-add follower 2" "" 105
at_xfail=no
(
  $as_echo "2270. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ovsdb_torture_test 5 3 remove
$as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2270
#AT_START_2271
at_fn_group_banner 2271 'ovsdb-cluster.at:274' \
  "OVSDB 5-server torture test - remove/re-add follower 3" "" 105
at_xfail=no
(
  $as_echo "2271. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ovsdb_torture_test 5 4 remove
$as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2271
#AT_START_2272
at_fn_group_banner 2272 'ovsdb-cluster.at:278' \
  "OVSDB 5-server torture test - remove/re-add follower 4" "" 105
at_xfail=no
(
  $as_echo "2272. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ovsdb_torture_test 5 5 remove
$as_echo "$at_setup_line" >"$at_check_line_file"
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2272
#AT_START_2273
at_fn_group_banner 2273 'ovs-vsctl.at:146' \
  "ovs-vsctl connection retry" "                     " 106
at_xfail=no
(
  $as_echo "2273. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:148: ovs-vsctl --db=unix:foo --timeout=10 -vreconnect:emer -- init"
at_fn_check_prepare_trace "ovs-vsctl.at:148"
( $at_check_trace; ovs-vsctl --db=unix:foo --timeout=10 -vreconnect:emer -- init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:148"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:150: sed 's/([^()]*)/(...reason...)/' stderr"
at_fn_check_prepare_trace "ovs-vsctl.at:150"
( $at_check_trace; sed 's/([^()]*)/(...reason...)/' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ovs-vsctl: unix:foo: database connection failed (...reason...)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:150"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:155: ovs-vsctl --db=unix:foo --timeout=1 --retry -vreconnect:emer -vPATTERN:console:'%c|%p|%m' -- init
   echo \$? > status"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:155"
( $at_check_trace; ovs-vsctl --db=unix:foo --timeout=1 --retry -vreconnect:emer -vPATTERN:console:'%c|%p|%m' -- init
   echo $? > status
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:155"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:159: grep -c 'terminating with signal' stderr"
at_fn_check_prepare_trace "ovs-vsctl.at:159"
( $at_check_trace; grep -c 'terminating with signal' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:159"
$at_failed && at_fn_log_failure
$at_traceon; }

if test "$IS_WIN32" = "yes"; then
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:162: cat status"
at_fn_check_prepare_trace "ovs-vsctl.at:162"
( $at_check_trace; cat status
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:162"
$at_failed && at_fn_log_failure
$at_traceon; }

else
  # 128 + SIGALRM
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:166: cat status"
at_fn_check_prepare_trace "ovs-vsctl.at:166"
( $at_check_trace; cat status
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "142
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:166"
$at_failed && at_fn_log_failure
$at_traceon; }

fi

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:171: ovs-vsctl --db=punix:foo --timeout=1 -vreconnect:emer -vPATTERN:console:'%c|%p|%m' -- init
   echo \$? > status"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:171"
( $at_check_trace; ovs-vsctl --db=punix:foo --timeout=1 -vreconnect:emer -vPATTERN:console:'%c|%p|%m' -- init
   echo $? > status
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:171"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:175: grep -c 'terminating with signal' stderr"
at_fn_check_prepare_trace "ovs-vsctl.at:175"
( $at_check_trace; grep -c 'terminating with signal' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:175"
$at_failed && at_fn_log_failure
$at_traceon; }

if test "$IS_WIN32" = "yes"; then
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:178: cat status"
at_fn_check_prepare_trace "ovs-vsctl.at:178"
( $at_check_trace; cat status
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

else
  # 128 + SIGALRM
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:182: cat status"
at_fn_check_prepare_trace "ovs-vsctl.at:182"
( $at_check_trace; cat status
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "142
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:182"
$at_failed && at_fn_log_failure
$at_traceon; }

fi
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2273
#AT_START_2274
at_fn_group_banner 2274 'ovs-vsctl.at:190' \
  "add-br a" "                                       " 107
at_xfail=no
(
  $as_echo "2274. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:192: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:192"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:192"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:192: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:192"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:192"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:192: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:192"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:192"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:193: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:193"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:193"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:193: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:193"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:193"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:193: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:193"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:193"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:193: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:193: wait failed" >&5

    $as_echo "ovs-vsctl.at:193" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:193"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:194: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:194"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:194"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:194: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:194"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:194"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:194: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:194"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:194"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:194: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:194: wait failed" >&5

    $as_echo "ovs-vsctl.at:194" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:194"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:194: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:194"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:194"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:194: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:194"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:194"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:194: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:194"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:194"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:194: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:194: wait failed" >&5

    $as_echo "ovs-vsctl.at:194" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:194"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:194: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:194"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:194"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:194: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:194"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:194"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:194: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:194"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:194"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:194: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:194: wait failed" >&5

    $as_echo "ovs-vsctl.at:194" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:194"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:194: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:194"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ovs-vsctl.at:194"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:194: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:194"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:194"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:194: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:194"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:194"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:194: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:194: wait failed" >&5

    $as_echo "ovs-vsctl.at:194" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:194"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:194: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:194"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:194"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:194: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:194"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:194"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:194: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:194"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:194"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:194: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:194: wait failed" >&5

    $as_echo "ovs-vsctl.at:194" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:194"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check br-to-vlan, without --oneline.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:194: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:194"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:194"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:194: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:194"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:194"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:194: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:194"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:194"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:194: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:194: wait failed" >&5

    $as_echo "ovs-vsctl.at:194" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:194"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   # Check br-to-vlan, with --oneline.
   # (This particular test is interesting with --oneline because it returns
   # an integer instead of a string and that can cause type mismatches inside
   # python if not done carefully.)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:194: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:194"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:194"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:194: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:194"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:194"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:194: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:194"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:194"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:194: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:194: wait failed" >&5

    $as_echo "ovs-vsctl.at:194" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:194"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check multiple queries in a single run.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:194: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent a -- br-to-vlan a"
at_fn_check_prepare_trace "ovs-vsctl.at:194"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent a -- br-to-vlan a
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:194"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:194: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:194"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:194"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:194: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:194"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:194"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:194: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:194: wait failed" >&5

    $as_echo "ovs-vsctl.at:194" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:194"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:195: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:195"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:195"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:195: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:195"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:195"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:195: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:195"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:195"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:195: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:195: wait failed" >&5

    $as_echo "ovs-vsctl.at:195" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:195"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:195: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:195"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:195"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:195: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:195"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:195"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:195: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:195"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:195"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:195: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:195: wait failed" >&5

    $as_echo "ovs-vsctl.at:195" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:195"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:195: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:195"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no port named a
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:195"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:195: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:195"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:195"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:195: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:195"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:195"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:195: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:195: wait failed" >&5

    $as_echo "ovs-vsctl.at:195" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:195"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:196: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:196"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:196"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:196: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:196"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:196"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:196: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:196"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:196"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:196: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:196: wait failed" >&5

    $as_echo "ovs-vsctl.at:196" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:196"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:196: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:196"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no interface named a
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:196"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:196: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:196"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:196"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:196: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:196"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:196"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:196: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:196: wait failed" >&5

    $as_echo "ovs-vsctl.at:196" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:196"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:197: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:197"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:197"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:197: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:197"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:197"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:197: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:197: wait failed" >&5

    $as_echo "ovs-vsctl.at:197" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:197"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2274
#AT_START_2275
at_fn_group_banner 2275 'ovs-vsctl.at:200' \
  "add-br a, add-br a" "                             " 107
at_xfail=no
(
  $as_echo "2275. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:202: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:202"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:202"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:202: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:202"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:202"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:202: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:202"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:202"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:203: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:203"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:203"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:203: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:203"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:203"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:203: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:203"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:203"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:203: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:203: wait failed" >&5

    $as_echo "ovs-vsctl.at:203" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:203"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:204: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:204"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: cannot create a bridge named a because a bridge named a already exists
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:204"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:204: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:204"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:204"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:204: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:204"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:204"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:204: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:204: wait failed" >&5

    $as_echo "ovs-vsctl.at:204" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:204"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:207: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br ''
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:207"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br ''

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: bridge name must not be empty string
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:207"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:207: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:207"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:207"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:207: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:207"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:207"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:207: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:207: wait failed" >&5

    $as_echo "ovs-vsctl.at:207" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:207"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:210: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:210"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:210"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:210: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:210"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:210"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:210: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:210: wait failed" >&5

    $as_echo "ovs-vsctl.at:210" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:210"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2275
#AT_START_2276
at_fn_group_banner 2276 'ovs-vsctl.at:213' \
  "add-br a, add-br b" "                             " 107
at_xfail=no
(
  $as_echo "2276. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:215: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:215"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:215"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:215: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:215"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:215"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:215: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:215"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:215"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:216: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br a
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:216"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br a
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:216"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:216: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:216"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:216"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:216: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:216"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:216"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:216: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:216: wait failed" >&5

    $as_echo "ovs-vsctl.at:216" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:216"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:218: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br a b 9
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:218"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br a b 9

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: \"--may-exist add-br a b 9\" but a is not a VLAN bridge
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:218"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:218: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:218"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:218"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:218: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:218"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:218"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:218: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:218: wait failed" >&5

    $as_echo "ovs-vsctl.at:218" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:218"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:222"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
b
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:222"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:222"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:222: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:222: wait failed" >&5

    $as_echo "ovs-vsctl.at:222" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:222"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:222"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a\\nb
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:222"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:222"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:222: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:222: wait failed" >&5

    $as_echo "ovs-vsctl.at:222" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:222"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:222"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:222"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:222"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:222: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:222: wait failed" >&5

    $as_echo "ovs-vsctl.at:222" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:222"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:222"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:222"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:222"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:222: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:222: wait failed" >&5

    $as_echo "ovs-vsctl.at:222" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:222"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:222"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ovs-vsctl.at:222"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:222"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:222"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:222: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:222: wait failed" >&5

    $as_echo "ovs-vsctl.at:222" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:222"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:222"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:222"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:222"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:222: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:222: wait failed" >&5

    $as_echo "ovs-vsctl.at:222" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:222"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check br-to-vlan, without --oneline.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:222"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:222"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:222"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:222: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:222: wait failed" >&5

    $as_echo "ovs-vsctl.at:222" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:222"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   # Check br-to-vlan, with --oneline.
   # (This particular test is interesting with --oneline because it returns
   # an integer instead of a string and that can cause type mismatches inside
   # python if not done carefully.)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:222"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:222"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:222"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:222: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:222: wait failed" >&5

    $as_echo "ovs-vsctl.at:222" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:222"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check multiple queries in a single run.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent a -- br-to-vlan a"
at_fn_check_prepare_trace "ovs-vsctl.at:222"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent a -- br-to-vlan a
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:222"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:222"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:222: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:222: wait failed" >&5

    $as_echo "ovs-vsctl.at:222" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:222"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:222"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "b
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:222"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:222"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:222: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:222: wait failed" >&5

    $as_echo "ovs-vsctl.at:222" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:222"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check br-to-vlan, without --oneline.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:222"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:222"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:222"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:222: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:222: wait failed" >&5

    $as_echo "ovs-vsctl.at:222" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:222"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   # Check br-to-vlan, with --oneline.
   # (This particular test is interesting with --oneline because it returns
   # an integer instead of a string and that can cause type mismatches inside
   # python if not done carefully.)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:222"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:222"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:222"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:222: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:222: wait failed" >&5

    $as_echo "ovs-vsctl.at:222" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:222"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check multiple queries in a single run.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent b -- br-to-vlan b"
at_fn_check_prepare_trace "ovs-vsctl.at:222"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent b -- br-to-vlan b
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "b
0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:222"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:222: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:222"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:222"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:222: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:222: wait failed" >&5

    $as_echo "ovs-vsctl.at:222" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:222"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:223: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:223"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:223"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:223: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:223"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:223"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:223: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:223"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:223"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:223: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:223: wait failed" >&5

    $as_echo "ovs-vsctl.at:223" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:223"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:223: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:223"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:223"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:223: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:223"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:223"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:223: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:223"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:223"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:223: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:223: wait failed" >&5

    $as_echo "ovs-vsctl.at:223" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:223"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:223: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:223"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no port named a
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:223"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:223: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:223"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:223"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:223: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:223"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:223"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:223: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:223: wait failed" >&5

    $as_echo "ovs-vsctl.at:223" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:223"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:224: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:224"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:224"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:224: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:224"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:224"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:224: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:224"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:224"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:224: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:224: wait failed" >&5

    $as_echo "ovs-vsctl.at:224" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:224"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:224: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:224"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no interface named a
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:224"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:224: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:224"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:224"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:224: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:224"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:224"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:224: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:224: wait failed" >&5

    $as_echo "ovs-vsctl.at:224" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:224"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:225: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:225"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:225"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:225: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:225"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:225"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:225: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:225"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:225"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:225: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:225: wait failed" >&5

    $as_echo "ovs-vsctl.at:225" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:225"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:225: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:225"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:225"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:225: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:225"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:225"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:225: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:225"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:225"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:225: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:225: wait failed" >&5

    $as_echo "ovs-vsctl.at:225" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:225"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:225: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:225"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no port named b
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:225"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:225: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:225"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:225"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:225: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:225"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:225"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:225: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:225: wait failed" >&5

    $as_echo "ovs-vsctl.at:225" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:225"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:226: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:226"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:226"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:226: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:226"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:226"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:226: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:226"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:226"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:226: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:226: wait failed" >&5

    $as_echo "ovs-vsctl.at:226" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:226"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:226: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:226"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no interface named b
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:226"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:226: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:226"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:226"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:226: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:226"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:226"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:226: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:226: wait failed" >&5

    $as_echo "ovs-vsctl.at:226" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:226"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:227: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:227"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:227"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:227: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:227"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:227"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:227: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:227: wait failed" >&5

    $as_echo "ovs-vsctl.at:227" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:227"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2276
#AT_START_2277
at_fn_group_banner 2277 'ovs-vsctl.at:230' \
  "add-br a, add-br b, del-br a" "                   " 107
at_xfail=no
(
  $as_echo "2277. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:232: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:232"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:232"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:232: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:232"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:232"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:232: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:232"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:232"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:233: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br a
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br b
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket del-br a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:233"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br a
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br b
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket del-br a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:233"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:233: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:233"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:233"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:233: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:233"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:233"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:233: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:233: wait failed" >&5

    $as_echo "ovs-vsctl.at:233" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:233"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:235: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:235"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "b
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:235"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:235: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:235"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:235"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:235: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:235"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:235"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:235: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:235: wait failed" >&5

    $as_echo "ovs-vsctl.at:235" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:235"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:235: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:235"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "b
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:235"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:235: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:235"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:235"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:235: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:235"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:235"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:235: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:235: wait failed" >&5

    $as_echo "ovs-vsctl.at:235" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:235"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:235: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:235"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:235"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:235: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:235"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:235"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:235: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:235"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:235"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:235: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:235: wait failed" >&5

    $as_echo "ovs-vsctl.at:235" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:235"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:235: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:235"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ovs-vsctl.at:235"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:235: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:235"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:235"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:235: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:235"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:235"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:235: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:235: wait failed" >&5

    $as_echo "ovs-vsctl.at:235" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:235"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:235: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:235"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "b
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:235"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:235: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:235"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:235"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:235: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:235"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:235"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:235: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:235: wait failed" >&5

    $as_echo "ovs-vsctl.at:235" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:235"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check br-to-vlan, without --oneline.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:235: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:235"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:235"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:235: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:235"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:235"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:235: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:235"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:235"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:235: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:235: wait failed" >&5

    $as_echo "ovs-vsctl.at:235" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:235"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   # Check br-to-vlan, with --oneline.
   # (This particular test is interesting with --oneline because it returns
   # an integer instead of a string and that can cause type mismatches inside
   # python if not done carefully.)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:235: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:235"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:235"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:235: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:235"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:235"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:235: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:235"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:235"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:235: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:235: wait failed" >&5

    $as_echo "ovs-vsctl.at:235" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:235"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check multiple queries in a single run.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:235: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent b -- br-to-vlan b"
at_fn_check_prepare_trace "ovs-vsctl.at:235"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent b -- br-to-vlan b
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "b
0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:235"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:235: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:235"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:235"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:235: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:235"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:235"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:235: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:235: wait failed" >&5

    $as_echo "ovs-vsctl.at:235" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:235"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:236: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:236"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:236"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:236: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:236"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:236"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:236: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:236"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:236"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:236: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:236: wait failed" >&5

    $as_echo "ovs-vsctl.at:236" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:236"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:236: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:236"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:236"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:236: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:236"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:236"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:236: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:236"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:236"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:236: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:236: wait failed" >&5

    $as_echo "ovs-vsctl.at:236" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:236"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:236: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:236"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no port named b
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:236"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:236: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:236"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:236"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:236: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:236"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:236"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:236: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:236: wait failed" >&5

    $as_echo "ovs-vsctl.at:236" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:236"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:237: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:237"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:237"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:237: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:237"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:237"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:237: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:237"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:237"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:237: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:237: wait failed" >&5

    $as_echo "ovs-vsctl.at:237" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:237"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:237: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:237"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no interface named b
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:237"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:237: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:237"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:237"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:237: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:237"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:237"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:237: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:237: wait failed" >&5

    $as_echo "ovs-vsctl.at:237" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:237"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:238: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:238"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:238"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:238: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:238"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:238"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:238: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:238: wait failed" >&5

    $as_echo "ovs-vsctl.at:238" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:238"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2277
#AT_START_2278
at_fn_group_banner 2278 'ovs-vsctl.at:241' \
  "add-br a, del-br a, add-br a" "                   " 107
at_xfail=no
(
  $as_echo "2278. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:243: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:243"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:243"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:243: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:243"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:243"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:243: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:243"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:243"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:244: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- add-br a -- del-br a -- add-br a -- set Interface a other_config:key=value -- get Interface a other_config:key"
at_fn_check_prepare_trace "ovs-vsctl.at:244"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- add-br a -- del-br a -- add-br a -- set Interface a other_config:key=value -- get Interface a other_config:key
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "



value
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:244"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:244: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:244"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:244"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:244: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:244"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:244"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:244: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:244: wait failed" >&5

    $as_echo "ovs-vsctl.at:244" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:244"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:255: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:255"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:255"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:255: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:255"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:255"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:255: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:255"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:255"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:255: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:255: wait failed" >&5

    $as_echo "ovs-vsctl.at:255" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:255"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:255: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:255"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:255"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:255: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:255"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:255"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:255: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:255"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:255"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:255: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:255: wait failed" >&5

    $as_echo "ovs-vsctl.at:255" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:255"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:255: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:255"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:255"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:255: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:255"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:255"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:255: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:255"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:255"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:255: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:255: wait failed" >&5

    $as_echo "ovs-vsctl.at:255" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:255"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:255: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:255"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ovs-vsctl.at:255"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:255: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:255"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:255"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:255: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:255"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:255"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:255: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:255: wait failed" >&5

    $as_echo "ovs-vsctl.at:255" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:255"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:255: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:255"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:255"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:255: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:255"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:255"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:255: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:255"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:255"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:255: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:255: wait failed" >&5

    $as_echo "ovs-vsctl.at:255" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:255"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check br-to-vlan, without --oneline.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:255: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:255"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:255"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:255: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:255"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:255"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:255: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:255"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:255"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:255: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:255: wait failed" >&5

    $as_echo "ovs-vsctl.at:255" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:255"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   # Check br-to-vlan, with --oneline.
   # (This particular test is interesting with --oneline because it returns
   # an integer instead of a string and that can cause type mismatches inside
   # python if not done carefully.)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:255: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:255"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:255"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:255: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:255"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:255"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:255: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:255"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:255"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:255: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:255: wait failed" >&5

    $as_echo "ovs-vsctl.at:255" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:255"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check multiple queries in a single run.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:255: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent a -- br-to-vlan a"
at_fn_check_prepare_trace "ovs-vsctl.at:255"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent a -- br-to-vlan a
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:255"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:255: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:255"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:255"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:255: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:255"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:255"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:255: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:255: wait failed" >&5

    $as_echo "ovs-vsctl.at:255" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:255"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:256: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:256"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:256"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:256: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:256"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:256: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:256"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:256: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:256: wait failed" >&5

    $as_echo "ovs-vsctl.at:256" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:256"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:256: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:256"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:256"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:256: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:256"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:256: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:256"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:256: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:256: wait failed" >&5

    $as_echo "ovs-vsctl.at:256" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:256"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:256: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:256"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no port named a
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:256"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:256: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:256"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:256: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:256"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:256: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:256: wait failed" >&5

    $as_echo "ovs-vsctl.at:256" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:256"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:257: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:257"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:257"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:257: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:257"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:257"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:257: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:257"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:257"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:257: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:257: wait failed" >&5

    $as_echo "ovs-vsctl.at:257" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:257"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:257: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:257"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no interface named a
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:257"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:257: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:257"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:257"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:257: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:257"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:257"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:257: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:257: wait failed" >&5

    $as_echo "ovs-vsctl.at:257" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:257"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:258: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:258"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:258"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:258: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:258"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:258"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:258: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:258: wait failed" >&5

    $as_echo "ovs-vsctl.at:258" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:258"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2278
#AT_START_2279
at_fn_group_banner 2279 'ovs-vsctl.at:261' \
  "add-br a, add-port a a1, add-port a a2" "         " 107
at_xfail=no
(
  $as_echo "2279. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:263: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:263"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:263"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:263: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:263"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:263"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:263: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:263"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:263"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:264: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br a
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --if-exists del-br b
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port a a1
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port a a2
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:264"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br a
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --if-exists del-br b
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port a a1
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port a a2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:264"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:264: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:264"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:264"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:264: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:264"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:264"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:264: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:264: wait failed" >&5

    $as_echo "ovs-vsctl.at:264" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:264"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:269: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:269"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:269"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:269: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:269"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:269"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:269: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:269"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:269"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:269: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:269: wait failed" >&5

    $as_echo "ovs-vsctl.at:269" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:269"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:269: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:269"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:269"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:269: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:269"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:269"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:269: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:269"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:269"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:269: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:269: wait failed" >&5

    $as_echo "ovs-vsctl.at:269" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:269"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:269: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:269"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:269"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:269: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:269"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:269"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:269: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:269"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:269"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:269: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:269: wait failed" >&5

    $as_echo "ovs-vsctl.at:269" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:269"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:269: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:269"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ovs-vsctl.at:269"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:269: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:269"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:269"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:269: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:269"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:269"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:269: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:269: wait failed" >&5

    $as_echo "ovs-vsctl.at:269" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:269"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:269: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:269"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:269"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:269: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:269"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:269"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:269: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:269"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:269"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:269: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:269: wait failed" >&5

    $as_echo "ovs-vsctl.at:269" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:269"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check br-to-vlan, without --oneline.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:269: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:269"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:269"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:269: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:269"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:269"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:269: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:269"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:269"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:269: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:269: wait failed" >&5

    $as_echo "ovs-vsctl.at:269" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:269"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   # Check br-to-vlan, with --oneline.
   # (This particular test is interesting with --oneline because it returns
   # an integer instead of a string and that can cause type mismatches inside
   # python if not done carefully.)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:269: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:269"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:269"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:269: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:269"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:269"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:269: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:269"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:269"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:269: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:269: wait failed" >&5

    $as_echo "ovs-vsctl.at:269" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:269"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check multiple queries in a single run.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:269: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent a -- br-to-vlan a"
at_fn_check_prepare_trace "ovs-vsctl.at:269"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent a -- br-to-vlan a
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:269"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:269: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:269"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:269"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:269: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:269"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:269"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:269: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:269: wait failed" >&5

    $as_echo "ovs-vsctl.at:269" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:269"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:270: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:270"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a1
a2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:270"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:270: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:270"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:270"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:270: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:270"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:270"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:270: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:270: wait failed" >&5

    $as_echo "ovs-vsctl.at:270" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:270"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:270: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:270"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a1\\na2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:270"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:270: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:270"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:270"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:270: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:270"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:270"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:270: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:270: wait failed" >&5

    $as_echo "ovs-vsctl.at:270" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:270"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:270: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:270"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no port named a
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:270"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:270: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:270"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:270"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:270: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:270"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:270"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:270: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:270: wait failed" >&5

    $as_echo "ovs-vsctl.at:270" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:270"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:270: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br a1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:270"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br a1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:270"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:270: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:270"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:270"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:270: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:270"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:270"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:270: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:270: wait failed" >&5

    $as_echo "ovs-vsctl.at:270" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:270"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:270: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br a2
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:270"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br a2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:270"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:270: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:270"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:270"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:270: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:270"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:270"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:270: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:270: wait failed" >&5

    $as_echo "ovs-vsctl.at:270" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:270"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:271: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:271"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a1
a2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:271"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:271: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:271"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:271"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:271: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:271"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:271"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:271: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:271: wait failed" >&5

    $as_echo "ovs-vsctl.at:271" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:271"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:271: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:271"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no interface named a
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:271"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:271: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:271"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:271"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:271: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:271"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:271"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:271: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:271: wait failed" >&5

    $as_echo "ovs-vsctl.at:271" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:271"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:271: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br a1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:271"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br a1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:271"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:271: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:271"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:271"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:271: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:271"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:271"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:271: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:271: wait failed" >&5

    $as_echo "ovs-vsctl.at:271" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:271"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:271: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br a2
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:271"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br a2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:271"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:271: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:271"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:271"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:271: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:271"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:271"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:271: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:271: wait failed" >&5

    $as_echo "ovs-vsctl.at:271" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:271"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:272: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:272"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:272"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:272: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:272"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:272"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:272: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:272: wait failed" >&5

    $as_echo "ovs-vsctl.at:272" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:272"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2279
#AT_START_2280
at_fn_group_banner 2280 'ovs-vsctl.at:275' \
  "add-br a, add-port a a1, add-port a a1" "         " 107
at_xfail=no
(
  $as_echo "2280. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:277: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:277"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:277"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:277: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:277"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:277"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:277: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:277"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:277"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:278: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br a
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port a a1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:278"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br a
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port a a1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:278"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:278: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:278"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:278"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:278: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:278"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:278"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:278: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:278: wait failed" >&5

    $as_echo "ovs-vsctl.at:278" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:278"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:281: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port a a1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:281"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port a a1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: cannot create a port named a1 because a port named a1 already exists on bridge a
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:281"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:281: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:281"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:281"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:281: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:281"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:281"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:281: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:281: wait failed" >&5

    $as_echo "ovs-vsctl.at:281" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:281"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:284: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port a ''
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:284"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port a ''

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: port name must not be empty string
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:284"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:284: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:284"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:284"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:284: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:284"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:284"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:284: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:284: wait failed" >&5

    $as_echo "ovs-vsctl.at:284" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:284"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:287: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:287"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:287: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:287"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:287"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:287: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:287: wait failed" >&5

    $as_echo "ovs-vsctl.at:287" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:287"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2280
#AT_START_2281
at_fn_group_banner 2281 'ovs-vsctl.at:290' \
  "add-br a b, add-port a a1, add-port b b1, del-br a" "" 107
at_xfail=no
(
  $as_echo "2281. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:292: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:292"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:292"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:292: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:292"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:292"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:292: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:292"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:292"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:293: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- add-br a -- add-br b -- add-port a a1 -- add-port b b1 -- --if-exists del-port b b2 -- del-br a"
at_fn_check_prepare_trace "ovs-vsctl.at:293"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- add-br a -- add-br b -- add-port a a1 -- add-port b b1 -- --if-exists del-port b b2 -- del-br a
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "





" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:293"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:293: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:293"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:293"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:293: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:293"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:293"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:293: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:293: wait failed" >&5

    $as_echo "ovs-vsctl.at:293" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:293"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:306: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:306"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "b
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:306"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:306: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:306"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:306"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:306: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:306"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:306"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:306: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:306: wait failed" >&5

    $as_echo "ovs-vsctl.at:306" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:306"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:306: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:306"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "b
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:306"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:306: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:306"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:306"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:306: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:306"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:306"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:306: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:306: wait failed" >&5

    $as_echo "ovs-vsctl.at:306" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:306"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:306: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:306"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:306"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:306: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:306"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:306"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:306: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:306"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:306"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:306: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:306: wait failed" >&5

    $as_echo "ovs-vsctl.at:306" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:306"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:306: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:306"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ovs-vsctl.at:306"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:306: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:306"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:306"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:306: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:306"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:306"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:306: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:306: wait failed" >&5

    $as_echo "ovs-vsctl.at:306" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:306"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:306: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:306"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "b
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:306"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:306: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:306"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:306"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:306: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:306"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:306"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:306: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:306: wait failed" >&5

    $as_echo "ovs-vsctl.at:306" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:306"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check br-to-vlan, without --oneline.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:306: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:306"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:306"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:306: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:306"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:306"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:306: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:306"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:306"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:306: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:306: wait failed" >&5

    $as_echo "ovs-vsctl.at:306" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:306"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   # Check br-to-vlan, with --oneline.
   # (This particular test is interesting with --oneline because it returns
   # an integer instead of a string and that can cause type mismatches inside
   # python if not done carefully.)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:306: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:306"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:306"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:306: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:306"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:306"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:306: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:306"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:306"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:306: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:306: wait failed" >&5

    $as_echo "ovs-vsctl.at:306" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:306"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check multiple queries in a single run.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:306: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent b -- br-to-vlan b"
at_fn_check_prepare_trace "ovs-vsctl.at:306"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent b -- br-to-vlan b
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "b
0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:306"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:306: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:306"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:306"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:306: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:306"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:306"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:306: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:306: wait failed" >&5

    $as_echo "ovs-vsctl.at:306" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:306"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:307: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:307"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "b1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:307"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:307: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:307"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:307"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:307: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:307"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:307"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:307: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:307: wait failed" >&5

    $as_echo "ovs-vsctl.at:307" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:307"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:307: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:307"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "b1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:307"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:307: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:307"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:307"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:307: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:307"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:307"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:307: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:307: wait failed" >&5

    $as_echo "ovs-vsctl.at:307" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:307"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:307: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:307"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no port named b
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:307"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:307: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:307"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:307"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:307: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:307"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:307"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:307: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:307: wait failed" >&5

    $as_echo "ovs-vsctl.at:307" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:307"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:307: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br b1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:307"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br b1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "b
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:307"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:307: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:307"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:307"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:307: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:307"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:307"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:307: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:307: wait failed" >&5

    $as_echo "ovs-vsctl.at:307" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:307"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:308: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:308"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "b1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:308"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:308: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:308"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:308"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:308: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:308"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:308"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:308: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:308: wait failed" >&5

    $as_echo "ovs-vsctl.at:308" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:308"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:308: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:308"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no interface named b
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:308"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:308: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:308"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:308"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:308: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:308"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:308"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:308: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:308: wait failed" >&5

    $as_echo "ovs-vsctl.at:308" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:308"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:308: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br b1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:308"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br b1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "b
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:308"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:308: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:308"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:308"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:308: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:308"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:308"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:308: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:308: wait failed" >&5

    $as_echo "ovs-vsctl.at:308" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:308"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:309: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:309"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:309"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:309: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:309"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:309"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:309: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:309: wait failed" >&5

    $as_echo "ovs-vsctl.at:309" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:309"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2281
#AT_START_2282
at_fn_group_banner 2282 'ovs-vsctl.at:312' \
  "add-br a, add-bond a bond0 a1 a2 a3" "            " 107
at_xfail=no
(
  $as_echo "2282. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:314: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:314"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:314"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:314: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:314"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:314"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:314: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:314"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:314"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:315: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br a
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-bond a bond0 a1 a2 a3
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:315"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br a
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-bond a bond0 a1 a2 a3

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:315"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:315: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:315"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:315"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:315: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:315"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:315"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:315: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:315: wait failed" >&5

    $as_echo "ovs-vsctl.at:315" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:315"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:318: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-bond a bond0 a3 a1 a2
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:318"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-bond a bond0 a3 a1 a2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:318"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:318: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:318"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:318: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:318"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:318: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:318: wait failed" >&5

    $as_echo "ovs-vsctl.at:318" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:318"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:320: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-bond a bond0 a2 a1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:320"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-bond a bond0 a2 a1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: \"--may-exist add-bond a bond0 a2 a1\" but bond0 actually has interface(s) a1, a2, a3
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:320"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:320: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:320"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:320"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:320: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:320"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:320"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:320: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:320: wait failed" >&5

    $as_echo "ovs-vsctl.at:320" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:320"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:324: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-bond a '' x y z
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:324"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-bond a '' x y z

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: port name must not be empty string
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:324"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:324: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:324"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:324"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:324: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:324"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:324"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:324: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:324: wait failed" >&5

    $as_echo "ovs-vsctl.at:324" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:324"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:327: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-bond a x '' y z
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:327"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-bond a x '' y z

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: interface name must not be empty string
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:327"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:327: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:327"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:327"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:327: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:327"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:327"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:327: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:327: wait failed" >&5

    $as_echo "ovs-vsctl.at:327" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:327"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:330: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:330"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:330"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:330: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:330"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:330"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:330: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:330"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:330"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:330: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:330: wait failed" >&5

    $as_echo "ovs-vsctl.at:330" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:330"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:330: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:330"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:330"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:330: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:330"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:330"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:330: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:330"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:330"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:330: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:330: wait failed" >&5

    $as_echo "ovs-vsctl.at:330" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:330"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:330: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:330"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:330"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:330: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:330"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:330"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:330: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:330"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:330"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:330: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:330: wait failed" >&5

    $as_echo "ovs-vsctl.at:330" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:330"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:330: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:330"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ovs-vsctl.at:330"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:330: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:330"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:330"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:330: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:330"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:330"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:330: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:330: wait failed" >&5

    $as_echo "ovs-vsctl.at:330" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:330"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:330: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:330"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:330"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:330: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:330"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:330"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:330: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:330"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:330"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:330: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:330: wait failed" >&5

    $as_echo "ovs-vsctl.at:330" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:330"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check br-to-vlan, without --oneline.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:330: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:330"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:330"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:330: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:330"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:330"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:330: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:330"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:330"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:330: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:330: wait failed" >&5

    $as_echo "ovs-vsctl.at:330" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:330"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   # Check br-to-vlan, with --oneline.
   # (This particular test is interesting with --oneline because it returns
   # an integer instead of a string and that can cause type mismatches inside
   # python if not done carefully.)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:330: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:330"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:330"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:330: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:330"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:330"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:330: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:330"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:330"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:330: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:330: wait failed" >&5

    $as_echo "ovs-vsctl.at:330" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:330"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check multiple queries in a single run.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:330: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent a -- br-to-vlan a"
at_fn_check_prepare_trace "ovs-vsctl.at:330"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent a -- br-to-vlan a
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:330"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:330: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:330"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:330"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:330: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:330"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:330"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:330: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:330: wait failed" >&5

    $as_echo "ovs-vsctl.at:330" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:330"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:331: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:331"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "bond0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:331"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:331: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:331"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:331"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:331: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:331"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:331"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:331: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:331: wait failed" >&5

    $as_echo "ovs-vsctl.at:331" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:331"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:331: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:331"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "bond0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:331"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:331: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:331"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:331"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:331: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:331"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:331"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:331: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:331: wait failed" >&5

    $as_echo "ovs-vsctl.at:331" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:331"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:331: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:331"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no port named a
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:331"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:331: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:331"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:331"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:331: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:331"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:331"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:331: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:331: wait failed" >&5

    $as_echo "ovs-vsctl.at:331" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:331"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:331: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br bond0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:331"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br bond0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:331"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:331: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:331"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:331"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:331: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:331"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:331"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:331: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:331: wait failed" >&5

    $as_echo "ovs-vsctl.at:331" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:331"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:332: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:332"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a1
a2
a3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:332"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:332: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:332"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:332"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:332: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:332"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:332"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:332: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:332: wait failed" >&5

    $as_echo "ovs-vsctl.at:332" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:332"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:332: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:332"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no interface named a
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:332"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:332: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:332"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:332"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:332: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:332"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:332"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:332: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:332: wait failed" >&5

    $as_echo "ovs-vsctl.at:332" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:332"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:332: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br a1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:332"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br a1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:332"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:332: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:332"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:332"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:332: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:332"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:332"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:332: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:332: wait failed" >&5

    $as_echo "ovs-vsctl.at:332" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:332"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:332: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br a2
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:332"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br a2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:332"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:332: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:332"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:332"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:332: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:332"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:332"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:332: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:332: wait failed" >&5

    $as_echo "ovs-vsctl.at:332" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:332"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:332: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br a3
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:332"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br a3

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:332"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:332: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:332"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:332"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:332: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:332"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:332"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:332: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:332: wait failed" >&5

    $as_echo "ovs-vsctl.at:332" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:332"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:333: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:333"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:333"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:333: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:333"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:333"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:333: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:333: wait failed" >&5

    $as_echo "ovs-vsctl.at:333" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:333"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2282
#AT_START_2283
at_fn_group_banner 2283 'ovs-vsctl.at:336' \
  "add-br a b, add-port a a1, add-port b b1, del-port a a1" "" 107
at_xfail=no
(
  $as_echo "2283. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:338: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:338"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:338"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:338: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:338"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:338"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:338: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:338"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:338"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:339: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br a
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br b
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port a a1 tag=9
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket get port a1 tag
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-port b b1
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket del-port a a1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:339"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br a
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br b
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port a a1 tag=9
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket get port a1 tag
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-port b b1
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket del-port a a1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "9
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:339"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:339: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:339"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:339"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:339: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:339"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:339"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:339: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:339: wait failed" >&5

    $as_echo "ovs-vsctl.at:339" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:339"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:347: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-port b b1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:347"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-port b b1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:347"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:347: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:347"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:347"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:347: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:347"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:347"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:347: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:347: wait failed" >&5

    $as_echo "ovs-vsctl.at:347" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:347"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:349: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket del-port a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:349"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket del-port a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: cannot delete port a because it is the local port for bridge a (deleting this port requires deleting the entire bridge)
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:349"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:349: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:349"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:349"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:349: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:349"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:349"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:349: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:349: wait failed" >&5

    $as_echo "ovs-vsctl.at:349" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:349"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:353: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --if-exists del-port a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:353"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --if-exists del-port a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:353"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:353: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:353"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:353"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:353: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:353"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:353"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:353: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:353: wait failed" >&5

    $as_echo "ovs-vsctl.at:353" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:353"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:355: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-port a b1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:355"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-port a b1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: \"--may-exist add-port a b1\" but b1 is actually attached to bridge b
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:355"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:355: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:355"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:355"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:355: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:355"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:355"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:355: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:355: wait failed" >&5

    $as_echo "ovs-vsctl.at:355" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:355"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:359"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
b
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:359"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:359"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:359: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:359: wait failed" >&5

    $as_echo "ovs-vsctl.at:359" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:359"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:359"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a\\nb
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:359"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:359"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:359: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:359: wait failed" >&5

    $as_echo "ovs-vsctl.at:359" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:359"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:359"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:359"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:359"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:359: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:359: wait failed" >&5

    $as_echo "ovs-vsctl.at:359" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:359"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:359"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:359"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:359"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:359: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:359: wait failed" >&5

    $as_echo "ovs-vsctl.at:359" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:359"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:359"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ovs-vsctl.at:359"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:359"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:359"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:359: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:359: wait failed" >&5

    $as_echo "ovs-vsctl.at:359" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:359"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:359"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:359"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:359"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:359: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:359: wait failed" >&5

    $as_echo "ovs-vsctl.at:359" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:359"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check br-to-vlan, without --oneline.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:359"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:359"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:359"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:359: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:359: wait failed" >&5

    $as_echo "ovs-vsctl.at:359" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:359"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   # Check br-to-vlan, with --oneline.
   # (This particular test is interesting with --oneline because it returns
   # an integer instead of a string and that can cause type mismatches inside
   # python if not done carefully.)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:359"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:359"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:359"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:359: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:359: wait failed" >&5

    $as_echo "ovs-vsctl.at:359" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:359"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check multiple queries in a single run.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent a -- br-to-vlan a"
at_fn_check_prepare_trace "ovs-vsctl.at:359"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent a -- br-to-vlan a
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:359"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:359"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:359: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:359: wait failed" >&5

    $as_echo "ovs-vsctl.at:359" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:359"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:359"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "b
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:359"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:359"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:359: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:359: wait failed" >&5

    $as_echo "ovs-vsctl.at:359" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:359"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check br-to-vlan, without --oneline.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:359"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:359"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:359"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:359: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:359: wait failed" >&5

    $as_echo "ovs-vsctl.at:359" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:359"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   # Check br-to-vlan, with --oneline.
   # (This particular test is interesting with --oneline because it returns
   # an integer instead of a string and that can cause type mismatches inside
   # python if not done carefully.)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:359"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:359"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:359"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:359: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:359: wait failed" >&5

    $as_echo "ovs-vsctl.at:359" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:359"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check multiple queries in a single run.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent b -- br-to-vlan b"
at_fn_check_prepare_trace "ovs-vsctl.at:359"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent b -- br-to-vlan b
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "b
0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:359"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:359: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:359"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:359"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:359: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:359: wait failed" >&5

    $as_echo "ovs-vsctl.at:359" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:359"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:360: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:360"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:360"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:360: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:360"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:360"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:360: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:360"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:360"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:360: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:360: wait failed" >&5

    $as_echo "ovs-vsctl.at:360" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:360"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:360: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:360"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:360"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:360: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:360"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:360"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:360: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:360"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:360"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:360: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:360: wait failed" >&5

    $as_echo "ovs-vsctl.at:360" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:360"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:360: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:360"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no port named a
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:360"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:360: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:360"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:360"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:360: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:360"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:360"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:360: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:360: wait failed" >&5

    $as_echo "ovs-vsctl.at:360" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:360"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:361: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:361"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:361"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:361: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:361"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:361"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:361: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:361"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:361"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:361: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:361: wait failed" >&5

    $as_echo "ovs-vsctl.at:361" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:361"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:361: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:361"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no interface named a
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:361"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:361: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:361"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:361"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:361: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:361"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:361"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:361: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:361: wait failed" >&5

    $as_echo "ovs-vsctl.at:361" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:361"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:362: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:362"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "b1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:362"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:362: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:362"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:362"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:362: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:362"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:362"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:362: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:362: wait failed" >&5

    $as_echo "ovs-vsctl.at:362" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:362"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:362: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:362"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "b1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:362"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:362: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:362"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:362"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:362: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:362"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:362"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:362: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:362: wait failed" >&5

    $as_echo "ovs-vsctl.at:362" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:362"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:362: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:362"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no port named b
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:362"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:362: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:362"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:362"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:362: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:362"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:362"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:362: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:362: wait failed" >&5

    $as_echo "ovs-vsctl.at:362" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:362"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:362: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br b1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:362"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br b1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "b
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:362"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:362: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:362"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:362"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:362: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:362"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:362"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:362: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:362: wait failed" >&5

    $as_echo "ovs-vsctl.at:362" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:362"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:363: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:363"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "b1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:363"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:363: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:363"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:363"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:363: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:363"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:363"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:363: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:363: wait failed" >&5

    $as_echo "ovs-vsctl.at:363" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:363"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:363: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br b
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:363"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no interface named b
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:363"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:363: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:363"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:363"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:363: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:363"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:363"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:363: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:363: wait failed" >&5

    $as_echo "ovs-vsctl.at:363" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:363"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:363: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br b1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:363"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br b1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "b
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:363"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:363: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:363"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:363"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:363: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:363"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:363"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:363: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:363: wait failed" >&5

    $as_echo "ovs-vsctl.at:363" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:363"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:364: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:364"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:364: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:364"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:364: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:364: wait failed" >&5

    $as_echo "ovs-vsctl.at:364" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:364"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2283
#AT_START_2284
at_fn_group_banner 2284 'ovs-vsctl.at:367' \
  "add-br a, add-bond a bond0 a1 a2 a3, del-port bond0" "" 107
at_xfail=no
(
  $as_echo "2284. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:369: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:369"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:369"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:369: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:369"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:369"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:369: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:369"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:369"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:370: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- add-br a -- add-bond a bond0 a1 a2 a3 tag=9 -- get Port bond0 tag -- del-port bond0"
at_fn_check_prepare_trace "ovs-vsctl.at:370"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- add-br a -- add-bond a bond0 a1 a2 a3 tag=9 -- get Port bond0 tag -- del-port bond0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "

9

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:370"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:370: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:370"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:370"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:370: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:370"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:370"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:370: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:370: wait failed" >&5

    $as_echo "ovs-vsctl.at:370" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:370"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:379: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:379"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:379"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:379: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:379"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:379"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:379: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:379"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:379"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:379: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:379: wait failed" >&5

    $as_echo "ovs-vsctl.at:379" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:379"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:379: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:379"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:379"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:379: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:379"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:379"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:379: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:379"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:379"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:379: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:379: wait failed" >&5

    $as_echo "ovs-vsctl.at:379" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:379"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:379: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:379"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:379"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:379: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:379"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:379"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:379: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:379"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:379"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:379: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:379: wait failed" >&5

    $as_echo "ovs-vsctl.at:379" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:379"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:379: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:379"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ovs-vsctl.at:379"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:379: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:379"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:379"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:379: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:379"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:379"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:379: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:379: wait failed" >&5

    $as_echo "ovs-vsctl.at:379" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:379"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:379: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:379"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:379"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:379: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:379"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:379"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:379: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:379"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:379"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:379: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:379: wait failed" >&5

    $as_echo "ovs-vsctl.at:379" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:379"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check br-to-vlan, without --oneline.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:379: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:379"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:379"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:379: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:379"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:379"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:379: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:379"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:379"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:379: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:379: wait failed" >&5

    $as_echo "ovs-vsctl.at:379" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:379"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   # Check br-to-vlan, with --oneline.
   # (This particular test is interesting with --oneline because it returns
   # an integer instead of a string and that can cause type mismatches inside
   # python if not done carefully.)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:379: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:379"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:379"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:379: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:379"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:379"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:379: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:379"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:379"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:379: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:379: wait failed" >&5

    $as_echo "ovs-vsctl.at:379" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:379"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check multiple queries in a single run.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:379: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent a -- br-to-vlan a"
at_fn_check_prepare_trace "ovs-vsctl.at:379"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent a -- br-to-vlan a
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:379"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:379: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:379"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:379"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:379: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:379"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:379"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:379: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:379: wait failed" >&5

    $as_echo "ovs-vsctl.at:379" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:379"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:380: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:380"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:380"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:380: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:380"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:380"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:380: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:380"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:380"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:380: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:380: wait failed" >&5

    $as_echo "ovs-vsctl.at:380" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:380"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:380: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:380"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:380"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:380: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:380"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:380"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:380: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:380"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:380"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:380: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:380: wait failed" >&5

    $as_echo "ovs-vsctl.at:380" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:380"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:380: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:380"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no port named a
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:380"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:380: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:380"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:380"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:380: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:380"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:380"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:380: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:380: wait failed" >&5

    $as_echo "ovs-vsctl.at:380" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:380"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:381: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:381"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:381"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:381: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:381"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:381"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:381: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:381: wait failed" >&5

    $as_echo "ovs-vsctl.at:381" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:381"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2284
#AT_START_2285
at_fn_group_banner 2285 'ovs-vsctl.at:384' \
  "external IDs" "                                   " 107
at_xfail=no
(
  $as_echo "2285. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:386: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:386"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:386"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:386: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:386"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:386"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:386: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:386"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:386"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:387: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- add-br a
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- add-port a a1
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- add-bond a bond0 a2 a3
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-set-external-id a key0 value0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- set port a1 external-ids:key1=value1
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- set interface a2 external-ids:key2=value2
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- set interface a2 external-ids:key3=value3
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- set interface a3 external-ids:key4=value4
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-get-external-id a
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-get-external-id a key0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-get-external-id a key1
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-set-external-id a key0 othervalue
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-get-external-id a
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-set-external-id a key0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-get-external-id a
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- get port a1 external-ids
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- get interface a2 external-ids
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- get interface a3 external-ids
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:387"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- add-br a
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- add-port a a1
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- add-bond a bond0 a2 a3
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-set-external-id a key0 value0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- set port a1 external-ids:key1=value1
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- set interface a2 external-ids:key2=value2
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- set interface a2 external-ids:key3=value3
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- set interface a3 external-ids:key4=value4
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-get-external-id a
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-get-external-id a key0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-get-external-id a key1
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-set-external-id a key0 othervalue
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-get-external-id a
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-set-external-id a key0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-get-external-id a
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- get port a1 external-ids
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- get interface a2 external-ids
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- get interface a3 external-ids

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "







key0=value0
value0


key0=othervalue


{\"key1\"=\"value1\"}
{\"key2\"=\"value2\", \"key3\"=\"value3\"}
{\"key4\"=\"value4\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:387"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:387: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:387"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:387"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:387: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:387"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:387"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:387: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:387: wait failed" >&5

    $as_echo "ovs-vsctl.at:387" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:387"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:424: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-get-external-id a -- get port a1 external-ids -- get interface a2 external-ids -- get interface a3 external-ids"
at_fn_check_prepare_trace "ovs-vsctl.at:424"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-get-external-id a -- get port a1 external-ids -- get interface a2 external-ids -- get interface a3 external-ids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "
{\"key1\"=\"value1\"}
{\"key2\"=\"value2\", \"key3\"=\"value3\"}
{\"key4\"=\"value4\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:424"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:424: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:424"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:424"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:424: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:424"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:424"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:424: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:424: wait failed" >&5

    $as_echo "ovs-vsctl.at:424" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:424"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:434: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:434"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:434"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:434: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:434"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:434"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:434: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:434"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:434"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:434: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:434: wait failed" >&5

    $as_echo "ovs-vsctl.at:434" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:434"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:434: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:434"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:434"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:434: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:434"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:434"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:434: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:434"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:434"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:434: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:434: wait failed" >&5

    $as_echo "ovs-vsctl.at:434" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:434"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:434: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:434"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:434"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:434: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:434"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:434"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:434: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:434"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:434"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:434: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:434: wait failed" >&5

    $as_echo "ovs-vsctl.at:434" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:434"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:434: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:434"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ovs-vsctl.at:434"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:434: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:434"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:434"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:434: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:434"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:434"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:434: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:434: wait failed" >&5

    $as_echo "ovs-vsctl.at:434" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:434"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:434: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:434"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:434"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:434: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:434"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:434"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:434: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:434"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:434"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:434: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:434: wait failed" >&5

    $as_echo "ovs-vsctl.at:434" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:434"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check br-to-vlan, without --oneline.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:434: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:434"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:434"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:434: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:434"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:434"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:434: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:434"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:434"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:434: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:434: wait failed" >&5

    $as_echo "ovs-vsctl.at:434" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:434"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   # Check br-to-vlan, with --oneline.
   # (This particular test is interesting with --oneline because it returns
   # an integer instead of a string and that can cause type mismatches inside
   # python if not done carefully.)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:434: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:434"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:434"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:434: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:434"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:434"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:434: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:434"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:434"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:434: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:434: wait failed" >&5

    $as_echo "ovs-vsctl.at:434" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:434"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check multiple queries in a single run.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:434: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent a -- br-to-vlan a"
at_fn_check_prepare_trace "ovs-vsctl.at:434"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent a -- br-to-vlan a
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:434"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:434: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:434"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:434"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:434: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:434"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:434"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:434: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:434: wait failed" >&5

    $as_echo "ovs-vsctl.at:434" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:434"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:435: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:435"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a1
bond0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:435"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:435: wait failed" >&5

    $as_echo "ovs-vsctl.at:435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:435"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:435: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:435"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a1\\nbond0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:435"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:435: wait failed" >&5

    $as_echo "ovs-vsctl.at:435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:435"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:435: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:435"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no port named a
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:435"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:435: wait failed" >&5

    $as_echo "ovs-vsctl.at:435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:435"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:435: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br a1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:435"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br a1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:435"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:435: wait failed" >&5

    $as_echo "ovs-vsctl.at:435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:435"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:435: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br bond0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:435"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br bond0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:435"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:435: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:435"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:435: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:435"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:435: wait failed" >&5

    $as_echo "ovs-vsctl.at:435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:435"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:436: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:436"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a1
a2
a3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:436"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:436: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:436"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:436"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:436: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:436"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:436"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:436: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:436: wait failed" >&5

    $as_echo "ovs-vsctl.at:436" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:436"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:436: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:436"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no interface named a
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:436"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:436: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:436"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:436"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:436: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:436"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:436"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:436: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:436: wait failed" >&5

    $as_echo "ovs-vsctl.at:436" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:436"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:436: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br a1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:436"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br a1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:436"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:436: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:436"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:436"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:436: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:436"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:436"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:436: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:436: wait failed" >&5

    $as_echo "ovs-vsctl.at:436" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:436"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:436: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br a2
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:436"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br a2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:436"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:436: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:436"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:436"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:436: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:436"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:436"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:436: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:436: wait failed" >&5

    $as_echo "ovs-vsctl.at:436" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:436"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:436: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br a3
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:436"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br a3

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:436"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:436: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:436"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:436"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:436: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:436"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:436"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:436: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:436: wait failed" >&5

    $as_echo "ovs-vsctl.at:436" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:436"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:437: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:437"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:437"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:437: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:437"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:437"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:437: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:437: wait failed" >&5

    $as_echo "ovs-vsctl.at:437" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:437"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2285
#AT_START_2286
at_fn_group_banner 2286 'ovs-vsctl.at:440' \
  "controllers" "                                    " 107
at_xfail=no
(
  $as_echo "2286. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:442: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:442"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:442"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:442: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:442"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:442"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:442: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:442"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:442"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:443: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- add-br br0 -- get-controller br0 -- set-controller br0 tcp:4.5.6.7 -- get-controller br0 -- del-controller br0 -- get-controller br0 -- set-controller br0 tcp:8.9.10.11 tcp:5.4.3.2 -- get-controller br0"
at_fn_check_prepare_trace "ovs-vsctl.at:443"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- add-br br0 -- get-controller br0 -- set-controller br0 tcp:4.5.6.7 -- get-controller br0 -- del-controller br0 -- get-controller br0 -- set-controller br0 tcp:8.9.10.11 tcp:5.4.3.2 -- get-controller br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "


tcp:4.5.6.7



tcp:5.4.3.2\\ntcp:8.9.10.11
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:443"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:443: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:443"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:443"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:443: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:443"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:443"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:443: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:443: wait failed" >&5

    $as_echo "ovs-vsctl.at:443" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:443"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:463: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:463"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:463"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:463: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:463"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:463"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:463: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:463: wait failed" >&5

    $as_echo "ovs-vsctl.at:463" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:463"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2286
#AT_START_2287
at_fn_group_banner 2287 'ovs-vsctl.at:587' \
  "simple fake bridge (VLAN 9)" "                    " 108
at_xfail=no
(
  $as_echo "2287. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:587"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xapi1 xenbr0 9
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xapi1 xenbr0 9
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xapi1 eth0.9
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xapi1 xenbr0 9
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xapi1 xenbr0 9
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xapi1 eth0.9

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: \"--may-exist add-br xapi1\" but xapi1 is a VLAN bridge for VLAN 9
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xapi1 xxx 9
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xapi1 xxx 9

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: \"--may-exist add-br xapi1 xxx 9\" but xapi1 has the wrong parent xenbr0
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xapi1 xenbr0 10
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xapi1 xenbr0 10

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: \"--may-exist add-br xapi1 xenbr0 10\" but xapi1 is a VLAN bridge for the wrong VLAN 9
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br dup xenbr0 9
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br dup xenbr0 9

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: bridge xenbr0 already has a child VLAN bridge xapi1 on VLAN 9
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1
xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1\\nxenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check br-to-vlan, without --oneline.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "9
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   # Check br-to-vlan, with --oneline.
   # (This particular test is interesting with --oneline because it returns
   # an integer instead of a string and that can cause type mismatches inside
   # python if not done carefully.)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "9
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check multiple queries in a single run.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent xapi1 -- br-to-vlan xapi1"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent xapi1 -- br-to-vlan xapi1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
9
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check br-to-vlan, without --oneline.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   # Check br-to-vlan, with --oneline.
   # (This particular test is interesting with --oneline because it returns
   # an integer instead of a string and that can cause type mismatches inside
   # python if not done carefully.)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check multiple queries in a single run.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent xenbr0 -- br-to-vlan xenbr0"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent xenbr0 -- br-to-vlan xenbr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no port named xenbr0
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br eth0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br eth0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no interface named xenbr0
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0.9
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0.9
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no port named xapi1
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br eth0.9
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br eth0.9

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0.9
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no interface named xapi1
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth0.9
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth0.9

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2287
#AT_START_2288
at_fn_group_banner 2288 'ovs-vsctl.at:587' \
  "list bridges -- real and fake (VLAN 9)" "         " 108
at_xfail=no
(
  $as_echo "2288. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:587"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xapi1 xenbr0 9
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xapi1 xenbr0 9
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xapi1 eth0.9
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xapi1 xenbr0 9
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xapi1 xenbr0 9
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xapi1 eth0.9

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- -- list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- -- list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1\\nxenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- -- --real list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- -- --real list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- -- --fake list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- -- --fake list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2288
#AT_START_2289
at_fn_group_banner 2289 'ovs-vsctl.at:587' \
  "simple fake bridge + del-br fake bridge (VLAN 9)" "" 108
at_xfail=no
(
  $as_echo "2289. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:587"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xapi1 xenbr0 9
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xapi1 xenbr0 9
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xapi1 eth0.9
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xapi1 xenbr0 9
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xapi1 xenbr0 9
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xapi1 eth0.9

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket del-br xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket del-br xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check br-to-vlan, without --oneline.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   # Check br-to-vlan, with --oneline.
   # (This particular test is interesting with --oneline because it returns
   # an integer instead of a string and that can cause type mismatches inside
   # python if not done carefully.)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check multiple queries in a single run.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent xenbr0 -- br-to-vlan xenbr0"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent xenbr0 -- br-to-vlan xenbr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no port named xenbr0
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br eth0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br eth0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no interface named xenbr0
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2289
#AT_START_2290
at_fn_group_banner 2290 'ovs-vsctl.at:587' \
  "simple fake bridge + del-br real bridge (VLAN 9)" "" 108
at_xfail=no
(
  $as_echo "2290. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:587"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xapi1 xenbr0 9
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xapi1 xenbr0 9
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xapi1 eth0.9
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xapi1 xenbr0 9
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xapi1 xenbr0 9
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xapi1 eth0.9

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket del-br xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket del-br xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2290
#AT_START_2291
at_fn_group_banner 2291 'ovs-vsctl.at:587' \
  "simple fake bridge + external IDs (VLAN 9)" "     " 108
at_xfail=no
(
  $as_echo "2291. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:587"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xapi1 xenbr0 9
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xapi1 xenbr0 9
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xapi1 eth0.9
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xapi1 xenbr0 9
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xapi1 xenbr0 9
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xapi1 eth0.9

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-set-external-id xenbr0 key0 value0 -- br-set-external-id xapi1 key1 value1 -- br-get-external-id xenbr0 -- br-get-external-id xenbr0 key0 -- br-get-external-id xapi1 -- br-get-external-id xapi1 key1"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-set-external-id xenbr0 key0 value0 -- br-set-external-id xapi1 key1 value1 -- br-get-external-id xenbr0 -- br-get-external-id xenbr0 key0 -- br-get-external-id xapi1 -- br-get-external-id xapi1 key1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "

key0=value0
value0
key1=value1
value1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1
xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1\\nxenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check br-to-vlan, without --oneline.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "9
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   # Check br-to-vlan, with --oneline.
   # (This particular test is interesting with --oneline because it returns
   # an integer instead of a string and that can cause type mismatches inside
   # python if not done carefully.)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "9
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check multiple queries in a single run.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent xapi1 -- br-to-vlan xapi1"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent xapi1 -- br-to-vlan xapi1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
9
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check br-to-vlan, without --oneline.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   # Check br-to-vlan, with --oneline.
   # (This particular test is interesting with --oneline because it returns
   # an integer instead of a string and that can cause type mismatches inside
   # python if not done carefully.)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check multiple queries in a single run.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent xenbr0 -- br-to-vlan xenbr0"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent xenbr0 -- br-to-vlan xenbr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no port named xenbr0
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br eth0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br eth0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no interface named xenbr0
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0.9
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0.9
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no port named xapi1
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br eth0.9
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br eth0.9

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0.9
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no interface named xapi1
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth0.9
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth0.9

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2291
#AT_START_2292
at_fn_group_banner 2292 'ovs-vsctl.at:587' \
  "simple fake bridge + del-port from parent (VLAN 9)" "" 108
at_xfail=no
(
  $as_echo "2292. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:587"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xapi1 xenbr0 9
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xapi1 xenbr0 9
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xapi1 eth0.9
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xapi1 xenbr0 9
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xapi1 xenbr0 9
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xapi1 eth0.9

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket del-port xenbr0 eth0.9
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket del-port xenbr0 eth0.9

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: bridge xenbr0 does not have a port eth0.9 (although its child bridge xapi1 does)
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no port named xenbr0
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br eth0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br eth0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no interface named xenbr0
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0.9
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0.9
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no port named xapi1
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br eth0.9
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br eth0.9

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0.9
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no interface named xapi1
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth0.9
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth0.9

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket del-port xapi1 eth0.9
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket del-port xapi1 eth0.9

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no port named xenbr0
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br eth0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br eth0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no interface named xenbr0
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:587"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:587: wait failed" >&5

    $as_echo "ovs-vsctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:587"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2292
#AT_START_2293
at_fn_group_banner 2293 'ovs-vsctl.at:588' \
  "simple fake bridge (VLAN 0)" "                    " 109
at_xfail=no
(
  $as_echo "2293. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:588"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xapi1 xenbr0 0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xapi1 xenbr0 0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xapi1 eth0.0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xapi1 xenbr0 0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xapi1 xenbr0 0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xapi1 eth0.0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: \"--may-exist add-br xapi1\" but xapi1 is a VLAN bridge for VLAN 0
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xapi1 xxx 0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xapi1 xxx 0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: \"--may-exist add-br xapi1 xxx 0\" but xapi1 has the wrong parent xenbr0
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xapi1 xenbr0 10
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xapi1 xenbr0 10

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: \"--may-exist add-br xapi1 xenbr0 10\" but xapi1 is a VLAN bridge for the wrong VLAN 0
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br dup xenbr0 0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br dup xenbr0 0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: bridge xenbr0 already has a child VLAN bridge xapi1 on VLAN 0
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1
xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1\\nxenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check br-to-vlan, without --oneline.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   # Check br-to-vlan, with --oneline.
   # (This particular test is interesting with --oneline because it returns
   # an integer instead of a string and that can cause type mismatches inside
   # python if not done carefully.)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check multiple queries in a single run.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent xapi1 -- br-to-vlan xapi1"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent xapi1 -- br-to-vlan xapi1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check br-to-vlan, without --oneline.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   # Check br-to-vlan, with --oneline.
   # (This particular test is interesting with --oneline because it returns
   # an integer instead of a string and that can cause type mismatches inside
   # python if not done carefully.)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check multiple queries in a single run.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent xenbr0 -- br-to-vlan xenbr0"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent xenbr0 -- br-to-vlan xenbr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no port named xenbr0
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br eth0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br eth0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no interface named xenbr0
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0.0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0.0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no port named xapi1
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br eth0.0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br eth0.0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0.0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no interface named xapi1
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth0.0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth0.0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2293
#AT_START_2294
at_fn_group_banner 2294 'ovs-vsctl.at:588' \
  "list bridges -- real and fake (VLAN 0)" "         " 109
at_xfail=no
(
  $as_echo "2294. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:588"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xapi1 xenbr0 0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xapi1 xenbr0 0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xapi1 eth0.0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xapi1 xenbr0 0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xapi1 xenbr0 0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xapi1 eth0.0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- -- list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- -- list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1\\nxenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- -- --real list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- -- --real list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- -- --fake list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- -- --fake list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2294
#AT_START_2295
at_fn_group_banner 2295 'ovs-vsctl.at:588' \
  "simple fake bridge + del-br fake bridge (VLAN 0)" "" 109
at_xfail=no
(
  $as_echo "2295. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:588"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xapi1 xenbr0 0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xapi1 xenbr0 0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xapi1 eth0.0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xapi1 xenbr0 0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xapi1 xenbr0 0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xapi1 eth0.0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket del-br xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket del-br xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check br-to-vlan, without --oneline.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   # Check br-to-vlan, with --oneline.
   # (This particular test is interesting with --oneline because it returns
   # an integer instead of a string and that can cause type mismatches inside
   # python if not done carefully.)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check multiple queries in a single run.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent xenbr0 -- br-to-vlan xenbr0"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent xenbr0 -- br-to-vlan xenbr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no port named xenbr0
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br eth0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br eth0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no interface named xenbr0
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2295
#AT_START_2296
at_fn_group_banner 2296 'ovs-vsctl.at:588' \
  "simple fake bridge + del-br real bridge (VLAN 0)" "" 109
at_xfail=no
(
  $as_echo "2296. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:588"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xapi1 xenbr0 0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xapi1 xenbr0 0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xapi1 eth0.0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xapi1 xenbr0 0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xapi1 xenbr0 0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xapi1 eth0.0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket del-br xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket del-br xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2296
#AT_START_2297
at_fn_group_banner 2297 'ovs-vsctl.at:588' \
  "simple fake bridge + external IDs (VLAN 0)" "     " 109
at_xfail=no
(
  $as_echo "2297. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:588"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xapi1 xenbr0 0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xapi1 xenbr0 0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xapi1 eth0.0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xapi1 xenbr0 0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xapi1 xenbr0 0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xapi1 eth0.0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-set-external-id xenbr0 key0 value0 -- br-set-external-id xapi1 key1 value1 -- br-get-external-id xenbr0 -- br-get-external-id xenbr0 key0 -- br-get-external-id xapi1 -- br-get-external-id xapi1 key1"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-set-external-id xenbr0 key0 value0 -- br-set-external-id xapi1 key1 value1 -- br-get-external-id xenbr0 -- br-get-external-id xenbr0 key0 -- br-get-external-id xapi1 -- br-get-external-id xapi1 key1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "

key0=value0
value0
key1=value1
value1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1
xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1\\nxenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check br-to-vlan, without --oneline.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   # Check br-to-vlan, with --oneline.
   # (This particular test is interesting with --oneline because it returns
   # an integer instead of a string and that can cause type mismatches inside
   # python if not done carefully.)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check multiple queries in a single run.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent xapi1 -- br-to-vlan xapi1"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent xapi1 -- br-to-vlan xapi1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check br-to-vlan, without --oneline.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   # Check br-to-vlan, with --oneline.
   # (This particular test is interesting with --oneline because it returns
   # an integer instead of a string and that can cause type mismatches inside
   # python if not done carefully.)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check multiple queries in a single run.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent xenbr0 -- br-to-vlan xenbr0"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent xenbr0 -- br-to-vlan xenbr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no port named xenbr0
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br eth0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br eth0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no interface named xenbr0
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0.0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0.0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no port named xapi1
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br eth0.0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br eth0.0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0.0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no interface named xapi1
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth0.0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth0.0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2297
#AT_START_2298
at_fn_group_banner 2298 'ovs-vsctl.at:588' \
  "simple fake bridge + del-port from parent (VLAN 0)" "" 109
at_xfail=no
(
  $as_echo "2298. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:588"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xapi1 xenbr0 0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xapi1 xenbr0 0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xapi1 eth0.0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xenbr0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-port xenbr0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xapi1 xenbr0 0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --may-exist add-br xapi1 xenbr0 0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xapi1 eth0.0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket del-port xenbr0 eth0.0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket del-port xenbr0 eth0.0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: bridge xenbr0 does not have a port eth0.0 (although its child bridge xapi1 does)
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no port named xenbr0
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br eth0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br eth0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no interface named xenbr0
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0.0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0.0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no port named xapi1
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br eth0.0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br eth0.0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0.0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no interface named xapi1
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth0.0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth0.0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket del-port xapi1 eth0.0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket del-port xapi1 eth0.0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no port named xenbr0
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br eth0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br eth0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xenbr0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xenbr0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no interface named xenbr0
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:588"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xenbr0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:588: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:588"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:588"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:588: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:588: wait failed" >&5

    $as_echo "ovs-vsctl.at:588" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:588"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2298
#AT_START_2299
at_fn_group_banner 2299 'ovs-vsctl.at:600' \
  "fake bridge on bond" "                            " 109
at_xfail=no
(
  $as_echo "2299. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:602: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:602"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:602"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:602: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:602"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:602"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:602: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:602"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:602"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:603: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xapi1
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-bond xapi1 bond0 eth0 eth1
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xapi2 xapi1 11
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xapi2 bond0.11
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:603"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xapi1
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-bond xapi1 bond0 eth0 eth1
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xapi2 xapi1 11
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xapi2 bond0.11

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:603"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:603: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:603"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:603"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:603: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:603"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:603"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:603: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:603: wait failed" >&5

    $as_echo "ovs-vsctl.at:603" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:603"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:604"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1
xapi2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:604"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:604"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:604: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:604: wait failed" >&5

    $as_echo "ovs-vsctl.at:604" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:604"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:604"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1\\nxapi2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:604"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:604"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:604: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:604: wait failed" >&5

    $as_echo "ovs-vsctl.at:604" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:604"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:604"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:604"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:604"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:604: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:604: wait failed" >&5

    $as_echo "ovs-vsctl.at:604" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:604"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists xapi2
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:604"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists xapi2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:604"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:604"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:604: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:604: wait failed" >&5

    $as_echo "ovs-vsctl.at:604" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:604"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:604"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ovs-vsctl.at:604"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:604"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:604"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:604: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:604: wait failed" >&5

    $as_echo "ovs-vsctl.at:604" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:604"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:604"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:604"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:604"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:604: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:604: wait failed" >&5

    $as_echo "ovs-vsctl.at:604" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:604"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check br-to-vlan, without --oneline.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:604"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:604"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:604"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:604: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:604: wait failed" >&5

    $as_echo "ovs-vsctl.at:604" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:604"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   # Check br-to-vlan, with --oneline.
   # (This particular test is interesting with --oneline because it returns
   # an integer instead of a string and that can cause type mismatches inside
   # python if not done carefully.)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:604"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:604"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:604"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:604: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:604: wait failed" >&5

    $as_echo "ovs-vsctl.at:604" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:604"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check multiple queries in a single run.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent xapi1 -- br-to-vlan xapi1"
at_fn_check_prepare_trace "ovs-vsctl.at:604"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent xapi1 -- br-to-vlan xapi1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1
0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:604"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:604"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:604: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:604: wait failed" >&5

    $as_echo "ovs-vsctl.at:604" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:604"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent xapi2
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:604"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent xapi2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:604"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:604"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:604: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:604: wait failed" >&5

    $as_echo "ovs-vsctl.at:604" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:604"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check br-to-vlan, without --oneline.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan xapi2
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:604"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan xapi2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "11
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:604"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:604"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:604: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:604: wait failed" >&5

    $as_echo "ovs-vsctl.at:604" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:604"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   # Check br-to-vlan, with --oneline.
   # (This particular test is interesting with --oneline because it returns
   # an integer instead of a string and that can cause type mismatches inside
   # python if not done carefully.)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan xapi2
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:604"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan xapi2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "11
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:604"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:604"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:604: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:604: wait failed" >&5

    $as_echo "ovs-vsctl.at:604" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:604"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check multiple queries in a single run.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent xapi2 -- br-to-vlan xapi2"
at_fn_check_prepare_trace "ovs-vsctl.at:604"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent xapi2 -- br-to-vlan xapi2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1
11
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:604"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:604: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:604"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:604"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:604: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:604: wait failed" >&5

    $as_echo "ovs-vsctl.at:604" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:604"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:605: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:605"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "bond0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:605"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:605: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:605"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:605"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:605: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:605"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:605"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:605: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:605: wait failed" >&5

    $as_echo "ovs-vsctl.at:605" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:605"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:605: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:605"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "bond0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:605"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:605: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:605"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:605"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:605: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:605"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:605"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:605: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:605: wait failed" >&5

    $as_echo "ovs-vsctl.at:605" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:605"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:605: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:605"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no port named xapi1
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:605"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:605: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:605"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:605"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:605: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:605"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:605"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:605: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:605: wait failed" >&5

    $as_echo "ovs-vsctl.at:605" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:605"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:605: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br bond0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:605"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br bond0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:605"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:605: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:605"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:605"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:605: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:605"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:605"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:605: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:605: wait failed" >&5

    $as_echo "ovs-vsctl.at:605" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:605"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:606: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:606"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0
eth1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:606"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:606: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:606"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:606"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:606: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:606"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:606"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:606: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:606: wait failed" >&5

    $as_echo "ovs-vsctl.at:606" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:606"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:606: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:606"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no interface named xapi1
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:606"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:606: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:606"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:606"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:606: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:606"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:606"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:606: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:606: wait failed" >&5

    $as_echo "ovs-vsctl.at:606" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:606"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:606: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:606"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:606"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:606: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:606"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:606"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:606: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:606"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:606"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:606: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:606: wait failed" >&5

    $as_echo "ovs-vsctl.at:606" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:606"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:606: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:606"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:606"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:606: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:606"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:606"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:606: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:606"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:606"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:606: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:606: wait failed" >&5

    $as_echo "ovs-vsctl.at:606" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:606"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:607: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xapi2
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:607"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xapi2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "bond0.11
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:607"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:607: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:607"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:607"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:607: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:607"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:607"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:607: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:607: wait failed" >&5

    $as_echo "ovs-vsctl.at:607" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:607"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:607: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xapi2
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:607"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xapi2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "bond0.11
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:607"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:607: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:607"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:607"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:607: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:607"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:607"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:607: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:607: wait failed" >&5

    $as_echo "ovs-vsctl.at:607" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:607"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:607: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xapi2
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:607"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xapi2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no port named xapi2
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:607"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:607: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:607"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:607"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:607: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:607"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:607"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:607: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:607: wait failed" >&5

    $as_echo "ovs-vsctl.at:607" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:607"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:607: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br bond0.11
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:607"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br bond0.11

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:607"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:607: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:607"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:607"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:607: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:607"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:607"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:607: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:607: wait failed" >&5

    $as_echo "ovs-vsctl.at:607" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:607"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:608: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xapi2
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:608"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xapi2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "bond0.11
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:608"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:608: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:608"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:608"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:608: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:608"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:608"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:608: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:608: wait failed" >&5

    $as_echo "ovs-vsctl.at:608" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:608"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:608: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xapi2
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:608"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xapi2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no interface named xapi2
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:608"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:608: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:608"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:608"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:608: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:608"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:608"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:608: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:608: wait failed" >&5

    $as_echo "ovs-vsctl.at:608" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:608"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:608: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br bond0.11
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:608"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br bond0.11

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:608"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:608: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:608"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:608"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:608: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:608"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:608"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:608: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:608: wait failed" >&5

    $as_echo "ovs-vsctl.at:608" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:608"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:609: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:609"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:609"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:609: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:609"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:609"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:609: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:609: wait failed" >&5

    $as_echo "ovs-vsctl.at:609" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:609"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2299
#AT_START_2300
at_fn_group_banner 2300 'ovs-vsctl.at:612' \
  "fake bridge on bond + del-br fake bridge" "       " 109
at_xfail=no
(
  $as_echo "2300. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:614: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:614"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:614"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:614: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:614"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:614"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:614: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:614"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:614"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:615: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xapi1
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-bond xapi1 bond0 eth0 eth1
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xapi2 xapi1 11
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xapi2 bond0.11
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:615"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xapi1
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-bond xapi1 bond0 eth0 eth1
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xapi2 xapi1 11
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xapi2 bond0.11

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:615"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:615: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:615"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:615: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:615"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:615: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:615: wait failed" >&5

    $as_echo "ovs-vsctl.at:615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:615"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:616: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- del-br xapi2
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:616"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- del-br xapi2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:616"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:616: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:616"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:616"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:616: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:616"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:616"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:616: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:616: wait failed" >&5

    $as_echo "ovs-vsctl.at:616" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:616"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:618: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:618"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:618"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:618: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:618"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:618"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:618: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:618"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:618"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:618: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:618: wait failed" >&5

    $as_echo "ovs-vsctl.at:618" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:618"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:618: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:618"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:618"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:618: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:618"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:618"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:618: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:618"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:618"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:618: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:618: wait failed" >&5

    $as_echo "ovs-vsctl.at:618" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:618"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:618: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:618"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:618"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:618: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:618"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:618"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:618: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:618"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:618"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:618: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:618: wait failed" >&5

    $as_echo "ovs-vsctl.at:618" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:618"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:618: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:618"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ovs-vsctl.at:618"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:618: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:618"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:618"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:618: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:618"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:618"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:618: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:618: wait failed" >&5

    $as_echo "ovs-vsctl.at:618" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:618"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:618: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:618"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:618"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:618: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:618"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:618"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:618: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:618"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:618"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:618: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:618: wait failed" >&5

    $as_echo "ovs-vsctl.at:618" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:618"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check br-to-vlan, without --oneline.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:618: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:618"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:618"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:618: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:618"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:618"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:618: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:618"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:618"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:618: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:618: wait failed" >&5

    $as_echo "ovs-vsctl.at:618" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:618"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   # Check br-to-vlan, with --oneline.
   # (This particular test is interesting with --oneline because it returns
   # an integer instead of a string and that can cause type mismatches inside
   # python if not done carefully.)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:618: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:618"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:618"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:618: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:618"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:618"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:618: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:618"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:618"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:618: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:618: wait failed" >&5

    $as_echo "ovs-vsctl.at:618" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:618"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check multiple queries in a single run.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:618: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent xapi1 -- br-to-vlan xapi1"
at_fn_check_prepare_trace "ovs-vsctl.at:618"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent xapi1 -- br-to-vlan xapi1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1
0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:618"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:618: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:618"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:618"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:618: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:618"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:618"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:618: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:618: wait failed" >&5

    $as_echo "ovs-vsctl.at:618" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:618"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:619: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:619"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "bond0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:619"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:619: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:619"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:619"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:619: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:619"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:619"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:619: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:619: wait failed" >&5

    $as_echo "ovs-vsctl.at:619" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:619"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:619: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:619"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "bond0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:619"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:619: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:619"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:619"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:619: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:619"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:619"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:619: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:619: wait failed" >&5

    $as_echo "ovs-vsctl.at:619" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:619"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:619: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:619"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no port named xapi1
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:619"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:619: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:619"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:619"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:619: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:619"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:619"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:619: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:619: wait failed" >&5

    $as_echo "ovs-vsctl.at:619" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:619"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:619: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br bond0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:619"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br bond0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:619"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:619: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:619"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:619"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:619: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:619"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:619"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:619: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:619: wait failed" >&5

    $as_echo "ovs-vsctl.at:619" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:619"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:620: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:620"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "eth0
eth1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:620"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:620: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:620"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:620"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:620: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:620"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:620"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:620: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:620: wait failed" >&5

    $as_echo "ovs-vsctl.at:620" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:620"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:620: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:620"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no interface named xapi1
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:620"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:620: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:620"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:620"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:620: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:620"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:620"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:620: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:620: wait failed" >&5

    $as_echo "ovs-vsctl.at:620" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:620"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:620: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:620"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:620"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:620: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:620"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:620"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:620: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:620"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:620"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:620: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:620: wait failed" >&5

    $as_echo "ovs-vsctl.at:620" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:620"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:620: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:620"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br eth1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "xapi1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:620"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:620: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:620"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:620"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:620: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:620"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:620"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:620: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:620: wait failed" >&5

    $as_echo "ovs-vsctl.at:620" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:620"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:621: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:621"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:621"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:621: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:621"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:621"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:621: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:621: wait failed" >&5

    $as_echo "ovs-vsctl.at:621" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:621"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2300
#AT_START_2301
at_fn_group_banner 2301 'ovs-vsctl.at:624' \
  "fake bridge on bond + del-br real bridge" "       " 109
at_xfail=no
(
  $as_echo "2301. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:626: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:626"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:626"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:626: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:626"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:626"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:626: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:626"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:626"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:627: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xapi1
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-bond xapi1 bond0 eth0 eth1
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xapi2 xapi1 11
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xapi2 bond0.11
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:627"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xapi1
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-bond xapi1 bond0 eth0 eth1
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br xapi2 xapi1 11
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port xapi2 bond0.11

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:627"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:627: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:627"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:627"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:627: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:627"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:627"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:627: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:627: wait failed" >&5

    $as_echo "ovs-vsctl.at:627" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:627"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:628: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket del-br xapi1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:628"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket del-br xapi1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:628"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:629: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:629"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:629"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:629: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:629"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:629"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:629: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:629"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:629"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:629: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:629: wait failed" >&5

    $as_echo "ovs-vsctl.at:629" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:629"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:629: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:629"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:629"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:629: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:629"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:629"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:629: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:629"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:629"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:629: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:629: wait failed" >&5

    $as_echo "ovs-vsctl.at:629" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:629"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }



   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:629: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:629"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ovs-vsctl.at:629"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:629: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:629"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:629"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:629: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:629"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:629"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:629: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:629: wait failed" >&5

    $as_echo "ovs-vsctl.at:629" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:629"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:630: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:630"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:630"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:630: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:630"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:630"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:630: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:630: wait failed" >&5

    $as_echo "ovs-vsctl.at:630" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:630"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2301
#AT_START_2302
at_fn_group_banner 2302 'ovs-vsctl.at:636' \
  "managers" "                                       " 110
at_xfail=no
(
  $as_echo "2302. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:638: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:638"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:638"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:638: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:638"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:638"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:638: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:638"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:638"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:639: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- del-manager -- get-manager -- set-manager tcp:4.5.6.7 -- get-manager -- set-manager tcp:8.9.10.11 tcp:5.4.3.2 -- get-manager -- del-manager -- get-manager"
at_fn_check_prepare_trace "ovs-vsctl.at:639"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- del-manager -- get-manager -- set-manager tcp:4.5.6.7 -- get-manager -- set-manager tcp:8.9.10.11 tcp:5.4.3.2 -- get-manager -- del-manager -- get-manager
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "


tcp:4.5.6.7

tcp:5.4.3.2\\ntcp:8.9.10.11


" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:639"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:639: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:639"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:639"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:639: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:639"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:639"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:639: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:639: wait failed" >&5

    $as_echo "ovs-vsctl.at:639" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:639"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:656: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:656"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:656"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:656: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:656"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:656"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:656: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:656: wait failed" >&5

    $as_echo "ovs-vsctl.at:656" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:656"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2302
#AT_START_2303
at_fn_group_banner 2303 'ovs-vsctl.at:662' \
  "database commands -- positive checks" "           " 111
at_xfail=no
(
  $as_echo "2303. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:664: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:664"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:664"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:664: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:664"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:664"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:664: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:664"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:664"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:665: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- --id=@br0 create bridge name=br123 -- set b br123 name=br0 -- set o . bridges=@br0"
at_fn_check_prepare_trace "ovs-vsctl.at:665"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- --id=@br0 create bridge name=br123 -- set b br123 name=br0 -- set o . bridges=@br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:665"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:665: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:665"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:665"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:665: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:665"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:665"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:665: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:665: wait failed" >&5

    $as_echo "ovs-vsctl.at:665" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:665"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

cp stdout out1
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:671: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list bridge
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket get bridge br0 _uuid
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:671"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list bridge
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket get bridge br0 _uuid

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:671"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:671: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:671"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:671"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:671: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:671"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:671"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:671: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:671: wait failed" >&5

    $as_echo "ovs-vsctl.at:671" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:671"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

cp stdout out2
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:674: uuidfilt out1 out2"
at_fn_check_prepare_trace "ovs-vsctl.at:674"
( $at_check_trace; uuidfilt out1 out2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "<0>


_uuid               : <0>
auto_attach         : []
controller          : []
datapath_id         : []
datapath_type       : \"\"
datapath_version    : \"\"
external_ids        : {}
fail_mode           : []
flood_vlans         : []
flow_tables         : {}
ipfix               : []
mcast_snooping_enable: false
mirrors             : []
name                : \"br0\"
netflow             : []
other_config        : {}
ports               : []
protocols           : []
rstp_enable         : false
rstp_status         : {}
sflow               : []
status              : {}
stp_enable          : false
<0>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:674"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:703: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --columns=fail_mode,name,datapath_type list bridge
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:703"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --columns=fail_mode,name,datapath_type list bridge

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "fail_mode           : []
name                : \"br0\"
datapath_type       : \"\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:703"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:710: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --columns=fail_mode,name,datapath_type find bridge
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:710"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --columns=fail_mode,name,datapath_type find bridge

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "fail_mode           : []
name                : \"br0\"
datapath_type       : \"\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:710"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:717:
  ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- --id=@br1 create bridge name=br1 datapath_type=\"foo\" -- --id=@br2 create bridge name=br2 external-ids:bar=quux -- add o . bridges @br1 @br2"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:717"
( $at_check_trace;
  ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- --id=@br1 create bridge name=br1 datapath_type="foo" -- --id=@br2 create bridge name=br2 external-ids:bar=quux -- add o . bridges @br1 @br2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:717"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:717: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:717"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:717"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:717: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:717"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:717"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:717: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:717: wait failed" >&5

    $as_echo "ovs-vsctl.at:717" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:717"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:722: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --columns=name find bridge datapath_type!=foo
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:722"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --columns=name find bridge datapath_type!=foo

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:722"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:725: sed -n '/./p' stdout | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-vsctl.at:725"
( $at_check_trace; sed -n '/./p' stdout | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "name                : \"br0\"
name                : \"br2\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:725"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:729: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket set bridge br0 \\
      'other_config:datapath_id=\"0123456789ab\"' \\
      'other_config:hwaddr=\"00:11:22:33:44:55\"' \\
      'external-ids={\"uuids\"=\"9c45f225-a7cf-439d-976d-83db6271fda1\"}' -- \\
     add bridge br0 external_ids '\"roles\"=\"local; remote; cloud\"'
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:729"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket set bridge br0 \
      'other_config:datapath_id="0123456789ab"' \
      'other_config:hwaddr="00:11:22:33:44:55"' \
      'external-ids={"uuids"="9c45f225-a7cf-439d-976d-83db6271fda1"}' -- \
     add bridge br0 external_ids '"roles"="local; remote; cloud"'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:729"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:729: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:729"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:729"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:729: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:729"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:729"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:729: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:729: wait failed" >&5

    $as_echo "ovs-vsctl.at:729" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:729"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:737: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- get bridge br0 other_config external-ids
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:737"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- get bridge br0 other_config external-ids

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{datapath_id=\"0123456789ab\", hwaddr=\"00:11:22:33:44:55\"}\\n{roles=\"local; remote; cloud\", uuids=\"9c45f225-a7cf-439d-976d-83db6271fda1\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:737"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:737: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:737"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:737"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:737: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:737"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:737"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:737: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:737: wait failed" >&5

    $as_echo "ovs-vsctl.at:737" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:737"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:740: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket get bridge br0 other_config:hwaddr -- --if-exists get bridge br0 other-config:nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:740"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket get bridge br0 other_config:hwaddr -- --if-exists get bridge br0 other-config:nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"00:11:22:33:44:55\"

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:740"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:740: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:740"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:740"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:740: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:740"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:740"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:740: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:740: wait failed" >&5

    $as_echo "ovs-vsctl.at:740" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:740"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:744: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket remove bridge br0 other_config hwaddr 'datapath_id=\"\"' -- get bridge br0 other_config
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:744"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket remove bridge br0 other_config hwaddr 'datapath_id=""' -- get bridge br0 other_config

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{datapath_id=\"0123456789ab\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:744"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:744: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:744"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:744"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:744: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:744"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:744"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:744: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:744: wait failed" >&5

    $as_echo "ovs-vsctl.at:744" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:744"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:747: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket remove bridge br0 other_config 'datapath_id=\"0123456789ab\"' -- get bridge br0 other_config
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:747"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket remove bridge br0 other_config 'datapath_id="0123456789ab"' -- get bridge br0 other_config

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:747"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:747: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:747"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:747"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:747: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:747"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:747"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:747: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:747: wait failed" >&5

    $as_echo "ovs-vsctl.at:747" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:747"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:750: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket clear bridge br0 external-ids -- get bridge br0 external_ids
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:750"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket clear bridge br0 external-ids -- get bridge br0 external_ids

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:750"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:750: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:750"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:750"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:750: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:750"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:750"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:750: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:750: wait failed" >&5

    $as_echo "ovs-vsctl.at:750" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:750"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:753: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- destroy bridge br0 -- destroy bridge br1 -- destroy bridge br2 -- clear o . bridges"
at_fn_check_prepare_trace "ovs-vsctl.at:753"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- destroy bridge br0 -- destroy bridge br1 -- destroy bridge br2 -- clear o . bridges
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:753"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:753: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:753"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:753"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:753: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:753"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:753"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:753: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:753: wait failed" >&5

    $as_echo "ovs-vsctl.at:753" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:753"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:758: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list bridge
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:758"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list bridge

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:758"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:758: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:758"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:758"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:758: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:758"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:758"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:758: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:758: wait failed" >&5

    $as_echo "ovs-vsctl.at:758" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:758"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:760: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --if-exists get bridge x datapath_id
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:760"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --if-exists get bridge x datapath_id

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:760"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:760: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:760"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:760"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:760: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:760"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:760"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:760: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:760: wait failed" >&5

    $as_echo "ovs-vsctl.at:760" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:760"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:762: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --if-exists list bridge x
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:762"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --if-exists list bridge x

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:762"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:762: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:762"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:762"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:762: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:762"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:762"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:762: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:762: wait failed" >&5

    $as_echo "ovs-vsctl.at:762" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:762"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:764: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --if-exists set controller x connection_mode=standalone
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:764"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --if-exists set controller x connection_mode=standalone

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:764"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:764: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:764"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:764"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:764: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:764"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:764"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:764: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:764: wait failed" >&5

    $as_echo "ovs-vsctl.at:764" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:764"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:766: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --if-exists remove netflow x targets '\"1.2.3.4:567\"'
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:766"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --if-exists remove netflow x targets '"1.2.3.4:567"'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:766"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:766: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:766"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:766"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:766: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:766"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:766"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:766: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:766: wait failed" >&5

    $as_echo "ovs-vsctl.at:766" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:766"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:769: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --if-exists clear netflow x targets
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:769"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --if-exists clear netflow x targets

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:769"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:769: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:769"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:769"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:769: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:769"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:769"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:769: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:769: wait failed" >&5

    $as_echo "ovs-vsctl.at:769" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:769"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:772: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:772"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:772"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:772: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:772"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:772"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:772: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:772: wait failed" >&5

    $as_echo "ovs-vsctl.at:772" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:772"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2303
#AT_START_2304
at_fn_group_banner 2304 'ovs-vsctl.at:775' \
  "database commands -- negative checks" "           " 111
at_xfail=no
(
  $as_echo "2304. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:777: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:777"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:777"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:777: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:777"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:777"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:777: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:777"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:777"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:779: ovs-vsctl --may-exist"
at_fn_check_prepare_trace "ovs-vsctl.at:779"
( $at_check_trace; ovs-vsctl --may-exist
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: missing command name (use --help for help)
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:779"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:779: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:779"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:779"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:779: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:779"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:779"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:779: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:779: wait failed" >&5

    $as_echo "ovs-vsctl.at:779" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:779"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:782: ovs-vsctl --may-exist --"
at_fn_check_prepare_trace "ovs-vsctl.at:782"
( $at_check_trace; ovs-vsctl --may-exist --
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: missing command name (use --help for help)
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:782"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:782: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:782"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:782"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:782: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:782"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:782"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:782: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:782: wait failed" >&5

    $as_echo "ovs-vsctl.at:782" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:782"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:785: ovs-vsctl -- --may-exist"
at_fn_check_prepare_trace "ovs-vsctl.at:785"
( $at_check_trace; ovs-vsctl -- --may-exist
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: missing command name (use --help for help)
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:785"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:785: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:785"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:785"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:785: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:785"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:785"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:785: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:785: wait failed" >&5

    $as_echo "ovs-vsctl.at:785" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:785"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:789: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br br0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:789"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br br0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:789"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:789: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:789"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:789"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:789: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:789"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:789"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:789: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:789: wait failed" >&5

    $as_echo "ovs-vsctl.at:789" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:789"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:791: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br br1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:791"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br br1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:791"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:791: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:791"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:791"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:791: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:791"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:791"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:791: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:791: wait failed" >&5

    $as_echo "ovs-vsctl.at:791" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:791"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:793: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket set-controller br1 tcp:127.0.0.1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:793"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket set-controller br1 tcp:127.0.0.1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:793"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:793: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:793"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:793"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:793: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:793"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:793"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:793: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:793: wait failed" >&5

    $as_echo "ovs-vsctl.at:793" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:793"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:795: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list netflow br0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:795"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list netflow br0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no row \"br0\" in table NetFlow
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:795"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:795: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:795"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:795"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:795: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:795"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:795"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:795: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:795: wait failed" >&5

    $as_echo "ovs-vsctl.at:795" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:795"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:798:
    ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- --id=@n create netflow targets='\"1.2.3.4:567\"' -- set bridge br0 netflow=@n"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:798"
( $at_check_trace;
    ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- --id=@n create netflow targets='"1.2.3.4:567"' -- set bridge br0 netflow=@n
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:798"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:798: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:798"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:798"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:798: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:798"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:798"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:798: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:798: wait failed" >&5

    $as_echo "ovs-vsctl.at:798" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:798"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

cp stdout netflow-uuid
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:803: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list netflow \`cat netflow-uuid\`
"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:803"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list netflow `cat netflow-uuid`

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:803"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:803: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:803"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:803"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:803: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:803"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:803"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:803: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:803: wait failed" >&5

    $as_echo "ovs-vsctl.at:803" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:803"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:805: uuidfilt netflow-uuid stdout"
at_fn_check_prepare_trace "ovs-vsctl.at:805"
( $at_check_trace; uuidfilt netflow-uuid stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "<0>

_uuid               : <0>
active_timeout      : 0
add_id_to_interface : false
engine_id           : []
engine_type         : []
external_ids        : {}
targets             : [\"1.2.3.4:567\"]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:805"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:816: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list interx x
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:816"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list interx x

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: unknown table \"interx\"
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:816"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:816: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:816"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:816"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:816: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:816"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:816"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:816: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:816: wait failed" >&5

    $as_echo "ovs-vsctl.at:816" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:816"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:819: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list bridge x
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:819"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list bridge x

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no row \"x\" in table Bridge
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:819"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:819: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:819"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:819"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:819: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:819"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:819"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:819: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:819: wait failed" >&5

    $as_echo "ovs-vsctl.at:819" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:819"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:822: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket get bridge x datapath_id
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:822"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket get bridge x datapath_id

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no row \"x\" in table Bridge
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:822"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:822: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:822"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:822"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:822: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:822"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:822"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:822: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:822: wait failed" >&5

    $as_echo "ovs-vsctl.at:822" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:822"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:825: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket get bridge br0 d
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:825"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket get bridge br0 d

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: Bridge contains more than one column whose name matches \"d\"
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:825"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:825: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:825"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:825"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:825: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:825"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:825"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:825: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:825: wait failed" >&5

    $as_echo "ovs-vsctl.at:825" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:825"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:828: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket get bridge br0 x
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:828"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket get bridge br0 x

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: Bridge does not contain a column whose name matches \"x\"
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:828"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:828: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:828"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:828"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:828: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:828"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:828"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:828: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:828: wait failed" >&5

    $as_echo "ovs-vsctl.at:828" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:828"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:831: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket get bridge br0 :y=z
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:831"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket get bridge br0 :y=z

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: :y=z: missing column name
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:831"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:831: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:831"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:831"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:831: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:831"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:831"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:831: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:831: wait failed" >&5

    $as_echo "ovs-vsctl.at:831" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:831"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:834: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket get bridge br0 datapath_id:y=z
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:834"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket get bridge br0 datapath_id:y=z

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: datapath_id:y=z: trailing garbage \"=z\" in argument
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:834"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:834: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:834"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:834"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:834: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:834"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:834"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:834: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:834: wait failed" >&5

    $as_echo "ovs-vsctl.at:834" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:834"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:837: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket set bridge br0 'datapath_id:y>=z'
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:837"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket set bridge br0 'datapath_id:y>=z'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: datapath_id:y>=z: argument does not end in \"=\" followed by a value.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:837"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:837: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:837"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:837"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:837: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:837"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:837"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:837: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:837: wait failed" >&5

    $as_echo "ovs-vsctl.at:837" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:837"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:840: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket set controller x connection_mode=standalone
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:840"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket set controller x connection_mode=standalone

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no row \"x\" in table Controller
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:840"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:840: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:840"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:840"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:840: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:840"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:840"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:840: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:840: wait failed" >&5

    $as_echo "ovs-vsctl.at:840" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:840"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:843: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket wait-until bridge br0 datapath_id:y,z
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:843"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket wait-until bridge br0 datapath_id:y,z

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: datapath_id:y,z: argument does not end in \"=\", \"!=\", \"<\", \">\", \"<=\", \">=\", \"{=}\", \"{!=}\", \"{<}\", \"{>}\", \"{<=}\", or \"{>=}\" followed by a value.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:843"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:843: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:843"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:843"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:843: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:843"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:843"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:843: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:843: wait failed" >&5

    $as_echo "ovs-vsctl.at:843" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:843"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:846: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket get bridge br0 datapath_id::
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:846"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket get bridge br0 datapath_id::

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: datapath_id::: trailing garbage \":\" in argument
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:846"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:846: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:846"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:846"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:846: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:846"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:846"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:846: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:846: wait failed" >&5

    $as_echo "ovs-vsctl.at:846" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:846"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:849: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket get bridge br0 datapath_id:x
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:849"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket get bridge br0 datapath_id:x

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: cannot specify key to get for non-map column datapath_id
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:849"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:849: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:849"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:849"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:849: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:849"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:849"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:849: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:849: wait failed" >&5

    $as_echo "ovs-vsctl.at:849" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:849"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:852: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket get bridge br0 external_ids:x
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:852"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket get bridge br0 external_ids:x

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no key \"x\" in Bridge record \"br0\" column external_ids
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:852"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:852: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:852"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:852"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:852: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:852"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:852"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:852: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:852: wait failed" >&5

    $as_echo "ovs-vsctl.at:852" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:852"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:855: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket set bridge br0 flood_vlans=-1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:855"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket set bridge br0 flood_vlans=-1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: constraint violation: -1 is not in the valid range 0 to 4095 (inclusive)
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:855"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:855: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:855"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:855"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:855: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:855"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:855"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:855: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:855: wait failed" >&5

    $as_echo "ovs-vsctl.at:855" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:855"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:858: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket set bridge br0 flood_vlans=4096
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:858"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket set bridge br0 flood_vlans=4096

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: constraint violation: 4096 is not in the valid range 0 to 4095 (inclusive)
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:858"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:858: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:858"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:858"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:858: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:858"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:858"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:858: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:858: wait failed" >&5

    $as_echo "ovs-vsctl.at:858" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:858"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:861: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket set c br1 'connection-mode=xyz'
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:861"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket set c br1 'connection-mode=xyz'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: constraint violation: xyz is not one of the allowed values ([in-band, out-of-band])
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:861"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:861: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:861"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:861"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:861: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:861"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:861"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:861: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:861: wait failed" >&5

    $as_echo "ovs-vsctl.at:861" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:861"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:864: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket set c br1 connection-mode:x=y
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:864"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket set c br1 connection-mode:x=y

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: cannot specify key to set for non-map column connection_mode
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:864"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:864: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:864"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:864"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:864: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:864"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:864"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:864: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:864: wait failed" >&5

    $as_echo "ovs-vsctl.at:864" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:864"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:867: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add bridge br1 datapath_id x y
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:867"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add bridge br1 datapath_id x y

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: \"add\" operation would put 2 values in column datapath_id of table Bridge but the maximum number is 1
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:867"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:867: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:867"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:867"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:867: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:867"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:867"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:867: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:867: wait failed" >&5

    $as_echo "ovs-vsctl.at:867" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:867"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:870: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket remove netflow \`cat netflow-uuid\` targets '\"1.2.3.4:567\"'
"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:870"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket remove netflow `cat netflow-uuid` targets '"1.2.3.4:567"'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: \"remove\" operation would put 0 values in column targets of table NetFlow but the minimum number is 1
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:870"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:870: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:870"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:870"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:870: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:870"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:870"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:870: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:870: wait failed" >&5

    $as_echo "ovs-vsctl.at:870" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:870"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:873: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket remove netflow x targets '\"1.2.3.4:567\"'
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:873"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket remove netflow x targets '"1.2.3.4:567"'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no row \"x\" in table NetFlow
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:873"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:873: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:873"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:873"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:873: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:873"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:873"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:873: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:873: wait failed" >&5

    $as_echo "ovs-vsctl.at:873" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:873"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:876: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket clear netflow x targets
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:876"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket clear netflow x targets

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no row \"x\" in table NetFlow
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:876"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:876: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:876"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:876"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:876: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:876"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:876"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:876: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:876: wait failed" >&5

    $as_echo "ovs-vsctl.at:876" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:876"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:879: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket clear netflow \`cat netflow-uuid\` targets
"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:879"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket clear netflow `cat netflow-uuid` targets

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: \"clear\" operation cannot be applied to column targets of table NetFlow, which is not allowed to be empty
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:879"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:879: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:879"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:879"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:879: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:879"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:879"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:879: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:879: wait failed" >&5

    $as_echo "ovs-vsctl.at:879" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:879"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:882: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket destroy bridge br2
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:882"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket destroy bridge br2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no row \"br2\" in table Bridge
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:882"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:882: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:882"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:882"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:882: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:882"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:882"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:882: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:882: wait failed" >&5

    $as_echo "ovs-vsctl.at:882" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:882"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:885: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add in br1 name x
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:885"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add in br1 name x

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: cannot modify read-only column name in table Interface
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:885"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:885: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:885"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:885"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:885: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:885"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:885"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:885: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:885: wait failed" >&5

    $as_echo "ovs-vsctl.at:885" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:885"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:888: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket set port br0 name=br2
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:888"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket set port br0 name=br2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: cannot modify read-only column name in table Port
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:888"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:888: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:888"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:888"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:888: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:888"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:888"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:888: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:888: wait failed" >&5

    $as_echo "ovs-vsctl.at:888" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:888"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:891: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket remove bridge br0 name br1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:891"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket remove bridge br0 name br1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: cannot modify read-only column name in table Bridge
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:891"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:891: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:891"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:891"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:891: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:891"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:891"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:891: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:891: wait failed" >&5

    $as_echo "ovs-vsctl.at:891" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:891"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:894: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket remove bridge br1 flood-vlans true
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:894"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket remove bridge br1 flood-vlans true

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: \"true\" is not a valid integer or range
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:894"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:894: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:894"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:894"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:894: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:894"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:894"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:894: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:894: wait failed" >&5

    $as_echo "ovs-vsctl.at:894" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:894"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:897: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket clear bridge br1 name
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:897"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket clear bridge br1 name

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: cannot modify read-only column name in table Bridge
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:897"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:897: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:897"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:897"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:897: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:897"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:897"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:897: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:897: wait failed" >&5

    $as_echo "ovs-vsctl.at:897" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:897"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:900: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:900"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:900"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:900: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:900"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:900"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:900: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:900: wait failed" >&5

    $as_echo "ovs-vsctl.at:900" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:900"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2304
#AT_START_2305
at_fn_group_banner 2305 'ovs-vsctl.at:903' \
  "database commands -- conditions" "                " 111
at_xfail=no
(
  $as_echo "2305. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:905: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:905"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:905"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:905: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:905"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:905"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:905: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:905"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:905"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:906: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- add-br br0 -- add-br br1 -- set bridge br1 flood_vlans=0 other-config:x='\"\"' -- add-br br2 -- set bridge br2 flood_vlans=1 other-config:x=y -- add-br br3 -- set bridge br3 flood_vlans=0,1 other-config:x=z -- add-br br4 -- set bridge br4 flood_vlans=2 -- add-br br5 -- set bridge br5 flood_vlans=0,2 -- add-br br6 -- set bridge br6 flood_vlans=1,2 -- add-br br7 -- set bridge br7 flood_vlans=0,1,2"
at_fn_check_prepare_trace "ovs-vsctl.at:906"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- add-br br0 -- add-br br1 -- set bridge br1 flood_vlans=0 other-config:x='""' -- add-br br2 -- set bridge br2 flood_vlans=1 other-config:x=y -- add-br br3 -- set bridge br3 flood_vlans=0,1 other-config:x=z -- add-br br4 -- set bridge br4 flood_vlans=2 -- add-br br5 -- set bridge br5 flood_vlans=0,2 -- add-br br6 -- set bridge br6 flood_vlans=1,2 -- add-br br7 -- set bridge br7 flood_vlans=0,1,2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "














" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:906"
$at_failed && at_fn_log_failure
$at_traceon; }



# Arithmetic relational operators without keys.
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:936: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans=0' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:936"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans=0' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:936"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:937: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans=1' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:937"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans=1' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:937"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:938: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans=0,2' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:938"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans=0,2' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:938"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:939: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans=0,1,2' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:939"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans=0,1,2' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:939"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:940: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans=3' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:940"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans=3' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:940"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:942: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans!=0' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:942"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans!=0' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0 br2 br3 br4 br5 br6 br7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:942"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:943: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans!=1' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:943"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans!=1' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0 br1 br3 br4 br5 br6 br7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:943"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:944: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans!=0,2' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:944"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans!=0,2' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0 br1 br2 br3 br4 br6 br7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:944"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:945: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans!=0,1,2' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:945"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans!=0,1,2' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0 br1 br2 br3 br4 br5 br6
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:945"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:946: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans!=3' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:946"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans!=3' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0 br1 br2 br3 br4 br5 br6 br7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:946"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:948: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans<2' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:948"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans<2' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0 br1 br2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:948"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:949: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans<0,2' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:949"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans<0,2' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0 br1 br2 br3 br4
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:949"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:950: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans>1' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:950"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans>1' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br3 br4 br5 br6 br7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:950"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:951: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans>0,1' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:951"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans>0,1' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br5 br6 br7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:951"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:952: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans<=2' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:952"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans<=2' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0 br1 br2 br4
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:952"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:953: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans<=0,2' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:953"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans<=0,2' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0 br1 br2 br3 br4 br5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:953"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:954: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans>=1' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:954"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans>=1' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br2 br3 br4 br5 br6 br7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:954"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:955: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans>=0,1' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:955"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans>=0,1' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br3 br5 br6 br7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:955"
$at_failed && at_fn_log_failure
$at_traceon; }


# Set relational operators without keys.
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:958: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{=}0' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:958"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{=}0' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:958"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:959: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{=}1' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:959"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{=}1' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:959"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:960: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{=}0,2' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:960"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{=}0,2' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:960"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:961: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{=}0,1,2' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:961"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{=}0,1,2' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:961"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:962: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{=}3' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:962"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{=}3' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:962"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:964: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{!=}0' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:964"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{!=}0' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0 br2 br3 br4 br5 br6 br7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:964"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:965: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{!=}1' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:965"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{!=}1' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0 br1 br3 br4 br5 br6 br7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:965"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:966: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{!=}0,2' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:966"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{!=}0,2' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0 br1 br2 br3 br4 br6 br7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:966"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:967: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{!=}0,1,2' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:967"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{!=}0,1,2' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0 br1 br2 br3 br4 br5 br6
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:967"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:968: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{!=}3' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:968"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{!=}3' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0 br1 br2 br3 br4 br5 br6 br7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:968"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:970: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{<}[]' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:970"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{<}[]' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:970"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:971: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{<=}[]' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:971"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{<=}[]' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:971"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:972: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{<}0' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:972"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{<}0' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:972"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:973: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{<=}0' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:973"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{<=}0' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0 br1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:973"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:974: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{<}1,2' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:974"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{<}1,2' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0 br2 br4
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:974"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:975: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{<=}1,2' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:975"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{<=}1,2' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0 br2 br4 br6
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:975"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:977: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{>}[]' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:977"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{>}[]' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br1 br2 br3 br4 br5 br6 br7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:977"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:978: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{>=}[]' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:978"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{>=}[]' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0 br1 br2 br3 br4 br5 br6 br7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:978"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:979: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{>}0' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:979"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{>}0' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br3 br5 br7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:979"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:980: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{>=}0' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:980"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{>=}0' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br1 br3 br5 br7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:980"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:981: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{>}0,2' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:981"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{>}0,2' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:981"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:982: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{>=}1,2' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:982"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{>=}1,2' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br6 br7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:982"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:983: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{>=}0,2' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:983"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'flood_vlans{>=}0,2' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br5 br7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:983"
$at_failed && at_fn_log_failure
$at_traceon; }


# Arithmetic relational operators with keys.
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:986: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x=\"\"' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:986"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x=""' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:986"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:987: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x=y' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:987"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x=y' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:987"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:988: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x=z' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:988"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x=z' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:988"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:990: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x!=\"\"' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:990"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x!=""' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br2 br3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:990"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:991: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x!=y' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:991"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x!=y' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br1 br3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:991"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:992: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x!=z' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:992"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x!=z' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br1 br2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:992"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:994: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x>y' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:994"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x>y' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:994"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:995: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x>=y' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:995"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x>=y' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br2 br3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:995"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:996: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x<y' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:996"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x<y' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:996"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:997: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x<=y' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:997"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x<=y' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br1 br2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:997"
$at_failed && at_fn_log_failure
$at_traceon; }


# Set relational operators with keys.
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1000: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{=}[]' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:1000"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{=}[]' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0 br4 br5 br6 br7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1000"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1001: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{=}\"\"' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:1001"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{=}""' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1001"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1002: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{=}y' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:1002"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{=}y' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1002"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1003: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{=}z' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:1003"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{=}z' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1003"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1005: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{!=}[]' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:1005"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{!=}[]' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br1 br2 br3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1005"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1006: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{!=}\"\"' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:1006"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{!=}""' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0 br2 br3 br4 br5 br6 br7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1006"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1007: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{!=}y' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:1007"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{!=}y' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0 br1 br3 br4 br5 br6 br7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1007"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1008: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{!=}z' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:1008"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{!=}z' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0 br1 br2 br4 br5 br6 br7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1008"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1010: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{<=}[]' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:1010"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{<=}[]' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0 br4 br5 br6 br7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1010"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1011: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{<=}x' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:1011"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{<=}x' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0 br4 br5 br6 br7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1011"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1012: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{<=}\"\"' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:1012"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{<=}""' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0 br1 br4 br5 br6 br7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1012"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1013: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{<=}y' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:1013"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{<=}y' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0 br2 br4 br5 br6 br7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1013"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1014: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{<=}z' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:1014"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{<=}z' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0 br3 br4 br5 br6 br7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1014"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1015: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{<=}x,y,z' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:1015"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{<=}x,y,z' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0 br2 br3 br4 br5 br6 br7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1015"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1017: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{<}[]' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:1017"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{<}[]' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1017"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1018: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{<}x' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:1018"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{<}x' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0 br4 br5 br6 br7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1018"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1019: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{<}\"\"' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:1019"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{<}""' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0 br4 br5 br6 br7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1019"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1020: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{<}y' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:1020"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{<}y' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0 br4 br5 br6 br7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1020"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1021: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{<}z' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:1021"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{<}z' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0 br4 br5 br6 br7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1021"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1023: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{>=}[]' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:1023"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{>=}[]' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0 br1 br2 br3 br4 br5 br6 br7
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1023"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1024: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{>=}x' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:1024"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{>=}x' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1024"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1025: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{>=}\"\"' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:1025"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{>=}""' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1025"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1026: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{>=}y' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:1026"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{>=}y' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1026"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1027: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{>=}z' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:1027"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{>=}z' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1027"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1029: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{>}[]' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:1029"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{>}[]' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br1 br2 br3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1029"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1030: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{>}x' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:1030"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{>}x' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1030"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1031: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{>}\"\"' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:1031"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{>}""' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1031"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1032: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{>}y' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:1032"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{>}y' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1032"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1033: echo \`ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{>}z' | sort\`"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:1033"
( $at_check_trace; echo `ovs-vsctl --bare --no-wait -vreconnect:emer --db=unix:socket -- --columns=name find bridge 'other-config:x{>}z' | sort`
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1033"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1034: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1034"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1034"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1034: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1034"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1034"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1034: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1034: wait failed" >&5

    $as_echo "ovs-vsctl.at:1034" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1034"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2305
#AT_START_2306
at_fn_group_banner 2306 'ovs-vsctl.at:1037' \
  "database commands -- wait-until immediately true" "" 111
at_xfail=no
(
  $as_echo "2306. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1039: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:1039"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1039"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1039: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1039"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1039"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1039: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:1039"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1039"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1040: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br br0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-bond br0 bond0 eth0 eth1
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket set port bond0 bond_updelay=500 other-config:abc=def
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1040"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br br0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-bond br0 bond0 eth0 eth1
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket set port bond0 bond_updelay=500 other-config:abc=def

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1040"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1040: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1040"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1040"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1040: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1040"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1040"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1040: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1040: wait failed" >&5

    $as_echo "ovs-vsctl.at:1040" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1040"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1045: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket wait-until Open_vSwitch . manager_options=[]
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1045"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket wait-until Open_vSwitch . manager_options=[]

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1045"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1045: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1045"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1045"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1045: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1045"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1045"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1045: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1045: wait failed" >&5

    $as_echo "ovs-vsctl.at:1045" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1045"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1047: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket wait-until Open_vSwitch . bridges!=[]
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1047"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket wait-until Open_vSwitch . bridges!=[]

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1047"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1047: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1047"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1047"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1047: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1047"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1047"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1047: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1047: wait failed" >&5

    $as_echo "ovs-vsctl.at:1047" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1047"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1049: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket wait-until Port bond0 other-config:abc=def
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1049"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket wait-until Port bond0 other-config:abc=def

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1049"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1049: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1049"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1049"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1049: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1049"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1049"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1049: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1049: wait failed" >&5

    $as_echo "ovs-vsctl.at:1049" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1049"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1051: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket wait-until port bond0 'bond_updelay>50' 'other-config:abc>d' 'other-config:abc<e'
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1051"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket wait-until port bond0 'bond_updelay>50' 'other-config:abc>d' 'other-config:abc<e'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1051"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1051: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1051"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1051"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1051: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1051"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1051"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1051: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1051: wait failed" >&5

    $as_echo "ovs-vsctl.at:1051" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1051"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1053: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1053"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1053"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1053: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1053"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1053"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1053: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1053: wait failed" >&5

    $as_echo "ovs-vsctl.at:1053" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1053"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2306
#AT_START_2307
at_fn_group_banner 2307 'ovs-vsctl.at:1056' \
  "database commands -- wait-until must wait" "      " 111
at_xfail=no
(
  $as_echo "2307. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1059: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:1059"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1059"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1059: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1059"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1059"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1059: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:1059"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1059"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'

# Start ovs-vsctls in background.
(ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket wait-until o . bridges!=[] -- get bridge br10 other-config:abc
) > stdout1 &
(ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket wait-until bridge br1 -- get bridge br1 other-config:abc
) > stdout2 &
(ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket wait-until bridge br1 other-config={abc=def} -- get bridge br1 other-config
) > stdout3 &
(ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket wait-until port bond0 'bond_updelay>50' -- get port bond0 bond-updelay
) > stdout4 &

# Give the ovs-vsctls a chance to read the database
sleep 1

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1070: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br br10 -- set bridge br10 other-config:abc=quux

ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br br1 -- set bridge br1 other-config:abc=def -- add-bond br1 bond0 eth0 eth1 -- set port bond0 bond_updelay=500
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1070"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br br10 -- set bridge br10 other-config:abc=quux

ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br br1 -- set bridge br1 other-config:abc=def -- add-bond br1 bond0 eth0 eth1 -- set port bond0 bond_updelay=500

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1070"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1070: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1070"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1070"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1070: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1070"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1070"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1070: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1070: wait failed" >&5

    $as_echo "ovs-vsctl.at:1070" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1070"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


# Wait for the ovs-vsctls to finish.
wait

# Check output
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1078: cat stdout1"
at_fn_check_prepare_trace "ovs-vsctl.at:1078"
( $at_check_trace; cat stdout1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "quux
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1078"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1078: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1078"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1078"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1078: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1078"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1078"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1078: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1078: wait failed" >&5

    $as_echo "ovs-vsctl.at:1078" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1078"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1080: cat stdout2"
at_fn_check_prepare_trace "ovs-vsctl.at:1080"
( $at_check_trace; cat stdout2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "def
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1080"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1080: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1080"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1080"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1080: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1080"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1080"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1080: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1080: wait failed" >&5

    $as_echo "ovs-vsctl.at:1080" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1080"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1082: cat stdout3"
at_fn_check_prepare_trace "ovs-vsctl.at:1082"
( $at_check_trace; cat stdout3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{abc=def}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1082"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1082: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1082"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1082"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1082: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1082"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1082"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1082: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1082: wait failed" >&5

    $as_echo "ovs-vsctl.at:1082" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1082"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1084: cat stdout4"
at_fn_check_prepare_trace "ovs-vsctl.at:1084"
( $at_check_trace; cat stdout4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "500
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1084"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1084: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1084"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1084"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1084: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1084"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1084"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1084: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1084: wait failed" >&5

    $as_echo "ovs-vsctl.at:1084" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1084"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1087: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1087"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1087"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1087: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1087"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1087"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1087: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1087: wait failed" >&5

    $as_echo "ovs-vsctl.at:1087" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1087"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2307
#AT_START_2308
at_fn_group_banner 2308 'ovs-vsctl.at:1090' \
  "--id option on create, get commands" "            " 111
at_xfail=no
(
  $as_echo "2308. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1092: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:1092"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1092"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1092: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1092"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1092"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1092: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:1092"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1092"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1093: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br br0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port br0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port br0 eth1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1093"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br br0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port br0 eth0
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port br0 eth1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1093"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1096: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- set bridge br0 mirrors=@m -- --id=@eth0 get port eth0 -- --id=@eth1 get port eth1 -- --id=@m create mirror name=mymirror select-dst-port=@eth0 select-src-port=@eth0 output-port=@eth1"
at_fn_check_prepare_trace "ovs-vsctl.at:1096"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- set bridge br0 mirrors=@m -- --id=@eth0 get port eth0 -- --id=@eth1 get port eth1 -- --id=@m create mirror name=mymirror select-dst-port=@eth0 select-src-port=@eth0 output-port=@eth1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1096"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1096: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1096"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1096"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1096: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1096"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1096"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1096: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1096: wait failed" >&5

    $as_echo "ovs-vsctl.at:1096" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1096"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1103: uuidfilt stdout"
at_fn_check_prepare_trace "ovs-vsctl.at:1103"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "


<0>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1103"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1103: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1103"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1103"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1103: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1103"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1103"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1103: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1103: wait failed" >&5

    $as_echo "ovs-vsctl.at:1103" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1103"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1111: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list port eth0 eth1
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list mirror
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list bridge br0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1111"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list port eth0 eth1
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list mirror
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list bridge br0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1111"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1111: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1111"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1111"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1111: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1111"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1111"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1111: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1111: wait failed" >&5

    $as_echo "ovs-vsctl.at:1111" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1111"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1117: sed -n -e '/uuid/p' -e '/name/p' -e '/mirrors/p' -e '/select/p' -e '/output/p' < stdout | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-vsctl.at:1117"
( $at_check_trace; sed -n -e '/uuid/p' -e '/name/p' -e '/mirrors/p' -e '/select/p' -e '/output/p' < stdout | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "_uuid               : <0>
name                : \"eth0\"
_uuid               : <1>
name                : \"eth1\"
_uuid               : <2>
name                : mymirror
output_port         : <1>
output_vlan         : []
select_all          : false
select_dst_port     : [<0>]
select_src_port     : [<0>]
select_vlan         : []
_uuid               : <3>
mirrors             : [<2>]
name                : \"br0\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1117"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1117: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1117"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1117"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1117: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1117"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1117"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1117: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1117: wait failed" >&5

    $as_echo "ovs-vsctl.at:1117" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1117"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1136: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1136"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1136"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1136: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1136"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1136"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1136: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1136: wait failed" >&5

    $as_echo "ovs-vsctl.at:1136" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1136"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2308
#AT_START_2309
at_fn_group_banner 2309 'ovs-vsctl.at:1139' \
  "unreferenced record warnings" "                   " 111
at_xfail=no
(
  $as_echo "2309. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1141: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:1141"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1141"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1141: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1141"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1141"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1141: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:1141"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1141"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1142: ovs-vsctl -vPATTERN:console:'%c|%p|%m' --no-wait -vreconnect:emer --db=unix:socket \\
     -- create Bridge name=br0 | uuidfilt"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1142"
( $at_check_trace; ovs-vsctl -vPATTERN:console:'%c|%p|%m' --no-wait -vreconnect:emer --db=unix:socket \
     -- create Bridge name=br0 | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "db_ctl_base|WARN|applying \"create\" command to table Bridge without --id option will have no effect
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<0>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1142"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1142: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1142"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1142"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1142: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1142"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1142"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1142: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1142: wait failed" >&5

    $as_echo "ovs-vsctl.at:1142" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1142"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1148: ovs-vsctl -vPATTERN:console:'%c|%p|%m' --no-wait -vreconnect:emer --db=unix:socket \\
     -- --id=@br0 create Bridge name=br0 | uuidfilt"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1148"
( $at_check_trace; ovs-vsctl -vPATTERN:console:'%c|%p|%m' --no-wait -vreconnect:emer --db=unix:socket \
     -- --id=@br0 create Bridge name=br0 | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "vsctl|WARN|row id \"@br0\" was created but no reference to it was inserted, so it will not actually appear in the database
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<0>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1148"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1148: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1148"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1148"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1148: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1148"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1148"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1148: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1148: wait failed" >&5

    $as_echo "ovs-vsctl.at:1148" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1148"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1154: ovs-vsctl -vPATTERN:console:'%c|%p|%m' --no-wait -vreconnect:emer --db=unix:socket \\
     -- --id=@eth0_iface create Interface name=eth0 \\
     -- --id=@eth0 create Port name=eth0 interfaces=@eth0_iface \\
     -- --id=@m0 create Mirror name=m0 output_port=@eth0 \\
     -- --id=@br0 create Bridge name=br0 mirrors=@m0 \\
     -- set Open_vSwitch . bridges=@br0 | uuidfilt"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1154"
( $at_check_trace; ovs-vsctl -vPATTERN:console:'%c|%p|%m' --no-wait -vreconnect:emer --db=unix:socket \
     -- --id=@eth0_iface create Interface name=eth0 \
     -- --id=@eth0 create Port name=eth0 interfaces=@eth0_iface \
     -- --id=@m0 create Mirror name=m0 output_port=@eth0 \
     -- --id=@br0 create Bridge name=br0 mirrors=@m0 \
     -- set Open_vSwitch . bridges=@br0 | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "vsctl|WARN|row id \"@eth0\" was created but only a weak reference to it was inserted, so it will not actually appear in the database
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<0>
<1>
<2>
<3>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1154"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1154: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1154"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1154"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1154: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1154"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1154"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1154: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1154: wait failed" >&5

    $as_echo "ovs-vsctl.at:1154" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1154"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1167: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1167"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1167"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1167: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1167"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1167"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1167: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1167: wait failed" >&5

    $as_echo "ovs-vsctl.at:1167" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1167"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2309
#AT_START_2310
at_fn_group_banner 2310 'ovs-vsctl.at:1173' \
  "created row UUID is wrong in same execution" "    " 111
at_xfail=no
(
  $as_echo "2310. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1175: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:1175"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1175"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1175: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1175"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1175"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1175: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:1175"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1175"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1176: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --id=@br0 create Bridge name=br0 -- add Open_vSwitch . bridges @br0 -- list bridge
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1176"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --id=@br0 create Bridge name=br0 -- add Open_vSwitch . bridges @br0 -- list bridge

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1176"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1176: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1176"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1176"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1176: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1176"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1176"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1176: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1176: wait failed" >&5

    $as_echo "ovs-vsctl.at:1176" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1176"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1178: uuidfilt stdout"
at_fn_check_prepare_trace "ovs-vsctl.at:1178"
( $at_check_trace; uuidfilt stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo >>"$at_stdout"; $as_echo "<0>
_uuid               : <1>
auto_attach         : []
controller          : []
datapath_id         : []
datapath_type       : \"\"
datapath_version    : \"\"
external_ids        : {}
fail_mode           : []
flood_vlans         : []
flow_tables         : {}
ipfix               : []
mcast_snooping_enable: false
mirrors             : []
name                : \"br0\"
netflow             : []
other_config        : {}
ports               : []
protocols           : []
rstp_enable         : false
rstp_status         : {}
sflow               : []
status              : {}
stp_enable          : false
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1178"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1204: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1204"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1204"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1204: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1204"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1204"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1204: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1204: wait failed" >&5

    $as_echo "ovs-vsctl.at:1204" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1204"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2310
#AT_START_2311
at_fn_group_banner 2311 'ovs-vsctl.at:1210' \
  "--all option on destroy command" "                " 111
at_xfail=no
(
  $as_echo "2311. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1212: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:1212"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1212"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1212: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1212"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1212"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1212: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:1212"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1212"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1213: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br a
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port a a1
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port a a2
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1213"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br a
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port a a1
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-port a a2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1213"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1213: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1213"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1213"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1213: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1213"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1213"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1213: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1213: wait failed" >&5

    $as_echo "ovs-vsctl.at:1213" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1213"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1217: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1217"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1217"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1217: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1217"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1217"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1217: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1217"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1217"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1217: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1217: wait failed" >&5

    $as_echo "ovs-vsctl.at:1217" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1217"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1217: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1217"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-br

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1217"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1217: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1217"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1217"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1217: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1217"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1217"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1217: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1217: wait failed" >&5

    $as_echo "ovs-vsctl.at:1217" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1217"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1217: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1217"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1217"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1217: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1217"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1217"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1217: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1217"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1217"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1217: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1217: wait failed" >&5

    $as_echo "ovs-vsctl.at:1217" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1217"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1217: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1217"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/ovs-vsctl.at:1217"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1217: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1217"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1217"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1217: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1217"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1217"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1217: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1217: wait failed" >&5

    $as_echo "ovs-vsctl.at:1217" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1217"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1217: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1217"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-parent a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1217"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1217: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1217"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1217"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1217: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1217"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1217"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1217: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1217: wait failed" >&5

    $as_echo "ovs-vsctl.at:1217" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1217"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check br-to-vlan, without --oneline.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1217: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1217"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket br-to-vlan a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1217"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1217: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1217"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1217"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1217: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1217"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1217"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1217: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1217: wait failed" >&5

    $as_echo "ovs-vsctl.at:1217" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1217"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   # Check br-to-vlan, with --oneline.
   # (This particular test is interesting with --oneline because it returns
   # an integer instead of a string and that can cause type mismatches inside
   # python if not done carefully.)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1217: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1217"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- br-to-vlan a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1217"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1217: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1217"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1217"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1217: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1217"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1217"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1217: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1217: wait failed" >&5

    $as_echo "ovs-vsctl.at:1217" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1217"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


   # Check multiple queries in a single run.
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1217: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent a -- br-to-vlan a"
at_fn_check_prepare_trace "ovs-vsctl.at:1217"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- br-to-parent a -- br-to-vlan a
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1217"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1217: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1217"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1217"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1217: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1217"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1217"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1217: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1217: wait failed" >&5

    $as_echo "ovs-vsctl.at:1217" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1217"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1218: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1218"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ports a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a1
a2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1218"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1218: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1218"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1218"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1218: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1218"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1218"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1218: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1218: wait failed" >&5

    $as_echo "ovs-vsctl.at:1218" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1218"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1218: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1218"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline -- list-ports a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a1\\na2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1218"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1218: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1218"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1218"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1218: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1218"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1218"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1218: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1218: wait failed" >&5

    $as_echo "ovs-vsctl.at:1218" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1218"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1218: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1218"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no port named a
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:1218"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1218: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1218"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1218"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1218: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1218"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1218"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1218: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1218: wait failed" >&5

    $as_echo "ovs-vsctl.at:1218" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1218"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1218: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br a1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1218"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br a1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1218"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1218: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1218"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1218"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1218: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1218"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1218"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1218: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1218: wait failed" >&5

    $as_echo "ovs-vsctl.at:1218" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1218"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1218: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br a2
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1218"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket port-to-br a2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1218"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1218: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1218"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1218"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1218: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1218"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1218"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1218: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1218: wait failed" >&5

    $as_echo "ovs-vsctl.at:1218" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1218"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1219: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1219"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket list-ifaces a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a1
a2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1219"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1219: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1219"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1219"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1219: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1219"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1219"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1219: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1219: wait failed" >&5

    $as_echo "ovs-vsctl.at:1219" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1219"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1219: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br a
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1219"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-vsctl: no interface named a
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:1219"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1219: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1219"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1219"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1219: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1219"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1219"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1219: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1219: wait failed" >&5

    $as_echo "ovs-vsctl.at:1219" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1219"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1219: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br a1
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1219"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br a1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1219"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1219: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1219"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1219"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1219: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1219"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1219"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1219: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1219: wait failed" >&5

    $as_echo "ovs-vsctl.at:1219" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1219"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1219: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br a2
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1219"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket iface-to-br a2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1219"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1219: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1219"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1219"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1219: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1219"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1219"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1219: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1219: wait failed" >&5

    $as_echo "ovs-vsctl.at:1219" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1219"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1220: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- set Port a1 qos=@newqos -- set Port a2 qos=@newqos -- --id=@newqos create QoS type=linux-htb other-config:max-rate=1000000000 queues=0=@q0,1=@q1 -- --id=@q0 create Queue other-config:min-rate=100000000 other-config:max-rate=100000000 -- --id=@q1 create Queue other-config:min-rate=500000000"
at_fn_check_prepare_trace "ovs-vsctl.at:1220"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --oneline  -- set Port a1 qos=@newqos -- set Port a2 qos=@newqos -- --id=@newqos create QoS type=linux-htb other-config:max-rate=1000000000 queues=0=@q0,1=@q1 -- --id=@q0 create Queue other-config:min-rate=100000000 other-config:max-rate=100000000 -- --id=@q1 create Queue other-config:min-rate=500000000
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1220"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1220: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1220"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1220"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1220: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1220"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1220"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1220: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1220: wait failed" >&5

    $as_echo "ovs-vsctl.at:1220" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1220"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1226: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --columns=other_config,type list Qos
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1226"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --columns=other_config,type list Qos

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "other_config        : {max-rate=\"1000000000\"}
type                : linux-htb
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1226"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1226: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1226"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1226"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1226: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1226"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1226"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1226: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1226: wait failed" >&5

    $as_echo "ovs-vsctl.at:1226" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1226"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1231: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --columns=other_config list Queue | sort | sed '/^\$/d'
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1231"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --columns=other_config list Queue | sort | sed '/^$/d'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "other_config        : {max-rate=\"100000000\", min-rate=\"100000000\"}
other_config        : {min-rate=\"500000000\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1231"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1231: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1231"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1231"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1231: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1231"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1231"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1231: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1231: wait failed" >&5

    $as_echo "ovs-vsctl.at:1231" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1231"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1236: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket clear Port a1 qos
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket clear Port a2 qos
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1236"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket clear Port a1 qos
ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket clear Port a2 qos

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1236"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1236: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1236"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1236"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1236: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1236"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1236"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1236: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1236: wait failed" >&5

    $as_echo "ovs-vsctl.at:1236" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1236"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1239: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --columns=qos list Port a1 a2
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1239"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --columns=qos list Port a1 a2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "qos                 : []

qos                 : []
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1239"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1239: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1239"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1239"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1239: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1239"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1239"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1239: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1239: wait failed" >&5

    $as_echo "ovs-vsctl.at:1239" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1239"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1245: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --all destroy Qos
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1245"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --all destroy Qos

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1245"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1245: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1245"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1245"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1245: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1245"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1245"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1245: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1245: wait failed" >&5

    $as_echo "ovs-vsctl.at:1245" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1245"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1247: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket -- list Qos
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1247"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket -- list Qos

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1247"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1247: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1247"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1247"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1247: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1247"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1247"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1247: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1247: wait failed" >&5

    $as_echo "ovs-vsctl.at:1247" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1247"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1249: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --all destroy Queue
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1249"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket --all destroy Queue

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1249"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1249: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1249"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1249"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1249: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1249"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1249"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1249: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1249: wait failed" >&5

    $as_echo "ovs-vsctl.at:1249" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1249"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1251: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket -- list Queue
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1251"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket -- list Queue

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1251"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1251: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1251"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1251"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1251: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1251"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1251"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1251: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1251: wait failed" >&5

    $as_echo "ovs-vsctl.at:1251" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1251"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1253: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1253"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1253"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1253: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1253"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1253"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1253: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1253: wait failed" >&5

    $as_echo "ovs-vsctl.at:1253" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1253"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2311
#AT_START_2312
at_fn_group_banner 2312 'ovs-vsctl.at:1259' \
  "add-port -- reserved names 1" "                   " 112
at_xfail=no
(
  $as_echo "2312. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1260: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:1260"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1260"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1260: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ovs-vsctl.at:1260"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1260"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1260: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1260"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1260"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1260: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ovs-vsctl.at:1260"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1260"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1260: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ovs-vsctl.at:1260"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1260"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1260: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1260"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1260"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1260: add_of_br 0  "
at_fn_check_prepare_trace "ovs-vsctl.at:1260"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1260"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Test creating all reserved port names

# Try creating the port
cat >experr <<EOF
ovs-vsctl: Error detected while setting up 'ovs-netdev'.  See ovs-vswitchd log for details.
ovs-vsctl: The default log directory is "$OVS_RUNDIR".
EOF
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1263: ovs-vsctl add-port br0 ovs-netdev"
at_fn_check_prepare_trace "ovs-vsctl.at:1263"
( $at_check_trace; ovs-vsctl add-port br0 ovs-netdev
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Prevent race.
$as_echo "ovs-vsctl.at:1263: waiting until test \`grep -- \"|WARN|\" ovs-vswitchd.log | wc -l\` -ge 1..." >&5
ovs_wait_cond () {
    test `grep -- "|WARN|" ovs-vswitchd.log | wc -l` -ge 1
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1263: wait failed" >&5

    $as_echo "ovs-vsctl.at:1263" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1263"
fi

# Detect the warning log message
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1263: sed -n \"s/^.*\\(|bridge|WARN|.*\\)\$/\\1/p\" ovs-vswitchd.log"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-vsctl.at:1263"
( $at_check_trace; sed -n "s/^.*\(|bridge|WARN|.*\)$/\1/p" ovs-vswitchd.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "|bridge|WARN|could not create interface ovs-netdev, name is reserved
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Delete the warning log message
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1263: sed \"/|bridge|WARN|/d\" ovs-vswitchd.log > ovs-vswitchd.log"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-vsctl.at:1263"
( $at_check_trace; sed "/|bridge|WARN|/d" ovs-vswitchd.log > ovs-vswitchd.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Delete the port
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1263: ovs-vsctl del-port br0 ovs-netdev"
at_fn_check_prepare_trace "ovs-vsctl.at:1263"
( $at_check_trace; ovs-vsctl del-port br0 ovs-netdev
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Try creating the port
cat >experr <<EOF
ovs-vsctl: Error detected while setting up 'ovs-dummy'.  See ovs-vswitchd log for details.
ovs-vsctl: The default log directory is "$OVS_RUNDIR".
EOF
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1263: ovs-vsctl add-port br0 ovs-dummy"
at_fn_check_prepare_trace "ovs-vsctl.at:1263"
( $at_check_trace; ovs-vsctl add-port br0 ovs-dummy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Prevent race.
$as_echo "ovs-vsctl.at:1263: waiting until test \`grep -- \"|WARN|\" ovs-vswitchd.log | wc -l\` -ge 1..." >&5
ovs_wait_cond () {
    test `grep -- "|WARN|" ovs-vswitchd.log | wc -l` -ge 1
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1263: wait failed" >&5

    $as_echo "ovs-vsctl.at:1263" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1263"
fi

# Detect the warning log message
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1263: sed -n \"s/^.*\\(|bridge|WARN|.*\\)\$/\\1/p\" ovs-vswitchd.log"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-vsctl.at:1263"
( $at_check_trace; sed -n "s/^.*\(|bridge|WARN|.*\)$/\1/p" ovs-vswitchd.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "|bridge|WARN|could not create interface ovs-dummy, name is reserved
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Delete the warning log message
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1263: sed \"/|bridge|WARN|/d\" ovs-vswitchd.log > ovs-vswitchd.log"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-vsctl.at:1263"
( $at_check_trace; sed "/|bridge|WARN|/d" ovs-vswitchd.log > ovs-vswitchd.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Delete the port
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1263: ovs-vsctl del-port br0 ovs-dummy"
at_fn_check_prepare_trace "ovs-vsctl.at:1263"
( $at_check_trace; ovs-vsctl del-port br0 ovs-dummy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Try creating the port
cat >experr <<EOF
ovs-vsctl: Error detected while setting up 'genev_sys'.  See ovs-vswitchd log for details.
ovs-vsctl: The default log directory is "$OVS_RUNDIR".
EOF
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1263: ovs-vsctl add-port br0 genev_sys"
at_fn_check_prepare_trace "ovs-vsctl.at:1263"
( $at_check_trace; ovs-vsctl add-port br0 genev_sys
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Prevent race.
$as_echo "ovs-vsctl.at:1263: waiting until test \`grep -- \"|WARN|\" ovs-vswitchd.log | wc -l\` -ge 1..." >&5
ovs_wait_cond () {
    test `grep -- "|WARN|" ovs-vswitchd.log | wc -l` -ge 1
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1263: wait failed" >&5

    $as_echo "ovs-vsctl.at:1263" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1263"
fi

# Detect the warning log message
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1263: sed -n \"s/^.*\\(|bridge|WARN|.*\\)\$/\\1/p\" ovs-vswitchd.log"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-vsctl.at:1263"
( $at_check_trace; sed -n "s/^.*\(|bridge|WARN|.*\)$/\1/p" ovs-vswitchd.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "|bridge|WARN|could not create interface genev_sys, name is reserved
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Delete the warning log message
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1263: sed \"/|bridge|WARN|/d\" ovs-vswitchd.log > ovs-vswitchd.log"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-vsctl.at:1263"
( $at_check_trace; sed "/|bridge|WARN|/d" ovs-vswitchd.log > ovs-vswitchd.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Delete the port
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1263: ovs-vsctl del-port br0 genev_sys"
at_fn_check_prepare_trace "ovs-vsctl.at:1263"
( $at_check_trace; ovs-vsctl del-port br0 genev_sys
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Try creating the port
cat >experr <<EOF
ovs-vsctl: Error detected while setting up 'gre_sys'.  See ovs-vswitchd log for details.
ovs-vsctl: The default log directory is "$OVS_RUNDIR".
EOF
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1263: ovs-vsctl add-port br0 gre_sys"
at_fn_check_prepare_trace "ovs-vsctl.at:1263"
( $at_check_trace; ovs-vsctl add-port br0 gre_sys
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Prevent race.
$as_echo "ovs-vsctl.at:1263: waiting until test \`grep -- \"|WARN|\" ovs-vswitchd.log | wc -l\` -ge 1..." >&5
ovs_wait_cond () {
    test `grep -- "|WARN|" ovs-vswitchd.log | wc -l` -ge 1
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1263: wait failed" >&5

    $as_echo "ovs-vsctl.at:1263" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1263"
fi

# Detect the warning log message
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1263: sed -n \"s/^.*\\(|bridge|WARN|.*\\)\$/\\1/p\" ovs-vswitchd.log"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-vsctl.at:1263"
( $at_check_trace; sed -n "s/^.*\(|bridge|WARN|.*\)$/\1/p" ovs-vswitchd.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "|bridge|WARN|could not create interface gre_sys, name is reserved
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Delete the warning log message
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1263: sed \"/|bridge|WARN|/d\" ovs-vswitchd.log > ovs-vswitchd.log"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-vsctl.at:1263"
( $at_check_trace; sed "/|bridge|WARN|/d" ovs-vswitchd.log > ovs-vswitchd.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Delete the port
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1263: ovs-vsctl del-port br0 gre_sys"
at_fn_check_prepare_trace "ovs-vsctl.at:1263"
( $at_check_trace; ovs-vsctl del-port br0 gre_sys
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Try creating the port
cat >experr <<EOF
ovs-vsctl: Error detected while setting up 'lisp_sys'.  See ovs-vswitchd log for details.
ovs-vsctl: The default log directory is "$OVS_RUNDIR".
EOF
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1263: ovs-vsctl add-port br0 lisp_sys"
at_fn_check_prepare_trace "ovs-vsctl.at:1263"
( $at_check_trace; ovs-vsctl add-port br0 lisp_sys
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Prevent race.
$as_echo "ovs-vsctl.at:1263: waiting until test \`grep -- \"|WARN|\" ovs-vswitchd.log | wc -l\` -ge 1..." >&5
ovs_wait_cond () {
    test `grep -- "|WARN|" ovs-vswitchd.log | wc -l` -ge 1
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1263: wait failed" >&5

    $as_echo "ovs-vsctl.at:1263" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1263"
fi

# Detect the warning log message
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1263: sed -n \"s/^.*\\(|bridge|WARN|.*\\)\$/\\1/p\" ovs-vswitchd.log"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-vsctl.at:1263"
( $at_check_trace; sed -n "s/^.*\(|bridge|WARN|.*\)$/\1/p" ovs-vswitchd.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "|bridge|WARN|could not create interface lisp_sys, name is reserved
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Delete the warning log message
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1263: sed \"/|bridge|WARN|/d\" ovs-vswitchd.log > ovs-vswitchd.log"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-vsctl.at:1263"
( $at_check_trace; sed "/|bridge|WARN|/d" ovs-vswitchd.log > ovs-vswitchd.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Delete the port
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1263: ovs-vsctl del-port br0 lisp_sys"
at_fn_check_prepare_trace "ovs-vsctl.at:1263"
( $at_check_trace; ovs-vsctl del-port br0 lisp_sys
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Try creating the port
cat >experr <<EOF
ovs-vsctl: Error detected while setting up 'vxlan_sys'.  See ovs-vswitchd log for details.
ovs-vsctl: The default log directory is "$OVS_RUNDIR".
EOF
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1263: ovs-vsctl add-port br0 vxlan_sys"
at_fn_check_prepare_trace "ovs-vsctl.at:1263"
( $at_check_trace; ovs-vsctl add-port br0 vxlan_sys
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Prevent race.
$as_echo "ovs-vsctl.at:1263: waiting until test \`grep -- \"|WARN|\" ovs-vswitchd.log | wc -l\` -ge 1..." >&5
ovs_wait_cond () {
    test `grep -- "|WARN|" ovs-vswitchd.log | wc -l` -ge 1
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1263: wait failed" >&5

    $as_echo "ovs-vsctl.at:1263" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1263"
fi

# Detect the warning log message
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1263: sed -n \"s/^.*\\(|bridge|WARN|.*\\)\$/\\1/p\" ovs-vswitchd.log"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-vsctl.at:1263"
( $at_check_trace; sed -n "s/^.*\(|bridge|WARN|.*\)$/\1/p" ovs-vswitchd.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "|bridge|WARN|could not create interface vxlan_sys, name is reserved
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Delete the warning log message
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1263: sed \"/|bridge|WARN|/d\" ovs-vswitchd.log > ovs-vswitchd.log"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-vsctl.at:1263"
( $at_check_trace; sed "/|bridge|WARN|/d" ovs-vswitchd.log > ovs-vswitchd.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Delete the port
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1263: ovs-vsctl del-port br0 vxlan_sys"
at_fn_check_prepare_trace "ovs-vsctl.at:1263"
( $at_check_trace; ovs-vsctl del-port br0 vxlan_sys
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1288: check_logs "
at_fn_check_prepare_trace "ovs-vsctl.at:1288"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1288"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1288: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovs-vsctl.at:1288"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1288"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1288: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovs-vsctl.at:1288"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1288"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-vsctl.at:1288: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1288: wait failed" >&5

    $as_echo "ovs-vsctl.at:1288" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1288"
fi

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1288: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovs-vsctl.at:1288"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1288"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1288: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1288"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1288"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-vsctl.at:1288: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1288: wait failed" >&5

    $as_echo "ovs-vsctl.at:1288" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1288"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2312
#AT_START_2313
at_fn_group_banner 2313 'ovs-vsctl.at:1291' \
  "add-port -- reserved names 2" "                   " 112
at_xfail=no
(
  $as_echo "2313. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

# Creates all type of tunnel ports
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1293: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:1293"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1293"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1293: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "ovs-vsctl.at:1293"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1293"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1293: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1293"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1293"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1293: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "ovs-vsctl.at:1293"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1293"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1293: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "ovs-vsctl.at:1293"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1293"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1293: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1293"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1293"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1293: add_of_br 0 add-port br0 p1 -- set Interface p1 type=gre \\
                    options:remote_ip=1.1.1.1 ofport_request=1\\
                    -- add-port br0 p3 -- set Interface p3 type=lisp \\
                    options:remote_ip=2.2.2.2 ofport_request=3 \\
                    -- add-port br0 p4 -- set Interface p4 type=vxlan \\
                    options:remote_ip=2.2.2.2 ofport_request=4 \\
                    -- add-port br0 p5 -- set Interface p5 type=geneve \\
                    options:remote_ip=2.2.2.2 ofport_request=5 "
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1293"
( $at_check_trace; add_of_br 0 add-port br0 p1 -- set Interface p1 type=gre \
                    options:remote_ip=1.1.1.1 ofport_request=1\
                    -- add-port br0 p3 -- set Interface p3 type=lisp \
                    options:remote_ip=2.2.2.2 ofport_request=3 \
                    -- add-port br0 p4 -- set Interface p4 type=vxlan \
                    options:remote_ip=2.2.2.2 ofport_request=4 \
                    -- add-port br0 p5 -- set Interface p5 type=geneve \
                    options:remote_ip=2.2.2.2 ofport_request=5
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1293"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Test creating all reserved tunnel port names

# Try creating the port
cat >experr <<EOF
ovs-vsctl: Error detected while setting up 'genev_sys'.  See ovs-vswitchd log for details.
ovs-vsctl: The default log directory is "$OVS_RUNDIR".
EOF
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1303: ovs-vsctl add-port br0 genev_sys"
at_fn_check_prepare_trace "ovs-vsctl.at:1303"
( $at_check_trace; ovs-vsctl add-port br0 genev_sys
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1303"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Prevent race.
$as_echo "ovs-vsctl.at:1303: waiting until test \`grep -- \"|WARN|\" ovs-vswitchd.log | wc -l\` -ge 1..." >&5
ovs_wait_cond () {
    test `grep -- "|WARN|" ovs-vswitchd.log | wc -l` -ge 1
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1303: wait failed" >&5

    $as_echo "ovs-vsctl.at:1303" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1303"
fi

# Detect the warning log message
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1303: sed -n \"s/^.*\\(|bridge|WARN|.*\\)\$/\\1/p\" ovs-vswitchd.log"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-vsctl.at:1303"
( $at_check_trace; sed -n "s/^.*\(|bridge|WARN|.*\)$/\1/p" ovs-vswitchd.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "|bridge|WARN|could not create interface genev_sys, name is reserved
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1303"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Delete the warning log message
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1303: sed \"/|bridge|WARN|/d\" ovs-vswitchd.log > ovs-vswitchd.log"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-vsctl.at:1303"
( $at_check_trace; sed "/|bridge|WARN|/d" ovs-vswitchd.log > ovs-vswitchd.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1303"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Delete the port
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1303: ovs-vsctl del-port br0 genev_sys"
at_fn_check_prepare_trace "ovs-vsctl.at:1303"
( $at_check_trace; ovs-vsctl del-port br0 genev_sys
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1303"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Try creating the port
cat >experr <<EOF
ovs-vsctl: Error detected while setting up 'gre_sys'.  See ovs-vswitchd log for details.
ovs-vsctl: The default log directory is "$OVS_RUNDIR".
EOF
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1303: ovs-vsctl add-port br0 gre_sys"
at_fn_check_prepare_trace "ovs-vsctl.at:1303"
( $at_check_trace; ovs-vsctl add-port br0 gre_sys
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1303"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Prevent race.
$as_echo "ovs-vsctl.at:1303: waiting until test \`grep -- \"|WARN|\" ovs-vswitchd.log | wc -l\` -ge 1..." >&5
ovs_wait_cond () {
    test `grep -- "|WARN|" ovs-vswitchd.log | wc -l` -ge 1
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1303: wait failed" >&5

    $as_echo "ovs-vsctl.at:1303" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1303"
fi

# Detect the warning log message
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1303: sed -n \"s/^.*\\(|bridge|WARN|.*\\)\$/\\1/p\" ovs-vswitchd.log"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-vsctl.at:1303"
( $at_check_trace; sed -n "s/^.*\(|bridge|WARN|.*\)$/\1/p" ovs-vswitchd.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "|bridge|WARN|could not create interface gre_sys, name is reserved
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1303"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Delete the warning log message
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1303: sed \"/|bridge|WARN|/d\" ovs-vswitchd.log > ovs-vswitchd.log"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-vsctl.at:1303"
( $at_check_trace; sed "/|bridge|WARN|/d" ovs-vswitchd.log > ovs-vswitchd.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1303"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Delete the port
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1303: ovs-vsctl del-port br0 gre_sys"
at_fn_check_prepare_trace "ovs-vsctl.at:1303"
( $at_check_trace; ovs-vsctl del-port br0 gre_sys
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1303"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Try creating the port
cat >experr <<EOF
ovs-vsctl: Error detected while setting up 'lisp_sys'.  See ovs-vswitchd log for details.
ovs-vsctl: The default log directory is "$OVS_RUNDIR".
EOF
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1303: ovs-vsctl add-port br0 lisp_sys"
at_fn_check_prepare_trace "ovs-vsctl.at:1303"
( $at_check_trace; ovs-vsctl add-port br0 lisp_sys
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1303"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Prevent race.
$as_echo "ovs-vsctl.at:1303: waiting until test \`grep -- \"|WARN|\" ovs-vswitchd.log | wc -l\` -ge 1..." >&5
ovs_wait_cond () {
    test `grep -- "|WARN|" ovs-vswitchd.log | wc -l` -ge 1
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1303: wait failed" >&5

    $as_echo "ovs-vsctl.at:1303" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1303"
fi

# Detect the warning log message
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1303: sed -n \"s/^.*\\(|bridge|WARN|.*\\)\$/\\1/p\" ovs-vswitchd.log"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-vsctl.at:1303"
( $at_check_trace; sed -n "s/^.*\(|bridge|WARN|.*\)$/\1/p" ovs-vswitchd.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "|bridge|WARN|could not create interface lisp_sys, name is reserved
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1303"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Delete the warning log message
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1303: sed \"/|bridge|WARN|/d\" ovs-vswitchd.log > ovs-vswitchd.log"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-vsctl.at:1303"
( $at_check_trace; sed "/|bridge|WARN|/d" ovs-vswitchd.log > ovs-vswitchd.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1303"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Delete the port
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1303: ovs-vsctl del-port br0 lisp_sys"
at_fn_check_prepare_trace "ovs-vsctl.at:1303"
( $at_check_trace; ovs-vsctl del-port br0 lisp_sys
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1303"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Try creating the port
cat >experr <<EOF
ovs-vsctl: Error detected while setting up 'vxlan_sys'.  See ovs-vswitchd log for details.
ovs-vsctl: The default log directory is "$OVS_RUNDIR".
EOF
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1303: ovs-vsctl add-port br0 vxlan_sys"
at_fn_check_prepare_trace "ovs-vsctl.at:1303"
( $at_check_trace; ovs-vsctl add-port br0 vxlan_sys
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1303"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Prevent race.
$as_echo "ovs-vsctl.at:1303: waiting until test \`grep -- \"|WARN|\" ovs-vswitchd.log | wc -l\` -ge 1..." >&5
ovs_wait_cond () {
    test `grep -- "|WARN|" ovs-vswitchd.log | wc -l` -ge 1
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1303: wait failed" >&5

    $as_echo "ovs-vsctl.at:1303" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1303"
fi

# Detect the warning log message
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1303: sed -n \"s/^.*\\(|bridge|WARN|.*\\)\$/\\1/p\" ovs-vswitchd.log"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-vsctl.at:1303"
( $at_check_trace; sed -n "s/^.*\(|bridge|WARN|.*\)$/\1/p" ovs-vswitchd.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "|bridge|WARN|could not create interface vxlan_sys, name is reserved
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1303"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Delete the warning log message
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1303: sed \"/|bridge|WARN|/d\" ovs-vswitchd.log > ovs-vswitchd.log"
at_fn_check_prepare_notrace 'a shell pipeline' "ovs-vsctl.at:1303"
( $at_check_trace; sed "/|bridge|WARN|/d" ovs-vswitchd.log > ovs-vswitchd.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1303"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

# Delete the port
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1303: ovs-vsctl del-port br0 vxlan_sys"
at_fn_check_prepare_trace "ovs-vsctl.at:1303"
( $at_check_trace; ovs-vsctl del-port br0 vxlan_sys
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1303"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1326: check_logs "
at_fn_check_prepare_trace "ovs-vsctl.at:1326"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1326"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1326: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovs-vsctl.at:1326"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1326"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1326: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovs-vsctl.at:1326"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1326"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-vsctl.at:1326: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1326: wait failed" >&5

    $as_echo "ovs-vsctl.at:1326" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1326"
fi

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1326: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovs-vsctl.at:1326"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1326"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1326: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1326"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1326"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "ovs-vsctl.at:1326: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1326: wait failed" >&5

    $as_echo "ovs-vsctl.at:1326" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1326"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2313
#AT_START_2314
at_fn_group_banner 2314 'ovs-vsctl.at:1329' \
  "naming in db commands" "                          " 112
at_xfail=no
(
  $as_echo "2314. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1331: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:1331"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1331"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1331: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1331"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1331"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1331: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-vsctl.at:1331"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1331"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1334: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br br0
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1334"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br br0

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1334"
$at_failed && at_fn_log_failure
$at_traceon; }

uuid=`ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket get port br0 _uuid
`
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1336: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket get port \$uuid name
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1336"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket get port $uuid name

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"br0\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1336"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1341: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br 0fcd11a1-2ba8-4b38-a358-4bccf2bf3057
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1341"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket add-br 0fcd11a1-2ba8-4b38-a358-4bccf2bf3057

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1341"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1342: ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket get interface 0fcd11a1-2ba8-4b38-a358-4bccf2bf3057 type
"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1342"
( $at_check_trace; ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket get interface 0fcd11a1-2ba8-4b38-a358-4bccf2bf3057 type

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "internal
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1342"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1345: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1345"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1345"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1345: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1345"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1345"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1345: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1345: wait failed" >&5

    $as_echo "ovs-vsctl.at:1345" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1345"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2314
#AT_START_2315
at_fn_group_banner 2315 'ovs-vsctl.at:1348' \
  "bootstrap ca cert" "                              " 112
at_xfail=no
(
  $as_echo "2315. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


$as_echo "ovs-vsctl.at:1350" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovs-vsctl.at:1350"
PKIDIR=`pwd`
OVS_PKI="sh $abs_top_srcdir/utilities/ovs-pki.in --dir=$PKIDIR/pki --log=$PKIDIR/ovs-pki.log"
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1353: \$OVS_PKI -B 1024 init && \$OVS_PKI -B 1024 req+sign vsctl switch && \$OVS_PKI -B 1024 req ovsdbserver && \$OVS_PKI self-sign ovsdbserver"
at_fn_check_prepare_dynamic "$OVS_PKI -B 1024 init && $OVS_PKI -B 1024 req+sign vsctl switch && $OVS_PKI -B 1024 req ovsdbserver && $OVS_PKI self-sign ovsdbserver" "ovs-vsctl.at:1353"
( $at_check_trace; $OVS_PKI -B 1024 init && $OVS_PKI -B 1024 req+sign vsctl switch && $OVS_PKI -B 1024 req ovsdbserver && $OVS_PKI self-sign ovsdbserver
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1353"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1356: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:1356"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1356"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1356: ovsdb-tool transact conf.db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1356"
( $at_check_trace; ovsdb-tool transact conf.db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1356"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1357: ovsdb-server --detach --no-chdir --pidfile --private-key=\$PKIDIR/ovsdbserver-privkey.pem --certificate=\$PKIDIR/ovsdbserver-cert.pem --ca-cert=\$PKIDIR/pki/switchca/cacert.pem --remote=pssl:0:127.0.0.1 --log-file=\"\`pwd\`\"/ovsdb-server.log conf.db"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:1357"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --private-key=$PKIDIR/ovsdbserver-privkey.pem --certificate=$PKIDIR/ovsdbserver-cert.pem --ca-cert=$PKIDIR/pki/switchca/cacert.pem --remote=pssl:0:127.0.0.1 --log-file="`pwd`"/ovsdb-server.log conf.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1357"
$at_failed && at_fn_log_failure
$at_traceon; }

on_exit "kill `cat ovsdb-server.pid`"
$as_echo "ovs-vsctl.at:1359: waiting until SSL_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$SSL_PORT\"..." >&5
ovs_wait_cond () {
    SSL_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$SSL_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1359: wait failed" >&5

    $as_echo "ovs-vsctl.at:1359" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1359"
fi


# During bootstrap, the connection gets torn down. So the o/p of ovs-vsctl is error.
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1362: ovs-vsctl -t 5 --db=ssl:127.0.0.1:\$SSL_PORT --private-key=\$PKIDIR/vsctl-privkey.pem --certificate=\$PKIDIR/vsctl-cert.pem --bootstrap-ca-cert=\$PKIDIR/cacert.pem show"
at_fn_check_prepare_dynamic "ovs-vsctl -t 5 --db=ssl:127.0.0.1:$SSL_PORT --private-key=$PKIDIR/vsctl-privkey.pem --certificate=$PKIDIR/vsctl-cert.pem --bootstrap-ca-cert=$PKIDIR/cacert.pem show" "ovs-vsctl.at:1362"
( $at_check_trace; ovs-vsctl -t 5 --db=ssl:127.0.0.1:$SSL_PORT --private-key=$PKIDIR/vsctl-privkey.pem --certificate=$PKIDIR/vsctl-cert.pem --bootstrap-ca-cert=$PKIDIR/cacert.pem show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:1362"
$at_failed && at_fn_log_failure
$at_traceon; }


# If the bootstrap was successful, the following file should exist.
$as_echo "ovs-vsctl.at:1365: waiting until test -e \$PKIDIR/cacert.pem..." >&5
ovs_wait_cond () {
    test -e $PKIDIR/cacert.pem
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1365: wait failed" >&5

    $as_echo "ovs-vsctl.at:1365" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1365"
fi


# After bootstrap, the connection should be successful.
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1368: ovs-vsctl -t 5 --no-wait --db=ssl:127.0.0.1:\$SSL_PORT --private-key=\$PKIDIR/vsctl-privkey.pem --certificate=\$PKIDIR/vsctl-cert.pem --bootstrap-ca-cert=\$PKIDIR/cacert.pem add-br br0"
at_fn_check_prepare_dynamic "ovs-vsctl -t 5 --no-wait --db=ssl:127.0.0.1:$SSL_PORT --private-key=$PKIDIR/vsctl-privkey.pem --certificate=$PKIDIR/vsctl-cert.pem --bootstrap-ca-cert=$PKIDIR/cacert.pem add-br br0" "ovs-vsctl.at:1368"
( $at_check_trace; ovs-vsctl -t 5 --no-wait --db=ssl:127.0.0.1:$SSL_PORT --private-key=$PKIDIR/vsctl-privkey.pem --certificate=$PKIDIR/vsctl-cert.pem --bootstrap-ca-cert=$PKIDIR/cacert.pem add-br br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1368"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1369: ovs-vsctl -t 5 --no-wait --db=ssl:127.0.0.1:\$SSL_PORT --private-key=\$PKIDIR/vsctl-privkey.pem --certificate=\$PKIDIR/vsctl-cert.pem --bootstrap-ca-cert=\$PKIDIR/cacert.pem list-br"
at_fn_check_prepare_dynamic "ovs-vsctl -t 5 --no-wait --db=ssl:127.0.0.1:$SSL_PORT --private-key=$PKIDIR/vsctl-privkey.pem --certificate=$PKIDIR/vsctl-cert.pem --bootstrap-ca-cert=$PKIDIR/cacert.pem list-br" "ovs-vsctl.at:1369"
( $at_check_trace; ovs-vsctl -t 5 --no-wait --db=ssl:127.0.0.1:$SSL_PORT --private-key=$PKIDIR/vsctl-privkey.pem --certificate=$PKIDIR/vsctl-cert.pem --bootstrap-ca-cert=$PKIDIR/cacert.pem list-br
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1369"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1372: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1372"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1372"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1372: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1372"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1372"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1372: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1372: wait failed" >&5

    $as_echo "ovs-vsctl.at:1372" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1372"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2315
#AT_START_2316
at_fn_group_banner 2316 'ovs-vsctl.at:1375' \
  "peer ca cert" "                                   " 112
at_xfail=no
(
  $as_echo "2316. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


$as_echo "ovs-vsctl.at:1377" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovs-vsctl.at:1377"
PKIDIR=`pwd`
OVS_PKI="sh $abs_top_srcdir/utilities/ovs-pki.in --dir=$PKIDIR/pki --log=$PKIDIR/ovs-pki.log"
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1380: \$OVS_PKI -B 1024 init && \$OVS_PKI -B 1024 req+sign vsctl switch && \$OVS_PKI -B 1024 req+sign ovsdbserver controller"
at_fn_check_prepare_dynamic "$OVS_PKI -B 1024 init && $OVS_PKI -B 1024 req+sign vsctl switch && $OVS_PKI -B 1024 req+sign ovsdbserver controller" "ovs-vsctl.at:1380"
( $at_check_trace; $OVS_PKI -B 1024 init && $OVS_PKI -B 1024 req+sign vsctl switch && $OVS_PKI -B 1024 req+sign ovsdbserver controller
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1380"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1383: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-vsctl.at:1383"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1383"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1383: ovsdb-tool transact conf.db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-vsctl.at:1383"
( $at_check_trace; ovsdb-tool transact conf.db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1383"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1384: ovsdb-server --detach --no-chdir --pidfile --private-key=\$PKIDIR/ovsdbserver-privkey.pem --certificate=\$PKIDIR/ovsdbserver-cert.pem --ca-cert=\$PKIDIR/pki/switchca/cacert.pem --peer-ca-cert=\$PKIDIR/pki/controllerca/cacert.pem --remote=pssl:0:127.0.0.1 --log-file=\"\`pwd\`\"/ovsdb-server.log conf.db"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-vsctl.at:1384"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --private-key=$PKIDIR/ovsdbserver-privkey.pem --certificate=$PKIDIR/ovsdbserver-cert.pem --ca-cert=$PKIDIR/pki/switchca/cacert.pem --peer-ca-cert=$PKIDIR/pki/controllerca/cacert.pem --remote=pssl:0:127.0.0.1 --log-file="`pwd`"/ovsdb-server.log conf.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1384"
$at_failed && at_fn_log_failure
$at_traceon; }

on_exit "kill `cat ovsdb-server.pid`"
$as_echo "ovs-vsctl.at:1386: waiting until SSL_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$SSL_PORT\"..." >&5
ovs_wait_cond () {
    SSL_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$SSL_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1386: wait failed" >&5

    $as_echo "ovs-vsctl.at:1386" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1386"
fi


# During bootstrap, the connection gets torn down. So the o/p of ovs-vsctl is error.
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1389: ovs-vsctl -t 5 --db=ssl:127.0.0.1:\$SSL_PORT --private-key=\$PKIDIR/vsctl-privkey.pem --certificate=\$PKIDIR/vsctl-cert.pem --bootstrap-ca-cert=\$PKIDIR/cacert.pem show"
at_fn_check_prepare_dynamic "ovs-vsctl -t 5 --db=ssl:127.0.0.1:$SSL_PORT --private-key=$PKIDIR/vsctl-privkey.pem --certificate=$PKIDIR/vsctl-cert.pem --bootstrap-ca-cert=$PKIDIR/cacert.pem show" "ovs-vsctl.at:1389"
( $at_check_trace; ovs-vsctl -t 5 --db=ssl:127.0.0.1:$SSL_PORT --private-key=$PKIDIR/vsctl-privkey.pem --certificate=$PKIDIR/vsctl-cert.pem --bootstrap-ca-cert=$PKIDIR/cacert.pem show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/ovs-vsctl.at:1389"
$at_failed && at_fn_log_failure
$at_traceon; }


# If the bootstrap was successful, the following file should exist.
$as_echo "ovs-vsctl.at:1392: waiting until test -e \$PKIDIR/cacert.pem..." >&5
ovs_wait_cond () {
    test -e $PKIDIR/cacert.pem
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1392: wait failed" >&5

    $as_echo "ovs-vsctl.at:1392" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1392"
fi


# After bootstrap, the connection should be successful.
{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1395: ovs-vsctl -t 5 --no-wait --db=ssl:127.0.0.1:\$SSL_PORT --private-key=\$PKIDIR/vsctl-privkey.pem --certificate=\$PKIDIR/vsctl-cert.pem --bootstrap-ca-cert=\$PKIDIR/cacert.pem add-br br0"
at_fn_check_prepare_dynamic "ovs-vsctl -t 5 --no-wait --db=ssl:127.0.0.1:$SSL_PORT --private-key=$PKIDIR/vsctl-privkey.pem --certificate=$PKIDIR/vsctl-cert.pem --bootstrap-ca-cert=$PKIDIR/cacert.pem add-br br0" "ovs-vsctl.at:1395"
( $at_check_trace; ovs-vsctl -t 5 --no-wait --db=ssl:127.0.0.1:$SSL_PORT --private-key=$PKIDIR/vsctl-privkey.pem --certificate=$PKIDIR/vsctl-cert.pem --bootstrap-ca-cert=$PKIDIR/cacert.pem add-br br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1395"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1396: ovs-vsctl -t 5 --no-wait --db=ssl:127.0.0.1:\$SSL_PORT --private-key=\$PKIDIR/vsctl-privkey.pem --certificate=\$PKIDIR/vsctl-cert.pem --bootstrap-ca-cert=\$PKIDIR/cacert.pem list-br"
at_fn_check_prepare_dynamic "ovs-vsctl -t 5 --no-wait --db=ssl:127.0.0.1:$SSL_PORT --private-key=$PKIDIR/vsctl-privkey.pem --certificate=$PKIDIR/vsctl-cert.pem --bootstrap-ca-cert=$PKIDIR/cacert.pem list-br" "ovs-vsctl.at:1396"
( $at_check_trace; ovs-vsctl -t 5 --no-wait --db=ssl:127.0.0.1:$SSL_PORT --private-key=$PKIDIR/vsctl-privkey.pem --certificate=$PKIDIR/vsctl-cert.pem --bootstrap-ca-cert=$PKIDIR/cacert.pem list-br
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "br0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1396"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1399: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-vsctl.at:1399"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1399"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-vsctl.at:1399: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-vsctl.at:1399"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-vsctl.at:1399"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovs-vsctl.at:1399: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-vsctl.at:1399: wait failed" >&5

    $as_echo "ovs-vsctl.at:1399" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-vsctl.at:1399"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2316
#AT_START_2317
at_fn_group_banner 2317 'ovs-xapi-sync.at:3' \
  "ovs-xapi-sync" "                                  " 113
at_xfail=no
(
  $as_echo "2317. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovs-xapi-sync.at:4" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovs-xapi-sync.at:4"

# Mock up the XenAPI.
cp "$top_srcdir/tests/MockXenAPI.py" XenAPI.py
PYTHONPATH=`pwd`:$PYTHONPATH
export PYTHONPATH

cp "$top_srcdir/vswitchd/vswitch.ovsschema" .

cp "$top_srcdir/xenserver/usr_share_openvswitch_scripts_ovs-xapi-sync" \
   ovs-xapi-sync

on_exit 'kill `cat pid ovs-xapi-sync.pid`'

mkdir var var/run
touch var/run/xapi_init_complete.cookie

ovs_vsctl () {
    ovs-vsctl --no-wait -vreconnect:emer --db=unix:socket "$@"
}

# Start ovsdb-server.
{ set +x
$as_echo "$at_srcdir/ovs-xapi-sync.at:26: ovsdb-tool create db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovs-xapi-sync.at:26"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-xapi-sync.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-xapi-sync.at:26: ovsdb-tool transact db \\
        '[\"Open_vSwitch\",
          {\"op\": \"insert\",
           \"table\": \"Open_vSwitch\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-xapi-sync.at:26"
( $at_check_trace; ovsdb-tool transact db \
        '["Open_vSwitch",
          {"op": "insert",
           "table": "Open_vSwitch",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-xapi-sync.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovs-xapi-sync.at:26: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "ovs-xapi-sync.at:26"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovs-xapi-sync.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit 'kill `cat ovsdb-server.pid`'

# Start ovs-xapi-sync.
{ set +x
$as_echo "$at_srcdir/ovs-xapi-sync.at:29: \$PYTHON ./ovs-xapi-sync \"--pidfile=ovs-xapi-sync.pid\" \\
                  \"--root-prefix=\`pwd\`\" unix:socket >log 2>&1 &"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovs-xapi-sync.at:29"
( $at_check_trace; $PYTHON ./ovs-xapi-sync "--pidfile=ovs-xapi-sync.pid" \
                  "--root-prefix=`pwd`" unix:socket >log 2>&1 &
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-xapi-sync.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }



# Add bridges and check ovs-xapi-sync's work.
{ set +x
$as_echo "$at_srcdir/ovs-xapi-sync.at:34: ovs_vsctl -- add-br xenbr0 -- add-br xenbr1"
at_fn_check_prepare_trace "ovs-xapi-sync.at:34"
( $at_check_trace; ovs_vsctl -- add-br xenbr0 -- add-br xenbr1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-xapi-sync.at:34"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }

$as_echo "ovs-xapi-sync.at:35: waiting until test \"X\`ovs_vsctl get bridge xenbr0 fail-mode\`\" != \"X[]\"..." >&5
ovs_wait_cond () {
    test "X`ovs_vsctl get bridge xenbr0 fail-mode`" != "X[]"
}
if ovs_wait; then :
else
    $as_echo "ovs-xapi-sync.at:35: wait failed" >&5

    $as_echo "ovs-xapi-sync.at:35" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-xapi-sync.at:35"
fi

{ set +x
$as_echo "$at_srcdir/ovs-xapi-sync.at:36: ovs_vsctl \\
                -- get bridge xenbr0 fail-mode other-config external-ids \\
                -- get bridge xenbr1 fail-mode other-config external-ids"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-xapi-sync.at:36"
( $at_check_trace; ovs_vsctl \
                -- get bridge xenbr0 fail-mode other-config external-ids \
                -- get bridge xenbr1 fail-mode other-config external-ids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "secure
{}
{bridge-id=\"custom bridge ID\"}
secure
{disable-in-band=\"true\"}
{}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-xapi-sync.at:36"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }


# Add vif and check daemon's work.
{ set +x
$as_echo "$at_srcdir/ovs-xapi-sync.at:48: ovs_vsctl \\
                -- add-port xenbr0 vif1.0 \\
                -- set Interface vif1.0 'external-ids={attached-mac=\"00:11:22:33:44:55\", xs-network-uuid=\"9b66c68b-a74e-4d34-89a5-20a8ab352d1e\", xs-vif-uuid=\"6ab1b260-398e-49ba-827b-c7696108964c\", xs-vm-uuid=\"fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8\"'}"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-xapi-sync.at:48"
( $at_check_trace; ovs_vsctl \
                -- add-port xenbr0 vif1.0 \
                -- set Interface vif1.0 'external-ids={attached-mac="00:11:22:33:44:55", xs-network-uuid="9b66c68b-a74e-4d34-89a5-20a8ab352d1e", xs-vif-uuid="6ab1b260-398e-49ba-827b-c7696108964c", xs-vm-uuid="fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8"'}
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-xapi-sync.at:48"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }

$as_echo "ovs-xapi-sync.at:51: waiting until ovs_vsctl get interface vif1.0 external-ids:iface-id >/dev/null 2>&1..." >&5
ovs_wait_cond () {
    ovs_vsctl get interface vif1.0 external-ids:iface-id >/dev/null 2>&1
}
if ovs_wait; then :
else
    $as_echo "ovs-xapi-sync.at:51: wait failed" >&5

    $as_echo "ovs-xapi-sync.at:51" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-xapi-sync.at:51"
fi

{ set +x
$as_echo "$at_srcdir/ovs-xapi-sync.at:52: ovs_vsctl get interface vif1.0 external-ids"
at_fn_check_prepare_trace "ovs-xapi-sync.at:52"
( $at_check_trace; ovs_vsctl get interface vif1.0 external-ids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{attached-mac=\"00:11:22:33:44:55\", iface-id=\"custom iface ID\", iface-status=active, vm-id=\"custom vm ID\", xs-network-uuid=\"9b66c68b-a74e-4d34-89a5-20a8ab352d1e\", xs-vif-uuid=\"6ab1b260-398e-49ba-827b-c7696108964c\", xs-vm-uuid=\"fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-xapi-sync.at:52"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }


# Add corresponding tap and check daemon's work.
{ set +x
$as_echo "$at_srcdir/ovs-xapi-sync.at:57: ovs_vsctl add-port xenbr0 tap1.0"
at_fn_check_prepare_trace "ovs-xapi-sync.at:57"
( $at_check_trace; ovs_vsctl add-port xenbr0 tap1.0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-xapi-sync.at:57"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }

$as_echo "ovs-xapi-sync.at:58: waiting until ovs_vsctl get interface tap1.0 external-ids:iface-id >/dev/null 2>&1..." >&5
ovs_wait_cond () {
    ovs_vsctl get interface tap1.0 external-ids:iface-id >/dev/null 2>&1
}
if ovs_wait; then :
else
    $as_echo "ovs-xapi-sync.at:58: wait failed" >&5

    $as_echo "ovs-xapi-sync.at:58" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-xapi-sync.at:58"
fi

{ set +x
$as_echo "$at_srcdir/ovs-xapi-sync.at:59: ovs_vsctl \\
                -- get interface vif1.0 external-ids \\
                -- get interface tap1.0 external-ids"
at_fn_check_prepare_notrace 'an embedded newline' "ovs-xapi-sync.at:59"
( $at_check_trace; ovs_vsctl \
                -- get interface vif1.0 external-ids \
                -- get interface tap1.0 external-ids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{attached-mac=\"00:11:22:33:44:55\", iface-id=\"custom iface ID\", iface-status=inactive, vm-id=\"custom vm ID\", xs-network-uuid=\"9b66c68b-a74e-4d34-89a5-20a8ab352d1e\", xs-vif-uuid=\"6ab1b260-398e-49ba-827b-c7696108964c\", xs-vm-uuid=\"fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8\"}
{attached-mac=\"00:11:22:33:44:55\", iface-id=\"custom iface ID\", iface-status=active, vm-id=\"custom vm ID\", xs-network-uuid=\"9b66c68b-a74e-4d34-89a5-20a8ab352d1e\", xs-vif-uuid=\"6ab1b260-398e-49ba-827b-c7696108964c\", xs-vm-uuid=\"fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-xapi-sync.at:59"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }


# Remove corresponding tap and check daemon's work.
{ set +x
$as_echo "$at_srcdir/ovs-xapi-sync.at:67: ovs_vsctl del-port tap1.0"
at_fn_check_prepare_trace "ovs-xapi-sync.at:67"
( $at_check_trace; ovs_vsctl del-port tap1.0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-xapi-sync.at:67"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }

$as_echo "ovs-xapi-sync.at:68: waiting until test \`ovs_vsctl get interface vif1.0 external-ids:iface-status\` = active..." >&5
ovs_wait_cond () {
    test `ovs_vsctl get interface vif1.0 external-ids:iface-status` = active
}
if ovs_wait; then :
else
    $as_echo "ovs-xapi-sync.at:68: wait failed" >&5

    $as_echo "ovs-xapi-sync.at:68" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-xapi-sync.at:68"
fi

{ set +x
$as_echo "$at_srcdir/ovs-xapi-sync.at:69: ovs_vsctl get interface vif1.0 external-ids"
at_fn_check_prepare_trace "ovs-xapi-sync.at:69"
( $at_check_trace; ovs_vsctl get interface vif1.0 external-ids
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{attached-mac=\"00:11:22:33:44:55\", iface-id=\"custom iface ID\", iface-status=active, vm-id=\"custom vm ID\", xs-network-uuid=\"9b66c68b-a74e-4d34-89a5-20a8ab352d1e\", xs-vif-uuid=\"6ab1b260-398e-49ba-827b-c7696108964c\", xs-vm-uuid=\"fcb8a3f6-dc04-41d2-8b8a-55afd2b755b8\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-xapi-sync.at:69"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovs-xapi-sync.at:73: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "ovs-xapi-sync.at:73"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-xapi-sync.at:73"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovs-xapi-sync.at:73: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "ovs-xapi-sync.at:73"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovs-xapi-sync.at:73"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }

   $as_echo "ovs-xapi-sync.at:73: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovs-xapi-sync.at:73: wait failed" >&5

    $as_echo "ovs-xapi-sync.at:73" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovs-xapi-sync.at:73"
fi


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2317
#AT_START_2318
at_fn_group_banner 2318 'interface-reconfigure.at:696' \
  "non-VLAN, non-bond" "                             " 114
at_xfail=no
(
  $as_echo "2318. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


$as_echo "interface-reconfigure.at:698" >"$at_check_line_file"
($non_ascii_cwd) \
  && at_fn_check_skip 77 "$at_srcdir/interface-reconfigure.at:698"
$as_echo "interface-reconfigure.at:699" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/interface-reconfigure.at:699"
ifr_setup

{ set +x
$as_echo "$at_srcdir/interface-reconfigure.at:702: ifr_run --force xenbr2 up"
at_fn_check_prepare_trace "interface-reconfigure.at:702"
( $at_check_trace; ifr_run --force xenbr2 up
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:702"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/interface-reconfigure.at:703: ifr_filter"
at_fn_check_prepare_trace "interface-reconfigure.at:703"
( $at_check_trace; ifr_filter
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Force interface xenbr2 up
Loading xapi database cache from /var/xapi/network.dbcache
Configured for Vswitch datapath
action_up: xenbr2
Writing network configuration for xenbr2
Configuring xenbr2 using DHCP configuration
configure_datapath: bridge      - xenbr2
configure_datapath: physical    - ['eth2']
configure_datapath: extra ports - []
configure_datapath: extra bonds - []
/usr/bin/ovs-vsctl -vconsole:off get-fail-mode xenbr2
Applying changes to /etc/sysconfig/network-scripts/route-xenbr2 configuration
Applying changes to /etc/sysconfig/network configuration
Applying changes to /etc/sysconfig/network-scripts/ifcfg-xenbr2 configuration
/sbin/ip link set eth2 up mtu 1500
/sbin/ethtool -K eth2 gro off lro off
/usr/sbin/ovs-vlan-bug-workaround eth2 on
/usr/bin/ovs-vsctl --timeout=20
    --with-iface --if-exists del-port eth2
    --may-exist add-br xenbr2
    --may-exist add-port xenbr2 eth2
    set Bridge xenbr2 other-config:hwaddr=\"00:15:17:a0:29:80\"
    set Bridge xenbr2 fail_mode=secure
    remove Bridge xenbr2 other_config disable-in-band
    br-set-external-id xenbr2 xs-network-uuids d08c8749-0c8f-9e8d-ce25-fd364661ee99
/usr/bin/ovs-vsctl -vconsole:off get interface eth2 ofport
/usr/bin/ovs-ofctl add-flow xenbr2 idle_timeout=0,priority=0,in_port=5,arp,nw_proto=1,actions=local
/usr/bin/ovs-ofctl add-flow xenbr2 idle_timeout=0,priority=0,in_port=local,arp,dl_src=00:15:17:a0:29:80,actions=5
/usr/bin/ovs-ofctl add-flow xenbr2 idle_timeout=0,priority=0,in_port=5,dl_dst=00:15:17:a0:29:80,actions=local
/usr/bin/ovs-ofctl add-flow xenbr2 idle_timeout=0,priority=0,in_port=local,dl_src=00:15:17:a0:29:80,actions=5
/sbin/ifup xenbr2
/sbin/update-issue
Committing changes to /etc/sysconfig/network-scripts/route-xenbr2 configuration
Committing changes to /etc/sysconfig/network configuration
Committing changes to /etc/sysconfig/network-scripts/ifcfg-xenbr2 configuration
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:703"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/interface-reconfigure.at:740: cat etc/sysconfig/network-scripts/ifcfg-xenbr2"
at_fn_check_prepare_trace "interface-reconfigure.at:740"
( $at_check_trace; cat etc/sysconfig/network-scripts/ifcfg-xenbr2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "# DO NOT EDIT: This file (ifcfg-xenbr2) was autogenerated by interface-reconfigure
XEMANAGED=yes
DEVICE=xenbr2
ONBOOT=no
NOZEROCONF=yes
TYPE=Ethernet
BOOTPROTO=dhcp
PERSISTENT_DHCLIENT=yes
MTU=1500
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:740"
$at_failed && at_fn_log_failure
$at_traceon; }


# Simulate interface-reconfigure creating xenbr2, so that we can tell
# interface-reconfigure to take it back down.
{ set +x
$as_echo "$at_srcdir/interface-reconfigure.at:754: configure_netdev xenbr2 00:15:17:a0:29:80 0"
at_fn_check_prepare_trace "interface-reconfigure.at:754"
( $at_check_trace; configure_netdev xenbr2 00:15:17:a0:29:80 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:754"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/interface-reconfigure.at:756: ifr_run --force xenbr2 down"
at_fn_check_prepare_trace "interface-reconfigure.at:756"
( $at_check_trace; ifr_run --force xenbr2 down
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:756"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/interface-reconfigure.at:757: ifr_filter"
at_fn_check_prepare_trace "interface-reconfigure.at:757"
( $at_check_trace; ifr_filter
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Force interface xenbr2 down
Loading xapi database cache from /var/xapi/network.dbcache
Configured for Vswitch datapath
action_down: xenbr2
/sbin/ifdown xenbr2
deconfigure ipdev xenbr2 on xenbr2
deconfigure_bridge: bridge           - xenbr2
action_down: bring down physical devices - ['eth2']
/sbin/ip link set eth2 down
/usr/bin/ovs-vsctl --timeout=20
    --with-iface --if-exists del-port xenbr2
    --if-exists del-br xenbr2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:757"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2318
#AT_START_2319
at_fn_group_banner 2319 'interface-reconfigure.at:773' \
  "VLAN, non-bond" "                                 " 114
at_xfail=no
(
  $as_echo "2319. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


$as_echo "interface-reconfigure.at:775" >"$at_check_line_file"
($non_ascii_cwd) \
  && at_fn_check_skip 77 "$at_srcdir/interface-reconfigure.at:775"
$as_echo "interface-reconfigure.at:776" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/interface-reconfigure.at:776"
ifr_setup

{ set +x
$as_echo "$at_srcdir/interface-reconfigure.at:779: ifr_run --force xapi3 up"
at_fn_check_prepare_trace "interface-reconfigure.at:779"
( $at_check_trace; ifr_run --force xapi3 up
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:779"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/interface-reconfigure.at:780: ifr_filter"
at_fn_check_prepare_trace "interface-reconfigure.at:780"
( $at_check_trace; ifr_filter
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Force interface xapi3 up
Loading xapi database cache from /var/xapi/network.dbcache
Configured for Vswitch datapath
action_up: xapi3
Writing network configuration for xapi3
Configuring xapi3 using None configuration
configure_datapath: bridge      - xenbr3
configure_datapath: physical    - ['eth3']
configure_datapath: extra ports - []
configure_datapath: extra bonds - []
Applying changes to /etc/sysconfig/network-scripts/route-xapi3 configuration
Applying changes to /etc/sysconfig/network-scripts/ifcfg-xapi3 configuration
/sbin/ip link set eth3 up mtu 1500
/sbin/ethtool -K eth3 gro off lro off
/usr/sbin/ovs-vlan-bug-workaround eth3 on
/usr/bin/ovs-vsctl --timeout=20
    --with-iface --if-exists del-port eth3
    --may-exist add-br xenbr3
    --may-exist add-port xenbr3 eth3
    set Bridge xenbr3 other-config:hwaddr=\"00:15:17:a0:29:81\"
    set Bridge xenbr3 fail_mode=secure
    remove Bridge xenbr3 other_config disable-in-band
    br-set-external-id xenbr3 xs-network-uuids 2902ae1b-8013-897a-b697-0b200ea3aaa5;db7bdc03-074d-42ae-fc73-9b06de1d57f6
    --if-exists del-br xapi3
    --may-exist add-br xapi3 xenbr3 123
    br-set-external-id xapi3 xs-network-uuids 2902ae1b-8013-897a-b697-0b200ea3aaa5;db7bdc03-074d-42ae-fc73-9b06de1d57f6
    set Interface xapi3 MAC=\"00:15:17:a0:29:81\"
/sbin/ifup xapi3
/sbin/update-issue
Committing changes to /etc/sysconfig/network-scripts/route-xapi3 configuration
Committing changes to /etc/sysconfig/network-scripts/ifcfg-xapi3 configuration
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:780"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/interface-reconfigure.at:813: cat etc/sysconfig/network-scripts/ifcfg-xapi3"
at_fn_check_prepare_trace "interface-reconfigure.at:813"
( $at_check_trace; cat etc/sysconfig/network-scripts/ifcfg-xapi3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "# DO NOT EDIT: This file (ifcfg-xapi3) was autogenerated by interface-reconfigure
XEMANAGED=yes
DEVICE=xapi3
ONBOOT=no
NOZEROCONF=yes
TYPE=Ethernet
BOOTPROTO=none
MTU=1500
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:813"
$at_failed && at_fn_log_failure
$at_traceon; }


# Simulate interface-reconfigure creating xapi3, so that we can tell
# interface-reconfigure to take it back down.
{ set +x
$as_echo "$at_srcdir/interface-reconfigure.at:826: configure_netdev xapi3 00:23:20:AC:AF:02 0"
at_fn_check_prepare_trace "interface-reconfigure.at:826"
( $at_check_trace; configure_netdev xapi3 00:23:20:AC:AF:02 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:826"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/interface-reconfigure.at:828: ifr_run --force xapi3 down"
at_fn_check_prepare_trace "interface-reconfigure.at:828"
( $at_check_trace; ifr_run --force xapi3 down
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:828"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/interface-reconfigure.at:829: ifr_filter"
at_fn_check_prepare_trace "interface-reconfigure.at:829"
( $at_check_trace; ifr_filter
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Force interface xapi3 down
Loading xapi database cache from /var/xapi/network.dbcache
Configured for Vswitch datapath
action_down: xapi3
/sbin/ifdown xapi3
deconfigure ipdev xapi3 on xenbr3
deconfigure_bridge: bridge           - xapi3
action_down: no more masters, bring down slave xenbr3
deconfigure_bridge: bridge           - xenbr3
action_down: bring down physical devices - ['eth3']
/sbin/ip link set eth3 down
/usr/bin/ovs-vsctl --timeout=20
    --with-iface --if-exists del-port xapi3
    --if-exists del-br xapi3
    --if-exists del-br xenbr3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:829"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2319
#AT_START_2320
at_fn_group_banner 2320 'interface-reconfigure.at:848' \
  "Bond, non-VLAN" "                                 " 114
at_xfail=no
(
  $as_echo "2320. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


$as_echo "interface-reconfigure.at:850" >"$at_check_line_file"
($non_ascii_cwd) \
  && at_fn_check_skip 77 "$at_srcdir/interface-reconfigure.at:850"
$as_echo "interface-reconfigure.at:851" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/interface-reconfigure.at:851"
ifr_setup

# Pretend that bond0 exists, even though it would really be created by
# a "create-bond" call in an ovs-vsctl invocation within
# interface-reconfigure, because otherwise interface-reconfigure will
# die with "failed to apply changes: netdev: up: device bond0 does not
# exist" after it thinks it created bond0.
{ set +x
$as_echo "$at_srcdir/interface-reconfigure.at:859: configure_netdev bond0 00:23:20:e6:39:75 0"
at_fn_check_prepare_trace "interface-reconfigure.at:859"
( $at_check_trace; configure_netdev bond0 00:23:20:e6:39:75 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:859"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/interface-reconfigure.at:861: ifr_run --force xapi1 up"
at_fn_check_prepare_trace "interface-reconfigure.at:861"
( $at_check_trace; ifr_run --force xapi1 up
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:861"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/interface-reconfigure.at:862: ifr_filter"
at_fn_check_prepare_trace "interface-reconfigure.at:862"
( $at_check_trace; ifr_filter
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Force interface xapi1 up
Loading xapi database cache from /var/xapi/network.dbcache
Configured for Vswitch datapath
action_up: xapi1
Writing network configuration for xapi1
Configuring xapi1 using None configuration
configure_datapath: leaving bond bond0 up
configure_datapath: leaving bond bond0 up
configure_datapath: bridge      - xapi1
configure_datapath: physical    - ['eth0', 'eth1']
configure_datapath: extra ports - []
configure_datapath: extra bonds - []
netdev: down: device xenbr0 does not exist, ignoring
netdev: down: device xenbr1 does not exist, ignoring
Applying changes to /etc/sysconfig/network-scripts/route-xapi1 configuration
Applying changes to /etc/sysconfig/network-scripts/ifcfg-xapi1 configuration
/sbin/ip link set eth0 up mtu 1500
/sbin/ethtool -K eth0 gro off lro off
/usr/sbin/ovs-vlan-bug-workaround eth0 on
/sbin/ip link set eth1 up mtu 1500
/sbin/ethtool -K eth1 gro off lro off
/usr/sbin/ovs-vlan-bug-workaround eth1 off
/usr/bin/ovs-vsctl --timeout=20
    --if-exists del-br xenbr0
    --if-exists del-br xenbr1
    --with-iface --if-exists del-port eth0
    --with-iface --if-exists del-port eth1
    --may-exist add-br xapi1
    --with-iface --if-exists del-port bond0
    --fake-iface add-bond xapi1 bond0 eth0 eth1
    set Port bond0 MAC=\"00:22:19:22:4b:af\" bond_downdelay=200 other-config:bond-miimon-interval=100 bond_updelay=31000 other-config:bond-detect-mode=carrier lacp=off bond_mode=balance-slb
    set Bridge xapi1 other-config:hwaddr=\"00:22:19:22:4b:af\"
    set Bridge xapi1 fail_mode=secure
    remove Bridge xapi1 other_config disable-in-band
    br-set-external-id xapi1 xs-network-uuids 45cbbb43-113d-a712-3231-c6463f253cef;99be2da4-6c33-6f8e-49ea-3bc592fe3c85
/sbin/ifup xapi1
action_up: bring up bond0
/sbin/ip link set bond0 up
/sbin/update-issue
Committing changes to /etc/sysconfig/network-scripts/route-xapi1 configuration
Committing changes to /etc/sysconfig/network-scripts/ifcfg-xapi1 configuration
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:862"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/interface-reconfigure.at:905: cat etc/sysconfig/network-scripts/ifcfg-xapi1"
at_fn_check_prepare_trace "interface-reconfigure.at:905"
( $at_check_trace; cat etc/sysconfig/network-scripts/ifcfg-xapi1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "# DO NOT EDIT: This file (ifcfg-xapi1) was autogenerated by interface-reconfigure
XEMANAGED=yes
DEVICE=xapi1
ONBOOT=no
NOZEROCONF=yes
TYPE=Ethernet
BOOTPROTO=none
MTU=1500
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:905"
$at_failed && at_fn_log_failure
$at_traceon; }


# Simulate interface-reconfigure creating xapi1, so that we can tell
# interface-reconfigure to take it back down.
{ set +x
$as_echo "$at_srcdir/interface-reconfigure.at:918: configure_netdev xapi1 00:22:19:22:4B:AF 0"
at_fn_check_prepare_trace "interface-reconfigure.at:918"
( $at_check_trace; configure_netdev xapi1 00:22:19:22:4B:AF 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:918"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/interface-reconfigure.at:920: ifr_run --force xapi1 down"
at_fn_check_prepare_trace "interface-reconfigure.at:920"
( $at_check_trace; ifr_run --force xapi1 down
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:920"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/interface-reconfigure.at:921: ifr_filter"
at_fn_check_prepare_trace "interface-reconfigure.at:921"
( $at_check_trace; ifr_filter
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Force interface xapi1 down
Loading xapi database cache from /var/xapi/network.dbcache
Configured for Vswitch datapath
action_down: xapi1
/sbin/ifdown xapi1
deconfigure ipdev xapi1 on xapi1
deconfigure_bridge: bridge           - xapi1
action_down: bring down physical devices - ['eth0', 'eth1']
/sbin/ip link set eth0 down
/sbin/ip link set eth1 down
/usr/bin/ovs-vsctl --timeout=20
    --with-iface --if-exists del-port xapi1
    --if-exists del-br xapi1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:921"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2320
#AT_START_2321
at_fn_group_banner 2321 'interface-reconfigure.at:938' \
  "VLAN on bond" "                                   " 114
at_xfail=no
(
  $as_echo "2321. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


$as_echo "interface-reconfigure.at:940" >"$at_check_line_file"
($non_ascii_cwd) \
  && at_fn_check_skip 77 "$at_srcdir/interface-reconfigure.at:940"
$as_echo "interface-reconfigure.at:941" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/interface-reconfigure.at:941"
ifr_setup

# Pretend that bond0 exists, even though it would really be created by
# a "create-bond" call in an ovs-vsctl invocation within
# interface-reconfigure, because otherwise interface-reconfigure will
# die with "failed to apply changes: netdev: up: device bond0 does not
# exist" after it thinks it created bond0.
{ set +x
$as_echo "$at_srcdir/interface-reconfigure.at:949: configure_netdev bond0 00:23:20:e6:39:75 0"
at_fn_check_prepare_trace "interface-reconfigure.at:949"
( $at_check_trace; configure_netdev bond0 00:23:20:e6:39:75 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:949"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/interface-reconfigure.at:951: ifr_run --force xapi2 up"
at_fn_check_prepare_trace "interface-reconfigure.at:951"
( $at_check_trace; ifr_run --force xapi2 up
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:951"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/interface-reconfigure.at:952: ifr_filter"
at_fn_check_prepare_trace "interface-reconfigure.at:952"
( $at_check_trace; ifr_filter
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Force interface xapi2 up
Loading xapi database cache from /var/xapi/network.dbcache
Configured for Vswitch datapath
action_up: xapi2
Writing network configuration for xapi2
Configuring xapi2 using None configuration
configure_datapath: leaving bond bond0 up
configure_datapath: leaving bond bond0 up
configure_datapath: bridge      - xapi1
configure_datapath: physical    - ['eth0', 'eth1']
configure_datapath: extra ports - []
configure_datapath: extra bonds - []
netdev: down: device xenbr0 does not exist, ignoring
netdev: down: device xenbr1 does not exist, ignoring
Applying changes to /etc/sysconfig/network-scripts/route-xapi2 configuration
Applying changes to /etc/sysconfig/network-scripts/ifcfg-xapi2 configuration
/sbin/ip link set eth0 up mtu 1500
/sbin/ethtool -K eth0 gro off lro off
/usr/sbin/ovs-vlan-bug-workaround eth0 on
/sbin/ip link set eth1 up mtu 1500
/sbin/ethtool -K eth1 gro off lro off
/usr/sbin/ovs-vlan-bug-workaround eth1 off
/usr/bin/ovs-vsctl --timeout=20
    --if-exists del-br xenbr0
    --if-exists del-br xenbr1
    --with-iface --if-exists del-port eth0
    --with-iface --if-exists del-port eth1
    --may-exist add-br xapi1
    --with-iface --if-exists del-port bond0
    --fake-iface add-bond xapi1 bond0 eth0 eth1
    set Port bond0 MAC=\"00:22:19:22:4b:af\" bond_downdelay=200 other-config:bond-miimon-interval=100 bond_updelay=31000 other-config:bond-detect-mode=carrier lacp=off bond_mode=balance-slb
    set Bridge xapi1 other-config:hwaddr=\"00:22:19:22:4b:af\"
    set Bridge xapi1 fail_mode=secure
    remove Bridge xapi1 other_config disable-in-band
    br-set-external-id xapi1 xs-network-uuids 45cbbb43-113d-a712-3231-c6463f253cef;99be2da4-6c33-6f8e-49ea-3bc592fe3c85
    --if-exists del-br xapi2
    --may-exist add-br xapi2 xapi1 4
    br-set-external-id xapi2 xs-network-uuids 45cbbb43-113d-a712-3231-c6463f253cef;99be2da4-6c33-6f8e-49ea-3bc592fe3c85
    set Interface xapi2 MAC=\"00:22:19:22:4b:af\"
/sbin/ifup xapi2
action_up: bring up bond0
/sbin/ip link set bond0 up
/sbin/update-issue
Committing changes to /etc/sysconfig/network-scripts/route-xapi2 configuration
Committing changes to /etc/sysconfig/network-scripts/ifcfg-xapi2 configuration
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:952"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/interface-reconfigure.at:999: cat etc/sysconfig/network-scripts/ifcfg-xapi2"
at_fn_check_prepare_trace "interface-reconfigure.at:999"
( $at_check_trace; cat etc/sysconfig/network-scripts/ifcfg-xapi2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "# DO NOT EDIT: This file (ifcfg-xapi2) was autogenerated by interface-reconfigure
XEMANAGED=yes
DEVICE=xapi2
ONBOOT=no
NOZEROCONF=yes
TYPE=Ethernet
BOOTPROTO=none
MTU=1500
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:999"
$at_failed && at_fn_log_failure
$at_traceon; }


# Simulate interface-reconfigure creating xapi2, so that we can tell
# interface-reconfigure to take it back down.
{ set +x
$as_echo "$at_srcdir/interface-reconfigure.at:1012: configure_netdev xapi2 00:23:20:A4:71:C2 0"
at_fn_check_prepare_trace "interface-reconfigure.at:1012"
( $at_check_trace; configure_netdev xapi2 00:23:20:A4:71:C2 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:1012"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/interface-reconfigure.at:1014: ifr_run --force xapi2 down"
at_fn_check_prepare_trace "interface-reconfigure.at:1014"
( $at_check_trace; ifr_run --force xapi2 down
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:1014"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/interface-reconfigure.at:1015: ifr_filter"
at_fn_check_prepare_trace "interface-reconfigure.at:1015"
( $at_check_trace; ifr_filter
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Force interface xapi2 down
Loading xapi database cache from /var/xapi/network.dbcache
Configured for Vswitch datapath
action_down: xapi2
/sbin/ifdown xapi2
deconfigure ipdev xapi2 on xapi1
deconfigure_bridge: bridge           - xapi2
action_down: no more masters, bring down slave xapi1
deconfigure_bridge: bridge           - xapi1
action_down: bring down physical devices - ['eth0', 'eth1']
/sbin/ip link set eth0 down
/sbin/ip link set eth1 down
/usr/bin/ovs-vsctl --timeout=20
    --with-iface --if-exists del-port xapi2
    --if-exists del-br xapi2
    --if-exists del-br xapi1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:1015"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2321
#AT_START_2322
at_fn_group_banner 2322 'interface-reconfigure.at:1039' \
  "Re-create port with different types" "            " 114
at_xfail=no
(
  $as_echo "2322. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/interface-reconfigure.at:1041: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "interface-reconfigure.at:1041"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:1041"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/interface-reconfigure.at:1041: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "interface-reconfigure.at:1041"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:1041"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/interface-reconfigure.at:1041: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "interface-reconfigure.at:1041"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:1041"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/interface-reconfigure.at:1041: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "interface-reconfigure.at:1041"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:1041"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/interface-reconfigure.at:1041: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "interface-reconfigure.at:1041"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:1041"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/interface-reconfigure.at:1041: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "interface-reconfigure.at:1041"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:1041"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/interface-reconfigure.at:1041: add_of_br 0 add-port br0 p0 -- set int p0 type=gre options:remote_ip=127.0.0.1 -- \\
   add-port br0 p1 -- set int p1 type=dummy -- \\
   add-port br0 p2 -- set int p2 type=dummy "
at_fn_check_prepare_notrace 'an embedded newline' "interface-reconfigure.at:1041"
( $at_check_trace; add_of_br 0 add-port br0 p0 -- set int p0 type=gre options:remote_ip=127.0.0.1 -- \
   add-port br0 p1 -- set int p1 type=dummy -- \
   add-port br0 p2 -- set int p2 type=dummy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:1041"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/interface-reconfigure.at:1046: ovs-vsctl set int p1 type=gre options:remote_ip=127.0.0.1"
at_fn_check_prepare_trace "interface-reconfigure.at:1046"
( $at_check_trace; ovs-vsctl set int p1 type=gre options:remote_ip=127.0.0.1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:1046"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/interface-reconfigure.at:1047: ovs-vsctl del-port p1"
at_fn_check_prepare_trace "interface-reconfigure.at:1047"
( $at_check_trace; ovs-vsctl del-port p1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:1047"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/interface-reconfigure.at:1048: ovs-vsctl add-port br0 p1 -- set int p1 type=dummy"
at_fn_check_prepare_trace "interface-reconfigure.at:1048"
( $at_check_trace; ovs-vsctl add-port br0 p1 -- set int p1 type=dummy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:1048"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/interface-reconfigure.at:1050: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "interface-reconfigure.at:1050"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:1050"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/interface-reconfigure.at:1050: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "interface-reconfigure.at:1050"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:1050"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "interface-reconfigure.at:1050: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "interface-reconfigure.at:1050: wait failed" >&5

    $as_echo "interface-reconfigure.at:1050" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/interface-reconfigure.at:1050"
fi

{ set +x
$as_echo "$at_srcdir/interface-reconfigure.at:1051: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "interface-reconfigure.at:1051"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:1051"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/interface-reconfigure.at:1051: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "interface-reconfigure.at:1051"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interface-reconfigure.at:1051"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "interface-reconfigure.at:1051: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "interface-reconfigure.at:1051: wait failed" >&5

    $as_echo "interface-reconfigure.at:1051" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/interface-reconfigure.at:1051"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2322
#AT_START_2323
at_fn_group_banner 2323 'stp.at:3' \
  "STP example from IEEE 802.1D-1998" "              " 115
at_xfail=no
(
  $as_echo "2323. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >test-stp-ieee802.1d-1998 <<'_ATEOF'
bridge 0 0x42 = a b
bridge 1 0x97 = c:5 a d:5
bridge 2 0x45 = b e
bridge 3 0x57 = b:5 e:5
bridge 4 0x83 = a:5 e:5
run 1000
check 0 = root
check 1 = F F:10 F
check 2 = F:10 B
check 3 = F:5 F
check 4 = F:5 B
_ATEOF

{ set +x
$as_echo "$at_srcdir/stp.at:18: ovstest test-stp test-stp-ieee802.1d-1998"
at_fn_check_prepare_trace "stp.at:18"
( $at_check_trace; ovstest test-stp test-stp-ieee802.1d-1998
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "stp|INFO|stp42: detected topology change.
stp|INFO|stp42: detected topology change.
stp|INFO|stp97: detected topology change.
stp|INFO|stp97: detected topology change.
stp|INFO|stp97: detected topology change.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:18"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2323
#AT_START_2324
at_fn_group_banner 2324 'stp.at:27' \
  "STP example from IEEE 802.1D-2004 figures 17.4 and 17.5" "" 115
at_xfail=no
(
  $as_echo "2324. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >test-stp-ieee802.1d-2004-fig17.4 <<'_ATEOF'
bridge 0 0x111 = a b e c
bridge 1 0x222 = a b d f
bridge 2 0x333 = c d l j h g
bridge 3 0x444 = e f n m k i
bridge 4 0x555 = g i 0 0
bridge 5 0x666 = h k 0 0
bridge 6 0x777 = j m 0 0
bridge 7 0x888 = l n 0 0
run 1000
check 0 = root
check 1 = F:10 B F F
check 2 = F:10 B F F F F
check 3 = F:10 B F F F F
check 4 = F:20 B F F
check 5 = F:20 B F F
check 6 = F:20 B F F
check 7 = F:20 B F F

# Now connect two ports of bridge 7 to the same LAN.
bridge 7 = l n o o
# Same results except for bridge 7:
run 1000
check 0 = root
check 1 = F:10 B F F
check 2 = F:10 B F F F F
check 3 = F:10 B F F F F
check 4 = F:20 B F F
check 5 = F:20 B F F
check 6 = F:20 B F F
check 7 = F:20 B F B
_ATEOF

{ set +x
$as_echo "$at_srcdir/stp.at:61: ovstest test-stp test-stp-ieee802.1d-2004-fig17.4"
at_fn_check_prepare_trace "stp.at:61"
( $at_check_trace; ovstest test-stp test-stp-ieee802.1d-2004-fig17.4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "stp|INFO|stp111: detected topology change.
stp|INFO|stp111: detected topology change.
stp|INFO|stp111: detected topology change.
stp|INFO|stp111: detected topology change.
stp|INFO|stp222: detected topology change.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:61"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2324
#AT_START_2325
at_fn_group_banner 2325 'stp.at:70' \
  "STP example from IEEE 802.1D-2004 figure 17.6" "  " 115
at_xfail=no
(
  $as_echo "2325. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >test-stp-ieee802.1d-2004-fig17.6 <<'_ATEOF'
bridge 0 0x111 = a b l
bridge 1 0x222 = b c d
bridge 2 0x333 = d e f
bridge 3 0x444 = f g h
bridge 4 0x555 = j h i
bridge 5 0x666 = l j k
run 1000
check 0 = root
check 1 = F:10 F F
check 2 = F:20 F F
check 3 = F:30 F B
check 4 = F:20 F F
check 5 = F:10 F F
_ATEOF

{ set +x
$as_echo "$at_srcdir/stp.at:87: ovstest test-stp test-stp-ieee802.1d-2004-fig17.6"
at_fn_check_prepare_trace "stp.at:87"
( $at_check_trace; ovstest test-stp test-stp-ieee802.1d-2004-fig17.6
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "stp|INFO|stp111: detected topology change.
stp|INFO|stp111: detected topology change.
stp|INFO|stp111: detected topology change.
stp|INFO|stp222: detected topology change.
stp|INFO|stp222: detected topology change.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:87"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2325
#AT_START_2326
at_fn_group_banner 2326 'stp.at:96' \
  "STP example from IEEE 802.1D-2004 figure 17.7" "  " 115
at_xfail=no
(
  $as_echo "2326. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >test-stp-ieee802.1d-2004-fig17.7 <<'_ATEOF'
bridge 0 0xaa = b
bridge 1 0x111 = a b d f h g e c
bridge 2 0x222 = g h j l n m k i
run 1000
check 0 = root
check 1 = F F:10 F F F F F F
check 2 = B F:20 F F F F F F

# This is not the port priority change described in that figure,
# but I don't understand what port priority change would cause
# that change.
bridge 2 = g X j l n m k i
run 1000
check 0 = root
check 1 = F F:10 F F F F F F
check 2 = F:20 D F F F F F F
_ATEOF

{ set +x
$as_echo "$at_srcdir/stp.at:116: ovstest test-stp test-stp-ieee802.1d-2004-fig17.7"
at_fn_check_prepare_trace "stp.at:116"
( $at_check_trace; ovstest test-stp test-stp-ieee802.1d-2004-fig17.7
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "stp|INFO|stpaa: detected topology change.
stp|INFO|stp111: detected topology change.
stp|INFO|stp111: detected topology change.
stp|INFO|stp111: detected topology change.
stp|INFO|stp111: detected topology change.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:116"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2326
#AT_START_2327
at_fn_group_banner 2327 'stp.at:125' \
  "STP.io.1.1: Link Failure" "                       " 115
at_xfail=no
(
  $as_echo "2327. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >test-stp-iol-io-1.1 <<'_ATEOF'
# This test file approximates the following test from "Bridge
# Functions Consortium Spanning Tree Interoperability Test Suite
# Version 1.5":
#
# STP.io.1.1: Link Failure
bridge 0 0x111 = a b c
bridge 1 0x222 = a b c
run 1000
check 0 = root
check 1 = F:10 B B
bridge 1 = 0 _ _
run 1000
check 0 = root
check 1 = F F:10 B
bridge 1 = X _ _
run 1000
check 0 = root
check 1 = D F:10 B
bridge 1 = _ 0 _
run 1000
check 0 = root
check 1 = D F F:10
bridge 1 = _ X _
run 1000
check 0 = root
check 1 = D D F:10
_ATEOF

{ set +x
$as_echo "$at_srcdir/stp.at:155: ovstest test-stp test-stp-iol-io-1.1"
at_fn_check_prepare_trace "stp.at:155"
( $at_check_trace; ovstest test-stp test-stp-iol-io-1.1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "stp|INFO|stp111: detected topology change.
stp|INFO|stp111: detected topology change.
stp|INFO|stp111: detected topology change.
stp|INFO|stp222: detected topology change.
stp|INFO|stp111: detected topology change.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:155"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2327
#AT_START_2328
at_fn_group_banner 2328 'stp.at:164' \
  "STP.io.1.2: Repeated Network" "                   " 115
at_xfail=no
(
  $as_echo "2328. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >test-stp-iol-io-1.2 <<'_ATEOF'
# This test file approximates the following test from "Bridge
# Functions Consortium Spanning Tree Interoperability Test Suite
# Version 1.5":
# STP.io.1.2: Repeated Network
bridge 0 0x111 = a a
bridge 1 0x222 = a a
run 1000
check 0 = rootid:0x111 F B
check 1 = rootid:0x111 F:10 B
bridge 1 = a^0x90 _
run 1000
check 0 = rootid:0x111 F B
check 1 = rootid:0x111 B F:10
_ATEOF

{ set +x
$as_echo "$at_srcdir/stp.at:181: ovstest test-stp test-stp-iol-io-1.2"
at_fn_check_prepare_trace "stp.at:181"
( $at_check_trace; ovstest test-stp test-stp-iol-io-1.2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "stp|INFO|stp111: detected topology change.
stp|INFO|stp222: detected topology change.
stp|INFO|stp111: detected topology change.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:181"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2328
#AT_START_2329
at_fn_group_banner 2329 'stp.at:188' \
  "STP.io.1.4: Network Initialization" "             " 115
at_xfail=no
(
  $as_echo "2329. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >test-stp-iol-io-1.4 <<'_ATEOF'
# This test file approximates the following test from "Bridge
# Functions Consortium Spanning Tree Interoperability Test Suite
# Version 1.5":
# STP.io.1.4: Network Initialization
bridge 0 0x111 = a b c
bridge 1 0x222 = b d e
bridge 2 0x333 = a d f
bridge 3 0x444 = c e f
run 1000
check 0 = root
check 1 = F:10 F F
check 2 = F:10 B F
check 3 = F:10 B B
_ATEOF

{ set +x
$as_echo "$at_srcdir/stp.at:205: ovstest test-stp test-stp-iol-io-1.4"
at_fn_check_prepare_trace "stp.at:205"
( $at_check_trace; ovstest test-stp test-stp-iol-io-1.4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "stp|INFO|stp111: detected topology change.
stp|INFO|stp111: detected topology change.
stp|INFO|stp111: detected topology change.
stp|INFO|stp222: detected topology change.
stp|INFO|stp222: detected topology change.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:205"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2329
#AT_START_2330
at_fn_group_banner 2330 'stp.at:214' \
  "STP.io.1.5: Topology Change" "                    " 115
at_xfail=no
(
  $as_echo "2330. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >test-stp-iol-io-1.5 <<'_ATEOF'
# This test file approximates the following test from "Bridge
# Functions Consortium Spanning Tree Interoperability Test Suite
# Version 1.5":
# STP.io.1.5: Topology Change
bridge 0 0x111 = a b d c
bridge 1 0x222 = a b f e
bridge 2 0x333 = c d g h
bridge 3 0x444 = e f g h
run 1000
check 0 = root
check 1 = F:10 B F F
check 2 = B F:10 F F
check 3 = B F:20 B B
bridge 1^0x7000
run 1000
check 0 = F:10 B F F
check 1 = root
check 2 = B F:20 B B
check 3 = B F:10 F F
bridge 2^0x6000
run 1000
check 0 = F F B F:10
check 1 = F:20 B B B
check 2 = root
check 3 = F F F:10 B
bridge 3^0x5000
run 1000
check 0 = B B B F:20
check 1 = F F B F:10
check 2 = F F F:10 B
check 3 = root
bridge 0^0x4000
bridge 1^0x4001
bridge 2^0x4002
bridge 3^0x4003
run 1000
check 0 = root
check 1 = F:10 B F F
check 2 = B F:10 F F
check 3 = B F:20 B B
_ATEOF

{ set +x
$as_echo "$at_srcdir/stp.at:258: ovstest test-stp test-stp-iol-io-1.5"
at_fn_check_prepare_trace "stp.at:258"
( $at_check_trace; ovstest test-stp test-stp-iol-io-1.5
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "stp|INFO|stp111: detected topology change.
stp|INFO|stp111: detected topology change.
stp|INFO|stp111: detected topology change.
stp|INFO|stp111: detected topology change.
stp|INFO|stp222: detected topology change.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:258"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2330
#AT_START_2331
at_fn_group_banner 2331 'stp.at:267' \
  "STP.op.1.1 and STP.op.1.2" "                      " 115
at_xfail=no
(
  $as_echo "2331. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >test-stp-iol-op-1.1 <<'_ATEOF'
# This test file approximates the following tests from "Bridge
# Functions Consortium Spanning Tree Protocol Operations Test Suite
# Version 2.3":
# Test STP.op.1.1: Root ID Initialized to Bridge ID
# Test STP.op.1.2: Root Path Cost Initialized to Zero
bridge 0 0x123 =
check 0 = root
_ATEOF

{ set +x
$as_echo "$at_srcdir/stp.at:278: ovstest test-stp test-stp-iol-op-1.1"
at_fn_check_prepare_trace "stp.at:278"
( $at_check_trace; ovstest test-stp test-stp-iol-op-1.1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:278"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2331
#AT_START_2332
at_fn_group_banner 2332 'stp.at:281' \
  "STP.op.1.4: All Ports Initialized to Designated Ports" "" 115
at_xfail=no
(
  $as_echo "2332. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >test-stp-iol-op-1.4 <<'_ATEOF'
# This test file approximates the following test from "Bridge
# Functions Consortium Spanning Tree Protocol Operations Test Suite
# Version 2.3":
# Test STP.op.1.4: All Ports Initialized to Designated Ports
bridge 0 0x123 = a b c d e f
check 0 = Li Li Li Li Li Li
run 1000
check 0 = F F F F F F
_ATEOF

{ set +x
$as_echo "$at_srcdir/stp.at:293: ovstest test-stp test-stp-iol-op-1.4"
at_fn_check_prepare_trace "stp.at:293"
( $at_check_trace; ovstest test-stp test-stp-iol-op-1.4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "stp|INFO|stp123: detected topology change.
stp|INFO|stp123: detected topology change.
stp|INFO|stp123: detected topology change.
stp|INFO|stp123: detected topology change.
stp|INFO|stp123: detected topology change.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:293"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2332
#AT_START_2333
at_fn_group_banner 2333 'stp.at:302' \
  "STP.op.3.1: Root Bridge Selection: Root ID Values" "" 115
at_xfail=no
(
  $as_echo "2333. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >test-stp-iol-op-3.1 <<'_ATEOF'
# This test file approximates the following test from "Bridge
# Functions Consortium Spanning Tree Protocol Operations Test Suite
# Version 2.3":
# Test STP.op.3.1: Root Bridge Selection: Root ID Values
bridge 0 0x111 = a
bridge 1 0x222 = a
check 0 = rootid:0x111 Li
check 1 = rootid:0x222 Li
run 1000
check 0 = rootid:0x111 root
check 1 = rootid:0x111 F:10
_ATEOF

{ set +x
$as_echo "$at_srcdir/stp.at:317: ovstest test-stp test-stp-iol-op-3.1"
at_fn_check_prepare_trace "stp.at:317"
( $at_check_trace; ovstest test-stp test-stp-iol-op-3.1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "stp|INFO|stp111: detected topology change.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:317"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2333
#AT_START_2334
at_fn_group_banner 2334 'stp.at:322' \
  "STP.op.3.3: Root Bridge Selection: Bridge ID Values" "" 115
at_xfail=no
(
  $as_echo "2334. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >test-stp-iol-op-3.3 <<'_ATEOF'
# This test file approximates the following test from "Bridge
# Functions Consortium Spanning Tree Protocol Operations Test Suite
# Version 2.3":
# Test STP.op.3.3: Root Bridge Selection: Bridge ID Values
bridge 0 0x333^0x6000 = a
bridge 1 0x222^0x7000 = b
bridge 2 0x111 = a b
run 1000
check 0 = rootid:0x333^0x6000 root
check 1 = rootid:0x333^0x6000 F:20
check 2 = rootid:0x333^0x6000 F:10 F
_ATEOF

{ set +x
$as_echo "$at_srcdir/stp.at:337: ovstest test-stp test-stp-iol-op-3.3"
at_fn_check_prepare_trace "stp.at:337"
( $at_check_trace; ovstest test-stp test-stp-iol-op-3.3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "stp|INFO|stp333: detected topology change.
stp|INFO|stp111: detected topology change.
stp|INFO|stp111: detected topology change.
stp|INFO|stp333: detected topology change.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:337"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2334
#AT_START_2335
at_fn_group_banner 2335 'stp.at:345' \
  "STP.op.3.3: Root Bridge Selection: Bridge ID Values" "" 115
at_xfail=no
(
  $as_echo "2335. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >test-stp-iol-op-3.4 <<'_ATEOF'
# This test file approximates the following test from "Bridge
# Functions Consortium Spanning Tree Protocol Operations Test Suite
# Version 2.3":
# Test STP.op.3.3: Root Bridge Selection: Bridge ID Values
bridge 0 0x333^0x6000 = a
bridge 1 0x222^0x7000 = b
bridge 2 0x111 = a b
run 1000
check 0 = rootid:0x333^0x6000 root
check 1 = rootid:0x333^0x6000 F:20
check 2 = rootid:0x333^0x6000 F:10 F
_ATEOF

{ set +x
$as_echo "$at_srcdir/stp.at:360: ovstest test-stp test-stp-iol-op-3.4"
at_fn_check_prepare_trace "stp.at:360"
( $at_check_trace; ovstest test-stp test-stp-iol-op-3.4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "stp|INFO|stp333: detected topology change.
stp|INFO|stp111: detected topology change.
stp|INFO|stp111: detected topology change.
stp|INFO|stp333: detected topology change.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:360"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2335
#AT_START_2336
at_fn_group_banner 2336 'stp.at:390' \
  "STP - dummy interface" "                          " 115
at_xfail=no
(
  $as_echo "2336. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

# Create br0 with interfaces p1 and p7
#    and br1 with interfaces p2 and p8
# with p1 and p2 connected via unix domain socket
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/stp.at:394: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "stp.at:394"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:394"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/stp.at:394: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "stp.at:394"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:394"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/stp.at:394: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "stp.at:394"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:394"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/stp.at:394: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "stp.at:394"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:394"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/stp.at:394: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "stp.at:394"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:394"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/stp.at:394: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "stp.at:394"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:394"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/stp.at:394: add_of_br 0 set port br0 other_config:stp-enable=false -- \\
   set bridge br0 stp_enable=true -- \\
   add-br br1 -- \\
   set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \\
   set bridge br1 datapath-type=dummy other-config:datapath-id=1234 \\
                  fail-mode=secure -- \\
   set port br1 other_config:stp-enable=false -- \\
   set bridge br1 stp_enable=true -- "
at_fn_check_prepare_notrace 'an embedded newline' "stp.at:394"
( $at_check_trace; add_of_br 0 set port br0 other_config:stp-enable=false -- \
   set bridge br0 stp_enable=true -- \
   add-br br1 -- \
   set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \
   set bridge br1 datapath-type=dummy other-config:datapath-id=1234 \
                  fail-mode=secure -- \
   set port br1 other_config:stp-enable=false -- \
   set bridge br1 stp_enable=true --
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:394"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/stp.at:404: ovs-appctl vlog/set ofproto_dpif:dbg"
at_fn_check_prepare_trace "stp.at:404"
( $at_check_trace; ovs-appctl vlog/set ofproto_dpif:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:404"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/stp.at:406: ovs-vsctl add-port br0 p1 -- \\
   set interface p1 type=dummy options:pstream=punix:\$OVS_RUNDIR/p0.sock ofport_request=1 -- \\
   set port p1 other_config:stp-enable=true -- \\
"
at_fn_check_prepare_notrace 'an embedded newline' "stp.at:406"
( $at_check_trace; ovs-vsctl add-port br0 p1 -- \
   set interface p1 type=dummy options:pstream=punix:$OVS_RUNDIR/p0.sock ofport_request=1 -- \
   set port p1 other_config:stp-enable=true -- \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:406"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/stp.at:410: ovs-vsctl add-port br0 p7 -- \\
   set interface p7 ofport_request=7 type=dummy -- \\
   set port p7 other_config:stp-enable=false -- \\
"
at_fn_check_prepare_notrace 'an embedded newline' "stp.at:410"
( $at_check_trace; ovs-vsctl add-port br0 p7 -- \
   set interface p7 ofport_request=7 type=dummy -- \
   set port p7 other_config:stp-enable=false -- \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:410"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/stp.at:414: ovs-vsctl add-port br1 p2 -- \\
   set interface p2 type=dummy options:stream=unix:\$OVS_RUNDIR/p0.sock ofport_request=2 -- \\
   set port p2 other_config:stp-enable=true -- \\
"
at_fn_check_prepare_notrace 'an embedded newline' "stp.at:414"
( $at_check_trace; ovs-vsctl add-port br1 p2 -- \
   set interface p2 type=dummy options:stream=unix:$OVS_RUNDIR/p0.sock ofport_request=2 -- \
   set port p2 other_config:stp-enable=true -- \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:414"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/stp.at:418: ovs-vsctl add-port br1 p8 -- \\
   set interface p8 ofport_request=8 type=dummy -- \\
   set port p8 other_config:stp-enable=false -- \\
"
at_fn_check_prepare_notrace 'an embedded newline' "stp.at:418"
( $at_check_trace; ovs-vsctl add-port br1 p8 -- \
   set interface p8 ofport_request=8 type=dummy -- \
   set port p8 other_config:stp-enable=false -- \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:418"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl netdev-dummy/set-admin-state up
ovs-appctl time/stop

{ set +x
$as_echo "$at_srcdir/stp.at:426: ovs-ofctl add-flow br0 \"in_port=7 icmp actions=1\""
at_fn_check_prepare_trace "stp.at:426"
( $at_check_trace; ovs-ofctl add-flow br0 "in_port=7 icmp actions=1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:426"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/stp.at:427: ovs-ofctl add-flow br0 \"in_port=1 icmp actions=7\""
at_fn_check_prepare_trace "stp.at:427"
( $at_check_trace; ovs-ofctl add-flow br0 "in_port=1 icmp actions=7"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:427"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/stp.at:428: ovs-ofctl add-flow br1 \"in_port=8 icmp actions=2\""
at_fn_check_prepare_trace "stp.at:428"
( $at_check_trace; ovs-ofctl add-flow br1 "in_port=8 icmp actions=2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:428"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/stp.at:429: ovs-ofctl add-flow br1 \"in_port=2 icmp actions=8\""
at_fn_check_prepare_trace "stp.at:429"
( $at_check_trace; ovs-ofctl add-flow br1 "in_port=2 icmp actions=8"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:429"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# give time for STP to move initially
ovs-appctl time/warp 6000 3000

{ set +x
$as_echo "$at_srcdir/stp.at:434: cat ovs-vswitchd.log |
grep 'disabled to listening' | sed '
  s/.*ofproto_dpif|.*|port .*:/port <>:/
'"
at_fn_check_prepare_notrace 'an embedded newline' "stp.at:434"
( $at_check_trace; cat ovs-vswitchd.log |
grep 'disabled to listening' | sed '
  s/.*ofproto_dpif|.*|port .*:/port <>:/
'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "port <>: STP state changed from disabled to listening
port <>: STP state changed from disabled to listening
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:434"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/stp.at:439: ovs-appctl ofproto/trace ovs-dummy 'in_port(7),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' | grep STP"
at_fn_check_prepare_notrace 'a shell pipeline' "stp.at:439"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(7),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' | grep STP
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "     >> STP not in forwarding state, skipping output
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:439"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/stp.at:442: ovs-appctl ofproto/trace ovs-dummy 'in_port(8),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' | grep STP"
at_fn_check_prepare_notrace 'a shell pipeline' "stp.at:442"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(8),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' | grep STP
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "     >> STP not in forwarding state, skipping output
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:442"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# give time for STP to synchronize
ovs-appctl time/warp 30000 3000

{ set +x
$as_echo "$at_srcdir/stp.at:449: cat ovs-vswitchd.log |
grep 'STP state change' | sed '
    s/.*ofproto_dpif|.*|port .*:/port <>:/
'"
at_fn_check_prepare_notrace 'an embedded newline' "stp.at:449"
( $at_check_trace; cat ovs-vswitchd.log |
grep 'STP state change' | sed '
    s/.*ofproto_dpif|.*|port .*:/port <>:/
'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "port <>: STP state changed from disabled to listening
port <>: STP state changed from disabled to listening
port <>: STP state changed from listening to learning
port <>: STP state changed from listening to learning
port <>: STP state changed from learning to forwarding
port <>: STP state changed from learning to forwarding
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:449"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/stp.at:458: ovs-appctl ofproto/trace ovs-dummy 'in_port(7),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' | grep Datapath"
at_fn_check_prepare_notrace 'a shell pipeline' "stp.at:458"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(7),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' | grep Datapath
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:458"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/stp.at:461: ovs-appctl ofproto/trace ovs-dummy 'in_port(8),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' | grep Datapath"
at_fn_check_prepare_notrace 'a shell pipeline' "stp.at:461"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(8),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' | grep Datapath
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:461"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2336
#AT_START_2337
at_fn_group_banner 2337 'stp.at:467' \
  "STP - flush the fdb and mdb when topology changed" "" 115
at_xfail=no
(
  $as_echo "2337. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/stp.at:468: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "stp.at:468"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:468"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/stp.at:468: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "stp.at:468"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:468"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/stp.at:468: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "stp.at:468"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:468"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/stp.at:468: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "stp.at:468"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:468"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/stp.at:468: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "stp.at:468"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:468"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/stp.at:468: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "stp.at:468"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:468"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/stp.at:468: add_of_br 0  "
at_fn_check_prepare_trace "stp.at:468"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:468"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# setting as below, the br0 will be root bridge and p5 will be blocked.
{ set +x
$as_echo "$at_srcdir/stp.at:471:
    ovs-vsctl -- \\
    set port br0 other_config:stp-enable=false -- \\
    set bridge br0 datapath-type=dummy -- \\
    set bridge br0 stp_enable=true mcast_snooping_enable=true \\
    other-config:hwaddr=aa:66:aa:66:00:00 -- \\
    add-br br1 -- \\
    set port br1 other_config:stp-enable=false -- \\
    set bridge br1 datapath-type=dummy -- \\
    set bridge br1 stp_enable=true mcast_snooping_enable=true \\
    other-config:hwaddr=aa:66:aa:66:00:01 -- \\
    add-br br2 -- \\
    set port br2 other_config:stp-enable=false -- \\
    set bridge br2 datapath-type=dummy -- \\
    set bridge br2 stp_enable=true mcast_snooping_enable=true \\
    other-config:hwaddr=aa:66:aa:66:00:02
"
at_fn_check_prepare_notrace 'an embedded newline' "stp.at:471"
( $at_check_trace;
    ovs-vsctl -- \
    set port br0 other_config:stp-enable=false -- \
    set bridge br0 datapath-type=dummy -- \
    set bridge br0 stp_enable=true mcast_snooping_enable=true \
    other-config:hwaddr=aa:66:aa:66:00:00 -- \
    add-br br1 -- \
    set port br1 other_config:stp-enable=false -- \
    set bridge br1 datapath-type=dummy -- \
    set bridge br1 stp_enable=true mcast_snooping_enable=true \
    other-config:hwaddr=aa:66:aa:66:00:01 -- \
    add-br br2 -- \
    set port br2 other_config:stp-enable=false -- \
    set bridge br2 datapath-type=dummy -- \
    set bridge br2 stp_enable=true mcast_snooping_enable=true \
    other-config:hwaddr=aa:66:aa:66:00:02

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:471"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/stp.at:489: ovs-appctl vlog/set ofproto_dpif:dbg"
at_fn_check_prepare_trace "stp.at:489"
( $at_check_trace; ovs-appctl vlog/set ofproto_dpif:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:489"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/stp.at:490: ovs-appctl vlog/set ofproto_dpif_xlate:dbg"
at_fn_check_prepare_trace "stp.at:490"
( $at_check_trace; ovs-appctl vlog/set ofproto_dpif_xlate:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:490"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/stp.at:492: ovs-ofctl add-flow br0 action=normal"
at_fn_check_prepare_trace "stp.at:492"
( $at_check_trace; ovs-ofctl add-flow br0 action=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:492"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/stp.at:493: ovs-ofctl add-flow br1 action=normal"
at_fn_check_prepare_trace "stp.at:493"
( $at_check_trace; ovs-ofctl add-flow br1 action=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:493"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/stp.at:494: ovs-ofctl add-flow br2 action=normal"
at_fn_check_prepare_trace "stp.at:494"
( $at_check_trace; ovs-ofctl add-flow br2 action=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:494"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/stp.at:496:
    ovs-vsctl add-port br0 p1 -- \\
        set interface p1 type=dummy options:pstream=punix:\$OVS_RUNDIR/p1.sock ofport_request=1
    ovs-vsctl add-port br0 p2 -- \\
        set interface p2 type=dummy options:stream=unix:\$OVS_RUNDIR/p6.sock ofport_request=2
    ovs-vsctl add-port br1 p3 -- \\
        set interface p3 type=dummy options:stream=unix:\$OVS_RUNDIR/p1.sock ofport_request=3
    ovs-vsctl add-port br1 p4 -- \\
        set interface p4 type=dummy options:pstream=punix:\$OVS_RUNDIR/p4.sock ofport_request=4
    ovs-vsctl add-port br2 p5 -- \\
        set interface p5 type=dummy options:stream=unix:\$OVS_RUNDIR/p4.sock ofport_request=5
    ovs-vsctl add-port br2 p6 -- \\
        set interface p6 type=dummy options:pstream=punix:\$OVS_RUNDIR/p6.sock ofport_request=6
"
at_fn_check_prepare_notrace 'an embedded newline' "stp.at:496"
( $at_check_trace;
    ovs-vsctl add-port br0 p1 -- \
        set interface p1 type=dummy options:pstream=punix:$OVS_RUNDIR/p1.sock ofport_request=1
    ovs-vsctl add-port br0 p2 -- \
        set interface p2 type=dummy options:stream=unix:$OVS_RUNDIR/p6.sock ofport_request=2
    ovs-vsctl add-port br1 p3 -- \
        set interface p3 type=dummy options:stream=unix:$OVS_RUNDIR/p1.sock ofport_request=3
    ovs-vsctl add-port br1 p4 -- \
        set interface p4 type=dummy options:pstream=punix:$OVS_RUNDIR/p4.sock ofport_request=4
    ovs-vsctl add-port br2 p5 -- \
        set interface p5 type=dummy options:stream=unix:$OVS_RUNDIR/p4.sock ofport_request=5
    ovs-vsctl add-port br2 p6 -- \
        set interface p6 type=dummy options:pstream=punix:$OVS_RUNDIR/p6.sock ofport_request=6

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:496"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl netdev-dummy/set-admin-state up
ovs-appctl time/stop

# give time for STP to move initially
ovs-appctl time/warp 6000 3000

{ set +x
$as_echo "$at_srcdir/stp.at:517: cat ovs-vswitchd.log |
grep 'disabled to listening' | sed '
  s/.*ofproto_dpif|.*|port .*:/port <>:/
'"
at_fn_check_prepare_notrace 'an embedded newline' "stp.at:517"
( $at_check_trace; cat ovs-vswitchd.log |
grep 'disabled to listening' | sed '
  s/.*ofproto_dpif|.*|port .*:/port <>:/
'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "port <>: STP state changed from disabled to listening
port <>: STP state changed from disabled to listening
port <>: STP state changed from disabled to listening
port <>: STP state changed from disabled to listening
port <>: STP state changed from disabled to listening
port <>: STP state changed from disabled to listening
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:517"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# give time for STP to synchronize
ovs-appctl time/warp 30000 3000

{ set +x
$as_echo "$at_srcdir/stp.at:529: cat ovs-vswitchd.log |
grep 'learning to forwarding' | sed '
  s/.*ofproto_dpif|.*|port .*:/port <>:/
'"
at_fn_check_prepare_notrace 'an embedded newline' "stp.at:529"
( $at_check_trace; cat ovs-vswitchd.log |
grep 'learning to forwarding' | sed '
  s/.*ofproto_dpif|.*|port .*:/port <>:/
'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "port <>: STP state changed from learning to forwarding
port <>: STP state changed from learning to forwarding
port <>: STP state changed from learning to forwarding
port <>: STP state changed from learning to forwarding
port <>: STP state changed from learning to forwarding
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:529"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# When topology is changed or the root brdige receives the TCN BPDU, the
# root bridge will start the topology change timer. We should wait the
# topology change timer to stop after 35s (max age 20 + forward delay 15).
# After 35s, the root bridge will stop send CONF BPDU with
# STP_CONFIG_TOPOLOGY_CHANGE flag and the topology will be stable. More
# importantly, we should make time warp (in a second) because the hold timer
# of stp ports will stop after 1s. So the root bridge can send quickly
# topology change ack (other bridges may send TCN BPDU to root bridge) for
# avoiding root brdige to flush fdb and mdb frequently.
ovs-appctl time/warp 36000 1000

# root bridge sends query packet
# we don't want to lose that message, so send it twice
{ set +x
$as_echo "$at_srcdir/stp.at:550: ovs-appctl netdev-dummy/receive br0 \\
        '01005E010101000C29A027D18100000108004500001C000100004002CBCBAC102201E00101011114EEEB00000000'"
at_fn_check_prepare_notrace 'an embedded newline' "stp.at:550"
( $at_check_trace; ovs-appctl netdev-dummy/receive br0 \
        '01005E010101000C29A027D18100000108004500001C000100004002CBCBAC102201E00101011114EEEB00000000'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:550"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 1000
{ set +x
$as_echo "$at_srcdir/stp.at:554: ovs-appctl netdev-dummy/receive br0 \\
        '01005E010101000C29A027D18100000108004500001C000100004002CBCBAC102201E00101011114EEEB00000000'"
at_fn_check_prepare_notrace 'an embedded newline' "stp.at:554"
( $at_check_trace; ovs-appctl netdev-dummy/receive br0 \
        '01005E010101000C29A027D18100000108004500001C000100004002CBCBAC102201E00101011114EEEB00000000'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:554"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


$as_echo "stp.at:557: waiting until ovs-appctl fdb/show br0 | grep '00:0c:29:a0:27:d1'..." >&5
ovs_wait_cond () {
    ovs-appctl fdb/show br0 | grep '00:0c:29:a0:27:d1'
}
if ovs_wait; then :
else
    $as_echo "stp.at:557: wait failed" >&5

    $as_echo "stp.at:557" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/stp.at:557"
fi

$as_echo "stp.at:558: waiting until ovs-appctl fdb/show br1 | grep '00:0c:29:a0:27:d1'..." >&5
ovs_wait_cond () {
    ovs-appctl fdb/show br1 | grep '00:0c:29:a0:27:d1'
}
if ovs_wait; then :
else
    $as_echo "stp.at:558: wait failed" >&5

    $as_echo "stp.at:558" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/stp.at:558"
fi

$as_echo "stp.at:559: waiting until ovs-appctl fdb/show br2 | grep '00:0c:29:a0:27:d1'..." >&5
ovs_wait_cond () {
    ovs-appctl fdb/show br2 | grep '00:0c:29:a0:27:d1'
}
if ovs_wait; then :
else
    $as_echo "stp.at:559: wait failed" >&5

    $as_echo "stp.at:559" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/stp.at:559"
fi


$as_echo "stp.at:561: waiting until ovs-appctl mdb/show br0 | grep 'querier'..." >&5
ovs_wait_cond () {
    ovs-appctl mdb/show br0 | grep 'querier'
}
if ovs_wait; then :
else
    $as_echo "stp.at:561: wait failed" >&5

    $as_echo "stp.at:561" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/stp.at:561"
fi

$as_echo "stp.at:562: waiting until ovs-appctl mdb/show br1 | grep 'querier'..." >&5
ovs_wait_cond () {
    ovs-appctl mdb/show br1 | grep 'querier'
}
if ovs_wait; then :
else
    $as_echo "stp.at:562: wait failed" >&5

    $as_echo "stp.at:562" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/stp.at:562"
fi

$as_echo "stp.at:563: waiting until ovs-appctl mdb/show br2 | grep 'querier'..." >&5
ovs_wait_cond () {
    ovs-appctl mdb/show br2 | grep 'querier'
}
if ovs_wait; then :
else
    $as_echo "stp.at:563: wait failed" >&5

    $as_echo "stp.at:563" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/stp.at:563"
fi


# del p2 on the br0, the topology will be changed
{ set +x
$as_echo "$at_srcdir/stp.at:566: ovs-vsctl del-port br0 p2"
at_fn_check_prepare_trace "stp.at:566"
( $at_check_trace; ovs-vsctl del-port br0 p2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:566"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# give time for STP to synchronize
ovs-appctl time/warp 36000 3000

# check fdb and mdb
{ set +x
$as_echo "$at_srcdir/stp.at:572: ovs-appctl fdb/show br0"
at_fn_check_prepare_trace "stp.at:572"
( $at_check_trace; ovs-appctl fdb/show br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " port  VLAN  MAC                Age
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:572"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/stp.at:575: ovs-appctl fdb/show br1"
at_fn_check_prepare_trace "stp.at:575"
( $at_check_trace; ovs-appctl fdb/show br1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " port  VLAN  MAC                Age
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:575"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/stp.at:578: ovs-appctl fdb/show br2"
at_fn_check_prepare_trace "stp.at:578"
( $at_check_trace; ovs-appctl fdb/show br2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " port  VLAN  MAC                Age
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:578"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/stp.at:582: ovs-appctl mdb/show br0"
at_fn_check_prepare_trace "stp.at:582"
( $at_check_trace; ovs-appctl mdb/show br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " port  VLAN  GROUP                Age
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:582"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/stp.at:585: ovs-appctl mdb/show br1"
at_fn_check_prepare_trace "stp.at:585"
( $at_check_trace; ovs-appctl mdb/show br1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " port  VLAN  GROUP                Age
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:585"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/stp.at:588: ovs-appctl mdb/show br2"
at_fn_check_prepare_trace "stp.at:588"
( $at_check_trace; ovs-appctl mdb/show br2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " port  VLAN  GROUP                Age
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:588"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2337
#AT_START_2338
at_fn_group_banner 2338 'stp.at:594' \
  "STP - check link-state when stp is running" "     " 115
at_xfail=no
(
  $as_echo "2338. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/stp.at:595: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "stp.at:595"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:595"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/stp.at:595: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "stp.at:595"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:595"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/stp.at:595: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "stp.at:595"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:595"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/stp.at:595: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "stp.at:595"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:595"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/stp.at:595: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "stp.at:595"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:595"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/stp.at:595: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "stp.at:595"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:595"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/stp.at:595: add_of_br 0  "
at_fn_check_prepare_trace "stp.at:595"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:595"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/stp.at:597:
    ovs-vsctl -- \\
    set port br0 other_config:stp-enable=false -- \\
    set bridge br0 datapath-type=dummy stp_enable=true \\
    other-config:hwaddr=aa:66:aa:66:00:00
"
at_fn_check_prepare_notrace 'an embedded newline' "stp.at:597"
( $at_check_trace;
    ovs-vsctl -- \
    set port br0 other_config:stp-enable=false -- \
    set bridge br0 datapath-type=dummy stp_enable=true \
    other-config:hwaddr=aa:66:aa:66:00:00

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:597"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/stp.at:604:
    ovs-vsctl add-port br0 p1 -- \\
        set interface p1 type=dummy -- \\
        set port p1 other_config:stp-port-num=1
    ovs-vsctl add-port br0 p2 -- \\
        set interface p2 type=dummy -- \\
        set port p2 other_config:stp-port-num=2
"
at_fn_check_prepare_notrace 'an embedded newline' "stp.at:604"
( $at_check_trace;
    ovs-vsctl add-port br0 p1 -- \
        set interface p1 type=dummy -- \
        set port p1 other_config:stp-port-num=1
    ovs-vsctl add-port br0 p2 -- \
        set interface p2 type=dummy -- \
        set port p2 other_config:stp-port-num=2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:604"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl netdev-dummy/set-admin-state up
ovs-appctl time/stop

# give time for STP to move initially
ovs-appctl time/warp 31000 1000

{ set +x
$as_echo "$at_srcdir/stp.at:619: ovs-appctl stp/show br0 | grep p1"
at_fn_check_prepare_notrace 'a shell pipeline' "stp.at:619"
( $at_check_trace; ovs-appctl stp/show br0 | grep p1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	p1         designated forwarding 19    128.1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:619"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/stp.at:622: ovs-appctl stp/show br0 | grep p2"
at_fn_check_prepare_notrace 'a shell pipeline' "stp.at:622"
( $at_check_trace; ovs-appctl stp/show br0 | grep p2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	p2         designated forwarding 19    128.2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:622"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# add a stp port
{ set +x
$as_echo "$at_srcdir/stp.at:627:
    ovs-vsctl add-port br0 p3 -- \\
        set interface p3 type=dummy -- \\
        set port p3 other_config:stp-port-num=3
"
at_fn_check_prepare_notrace 'an embedded newline' "stp.at:627"
( $at_check_trace;
    ovs-vsctl add-port br0 p3 -- \
        set interface p3 type=dummy -- \
        set port p3 other_config:stp-port-num=3

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:627"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl netdev-dummy/set-admin-state p3 down

# We should not show the p3 because its link-state is down
{ set +x
$as_echo "$at_srcdir/stp.at:636: ovs-appctl stp/show br0 | grep p1"
at_fn_check_prepare_notrace 'a shell pipeline' "stp.at:636"
( $at_check_trace; ovs-appctl stp/show br0 | grep p1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	p1         designated forwarding 19    128.1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:636"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/stp.at:639: ovs-appctl stp/show br0 | grep p2"
at_fn_check_prepare_notrace 'a shell pipeline' "stp.at:639"
( $at_check_trace; ovs-appctl stp/show br0 | grep p2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	p2         designated forwarding 19    128.2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:639"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/stp.at:642: ovs-appctl stp/show br0 | grep p3"
at_fn_check_prepare_notrace 'a shell pipeline' "stp.at:642"
( $at_check_trace; ovs-appctl stp/show br0 | grep p3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/stp.at:642"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl netdev-dummy/set-admin-state p3 up

{ set +x
$as_echo "$at_srcdir/stp.at:647: ovs-appctl stp/show br0 | grep p1"
at_fn_check_prepare_notrace 'a shell pipeline' "stp.at:647"
( $at_check_trace; ovs-appctl stp/show br0 | grep p1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	p1         designated forwarding 19    128.1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:647"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/stp.at:650: ovs-appctl stp/show br0 | grep p2"
at_fn_check_prepare_notrace 'a shell pipeline' "stp.at:650"
( $at_check_trace; ovs-appctl stp/show br0 | grep p2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	p2         designated forwarding 19    128.2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:650"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/stp.at:653: ovs-appctl stp/show br0 | grep p3"
at_fn_check_prepare_notrace 'a shell pipeline' "stp.at:653"
( $at_check_trace; ovs-appctl stp/show br0 | grep p3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "	p3         designated listening  19    128.3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:653"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/stp.at:658: check_logs "
at_fn_check_prepare_trace "stp.at:658"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:658"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/stp.at:658: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "stp.at:658"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:658"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/stp.at:658: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "stp.at:658"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:658"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "stp.at:658: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "stp.at:658: wait failed" >&5

    $as_echo "stp.at:658" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/stp.at:658"
fi

   { set +x
$as_echo "$at_srcdir/stp.at:658: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "stp.at:658"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:658"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/stp.at:658: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "stp.at:658"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/stp.at:658"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "stp.at:658: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "stp.at:658: wait failed" >&5

    $as_echo "stp.at:658" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/stp.at:658"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2338
#AT_START_2339
at_fn_group_banner 2339 'rstp.at:3' \
  "RSTP Single bridge" "                             " 116
at_xfail=no
(
  $as_echo "2339. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >test-rstp-num1 <<'_ATEOF'
bridge 0 0x111 = a b
run 1000
check 0 = root
_ATEOF

{ set +x
$as_echo "$at_srcdir/rstp.at:10: ovstest test-rstp test-rstp-num1"
at_fn_check_prepare_trace "rstp.at:10"
( $at_check_trace; ovstest test-rstp test-rstp-num1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:10"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2339
#AT_START_2340
at_fn_group_banner 2340 'rstp.at:13' \
  "RSTP Link failure" "                              " 116
at_xfail=no
(
  $as_echo "2340. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >test-rstp-num2 <<'_ATEOF'
bridge 0 0x111 = a b
bridge 1 0x222 = a c
bridge 2 0x333 = b c
run 1000
check 0 = root
check 1 = F:200000 F
check 2 = F:200000 Di
# Link b goes down
bridge 2 = X c
run 1000
check 1 = F:200000 F
check 2 = D F:400000
_ATEOF

{ set +x
$as_echo "$at_srcdir/rstp.at:29: ovstest test-rstp test-rstp-num2"
at_fn_check_prepare_trace "rstp.at:29"
( $at_check_trace; ovstest test-rstp test-rstp-num2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2340
#AT_START_2341
at_fn_group_banner 2341 'rstp.at:32' \
  "RSTP Double link Failure" "                       " 116
at_xfail=no
(
  $as_echo "2341. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >test-rstp-num3 <<'_ATEOF'
bridge 0 0x111 = a b
bridge 1 0x222 = a c d
bridge 2 0x333 = b c e
bridge 3 0x444 = d f
bridge 4 0x555 = e f
run 1000
check 0 = root
check 1 = F:200000 F F
check 2 = F:200000 Di F
check 3 = F:400000 F
check 4 = F:400000 Di
# Link b goes down
bridge 2 = X c e
run 1000
check 0 = root
check 1 = F:200000 F F
check 2 = D F:400000 F
check 3 = F:400000 F
check 4 = F:600000 Di
# Link e goes down
bridge 4 = X f
run 1000
check 0 = root
check 1 = F:200000 F F
check 2 = D F:400000 F
check 3 = F:400000 F
check 4 = D F:600000
# Link f cost changes
bridge 4 = X f:100000
run 1000
check 4 = D F:500000
# Bridge 4 becomes root and
bridge 4 ^ 31000
run 1000
check 4 = root
_ATEOF

{ set +x
$as_echo "$at_srcdir/rstp.at:71: ovstest test-rstp test-rstp-num3"
at_fn_check_prepare_trace "rstp.at:71"
( $at_check_trace; ovstest test-rstp test-rstp-num3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:71"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2341
#AT_START_2342
at_fn_group_banner 2342 'rstp.at:74' \
  "RSTP example from IEEE 802.1D-2004 figures 17.4 and 17.5" "" 116
at_xfail=no
(
  $as_echo "2342. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >test-rstp-ieee802.1d-2004-fig17.4 <<'_ATEOF'
bridge 0 0x111 = a b e c
bridge 1 0x222 = a b d f
bridge 2 0x333 = c d l j h g
bridge 3 0x444 = e f n m k i
bridge 4 0x555 = g i 0 0
bridge 5 0x666 = h k 0 0
bridge 6 0x777 = j m 0 0
bridge 7 0x888 = l n 0 0
run 1000
check 0 = root
check 1 = F:200000 Di F F
check 2 = F:200000 Di F F F F
check 3 = F:200000 Di F F F F
check 4 = F:400000 Di F F
check 5 = F:400000 Di F F
check 6 = F:400000 Di F F
check 7 = F:400000 Di F F

# Now connect two ports of bridge 7 to the same LAN.
bridge 7 = l n o o
# Same results except for bridge 7:
run 1000
check 0 = root
check 1 = F:200000 Di F F
check 2 = F:200000 Di F F F F
check 3 = F:200000 Di F F F F
check 4 = F:400000 Di F F
check 5 = F:400000 Di F F
check 6 = F:400000 Di F F
check 7 = F:400000 Di F Di
_ATEOF

{ set +x
$as_echo "$at_srcdir/rstp.at:108: ovstest test-rstp test-rstp-ieee802.1d-2004-fig17.4"
at_fn_check_prepare_trace "rstp.at:108"
( $at_check_trace; ovstest test-rstp test-rstp-ieee802.1d-2004-fig17.4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:108"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2342
#AT_START_2343
at_fn_group_banner 2343 'rstp.at:111' \
  "RSTP example from IEEE 802.1D-2004 figure 17.6" " " 116
at_xfail=no
(
  $as_echo "2343. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >test-rstp-ieee802.1d-2004-fig17.6 <<'_ATEOF'
bridge 0 0x111 = a b l
bridge 1 0x222 = b c d
bridge 2 0x333 = d e f
bridge 3 0x444 = f g h
bridge 4 0x555 = j h i
bridge 5 0x666 = l j k
run 1000
check 0 = root
check 1 = F:200000 F F
check 2 = F:400000 F F
check 3 = F:600000 F Di
check 4 = F:400000 F F
check 5 = F:200000 F F
_ATEOF

{ set +x
$as_echo "$at_srcdir/rstp.at:128: ovstest test-rstp test-rstp-ieee802.1d-2004-fig17.6"
at_fn_check_prepare_trace "rstp.at:128"
( $at_check_trace; ovstest test-rstp test-rstp-ieee802.1d-2004-fig17.6
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:128"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2343
#AT_START_2344
at_fn_group_banner 2344 'rstp.at:131' \
  "RSTP example from IEEE 802.1D-2004 figure 17.7" " " 116
at_xfail=no
(
  $as_echo "2344. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


cat >test-rstp-ieee802.1d-2004-fig17.7 <<'_ATEOF'
bridge 0 0x000 = b
bridge 1 0x111 = a b d f h g e c
bridge 2 0x222 = g h j l n m k i
run 1000
check 0 = root
check 1 = F F:200000 F F F F F F
check 2 = Di F:400000 F F F F F F
# Link g priority increment
bridge 1 = a b d f h g^112 e c
run 1000
check 0 = root
check 1 = F F:200000 F F F F F F
check 2 = F:400000 Di F F F F F F
_ATEOF

{ set +x
$as_echo "$at_srcdir/rstp.at:148: ovstest test-rstp test-rstp-ieee802.1d-2004-fig17.7"
at_fn_check_prepare_trace "rstp.at:148"
( $at_check_trace; ovstest test-rstp test-rstp-ieee802.1d-2004-fig17.7
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:148"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2344
#AT_START_2345
at_fn_group_banner 2345 'rstp.at:156' \
  "RSTP - dummy interface" "                         " 116
at_xfail=no
(
  $as_echo "2345. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

# Create br0 with interfaces p1 and p7
#    and br1 with interfaces p2 and p8
# with p1 and p2 connected via unix domain socket
   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/rstp.at:160: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "rstp.at:160"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:160"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/rstp.at:160: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "rstp.at:160"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:160"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/rstp.at:160: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "rstp.at:160"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:160"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/rstp.at:160: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "rstp.at:160"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:160"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/rstp.at:160: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "rstp.at:160"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:160"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/rstp.at:160: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "rstp.at:160"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:160"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/rstp.at:160: add_of_br 0 set port br0 other_config:rstp-enable=false -- \\
   set bridge br0 rstp_enable=true -- \\
   add-br br1 -- \\
   set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \\
   set bridge br1 datapath-type=dummy other-config:datapath-id=1234 \\
                  fail-mode=secure -- \\
   set port br1 other_config:rstp-enable=false -- \\
   set bridge br1 rstp_enable=false -- \\
 "
at_fn_check_prepare_notrace 'an embedded newline' "rstp.at:160"
( $at_check_trace; add_of_br 0 set port br0 other_config:rstp-enable=false -- \
   set bridge br0 rstp_enable=true -- \
   add-br br1 -- \
   set bridge br1 other-config:hwaddr=aa:66:aa:66:00:00 -- \
   set bridge br1 datapath-type=dummy other-config:datapath-id=1234 \
                  fail-mode=secure -- \
   set port br1 other_config:rstp-enable=false -- \
   set bridge br1 rstp_enable=false -- \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:160"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/rstp.at:171: ovs-vsctl add-port br0 p1 -- \\
   set interface p1 type=dummy options:pstream=punix:\$OVS_RUNDIR/p0.sock ofport_request=1 -- \\
   set port p1 other_config:rstp-enable=true -- \\
"
at_fn_check_prepare_notrace 'an embedded newline' "rstp.at:171"
( $at_check_trace; ovs-vsctl add-port br0 p1 -- \
   set interface p1 type=dummy options:pstream=punix:$OVS_RUNDIR/p0.sock ofport_request=1 -- \
   set port p1 other_config:rstp-enable=true -- \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:171"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/rstp.at:175: ovs-vsctl add-port br0 p7 -- \\
   set interface p7 ofport_request=7 type=dummy -- \\
   set port p7 other_config:rstp-enable=false -- \\
"
at_fn_check_prepare_notrace 'an embedded newline' "rstp.at:175"
( $at_check_trace; ovs-vsctl add-port br0 p7 -- \
   set interface p7 ofport_request=7 type=dummy -- \
   set port p7 other_config:rstp-enable=false -- \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:175"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/rstp.at:179: ovs-vsctl add-port br1 p2 -- \\
   set interface p2 type=dummy options:stream=unix:\$OVS_RUNDIR/p0.sock ofport_request=2 -- \\
   set port p2 other_config:rstp-enable=false -- \\
"
at_fn_check_prepare_notrace 'an embedded newline' "rstp.at:179"
( $at_check_trace; ovs-vsctl add-port br1 p2 -- \
   set interface p2 type=dummy options:stream=unix:$OVS_RUNDIR/p0.sock ofport_request=2 -- \
   set port p2 other_config:rstp-enable=false -- \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:179"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/rstp.at:183: ovs-vsctl add-port br1 p8 -- \\
   set interface p8 ofport_request=8 type=dummy -- \\
   set port p8 other_config:rstp-enable=false -- \\
"
at_fn_check_prepare_notrace 'an embedded newline' "rstp.at:183"
( $at_check_trace; ovs-vsctl add-port br1 p8 -- \
   set interface p8 ofport_request=8 type=dummy -- \
   set port p8 other_config:rstp-enable=false -- \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:183"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


#
# RSTP needs link to be in admin-state up, netdev-dummy is by default down
#
{ set +x
$as_echo "$at_srcdir/rstp.at:191: ovs-appctl netdev-dummy/set-admin-state p1 up"
at_fn_check_prepare_trace "rstp.at:191"
( $at_check_trace; ovs-appctl netdev-dummy/set-admin-state p1 up
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


#
# Turn RSTP on in br1 after the ports have been added.
#
{ set +x
$as_echo "$at_srcdir/rstp.at:198: ovs-vsctl set bridge br1 rstp_enable=true"
at_fn_check_prepare_trace "rstp.at:198"
( $at_check_trace; ovs-vsctl set bridge br1 rstp_enable=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:198"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/stop

{ set +x
$as_echo "$at_srcdir/rstp.at:202: ovs-ofctl add-flow br0 \"in_port=7 icmp actions=1\""
at_fn_check_prepare_trace "rstp.at:202"
( $at_check_trace; ovs-ofctl add-flow br0 "in_port=7 icmp actions=1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:202"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/rstp.at:203: ovs-ofctl add-flow br0 \"in_port=1 icmp actions=7\""
at_fn_check_prepare_trace "rstp.at:203"
( $at_check_trace; ovs-ofctl add-flow br0 "in_port=1 icmp actions=7"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:203"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/rstp.at:204: ovs-ofctl add-flow br1 \"in_port=8 icmp actions=2\""
at_fn_check_prepare_trace "rstp.at:204"
( $at_check_trace; ovs-ofctl add-flow br1 "in_port=8 icmp actions=2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:204"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/rstp.at:205: ovs-ofctl add-flow br1 \"in_port=2 icmp actions=8\""
at_fn_check_prepare_trace "rstp.at:205"
( $at_check_trace; ovs-ofctl add-flow br1 "in_port=2 icmp actions=8"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:205"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/rstp.at:207: ovs-vsctl set port p2 other_config:rstp-enable=true"
at_fn_check_prepare_trace "rstp.at:207"
( $at_check_trace; ovs-vsctl set port p2 other_config:rstp-enable=true
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:207"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


$as_echo "rstp.at:209: waiting until test \`cat ovs-vswitchd.log |
grep 'STP state changed' | sed '
    s/.*ofproto_dpif|.*|//
' | wc -l\` -ge 2..." >&5
ovs_wait_cond () {
    test `cat ovs-vswitchd.log |
grep 'STP state changed' | sed '
    s/.*ofproto_dpif|.*|//
' | wc -l` -ge 2
}
if ovs_wait; then :
else
    $as_echo "rstp.at:209: wait failed" >&5

    $as_echo "rstp.at:209" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/rstp.at:209"
fi

{ set +x
$as_echo "$at_srcdir/rstp.at:210: cat ovs-vswitchd.log |
grep 'STP state changed' | sed '
    s/.*ofproto_dpif|.*|//
'"
at_fn_check_prepare_notrace 'an embedded newline' "rstp.at:210"
( $at_check_trace; cat ovs-vswitchd.log |
grep 'STP state changed' | sed '
    s/.*ofproto_dpif|.*|//
'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "port p1: RSTP state changed from Disabled to Discarding
port p2: RSTP state changed from Disabled to Discarding
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:210"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/rstp.at:215: ovs-appctl ofproto/trace ovs-dummy 'in_port(7),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' | grep STP"
at_fn_check_prepare_notrace 'a shell pipeline' "rstp.at:215"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(7),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' | grep STP
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "     >> RSTP not in forwarding state, skipping output
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:215"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/rstp.at:218: ovs-appctl ofproto/trace ovs-dummy 'in_port(8),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' | grep STP"
at_fn_check_prepare_notrace 'a shell pipeline' "rstp.at:218"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(8),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' | grep STP
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "     >> RSTP not in forwarding state, skipping output
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:218"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


#
# RSTP needs link to be in admin-state up, netdev-dummy is by default down
#
{ set +x
$as_echo "$at_srcdir/rstp.at:225: ovs-appctl netdev-dummy/set-admin-state p2 up"
at_fn_check_prepare_trace "rstp.at:225"
( $at_check_trace; ovs-appctl netdev-dummy/set-admin-state p2 up
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OK
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:225"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# give time for RSTP to move initially

ovs-appctl time/warp 1000
ovs-appctl time/warp 1000

$as_echo "rstp.at:234: waiting until test \`cat ovs-vswitchd.log |
grep 'STP state changed' | sed '
    s/.*ofproto_dpif|.*|//
' | wc -l\` -ge 4..." >&5
ovs_wait_cond () {
    test `cat ovs-vswitchd.log |
grep 'STP state changed' | sed '
    s/.*ofproto_dpif|.*|//
' | wc -l` -ge 4
}
if ovs_wait; then :
else
    $as_echo "rstp.at:234: wait failed" >&5

    $as_echo "rstp.at:234" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/rstp.at:234"
fi

{ set +x
$as_echo "$at_srcdir/rstp.at:235: cat ovs-vswitchd.log |
grep 'STP state changed' | sed '
    s/.*ofproto_dpif|.*|//
'"
at_fn_check_prepare_notrace 'an embedded newline' "rstp.at:235"
( $at_check_trace; cat ovs-vswitchd.log |
grep 'STP state changed' | sed '
    s/.*ofproto_dpif|.*|//
'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "port p1: RSTP state changed from Disabled to Discarding
port p2: RSTP state changed from Disabled to Discarding
port p2: RSTP state changed from Discarding to Forwarding
port p1: RSTP state changed from Discarding to Forwarding
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:235"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/rstp.at:242: ovs-appctl ofproto/trace ovs-dummy 'in_port(7),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' | grep Datapath"
at_fn_check_prepare_notrace 'a shell pipeline' "rstp.at:242"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(7),eth(src=50:54:00:00:00:09,dst=50:54:00:00:00:0a),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' | grep Datapath
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:242"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/rstp.at:245: ovs-appctl ofproto/trace ovs-dummy 'in_port(8),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' | grep Datapath"
at_fn_check_prepare_notrace 'a shell pipeline' "rstp.at:245"
( $at_check_trace; ovs-appctl ofproto/trace ovs-dummy 'in_port(8),eth(src=50:54:00:00:00:0b,dst=50:54:00:00:00:0c),eth_type(0x0800),ipv4(src=10.0.0.3,dst=10.0.0.4,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0)' | grep Datapath
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Datapath actions: 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:245"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/rstp.at:249: ovs-vsctl del-br br1"
at_fn_check_prepare_trace "rstp.at:249"
( $at_check_trace; ovs-vsctl del-br br1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:249"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/rstp.at:251: ovs-vsctl del-port br0 p7"
at_fn_check_prepare_trace "rstp.at:251"
( $at_check_trace; ovs-vsctl del-port br0 p7
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:251"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/rstp.at:252: ovs-vsctl del-port br0 p1"
at_fn_check_prepare_trace "rstp.at:252"
( $at_check_trace; ovs-vsctl del-port br0 p1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:252"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/rstp.at:254: check_logs "
at_fn_check_prepare_trace "rstp.at:254"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:254"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/rstp.at:254: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "rstp.at:254"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:254"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/rstp.at:254: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "rstp.at:254"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:254"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "rstp.at:254: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "rstp.at:254: wait failed" >&5

    $as_echo "rstp.at:254" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/rstp.at:254"
fi

   { set +x
$as_echo "$at_srcdir/rstp.at:254: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "rstp.at:254"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:254"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/rstp.at:254: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "rstp.at:254"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rstp.at:254"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "rstp.at:254: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "rstp.at:254: wait failed" >&5

    $as_echo "rstp.at:254" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/rstp.at:254"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2345
#AT_START_2346
at_fn_group_banner 2346 'vlog.at:105' \
  "vlog - Python2" "                                 " 117
at_xfail=no
(
  $as_echo "2346. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "vlog.at:105" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/vlog.at:105"


   { set +x
$as_echo "$at_srcdir/vlog.at:105: \$PYTHON \$srcdir/test-vlog.py --log-file log_file \\
-v dbg module_1:info module_2:warn syslog:off 2>stderr_log"
at_fn_check_prepare_notrace 'an embedded newline' "vlog.at:105"
( $at_check_trace; $PYTHON $srcdir/test-vlog.py --log-file log_file \
-v dbg module_1:info module_2:warn syslog:off 2>stderr_log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:105"
$at_failed && at_fn_log_failure  \
"log_file" \
"stderr_log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/vlog.at:105: sed -e 's/.*-.*-.*T..:..:..Z |//' \\
-e 's/File \".*\", line [0-9][0-9]*,/File <name>, line <number>,/' \\
stderr_log"
at_fn_check_prepare_notrace 'an embedded newline' "vlog.at:105"
( $at_check_trace; sed -e 's/.*-.*-.*T..:..:..Z |//' \
-e 's/File ".*", line [0-9][0-9]*,/File <name>, line <number>,/' \
stderr_log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "  0  | module_0 | EMER | emergency
  1  | module_0 | ERR | error
  2  | module_0 | WARN | warning
  3  | module_0 | INFO | information
  4  | module_0 | DBG | debug
  5  | module_0 | EMER | emergency exception
Traceback (most recent call last):
  File <name>, line <number>, in main
    assert fail
AssertionError
  6  | module_0 | ERR | error exception
Traceback (most recent call last):
  File <name>, line <number>, in main
    assert fail
AssertionError
  7  | module_0 | WARN | warn exception
Traceback (most recent call last):
  File <name>, line <number>, in main
    assert fail
AssertionError
  8  | module_0 | INFO | information exception
Traceback (most recent call last):
  File <name>, line <number>, in main
    assert fail
AssertionError
  9  | module_0 | DBG | debug exception
Traceback (most recent call last):
  File <name>, line <number>, in main
    assert fail
AssertionError
  10 | module_0 | ERR | exception
Traceback (most recent call last):
  File <name>, line <number>, in main
    assert fail
AssertionError
  11 | module_1 | EMER | emergency
  12 | module_1 | ERR | error
  13 | module_1 | WARN | warning
  14 | module_1 | INFO | information
  16 | module_1 | EMER | emergency exception
Traceback (most recent call last):
  File <name>, line <number>, in main
    assert fail
AssertionError
  17 | module_1 | ERR | error exception
Traceback (most recent call last):
  File <name>, line <number>, in main
    assert fail
AssertionError
  18 | module_1 | WARN | warn exception
Traceback (most recent call last):
  File <name>, line <number>, in main
    assert fail
AssertionError
  19 | module_1 | INFO | information exception
Traceback (most recent call last):
  File <name>, line <number>, in main
    assert fail
AssertionError
  21 | module_1 | ERR | exception
Traceback (most recent call last):
  File <name>, line <number>, in main
    assert fail
AssertionError
  22 | module_2 | EMER | emergency
  23 | module_2 | ERR | error
  24 | module_2 | WARN | warning
  27 | module_2 | EMER | emergency exception
Traceback (most recent call last):
  File <name>, line <number>, in main
    assert fail
AssertionError
  28 | module_2 | ERR | error exception
Traceback (most recent call last):
  File <name>, line <number>, in main
    assert fail
AssertionError
  29 | module_2 | WARN | warn exception
Traceback (most recent call last):
  File <name>, line <number>, in main
    assert fail
AssertionError
  32 | module_2 | ERR | exception
Traceback (most recent call last):
  File <name>, line <number>, in main
    assert fail
AssertionError
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:105"
$at_failed && at_fn_log_failure  \
"log_file" \
"stderr_log"
$at_traceon; }


     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2346
#AT_START_2347
at_fn_group_banner 2347 'vlog.at:106' \
  "vlog - Python3" "                                 " 117
at_xfail=no
(
  $as_echo "2347. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "vlog.at:106" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/vlog.at:106"


   { set +x
$as_echo "$at_srcdir/vlog.at:106: \$PYTHON3 \$srcdir/test-vlog.py --log-file log_file \\
-v dbg module_1:info module_2:warn syslog:off 2>stderr_log"
at_fn_check_prepare_notrace 'an embedded newline' "vlog.at:106"
( $at_check_trace; $PYTHON3 $srcdir/test-vlog.py --log-file log_file \
-v dbg module_1:info module_2:warn syslog:off 2>stderr_log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:106"
$at_failed && at_fn_log_failure  \
"log_file" \
"stderr_log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/vlog.at:106: sed -e 's/.*-.*-.*T..:..:..Z |//' \\
-e 's/File \".*\", line [0-9][0-9]*,/File <name>, line <number>,/' \\
stderr_log"
at_fn_check_prepare_notrace 'an embedded newline' "vlog.at:106"
( $at_check_trace; sed -e 's/.*-.*-.*T..:..:..Z |//' \
-e 's/File ".*", line [0-9][0-9]*,/File <name>, line <number>,/' \
stderr_log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "  0  | module_0 | EMER | emergency
  1  | module_0 | ERR | error
  2  | module_0 | WARN | warning
  3  | module_0 | INFO | information
  4  | module_0 | DBG | debug
  5  | module_0 | EMER | emergency exception
Traceback (most recent call last):
  File <name>, line <number>, in main
    assert fail
AssertionError
  6  | module_0 | ERR | error exception
Traceback (most recent call last):
  File <name>, line <number>, in main
    assert fail
AssertionError
  7  | module_0 | WARN | warn exception
Traceback (most recent call last):
  File <name>, line <number>, in main
    assert fail
AssertionError
  8  | module_0 | INFO | information exception
Traceback (most recent call last):
  File <name>, line <number>, in main
    assert fail
AssertionError
  9  | module_0 | DBG | debug exception
Traceback (most recent call last):
  File <name>, line <number>, in main
    assert fail
AssertionError
  10 | module_0 | ERR | exception
Traceback (most recent call last):
  File <name>, line <number>, in main
    assert fail
AssertionError
  11 | module_1 | EMER | emergency
  12 | module_1 | ERR | error
  13 | module_1 | WARN | warning
  14 | module_1 | INFO | information
  16 | module_1 | EMER | emergency exception
Traceback (most recent call last):
  File <name>, line <number>, in main
    assert fail
AssertionError
  17 | module_1 | ERR | error exception
Traceback (most recent call last):
  File <name>, line <number>, in main
    assert fail
AssertionError
  18 | module_1 | WARN | warn exception
Traceback (most recent call last):
  File <name>, line <number>, in main
    assert fail
AssertionError
  19 | module_1 | INFO | information exception
Traceback (most recent call last):
  File <name>, line <number>, in main
    assert fail
AssertionError
  21 | module_1 | ERR | exception
Traceback (most recent call last):
  File <name>, line <number>, in main
    assert fail
AssertionError
  22 | module_2 | EMER | emergency
  23 | module_2 | ERR | error
  24 | module_2 | WARN | warning
  27 | module_2 | EMER | emergency exception
Traceback (most recent call last):
  File <name>, line <number>, in main
    assert fail
AssertionError
  28 | module_2 | ERR | error exception
Traceback (most recent call last):
  File <name>, line <number>, in main
    assert fail
AssertionError
  29 | module_2 | WARN | warn exception
Traceback (most recent call last):
  File <name>, line <number>, in main
    assert fail
AssertionError
  32 | module_2 | ERR | exception
Traceback (most recent call last):
  File <name>, line <number>, in main
    assert fail
AssertionError
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:106"
$at_failed && at_fn_log_failure  \
"log_file" \
"stderr_log"
$at_traceon; }


     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2347
#AT_START_2348
at_fn_group_banner 2348 'vlog.at:115' \
  "vlog - vlog/reopen - C" "                         " 117
at_xfail=no
(
  $as_echo "2348. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

# This test won't work as-is on Windows because Windows doesn't allow
# files that are open to be renamed.
$as_echo "vlog.at:118" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/vlog.at:118"
on_exit 'kill `cat test-unixctl.pid`'



{ set +x
$as_echo "$at_srcdir/vlog.at:123: ovstest test-unixctl --log-file=\`pwd\`/log --pidfile --detach"
at_fn_check_prepare_notrace 'a `...` command substitution' "vlog.at:123"
( $at_check_trace; ovstest test-unixctl --log-file=`pwd`/log --pidfile --detach
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:123"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vlog.at:125: vlog_filt stderr"
at_fn_check_prepare_trace "vlog.at:125"
( $at_check_trace; vlog_filt stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "opened log file
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:125"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/vlog.at:129: ovs-appctl --timeout 20 -t test-unixctl log message"
at_fn_check_prepare_trace "vlog.at:129"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl log message
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:129"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

mv log log.old
{ set +x
$as_echo "$at_srcdir/vlog.at:131: ovs-appctl --timeout 20 -t test-unixctl log message2"
at_fn_check_prepare_trace "vlog.at:131"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl log message2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:131"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vlog.at:132: ovs-appctl --timeout 20 -t test-unixctl vlog/reopen"
at_fn_check_prepare_trace "vlog.at:132"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl vlog/reopen
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:132"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vlog.at:133: ovs-appctl --timeout 20 -t test-unixctl log message3"
at_fn_check_prepare_trace "vlog.at:133"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl log message3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:133"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vlog.at:134: ovs-appctl --timeout 20 -t test-unixctl exit"
at_fn_check_prepare_trace "vlog.at:134"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:134"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/vlog.at:136: vlog_filt log.old"
at_fn_check_prepare_trace "vlog.at:136"
( $at_check_trace; vlog_filt log.old
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "opened log file
Entering run loop.
message
message2
closing log file
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:136"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vlog.at:143: vlog_filt log"
at_fn_check_prepare_trace "vlog.at:143"
( $at_check_trace; vlog_filt log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "opened log file
message3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:143"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2348
#AT_START_2349
at_fn_group_banner 2349 'vlog.at:178' \
  "vlog - vlog/reopen - Python2" "                   " 117
at_xfail=no
(
  $as_echo "2349. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   # This test won't work as-is on Windows because Windows doesn't allow
   # files that are open to be renamed.
   $as_echo "vlog.at:178" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/vlog.at:178"
   $as_echo "vlog.at:178" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/vlog.at:178"
   on_exit 'kill `cat test-unixctl.py.pid`'



   { set +x
$as_echo "$at_srcdir/vlog.at:178: \$PYTHON \$srcdir/test-unixctl.py --log-file=\`pwd\`/log --pidfile --detach"
at_fn_check_prepare_notrace 'a `...` command substitution' "vlog.at:178"
( $at_check_trace; $PYTHON $srcdir/test-unixctl.py --log-file=`pwd`/log --pidfile --detach
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:178"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/vlog.at:178: ovs-appctl --timeout 20 -t test-unixctl.py log message"
at_fn_check_prepare_trace "vlog.at:178"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py log message
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:178"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

   mv log log.old
   { set +x
$as_echo "$at_srcdir/vlog.at:178: ovs-appctl --timeout 20 -t test-unixctl.py log message2"
at_fn_check_prepare_trace "vlog.at:178"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py log message2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:178"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:178: ovs-appctl --timeout 20 -t test-unixctl.py vlog/reopen"
at_fn_check_prepare_trace "vlog.at:178"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py vlog/reopen
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:178"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:178: ovs-appctl --timeout 20 -t test-unixctl.py log message3"
at_fn_check_prepare_trace "vlog.at:178"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py log message3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:178"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:178: ovs-appctl --timeout 20 -t test-unixctl.py exit"
at_fn_check_prepare_trace "vlog.at:178"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:178"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/vlog.at:178: sed 's/.*|//' log.old"
at_fn_check_prepare_notrace 'a shell pipeline' "vlog.at:178"
( $at_check_trace; sed 's/.*|//' log.old
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " Entering run loop.
 message
 message2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:178"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:178: sed 's/.*|//' log"
at_fn_check_prepare_notrace 'a shell pipeline' "vlog.at:178"
( $at_check_trace; sed 's/.*|//' log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " message3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:178"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2349
#AT_START_2350
at_fn_group_banner 2350 'vlog.at:179' \
  "vlog - vlog/reopen - Python3" "                   " 117
at_xfail=no
(
  $as_echo "2350. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   # This test won't work as-is on Windows because Windows doesn't allow
   # files that are open to be renamed.
   $as_echo "vlog.at:179" >"$at_check_line_file"
(test "$IS_WIN32" = "yes") \
  && at_fn_check_skip 77 "$at_srcdir/vlog.at:179"
   $as_echo "vlog.at:179" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/vlog.at:179"
   on_exit 'kill `cat test-unixctl.py.pid`'



   { set +x
$as_echo "$at_srcdir/vlog.at:179: \$PYTHON3 \$srcdir/test-unixctl.py --log-file=\`pwd\`/log --pidfile --detach"
at_fn_check_prepare_notrace 'a `...` command substitution' "vlog.at:179"
( $at_check_trace; $PYTHON3 $srcdir/test-unixctl.py --log-file=`pwd`/log --pidfile --detach
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:179"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/vlog.at:179: ovs-appctl --timeout 20 -t test-unixctl.py log message"
at_fn_check_prepare_trace "vlog.at:179"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py log message
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:179"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

   mv log log.old
   { set +x
$as_echo "$at_srcdir/vlog.at:179: ovs-appctl --timeout 20 -t test-unixctl.py log message2"
at_fn_check_prepare_trace "vlog.at:179"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py log message2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:179"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:179: ovs-appctl --timeout 20 -t test-unixctl.py vlog/reopen"
at_fn_check_prepare_trace "vlog.at:179"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py vlog/reopen
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:179"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:179: ovs-appctl --timeout 20 -t test-unixctl.py log message3"
at_fn_check_prepare_trace "vlog.at:179"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py log message3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:179"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:179: ovs-appctl --timeout 20 -t test-unixctl.py exit"
at_fn_check_prepare_trace "vlog.at:179"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:179"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/vlog.at:179: sed 's/.*|//' log.old"
at_fn_check_prepare_notrace 'a shell pipeline' "vlog.at:179"
( $at_check_trace; sed 's/.*|//' log.old
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " Entering run loop.
 message
 message2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:179"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:179: sed 's/.*|//' log"
at_fn_check_prepare_notrace 'a shell pipeline' "vlog.at:179"
( $at_check_trace; sed 's/.*|//' log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " message3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:179"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2350
#AT_START_2351
at_fn_group_banner 2351 'vlog.at:181' \
  "vlog - vlog/reopen without log file - C" "        " 117
at_xfail=no
(
  $as_echo "2351. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

on_exit 'kill `cat test-unixctl.pid`'

{ set +x
$as_echo "$at_srcdir/vlog.at:184: ovstest test-unixctl --pidfile --detach"
at_fn_check_prepare_trace "vlog.at:184"
( $at_check_trace; ovstest test-unixctl --pidfile --detach
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:184"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/vlog.at:186: ovs-appctl --timeout 20 -t test-unixctl vlog/reopen"
at_fn_check_prepare_trace "vlog.at:186"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl vlog/reopen
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "Logging to file not configured
ovs-appctl: test-unixctl: server returned an error
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vlog.at:186"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vlog.at:190: test -e \$OVS_RUNDIR/test-unixctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/test-unixctl.pid" "vlog.at:190"
( $at_check_trace; test -e $OVS_RUNDIR/test-unixctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:190"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/test-unixctl.pid)
   { set +x
$as_echo "$at_srcdir/vlog.at:190: ovs-appctl --timeout=10 -t test-unixctl exit"
at_fn_check_prepare_trace "vlog.at:190"
( $at_check_trace; ovs-appctl --timeout=10 -t test-unixctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:190"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vlog.at:190: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vlog.at:190: wait failed" >&5

    $as_echo "vlog.at:190" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vlog.at:190"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2351
#AT_START_2352
at_fn_group_banner 2352 'vlog.at:205' \
  "vlog - vlog/reopen without log file - Python2" "  " 117
at_xfail=no
(
  $as_echo "2352. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "vlog.at:205" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/vlog.at:205"
   on_exit 'kill `cat test-unixctl.py.pid`'

   { set +x
$as_echo "$at_srcdir/vlog.at:205: \$PYTHON \$srcdir/test-unixctl.py --pidfile --detach"
at_fn_check_prepare_dynamic "$PYTHON $srcdir/test-unixctl.py --pidfile --detach" "vlog.at:205"
( $at_check_trace; $PYTHON $srcdir/test-unixctl.py --pidfile --detach
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:205"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/vlog.at:205: ovs-appctl --timeout 20 -t test-unixctl.py vlog/reopen"
at_fn_check_prepare_trace "vlog.at:205"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py vlog/reopen
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Logging to file not configured
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:205"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2352
#AT_START_2353
at_fn_group_banner 2353 'vlog.at:206' \
  "vlog - vlog/reopen without log file - Python3" "  " 117
at_xfail=no
(
  $as_echo "2353. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "vlog.at:206" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/vlog.at:206"
   on_exit 'kill `cat test-unixctl.py.pid`'

   { set +x
$as_echo "$at_srcdir/vlog.at:206: \$PYTHON3 \$srcdir/test-unixctl.py --pidfile --detach"
at_fn_check_prepare_dynamic "$PYTHON3 $srcdir/test-unixctl.py --pidfile --detach" "vlog.at:206"
( $at_check_trace; $PYTHON3 $srcdir/test-unixctl.py --pidfile --detach
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:206"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/vlog.at:206: ovs-appctl --timeout 20 -t test-unixctl.py vlog/reopen"
at_fn_check_prepare_trace "vlog.at:206"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py vlog/reopen
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Logging to file not configured
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:206"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2353
#AT_START_2354
at_fn_group_banner 2354 'vlog.at:210' \
  "vlog - vlog/reopen can't reopen log file - C" "   " 117
at_xfail=no
(
  $as_echo "2354. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

# Verify that /dev/full is a character device that fails writes.
$as_echo "vlog.at:212" >"$at_check_line_file"
(test ! -c /dev/full) \
  && at_fn_check_skip 77 "$at_srcdir/vlog.at:212"
$as_echo "vlog.at:213" >"$at_check_line_file"
(echo > /dev/full) \
  && at_fn_check_skip 77 "$at_srcdir/vlog.at:213"

on_exit 'kill `cat test-unixctl.pid`'

{ set +x
$as_echo "$at_srcdir/vlog.at:217: ovstest test-unixctl --log-file=\`pwd\`/log --pidfile --detach"
at_fn_check_prepare_notrace 'a `...` command substitution' "vlog.at:217"
( $at_check_trace; ovstest test-unixctl --log-file=`pwd`/log --pidfile --detach
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:217"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vlog.at:219: vlog_filt stderr"
at_fn_check_prepare_trace "vlog.at:219"
( $at_check_trace; vlog_filt stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "opened log file
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:219"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/vlog.at:222: ovs-appctl --timeout 20 -t test-unixctl log message"
at_fn_check_prepare_trace "vlog.at:222"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl log message
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:222"
$at_failed && at_fn_log_failure
$at_traceon; }

mv log log.old
ln -s /dev/full log
{ set +x
$as_echo "$at_srcdir/vlog.at:225: ovs-appctl --timeout 20 -t test-unixctl vlog/reopen"
at_fn_check_prepare_trace "vlog.at:225"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl vlog/reopen
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:225"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vlog.at:226: ovs-appctl --timeout 20 -t test-unixctl log message2"
at_fn_check_prepare_trace "vlog.at:226"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl log message2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:226"
$at_failed && at_fn_log_failure
$at_traceon; }

rm log
{ set +x
$as_echo "$at_srcdir/vlog.at:228: ovs-appctl --timeout 20 -t test-unixctl vlog/reopen"
at_fn_check_prepare_trace "vlog.at:228"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl vlog/reopen
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:228"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vlog.at:229: ovs-appctl --timeout 20 -t test-unixctl log message3"
at_fn_check_prepare_trace "vlog.at:229"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl log message3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:229"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vlog.at:230: ovs-appctl --timeout 20 -t test-unixctl exit"
at_fn_check_prepare_trace "vlog.at:230"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:230"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vlog.at:231: vlog_filt log.old"
at_fn_check_prepare_trace "vlog.at:231"
( $at_check_trace; vlog_filt log.old
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "opened log file
Entering run loop.
message
closing log file
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:231"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vlog.at:237: vlog_filt log"
at_fn_check_prepare_trace "vlog.at:237"
( $at_check_trace; vlog_filt log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "opened log file
message3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:237"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2354
#AT_START_2355
at_fn_group_banner 2355 'vlog.at:275' \
  "vlog - vlog/reopen can't reopen log file - Python2" "" 117
at_xfail=no
(
  $as_echo "2355. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "vlog.at:275" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/vlog.at:275"

   # Verify that /dev/full is a character device that fails writes.
   $as_echo "vlog.at:275" >"$at_check_line_file"
(test ! -c /dev/full) \
  && at_fn_check_skip 77 "$at_srcdir/vlog.at:275"
   $as_echo "vlog.at:275" >"$at_check_line_file"
(echo > /dev/full) \
  && at_fn_check_skip 77 "$at_srcdir/vlog.at:275"

   on_exit 'kill `cat test-unixctl.py.pid`'

   { set +x
$as_echo "$at_srcdir/vlog.at:275: \$PYTHON \$srcdir/test-unixctl.py --log-file=\`pwd\`/log --pidfile --detach"
at_fn_check_prepare_notrace 'a `...` command substitution' "vlog.at:275"
( $at_check_trace; $PYTHON $srcdir/test-unixctl.py --log-file=`pwd`/log --pidfile --detach
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:275"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:275: ovs-appctl --timeout 20 -t test-unixctl.py log message"
at_fn_check_prepare_trace "vlog.at:275"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py log message
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:275"
$at_failed && at_fn_log_failure
$at_traceon; }

   mv log log.old
   ln -s /dev/full log
   { set +x
$as_echo "$at_srcdir/vlog.at:275: ovs-appctl --timeout 20 -t test-unixctl.py vlog/reopen"
at_fn_check_prepare_trace "vlog.at:275"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py vlog/reopen
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:275"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:275: ovs-appctl --timeout 20 -t test-unixctl.py log message2"
at_fn_check_prepare_trace "vlog.at:275"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py log message2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:275"
$at_failed && at_fn_log_failure
$at_traceon; }

   rm log
   { set +x
$as_echo "$at_srcdir/vlog.at:275: ovs-appctl --timeout 20 -t test-unixctl.py vlog/reopen"
at_fn_check_prepare_trace "vlog.at:275"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py vlog/reopen
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:275"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:275: ovs-appctl --timeout 20 -t test-unixctl.py log message3"
at_fn_check_prepare_trace "vlog.at:275"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py log message3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:275"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:275: ovs-appctl --timeout 20 -t test-unixctl.py exit"
at_fn_check_prepare_trace "vlog.at:275"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:275"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:275: sed 's/.*|//' log.old"
at_fn_check_prepare_notrace 'a shell pipeline' "vlog.at:275"
( $at_check_trace; sed 's/.*|//' log.old
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " Entering run loop.
 message
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:275"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:275: sed 's/.*|//' log"
at_fn_check_prepare_notrace 'a shell pipeline' "vlog.at:275"
( $at_check_trace; sed 's/.*|//' log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " message3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:275"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2355
#AT_START_2356
at_fn_group_banner 2356 'vlog.at:276' \
  "vlog - vlog/reopen can't reopen log file - Python3" "" 117
at_xfail=no
(
  $as_echo "2356. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "vlog.at:276" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/vlog.at:276"

   # Verify that /dev/full is a character device that fails writes.
   $as_echo "vlog.at:276" >"$at_check_line_file"
(test ! -c /dev/full) \
  && at_fn_check_skip 77 "$at_srcdir/vlog.at:276"
   $as_echo "vlog.at:276" >"$at_check_line_file"
(echo > /dev/full) \
  && at_fn_check_skip 77 "$at_srcdir/vlog.at:276"

   on_exit 'kill `cat test-unixctl.py.pid`'

   { set +x
$as_echo "$at_srcdir/vlog.at:276: \$PYTHON3 \$srcdir/test-unixctl.py --log-file=\`pwd\`/log --pidfile --detach"
at_fn_check_prepare_notrace 'a `...` command substitution' "vlog.at:276"
( $at_check_trace; $PYTHON3 $srcdir/test-unixctl.py --log-file=`pwd`/log --pidfile --detach
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:276"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:276: ovs-appctl --timeout 20 -t test-unixctl.py log message"
at_fn_check_prepare_trace "vlog.at:276"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py log message
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:276"
$at_failed && at_fn_log_failure
$at_traceon; }

   mv log log.old
   ln -s /dev/full log
   { set +x
$as_echo "$at_srcdir/vlog.at:276: ovs-appctl --timeout 20 -t test-unixctl.py vlog/reopen"
at_fn_check_prepare_trace "vlog.at:276"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py vlog/reopen
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:276"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:276: ovs-appctl --timeout 20 -t test-unixctl.py log message2"
at_fn_check_prepare_trace "vlog.at:276"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py log message2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:276"
$at_failed && at_fn_log_failure
$at_traceon; }

   rm log
   { set +x
$as_echo "$at_srcdir/vlog.at:276: ovs-appctl --timeout 20 -t test-unixctl.py vlog/reopen"
at_fn_check_prepare_trace "vlog.at:276"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py vlog/reopen
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:276"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:276: ovs-appctl --timeout 20 -t test-unixctl.py log message3"
at_fn_check_prepare_trace "vlog.at:276"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py log message3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:276"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:276: ovs-appctl --timeout 20 -t test-unixctl.py exit"
at_fn_check_prepare_trace "vlog.at:276"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:276"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:276: sed 's/.*|//' log.old"
at_fn_check_prepare_notrace 'a shell pipeline' "vlog.at:276"
( $at_check_trace; sed 's/.*|//' log.old
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " Entering run loop.
 message
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:276"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:276: sed 's/.*|//' log"
at_fn_check_prepare_notrace 'a shell pipeline' "vlog.at:276"
( $at_check_trace; sed 's/.*|//' log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " message3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:276"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2356
#AT_START_2357
at_fn_group_banner 2357 'vlog.at:278' \
  "vlog - vlog/close - C" "                          " 117
at_xfail=no
(
  $as_echo "2357. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

on_exit 'kill `cat test-unixctl.pid`'



{ set +x
$as_echo "$at_srcdir/vlog.at:283: ovstest test-unixctl --log-file=\`pwd\`/log --pidfile --detach"
at_fn_check_prepare_notrace 'a `...` command substitution' "vlog.at:283"
( $at_check_trace; ovstest test-unixctl --log-file=`pwd`/log --pidfile --detach
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:283"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vlog.at:285: vlog_filt log"
at_fn_check_prepare_trace "vlog.at:285"
( $at_check_trace; vlog_filt log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "opened log file
Entering run loop.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:285"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/vlog.at:289: ovs-appctl --timeout 20 -t test-unixctl log message"
at_fn_check_prepare_trace "vlog.at:289"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl log message
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:289"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vlog.at:290: ovs-appctl --timeout 20 -t test-unixctl log message2"
at_fn_check_prepare_trace "vlog.at:290"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl log message2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:290"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }


# After closing the log file, message3 won't appear anywhere.
{ set +x
$as_echo "$at_srcdir/vlog.at:293: ovs-appctl --timeout 20 -t test-unixctl vlog/close"
at_fn_check_prepare_trace "vlog.at:293"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl vlog/close
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:293"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

mv log log.old
{ set +x
$as_echo "$at_srcdir/vlog.at:295: ovs-appctl --timeout 20 -t test-unixctl log message3"
at_fn_check_prepare_trace "vlog.at:295"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl log message3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:295"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }


# Closing the log file again is harmless.
{ set +x
$as_echo "$at_srcdir/vlog.at:298: ovs-appctl --timeout 20 -t test-unixctl vlog/close"
at_fn_check_prepare_trace "vlog.at:298"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl vlog/close
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:298"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vlog.at:299: ovs-appctl --timeout 20 -t test-unixctl log message4"
at_fn_check_prepare_trace "vlog.at:299"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl log message4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:299"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }


# After reopening the log file, further messages start appearing again.
{ set +x
$as_echo "$at_srcdir/vlog.at:302: ovs-appctl --timeout 20 -t test-unixctl vlog/reopen"
at_fn_check_prepare_trace "vlog.at:302"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl vlog/reopen
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:302"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vlog.at:303: ovs-appctl --timeout 20 -t test-unixctl log message5"
at_fn_check_prepare_trace "vlog.at:303"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl log message5
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:303"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vlog.at:304: ovs-appctl --timeout 20 -t test-unixctl exit"
at_fn_check_prepare_trace "vlog.at:304"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:304"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/vlog.at:306: vlog_filt log.old"
at_fn_check_prepare_trace "vlog.at:306"
( $at_check_trace; vlog_filt log.old
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "opened log file
Entering run loop.
message
message2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:306"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vlog.at:312: vlog_filt log"
at_fn_check_prepare_trace "vlog.at:312"
( $at_check_trace; vlog_filt log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "opened log file
message5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:312"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2357
#AT_START_2358
at_fn_group_banner 2358 'vlog.at:354' \
  "vlog - vlog/close - Python2" "                    " 117
at_xfail=no
(
  $as_echo "2358. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "vlog.at:354" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/vlog.at:354"
   on_exit 'kill `cat test-unixctl.py.pid`'



   { set +x
$as_echo "$at_srcdir/vlog.at:354: \$PYTHON \$srcdir/test-unixctl.py --log-file=\`pwd\`/log --pidfile --detach"
at_fn_check_prepare_notrace 'a `...` command substitution' "vlog.at:354"
( $at_check_trace; $PYTHON $srcdir/test-unixctl.py --log-file=`pwd`/log --pidfile --detach
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:354"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/vlog.at:354: ovs-appctl --timeout 20 -t test-unixctl.py log message"
at_fn_check_prepare_trace "vlog.at:354"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py log message
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:354"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:354: ovs-appctl --timeout 20 -t test-unixctl.py log message2"
at_fn_check_prepare_trace "vlog.at:354"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py log message2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:354"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }


   # After closing the log file, message3 won't appear anywhere.
   { set +x
$as_echo "$at_srcdir/vlog.at:354: ovs-appctl --timeout 20 -t test-unixctl.py vlog/close"
at_fn_check_prepare_trace "vlog.at:354"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py vlog/close
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:354"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

   mv log log.old
   { set +x
$as_echo "$at_srcdir/vlog.at:354: ovs-appctl --timeout 20 -t test-unixctl.py log message3"
at_fn_check_prepare_trace "vlog.at:354"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py log message3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:354"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }


   # Closing the log file again is harmless.
   { set +x
$as_echo "$at_srcdir/vlog.at:354: ovs-appctl --timeout 20 -t test-unixctl.py vlog/close"
at_fn_check_prepare_trace "vlog.at:354"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py vlog/close
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:354"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:354: ovs-appctl --timeout 20 -t test-unixctl.py log message4"
at_fn_check_prepare_trace "vlog.at:354"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py log message4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:354"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }


   # After reopening the log file, further messages start appearing again.
   { set +x
$as_echo "$at_srcdir/vlog.at:354: ovs-appctl --timeout 20 -t test-unixctl.py vlog/reopen"
at_fn_check_prepare_trace "vlog.at:354"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py vlog/reopen
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:354"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:354: ovs-appctl --timeout 20 -t test-unixctl.py log message5"
at_fn_check_prepare_trace "vlog.at:354"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py log message5
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:354"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:354: ovs-appctl --timeout 20 -t test-unixctl.py exit"
at_fn_check_prepare_trace "vlog.at:354"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:354"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/vlog.at:354: sed 's/.*|//' log.old"
at_fn_check_prepare_notrace 'a shell pipeline' "vlog.at:354"
( $at_check_trace; sed 's/.*|//' log.old
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " Entering run loop.
 message
 message2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:354"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:354: sed 's/.*|//' log"
at_fn_check_prepare_notrace 'a shell pipeline' "vlog.at:354"
( $at_check_trace; sed 's/.*|//' log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " message5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:354"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2358
#AT_START_2359
at_fn_group_banner 2359 'vlog.at:355' \
  "vlog - vlog/close - Python3" "                    " 117
at_xfail=no
(
  $as_echo "2359. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "vlog.at:355" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/vlog.at:355"
   on_exit 'kill `cat test-unixctl.py.pid`'



   { set +x
$as_echo "$at_srcdir/vlog.at:355: \$PYTHON3 \$srcdir/test-unixctl.py --log-file=\`pwd\`/log --pidfile --detach"
at_fn_check_prepare_notrace 'a `...` command substitution' "vlog.at:355"
( $at_check_trace; $PYTHON3 $srcdir/test-unixctl.py --log-file=`pwd`/log --pidfile --detach
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:355"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/vlog.at:355: ovs-appctl --timeout 20 -t test-unixctl.py log message"
at_fn_check_prepare_trace "vlog.at:355"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py log message
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:355"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:355: ovs-appctl --timeout 20 -t test-unixctl.py log message2"
at_fn_check_prepare_trace "vlog.at:355"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py log message2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:355"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }


   # After closing the log file, message3 won't appear anywhere.
   { set +x
$as_echo "$at_srcdir/vlog.at:355: ovs-appctl --timeout 20 -t test-unixctl.py vlog/close"
at_fn_check_prepare_trace "vlog.at:355"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py vlog/close
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:355"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

   mv log log.old
   { set +x
$as_echo "$at_srcdir/vlog.at:355: ovs-appctl --timeout 20 -t test-unixctl.py log message3"
at_fn_check_prepare_trace "vlog.at:355"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py log message3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:355"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }


   # Closing the log file again is harmless.
   { set +x
$as_echo "$at_srcdir/vlog.at:355: ovs-appctl --timeout 20 -t test-unixctl.py vlog/close"
at_fn_check_prepare_trace "vlog.at:355"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py vlog/close
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:355"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:355: ovs-appctl --timeout 20 -t test-unixctl.py log message4"
at_fn_check_prepare_trace "vlog.at:355"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py log message4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:355"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }


   # After reopening the log file, further messages start appearing again.
   { set +x
$as_echo "$at_srcdir/vlog.at:355: ovs-appctl --timeout 20 -t test-unixctl.py vlog/reopen"
at_fn_check_prepare_trace "vlog.at:355"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py vlog/reopen
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:355"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:355: ovs-appctl --timeout 20 -t test-unixctl.py log message5"
at_fn_check_prepare_trace "vlog.at:355"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py log message5
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:355"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:355: ovs-appctl --timeout 20 -t test-unixctl.py exit"
at_fn_check_prepare_trace "vlog.at:355"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:355"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/vlog.at:355: sed 's/.*|//' log.old"
at_fn_check_prepare_notrace 'a shell pipeline' "vlog.at:355"
( $at_check_trace; sed 's/.*|//' log.old
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " Entering run loop.
 message
 message2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:355"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:355: sed 's/.*|//' log"
at_fn_check_prepare_notrace 'a shell pipeline' "vlog.at:355"
( $at_check_trace; sed 's/.*|//' log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " message5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:355"
$at_failed && at_fn_log_failure  \
"log" \
"log.old"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2359
#AT_START_2360
at_fn_group_banner 2360 'vlog.at:357' \
  "vlog - vlog/set and vlog/list - C" "              " 117
at_xfail=no
(
  $as_echo "2360. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

on_exit 'kill `cat test-unixctl.pid`'


{ set +x
$as_echo "$at_srcdir/vlog.at:361: ovstest test-unixctl --log-file=\`pwd\`/log --pidfile --detach"
at_fn_check_prepare_notrace 'a `...` command substitution' "vlog.at:361"
( $at_check_trace; ovstest test-unixctl --log-file=`pwd`/log --pidfile --detach
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:361"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vlog.at:363: vlog_filt log"
at_fn_check_prepare_trace "vlog.at:363"
( $at_check_trace; vlog_filt log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "opened log file
Entering run loop.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:363"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/vlog.at:367: ovs-appctl --timeout 20 -t test-unixctl vlog/list | sed -n '1,2p
/test_unixctl /p; /daemon /p'"
at_fn_check_prepare_notrace 'an embedded newline' "vlog.at:367"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl vlog/list | sed -n '1,2p
/test_unixctl /p; /daemon /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "                 console    syslog    file
                 -------    ------    ------
daemon             OFF       INFO       INFO
test_unixctl       OFF       INFO       INFO
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:367"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/vlog.at:375: ovs-appctl --timeout 20 -t test-unixctl vlog/set daemon:syslog:err"
at_fn_check_prepare_trace "vlog.at:375"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl vlog/set daemon:syslog:err
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:375"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vlog.at:376: ovs-appctl --timeout 20 -t test-unixctl vlog/set file:dbg"
at_fn_check_prepare_trace "vlog.at:376"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl vlog/set file:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:376"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vlog.at:377: ovs-appctl --timeout 20 -t test-unixctl vlog/set nonexistent"
at_fn_check_prepare_trace "vlog.at:377"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl vlog/set nonexistent
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "no destination, level, or module \"nonexistent\"
ovs-appctl: test-unixctl: server returned an error
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vlog.at:377"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vlog.at:381: ovs-appctl --timeout 20 -t test-unixctl vlog/list | sed -n '1,2p
/test_unixctl /p; /daemon /p'"
at_fn_check_prepare_notrace 'an embedded newline' "vlog.at:381"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl vlog/list | sed -n '1,2p
/test_unixctl /p; /daemon /p'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "                 console    syslog    file
                 -------    ------    ------
daemon             OFF        ERR        DBG
test_unixctl       OFF       INFO        DBG
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:381"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/vlog.at:389: ovs-appctl --timeout 20 -t test-unixctl vlog/set pattern"
at_fn_check_prepare_trace "vlog.at:389"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl vlog/set pattern
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "missing destination
ovs-appctl: test-unixctl: server returned an error
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vlog.at:389"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vlog.at:393: ovs-appctl --timeout 20 -t test-unixctl vlog/set pattern:nonexistent"
at_fn_check_prepare_trace "vlog.at:393"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl vlog/set pattern:nonexistent
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "unknown destination \"nonexistent\"
ovs-appctl: test-unixctl: server returned an error
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vlog.at:393"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vlog.at:397: ovs-appctl --timeout 20 -t test-unixctl vlog/set pattern:file:'I<3OVS|%m'"
at_fn_check_prepare_notrace 'a shell pipeline' "vlog.at:397"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl vlog/set pattern:file:'I<3OVS|%m'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:397"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vlog.at:398: ovs-appctl --timeout 20 -t test-unixctl log patterntest"
at_fn_check_prepare_trace "vlog.at:398"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl log patterntest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:398"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vlog.at:399: grep -q 'I<3OVS' log"
at_fn_check_prepare_trace "vlog.at:399"
( $at_check_trace; grep -q 'I<3OVS' log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:399"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vlog.at:400: test -e \$OVS_RUNDIR/test-unixctl.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/test-unixctl.pid" "vlog.at:400"
( $at_check_trace; test -e $OVS_RUNDIR/test-unixctl.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:400"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/test-unixctl.pid)
   { set +x
$as_echo "$at_srcdir/vlog.at:400: ovs-appctl --timeout=10 -t test-unixctl exit"
at_fn_check_prepare_trace "vlog.at:400"
( $at_check_trace; ovs-appctl --timeout=10 -t test-unixctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:400"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }

   $as_echo "vlog.at:400: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vlog.at:400: wait failed" >&5

    $as_echo "vlog.at:400" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vlog.at:400"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2360
#AT_START_2361
at_fn_group_banner 2361 'vlog.at:455' \
  "vlog - vlog/set and vlog/list - Python2" "        " 117
at_xfail=no
(
  $as_echo "2361. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "vlog.at:455" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/vlog.at:455"
   on_exit 'kill `cat test-unixctl.py.pid`'


   { set +x
$as_echo "$at_srcdir/vlog.at:455: \$PYTHON \$srcdir/test-unixctl.py --log-file=\`pwd\`/log --pidfile --detach"
at_fn_check_prepare_notrace 'a `...` command substitution' "vlog.at:455"
( $at_check_trace; $PYTHON $srcdir/test-unixctl.py --log-file=`pwd`/log --pidfile --detach
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:455"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/vlog.at:455: ovs-appctl --timeout 20 -t test-unixctl.py vlog/list"
at_fn_check_prepare_trace "vlog.at:455"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py vlog/list
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "                 console    syslog    file
                 -------    ------    ------
daemon            info       info       info
fatal-signal      info       info       info
jsonrpc           info       info       info
poller            info       info       info
reconnect         info       info       info
socket_util       info       info       info
stream            info       info       info
test-unixctl      info       info       info
unixctl_server    info       info       info
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:455"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/vlog.at:455: ovs-appctl --timeout 20 -t test-unixctl.py vlog/set daemon:syslog:err"
at_fn_check_prepare_trace "vlog.at:455"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py vlog/set daemon:syslog:err
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:455"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:455: ovs-appctl --timeout 20 -t test-unixctl.py vlog/set file:dbg"
at_fn_check_prepare_trace "vlog.at:455"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py vlog/set file:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:455"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:455: ovs-appctl --timeout 20 -t test-unixctl.py vlog/set nonexistent"
at_fn_check_prepare_trace "vlog.at:455"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py vlog/set nonexistent
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "no destination, level, or module \"nonexistent\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:455"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:455: ovs-appctl --timeout 20 -t test-unixctl.py vlog/list"
at_fn_check_prepare_trace "vlog.at:455"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py vlog/list
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "                 console    syslog    file
                 -------    ------    ------
daemon            info        err        dbg
fatal-signal      info       info        dbg
jsonrpc           info       info        dbg
poller            info       info        dbg
reconnect         info       info        dbg
socket_util       info       info        dbg
stream            info       info        dbg
test-unixctl      info       info        dbg
unixctl_server    info       info        dbg
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:455"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/vlog.at:455: ovs-appctl --timeout 20 -t test-unixctl.py vlog/set pattern"
at_fn_check_prepare_trace "vlog.at:455"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py vlog/set pattern
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Please supply a valid pattern and destination
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:455"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:455: ovs-appctl --timeout 20 -t test-unixctl.py vlog/set pattern:nonexistent"
at_fn_check_prepare_trace "vlog.at:455"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py vlog/set pattern:nonexistent
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Destination nonexistent does not exist
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:455"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:455: ovs-appctl --timeout 20 -t test-unixctl.py vlog/set pattern:file:'I<3OVS|%m'"
at_fn_check_prepare_notrace 'a shell pipeline' "vlog.at:455"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py vlog/set pattern:file:'I<3OVS|%m'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:455"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:455: ovs-appctl --timeout 20 -t test-unixctl.py log patterntest"
at_fn_check_prepare_trace "vlog.at:455"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py log patterntest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:455"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:455: grep -q 'I<3OVS' log"
at_fn_check_prepare_trace "vlog.at:455"
( $at_check_trace; grep -q 'I<3OVS' log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:455"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2361
#AT_START_2362
at_fn_group_banner 2362 'vlog.at:456' \
  "vlog - vlog/set and vlog/list - Python3" "        " 117
at_xfail=no
(
  $as_echo "2362. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "vlog.at:456" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/vlog.at:456"
   on_exit 'kill `cat test-unixctl.py.pid`'


   { set +x
$as_echo "$at_srcdir/vlog.at:456: \$PYTHON3 \$srcdir/test-unixctl.py --log-file=\`pwd\`/log --pidfile --detach"
at_fn_check_prepare_notrace 'a `...` command substitution' "vlog.at:456"
( $at_check_trace; $PYTHON3 $srcdir/test-unixctl.py --log-file=`pwd`/log --pidfile --detach
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:456"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/vlog.at:456: ovs-appctl --timeout 20 -t test-unixctl.py vlog/list"
at_fn_check_prepare_trace "vlog.at:456"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py vlog/list
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "                 console    syslog    file
                 -------    ------    ------
daemon            info       info       info
fatal-signal      info       info       info
jsonrpc           info       info       info
poller            info       info       info
reconnect         info       info       info
socket_util       info       info       info
stream            info       info       info
test-unixctl      info       info       info
unixctl_server    info       info       info
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:456"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/vlog.at:456: ovs-appctl --timeout 20 -t test-unixctl.py vlog/set daemon:syslog:err"
at_fn_check_prepare_trace "vlog.at:456"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py vlog/set daemon:syslog:err
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:456"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:456: ovs-appctl --timeout 20 -t test-unixctl.py vlog/set file:dbg"
at_fn_check_prepare_trace "vlog.at:456"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py vlog/set file:dbg
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:456"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:456: ovs-appctl --timeout 20 -t test-unixctl.py vlog/set nonexistent"
at_fn_check_prepare_trace "vlog.at:456"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py vlog/set nonexistent
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "no destination, level, or module \"nonexistent\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:456"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:456: ovs-appctl --timeout 20 -t test-unixctl.py vlog/list"
at_fn_check_prepare_trace "vlog.at:456"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py vlog/list
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "                 console    syslog    file
                 -------    ------    ------
daemon            info        err        dbg
fatal-signal      info       info        dbg
jsonrpc           info       info        dbg
poller            info       info        dbg
reconnect         info       info        dbg
socket_util       info       info        dbg
stream            info       info        dbg
test-unixctl      info       info        dbg
unixctl_server    info       info        dbg
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:456"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/vlog.at:456: ovs-appctl --timeout 20 -t test-unixctl.py vlog/set pattern"
at_fn_check_prepare_trace "vlog.at:456"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py vlog/set pattern
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Please supply a valid pattern and destination
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:456"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:456: ovs-appctl --timeout 20 -t test-unixctl.py vlog/set pattern:nonexistent"
at_fn_check_prepare_trace "vlog.at:456"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py vlog/set pattern:nonexistent
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Destination nonexistent does not exist
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:456"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:456: ovs-appctl --timeout 20 -t test-unixctl.py vlog/set pattern:file:'I<3OVS|%m'"
at_fn_check_prepare_notrace 'a shell pipeline' "vlog.at:456"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py vlog/set pattern:file:'I<3OVS|%m'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:456"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:456: ovs-appctl --timeout 20 -t test-unixctl.py log patterntest"
at_fn_check_prepare_trace "vlog.at:456"
( $at_check_trace; ovs-appctl --timeout 20 -t test-unixctl.py log patterntest
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:456"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vlog.at:456: grep -q 'I<3OVS' log"
at_fn_check_prepare_trace "vlog.at:456"
( $at_check_trace; grep -q 'I<3OVS' log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:456"
$at_failed && at_fn_log_failure  \
"log"
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2362
#AT_START_2363
at_fn_group_banner 2363 'vlog.at:458' \
  "vlog - RFC5424 facility" "                        " 117
at_xfail=no
(
  $as_echo "2363. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

on_exit 'kill `cat ovsdb-server.pid`'

touch .conf.db.~lock~
{ set +x
$as_echo "$at_srcdir/vlog.at:463: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "vlog.at:463"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:463"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/vlog.at:465: ovsdb-server --detach --no-chdir --pidfile \\
          --remote=punix:\$OVS_RUNDIR/db.sock -vPATTERN:file:\"<%B>1 %A %m\" \\
          --log-file"
at_fn_check_prepare_notrace 'an embedded newline' "vlog.at:465"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile \
          --remote=punix:$OVS_RUNDIR/db.sock -vPATTERN:file:"<%B>1 %A %m" \
          --log-file
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:465"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vlog.at:468: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "vlog.at:468"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:468"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vlog.at:468: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "vlog.at:468"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:468"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vlog.at:468: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vlog.at:468: wait failed" >&5

    $as_echo "vlog.at:468" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vlog.at:468"
fi


# A default facility of LOG_LOCAL0 while writing to file.
{ set +x
$as_echo "$at_srcdir/vlog.at:471: head -1 ovsdb-server.log | awk '{print \$1}'"
at_fn_check_prepare_notrace 'a shell pipeline' "vlog.at:471"
( $at_check_trace; head -1 ovsdb-server.log | awk '{print $1}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<133>1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:471"
$at_failed && at_fn_log_failure
$at_traceon; }

rm ovsdb-server.log

{ set +x
$as_echo "$at_srcdir/vlog.at:475: ovsdb-server --detach --no-chdir --pidfile \\
          --remote=punix:\$OVS_RUNDIR/db.sock -vPATTERN:file:\"<%B>1 %A %m\" \\
          -vFACILITY:daemon --log-file"
at_fn_check_prepare_notrace 'an embedded newline' "vlog.at:475"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile \
          --remote=punix:$OVS_RUNDIR/db.sock -vPATTERN:file:"<%B>1 %A %m" \
          -vFACILITY:daemon --log-file
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:475"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/vlog.at:479: head -1 ovsdb-server.log | awk '{print \$1}'"
at_fn_check_prepare_notrace 'a shell pipeline' "vlog.at:479"
( $at_check_trace; head -1 ovsdb-server.log | awk '{print $1}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<29>1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:479"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/vlog.at:482: ovs-appctl -t ovsdb-server vlog/set FACILITY:invalid"
at_fn_check_prepare_trace "vlog.at:482"
( $at_check_trace; ovs-appctl -t ovsdb-server vlog/set FACILITY:invalid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "invalid facility
ovs-appctl: ovsdb-server: server returned an error
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vlog.at:482"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/vlog.at:487: ovs-appctl -t ovsdb-server vlog/set FACILITY:local7"
at_fn_check_prepare_trace "vlog.at:487"
( $at_check_trace; ovs-appctl -t ovsdb-server vlog/set FACILITY:local7
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:487"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vlog.at:488: ovs-appctl -t ovsdb-server vlog/set ANY:file:DBG"
at_fn_check_prepare_trace "vlog.at:488"
( $at_check_trace; ovs-appctl -t ovsdb-server vlog/set ANY:file:DBG
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:488"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vlog.at:489: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "vlog.at:489"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vlog.at:489: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "vlog.at:489"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vlog.at:489: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vlog.at:489: wait failed" >&5

    $as_echo "vlog.at:489" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vlog.at:489"
fi


{ set +x
$as_echo "$at_srcdir/vlog.at:491: tail -1 ovsdb-server.log | awk '{print \$1}'"
at_fn_check_prepare_notrace 'a shell pipeline' "vlog.at:491"
( $at_check_trace; tail -1 ovsdb-server.log | awk '{print $1}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<191>1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:491"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2363
#AT_START_2364
at_fn_group_banner 2364 'vlog.at:514' \
  "vlog - RFC5424 facility - Python2" "              " 117
at_xfail=no
(
  $as_echo "2364. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "vlog.at:514" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/vlog.at:514"
   on_exit 'kill `cat test-unixctl.py.pid`'

   { set +x
$as_echo "$at_srcdir/vlog.at:514: \$PYTHON \$srcdir/test-unixctl.py --log-file=\`pwd\`/log --pidfile \\
-vFACILITY:invalid --detach"
at_fn_check_prepare_notrace 'a `...` command substitution' "vlog.at:514"
( $at_check_trace; $PYTHON $srcdir/test-unixctl.py --log-file=`pwd`/log --pidfile \
-vFACILITY:invalid --detach
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "test-unixctl.py: processing \"FACILITY:invalid\": Facility invalid is invalid
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/vlog.at:514"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/vlog.at:514: \$PYTHON \$srcdir/test-unixctl.py --log-file=\`pwd\`/log --pidfile \\
-vFACILITY:daemon --detach"
at_fn_check_prepare_notrace 'a `...` command substitution' "vlog.at:514"
( $at_check_trace; $PYTHON $srcdir/test-unixctl.py --log-file=`pwd`/log --pidfile \
-vFACILITY:daemon --detach
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:514"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/vlog.at:514: ovs-appctl -t test-unixctl.py vlog/set FACILITY:invalid"
at_fn_check_prepare_trace "vlog.at:514"
( $at_check_trace; ovs-appctl -t test-unixctl.py vlog/set FACILITY:invalid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Facility invalid is invalid
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:514"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/vlog.at:514: ovs-appctl -t test-unixctl.py vlog/set FACILITY:local0"
at_fn_check_prepare_trace "vlog.at:514"
( $at_check_trace; ovs-appctl -t test-unixctl.py vlog/set FACILITY:local0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:514"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2364
#AT_START_2365
at_fn_group_banner 2365 'vlog.at:515' \
  "vlog - RFC5424 facility - Python3" "              " 117
at_xfail=no
(
  $as_echo "2365. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   $as_echo "vlog.at:515" >"$at_check_line_file"
(test $HAVE_PYTHON3 = no) \
  && at_fn_check_skip 77 "$at_srcdir/vlog.at:515"
   on_exit 'kill `cat test-unixctl.py.pid`'

   { set +x
$as_echo "$at_srcdir/vlog.at:515: \$PYTHON3 \$srcdir/test-unixctl.py --log-file=\`pwd\`/log --pidfile \\
-vFACILITY:invalid --detach"
at_fn_check_prepare_notrace 'a `...` command substitution' "vlog.at:515"
( $at_check_trace; $PYTHON3 $srcdir/test-unixctl.py --log-file=`pwd`/log --pidfile \
-vFACILITY:invalid --detach
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "test-unixctl.py: processing \"FACILITY:invalid\": Facility invalid is invalid
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/vlog.at:515"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/vlog.at:515: \$PYTHON3 \$srcdir/test-unixctl.py --log-file=\`pwd\`/log --pidfile \\
-vFACILITY:daemon --detach"
at_fn_check_prepare_notrace 'a `...` command substitution' "vlog.at:515"
( $at_check_trace; $PYTHON3 $srcdir/test-unixctl.py --log-file=`pwd`/log --pidfile \
-vFACILITY:daemon --detach
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:515"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/vlog.at:515: ovs-appctl -t test-unixctl.py vlog/set FACILITY:invalid"
at_fn_check_prepare_trace "vlog.at:515"
( $at_check_trace; ovs-appctl -t test-unixctl.py vlog/set FACILITY:invalid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Facility invalid is invalid
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:515"
$at_failed && at_fn_log_failure
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/vlog.at:515: ovs-appctl -t test-unixctl.py vlog/set FACILITY:local0"
at_fn_check_prepare_trace "vlog.at:515"
( $at_check_trace; ovs-appctl -t test-unixctl.py vlog/set FACILITY:local0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vlog.at:515"
$at_failed && at_fn_log_failure
$at_traceon; }

     set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2365
#AT_START_2366
at_fn_group_banner 2366 'vtep-ctl.at:135' \
  "add-ps a" "                                       " 118
at_xfail=no
(
  $as_echo "2366. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:137: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:137"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:137"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:137: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:137"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:137"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:137: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:137"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:137"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:138: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ps a
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:138"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ps a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:138"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:138: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:138"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:138"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:138: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:138"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:138"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:138: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:138: wait failed" >&5

    $as_echo "vtep-ctl.at:138" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:138"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:139: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ps
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:139"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ps

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:139"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:139: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:139"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:139"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:139: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:139"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:139"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:139: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:139: wait failed" >&5

    $as_echo "vtep-ctl.at:139" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:139"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:139: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ps
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:139"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ps

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:139"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:139: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:139"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:139"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:139: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:139"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:139"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:139: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:139: wait failed" >&5

    $as_echo "vtep-ctl.at:139" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:139"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/vtep-ctl.at:139: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists a
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:139"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:139"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:139: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:139"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:139"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:139: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:139"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:139"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:139: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:139: wait failed" >&5

    $as_echo "vtep-ctl.at:139" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:139"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:139: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:139"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vtep-ctl.at:139"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:139: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:139"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:139"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:139: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:139"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:139"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:139: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:139: wait failed" >&5

    $as_echo "vtep-ctl.at:139" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:139"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:140: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:140"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:140"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:140: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:140"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:140"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:140: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:140: wait failed" >&5

    $as_echo "vtep-ctl.at:140" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:140"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2366
#AT_START_2367
at_fn_group_banner 2367 'vtep-ctl.at:143' \
  "add-ps a, add-ps a" "                             " 118
at_xfail=no
(
  $as_echo "2367. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:145: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:145"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:145"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:145: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:145"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:145"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:145: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:145"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:145"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:146: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ps a
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:146"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ps a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:146"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:146: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:146"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:146"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:146: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:146"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:146"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:146: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:146: wait failed" >&5

    $as_echo "vtep-ctl.at:146" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:146"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:147: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ps a
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:147"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ps a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "vtep-ctl: cannot create physical switch a because it already exists
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/vtep-ctl.at:147"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:147: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:147"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:147"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:147: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:147"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:147"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:147: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:147: wait failed" >&5

    $as_echo "vtep-ctl.at:147" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:147"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:150: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:150"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:150"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:150: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:150"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:150"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:150: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:150: wait failed" >&5

    $as_echo "vtep-ctl.at:150" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:150"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2367
#AT_START_2368
at_fn_group_banner 2368 'vtep-ctl.at:153' \
  "add-ps a, add-ps b" "                             " 118
at_xfail=no
(
  $as_echo "2368. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:155: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:155"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:155"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:155: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:155"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:155"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:155: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:155"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:155"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:156: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ps a
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ps b
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:156"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ps a
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ps b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:156"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:156: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:156"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:156"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:156: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:156"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:156"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:156: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:156: wait failed" >&5

    $as_echo "vtep-ctl.at:156" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:156"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:158: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ps
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:158"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ps

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
b
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:158"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:158: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:158"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:158"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:158: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:158"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:158"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:158: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:158: wait failed" >&5

    $as_echo "vtep-ctl.at:158" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:158"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:158: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ps
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:158"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ps

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a\\nb
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:158"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:158: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:158"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:158"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:158: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:158"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:158"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:158: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:158: wait failed" >&5

    $as_echo "vtep-ctl.at:158" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:158"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/vtep-ctl.at:158: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists a
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:158"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:158"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:158: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:158"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:158"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:158: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:158"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:158"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:158: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:158: wait failed" >&5

    $as_echo "vtep-ctl.at:158" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:158"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:158: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists b
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:158"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:158"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:158: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:158"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:158"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:158: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:158"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:158"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:158: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:158: wait failed" >&5

    $as_echo "vtep-ctl.at:158" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:158"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:158: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:158"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vtep-ctl.at:158"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:158: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:158"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:158"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:158: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:158"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:158"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:158: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:158: wait failed" >&5

    $as_echo "vtep-ctl.at:158" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:158"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:159: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:159"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:159"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:159: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:159"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:159"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:159: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:159: wait failed" >&5

    $as_echo "vtep-ctl.at:159" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:159"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2368
#AT_START_2369
at_fn_group_banner 2369 'vtep-ctl.at:162' \
  "add-ps a, add-ps b, del-ps a" "                   " 118
at_xfail=no
(
  $as_echo "2369. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:164: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:164"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:164"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:164: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:164"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:164"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:164: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:164"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:164"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:165: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ps a
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ps b
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket del-ps a
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:165"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ps a
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ps b
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket del-ps a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:165"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:165: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:165"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:165"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:165: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:165"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:165"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:165: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:165: wait failed" >&5

    $as_echo "vtep-ctl.at:165" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:165"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:167: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ps
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:167"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ps

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "b
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:167"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:167: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:167"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:167"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:167: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:167"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:167"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:167: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:167: wait failed" >&5

    $as_echo "vtep-ctl.at:167" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:167"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:167: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ps
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:167"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ps

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "b
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:167"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:167: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:167"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:167"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:167: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:167"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:167"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:167: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:167: wait failed" >&5

    $as_echo "vtep-ctl.at:167" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:167"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/vtep-ctl.at:167: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists b
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:167"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:167"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:167: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:167"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:167"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:167: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:167"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:167"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:167: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:167: wait failed" >&5

    $as_echo "vtep-ctl.at:167" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:167"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:167: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:167"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vtep-ctl.at:167"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:167: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:167"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:167"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:167: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:167"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:167"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:167: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:167: wait failed" >&5

    $as_echo "vtep-ctl.at:167" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:167"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:168: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:168"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:168"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:168: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:168"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:168"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:168: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:168: wait failed" >&5

    $as_echo "vtep-ctl.at:168" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:168"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2369
#AT_START_2370
at_fn_group_banner 2370 'vtep-ctl.at:171' \
  "add-ps a, del-ps a, add-ps a" "                   " 118
at_xfail=no
(
  $as_echo "2370. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:173: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:173"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:173"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:173: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:173"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:173"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:173: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:173"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:173"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:174: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline  -- add-ps a -- del-ps a -- add-ps a"
at_fn_check_prepare_trace "vtep-ctl.at:174"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline  -- add-ps a -- del-ps a -- add-ps a
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "


" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:174"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:174: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:174"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:174"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:174: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:174"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:174"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:174: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:174: wait failed" >&5

    $as_echo "vtep-ctl.at:174" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:174"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:181: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ps
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:181"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ps

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:181"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:181: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:181"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:181"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:181: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:181"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:181"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:181: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:181: wait failed" >&5

    $as_echo "vtep-ctl.at:181" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:181"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:181: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ps
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:181"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ps

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:181"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:181: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:181"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:181"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:181: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:181"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:181"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:181: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:181: wait failed" >&5

    $as_echo "vtep-ctl.at:181" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:181"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/vtep-ctl.at:181: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists a
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:181"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:181"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:181: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:181"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:181"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:181: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:181"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:181"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:181: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:181: wait failed" >&5

    $as_echo "vtep-ctl.at:181" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:181"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:181: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:181"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vtep-ctl.at:181"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:181: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:181"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:181"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:181: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:181"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:181"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:181: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:181: wait failed" >&5

    $as_echo "vtep-ctl.at:181" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:181"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:182: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:182"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:182"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:182: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:182"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:182"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:182: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:182: wait failed" >&5

    $as_echo "vtep-ctl.at:182" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:182"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2370
#AT_START_2371
at_fn_group_banner 2371 'vtep-ctl.at:185' \
  "add-ps a, add-port a a1, add-port a a2" "         " 118
at_xfail=no
(
  $as_echo "2371. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:187: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:187"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:187"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:187: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:187"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:187"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:187: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:187"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:187"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:188: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ps a
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --if-exists del-ps b
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-port a a1
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-port a a2
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:188"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ps a
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --if-exists del-ps b
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-port a a1
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-port a a2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:188"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:188: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:188"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:188"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:188: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:188"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:188"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:188: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:188: wait failed" >&5

    $as_echo "vtep-ctl.at:188" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:188"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:193: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ps
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:193"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ps

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:193"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:193: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:193"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:193"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:193: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:193"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:193"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:193: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:193: wait failed" >&5

    $as_echo "vtep-ctl.at:193" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:193"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:193: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ps
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:193"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ps

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:193"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:193: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:193"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:193"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:193: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:193"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:193"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:193: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:193: wait failed" >&5

    $as_echo "vtep-ctl.at:193" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:193"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/vtep-ctl.at:193: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists a
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:193"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:193"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:193: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:193"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:193"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:193: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:193"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:193"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:193: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:193: wait failed" >&5

    $as_echo "vtep-ctl.at:193" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:193"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:193: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:193"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vtep-ctl.at:193"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:193: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:193"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:193"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:193: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:193"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:193"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:193: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:193: wait failed" >&5

    $as_echo "vtep-ctl.at:193" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:193"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:194: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ports a
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:194"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ports a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a1
a2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:194"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:194: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:194"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:194"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:194: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:194"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:194"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:194: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:194: wait failed" >&5

    $as_echo "vtep-ctl.at:194" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:194"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:194: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ports a
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:194"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ports a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a1\\na2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:194"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:194: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:194"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:194"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:194: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:194"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:194"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:194: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:194: wait failed" >&5

    $as_echo "vtep-ctl.at:194" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:194"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:195: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:195"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:195"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:195: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:195"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:195"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:195: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:195: wait failed" >&5

    $as_echo "vtep-ctl.at:195" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:195"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2371
#AT_START_2372
at_fn_group_banner 2372 'vtep-ctl.at:198' \
  "add-ps a, add-port a a1, add-port a a1" "         " 118
at_xfail=no
(
  $as_echo "2372. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:200: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:200"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:200"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:200: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:200"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:200"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:200: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:200"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:200"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:201: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ps a
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-port a a1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:201"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ps a
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-port a a1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:201"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:201: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:201"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:201"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:201: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:201"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:201"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:201: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:201: wait failed" >&5

    $as_echo "vtep-ctl.at:201" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:201"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:204: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-port a a1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:204"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-port a a1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "vtep-ctl: cannot create a port named a1 on a because a port with that name already exists
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/vtep-ctl.at:204"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:204: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:204"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:204"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:204: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:204"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:204"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:204: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:204: wait failed" >&5

    $as_echo "vtep-ctl.at:204" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:204"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:207: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:207"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:207"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:207: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:207"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:207"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:207: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:207: wait failed" >&5

    $as_echo "vtep-ctl.at:207" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:207"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2372
#AT_START_2373
at_fn_group_banner 2373 'vtep-ctl.at:210' \
  "add-ps a b, add-port a a1, add-port b b1, del-ps a" "" 118
at_xfail=no
(
  $as_echo "2373. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:212: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:212"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:212"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:212: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:212"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:212"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:212: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:212"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:212"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:213: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline  -- add-ps a -- add-ps b -- add-port a a1 -- add-port b b1 -- --if-exists del-port b b2 -- del-ps a"
at_fn_check_prepare_trace "vtep-ctl.at:213"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline  -- add-ps a -- add-ps b -- add-port a a1 -- add-port b b1 -- --if-exists del-port b b2 -- del-ps a
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "





" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:213"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:213: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:213"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:213"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:213: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:213"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:213"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:213: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:213: wait failed" >&5

    $as_echo "vtep-ctl.at:213" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:213"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:226: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ps
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:226"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ps

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "b
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:226"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:226: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:226"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:226"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:226: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:226"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:226"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:226: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:226: wait failed" >&5

    $as_echo "vtep-ctl.at:226" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:226"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:226: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ps
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:226"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ps

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "b
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:226"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:226: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:226"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:226"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:226: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:226"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:226"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:226: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:226: wait failed" >&5

    $as_echo "vtep-ctl.at:226" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:226"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/vtep-ctl.at:226: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists b
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:226"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:226"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:226: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:226"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:226"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:226: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:226"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:226"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:226: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:226: wait failed" >&5

    $as_echo "vtep-ctl.at:226" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:226"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:226: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:226"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vtep-ctl.at:226"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:226: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:226"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:226"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:226: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:226"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:226"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:226: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:226: wait failed" >&5

    $as_echo "vtep-ctl.at:226" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:226"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:227: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ports b
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:227"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ports b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "b1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:227"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:227: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:227"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:227"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:227: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:227"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:227"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:227: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:227: wait failed" >&5

    $as_echo "vtep-ctl.at:227" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:227"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:227: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ports b
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:227"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ports b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "b1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:227"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:227: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:227"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:227"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:227: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:227"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:227"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:227: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:227: wait failed" >&5

    $as_echo "vtep-ctl.at:227" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:227"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:228: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:228"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:228"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:228: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:228"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:228"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:228: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:228: wait failed" >&5

    $as_echo "vtep-ctl.at:228" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:228"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2373
#AT_START_2374
at_fn_group_banner 2374 'vtep-ctl.at:231' \
  "add-ps a b, add-port a a1, add-port b b1, del-port a a1" "" 118
at_xfail=no
(
  $as_echo "2374. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:233: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:233"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:233"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:233: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:233"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:233"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:233: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:233"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:233"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:234: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ps a
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ps b
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-port a a1
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --may-exist add-port b b1
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket del-port a a1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:234"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ps a
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ps b
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-port a a1
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --may-exist add-port b b1
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket del-port a a1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:234"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:234: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:234"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:234"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:234: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:234"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:234"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:234: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:234: wait failed" >&5

    $as_echo "vtep-ctl.at:234" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:234"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:240: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --may-exist add-port b b1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:240"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --may-exist add-port b b1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:240"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:240: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:240"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:240"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:240: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:240"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:240"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:240: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:240: wait failed" >&5

    $as_echo "vtep-ctl.at:240" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:240"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:242: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ps
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:242"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ps

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
b
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:242"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:242: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:242"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:242"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:242: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:242"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:242"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:242: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:242: wait failed" >&5

    $as_echo "vtep-ctl.at:242" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:242"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:242: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ps
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:242"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ps

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a\\nb
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:242"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:242: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:242"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:242"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:242: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:242"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:242"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:242: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:242: wait failed" >&5

    $as_echo "vtep-ctl.at:242" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:242"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/vtep-ctl.at:242: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists a
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:242"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:242"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:242: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:242"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:242"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:242: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:242"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:242"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:242: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:242: wait failed" >&5

    $as_echo "vtep-ctl.at:242" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:242"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:242: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists b
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:242"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:242"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:242: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:242"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:242"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:242: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:242"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:242"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:242: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:242: wait failed" >&5

    $as_echo "vtep-ctl.at:242" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:242"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:242: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:242"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vtep-ctl.at:242"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:242: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:242"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:242"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:242: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:242"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:242"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:242: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:242: wait failed" >&5

    $as_echo "vtep-ctl.at:242" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:242"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:243: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ports a
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:243"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ports a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:243"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:243: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:243"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:243"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:243: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:243"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:243"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:243: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:243: wait failed" >&5

    $as_echo "vtep-ctl.at:243" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:243"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:243: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ports a
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:243"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ports a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:243"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:243: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:243"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:243"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:243: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:243"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:243"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:243: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:243: wait failed" >&5

    $as_echo "vtep-ctl.at:243" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:243"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:244: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ports b
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:244"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ports b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "b1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:244"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:244: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:244"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:244"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:244: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:244"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:244"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:244: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:244: wait failed" >&5

    $as_echo "vtep-ctl.at:244" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:244"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:244: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ports b
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:244"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ports b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "b1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:244"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:244: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:244"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:244"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:244: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:244"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:244"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:244: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:244: wait failed" >&5

    $as_echo "vtep-ctl.at:244" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:244"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:245: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:245"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:245"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:245: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:245"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:245"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:245: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:245: wait failed" >&5

    $as_echo "vtep-ctl.at:245" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:245"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2374
#AT_START_2375
at_fn_group_banner 2375 'vtep-ctl.at:248' \
  "add-ps a b, add-port a p1, add-port b p1, del-port a p1" "" 118
at_xfail=no
(
  $as_echo "2375. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:250: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:250"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:250"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:250: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:250"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:250"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:250: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:250"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:250"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:251: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ps a
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ps b
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-port a p1
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-port b p1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:251"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ps a
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ps b
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-port a p1
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-port b p1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:251"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:251: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:251"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:251"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:251: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:251"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:251"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:251: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:251: wait failed" >&5

    $as_echo "vtep-ctl.at:251" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:251"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:256: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ps
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:256"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ps

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
b
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:256"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:256: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:256"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:256: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:256"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:256: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:256: wait failed" >&5

    $as_echo "vtep-ctl.at:256" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:256"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:256: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ps
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:256"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ps

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a\\nb
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:256"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:256: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:256"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:256: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:256"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:256: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:256: wait failed" >&5

    $as_echo "vtep-ctl.at:256" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:256"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/vtep-ctl.at:256: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists a
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:256"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:256"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:256: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:256"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:256: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:256"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:256: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:256: wait failed" >&5

    $as_echo "vtep-ctl.at:256" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:256"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:256: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists b
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:256"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:256"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:256: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:256"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:256: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:256"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:256: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:256: wait failed" >&5

    $as_echo "vtep-ctl.at:256" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:256"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:256: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:256"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vtep-ctl.at:256"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:256: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:256"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:256: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:256"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:256"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:256: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:256: wait failed" >&5

    $as_echo "vtep-ctl.at:256" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:256"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:257: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ports a
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:257"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ports a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "p1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:257"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:257: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:257"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:257"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:257: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:257"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:257"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:257: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:257: wait failed" >&5

    $as_echo "vtep-ctl.at:257" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:257"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:257: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ports a
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:257"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ports a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "p1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:257"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:257: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:257"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:257"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:257: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:257"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:257"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:257: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:257: wait failed" >&5

    $as_echo "vtep-ctl.at:257" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:257"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:258: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ports b
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:258"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ports b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "p1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:258"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:258: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:258"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:258"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:258: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:258"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:258"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:258: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:258: wait failed" >&5

    $as_echo "vtep-ctl.at:258" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:258"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:258: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ports b
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:258"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ports b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "p1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:258"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:258: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:258"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:258"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:258: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:258"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:258"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:258: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:258: wait failed" >&5

    $as_echo "vtep-ctl.at:258" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:258"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:259: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket del-port a p1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:259"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket del-port a p1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:259"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:259: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:259"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:259"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:259: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:259"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:259"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:259: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:259: wait failed" >&5

    $as_echo "vtep-ctl.at:259" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:259"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:261: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ps
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:261"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ps

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
b
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:261"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:261: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:261"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:261"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:261: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:261"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:261"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:261: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:261: wait failed" >&5

    $as_echo "vtep-ctl.at:261" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:261"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:261: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ps
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:261"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ps

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a\\nb
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:261"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:261: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:261"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:261"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:261: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:261"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:261"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:261: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:261: wait failed" >&5

    $as_echo "vtep-ctl.at:261" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:261"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/vtep-ctl.at:261: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists a
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:261"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:261"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:261: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:261"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:261"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:261: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:261"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:261"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:261: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:261: wait failed" >&5

    $as_echo "vtep-ctl.at:261" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:261"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:261: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists b
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:261"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:261"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:261: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:261"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:261"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:261: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:261"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:261"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:261: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:261: wait failed" >&5

    $as_echo "vtep-ctl.at:261" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:261"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:261: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:261"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vtep-ctl.at:261"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:261: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:261"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:261"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:261: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:261"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:261"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:261: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:261: wait failed" >&5

    $as_echo "vtep-ctl.at:261" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:261"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:262: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ports a
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:262"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ports a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:262"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:262: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:262"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:262"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:262: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:262"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:262"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:262: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:262: wait failed" >&5

    $as_echo "vtep-ctl.at:262" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:262"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:262: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ports a
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:262"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ports a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:262"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:262: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:262"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:262"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:262: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:262"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:262"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:262: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:262: wait failed" >&5

    $as_echo "vtep-ctl.at:262" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:262"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:263: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ports b
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:263"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ports b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "p1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:263"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:263: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:263"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:263"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:263: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:263"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:263"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:263: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:263: wait failed" >&5

    $as_echo "vtep-ctl.at:263" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:263"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:263: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ports b
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:263"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ports b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "p1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:263"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:263: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:263"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:263"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:263: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:263"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:263"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:263: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:263: wait failed" >&5

    $as_echo "vtep-ctl.at:263" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:263"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:264: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:264"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:264"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:264: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:264"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:264"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:264: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:264: wait failed" >&5

    $as_echo "vtep-ctl.at:264" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:264"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2375
#AT_START_2376
at_fn_group_banner 2376 'vtep-ctl.at:271' \
  "add-ls a" "                                       " 119
at_xfail=no
(
  $as_echo "2376. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:273: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:273"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:273"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:273: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:273"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:273"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:273: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:273"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:273"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:274: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls a
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:274"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:274"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:274: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:274"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:274"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:274: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:274"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:274"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:274: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:274: wait failed" >&5

    $as_echo "vtep-ctl.at:274" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:274"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:275: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:275"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:275"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:275: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:275"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:275"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:275: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:275"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:275"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:275: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:275: wait failed" >&5

    $as_echo "vtep-ctl.at:275" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:275"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:275: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:275"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:275"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:275: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:275"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:275"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:275: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:275"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:275"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:275: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:275: wait failed" >&5

    $as_echo "vtep-ctl.at:275" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:275"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/vtep-ctl.at:275: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists a
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:275"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:275"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:275: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:275"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:275"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:275: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:275"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:275"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:275: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:275: wait failed" >&5

    $as_echo "vtep-ctl.at:275" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:275"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:275: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:275"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vtep-ctl.at:275"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:275: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:275"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:275"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:275: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:275"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:275"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:275: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:275: wait failed" >&5

    $as_echo "vtep-ctl.at:275" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:275"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:276: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:276"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:276"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:276: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:276"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:276"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:276: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:276: wait failed" >&5

    $as_echo "vtep-ctl.at:276" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:276"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2376
#AT_START_2377
at_fn_group_banner 2377 'vtep-ctl.at:279' \
  "add-ls a, add-ls a" "                             " 119
at_xfail=no
(
  $as_echo "2377. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:281: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:281"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:281"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:281: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:281"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:281"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:281: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:281"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:281"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:282: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls a
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:282"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:282"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:282: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:282"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:282"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:282: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:282"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:282"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:282: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:282: wait failed" >&5

    $as_echo "vtep-ctl.at:282" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:282"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:283: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls a
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:283"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "vtep-ctl: cannot create logical switch a because it already exists
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/vtep-ctl.at:283"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:283: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:283"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:283"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:283: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:283"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:283"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:283: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:283: wait failed" >&5

    $as_echo "vtep-ctl.at:283" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:283"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:286: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:286"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:286"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:286: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:286"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:286"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:286: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:286: wait failed" >&5

    $as_echo "vtep-ctl.at:286" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:286"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2377
#AT_START_2378
at_fn_group_banner 2378 'vtep-ctl.at:289' \
  "add-ls a, add-ls b" "                             " 119
at_xfail=no
(
  $as_echo "2378. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:291: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:291"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:291"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:291: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:291"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:291"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:291: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:291"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:291"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:292: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls a
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls b
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:292"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls a
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:292"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:292: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:292"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:292"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:292: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:292"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:292"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:292: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:292: wait failed" >&5

    $as_echo "vtep-ctl.at:292" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:292"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:294: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:294"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
b
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:294"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:294: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:294"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:294"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:294: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:294"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:294"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:294: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:294: wait failed" >&5

    $as_echo "vtep-ctl.at:294" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:294"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:294: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:294"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a\\nb
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:294"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:294: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:294"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:294"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:294: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:294"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:294"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:294: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:294: wait failed" >&5

    $as_echo "vtep-ctl.at:294" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:294"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/vtep-ctl.at:294: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists a
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:294"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:294"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:294: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:294"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:294"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:294: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:294"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:294"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:294: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:294: wait failed" >&5

    $as_echo "vtep-ctl.at:294" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:294"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:294: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists b
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:294"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:294"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:294: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:294"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:294"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:294: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:294"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:294"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:294: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:294: wait failed" >&5

    $as_echo "vtep-ctl.at:294" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:294"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:294: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:294"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vtep-ctl.at:294"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:294: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:294"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:294"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:294: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:294"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:294"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:294: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:294: wait failed" >&5

    $as_echo "vtep-ctl.at:294" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:294"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:295: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:295"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:295"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:295: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:295"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:295"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:295: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:295: wait failed" >&5

    $as_echo "vtep-ctl.at:295" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:295"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2378
#AT_START_2379
at_fn_group_banner 2379 'vtep-ctl.at:298' \
  "add-ls a, add-ls b, del-ls a" "                   " 119
at_xfail=no
(
  $as_echo "2379. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:300: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:300"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:300"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:300: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:300"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:300"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:300: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:300"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:300"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:301: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls a
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls b
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket del-ls a
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:301"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls a
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls b
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket del-ls a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:301"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:301: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:301"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:301"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:301: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:301"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:301"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:301: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:301: wait failed" >&5

    $as_echo "vtep-ctl.at:301" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:301"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:303: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:303"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "b
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:303"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:303: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:303"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:303"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:303: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:303"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:303"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:303: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:303: wait failed" >&5

    $as_echo "vtep-ctl.at:303" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:303"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:303: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:303"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "b
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:303"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:303: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:303"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:303"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:303: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:303"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:303"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:303: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:303: wait failed" >&5

    $as_echo "vtep-ctl.at:303" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:303"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/vtep-ctl.at:303: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists b
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:303"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists b

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:303"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:303: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:303"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:303"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:303: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:303"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:303"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:303: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:303: wait failed" >&5

    $as_echo "vtep-ctl.at:303" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:303"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:303: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:303"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vtep-ctl.at:303"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:303: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:303"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:303"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:303: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:303"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:303"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:303: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:303: wait failed" >&5

    $as_echo "vtep-ctl.at:303" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:303"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:304: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:304"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:304"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:304: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:304"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:304"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:304: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:304: wait failed" >&5

    $as_echo "vtep-ctl.at:304" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:304"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2379
#AT_START_2380
at_fn_group_banner 2380 'vtep-ctl.at:307' \
  "add-ls a, del-ls a, add-ls a" "                   " 119
at_xfail=no
(
  $as_echo "2380. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:309: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:309"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:309"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:309: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:309"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:309"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:309: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:309"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:309"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:310: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline  -- add-ls a -- del-ls a -- add-ls a"
at_fn_check_prepare_trace "vtep-ctl.at:310"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline  -- add-ls a -- del-ls a -- add-ls a
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "


" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:310"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:310: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:310"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:310"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:310: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:310"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:310"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:310: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:310: wait failed" >&5

    $as_echo "vtep-ctl.at:310" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:310"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:317: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:317"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:317"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:317: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:317"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:317"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:317: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:317"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:317"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:317: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:317: wait failed" >&5

    $as_echo "vtep-ctl.at:317" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:317"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:317: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:317"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "a
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:317"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:317: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:317"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:317"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:317: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:317"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:317"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:317: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:317: wait failed" >&5

    $as_echo "vtep-ctl.at:317" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:317"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/vtep-ctl.at:317: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists a
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:317"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:317"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:317: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:317"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:317"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:317: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:317"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:317"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:317: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:317: wait failed" >&5

    $as_echo "vtep-ctl.at:317" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:317"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:317: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:317"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vtep-ctl.at:317"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:317: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:317"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:317"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:317: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:317"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:317"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:317: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:317: wait failed" >&5

    $as_echo "vtep-ctl.at:317" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:317"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:318: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:318"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:318: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:318"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:318"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:318: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:318: wait failed" >&5

    $as_echo "vtep-ctl.at:318" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:318"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2380
#AT_START_2381
at_fn_group_banner 2381 'vtep-ctl.at:321' \
  "add-ls a, get-replication-mode a" "               " 119
at_xfail=no
(
  $as_echo "2381. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:323: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:323"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:323"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:323: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:323"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:323"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:323: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:323"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:323"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:324: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls a
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket get-replication-mode a
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:324"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls a
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket get-replication-mode a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "(null)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:324"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:324: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:324"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:324"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:324: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:324"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:324"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:324: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:324: wait failed" >&5

    $as_echo "vtep-ctl.at:324" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:324"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:329: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:329"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:329"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:329: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:329"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:329"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:329: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:329: wait failed" >&5

    $as_echo "vtep-ctl.at:329" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:329"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2381
#AT_START_2382
at_fn_group_banner 2382 'vtep-ctl.at:332' \
  "add-ls a, set-replication-mode a source_node" "   " 119
at_xfail=no
(
  $as_echo "2382. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:334: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:334"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:334"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:334: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:334"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:334"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:334: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:334"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:334"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:335: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls a
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket set-replication-mode a source_node
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket get-replication-mode a
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:335"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls a
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket set-replication-mode a source_node
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket get-replication-mode a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "source_node
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:335"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:335: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:335"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:335"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:335: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:335"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:335"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:335: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:335: wait failed" >&5

    $as_echo "vtep-ctl.at:335" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:335"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:340: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:340"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:340"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:340: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:340"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:340"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:340: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:340: wait failed" >&5

    $as_echo "vtep-ctl.at:340" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:340"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2382
#AT_START_2383
at_fn_group_banner 2383 'vtep-ctl.at:343' \
  "add-ls a, set-replication-mode a service_node" "  " 119
at_xfail=no
(
  $as_echo "2383. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:345: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:345"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:345"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:345: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:345"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:345"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:345: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:345"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:345"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:346: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls a
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket set-replication-mode a service_node
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket get-replication-mode a
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:346"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls a
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket set-replication-mode a service_node
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket get-replication-mode a

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "service_node
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:346"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:346: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:346"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:346"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:346: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:346"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:346"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:346: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:346: wait failed" >&5

    $as_echo "vtep-ctl.at:346" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:346"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:351: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:351"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:351"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:351: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:351"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:351"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:351: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:351: wait failed" >&5

    $as_echo "vtep-ctl.at:351" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:351"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2383
#AT_START_2384
at_fn_group_banner 2384 'vtep-ctl.at:357' \
  "bind-ls ps1 pp1 300 ls1" "                        " 120
at_xfail=no
(
  $as_echo "2384. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:359: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:359"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:359"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:359: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:359"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:359"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:359: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:359"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:359"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:360: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ps ps1
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-port ps1 pp1
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:360"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ps ps1
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-port ps1 pp1
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:360"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:360: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:360"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:360"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:360: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:360"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:360"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:360: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:360: wait failed" >&5

    $as_echo "vtep-ctl.at:360" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:360"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:364: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ps
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:364"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ps

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ps1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:364"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:364: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:364"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:364: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:364"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:364: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:364: wait failed" >&5

    $as_echo "vtep-ctl.at:364" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:364"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:364: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ps
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:364"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ps

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ps1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:364"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:364: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:364"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:364: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:364"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:364: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:364: wait failed" >&5

    $as_echo "vtep-ctl.at:364" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:364"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/vtep-ctl.at:364: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists ps1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:364"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists ps1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:364"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:364: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:364"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:364: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:364"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:364: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:364: wait failed" >&5

    $as_echo "vtep-ctl.at:364" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:364"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:364: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:364"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vtep-ctl.at:364"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:364: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:364"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:364: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:364"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:364"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:364: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:364: wait failed" >&5

    $as_echo "vtep-ctl.at:364" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:364"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:365: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ports ps1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:365"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ports ps1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "pp1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:365"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:365: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:365"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:365"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:365: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:365"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:365"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:365: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:365: wait failed" >&5

    $as_echo "vtep-ctl.at:365" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:365"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:365: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ports ps1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:365"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ports ps1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "pp1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:365"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:365: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:365"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:365"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:365: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:365"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:365"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:365: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:365: wait failed" >&5

    $as_echo "vtep-ctl.at:365" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:365"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:366: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:366"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ls1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:366"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:366: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:366"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:366"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:366: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:366"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:366"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:366: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:366: wait failed" >&5

    $as_echo "vtep-ctl.at:366" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:366"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:366: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:366"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ls1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:366"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:366: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:366"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:366"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:366: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:366"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:366"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:366: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:366: wait failed" >&5

    $as_echo "vtep-ctl.at:366" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:366"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/vtep-ctl.at:366: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:366"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:366"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:366: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:366"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:366"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:366: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:366"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:366"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:366: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:366: wait failed" >&5

    $as_echo "vtep-ctl.at:366" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:366"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:366: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:366"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vtep-ctl.at:366"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:366: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:366"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:366"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:366: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:366"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:366"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:366: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:366: wait failed" >&5

    $as_echo "vtep-ctl.at:366" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:366"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:367: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket bind-ls ps1 pp1 300 ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:367"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket bind-ls ps1 pp1 300 ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:367"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:367: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:367"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:367"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:367: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:367"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:367"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:367: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:367: wait failed" >&5

    $as_echo "vtep-ctl.at:367" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:367"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:369: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-bindings ps1 pp1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:369"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-bindings ps1 pp1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0300 ls1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:369"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:369: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:369"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:369"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:369: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:369"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:369"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:369: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:369: wait failed" >&5

    $as_echo "vtep-ctl.at:369" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:369"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:372: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:372"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:372"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:372: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:372"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:372"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:372: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:372: wait failed" >&5

    $as_echo "vtep-ctl.at:372" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:372"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2384
#AT_START_2385
at_fn_group_banner 2385 'vtep-ctl.at:375' \
  "bind-ls ps1 pp1 300 ls1, bind-ls ps1 pp1 400 ls2" "" 120
at_xfail=no
(
  $as_echo "2385. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:377: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:377"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:377"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:377: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:377"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:377"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:377: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:377"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:377"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:378: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ps ps1
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-port ps1 pp1
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls1
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls2
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:378"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ps ps1
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-port ps1 pp1
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls1
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:378"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:378: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:378"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:378"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:378: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:378"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:378"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:378: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:378: wait failed" >&5

    $as_echo "vtep-ctl.at:378" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:378"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:383: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ps
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:383"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ps

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ps1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:383"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:383: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:383"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:383"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:383: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:383"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:383"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:383: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:383: wait failed" >&5

    $as_echo "vtep-ctl.at:383" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:383"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:383: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ps
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:383"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ps

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ps1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:383"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:383: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:383"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:383"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:383: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:383"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:383"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:383: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:383: wait failed" >&5

    $as_echo "vtep-ctl.at:383" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:383"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/vtep-ctl.at:383: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists ps1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:383"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists ps1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:383"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:383: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:383"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:383"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:383: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:383"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:383"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:383: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:383: wait failed" >&5

    $as_echo "vtep-ctl.at:383" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:383"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:383: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:383"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vtep-ctl.at:383"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:383: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:383"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:383"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:383: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:383"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:383"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:383: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:383: wait failed" >&5

    $as_echo "vtep-ctl.at:383" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:383"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:384: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ports ps1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:384"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ports ps1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "pp1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:384"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:384: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:384"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:384"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:384: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:384"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:384"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:384: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:384: wait failed" >&5

    $as_echo "vtep-ctl.at:384" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:384"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:384: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ports ps1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:384"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ports ps1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "pp1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:384"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:384: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:384"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:384"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:384: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:384"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:384"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:384: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:384: wait failed" >&5

    $as_echo "vtep-ctl.at:384" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:384"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:385: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:385"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ls1
ls2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:385"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:385: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:385"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:385"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:385: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:385"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:385"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:385: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:385: wait failed" >&5

    $as_echo "vtep-ctl.at:385" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:385"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:385: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:385"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ls1\\nls2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:385"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:385: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:385"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:385"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:385: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:385"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:385"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:385: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:385: wait failed" >&5

    $as_echo "vtep-ctl.at:385" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:385"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/vtep-ctl.at:385: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:385"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:385"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:385: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:385"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:385"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:385: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:385"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:385"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:385: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:385: wait failed" >&5

    $as_echo "vtep-ctl.at:385" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:385"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:385: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls2
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:385"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:385"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:385: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:385"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:385"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:385: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:385"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:385"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:385: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:385: wait failed" >&5

    $as_echo "vtep-ctl.at:385" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:385"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:385: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:385"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vtep-ctl.at:385"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:385: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:385"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:385"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:385: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:385"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:385"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:385: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:385: wait failed" >&5

    $as_echo "vtep-ctl.at:385" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:385"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:386: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket bind-ls ps1 pp1 300 ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:386"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket bind-ls ps1 pp1 300 ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:386"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:386: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:386"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:386"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:386: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:386"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:386"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:386: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:386: wait failed" >&5

    $as_echo "vtep-ctl.at:386" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:386"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:388: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket bind-ls ps1 pp1 400 ls2
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:388"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket bind-ls ps1 pp1 400 ls2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:388"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:388: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:388"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:388"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:388: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:388"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:388"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:388: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:388: wait failed" >&5

    $as_echo "vtep-ctl.at:388" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:388"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:390: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-bindings ps1 pp1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:390"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-bindings ps1 pp1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0300 ls1
0400 ls2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:390"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:390: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:390"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:390"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:390: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:390"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:390"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:390: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:390: wait failed" >&5

    $as_echo "vtep-ctl.at:390" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:390"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:394: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:394"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:394"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:394: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:394"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:394"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:394: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:394: wait failed" >&5

    $as_echo "vtep-ctl.at:394" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:394"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2385
#AT_START_2386
at_fn_group_banner 2386 'vtep-ctl.at:397' \
  "bind-ls ps1 pp1 300, bind-ls ps2 pp2 300 ls2" "   " 120
at_xfail=no
(
  $as_echo "2386. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:399: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:399"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:399"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:399: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:399"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:399"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:399: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:399"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:399"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:400: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ps ps1
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ps ps2
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-port ps1 pp1
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-port ps2 pp2
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls1
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls2
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:400"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ps ps1
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ps ps2
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-port ps1 pp1
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-port ps2 pp2
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls1
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:400"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:400: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:400"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:400"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:400: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:400"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:400"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:400: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:400: wait failed" >&5

    $as_echo "vtep-ctl.at:400" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:400"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:407: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ps
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:407"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ps

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ps1
ps2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:407"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:407: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:407"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:407: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:407"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:407: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:407: wait failed" >&5

    $as_echo "vtep-ctl.at:407" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:407"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:407: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ps
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:407"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ps

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ps1\\nps2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:407"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:407: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:407"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:407: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:407"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:407: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:407: wait failed" >&5

    $as_echo "vtep-ctl.at:407" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:407"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/vtep-ctl.at:407: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists ps1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:407"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists ps1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:407"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:407: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:407"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:407: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:407"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:407: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:407: wait failed" >&5

    $as_echo "vtep-ctl.at:407" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:407"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:407: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists ps2
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:407"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists ps2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:407"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:407: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:407"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:407: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:407"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:407: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:407: wait failed" >&5

    $as_echo "vtep-ctl.at:407" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:407"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:407: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:407"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ps-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vtep-ctl.at:407"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:407: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:407"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:407: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:407"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:407"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:407: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:407: wait failed" >&5

    $as_echo "vtep-ctl.at:407" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:407"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:408: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ports ps1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:408"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ports ps1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "pp1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:408"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:408: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:408"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:408"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:408: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:408"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:408"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:408: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:408: wait failed" >&5

    $as_echo "vtep-ctl.at:408" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:408"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:408: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ports ps1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:408"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ports ps1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "pp1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:408"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:408: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:408"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:408"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:408: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:408"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:408"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:408: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:408: wait failed" >&5

    $as_echo "vtep-ctl.at:408" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:408"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:409: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ports ps2
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:409"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ports ps2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "pp2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:409"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:409: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:409"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:409"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:409: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:409"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:409"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:409: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:409: wait failed" >&5

    $as_echo "vtep-ctl.at:409" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:409"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:409: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ports ps2
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:409"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ports ps2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "pp2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:409"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:409: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:409"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:409"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:409: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:409"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:409"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:409: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:409: wait failed" >&5

    $as_echo "vtep-ctl.at:409" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:409"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:410: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:410"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ls1
ls2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:410"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:410: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:410"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:410"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:410: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:410"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:410"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:410: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:410: wait failed" >&5

    $as_echo "vtep-ctl.at:410" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:410"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:410: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:410"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ls1\\nls2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:410"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:410: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:410"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:410"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:410: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:410"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:410"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:410: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:410: wait failed" >&5

    $as_echo "vtep-ctl.at:410" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:410"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/vtep-ctl.at:410: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:410"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:410"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:410: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:410"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:410"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:410: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:410"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:410"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:410: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:410: wait failed" >&5

    $as_echo "vtep-ctl.at:410" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:410"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:410: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls2
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:410"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:410"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:410: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:410"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:410"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:410: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:410"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:410"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:410: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:410: wait failed" >&5

    $as_echo "vtep-ctl.at:410" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:410"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:410: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:410"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vtep-ctl.at:410"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:410: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:410"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:410"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:410: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:410"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:410"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:410: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:410: wait failed" >&5

    $as_echo "vtep-ctl.at:410" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:410"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:411: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket bind-ls ps1 pp1 300 ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:411"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket bind-ls ps1 pp1 300 ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:411"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:411: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:411"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:411"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:411: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:411"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:411"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:411: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:411: wait failed" >&5

    $as_echo "vtep-ctl.at:411" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:411"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:413: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket bind-ls ps2 pp2 300 ls2
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:413"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket bind-ls ps2 pp2 300 ls2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:413"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:413: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:413"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:413"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:413: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:413"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:413"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:413: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:413: wait failed" >&5

    $as_echo "vtep-ctl.at:413" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:413"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:415: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-bindings ps1 pp1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:415"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-bindings ps1 pp1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0300 ls1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:415"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:415: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:415"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:415"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:415: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:415"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:415"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:415: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:415: wait failed" >&5

    $as_echo "vtep-ctl.at:415" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:415"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:418: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-bindings ps2 pp2
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:418"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-bindings ps2 pp2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0300 ls2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:418"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:418: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:418"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:418"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:418: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:418"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:418"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:418: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:418: wait failed" >&5

    $as_echo "vtep-ctl.at:418" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:418"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:421: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:421"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:421: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:421"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:421"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:421: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:421: wait failed" >&5

    $as_echo "vtep-ctl.at:421" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:421"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2386
#AT_START_2387
at_fn_group_banner 2387 'vtep-ctl.at:428' \
  "add-ucast-local ls1" "                            " 121
at_xfail=no
(
  $as_echo "2387. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:430: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:430"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:430"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:430: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:430"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:430"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:430: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:430"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:430"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:431: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:431"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:431"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:431: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:431"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:431"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:431: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:431"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:431"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:431: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:431: wait failed" >&5

    $as_echo "vtep-ctl.at:431" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:431"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:433: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:433"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ls1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:433"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:433: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:433"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:433"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:433: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:433"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:433"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:433: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:433: wait failed" >&5

    $as_echo "vtep-ctl.at:433" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:433"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:433: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:433"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ls1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:433"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:433: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:433"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:433"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:433: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:433"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:433"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:433: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:433: wait failed" >&5

    $as_echo "vtep-ctl.at:433" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:433"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/vtep-ctl.at:433: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:433"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:433"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:433: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:433"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:433"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:433: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:433"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:433"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:433: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:433: wait failed" >&5

    $as_echo "vtep-ctl.at:433" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:433"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:433: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:433"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vtep-ctl.at:433"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:433: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:433"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:433"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:433: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:433"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:433"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:433: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:433: wait failed" >&5

    $as_echo "vtep-ctl.at:433" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:433"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:434: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-local ls1 00:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-local ls1 00:11:22:33:44:66 vxlan_over_ipv4 10.0.0.11

"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:434"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-local ls1 00:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-local ls1 00:11:22:33:44:66 vxlan_over_ipv4 10.0.0.11


) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:434"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:434: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:434"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:434"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:434: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:434"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:434"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:434: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:434: wait failed" >&5

    $as_echo "vtep-ctl.at:434" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:434"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:438: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-local-macs ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:438"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-local-macs ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ucast-mac-local
  00:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.10
  00:11:22:33:44:66 -> vxlan_over_ipv4/10.0.0.11

mcast-mac-local

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:438"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:438: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:438"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:438"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:438: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:438"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:438"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:438: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:438: wait failed" >&5

    $as_echo "vtep-ctl.at:438" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:438"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:446: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-remote-macs ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:446"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-remote-macs ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ucast-mac-remote

mcast-mac-remote

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:446"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:446: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:446"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:446"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:446: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:446"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:446"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:446: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:446: wait failed" >&5

    $as_echo "vtep-ctl.at:446" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:446"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:452: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:452"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:452"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:452: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:452"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:452"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:452: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:452: wait failed" >&5

    $as_echo "vtep-ctl.at:452" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:452"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2387
#AT_START_2388
at_fn_group_banner 2388 'vtep-ctl.at:455' \
  "add-ucast-local ls1, overwrite" "                 " 121
at_xfail=no
(
  $as_echo "2388. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:457: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:457"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:457"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:457: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:457"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:457"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:457: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:457"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:457"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:458: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:458"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:458"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:458: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:458"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:458"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:458: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:458"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:458"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:458: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:458: wait failed" >&5

    $as_echo "vtep-ctl.at:458" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:458"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:460: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:460"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ls1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:460"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:460: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:460"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:460"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:460: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:460"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:460"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:460: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:460: wait failed" >&5

    $as_echo "vtep-ctl.at:460" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:460"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:460: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:460"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ls1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:460"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:460: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:460"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:460"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:460: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:460"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:460"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:460: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:460: wait failed" >&5

    $as_echo "vtep-ctl.at:460" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:460"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/vtep-ctl.at:460: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:460"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:460"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:460: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:460"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:460"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:460: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:460"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:460"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:460: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:460: wait failed" >&5

    $as_echo "vtep-ctl.at:460" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:460"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:460: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:460"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vtep-ctl.at:460"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:460: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:460"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:460"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:460: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:460"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:460"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:460: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:460: wait failed" >&5

    $as_echo "vtep-ctl.at:460" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:460"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:461: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-local ls1 00:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-local ls1 00:11:22:33:44:55 10.0.0.11

"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:461"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-local ls1 00:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-local ls1 00:11:22:33:44:55 10.0.0.11


) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:461"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:461: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:461"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:461"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:461: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:461"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:461"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:461: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:461: wait failed" >&5

    $as_echo "vtep-ctl.at:461" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:461"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:465: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-local-macs ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:465"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-local-macs ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ucast-mac-local
  00:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.11

mcast-mac-local

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:465"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:465: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:465"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:465"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:465: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:465"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:465"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:465: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:465: wait failed" >&5

    $as_echo "vtep-ctl.at:465" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:465"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:472: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:472"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:472"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:472: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:472"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:472"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:472: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:472: wait failed" >&5

    $as_echo "vtep-ctl.at:472" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:472"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2388
#AT_START_2389
at_fn_group_banner 2389 'vtep-ctl.at:475' \
  "add-ucast-local ls1, del-ucast-local ls1" "       " 121
at_xfail=no
(
  $as_echo "2389. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:477: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:477"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:477"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:477: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:477"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:477"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:477: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:477"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:477"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:478: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:478"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:478"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:478: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:478"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:478"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:478: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:478"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:478"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:478: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:478: wait failed" >&5

    $as_echo "vtep-ctl.at:478" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:478"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:480: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:480"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ls1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:480"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:480: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:480"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:480"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:480: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:480"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:480"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:480: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:480: wait failed" >&5

    $as_echo "vtep-ctl.at:480" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:480"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:480: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:480"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ls1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:480"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:480: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:480"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:480"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:480: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:480"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:480"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:480: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:480: wait failed" >&5

    $as_echo "vtep-ctl.at:480" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:480"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/vtep-ctl.at:480: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:480"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:480"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:480: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:480"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:480"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:480: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:480"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:480"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:480: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:480: wait failed" >&5

    $as_echo "vtep-ctl.at:480" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:480"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:480: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:480"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vtep-ctl.at:480"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:480: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:480"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:480"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:480: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:480"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:480"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:480: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:480: wait failed" >&5

    $as_echo "vtep-ctl.at:480" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:480"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:481: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-local ls1 00:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-local ls1 00:11:22:33:44:66 vxlan_over_ipv4 10.0.0.11

"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:481"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-local ls1 00:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-local ls1 00:11:22:33:44:66 vxlan_over_ipv4 10.0.0.11


) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:481"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:481: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:481"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:481"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:481: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:481"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:481"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:481: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:481: wait failed" >&5

    $as_echo "vtep-ctl.at:481" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:481"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:485: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-local-macs ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:485"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-local-macs ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ucast-mac-local
  00:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.10
  00:11:22:33:44:66 -> vxlan_over_ipv4/10.0.0.11

mcast-mac-local

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:485"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:485: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:485"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:485"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:485: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:485"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:485"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:485: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:485: wait failed" >&5

    $as_echo "vtep-ctl.at:485" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:485"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:493: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket del-ucast-local ls1 00:11:22:33:44:55

"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:493"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket del-ucast-local ls1 00:11:22:33:44:55


) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:493"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:493: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:493"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:493"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:493: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:493"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:493"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:493: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:493: wait failed" >&5

    $as_echo "vtep-ctl.at:493" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:493"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:496: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-local-macs ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:496"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-local-macs ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ucast-mac-local
  00:11:22:33:44:66 -> vxlan_over_ipv4/10.0.0.11

mcast-mac-local

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:496"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:496: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:496"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:496"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:496: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:496"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:496"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:496: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:496: wait failed" >&5

    $as_echo "vtep-ctl.at:496" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:496"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:503: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:503"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:503"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:503: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:503"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:503"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:503: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:503: wait failed" >&5

    $as_echo "vtep-ctl.at:503" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:503"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2389
#AT_START_2390
at_fn_group_banner 2390 'vtep-ctl.at:506' \
  "add-ucast-remote ls1" "                           " 121
at_xfail=no
(
  $as_echo "2390. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:508: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:508"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:508"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:508: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:508"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:508"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:508: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:508"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:508"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:509: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:509"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:509"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:509: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:509"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:509"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:509: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:509"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:509"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:509: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:509: wait failed" >&5

    $as_echo "vtep-ctl.at:509" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:509"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:511: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:511"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ls1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:511"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:511: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:511"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:511"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:511: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:511"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:511"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:511: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:511: wait failed" >&5

    $as_echo "vtep-ctl.at:511" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:511"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:511: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:511"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ls1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:511"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:511: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:511"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:511"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:511: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:511"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:511"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:511: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:511: wait failed" >&5

    $as_echo "vtep-ctl.at:511" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:511"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/vtep-ctl.at:511: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:511"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:511"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:511: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:511"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:511"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:511: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:511"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:511"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:511: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:511: wait failed" >&5

    $as_echo "vtep-ctl.at:511" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:511"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:511: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:511"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vtep-ctl.at:511"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:511: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:511"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:511"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:511: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:511"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:511"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:511: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:511: wait failed" >&5

    $as_echo "vtep-ctl.at:511" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:511"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:512: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-remote ls1 00:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-remote ls1 00:11:22:33:44:66 vxlan_over_ipv4 10.0.0.11

"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:512"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-remote ls1 00:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-remote ls1 00:11:22:33:44:66 vxlan_over_ipv4 10.0.0.11


) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:512"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:512: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:512"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:512"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:512: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:512"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:512"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:512: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:512: wait failed" >&5

    $as_echo "vtep-ctl.at:512" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:512"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:516: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-remote-macs ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:516"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-remote-macs ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ucast-mac-remote
  00:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.10
  00:11:22:33:44:66 -> vxlan_over_ipv4/10.0.0.11

mcast-mac-remote

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:516"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:516: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:516"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:516"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:516: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:516"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:516"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:516: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:516: wait failed" >&5

    $as_echo "vtep-ctl.at:516" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:516"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:524: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-local-macs ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:524"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-local-macs ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ucast-mac-local

mcast-mac-local

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:524"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:524: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:524"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:524"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:524: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:524"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:524"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:524: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:524: wait failed" >&5

    $as_echo "vtep-ctl.at:524" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:524"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:530: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:530"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:530"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:530: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:530"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:530"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:530: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:530: wait failed" >&5

    $as_echo "vtep-ctl.at:530" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:530"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2390
#AT_START_2391
at_fn_group_banner 2391 'vtep-ctl.at:533' \
  "add-ucast-remote ls1, overwrite" "                " 121
at_xfail=no
(
  $as_echo "2391. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:535: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:535"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:535"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:535: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:535"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:535"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:535: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:535"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:535"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:536: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:536"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:536"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:536: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:536"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:536"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:536: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:536"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:536"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:536: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:536: wait failed" >&5

    $as_echo "vtep-ctl.at:536" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:536"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:538: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:538"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ls1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:538"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:538: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:538"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:538"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:538: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:538"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:538"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:538: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:538: wait failed" >&5

    $as_echo "vtep-ctl.at:538" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:538"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:538: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:538"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ls1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:538"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:538: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:538"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:538"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:538: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:538"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:538"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:538: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:538: wait failed" >&5

    $as_echo "vtep-ctl.at:538" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:538"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/vtep-ctl.at:538: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:538"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:538"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:538: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:538"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:538"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:538: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:538"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:538"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:538: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:538: wait failed" >&5

    $as_echo "vtep-ctl.at:538" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:538"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:538: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:538"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vtep-ctl.at:538"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:538: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:538"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:538"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:538: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:538"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:538"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:538: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:538: wait failed" >&5

    $as_echo "vtep-ctl.at:538" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:538"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:539: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-remote ls1 00:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-remote ls1 00:11:22:33:44:55 10.0.0.11

"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:539"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-remote ls1 00:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-remote ls1 00:11:22:33:44:55 10.0.0.11


) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:539"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:539: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:539"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:539"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:539: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:539"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:539"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:539: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:539: wait failed" >&5

    $as_echo "vtep-ctl.at:539" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:539"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:543: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-remote-macs ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:543"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-remote-macs ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ucast-mac-remote
  00:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.11

mcast-mac-remote

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:543"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:543: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:543"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:543"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:543: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:543"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:543"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:543: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:543: wait failed" >&5

    $as_echo "vtep-ctl.at:543" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:543"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:550: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:550"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:550"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:550: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:550"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:550"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:550: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:550: wait failed" >&5

    $as_echo "vtep-ctl.at:550" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:550"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2391
#AT_START_2392
at_fn_group_banner 2392 'vtep-ctl.at:553' \
  "add-ucast-remote ls1, del-ucast-remote ls1" "     " 121
at_xfail=no
(
  $as_echo "2392. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:555: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:555"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:555"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:555: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:555"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:555"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:555: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:555"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:555"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:556: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:556"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:556"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:556: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:556"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:556"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:556: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:556"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:556"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:556: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:556: wait failed" >&5

    $as_echo "vtep-ctl.at:556" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:556"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:558: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:558"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ls1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:558"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:558: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:558"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:558"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:558: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:558"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:558"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:558: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:558: wait failed" >&5

    $as_echo "vtep-ctl.at:558" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:558"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:558: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:558"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ls1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:558"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:558: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:558"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:558"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:558: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:558"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:558"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:558: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:558: wait failed" >&5

    $as_echo "vtep-ctl.at:558" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:558"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/vtep-ctl.at:558: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:558"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:558"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:558: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:558"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:558"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:558: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:558"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:558"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:558: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:558: wait failed" >&5

    $as_echo "vtep-ctl.at:558" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:558"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:558: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:558"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vtep-ctl.at:558"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:558: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:558"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:558"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:558: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:558"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:558"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:558: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:558: wait failed" >&5

    $as_echo "vtep-ctl.at:558" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:558"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:559: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-remote ls1 00:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-remote ls1 00:11:22:33:44:66 vxlan_over_ipv4 10.0.0.11

"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:559"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-remote ls1 00:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-remote ls1 00:11:22:33:44:66 vxlan_over_ipv4 10.0.0.11


) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:559"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:559: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:559"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:559"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:559: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:559"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:559"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:559: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:559: wait failed" >&5

    $as_echo "vtep-ctl.at:559" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:559"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:563: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-remote-macs ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:563"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-remote-macs ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ucast-mac-remote
  00:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.10
  00:11:22:33:44:66 -> vxlan_over_ipv4/10.0.0.11

mcast-mac-remote

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:563"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:563: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:563"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:563"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:563: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:563"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:563"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:563: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:563: wait failed" >&5

    $as_echo "vtep-ctl.at:563" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:563"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:571: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket del-ucast-remote ls1 00:11:22:33:44:55

"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:571"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket del-ucast-remote ls1 00:11:22:33:44:55


) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:571"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:571: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:571"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:571: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:571"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:571"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:571: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:571: wait failed" >&5

    $as_echo "vtep-ctl.at:571" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:571"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:574: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-remote-macs ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:574"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-remote-macs ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ucast-mac-remote
  00:11:22:33:44:66 -> vxlan_over_ipv4/10.0.0.11

mcast-mac-remote

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:574"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:574: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:574"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:574"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:574: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:574"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:574"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:574: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:574: wait failed" >&5

    $as_echo "vtep-ctl.at:574" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:574"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:581: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:581"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:581"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:581: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:581"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:581"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:581: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:581: wait failed" >&5

    $as_echo "vtep-ctl.at:581" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:581"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2392
#AT_START_2393
at_fn_group_banner 2393 'vtep-ctl.at:584' \
  "add-ucast-local ls1, add-ucast-remote ls1" "      " 121
at_xfail=no
(
  $as_echo "2393. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:586: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:586"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:586"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:586: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:586"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:586"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:586: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:586"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:586"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:587: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:587"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:587"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:587: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:587"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:587: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:587"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:587"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:587: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:587: wait failed" >&5

    $as_echo "vtep-ctl.at:587" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:587"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:589: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:589"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ls1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:589"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:589: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:589"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:589"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:589: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:589"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:589"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:589: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:589: wait failed" >&5

    $as_echo "vtep-ctl.at:589" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:589"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:589: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:589"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ls1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:589"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:589: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:589"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:589"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:589: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:589"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:589"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:589: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:589: wait failed" >&5

    $as_echo "vtep-ctl.at:589" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:589"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/vtep-ctl.at:589: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:589"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:589"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:589: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:589"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:589"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:589: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:589"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:589"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:589: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:589: wait failed" >&5

    $as_echo "vtep-ctl.at:589" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:589"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:589: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:589"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vtep-ctl.at:589"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:589: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:589"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:589"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:589: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:589"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:589"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:589: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:589: wait failed" >&5

    $as_echo "vtep-ctl.at:589" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:589"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:590: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-local ls1 00:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-local ls1 00:11:22:33:44:66 10.0.0.11
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-remote ls1 02:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-remote ls1 02:11:22:33:44:66 vxlan_over_ipv4 10.0.0.11

"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:590"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-local ls1 00:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-local ls1 00:11:22:33:44:66 10.0.0.11
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-remote ls1 02:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-remote ls1 02:11:22:33:44:66 vxlan_over_ipv4 10.0.0.11


) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:590"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:590: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:590"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:590"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:590: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:590"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:590"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:590: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:590: wait failed" >&5

    $as_echo "vtep-ctl.at:590" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:590"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:596: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-local-macs ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:596"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-local-macs ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ucast-mac-local
  00:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.10
  00:11:22:33:44:66 -> vxlan_over_ipv4/10.0.0.11

mcast-mac-local

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:596"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:596: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:596"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:596"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:596: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:596"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:596"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:596: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:596: wait failed" >&5

    $as_echo "vtep-ctl.at:596" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:596"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:604: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-remote-macs ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:604"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-remote-macs ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ucast-mac-remote
  02:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.10
  02:11:22:33:44:66 -> vxlan_over_ipv4/10.0.0.11

mcast-mac-remote

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:604"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:604: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:604"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:604"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:604: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:604"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:604"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:604: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:604: wait failed" >&5

    $as_echo "vtep-ctl.at:604" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:604"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:612: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:612"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:612"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:612: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:612"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:612"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:612: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:612: wait failed" >&5

    $as_echo "vtep-ctl.at:612" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:612"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2393
#AT_START_2394
at_fn_group_banner 2394 'vtep-ctl.at:615' \
  "add-mcast-local ls1" "                            " 121
at_xfail=no
(
  $as_echo "2394. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:617: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:617"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:617"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:617: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:617"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:617"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:617: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:617"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:617"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:618: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:618"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:618"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:618: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:618"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:618"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:618: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:618"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:618"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:618: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:618: wait failed" >&5

    $as_echo "vtep-ctl.at:618" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:618"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:620: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:620"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ls1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:620"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:620: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:620"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:620"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:620: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:620"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:620"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:620: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:620: wait failed" >&5

    $as_echo "vtep-ctl.at:620" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:620"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:620: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:620"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ls1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:620"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:620: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:620"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:620"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:620: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:620"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:620"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:620: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:620: wait failed" >&5

    $as_echo "vtep-ctl.at:620" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:620"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/vtep-ctl.at:620: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:620"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:620"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:620: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:620"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:620"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:620: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:620"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:620"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:620: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:620: wait failed" >&5

    $as_echo "vtep-ctl.at:620" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:620"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:620: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:620"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vtep-ctl.at:620"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:620: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:620"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:620"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:620: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:620"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:620"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:620: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:620: wait failed" >&5

    $as_echo "vtep-ctl.at:620" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:620"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:621: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-local ls1 01:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-local ls1 01:11:22:33:44:66 vxlan_over_ipv4 10.0.0.11
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-local ls1 01:11:22:33:44:55 10.0.0.12

"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:621"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-local ls1 01:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-local ls1 01:11:22:33:44:66 vxlan_over_ipv4 10.0.0.11
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-local ls1 01:11:22:33:44:55 10.0.0.12


) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:621"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:621: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:621"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:621"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:621: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:621"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:621"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:621: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:621: wait failed" >&5

    $as_echo "vtep-ctl.at:621" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:621"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:626: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-local-macs ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:626"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-local-macs ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ucast-mac-local

mcast-mac-local
  01:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.10
  01:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.12
  01:11:22:33:44:66 -> vxlan_over_ipv4/10.0.0.11

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:626"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:626: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:626"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:626"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:626: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:626"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:626"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:626: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:626: wait failed" >&5

    $as_echo "vtep-ctl.at:626" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:626"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:635: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-remote-macs ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:635"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-remote-macs ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ucast-mac-remote

mcast-mac-remote

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:635"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:635: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:635"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:635"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:635: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:635"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:635"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:635: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:635: wait failed" >&5

    $as_echo "vtep-ctl.at:635" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:635"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:641: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:641"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:641"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:641: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:641"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:641"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:641: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:641: wait failed" >&5

    $as_echo "vtep-ctl.at:641" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:641"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2394
#AT_START_2395
at_fn_group_banner 2395 'vtep-ctl.at:644' \
  "add-mcast-local ls1, del-mcast-local ls1" "       " 121
at_xfail=no
(
  $as_echo "2395. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:646: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:646"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:646"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:646: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:646"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:646"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:646: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:646"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:646"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:647: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:647"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:647"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:647: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:647"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:647"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:647: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:647"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:647"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:647: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:647: wait failed" >&5

    $as_echo "vtep-ctl.at:647" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:647"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:649: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:649"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ls1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:649"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:649: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:649"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:649"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:649: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:649"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:649"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:649: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:649: wait failed" >&5

    $as_echo "vtep-ctl.at:649" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:649"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:649: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:649"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ls1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:649"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:649: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:649"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:649"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:649: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:649"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:649"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:649: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:649: wait failed" >&5

    $as_echo "vtep-ctl.at:649" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:649"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/vtep-ctl.at:649: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:649"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:649"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:649: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:649"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:649"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:649: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:649"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:649"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:649: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:649: wait failed" >&5

    $as_echo "vtep-ctl.at:649" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:649"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:649: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:649"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vtep-ctl.at:649"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:649: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:649"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:649"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:649: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:649"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:649"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:649: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:649: wait failed" >&5

    $as_echo "vtep-ctl.at:649" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:649"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:650: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-local ls1 01:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-local ls1 01:11:22:33:44:66 vxlan_over_ipv4 10.0.0.11
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-local ls1 01:11:22:33:44:55 10.0.0.12
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-local ls1 01:11:22:33:44:55 10.0.0.13

"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:650"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-local ls1 01:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-local ls1 01:11:22:33:44:66 vxlan_over_ipv4 10.0.0.11
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-local ls1 01:11:22:33:44:55 10.0.0.12
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-local ls1 01:11:22:33:44:55 10.0.0.13


) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:650"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:650: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:650"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:650"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:650: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:650"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:650"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:650: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:650: wait failed" >&5

    $as_echo "vtep-ctl.at:650" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:650"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:656: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-local-macs ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:656"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-local-macs ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ucast-mac-local

mcast-mac-local
  01:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.10
  01:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.12
  01:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.13
  01:11:22:33:44:66 -> vxlan_over_ipv4/10.0.0.11

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:656"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:656: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:656"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:656"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:656: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:656"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:656"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:656: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:656: wait failed" >&5

    $as_echo "vtep-ctl.at:656" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:656"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:666: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket del-mcast-local ls1 01:11:22:33:44:55 10.0.0.12

"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:666"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket del-mcast-local ls1 01:11:22:33:44:55 10.0.0.12


) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:666"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:666: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:666"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:666"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:666: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:666"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:666"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:666: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:666: wait failed" >&5

    $as_echo "vtep-ctl.at:666" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:666"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:669: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-local-macs ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:669"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-local-macs ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ucast-mac-local

mcast-mac-local
  01:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.10
  01:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.13
  01:11:22:33:44:66 -> vxlan_over_ipv4/10.0.0.11

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:669"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:669: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:669"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:669"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:669: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:669"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:669"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:669: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:669: wait failed" >&5

    $as_echo "vtep-ctl.at:669" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:669"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:678: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:678"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:678"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:678: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:678"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:678"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:678: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:678: wait failed" >&5

    $as_echo "vtep-ctl.at:678" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:678"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2395
#AT_START_2396
at_fn_group_banner 2396 'vtep-ctl.at:681' \
  "add-mcast-remote ls1" "                           " 121
at_xfail=no
(
  $as_echo "2396. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:683: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:683"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:683"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:683: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:683"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:683"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:683: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:683"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:683"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:684: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:684"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:684"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:684: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:684"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:684"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:684: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:684"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:684"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:684: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:684: wait failed" >&5

    $as_echo "vtep-ctl.at:684" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:684"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:686: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:686"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ls1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:686"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:686: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:686"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:686"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:686: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:686"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:686"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:686: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:686: wait failed" >&5

    $as_echo "vtep-ctl.at:686" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:686"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:686: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:686"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ls1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:686"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:686: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:686"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:686"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:686: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:686"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:686"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:686: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:686: wait failed" >&5

    $as_echo "vtep-ctl.at:686" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:686"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/vtep-ctl.at:686: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:686"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:686"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:686: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:686"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:686"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:686: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:686"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:686"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:686: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:686: wait failed" >&5

    $as_echo "vtep-ctl.at:686" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:686"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:686: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:686"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vtep-ctl.at:686"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:686: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:686"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:686"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:686: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:686"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:686"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:686: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:686: wait failed" >&5

    $as_echo "vtep-ctl.at:686" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:686"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:687: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-remote ls1 01:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-remote ls1 01:11:22:33:44:66 vxlan_over_ipv4 10.0.0.11
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-remote ls1 01:11:22:33:44:55 10.0.0.12

"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:687"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-remote ls1 01:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-remote ls1 01:11:22:33:44:66 vxlan_over_ipv4 10.0.0.11
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-remote ls1 01:11:22:33:44:55 10.0.0.12


) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:687"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:687: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:687"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:687"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:687: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:687"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:687"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:687: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:687: wait failed" >&5

    $as_echo "vtep-ctl.at:687" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:687"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:692: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-remote-macs ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:692"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-remote-macs ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ucast-mac-remote

mcast-mac-remote
  01:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.10
  01:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.12
  01:11:22:33:44:66 -> vxlan_over_ipv4/10.0.0.11

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:692"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:692: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:692"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:692"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:692: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:692"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:692"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:692: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:692: wait failed" >&5

    $as_echo "vtep-ctl.at:692" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:692"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:701: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-local-macs ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:701"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-local-macs ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ucast-mac-local

mcast-mac-local

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:701"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:701: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:701"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:701"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:701: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:701"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:701"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:701: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:701: wait failed" >&5

    $as_echo "vtep-ctl.at:701" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:701"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:707: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:707"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:707"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:707: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:707"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:707"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:707: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:707: wait failed" >&5

    $as_echo "vtep-ctl.at:707" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:707"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2396
#AT_START_2397
at_fn_group_banner 2397 'vtep-ctl.at:710' \
  "add-mcast-remote ls1, del-mcast-remote ls1" "     " 121
at_xfail=no
(
  $as_echo "2397. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:712: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:712"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:712"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:712: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:712"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:712"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:712: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:712"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:712"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:713: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:713"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:713"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:713: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:713"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:713: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:713"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:713"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:713: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:713: wait failed" >&5

    $as_echo "vtep-ctl.at:713" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:713"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:715: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:715"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ls1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:715"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:715: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:715"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:715"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:715: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:715"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:715"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:715: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:715: wait failed" >&5

    $as_echo "vtep-ctl.at:715" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:715"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:715: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:715"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ls1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:715"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:715: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:715"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:715"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:715: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:715"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:715"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:715: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:715: wait failed" >&5

    $as_echo "vtep-ctl.at:715" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:715"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/vtep-ctl.at:715: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:715"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:715"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:715: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:715"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:715"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:715: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:715"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:715"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:715: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:715: wait failed" >&5

    $as_echo "vtep-ctl.at:715" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:715"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:715: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:715"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vtep-ctl.at:715"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:715: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:715"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:715"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:715: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:715"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:715"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:715: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:715: wait failed" >&5

    $as_echo "vtep-ctl.at:715" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:715"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:716: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-remote ls1 01:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-remote ls1 01:11:22:33:44:66 vxlan_over_ipv4 10.0.0.11
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-remote ls1 01:11:22:33:44:55 10.0.0.12
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-remote ls1 01:11:22:33:44:55 10.0.0.13

"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:716"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-remote ls1 01:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-remote ls1 01:11:22:33:44:66 vxlan_over_ipv4 10.0.0.11
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-remote ls1 01:11:22:33:44:55 10.0.0.12
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-remote ls1 01:11:22:33:44:55 10.0.0.13


) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:716"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:716: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:716"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:716"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:716: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:716"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:716"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:716: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:716: wait failed" >&5

    $as_echo "vtep-ctl.at:716" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:716"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:722: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-remote-macs ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:722"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-remote-macs ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ucast-mac-remote

mcast-mac-remote
  01:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.10
  01:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.12
  01:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.13
  01:11:22:33:44:66 -> vxlan_over_ipv4/10.0.0.11

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:722"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:722: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:722"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:722"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:722: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:722"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:722"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:722: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:722: wait failed" >&5

    $as_echo "vtep-ctl.at:722" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:722"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:732: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket del-mcast-remote ls1 01:11:22:33:44:55 10.0.0.12

"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:732"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket del-mcast-remote ls1 01:11:22:33:44:55 10.0.0.12


) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:732"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:732: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:732"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:732"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:732: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:732"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:732"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:732: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:732: wait failed" >&5

    $as_echo "vtep-ctl.at:732" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:732"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:735: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-remote-macs ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:735"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-remote-macs ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ucast-mac-remote

mcast-mac-remote
  01:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.10
  01:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.13
  01:11:22:33:44:66 -> vxlan_over_ipv4/10.0.0.11

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:735"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:735: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:735"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:735"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:735: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:735"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:735"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:735: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:735: wait failed" >&5

    $as_echo "vtep-ctl.at:735" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:735"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:744: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:744"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:744"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:744: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:744"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:744"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:744: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:744: wait failed" >&5

    $as_echo "vtep-ctl.at:744" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:744"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2397
#AT_START_2398
at_fn_group_banner 2398 'vtep-ctl.at:747' \
  "add-mcast-local ls1, add-mcast-remote ls1" "      " 121
at_xfail=no
(
  $as_echo "2398. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:749: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:749"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:749"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:749: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:749"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:749"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:749: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:749"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:749"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:750: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:750"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:750"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:750: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:750"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:750"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:750: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:750"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:750"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:750: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:750: wait failed" >&5

    $as_echo "vtep-ctl.at:750" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:750"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:752: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:752"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ls1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:752"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:752: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:752"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:752"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:752: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:752"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:752"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:752: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:752: wait failed" >&5

    $as_echo "vtep-ctl.at:752" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:752"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:752: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:752"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ls1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:752"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:752: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:752"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:752"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:752: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:752"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:752"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:752: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:752: wait failed" >&5

    $as_echo "vtep-ctl.at:752" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:752"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/vtep-ctl.at:752: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:752"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:752"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:752: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:752"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:752"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:752: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:752"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:752"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:752: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:752: wait failed" >&5

    $as_echo "vtep-ctl.at:752" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:752"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:752: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:752"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vtep-ctl.at:752"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:752: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:752"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:752"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:752: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:752"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:752"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:752: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:752: wait failed" >&5

    $as_echo "vtep-ctl.at:752" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:752"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:753: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-local ls1 01:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-local ls1 01:11:22:33:44:66 10.0.0.11
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-local ls1 01:11:22:33:44:55 10.0.0.12
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-remote ls1 03:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-remote ls1 03:11:22:33:44:66 vxlan_over_ipv4 10.0.0.11
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-remote ls1 03:11:22:33:44:55 10.0.0.12

"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:753"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-local ls1 01:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-local ls1 01:11:22:33:44:66 10.0.0.11
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-local ls1 01:11:22:33:44:55 10.0.0.12
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-remote ls1 03:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-remote ls1 03:11:22:33:44:66 vxlan_over_ipv4 10.0.0.11
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-remote ls1 03:11:22:33:44:55 10.0.0.12


) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:753"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:753: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:753"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:753"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:753: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:753"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:753"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:753: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:753: wait failed" >&5

    $as_echo "vtep-ctl.at:753" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:753"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:761: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-local-macs ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:761"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-local-macs ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ucast-mac-local

mcast-mac-local
  01:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.10
  01:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.12
  01:11:22:33:44:66 -> vxlan_over_ipv4/10.0.0.11

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:761"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:761: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:761"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:761"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:761: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:761"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:761"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:761: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:761: wait failed" >&5

    $as_echo "vtep-ctl.at:761" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:761"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:770: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-remote-macs ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:770"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-remote-macs ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ucast-mac-remote

mcast-mac-remote
  03:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.10
  03:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.12
  03:11:22:33:44:66 -> vxlan_over_ipv4/10.0.0.11

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:770"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:770: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:770"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:770"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:770: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:770"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:770"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:770: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:770: wait failed" >&5

    $as_echo "vtep-ctl.at:770" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:770"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:779: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:779"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:779"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:779: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:779"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:779"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:779: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:779: wait failed" >&5

    $as_echo "vtep-ctl.at:779" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:779"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2398
#AT_START_2399
at_fn_group_banner 2399 'vtep-ctl.at:782' \
  "add local and remote macs, clear-local-macs" "    " 121
at_xfail=no
(
  $as_echo "2399. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:784: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:784"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:784"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:784: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:784"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:784"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:784: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:784"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:784"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:785: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:785"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:785"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:785: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:785"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:785"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:785: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:785"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:785"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:785: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:785: wait failed" >&5

    $as_echo "vtep-ctl.at:785" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:785"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:787: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:787"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ls1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:787"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:787: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:787"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:787"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:787: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:787"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:787"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:787: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:787: wait failed" >&5

    $as_echo "vtep-ctl.at:787" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:787"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:787: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:787"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ls1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:787"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:787: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:787"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:787"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:787: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:787"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:787"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:787: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:787: wait failed" >&5

    $as_echo "vtep-ctl.at:787" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:787"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/vtep-ctl.at:787: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:787"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:787"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:787: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:787"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:787"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:787: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:787"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:787"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:787: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:787: wait failed" >&5

    $as_echo "vtep-ctl.at:787" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:787"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:787: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:787"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vtep-ctl.at:787"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:787: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:787"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:787"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:787: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:787"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:787"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:787: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:787: wait failed" >&5

    $as_echo "vtep-ctl.at:787" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:787"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:788: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-local ls1 00:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-local ls1 01:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-local ls1 01:11:22:33:44:66 vxlan_over_ipv4 10.0.0.11
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-local ls1 01:11:22:33:44:55 10.0.0.12
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-remote ls1 00:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-remote ls1 01:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-remote ls1 01:11:22:33:44:66 vxlan_over_ipv4 10.0.0.11
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-remote ls1 01:11:22:33:44:55 10.0.0.12

"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:788"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-local ls1 00:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-local ls1 01:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-local ls1 01:11:22:33:44:66 vxlan_over_ipv4 10.0.0.11
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-local ls1 01:11:22:33:44:55 10.0.0.12
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-remote ls1 00:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-remote ls1 01:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-remote ls1 01:11:22:33:44:66 vxlan_over_ipv4 10.0.0.11
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-remote ls1 01:11:22:33:44:55 10.0.0.12


) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:788"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:788: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:788"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:788"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:788: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:788"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:788"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:788: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:788: wait failed" >&5

    $as_echo "vtep-ctl.at:788" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:788"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:798: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-local-macs ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:798"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-local-macs ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ucast-mac-local
  00:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.10

mcast-mac-local
  01:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.10
  01:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.12
  01:11:22:33:44:66 -> vxlan_over_ipv4/10.0.0.11

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:798"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:798: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:798"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:798"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:798: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:798"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:798"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:798: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:798: wait failed" >&5

    $as_echo "vtep-ctl.at:798" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:798"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:808: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-remote-macs ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:808"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-remote-macs ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ucast-mac-remote
  00:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.10

mcast-mac-remote
  01:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.10
  01:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.12
  01:11:22:33:44:66 -> vxlan_over_ipv4/10.0.0.11

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:808"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:808: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:808"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:808"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:808: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:808"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:808"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:808: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:808: wait failed" >&5

    $as_echo "vtep-ctl.at:808" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:808"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:818: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket clear-local-macs ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:818"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket clear-local-macs ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:818"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:818: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:818"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:818"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:818: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:818"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:818"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:818: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:818: wait failed" >&5

    $as_echo "vtep-ctl.at:818" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:818"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:820: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-local-macs ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:820"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-local-macs ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ucast-mac-local

mcast-mac-local

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:820"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:820: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:820"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:820"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:820: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:820"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:820"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:820: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:820: wait failed" >&5

    $as_echo "vtep-ctl.at:820" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:820"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:826: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-remote-macs ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:826"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-remote-macs ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ucast-mac-remote
  00:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.10

mcast-mac-remote
  01:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.10
  01:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.12
  01:11:22:33:44:66 -> vxlan_over_ipv4/10.0.0.11

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:826"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:826: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:826"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:826"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:826: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:826"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:826"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:826: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:826: wait failed" >&5

    $as_echo "vtep-ctl.at:826" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:826"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:836: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:836"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:836"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:836: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:836"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:836"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:836: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:836: wait failed" >&5

    $as_echo "vtep-ctl.at:836" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:836"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2399
#AT_START_2400
at_fn_group_banner 2400 'vtep-ctl.at:839' \
  "add local and remote macs, clear-remote-macs" "   " 121
at_xfail=no
(
  $as_echo "2400. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:841: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:841"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:841"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:841: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:841"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:841"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:841: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:841"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:841"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:842: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:842"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:842"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:842: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:842"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:842"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:842: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:842"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:842"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:842: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:842: wait failed" >&5

    $as_echo "vtep-ctl.at:842" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:842"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:844: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:844"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ls1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:844"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:844: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:844"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:844"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:844: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:844"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:844"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:844: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:844: wait failed" >&5

    $as_echo "vtep-ctl.at:844" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:844"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/vtep-ctl.at:844: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:844"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline -- list-ls

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ls1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:844"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:844: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:844"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:844"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:844: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:844"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:844"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:844: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:844: wait failed" >&5

    $as_echo "vtep-ctl.at:844" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:844"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


         { set +x
$as_echo "$at_srcdir/vtep-ctl.at:844: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:844"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:844"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:844: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:844"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:844"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:844: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:844"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:844"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:844: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:844: wait failed" >&5

    $as_echo "vtep-ctl.at:844" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:844"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:844: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:844"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket ls-exists nonexistent

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/vtep-ctl.at:844"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:844: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:844"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:844"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:844: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:844"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:844"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:844: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:844: wait failed" >&5

    $as_echo "vtep-ctl.at:844" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:844"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:845: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-local ls1 00:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-local ls1 01:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-local ls1 01:11:22:33:44:66 vxlan_over_ipv4 10.0.0.11
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-local ls1 01:11:22:33:44:55 10.0.0.12
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-remote ls1 00:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-remote ls1 01:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-remote ls1 01:11:22:33:44:66 vxlan_over_ipv4 10.0.0.11
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-remote ls1 01:11:22:33:44:55 10.0.0.12

"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:845"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-local ls1 00:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-local ls1 01:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-local ls1 01:11:22:33:44:66 vxlan_over_ipv4 10.0.0.11
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-local ls1 01:11:22:33:44:55 10.0.0.12
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ucast-remote ls1 00:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-remote ls1 01:11:22:33:44:55 10.0.0.10
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-remote ls1 01:11:22:33:44:66 vxlan_over_ipv4 10.0.0.11
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-mcast-remote ls1 01:11:22:33:44:55 10.0.0.12


) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:845"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:845: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:845"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:845"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:845: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:845"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:845"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:845: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:845: wait failed" >&5

    $as_echo "vtep-ctl.at:845" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:845"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:855: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-local-macs ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:855"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-local-macs ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ucast-mac-local
  00:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.10

mcast-mac-local
  01:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.10
  01:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.12
  01:11:22:33:44:66 -> vxlan_over_ipv4/10.0.0.11

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:855"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:855: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:855"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:855"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:855: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:855"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:855"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:855: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:855: wait failed" >&5

    $as_echo "vtep-ctl.at:855" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:855"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:865: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-remote-macs ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:865"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-remote-macs ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ucast-mac-remote
  00:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.10

mcast-mac-remote
  01:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.10
  01:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.12
  01:11:22:33:44:66 -> vxlan_over_ipv4/10.0.0.11

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:865"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:865: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:865"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:865"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:865: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:865"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:865"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:865: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:865: wait failed" >&5

    $as_echo "vtep-ctl.at:865" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:865"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:875: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket clear-remote-macs ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:875"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket clear-remote-macs ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:875"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:875: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:875"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:875"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:875: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:875"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:875"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:875: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:875: wait failed" >&5

    $as_echo "vtep-ctl.at:875" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:875"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:877: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-local-macs ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:877"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-local-macs ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ucast-mac-local
  00:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.10

mcast-mac-local
  01:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.10
  01:11:22:33:44:55 -> vxlan_over_ipv4/10.0.0.12
  01:11:22:33:44:66 -> vxlan_over_ipv4/10.0.0.11

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:877"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:877: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:877"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:877"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:877: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:877"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:877"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:877: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:877: wait failed" >&5

    $as_echo "vtep-ctl.at:877" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:877"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:887: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-remote-macs ls1
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:887"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket list-remote-macs ls1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ucast-mac-remote

mcast-mac-remote

" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:887"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:887: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:887"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:887"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:887: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:887"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:887"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:887: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:887: wait failed" >&5

    $as_echo "vtep-ctl.at:887" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:887"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:893: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:893"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:893"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:893: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:893"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:893"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:893: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:893: wait failed" >&5

    $as_echo "vtep-ctl.at:893" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:893"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2400
#AT_START_2401
at_fn_group_banner 2401 'vtep-ctl.at:899' \
  "managers" "                                       " 122
at_xfail=no
(
  $as_echo "2401. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:901: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:901"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:901"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:901: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:901"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:901"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:901: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:901"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:901"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:902: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline  -- del-manager -- get-manager -- set-manager tcp:4.5.6.7 -- get-manager -- set-manager tcp:8.9.10.11 tcp:5.4.3.2 -- get-manager -- del-manager -- get-manager"
at_fn_check_prepare_trace "vtep-ctl.at:902"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket --oneline  -- del-manager -- get-manager -- set-manager tcp:4.5.6.7 -- get-manager -- set-manager tcp:8.9.10.11 tcp:5.4.3.2 -- get-manager -- del-manager -- get-manager
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "


tcp:4.5.6.7

tcp:5.4.3.2\\ntcp:8.9.10.11


" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:902"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:902: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:902"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:902"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:902: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:902"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:902"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:902: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:902: wait failed" >&5

    $as_echo "vtep-ctl.at:902" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:902"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:919: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:919"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:919"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:919: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:919"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:919"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:919: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:919: wait failed" >&5

    $as_echo "vtep-ctl.at:919" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:919"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2401
#AT_START_2402
at_fn_group_banner 2402 'vtep-ctl.at:922' \
  "show command" "                                   " 122
at_xfail=no
(
  $as_echo "2402. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:924: ovsdb-tool create db \$abs_top_srcdir/vtep/vtep.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema" "vtep-ctl.at:924"
( $at_check_trace; ovsdb-tool create db $abs_top_srcdir/vtep/vtep.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:924"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:924: ovsdb-tool transact db \\
        '[\"hardware_vtep\",
          {\"op\": \"insert\",
           \"table\": \"Global\",
           \"row\": {}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:924"
( $at_check_trace; ovsdb-tool transact db \
        '["hardware_vtep",
          {"op": "insert",
           "table": "Global",
           "row": {}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:924"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:924: ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1"
at_fn_check_prepare_trace "vtep-ctl.at:924"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db >/dev/null 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:924"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:925: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket set-manager tcp:4.5.6.7
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ps a
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-port a a1
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls1
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket bind-ls a a1 100 ls1
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket set Physical_Switch a management_ips=[4.3.2.1] tunnel_ips=[1.2.3.4]
"
at_fn_check_prepare_notrace 'an embedded newline' "vtep-ctl.at:925"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket set-manager tcp:4.5.6.7
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ps a
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-port a a1
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket add-ls ls1
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket bind-ls a a1 100 ls1
vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket set Physical_Switch a management_ips=[4.3.2.1] tunnel_ips=[1.2.3.4]

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:925"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:925: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:925"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:925"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:925: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:925"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:925"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:925: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:925: wait failed" >&5

    $as_echo "vtep-ctl.at:925" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:925"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:933: vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket show | tail -n+2 | sed 's/=[a-f0-9-][a-f0-9-]*}/=<ls>}/' "
at_fn_check_prepare_notrace 'a shell pipeline' "vtep-ctl.at:933"
( $at_check_trace; vtep-ctl --timeout=5 -vreconnect:emer --db=unix:socket show | tail -n+2 | sed 's/=[a-f0-9-][a-f0-9-]*}/=<ls>}/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "    Manager \"tcp:4.5.6.7\"
    Physical_Switch a
        management_ips: [\"4.3.2.1\"]
        tunnel_ips: [\"1.2.3.4\"]
        Physical_Port \"a1\"
            vlan_bindings:
                100=\"ls1\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:933"
if $at_failed; then :
  { set +x
$as_echo "$at_srcdir/vtep-ctl.at:933: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:933"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:933"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:933: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:933"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:933"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:933: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:933: wait failed" >&5

    $as_echo "vtep-ctl.at:933" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:933"
fi

fi
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/vtep-ctl.at:943: test -e ovsdb-server.pid"
at_fn_check_prepare_trace "vtep-ctl.at:943"
( $at_check_trace; test -e ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:943"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/vtep-ctl.at:943: ovs-appctl --timeout=10 --target=ovsdb-server exit"
at_fn_check_prepare_trace "vtep-ctl.at:943"
( $at_check_trace; ovs-appctl --timeout=10 --target=ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/vtep-ctl.at:943"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "vtep-ctl.at:943: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "vtep-ctl.at:943: wait failed" >&5

    $as_echo "vtep-ctl.at:943" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/vtep-ctl.at:943"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2402
#AT_START_2403
at_fn_group_banner 2403 'auto-attach.at:3' \
  "auto-attach - packets" "                          " 123
at_xfail=no
(
  $as_echo "2403. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/auto-attach.at:5: ovstest test-aa"
at_fn_check_prepare_trace "auto-attach.at:5"
( $at_check_trace; ovstest test-aa
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/auto-attach.at:5"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2403
#AT_START_2404
at_fn_group_banner 2404 'ovn.at:36' \
  "ovn -- lexer" "                                   " 124
at_xfail=no
(
  $as_echo "2404. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

cat >test-cases.txt <<'_ATEOF'
foo bar baz quuxquuxquux _abcd_ a.b.c.d a123_.456
"abc\u0020def" => "abc def"
" => error("Input ends inside quoted string.")
$foo $bar $baz $quuxquuxquux $_abcd_ $a.b.c.d $a123_.456
$1 => error("`$' must be followed by a valid identifier.") 1

a/*b*/c => a c
a//b c => a
a/**/b => a b
a/*/b => a error("`/*' without matching `*/'.")
a/*/**/b => a b
a/b => a error("`/' is only valid as part of `//' or `/*'.") b

0 1 12345 18446744073709551615
18446744073709551616 => error("Decimal constants must be less than 2**64.")
9999999999999999999999 => error("Decimal constants must be less than 2**64.")
01 => error("Decimal constants must not have leading zeros.")

0/0
0/1
1/0 => error("Value contains unmasked 1-bits.")
1/1
128/384
1/3
1/ => error("Integer constant expected.")

1/0x123 => error("Value and mask have incompatible formats.")

0x1234
0x01234 => 0x1234
0x0 => 0
0x000 => 0
0xfedcba9876543210
0XFEDCBA9876543210 => 0xfedcba9876543210
0xfedcba9876543210fedcba9876543210
0x0000fedcba9876543210fedcba9876543210 => 0xfedcba9876543210fedcba9876543210
0x => error("Hex digits expected following 0x.")
0X => error("Hex digits expected following 0X.")
0x0/0x0 => 0/0
0x0/0x1 => 0/0x1
0x1/0x0 => error("Value contains unmasked 1-bits.")
0xffff/0x1ffff
0x. => error("Invalid syntax in hexadecimal constant.")

192.168.128.1 1.2.3.4 255.255.255.255 0.0.0.0
256.1.2.3 => error("Invalid numeric constant.")
192.168.0.0/16
192.168.0.0/255.255.0.0 => 192.168.0.0/16
192.168.0.0/255.255.255.0 => 192.168.0.0/24
192.168.0.0/255.255.0.255
192.168.0.0/255.0.0.0 => error("Value contains unmasked 1-bits.")
192.168.0.0/32
192.168.0.0/255.255.255.255 => 192.168.0.0/32
1.2.3.4:5 => 1.2.3.4 : 5

::
::1
ff00::1234 => ff00::1234
2001:db8:85a3::8a2e:370:7334
2001:db8:85a3:0:0:8a2e:370:7334 => 2001:db8:85a3::8a2e:370:7334
2001:0db8:85a3:0000:0000:8a2e:0370:7334 => 2001:db8:85a3::8a2e:370:7334
::ffff:192.0.2.128
::ffff:c000:0280 => ::ffff:192.0.2.128
::1/::1
::1/ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff => ::1/128
::1/128
ff00::/8
ff00::/ff00:: => ff00::/8

01:23:45:67:ab:cd
01:23:45:67:AB:CD => 01:23:45:67:ab:cd
fe:dc:ba:98:76:54
FE:DC:ba:98:76:54 => fe:dc:ba:98:76:54
01:00:00:00:00:00/01:00:00:00:00:00
ff:ff:ff:ff:ff:ff/ff:ff:ff:ff:ff:ff
fe:ff:ff:ff:ff:ff/ff:ff:ff:ff:ff:ff
ff:ff:ff:ff:ff:ff/fe:ff:ff:ff:ff:ff => error("Value contains unmasked 1-bits.")
fe:x => error("Invalid numeric constant.")
00:01:02:03:04:x => error("Invalid numeric constant.")

# Test that operators are tokenized as expected, even without white space.
(){}[]==!=<<=>>=!&&||..,;=<->--: => ( ) { } [ ] == != < <= > >= ! && || .. , ; = <-> -- :
& => error("`&' is only valid as part of `&&'.")
| => error("`|' is only valid as part of `||'.")
- => error("`-' is only valid as part of `--'.")

^ => error("Invalid character `^' in input.")
_ATEOF


sed 's/ =>.*//' test-cases.txt > input.txt
sed 's/.* => //' test-cases.txt > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:132: ovstest test-ovn lex < input.txt"
at_fn_check_prepare_trace "ovn.at:132"
( $at_check_trace; ovstest test-ovn lex < input.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:132"
$at_failed && at_fn_log_failure  \
"input.txt"
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2404
#AT_START_2405
at_fn_group_banner 2405 'ovn.at:140' \
  "ovn -- registers" "                               " 124
at_xfail=no
(
  $as_echo "2405. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/ovn.at:141: ovstest test-ovn dump-symtab | grep reg | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:141"
( $at_check_trace; ovstest test-ovn dump-symtab | grep reg | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "reg0 = xxreg0[96..127]
reg1 = xxreg0[64..95]
reg2 = xxreg0[32..63]
reg3 = xxreg0[0..31]
reg4 = xxreg1[96..127]
reg5 = xxreg1[64..95]
reg6 = xxreg1[32..63]
reg7 = xxreg1[0..31]
reg8 = xreg4[32..63]
reg9 = xreg4[0..31]
xreg0 = xxreg0[64..127]
xreg1 = xxreg0[0..63]
xreg2 = xxreg1[64..127]
xreg3 = xxreg1[0..63]
xreg4 = OXM_OF_PKT_REG4
xxreg0 = NXM_NX_XXREG0
xxreg1 = NXM_NX_XXREG1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:141"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2405
#AT_START_2406
at_fn_group_banner 2406 'ovn.at:163' \
  "ovn -- conntrack fields" "                        " 124
at_xfail=no
(
  $as_echo "2406. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/ovn.at:164: ovstest test-ovn dump-symtab | grep ^ct | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:164"
( $at_check_trace; ovstest test-ovn dump-symtab | grep ^ct | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ct.dnat = ct_state[7]
ct.est = ct_state[1]
ct.inv = ct_state[4]
ct.new = ct_state[0]
ct.rel = ct_state[2]
ct.rpl = ct_state[3]
ct.snat = ct_state[6]
ct.trk = ct_state[5]
ct_label = NXM_NX_CT_LABEL
ct_label.blocked = ct_label[0]
ct_mark = NXM_NX_CT_MARK
ct_state = NXM_NX_CT_STATE
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:164"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2406
#AT_START_2407
at_fn_group_banner 2407 'ovn.at:180' \
  "ovn -- compsition" "                              " 124
at_xfail=no
(
  $as_echo "2407. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/ovn.at:181: ovstest test-ovn composition 2"
at_fn_check_prepare_trace "ovn.at:181"
( $at_check_trace; ovstest test-ovn composition 2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:181"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2407
#AT_START_2408
at_fn_group_banner 2408 'ovn.at:184' \
  "ovn -- expression parser" "                       " 124
at_xfail=no
(
  $as_echo "2408. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

cat >test-cases.txt <<'_ATEOF'

eth.type == 0x800
eth.type==0x800 => eth.type == 0x800
eth.type[0..15] == 0x800 => eth.type == 0x800

vlan.present
vlan.present == 1 => vlan.present
!(vlan.present == 0) => vlan.present
!(vlan.present != 1) => vlan.present
!vlan.present
vlan.present == 0 => !vlan.present
vlan.present != 1 => !vlan.present
!(vlan.present == 1) => !vlan.present
!(vlan.present != 0) => !vlan.present

eth.dst[0]
eth.dst[0] == 1 => eth.dst[0]
eth.dst[0] != 0 => eth.dst[0]
!(eth.dst[0] == 0) => eth.dst[0]
!(eth.dst[0] != 1) => eth.dst[0]

!eth.dst[0]
eth.dst[0] == 0 => !eth.dst[0]
eth.dst[0] != 1 => !eth.dst[0]
!(eth.dst[0] == 1) => !eth.dst[0]
!(eth.dst[0] != 0) => !eth.dst[0]

vlan.tci[12..15] == 0x3
vlan.tci == 0x3000/0xf000 => vlan.tci[12..15] == 0x3
vlan.tci[12..15] != 0x3
vlan.tci != 0x3000/0xf000 => vlan.tci[12..15] != 0x3

!vlan.pcp => vlan.pcp == 0
!(vlan.pcp) => vlan.pcp == 0
vlan.pcp == 0x4
vlan.pcp != 0x4
vlan.pcp > 0x4
vlan.pcp >= 0x4
vlan.pcp < 0x4
vlan.pcp <= 0x4
!(vlan.pcp != 0x4) => vlan.pcp == 0x4
!(vlan.pcp == 0x4) => vlan.pcp != 0x4
!(vlan.pcp <= 0x4) => vlan.pcp > 0x4
!(vlan.pcp < 0x4) => vlan.pcp >= 0x4
!(vlan.pcp >= 0x4) => vlan.pcp < 0x4
!(vlan.pcp > 0x4) => vlan.pcp <= 0x4
0x4 == vlan.pcp => vlan.pcp == 0x4
0x4 != vlan.pcp => vlan.pcp != 0x4
0x4 < vlan.pcp => vlan.pcp > 0x4
0x4 <= vlan.pcp => vlan.pcp >= 0x4
0x4 > vlan.pcp => vlan.pcp < 0x4
0x4 >= vlan.pcp => vlan.pcp <= 0x4
!(0x4 != vlan.pcp) => vlan.pcp == 0x4
!(0x4 == vlan.pcp) => vlan.pcp != 0x4
!(0x4 >= vlan.pcp) => vlan.pcp > 0x4
!(0x4 > vlan.pcp) => vlan.pcp >= 0x4
!(0x4 <= vlan.pcp) => vlan.pcp < 0x4
!(0x4 < vlan.pcp) => vlan.pcp <= 0x4

1 < vlan.pcp < 4 => vlan.pcp > 0x1 && vlan.pcp < 0x4
1 <= vlan.pcp <= 4 => vlan.pcp >= 0x1 && vlan.pcp <= 0x4
1 < vlan.pcp <= 4 => vlan.pcp > 0x1 && vlan.pcp <= 0x4
1 <= vlan.pcp < 4 => vlan.pcp >= 0x1 && vlan.pcp < 0x4
1 <= vlan.pcp <= 4 => vlan.pcp >= 0x1 && vlan.pcp <= 0x4
4 > vlan.pcp > 1 => vlan.pcp < 0x4 && vlan.pcp > 0x1
4 >= vlan.pcp > 1 => vlan.pcp <= 0x4 && vlan.pcp > 0x1
4 > vlan.pcp >= 1 => vlan.pcp < 0x4 && vlan.pcp >= 0x1
4 >= vlan.pcp >= 1 => vlan.pcp <= 0x4 && vlan.pcp >= 0x1
!(1 < vlan.pcp < 4) => vlan.pcp <= 0x1 || vlan.pcp >= 0x4
!(1 <= vlan.pcp <= 4) => vlan.pcp < 0x1 || vlan.pcp > 0x4
!(1 < vlan.pcp <= 4) => vlan.pcp <= 0x1 || vlan.pcp > 0x4
!(1 <= vlan.pcp < 4) => vlan.pcp < 0x1 || vlan.pcp >= 0x4
!(1 <= vlan.pcp <= 4) => vlan.pcp < 0x1 || vlan.pcp > 0x4
!(4 > vlan.pcp > 1) => vlan.pcp >= 0x4 || vlan.pcp <= 0x1
!(4 >= vlan.pcp > 1) => vlan.pcp > 0x4 || vlan.pcp <= 0x1
!(4 > vlan.pcp >= 1) => vlan.pcp >= 0x4 || vlan.pcp < 0x1
!(4 >= vlan.pcp >= 1) => vlan.pcp > 0x4 || vlan.pcp < 0x1

vlan.pcp == {1, 2, 3, 4} => vlan.pcp == 0x1 || vlan.pcp == 0x2 || vlan.pcp == 0x3 || vlan.pcp == 0x4
vlan.pcp == 1 || ((vlan.pcp == 2 || vlan.pcp == 3) || vlan.pcp == 4) => vlan.pcp == 0x1 || vlan.pcp == 0x2 || vlan.pcp == 0x3 || vlan.pcp == 0x4

vlan.pcp != {1, 2, 3, 4} => vlan.pcp != 0x1 && vlan.pcp != 0x2 && vlan.pcp != 0x3 && vlan.pcp != 0x4
vlan.pcp == 1 && ((vlan.pcp == 2 && vlan.pcp == 3) && vlan.pcp == 4) => vlan.pcp == 0x1 && vlan.pcp == 0x2 && vlan.pcp == 0x3 && vlan.pcp == 0x4

vlan.pcp == 1 && !((vlan.pcp == 2 && vlan.pcp == 3) && vlan.pcp == 4) => vlan.pcp == 0x1 && (vlan.pcp != 0x2 || vlan.pcp != 0x3 || vlan.pcp != 0x4)
vlan.pcp == 1 && (!(vlan.pcp == 2 && vlan.pcp == 3) && vlan.pcp == 4) => vlan.pcp == 0x1 && (vlan.pcp != 0x2 || vlan.pcp != 0x3) && vlan.pcp == 0x4
vlan.pcp == 1 && !(!(vlan.pcp == 2 && vlan.pcp == 3) && vlan.pcp == 4) => vlan.pcp == 0x1 && ((vlan.pcp == 0x2 && vlan.pcp == 0x3) || vlan.pcp != 0x4)

ip4.src == {10.0.0.0/8, 192.168.0.0/16, 172.16.20.0/24, 8.8.8.8} => ip4.src[24..31] == 0xa || ip4.src[16..31] == 0xc0a8 || ip4.src[8..31] == 0xac1014 || ip4.src == 0x8080808
ip6.src == ::1 => ip6.src == 0x1

ip4.src == 1.2.3.4 => ip4.src == 0x1020304
ip4.src == ::1.2.3.4/::ffff:ffff => ip4.src == 0x1020304
ip6.src == ::1 => ip6.src == 0x1

1
0
!1 => 0
!0 => 1

inport == "eth0"
!(inport != "eth0") => inport == "eth0"

ip4.src == "eth0" => Integer field ip4.src is not compatible with string constant.
inport == 1 => String field inport is not compatible with integer constant.
ip4.src = 1.2.3.4 => Syntax error at `=' expecting relational operator.

ip4.src > {1, 2, 3} => Only == and != operators may be used with value sets.
eth.type > 0x800 => Only == and != operators may be used with nominal field eth.type.
vlan.present > 0 => Only == and != operators may be used with Boolean field vlan.present.

inport != "eth0" => Nominal field inport may only be tested for equality (taking enclosing `!' operators into account).
!(inport == "eth0") => Nominal field inport may only be tested for equality (taking enclosing `!' operators into account).
eth.type != 0x800 => Nominal field eth.type may only be tested for equality (taking enclosing `!' operators into account).
!(eth.type == 0x800) => Nominal field eth.type may only be tested for equality (taking enclosing `!' operators into account).
inport = "eth0" => Syntax error at `=' expecting relational operator.

123 == 123 => Syntax error at `123' expecting field name.

$name => Syntax error at `$name' expecting address set name.

123 == xyzzy => Syntax error at `xyzzy' expecting field name.
xyzzy == 1 => Syntax error at `xyzzy' expecting field name.

inport[1] == 1 => Cannot select subfield of string field inport.

eth.type[] == 1 => Syntax error at `]' expecting small integer.
eth.type[::1] == 1 => Syntax error at `::1' expecting small integer.
eth.type[18446744073709551615] == 1 => Syntax error at `18446744073709551615' expecting small integer.

eth.type[5!] => Syntax error at `!' expecting `]'.

eth.type[5..1] => Invalid bit range 5 to 1.

eth.type[12..16] => Cannot select bits 12 to 16 of 16-bit field eth.type.

eth.type[10] == 1 => Cannot select subfield of nominal field eth.type.

eth.type => Explicit `!= 0' is required for inequality test of multibit field against 0.

!(!(vlan.pcp)) => Explicit `!= 0' is required for inequality test of multibit field against 0.

123 => Syntax error at end of input expecting relational operator.

123 x => Syntax error at `x' expecting relational operator.

{1, "eth0"} => Syntax error at `"eth0"' expecting integer.

eth.type == xyzzy => Syntax error at `xyzzy' expecting constant.

(1 x) => Syntax error at `x' expecting `)'.

!0x800 != eth.type => Missing parentheses around operand of !.

eth.type == 0x800 || eth.type == 0x86dd && ip.proto == 17 => && and || must be parenthesized when used together.

eth.dst == {} => Syntax error at `}' expecting constant.

eth.src > 00:00:00:00:11:11/00:00:00:00:ff:ff => Only == and != operators may be used with masked constants.  Consider using subfields instead (e.g. eth.src[0..15] > 0x1111 in place of eth.src > 00:00:00:00:11:11/00:00:00:00:ff:ff).

ip4.src == ::1 => 128-bit constant is not compatible with 32-bit field ip4.src.

1 == eth.type == 2 => Range expressions must have the form `x < field < y' or `x > field > y', with each `<' optionally replaced by `<=' or `>' by `>=').

eth.dst[40] x => Syntax error at `x' expecting end of input.

ip4.src == {1.2.3.4, $set1, $unknownset} => Syntax error at `$unknownset' expecting address set name.
eth.src == {$set3, badmac, 00:00:00:00:00:01} => Syntax error at `badmac' expecting constant.
_ATEOF

sed 's/ =>.*//' test-cases.txt > input.txt
sed 's/.* => //' test-cases.txt > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:358: ovstest test-ovn parse-expr < input.txt"
at_fn_check_prepare_trace "ovn.at:358"
( $at_check_trace; ovstest test-ovn parse-expr < input.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:358"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2408
#AT_START_2409
at_fn_group_banner 2409 'ovn.at:361' \
  "ovn -- expression annotation" "                   " 124
at_xfail=no
(
  $as_echo "2409. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

cat >test-cases.txt <<'_ATEOF'

ip4.src == 1.2.3.4 => ip4.src == 0x1020304 && eth.type == 0x800
ip4.src != 1.2.3.4 => ip4.src != 0x1020304 && eth.type == 0x800
ip.proto == 123 => ip.proto == 0x7b && (eth.type == 0x800 || eth.type == 0x86dd)
ip.proto == {123, 234} => (ip.proto == 0x7b && (eth.type == 0x800 || eth.type == 0x86dd)) || (ip.proto == 0xea && (eth.type == 0x800 || eth.type == 0x86dd))
ip4.src == 1.2.3.4 && ip4.dst == 5.6.7.8 => ip4.src == 0x1020304 && eth.type == 0x800 && ip4.dst == 0x5060708 && eth.type == 0x800

ip => eth.type == 0x800 || eth.type == 0x86dd
ip == 1 => eth.type == 0x800 || eth.type == 0x86dd
ip[0] == 1 => eth.type == 0x800 || eth.type == 0x86dd
ip > 0 => Only == and != operators may be used with nominal field ip.
!ip => Nominal predicate ip may only be tested positively, e.g. `ip' or `ip == 1' but not `!ip' or `ip == 0'.
ip == 0 => Nominal predicate ip may only be tested positively, e.g. `ip' or `ip == 1' but not `!ip' or `ip == 0'.

vlan.present => vlan.tci[12]
!vlan.present => !vlan.tci[12]

!vlan.pcp => vlan.tci[13..15] == 0 && vlan.tci[12]
vlan.pcp == 1 && vlan.vid == 2 => vlan.tci[13..15] == 0x1 && vlan.tci[12] && vlan.tci[0..11] == 0x2 && vlan.tci[12]
!reg0 && !reg1 && !reg2 && !reg3 => xxreg0[96..127] == 0 && xxreg0[64..95] == 0 && xxreg0[32..63] == 0 && xxreg0[0..31] == 0

ip.first_frag => ip.frag[0] && (eth.type == 0x800 || eth.type == 0x86dd) && (!ip.frag[1] || (eth.type != 0x800 && eth.type != 0x86dd))
!ip.first_frag => !ip.frag[0] || (eth.type != 0x800 && eth.type != 0x86dd) || (ip.frag[1] && (eth.type == 0x800 || eth.type == 0x86dd))
ip.later_frag => ip.frag[1] && (eth.type == 0x800 || eth.type == 0x86dd)

bad_prereq != 0 => Error parsing expression `xyzzy' encountered as prerequisite or predicate of initial expression: Syntax error at `xyzzy' expecting field name.
self_recurse != 0 => Error parsing expression `self_recurse != 0' encountered as prerequisite or predicate of initial expression: Recursive expansion of symbol `self_recurse'.
mutual_recurse_1 != 0 => Error parsing expression `mutual_recurse_2 != 0' encountered as prerequisite or predicate of initial expression: Error parsing expression `mutual_recurse_1 != 0' encountered as prerequisite or predicate of initial expression: Recursive expansion of symbol `mutual_recurse_1'.
mutual_recurse_2 != 0 => Error parsing expression `mutual_recurse_1 != 0' encountered as prerequisite or predicate of initial expression: Error parsing expression `mutual_recurse_2 != 0' encountered as prerequisite or predicate of initial expression: Recursive expansion of symbol `mutual_recurse_2'.
_ATEOF

sed 's/ =>.*//' test-cases.txt > input.txt
sed 's/.* => //' test-cases.txt > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:395: ovstest test-ovn annotate-expr < input.txt"
at_fn_check_prepare_trace "ovn.at:395"
( $at_check_trace; ovstest test-ovn annotate-expr < input.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:395"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2409
#AT_START_2410
at_fn_group_banner 2410 'ovn.at:398' \
  "ovn -- 1-term expression conversion" "            " 124
at_xfail=no
(
  $as_echo "2410. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/ovn.at:399: ovstest test-ovn exhaustive --operation=convert 1"
at_fn_check_prepare_trace "ovn.at:399"
( $at_check_trace; ovstest test-ovn exhaustive --operation=convert 1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Tested converting all 1-terminal expressions with 2 numeric vars (each 3 bits) in terms of operators == != < <= > >= and 2 string vars.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:399"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2410
#AT_START_2411
at_fn_group_banner 2411 'ovn.at:404' \
  "ovn -- 2-term expression conversion" "            " 124
at_xfail=no
(
  $as_echo "2411. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/ovn.at:405: ovstest test-ovn exhaustive --operation=convert 2"
at_fn_check_prepare_trace "ovn.at:405"
( $at_check_trace; ovstest test-ovn exhaustive --operation=convert 2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Tested converting 578 expressions of 2 terminals with 2 numeric vars (each 3 bits) in terms of operators == != < <= > >= and 2 string vars.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:405"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2411
#AT_START_2412
at_fn_group_banner 2412 'ovn.at:410' \
  "ovn -- 3-term expression conversion" "            " 124
at_xfail=no
(
  $as_echo "2412. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/ovn.at:411: ovstest test-ovn exhaustive --operation=convert --bits=2 3"
at_fn_check_prepare_trace "ovn.at:411"
( $at_check_trace; ovstest test-ovn exhaustive --operation=convert --bits=2 3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Tested converting 67410 expressions of 3 terminals with 2 numeric vars (each 2 bits) in terms of operators == != < <= > >= and 2 string vars.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:411"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2412
#AT_START_2413
at_fn_group_banner 2413 'ovn.at:416' \
  "ovn -- 3-term numeric expression simplification" "" 124
at_xfail=no
(
  $as_echo "2413. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/ovn.at:417: ovstest test-ovn exhaustive --operation=simplify --nvars=2 --svars=0 3"
at_fn_check_prepare_trace "ovn.at:417"
( $at_check_trace; ovstest test-ovn exhaustive --operation=simplify --nvars=2 --svars=0 3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Tested simplifying 490770 expressions of 3 terminals with 2 numeric vars (each 3 bits) in terms of operators == != < <= > >=.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:417"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2413
#AT_START_2414
at_fn_group_banner 2414 'ovn.at:422' \
  "ovn -- 4-term string expression simplification" " " 124
at_xfail=no
(
  $as_echo "2414. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/ovn.at:423: ovstest test-ovn exhaustive --operation=simplify --nvars=0 --svars=4 4"
at_fn_check_prepare_trace "ovn.at:423"
( $at_check_trace; ovstest test-ovn exhaustive --operation=simplify --nvars=0 --svars=4 4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Tested simplifying 21978 expressions of 4 terminals with 4 string vars.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:423"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2414
#AT_START_2415
at_fn_group_banner 2415 'ovn.at:428' \
  "ovn -- 3-term mixed expression simplification" "  " 124
at_xfail=no
(
  $as_echo "2415. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/ovn.at:429: ovstest test-ovn exhaustive --operation=simplify --nvars=1 --svars=1 3"
at_fn_check_prepare_trace "ovn.at:429"
( $at_check_trace; ovstest test-ovn exhaustive --operation=simplify --nvars=1 --svars=1 3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Tested simplifying 127890 expressions of 3 terminals with 1 numeric vars (each 3 bits) in terms of operators == != < <= > >= and 1 string vars.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:429"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2415
#AT_START_2416
at_fn_group_banner 2416 'ovn.at:434' \
  "ovn -- simplification special cases" "            " 124
at_xfail=no
(
  $as_echo "2416. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

simplify() {
    echo "$1" | ovstest test-ovn simplify-expr
}
{ set +x
$as_echo "$at_srcdir/ovn.at:438: simplify 'eth.dst == 0/0'"
at_fn_check_prepare_trace "ovn.at:438"
( $at_check_trace; simplify 'eth.dst == 0/0'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:438"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:440: simplify 'eth.dst != 0/0'"
at_fn_check_prepare_trace "ovn.at:440"
( $at_check_trace; simplify 'eth.dst != 0/0'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:440"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:442: simplify 'tcp.dst >= 0'"
at_fn_check_prepare_trace "ovn.at:442"
( $at_check_trace; simplify 'tcp.dst >= 0'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ip.proto == 0x6 && (eth.type == 0x800 || eth.type == 0x86dd)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:442"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:445: simplify 'tcp.dst <= 65535'"
at_fn_check_prepare_trace "ovn.at:445"
( $at_check_trace; simplify 'tcp.dst <= 65535'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ip.proto == 0x6 && (eth.type == 0x800 || eth.type == 0x86dd)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:445"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:448: simplify 'tcp.dst > 0'"
at_fn_check_prepare_trace "ovn.at:448"
( $at_check_trace; simplify 'tcp.dst > 0'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "(tcp.dst[0] || tcp.dst[1] || tcp.dst[2] || tcp.dst[3] || tcp.dst[4] || tcp.dst[5] || tcp.dst[6] || tcp.dst[7] || tcp.dst[8] || tcp.dst[9] || tcp.dst[10] || tcp.dst[11] || tcp.dst[12] || tcp.dst[13] || tcp.dst[14] || tcp.dst[15]) && ip.proto == 0x6 && (eth.type == 0x800 || eth.type == 0x86dd)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:448"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:451: simplify 'tcp.dst < 65535'"
at_fn_check_prepare_trace "ovn.at:451"
( $at_check_trace; simplify 'tcp.dst < 65535'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "(!tcp.dst[0] || !tcp.dst[1] || !tcp.dst[2] || !tcp.dst[3] || !tcp.dst[4] || !tcp.dst[5] || !tcp.dst[6] || !tcp.dst[7] || !tcp.dst[8] || !tcp.dst[9] || !tcp.dst[10] || !tcp.dst[11] || !tcp.dst[12] || !tcp.dst[13] || !tcp.dst[14] || !tcp.dst[15]) && ip.proto == 0x6 && (eth.type == 0x800 || eth.type == 0x86dd)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:451"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2416
#AT_START_2417
at_fn_group_banner 2417 'ovn.at:456' \
  "ovn -- is_chassis_resident simplification" "      " 124
at_xfail=no
(
  $as_echo "2417. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

simplify() {
    echo "$1" | ovstest test-ovn simplify-expr
}
{ set +x
$as_echo "$at_srcdir/ovn.at:460: simplify 'is_chassis_resident(\"eth1\")'"
at_fn_check_prepare_trace "ovn.at:460"
( $at_check_trace; simplify 'is_chassis_resident("eth1")'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:460"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:462: simplify 'is_chassis_resident(\"eth2\")'"
at_fn_check_prepare_trace "ovn.at:462"
( $at_check_trace; simplify 'is_chassis_resident("eth2")'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:462"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:464: simplify '!is_chassis_resident(\"eth1\")'"
at_fn_check_prepare_trace "ovn.at:464"
( $at_check_trace; simplify '!is_chassis_resident("eth1")'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:464"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:466: simplify '!is_chassis_resident(\"eth2\")'"
at_fn_check_prepare_trace "ovn.at:466"
( $at_check_trace; simplify '!is_chassis_resident("eth2")'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:466"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2417
#AT_START_2418
at_fn_group_banner 2418 'ovn.at:470' \
  "ovn -- 4-term numeric expression normalization" " " 124
at_xfail=no
(
  $as_echo "2418. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/ovn.at:471: ovstest test-ovn exhaustive --operation=normalize --nvars=3 --svars=0 --bits=1 4"
at_fn_check_prepare_trace "ovn.at:471"
( $at_check_trace; ovstest test-ovn exhaustive --operation=normalize --nvars=3 --svars=0 --bits=1 4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Tested normalizing 1874026 expressions of 4 terminals with 3 numeric vars (each 1 bits) in terms of operators == != < <= > >=.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:471"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2418
#AT_START_2419
at_fn_group_banner 2419 'ovn.at:476' \
  "ovn -- 4-term string expression normalization" "  " 124
at_xfail=no
(
  $as_echo "2419. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/ovn.at:477: ovstest test-ovn exhaustive --operation=normalize --nvars=0 --svars=3 --bits=1 4"
at_fn_check_prepare_trace "ovn.at:477"
( $at_check_trace; ovstest test-ovn exhaustive --operation=normalize --nvars=0 --svars=3 --bits=1 4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Tested normalizing 11242 expressions of 4 terminals with 3 string vars.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:477"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2419
#AT_START_2420
at_fn_group_banner 2420 'ovn.at:482' \
  "ovn -- 4-term mixed expression normalization" "   " 124
at_xfail=no
(
  $as_echo "2420. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/ovn.at:483: ovstest test-ovn exhaustive --operation=normalize --nvars=1 --bits=1 --svars=2 4"
at_fn_check_prepare_trace "ovn.at:483"
( $at_check_trace; ovstest test-ovn exhaustive --operation=normalize --nvars=1 --bits=1 --svars=2 4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Tested normalizing 175978 expressions of 4 terminals with 1 numeric vars (each 1 bits) in terms of operators == != < <= > >= and 2 string vars.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:483"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2420
#AT_START_2421
at_fn_group_banner 2421 'ovn.at:488' \
  "ovn -- 5-term numeric expression normalization" " " 124
at_xfail=no
(
  $as_echo "2421. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/ovn.at:489: ovstest test-ovn exhaustive --operation=normalize --nvars=3 --svars=0 --bits=1 --relops='==' 5"
at_fn_check_prepare_trace "ovn.at:489"
( $at_check_trace; ovstest test-ovn exhaustive --operation=normalize --nvars=3 --svars=0 --bits=1 --relops='==' 5
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Tested normalizing 1317600 expressions of 5 terminals with 3 numeric vars (each 1 bits) in terms of operators ==.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:489"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2421
#AT_START_2422
at_fn_group_banner 2422 'ovn.at:494' \
  "ovn -- 5-term string expression normalization" "  " 124
at_xfail=no
(
  $as_echo "2422. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/ovn.at:495: ovstest test-ovn exhaustive --operation=normalize --nvars=0 --svars=3 --bits=1 --relops='==' 5"
at_fn_check_prepare_trace "ovn.at:495"
( $at_check_trace; ovstest test-ovn exhaustive --operation=normalize --nvars=0 --svars=3 --bits=1 --relops='==' 5
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Tested normalizing 368550 expressions of 5 terminals with 3 string vars.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:495"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2422
#AT_START_2423
at_fn_group_banner 2423 'ovn.at:500' \
  "ovn -- 5-term mixed expression normalization" "   " 124
at_xfail=no
(
  $as_echo "2423. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

{ set +x
$as_echo "$at_srcdir/ovn.at:501: ovstest test-ovn exhaustive --operation=normalize --nvars=1 --svars=1 --bits=1 --relops='==' 5"
at_fn_check_prepare_trace "ovn.at:501"
( $at_check_trace; ovstest test-ovn exhaustive --operation=normalize --nvars=1 --svars=1 --bits=1 --relops='==' 5
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Tested normalizing 216000 expressions of 5 terminals with 1 numeric vars (each 1 bits) in terms of operators == and 1 string vars.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:501"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2423
#AT_START_2424
at_fn_group_banner 2424 'ovn.at:506' \
  "ovn -- 4-term numeric expressions to flows" "     " 124
at_xfail=no
(
  $as_echo "2424. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovn.at:508: ovstest test-ovn exhaustive --operation=flow --nvars=2 --svars=0 --bits=2 --relops='==' 4"
at_fn_check_prepare_trace "ovn.at:508"
( $at_check_trace; ovstest test-ovn exhaustive --operation=flow --nvars=2 --svars=0 --bits=2 --relops='==' 4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Tested converting to flows 175978 expressions of 4 terminals with 2 numeric vars (each 2 bits) in terms of operators ==.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:508"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2424
#AT_START_2425
at_fn_group_banner 2425 'ovn.at:513' \
  "ovn -- 4-term string expressions to flows" "      " 124
at_xfail=no
(
  $as_echo "2425. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovn.at:515: ovstest test-ovn exhaustive --operation=flow --nvars=0 --svars=4 4"
at_fn_check_prepare_trace "ovn.at:515"
( $at_check_trace; ovstest test-ovn exhaustive --operation=flow --nvars=0 --svars=4 4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Tested converting to flows 21978 expressions of 4 terminals with 4 string vars.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:515"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2425
#AT_START_2426
at_fn_group_banner 2426 'ovn.at:520' \
  "ovn -- 4-term mixed expressions to flows" "       " 124
at_xfail=no
(
  $as_echo "2426. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovn.at:522: ovstest test-ovn exhaustive --operation=flow --nvars=1 --bits=2 --svars=1 --relops='==' 4"
at_fn_check_prepare_trace "ovn.at:522"
( $at_check_trace; ovstest test-ovn exhaustive --operation=flow --nvars=1 --bits=2 --svars=1 --relops='==' 4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Tested converting to flows 48312 expressions of 4 terminals with 1 numeric vars (each 2 bits) in terms of operators == and 1 string vars.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:522"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2426
#AT_START_2427
at_fn_group_banner 2427 'ovn.at:527' \
  "ovn -- 3-term numeric expressions to flows" "     " 124
at_xfail=no
(
  $as_echo "2427. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


{ set +x
$as_echo "$at_srcdir/ovn.at:529: ovstest test-ovn exhaustive --operation=flow --nvars=3 --svars=0 --bits=3 --relops='==' 3"
at_fn_check_prepare_trace "ovn.at:529"
( $at_check_trace; ovstest test-ovn exhaustive --operation=flow --nvars=3 --svars=0 --bits=3 --relops='==' 3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Tested converting to flows 41328 expressions of 3 terminals with 3 numeric vars (each 3 bits) in terms of operators ==.
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:529"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2427
#AT_START_2428
at_fn_group_banner 2428 'ovn.at:534' \
  "ovn -- converting expressions to flows -- string fields" "" 124
at_xfail=no
(
  $as_echo "2428. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


expr_to_flow () {
    echo "$1" | ovstest test-ovn expr-to-flows | sort
}
{ set +x
$as_echo "$at_srcdir/ovn.at:539: expr_to_flow 'inport == \"eth0\"'"
at_fn_check_prepare_trace "ovn.at:539"
( $at_check_trace; expr_to_flow 'inport == "eth0"'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "reg14=0x5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:539"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:541: expr_to_flow 'inport == \"eth1\"'"
at_fn_check_prepare_trace "ovn.at:541"
( $at_check_trace; expr_to_flow 'inport == "eth1"'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "reg14=0x6
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:541"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:543: expr_to_flow 'inport == \"eth2\"'"
at_fn_check_prepare_trace "ovn.at:543"
( $at_check_trace; expr_to_flow 'inport == "eth2"'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "(no flows)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:543"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:545: expr_to_flow 'inport == \"eth0\" && ip'"
at_fn_check_prepare_trace "ovn.at:545"
( $at_check_trace; expr_to_flow 'inport == "eth0" && ip'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ip,reg14=0x5
ipv6,reg14=0x5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:545"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:549: expr_to_flow 'inport == \"eth1\" && ip'"
at_fn_check_prepare_trace "ovn.at:549"
( $at_check_trace; expr_to_flow 'inport == "eth1" && ip'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ip,reg14=0x6
ipv6,reg14=0x6
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:549"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:553: expr_to_flow 'inport == \"eth2\" && ip'"
at_fn_check_prepare_trace "ovn.at:553"
( $at_check_trace; expr_to_flow 'inport == "eth2" && ip'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "(no flows)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:553"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:555: expr_to_flow 'inport == {\"eth0\", \"eth1\", \"eth2\", \"LOCAL\"}'"
at_fn_check_prepare_trace "ovn.at:555"
( $at_check_trace; expr_to_flow 'inport == {"eth0", "eth1", "eth2", "LOCAL"}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "reg14=0x5
reg14=0x6
reg14=0xfffe
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:555"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:560: expr_to_flow 'inport == {\"eth0\", \"eth1\", \"eth2\"} && ip'"
at_fn_check_prepare_trace "ovn.at:560"
( $at_check_trace; expr_to_flow 'inport == {"eth0", "eth1", "eth2"} && ip'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ip,reg14=0x5
ip,reg14=0x6
ipv6,reg14=0x5
ipv6,reg14=0x6
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:560"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:566: expr_to_flow 'inport == \"eth0\" && inport == \"eth1\"'"
at_fn_check_prepare_trace "ovn.at:566"
( $at_check_trace; expr_to_flow 'inport == "eth0" && inport == "eth1"'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "(no flows)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:566"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2428
#AT_START_2429
at_fn_group_banner 2429 'ovn.at:571' \
  "ovn -- converting expressions to flows -- address sets" "" 124
at_xfail=no
(
  $as_echo "2429. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


expr_to_flow () {
    echo "$1" | ovstest test-ovn expr-to-flows | sort
}
{ set +x
$as_echo "$at_srcdir/ovn.at:576: expr_to_flow 'ip4.src == {10.0.0.1, 10.0.0.2, 10.0.0.3}'"
at_fn_check_prepare_trace "ovn.at:576"
( $at_check_trace; expr_to_flow 'ip4.src == {10.0.0.1, 10.0.0.2, 10.0.0.3}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ip,nw_src=10.0.0.1
ip,nw_src=10.0.0.2
ip,nw_src=10.0.0.3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:576"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:581: expr_to_flow 'ip4.src == \$set1'"
at_fn_check_prepare_dynamic "expr_to_flow 'ip4.src == $set1'" "ovn.at:581"
( $at_check_trace; expr_to_flow 'ip4.src == $set1'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ip,nw_src=10.0.0.1
ip,nw_src=10.0.0.2
ip,nw_src=10.0.0.3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:581"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:586: expr_to_flow 'ip4.src == {1.2.3.4, \$set1}'"
at_fn_check_prepare_dynamic "expr_to_flow 'ip4.src == {1.2.3.4, $set1}'" "ovn.at:586"
( $at_check_trace; expr_to_flow 'ip4.src == {1.2.3.4, $set1}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ip,nw_src=1.2.3.4
ip,nw_src=10.0.0.1
ip,nw_src=10.0.0.2
ip,nw_src=10.0.0.3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:586"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:592: expr_to_flow 'ip4.src == {1.2.0.0/20, 5.5.5.0/24, \$set1}'"
at_fn_check_prepare_dynamic "expr_to_flow 'ip4.src == {1.2.0.0/20, 5.5.5.0/24, $set1}'" "ovn.at:592"
( $at_check_trace; expr_to_flow 'ip4.src == {1.2.0.0/20, 5.5.5.0/24, $set1}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ip,nw_src=1.2.0.0/20
ip,nw_src=10.0.0.1
ip,nw_src=10.0.0.2
ip,nw_src=10.0.0.3
ip,nw_src=5.5.5.0/24
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:592"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:599: expr_to_flow 'ip6.src == {::1, ::2, ::3}'"
at_fn_check_prepare_trace "ovn.at:599"
( $at_check_trace; expr_to_flow 'ip6.src == {::1, ::2, ::3}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ipv6,ipv6_src=::1
ipv6,ipv6_src=::2
ipv6,ipv6_src=::3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:599"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:604: expr_to_flow 'ip6.src == {::1, \$set2, ::4}'"
at_fn_check_prepare_dynamic "expr_to_flow 'ip6.src == {::1, $set2, ::4}'" "ovn.at:604"
( $at_check_trace; expr_to_flow 'ip6.src == {::1, $set2, ::4}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ipv6,ipv6_src=::1
ipv6,ipv6_src=::2
ipv6,ipv6_src=::3
ipv6,ipv6_src=::4
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:604"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:610: expr_to_flow 'eth.src == {00:00:00:00:00:01, 00:00:00:00:00:02, 00:00:00:00:00:03}'"
at_fn_check_prepare_trace "ovn.at:610"
( $at_check_trace; expr_to_flow 'eth.src == {00:00:00:00:00:01, 00:00:00:00:00:02, 00:00:00:00:00:03}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dl_src=00:00:00:00:00:01
dl_src=00:00:00:00:00:02
dl_src=00:00:00:00:00:03
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:610"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:615: expr_to_flow 'eth.src == {\$set3}'"
at_fn_check_prepare_dynamic "expr_to_flow 'eth.src == {$set3}'" "ovn.at:615"
( $at_check_trace; expr_to_flow 'eth.src == {$set3}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dl_src=00:00:00:00:00:01
dl_src=00:00:00:00:00:02
dl_src=00:00:00:00:00:03
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:615"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:620: expr_to_flow 'eth.src == {00:00:00:00:00:01, \$set3, ba:be:be:ef:de:ad, \$set3}'"
at_fn_check_prepare_dynamic "expr_to_flow 'eth.src == {00:00:00:00:00:01, $set3, ba:be:be:ef:de:ad, $set3}'" "ovn.at:620"
( $at_check_trace; expr_to_flow 'eth.src == {00:00:00:00:00:01, $set3, ba:be:be:ef:de:ad, $set3}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dl_src=00:00:00:00:00:01
dl_src=00:00:00:00:00:02
dl_src=00:00:00:00:00:03
dl_src=ba:be:be:ef:de:ad
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:620"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:626: expr_to_flow 'ip4.src == {\$set4}'"
at_fn_check_prepare_dynamic "expr_to_flow 'ip4.src == {$set4}'" "ovn.at:626"
( $at_check_trace; expr_to_flow 'ip4.src == {$set4}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "(no flows)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:626"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:629: expr_to_flow 'ip4.src == {1.2.3.4, \$set4}'"
at_fn_check_prepare_dynamic "expr_to_flow 'ip4.src == {1.2.3.4, $set4}'" "ovn.at:629"
( $at_check_trace; expr_to_flow 'ip4.src == {1.2.3.4, $set4}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ip,nw_src=1.2.3.4
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:629"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:632: expr_to_flow 'ip4.src == 1.2.3.4 || ip4.src == {\$set4}'"
at_fn_check_prepare_dynamic "expr_to_flow 'ip4.src == 1.2.3.4 || ip4.src == {$set4}'" "ovn.at:632"
( $at_check_trace; expr_to_flow 'ip4.src == 1.2.3.4 || ip4.src == {$set4}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ip,nw_src=1.2.3.4
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:632"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:635: expr_to_flow 'ip4.src != {\$set4}'"
at_fn_check_prepare_dynamic "expr_to_flow 'ip4.src != {$set4}'" "ovn.at:635"
( $at_check_trace; expr_to_flow 'ip4.src != {$set4}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:635"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:638: expr_to_flow 'ip4.src != {1.0.0.0/8, \$set4}'"
at_fn_check_prepare_dynamic "expr_to_flow 'ip4.src != {1.0.0.0/8, $set4}'" "ovn.at:638"
( $at_check_trace; expr_to_flow 'ip4.src != {1.0.0.0/8, $set4}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ip,nw_src=0.0.0.0/1.0.0.0
ip,nw_src=128.0.0.0/1
ip,nw_src=16.0.0.0/16.0.0.0
ip,nw_src=2.0.0.0/2.0.0.0
ip,nw_src=32.0.0.0/32.0.0.0
ip,nw_src=4.0.0.0/4.0.0.0
ip,nw_src=64.0.0.0/64.0.0.0
ip,nw_src=8.0.0.0/8.0.0.0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:638"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:648: expr_to_flow 'ip4.src != 1.0.0.0/8 && ip4.src != {\$set4}'"
at_fn_check_prepare_dynamic "expr_to_flow 'ip4.src != 1.0.0.0/8 && ip4.src != {$set4}'" "ovn.at:648"
( $at_check_trace; expr_to_flow 'ip4.src != 1.0.0.0/8 && ip4.src != {$set4}'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ip,nw_src=0.0.0.0/1.0.0.0
ip,nw_src=128.0.0.0/1
ip,nw_src=16.0.0.0/16.0.0.0
ip,nw_src=2.0.0.0/2.0.0.0
ip,nw_src=32.0.0.0/32.0.0.0
ip,nw_src=4.0.0.0/4.0.0.0
ip,nw_src=64.0.0.0/64.0.0.0
ip,nw_src=8.0.0.0/8.0.0.0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:648"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2429
#AT_START_2430
at_fn_group_banner 2430 'ovn.at:660' \
  "ovn -- action parsing" "                          " 124
at_xfail=no
(
  $as_echo "2430. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

cat >test-cases.txt <<'_ATEOF'
# drop
drop;
    encodes as drop
drop; next;
    Syntax error at `next' expecting end of input.
next; drop;
    Syntax error at `drop' expecting action.

# output
output;
    encodes as resubmit(,64)

# next
next;
    encodes as resubmit(,19)
next(11);
    formats as next;
    encodes as resubmit(,19)
next(0);
    encodes as resubmit(,8)
next(23);
    encodes as resubmit(,31)

next();
    Syntax error at `)' expecting "pipeline" or "table".
next(10;
    Syntax error at `;' expecting `)'.
next(24);
    "next" action cannot advance beyond table 23.

next(table=11);
    formats as next;
    encodes as resubmit(,19)
next(pipeline=ingress);
    formats as next;
    encodes as resubmit(,19)
next(table=11, pipeline=ingress);
    formats as next;
    encodes as resubmit(,19)
next(pipeline=ingress, table=11);
    formats as next;
    encodes as resubmit(,19)

next(pipeline=egress);
    "next" action cannot advance from ingress to egress pipeline (use "output" action instead)

next(table=10);
    formats as next(10);
    encodes as resubmit(,18)

# Loading a constant value.
tcp.dst=80;
    formats as tcp.dst = 80;
    encodes as set_field:80->tcp_dst
    has prereqs ip.proto == 0x6 && (eth.type == 0x800 || eth.type == 0x86dd)
eth.dst[40] = 1;
    encodes as set_field:01:00:00:00:00:00/01:00:00:00:00:00->eth_dst
vlan.pcp = 2;
    encodes as set_field:0x4000/0xe000->vlan_tci
    has prereqs vlan.tci[12]
vlan.tci[13..15] = 2;
    encodes as set_field:0x4000/0xe000->vlan_tci
inport = "";
    encodes as set_field:0->reg14
ip.ttl=4;
    formats as ip.ttl = 4;
    encodes as set_field:4->nw_ttl
    has prereqs eth.type == 0x800 || eth.type == 0x86dd
outport="eth0"; next; outport="LOCAL"; next;
    formats as outport = "eth0"; next; outport = "LOCAL"; next;
    encodes as set_field:0x5->reg15,resubmit(,19),set_field:0xfffe->reg15,resubmit(,19)

inport[1] = 1;
    Cannot select subfield of string field inport.
ip.proto[1] = 1;
    Cannot select subfield of nominal field ip.proto.
eth.dst[40] == 1;
    Syntax error at `==' expecting `=' or `<->'.
ip = 1;
    Predicate symbol ip used where lvalue required.
ip.proto = 6;
    Field ip.proto is not modifiable.
inport = {"a", "b"};
    Syntax error at `{' expecting constant.
inport = {};
    Syntax error at `{' expecting constant.
bad_prereq = 123;
    Error parsing expression `xyzzy' encountered as prerequisite or predicate of initial expression: Syntax error at `xyzzy' expecting field name.
self_recurse = 123;
    Error parsing expression `self_recurse != 0' encountered as prerequisite or predicate of initial expression: Error parsing expression `self_recurse != 0' encountered as prerequisite or predicate of initial expression: Recursive expansion of symbol `self_recurse'.
vlan.present = 0;
    Predicate symbol vlan.present used where lvalue required.

# Moving one field into another.
reg0=reg1;
    formats as reg0 = reg1;
    encodes as move:NXM_NX_XXREG0[64..95]->NXM_NX_XXREG0[96..127]
vlan.pcp = reg0[0..2];
    encodes as move:NXM_NX_XXREG0[96..98]->NXM_OF_VLAN_TCI[13..15]
    has prereqs vlan.tci[12]
reg0[10] = vlan.pcp[1];
    encodes as move:NXM_OF_VLAN_TCI[14]->NXM_NX_XXREG0[106]
    has prereqs vlan.tci[12]
outport = inport;
    encodes as move:NXM_NX_REG14[]->NXM_NX_REG15[]

reg0[0] = vlan.present;
    Predicate symbol vlan.present used where lvalue required.
reg0 = reg1[0..10];
    Can't assign 11-bit value to 32-bit destination.
inport = reg0;
    Can't assign integer field (reg0) to string field (inport).
inport = big_string;
    String fields inport and big_string are incompatible for assignment.
ip.proto = reg0[0..7];
    Field ip.proto is not modifiable.

# Exchanging fields.
reg0 <-> reg1;
    encodes as push:NXM_NX_XXREG0[64..95],push:NXM_NX_XXREG0[96..127],pop:NXM_NX_XXREG0[64..95],pop:NXM_NX_XXREG0[96..127]
vlan.pcp <-> reg0[0..2];
    encodes as push:NXM_NX_XXREG0[96..98],push:NXM_OF_VLAN_TCI[13..15],pop:NXM_NX_XXREG0[96..98],pop:NXM_OF_VLAN_TCI[13..15]
    has prereqs vlan.tci[12]
reg0[10] <-> vlan.pcp[1];
    encodes as push:NXM_OF_VLAN_TCI[14],push:NXM_NX_XXREG0[106],pop:NXM_OF_VLAN_TCI[14],pop:NXM_NX_XXREG0[106]
    has prereqs vlan.tci[12]
outport <-> inport;
    encodes as push:NXM_NX_REG14[],push:NXM_NX_REG15[],pop:NXM_NX_REG14[],pop:NXM_NX_REG15[]

reg0[0] <-> vlan.present;
    Predicate symbol vlan.present used where lvalue required.
reg0 <-> reg1[0..10];
    Can't exchange 32-bit field with 11-bit field.
inport <-> reg0;
    Can't exchange string field (inport) with integer field (reg0).
inport <-> big_string;
    String fields inport and big_string are incompatible for exchange.
ip.proto <-> reg0[0..7];
    Field ip.proto is not modifiable.
reg0[0..7] <-> ip.proto;
    Field ip.proto is not modifiable.

# TTL decrement.
ip.ttl--;
    encodes as dec_ttl
    has prereqs ip
ip.ttl
    Syntax error at end of input expecting `--'.

# load balancing.
ct_lb;
    encodes as ct(table=19,zone=NXM_NX_REG13[0..15],nat)
    has prereqs ip
ct_lb();
    formats as ct_lb;
    encodes as ct(table=19,zone=NXM_NX_REG13[0..15],nat)
    has prereqs ip
ct_lb(192.168.1.2:80, 192.168.1.3:80);
    encodes as group:1
    has prereqs ip
ct_lb(192.168.1.2, 192.168.1.3, );
    formats as ct_lb(192.168.1.2, 192.168.1.3);
    encodes as group:2
    has prereqs ip
ct_lb(fd0f::2, fd0f::3, );
    formats as ct_lb(fd0f::2, fd0f::3);
    encodes as group:3
    has prereqs ip

ct_lb(192.168.1.2:);
    Syntax error at `)' expecting port number.
ct_lb(192.168.1.2:123456);
    Syntax error at `123456' expecting port number.
ct_lb(foo);
    Syntax error at `foo' expecting IP address.
ct_lb([192.168.1.2]);
    Syntax error at `192.168.1.2' expecting IPv6 address.

# ct_next
ct_next;
    encodes as ct(table=19,zone=NXM_NX_REG13[0..15])
    has prereqs ip

# ct_commit
ct_commit;
    encodes as ct(commit,zone=NXM_NX_REG13[0..15])
    has prereqs ip
ct_commit();
    formats as ct_commit;
    encodes as ct(commit,zone=NXM_NX_REG13[0..15])
    has prereqs ip
ct_commit(ct_mark=1);
    formats as ct_commit(ct_mark=0x1);
    encodes as ct(commit,zone=NXM_NX_REG13[0..15],exec(set_field:0x1->ct_mark))
    has prereqs ip
ct_commit(ct_mark=1/1);
    formats as ct_commit(ct_mark=0x1/0x1);
    encodes as ct(commit,zone=NXM_NX_REG13[0..15],exec(set_field:0x1/0x1->ct_mark))
    has prereqs ip
ct_commit(ct_label=1);
    formats as ct_commit(ct_label=0x1);
    encodes as ct(commit,zone=NXM_NX_REG13[0..15],exec(set_field:0x1->ct_label))
    has prereqs ip
ct_commit(ct_label=1/1);
    formats as ct_commit(ct_label=0x1/0x1);
    encodes as ct(commit,zone=NXM_NX_REG13[0..15],exec(set_field:0x1/0x1->ct_label))
    has prereqs ip
ct_commit(ct_mark=1, ct_label=2);
    formats as ct_commit(ct_mark=0x1, ct_label=0x2);
    encodes as ct(commit,zone=NXM_NX_REG13[0..15],exec(set_field:0x1->ct_mark,set_field:0x2->ct_label))
    has prereqs ip

ct_commit(ct_label=0x01020304050607080910111213141516);
    formats as ct_commit(ct_label=0x1020304050607080910111213141516);
    encodes as ct(commit,zone=NXM_NX_REG13[0..15],exec(set_field:0x1020304050607080910111213141516->ct_label))
    has prereqs ip
ct_commit(ct_label=0x181716151413121110090807060504030201);
    formats as ct_commit(ct_label=0x16151413121110090807060504030201);
    encodes as ct(commit,zone=NXM_NX_REG13[0..15],exec(set_field:0x16151413121110090807060504030201->ct_label))
    has prereqs ip
ct_commit(ct_label=0x1000000000000000000000000000000/0x1000000000000000000000000000000);
    encodes as ct(commit,zone=NXM_NX_REG13[0..15],exec(set_field:0x1000000000000000000000000000000/0x1000000000000000000000000000000->ct_label))
    has prereqs ip
ct_commit(ct_label=18446744073709551615);
    formats as ct_commit(ct_label=0xffffffffffffffff);
    encodes as ct(commit,zone=NXM_NX_REG13[0..15],exec(set_field:0xffffffffffffffff->ct_label))
    has prereqs ip
ct_commit(ct_label=18446744073709551616);
    Decimal constants must be less than 2**64.

# ct_dnat
ct_dnat;
    encodes as ct(table=19,zone=NXM_NX_REG11[0..15],nat)
    has prereqs ip
ct_dnat(192.168.1.2);
    encodes as ct(commit,table=19,zone=NXM_NX_REG11[0..15],nat(dst=192.168.1.2))
    has prereqs ip

ct_dnat(192.168.1.2, 192.168.1.3);
    Syntax error at `,' expecting `)'.
ct_dnat(foo);
    Syntax error at `foo' expecting IPv4 address.
ct_dnat(foo, bar);
    Syntax error at `foo' expecting IPv4 address.
ct_dnat();
    Syntax error at `)' expecting IPv4 address.

# ct_snat
ct_snat;
    encodes as ct(table=19,zone=NXM_NX_REG12[0..15],nat)
    has prereqs ip
ct_snat(192.168.1.2);
    encodes as ct(commit,table=19,zone=NXM_NX_REG12[0..15],nat(src=192.168.1.2))
    has prereqs ip

ct_snat(192.168.1.2, 192.168.1.3);
    Syntax error at `,' expecting `)'.
ct_snat(foo);
    Syntax error at `foo' expecting IPv4 address.
ct_snat(foo, bar);
    Syntax error at `foo' expecting IPv4 address.
ct_snat();
    Syntax error at `)' expecting IPv4 address.

# ct_clear
ct_clear;
    encodes as ct_clear

# clone
clone { ip4.dst = 255.255.255.255; output; }; next;
    encodes as clone(set_field:255.255.255.255->ip_dst,resubmit(,64)),resubmit(,19)
    has prereqs eth.type == 0x800

# arp
arp { eth.dst = ff:ff:ff:ff:ff:ff; output; }; output;
    encodes as controller(userdata=00.00.00.00.00.00.00.00.00.19.00.10.80.00.06.06.ff.ff.ff.ff.ff.ff.00.00.ff.ff.00.10.00.00.23.20.00.0e.ff.f8.40.00.00.00),resubmit(,64)
    has prereqs ip4
arp { };
    formats as arp { drop; };
    encodes as controller(userdata=00.00.00.00.00.00.00.00)
    has prereqs ip4

# get_arp
get_arp(outport, ip4.dst);
    encodes as push:NXM_NX_REG0[],push:NXM_OF_IP_DST[],pop:NXM_NX_REG0[],set_field:00:00:00:00:00:00->eth_dst,resubmit(,65),pop:NXM_NX_REG0[]
    has prereqs eth.type == 0x800
get_arp(inport, reg0);
    encodes as push:NXM_NX_REG15[],push:NXM_NX_REG0[],push:NXM_NX_XXREG0[96..127],push:NXM_NX_REG14[],pop:NXM_NX_REG15[],pop:NXM_NX_REG0[],set_field:00:00:00:00:00:00->eth_dst,resubmit(,65),pop:NXM_NX_REG0[],pop:NXM_NX_REG15[]

get_arp;
    Syntax error at `;' expecting `('.
get_arp();
    Syntax error at `)' expecting field name.
get_arp(inport);
    Syntax error at `)' expecting `,'.
get_arp(inport ip4.dst);
    Syntax error at `ip4.dst' expecting `,'.
get_arp(inport, ip4.dst;
    Syntax error at `;' expecting `)'.
get_arp(inport, eth.dst);
    Cannot use 48-bit field eth.dst[0..47] where 32-bit field is required.
get_arp(inport, outport);
    Cannot use string field outport where numeric field is required.
get_arp(reg0, ip4.dst);
    Cannot use numeric field reg0 where string field is required.

# put_arp
put_arp(inport, arp.spa, arp.sha);
    encodes as push:NXM_NX_REG0[],push:NXM_OF_ETH_SRC[],push:NXM_NX_ARP_SHA[],push:NXM_OF_ARP_SPA[],pop:NXM_NX_REG0[],pop:NXM_OF_ETH_SRC[],controller(userdata=00.00.00.01.00.00.00.00),pop:NXM_OF_ETH_SRC[],pop:NXM_NX_REG0[]
    has prereqs eth.type == 0x806 && eth.type == 0x806

# put_dhcp_opts
reg1[0] = put_dhcp_opts(offerip = 1.2.3.4, router = 10.0.0.1);
    encodes as controller(userdata=00.00.00.02.00.00.00.00.00.01.de.10.00.00.00.40.01.02.03.04.03.04.0a.00.00.01,pause)
reg2[5] = put_dhcp_opts(offerip=10.0.0.4,router=10.0.0.1,netmask=255.255.254.0,mtu=1400,domain="ovn.org");
    formats as reg2[5] = put_dhcp_opts(offerip = 10.0.0.4, router = 10.0.0.1, netmask = 255.255.254.0, mtu = 1400, domain = "ovn.org");
    encodes as controller(userdata=00.00.00.02.00.00.00.00.00.01.de.10.00.00.00.25.0a.00.00.04.03.04.0a.00.00.01.01.04.ff.ff.fe.00.1a.02.05.78.0f.07.6f.76.6e.2e.6f.72.67,pause)
reg0[15] = put_dhcp_opts(offerip=10.0.0.4,router=10.0.0.1,netmask=255.255.255.0,mtu=1400,ip_forward_enable=1,default_ttl=121,dns_server={8.8.8.8,7.7.7.7},classless_static_route={30.0.0.0/24,10.0.0.4,40.0.0.0/16,10.0.0.6,0.0.0.0/0,10.0.0.1},ethernet_encap=1,router_discovery=0);
    formats as reg0[15] = put_dhcp_opts(offerip = 10.0.0.4, router = 10.0.0.1, netmask = 255.255.255.0, mtu = 1400, ip_forward_enable = 1, default_ttl = 121, dns_server = {8.8.8.8, 7.7.7.7}, classless_static_route = {30.0.0.0/24, 10.0.0.4, 40.0.0.0/16, 10.0.0.6, 0.0.0.0/0, 10.0.0.1}, ethernet_encap = 1, router_discovery = 0);
    encodes as controller(userdata=00.00.00.02.00.00.00.00.00.01.de.10.00.00.00.6f.0a.00.00.04.03.04.0a.00.00.01.01.04.ff.ff.ff.00.1a.02.05.78.13.01.01.17.01.79.06.08.08.08.08.08.07.07.07.07.79.14.18.1e.00.00.0a.00.00.04.10.28.00.0a.00.00.06.00.0a.00.00.01.24.01.01.1f.01.00,pause)

reg1[0..1] = put_dhcp_opts(offerip = 1.2.3.4, router = 10.0.0.1);
    Cannot use 2-bit field reg1[0..1] where 1-bit field is required.
reg1[0] = put_dhcp_opts();
    put_dhcp_opts requires offerip to be specified.
reg1[0] = put_dhcp_opts(x = 1.2.3.4, router = 10.0.0.1);
    Syntax error at `x' expecting DHCPv4 option name.
reg1[0] = put_dhcp_opts(router = 10.0.0.1);
    put_dhcp_opts requires offerip to be specified.
reg1[0] = put_dhcp_opts(offerip=1.2.3.4, "hi");
    Syntax error at `"hi"'.
reg1[0] = put_dhcp_opts(offerip=1.2.3.4, xyzzy);
    Syntax error at `xyzzy' expecting DHCPv4 option name.
reg1[0] = put_dhcp_opts(offerip="xyzzy");
    DHCPv4 option offerip requires numeric value.
reg1[0] = put_dhcp_opts(offerip=1.2.3.4, domain=1.2.3.4);
    DHCPv4 option domain requires string value.

# nd_ns
nd_ns { nd.target = xxreg0; output; };
    encodes as controller(userdata=00.00.00.09.00.00.00.00.ff.ff.00.18.00.00.23.20.00.06.00.80.00.00.00.00.00.01.de.10.00.01.2e.10.ff.ff.00.10.00.00.23.20.00.0e.ff.f8.40.00.00.00)
    has prereqs ip6

nd_ns { };
    formats as nd_ns { drop; };
    encodes as controller(userdata=00.00.00.09.00.00.00.00)
    has prereqs ip6

# nd_na
nd_na { eth.src = 12:34:56:78:9a:bc; nd.tll = 12:34:56:78:9a:bc; outport = inport; inport = ""; /* Allow sending out inport. */ output; };
    formats as nd_na { eth.src = 12:34:56:78:9a:bc; nd.tll = 12:34:56:78:9a:bc; outport = inport; inport = ""; output; };
    encodes as controller(userdata=00.00.00.03.00.00.00.00.00.19.00.10.80.00.08.06.12.34.56.78.9a.bc.00.00.00.19.00.10.80.00.42.06.12.34.56.78.9a.bc.00.00.ff.ff.00.18.00.00.23.20.00.06.00.20.00.00.00.00.00.01.1c.04.00.01.1e.04.00.19.00.10.00.01.1c.04.00.00.00.00.00.00.00.00.ff.ff.00.10.00.00.23.20.00.0e.ff.f8.40.00.00.00)
    has prereqs nd_ns
# nd_na_router
nd_na_router { eth.src = 12:34:56:78:9a:bc; nd.tll = 12:34:56:78:9a:bc; outport = inport; inport = ""; /* Allow sending out inport. */ output; };
    formats as nd_na_router { eth.src = 12:34:56:78:9a:bc; nd.tll = 12:34:56:78:9a:bc; outport = inport; inport = ""; output; };
    encodes as controller(userdata=00.00.00.0a.00.00.00.00.00.19.00.10.80.00.08.06.12.34.56.78.9a.bc.00.00.00.19.00.10.80.00.42.06.12.34.56.78.9a.bc.00.00.ff.ff.00.18.00.00.23.20.00.06.00.20.00.00.00.00.00.01.1c.04.00.01.1e.04.00.19.00.10.00.01.1c.04.00.00.00.00.00.00.00.00.ff.ff.00.10.00.00.23.20.00.0e.ff.f8.40.00.00.00)
    has prereqs nd_ns

# get_nd
get_nd(outport, ip6.dst);
    encodes as push:NXM_NX_XXREG0[],push:NXM_NX_IPV6_DST[],pop:NXM_NX_XXREG0[],set_field:00:00:00:00:00:00->eth_dst,resubmit(,65),pop:NXM_NX_XXREG0[]
    has prereqs eth.type == 0x86dd
get_nd(inport, xxreg0);
    encodes as push:NXM_NX_REG15[],push:NXM_NX_REG14[],pop:NXM_NX_REG15[],set_field:00:00:00:00:00:00->eth_dst,resubmit(,65),pop:NXM_NX_REG15[]
get_nd;
    Syntax error at `;' expecting `('.
get_nd();
    Syntax error at `)' expecting field name.
get_nd(inport);
    Syntax error at `)' expecting `,'.
get_nd(inport ip6.dst);
    Syntax error at `ip6.dst' expecting `,'.
get_nd(inport, ip6.dst;
    Syntax error at `;' expecting `)'.
get_nd(inport, eth.dst);
    Cannot use 48-bit field eth.dst[0..47] where 128-bit field is required.
get_nd(inport, outport);
    Cannot use string field outport where numeric field is required.
get_nd(xxreg0, ip6.dst);
    Cannot use numeric field xxreg0 where string field is required.

# put_nd
put_nd(inport, nd.target, nd.sll);
    encodes as push:NXM_NX_XXREG0[],push:NXM_OF_ETH_SRC[],push:NXM_NX_ND_SLL[],push:NXM_NX_ND_TARGET[],pop:NXM_NX_XXREG0[],pop:NXM_OF_ETH_SRC[],controller(userdata=00.00.00.04.00.00.00.00),pop:NXM_OF_ETH_SRC[],pop:NXM_NX_XXREG0[]
    has prereqs ((icmp6.type == 0x87 && eth.type == 0x86dd && ip.proto == 0x3a && (eth.type == 0x800 || eth.type == 0x86dd)) || (icmp6.type == 0x88 && eth.type == 0x86dd && ip.proto == 0x3a && (eth.type == 0x800 || eth.type == 0x86dd))) && icmp6.code == 0 && eth.type == 0x86dd && ip.proto == 0x3a && (eth.type == 0x800 || eth.type == 0x86dd) && ip.ttl == 0xff && (eth.type == 0x800 || eth.type == 0x86dd) && icmp6.type == 0x87 && eth.type == 0x86dd && ip.proto == 0x3a && (eth.type == 0x800 || eth.type == 0x86dd) && icmp6.code == 0 && eth.type == 0x86dd && ip.proto == 0x3a && (eth.type == 0x800 || eth.type == 0x86dd) && ip.ttl == 0xff && (eth.type == 0x800 || eth.type == 0x86dd)

# put_dhcpv6_opts
reg1[0] = put_dhcpv6_opts(ia_addr = ae70::4, server_id = 00:00:00:00:10:02);
    encodes as controller(userdata=00.00.00.05.00.00.00.00.00.01.de.10.00.00.00.40.00.05.00.10.ae.70.00.00.00.00.00.00.00.00.00.00.00.00.00.04.00.02.00.06.00.00.00.00.10.02,pause)
reg1[0] = put_dhcpv6_opts();
    encodes as controller(userdata=00.00.00.05.00.00.00.00.00.01.de.10.00.00.00.40,pause)
reg1[0] = put_dhcpv6_opts(dns_server={ae70::1,ae70::2});
    formats as reg1[0] = put_dhcpv6_opts(dns_server = {ae70::1, ae70::2});
    encodes as controller(userdata=00.00.00.05.00.00.00.00.00.01.de.10.00.00.00.40.00.17.00.20.ae.70.00.00.00.00.00.00.00.00.00.00.00.00.00.01.ae.70.00.00.00.00.00.00.00.00.00.00.00.00.00.02,pause)
reg1[0] = put_dhcpv6_opts(server_id=12:34:56:78:9a:bc, dns_server={ae70::1,ae89::2});
    formats as reg1[0] = put_dhcpv6_opts(server_id = 12:34:56:78:9a:bc, dns_server = {ae70::1, ae89::2});
    encodes as controller(userdata=00.00.00.05.00.00.00.00.00.01.de.10.00.00.00.40.00.02.00.06.12.34.56.78.9a.bc.00.17.00.20.ae.70.00.00.00.00.00.00.00.00.00.00.00.00.00.01.ae.89.00.00.00.00.00.00.00.00.00.00.00.00.00.02,pause)
reg1[0] = put_dhcpv6_opts(domain_search = "ovn.org");
    encodes as controller(userdata=00.00.00.05.00.00.00.00.00.01.de.10.00.00.00.40.00.18.00.07.6f.76.6e.2e.6f.72.67,pause)
reg1[0] = put_dhcpv6_opts(x = 1.2.3.4);
    Syntax error at `x' expecting DHCPv6 option name.
reg1[0] = put_dhcpv6_opts(ia_addr=ae70::4, "hi");
    Syntax error at `"hi"'.
reg1[0] = put_dhcpv6_opts(ia_addr=ae70::4, xyzzy);
    Syntax error at `xyzzy' expecting DHCPv6 option name.
reg1[0] = put_dhcpv6_opts(ia_addr="ae70::4");
    DHCPv6 option ia_addr requires numeric value.
reg1[0] = put_dhcpv6_opts(ia_addr=ae70::4, domain_search=ae70::1);
    DHCPv6 option domain_search requires string value.

# set_queue
set_queue(0);
    encodes as set_queue:0
set_queue(61440);
    encodes as set_queue:61440
set_queue(65535);
    Queue ID 65535 for set_queue is not in valid range 0 to 61440.

# dns_lookup
reg1[0] = dns_lookup();
    encodes as controller(userdata=00.00.00.06.00.00.00.00.00.01.de.10.00.00.00.40,pause)
    has prereqs udp
reg1[0] = dns_lookup("foo");
    dns_lookup doesn't take any parameters

# set_meter
set_meter(0);
    Rate 0 for set_meter is not in valid.
set_meter(1);
    encodes as meter:1
set_meter(100, 1000);
    encodes as meter:2
set_meter(100, 1000, );
    Syntax error at `,' expecting `)'.
set_meter(4294967295, 4294967295);
    encodes as meter:3

# put_nd_ra_opts
reg1[0] = put_nd_ra_opts(addr_mode = "slaac", mtu = 1500, prefix = aef0::/64, slla = ae:01:02:03:04:05);
    encodes as controller(userdata=00.00.00.08.00.00.00.00.00.01.de.10.00.00.00.40.86.00.00.00.ff.00.ff.ff.00.00.00.00.00.00.00.00.05.01.00.00.00.00.05.dc.03.04.40.c0.ff.ff.ff.ff.ff.ff.ff.ff.00.00.00.00.ae.f0.00.00.00.00.00.00.00.00.00.00.00.00.00.00.01.01.ae.01.02.03.04.05,pause)
    has prereqs ip6
reg1[0] = put_nd_ra_opts(addr_mode = "dhcpv6_stateful", slla = ae:01:02:03:04:10, mtu = 1450);
    encodes as controller(userdata=00.00.00.08.00.00.00.00.00.01.de.10.00.00.00.40.86.00.00.00.ff.80.ff.ff.00.00.00.00.00.00.00.00.01.01.ae.01.02.03.04.10.05.01.00.00.00.00.05.aa,pause)
    has prereqs ip6
reg1[0] = put_nd_ra_opts(addr_mode = "dhcpv6_stateless", slla = ae:01:02:03:04:06, prefix = aef0::/64);
    encodes as controller(userdata=00.00.00.08.00.00.00.00.00.01.de.10.00.00.00.40.86.00.00.00.ff.40.ff.ff.00.00.00.00.00.00.00.00.01.01.ae.01.02.03.04.06.03.04.40.c0.ff.ff.ff.ff.ff.ff.ff.ff.00.00.00.00.ae.f0.00.00.00.00.00.00.00.00.00.00.00.00.00.00,pause)
    has prereqs ip6
reg1[0] = put_nd_ra_opts(addr_mode = "slaac", mtu = 1500, prefix = aef0::/64);
    slla option not present
reg1[0] = put_nd_ra_opts(addr_mode = "dhcpv6_stateful", mtu = 1450, prefix = aef0::/64, prefix = bef0::/64, slla = ae:01:02:03:04:10);
    prefix option can't be set when address mode is dhcpv6_stateful.
reg1[0] = put_nd_ra_opts(addr_mode = "dhcpv6_stateful", mtu = 1450, prefix = aef0::/64, prefix = bef0::/64, slla = ae:01:02:03:04:10);
    prefix option can't be set when address mode is dhcpv6_stateful.
reg1[0] = put_nd_ra_opts(addr_mode = "slaac", slla = ae:01:02:03:04:10);
    prefix option needs to be set when address mode is slaac/dhcpv6_stateless.
reg1[0] = put_nd_ra_opts(addr_mode = "dhcpv6_stateless", slla = ae:01:02:03:04:10);
    prefix option needs to be set when address mode is slaac/dhcpv6_stateless.
reg1[0] = put_nd_ra_opts(addr_mode = dhcpv6_stateless, prefix = aef0::/64, slla = ae:01:02:03:04:10);
    Syntax error at `dhcpv6_stateless' expecting constant.
reg1[0] = put_nd_ra_opts(addr_mode = "slaac", mtu = 1500, prefix = aef0::, slla = ae:01:02:03:04:10);
    Invalid value for "prefix" option
reg1[0] = put_nd_ra_opts(addr_mode = "foo", mtu = 1500, slla = ae:01:02:03:04:10);
    Invalid value for "addr_mode" option
reg1[0] = put_nd_ra_opts(addr_mode = "slaac", mtu = "1500", slla = ae:01:02:03:04:10);
    IPv6 ND RA option mtu requires numeric value.
reg1[0] = put_nd_ra_opts(addr_mode = "slaac", mtu = 10.0.0.4, slla = ae:01:02:03:04:10);
    Invalid value for "mtu" option

# Contradictionary prerequisites (allowed but not useful):
ip4.src = ip6.src[0..31];
    encodes as move:NXM_NX_IPV6_SRC[0..31]->NXM_OF_IP_SRC[]
    has prereqs eth.type == 0x800 && eth.type == 0x86dd
ip4.src <-> ip6.src[0..31];
    encodes as push:NXM_NX_IPV6_SRC[0..31],push:NXM_OF_IP_SRC[],pop:NXM_NX_IPV6_SRC[0..31],pop:NXM_OF_IP_SRC[]
    has prereqs eth.type == 0x800 && eth.type == 0x86dd

# Miscellaneous negative tests.
;
    Syntax error at `;'.
xyzzy;
    Syntax error at `xyzzy' expecting action.
next; 123;
    Syntax error at `123'.
next; xyzzy;
    Syntax error at `xyzzy' expecting action.
next
    Syntax error at end of input expecting `;'.
_ATEOF

sed '/^[ 	]/d' test-cases.txt > input.txt
cp test-cases.txt expout
{ set +x
$as_echo "$at_srcdir/ovn.at:1155: ovstest test-ovn parse-actions < input.txt"
at_fn_check_prepare_trace "ovn.at:1155"
( $at_check_trace; ovstest test-ovn parse-actions < input.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1155"
$at_failed && at_fn_log_failure
$at_traceon; }

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2430
#AT_START_2431
at_fn_group_banner 2431 'ovn.at:1161' \
  "ovn -- 3 HVs, 1 LS, 3 lports/HV" "                " 125
at_xfail=no
(
  $as_echo "2431. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


$as_echo "ovn.at:1163" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:1163"
ovn_start

# Create hypervisors hv[123].
# Add vif1[123] to hv1, vif2[123] to hv2, vif3[123] to hv3.
# Add all of the vifs to a single logical switch lsw0.
# Turn on port security on all the vifs except vif[123]1.
# Make vif13, vif2[23], vif3[123] destinations for unknown MACs.
# Add some ACLs for Ethertypes 1234, 1235, 1236.
ovn-nbctl ls-add lsw0
net_add n1
for i in 1 2 3; do
    sim_add hv$i
    as hv$i
    ovs-vsctl add-br br-phys
    ovn_attach n1 br-phys 192.168.0.$i

    for j in 1 2 3; do
        ovs-vsctl add-port br-int vif$i$j -- set Interface vif$i$j external-ids:iface-id=lp$i$j options:tx_pcap=hv$i/vif$i$j-tx.pcap options:rxq_pcap=hv$i/vif$i$j-rx.pcap ofport-request=$i$j
        ovn-nbctl lsp-add lsw0 lp$i$j
        if test $j = 1; then
            ovn-nbctl lsp-set-addresses lp$i$j "f0:00:00:00:00:$i$j 192.168.0.$i$j" unknown
        else
            if test $j = 3; then
                ip_addrs="192.168.0.$i$j fe80::ea2a:eaff:fe28:$i$j/64 192.169.0.$i$j"
            else
                ip_addrs="192.168.0.$i$j"
            fi
            ovn-nbctl lsp-set-addresses lp$i$j "f0:00:00:00:00:$i$j $ip_addrs"
            ovn-nbctl lsp-set-port-security lp$i$j f0:00:00:00:00:$i$j
        fi
    done
done
ovn-nbctl acl-add lsw0 from-lport 1000 'eth.type == 0x1234' drop
ovn-nbctl acl-add lsw0 from-lport 1000 'eth.type == 0x1235 && inport == "lp11"' drop
ovn-nbctl acl-add lsw0 to-lport 1000 'eth.type == 0x1236 && outport == "lp33"' drop
ovn-nbctl create Address_Set name=set1 addresses=\"f0:00:00:00:00:11\",\"f0:00:00:00:00:21\",\"f0:00:00:00:00:31\"
ovn-nbctl acl-add lsw0 to-lport 1000 'eth.type == 0x1237 && eth.src == $set1 && outport == "lp33"' drop

# Pre-populate the hypervisors' ARP tables so that we don't lose any
# packets for ARP resolution (native tunneling doesn't queue packets
# for ARP resolution).
{ set +x
$as_echo "$at_srcdir/ovn.at:1205: ovn_populate_arp__"
at_fn_check_prepare_trace "ovn.at:1205"
( $at_check_trace; ovn_populate_arp__
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1205"
$at_failed && at_fn_log_failure
$at_traceon; }


# Allow some time for ovn-northd and ovn-controller to catch up.
# XXX This should be more systematic.
sleep 1

# Make sure there is no attempt to adding duplicated flows by ovn-controller
$as_echo "ovn.at:1212" >"$at_check_line_file"
(test -n "`grep duplicate hv1/ovn-controller.log`") \
  && at_fn_check_skip 99 "$at_srcdir/ovn.at:1212"
$as_echo "ovn.at:1213" >"$at_check_line_file"
(test -n "`grep duplicate hv2/ovn-controller.log`") \
  && at_fn_check_skip 99 "$at_srcdir/ovn.at:1213"
$as_echo "ovn.at:1214" >"$at_check_line_file"
(test -n "`grep duplicate hv3/ovn-controller.log`") \
  && at_fn_check_skip 99 "$at_srcdir/ovn.at:1214"

# Given the name of a logical port, prints the name of the hypervisor
# on which it is located.
vif_to_hv() {
    echo hv${1%?}
}

# test_packet INPORT DST SRC ETHTYPE OUTPORT...
#
# This shell function causes a packet to be received on INPORT.  The packet's
# content has Ethernet destination DST and source SRC (each exactly 12 hex
# digits) and Ethernet type ETHTYPE (4 hex digits).  The OUTPORTs (zero or
# more) list the VIFs on which the packet should be received.  INPORT and the
# OUTPORTs are specified as logical switch port numbers, e.g. 11 for vif11.
for i in 1 2 3; do
    for j in 1 2 3; do
        : > $i$j.expected
    done
done
test_packet() {
    local inport=$1 packet=$2$3$4; shift; shift; shift; shift
    hv=`vif_to_hv $inport`
    vif=vif$inport
    as $hv ovs-appctl netdev-dummy/receive $vif $packet
    for outport; do
        echo $packet >> $outport.expected
    done
}

# test_arp INPORT SHA SPA TPA [REPLY_HA]
#
# Causes a packet to be received on INPORT.  The packet is an ARP
# request with SHA, SPA, and TPA as specified.  If REPLY_HA is provided, then
# it should be the hardware address of the target to expect to receive in an
# ARP reply; otherwise no reply is expected.
#
# INPORT is an logical switch port number, e.g. 11 for vif11.
# SHA and REPLY_HA are each 12 hex digits.
# SPA and TPA are each 8 hex digits.
test_arp() {
    local inport=$1 sha=$2 spa=$3 tpa=$4 reply_ha=$5
    local request=ffffffffffff${sha}08060001080006040001${sha}${spa}ffffffffffff${tpa}
    hv=`vif_to_hv $inport`
    as $hv ovs-appctl netdev-dummy/receive vif$inport $request

    if test X$reply_ha = X; then
        # Expect to receive the broadcast ARP on the other logical switch ports
        # if no reply is expected.
        local i j
        for i in 1 2 3; do
            for j in 1 2 3; do
                if test $i$j != $inport; then
                    echo $request >> $i$j.expected
                fi
            done
        done
    else
        # Expect to receive the reply, if any.
        local reply=${sha}${reply_ha}08060001080006040002${reply_ha}${tpa}${sha}${spa}
        echo $reply >> $inport.expected
    fi
}

ip_to_hex() {
    printf "%02x%02x%02x%02x" "$@"
}

# Send packets between all pairs of source and destination ports:
#
# 1. Unicast packets are delivered to exactly one logical switch port
#    (except that packets destined to their input ports are dropped).
#
# 2. Broadcast and multicast are delivered to all logical switch ports
#    except the input port.
#
# 3. When port security is turned on, the switch drops packets from the wrong
#    MAC address.
#
# 4. The switch drops all packets with a VLAN tag.
#
# 5. The switch drops all packets with a multicast source address.  (This only
#    affects behavior when port security is turned off, since otherwise port
#    security would drop the packet anyway.)
#
# 6. The switch delivers packets with an unknown destination to logical
#    switch ports with "unknown" among their MAC addresses (and port
#    security disabled).
#
# 7. The switch drops unicast packets that violate an ACL.
#
# 8. The switch drops multicast and broadcast packets that violate an ACL.
#
# 9. OVN generates responses to ARP requests for known IPs, except for
#    requests from a port for the port's own IP.
#
# 10. No response to ARP requests for unknown IPs.

for is in 1 2 3; do
    for js in 1 2 3; do
        s=$is$js
        bcast=
        unknown=
        bacl2=
        bacl3=
        for id in 1 2 3; do
            for jd in 1 2 3; do
                d=$id$jd

                if test $d != $s; then unicast=$d; else unicast=; fi
                test_packet $s f000000000$d f000000000$s $s$d $unicast     #1

                if test $d != $s && test $js = 1; then
                    impersonate=$d
                else
                    impersonate=
                fi
                test_packet $s f000000000$d f00000000055 55$d $impersonate #3

                if test $d != $s && test $s != 11; then acl2=$d; else acl2=; fi
                if test $d != $s && test $d != 33; then acl3=$d; else acl3=; fi
                if test $d = $s || (test $js = 1 && test $d = 33); then
                    # Source of 11, 21, or 31 and dest of 33 should be dropped
                    # due to the 4th ACL that uses address_set(set1).
                    acl4=
                else
                    acl4=$d
                fi
                test_packet $s f000000000$d f000000000$s 1234        #7, acl1
                test_packet $s f000000000$d f000000000$s 1235 $acl2  #7, acl2
                test_packet $s f000000000$d f000000000$s 1236 $acl3  #7, acl3
                test_packet $s f000000000$d f000000000$s 1237 $acl4  #7, acl4

                test_packet $s f000000000$d f00000000055 810000091234      #4
                test_packet $s f000000000$d 0100000000$s $s$d              #5

                if test $d != $s && test $jd = 1; then
                    unknown="$unknown $d"
                fi
                bcast="$bcast $unicast"
                bacl2="$bacl2 $acl2"
                bacl3="$bacl3 $acl3"

                sip=`ip_to_hex 192 168 0 $is$js`
                tip=`ip_to_hex 192 168 0 $id$jd`
                tip_unknown=`ip_to_hex 11 11 11 11`
                if test $d != $s; then
                    reply_ha=f000000000$d
                else
                    reply_ha=
                fi
                test_arp $s f000000000$s $sip $tip $reply_ha               #9
                test_arp $s f000000000$s $sip $tip_unknown                 #10

                if test $jd = 3; then
                    # lsp[123]3 has an additional ip 192.169.0.[123]3.
                    tip=`ip_to_hex 192 169 0 $id$jd`
                    test_arp $s f000000000$s $sip $tip $reply_ha           #9
                fi
            done
        done

        # Broadcast and multicast.
        test_packet $s ffffffffffff f000000000$s ${s}ff $bcast             #2
        test_packet $s 010000000000 f000000000$s ${s}ff $bcast             #2
        if test $js = 1; then
            bcast_impersonate=$bcast
        else
            bcast_impersonate=
        fi
        test_packet $s 010000000000 f00000000044 44ff $bcast_impersonate   #3

        test_packet $s f0000000ffff f000000000$s ${s}66 $unknown           #6

        test_packet $s ffffffffffff f000000000$s 1234                #8, acl1
        test_packet $s ffffffffffff f000000000$s 1235 $bacl2         #8, acl2
        test_packet $s ffffffffffff f000000000$s 1236 $bacl3         #8, acl3
        test_packet $s 010000000000 f000000000$s 1234                #8, acl1
        test_packet $s 010000000000 f000000000$s 1235 $bacl2         #8, acl2
        test_packet $s 010000000000 f000000000$s 1236 $bacl3         #8, acl3
    done
done

# set address for lp13 with invalid characters.
# lp13 should be configured with only 192.168.0.13.
ovn-nbctl lsp-set-addresses lp13 "f0:00:00:00:00:13 192.168.0.13 invalid 192.169.0.13"

# Allow some time for ovn-northd and ovn-controller to catch up.
# XXX This should be more systematic.
sleep 1

sip=`ip_to_hex 192 168 0 11`
tip=`ip_to_hex 192 168 0 13`
test_arp 11 f00000000011  $sip $tip f00000000013

tip=`ip_to_hex 192 169 0 13`
#arp request for 192.169.0.13 should be flooded
test_arp 11 f00000000011  $sip $tip

# dump information and flows with counters
ovn-sbctl dump-flows -- list multicast_group

echo "------ hv1 dump ------"
as hv1 ovs-vsctl show
as hv1 ovs-ofctl -O OpenFlow13 dump-flows br-int

echo "------ hv2 dump ------"
as hv2 ovs-vsctl show
as hv2 ovs-ofctl -O OpenFlow13 dump-flows br-int

echo "------ hv3 dump ------"
as hv3 ovs-vsctl show
as hv3 ovs-ofctl -O OpenFlow13 dump-flows br-int

# Now check the packets actually received against the ones expected.
for i in 1 2 3; do
    for j in 1 2 3; do
        ovn_check_packets__ "hv$i/vif$i$j-tx.pcap" "$i$j.expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:1431: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:1431"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1431"
$at_failed && at_fn_log_failure
$at_traceon; }

    done
done




    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:1435: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:1435"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1435: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1435: wait failed" >&5

    $as_echo "ovn.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1435"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:1435: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:1435"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1435: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1435: wait failed" >&5

    $as_echo "ovn.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1435"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:1435: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:1435"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1435: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1435: wait failed" >&5

    $as_echo "ovn.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1435"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:1435: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:1435"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1435: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1435: wait failed" >&5

    $as_echo "ovn.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1435"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:1435: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:1435"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1435: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1435: wait failed" >&5

    $as_echo "ovn.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1435"
fi





    as hv2
    if test "hv2" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:1435: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:1435"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1435: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1435: wait failed" >&5

    $as_echo "ovn.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1435"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:1435: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:1435"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1435: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1435: wait failed" >&5

    $as_echo "ovn.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1435"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:1435: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:1435"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1435: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1435: wait failed" >&5

    $as_echo "ovn.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1435"
fi

    fi

    as hv2
    { set +x
$as_echo "$at_srcdir/ovn.at:1435: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:1435"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1435: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1435: wait failed" >&5

    $as_echo "ovn.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1435"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:1435: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:1435"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1435: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1435: wait failed" >&5

    $as_echo "ovn.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1435"
fi





    as hv3
    if test "hv3" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:1435: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:1435"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1435: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1435: wait failed" >&5

    $as_echo "ovn.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1435"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:1435: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:1435"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1435: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1435: wait failed" >&5

    $as_echo "ovn.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1435"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:1435: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:1435"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1435: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1435: wait failed" >&5

    $as_echo "ovn.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1435"
fi

    fi

    as hv3
    { set +x
$as_echo "$at_srcdir/ovn.at:1435: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:1435"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1435: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1435: wait failed" >&5

    $as_echo "ovn.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1435"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:1435: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:1435"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1435: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1435: wait failed" >&5

    $as_echo "ovn.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1435"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:1435: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:1435"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1435: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1435: wait failed" >&5

    $as_echo "ovn.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1435"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:1435: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:1435"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1435: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1435: wait failed" >&5

    $as_echo "ovn.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1435"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:1435: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:1435"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1435: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1435: wait failed" >&5

    $as_echo "ovn.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1435"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:1435: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:1435"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1435: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1435: wait failed" >&5

    $as_echo "ovn.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1435"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:1435: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:1435"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1435: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1435: wait failed" >&5

    $as_echo "ovn.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1435"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:1435: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:1435"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1435: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:1435"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1435"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:1435: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1435: wait failed" >&5

    $as_echo "ovn.at:1435" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1435"
fi




  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2431
#AT_START_2432
at_fn_group_banner 2432 'ovn.at:1439' \
  "ovn -- trace 1 LS, 3 LSPs" "                      " 125
at_xfail=no
(
  $as_echo "2432. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn.at:1440" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:1440"
ovn_start

# Create a logical switch and some logical ports.
# Turn on port security on all lports except ls1.
# Make ls1 a destination for unknown MACs.
# Add some ACLs for Ethertypes 1234, 1235, 1236.
ovn-nbctl ls-add lsw0
ovn-sbctl chassis-add hv0 geneve 127.0.0.1
for i in 1 2 3; do
    ovn-nbctl lsp-add lsw0 lp$i
done
ovn-nbctl --wait=sb sync
for i in 1 2 3; do
    ovn-sbctl lsp-bind lp$i hv0
    if test $i = 1; then
        ovn-nbctl lsp-set-addresses lp$i "f0:00:00:00:00:0$i 192.168.0.$i" unknown
    else
        if test $i = 3; then
           ip_addrs="192.168.0.$i fe80::ea2a:eaff:fe28:$i/64 192.169.0.$i"
        else
           ip_addrs="192.168.0.$i"
        fi
        ovn-nbctl lsp-set-addresses lp$i "f0:00:00:00:00:0$i $ip_addrs"
        ovn-nbctl lsp-set-port-security lp$i f0:00:00:00:00:0$i
    fi
done
ovn-nbctl acl-add lsw0 from-lport 1000 'eth.type == 0x1234' drop
ovn-nbctl acl-add lsw0 from-lport 1000 'eth.type == 0x1235 && inport == "lp1"' drop
ovn-nbctl acl-add lsw0 to-lport 1000 'eth.type == 0x1236 && outport == "lp3"' drop
ovn-nbctl create Address_Set name=set1 addresses=\"f0:00:00:00:00:01\",\"f0:00:00:00:00:02\"
ovn-nbctl acl-add lsw0 to-lport 1000 'eth.type == 0x1237 && eth.src == $set1 && outport == "lp3"' drop

ovn-nbctl --wait=sb sync
on_exit 'kill `cat ovn-trace.pid`'
ovn-trace --detach --pidfile --no-chdir

# test_packet INPORT DST SRC [-vlan] [-eth TYPE] OUTPORT...
#
# This shell function causes a packet to be received on INPORT.  The packet's
# content has Ethernet destination DST and source SRC (each exactly 12 hex
# digits) and Ethernet type ETHTYPE (4 hex digits).  The OUTPORTs (zero or
# more) list the VIFs on which the packet should be received.  INPORT and the
# OUTPORTs are specified as logical switch port numbers, e.g. 11 for vif11.
test_packet() {
    local inport=$1 eth_dst=$2 eth_src=$3; shift; shift; shift
    uflow="inport==\"lp$inport\" && eth.dst==$eth_dst && eth.src==$eth_src"
    while :; do
        case $1 in # (
            -vlan) uflow="$uflow && vlan.vid == 1234"; shift ;; # (
            -eth) uflow="$uflow && eth.type == 0x$2"; shift; shift ;; # (
            *) break ;;
        esac
    done
    for outport; do
        echo "output(\"lp$outport\");"
    done > expout


    { set +x
$as_echo "$at_srcdir/ovn.at:1499: ovs-appctl -t ovn-trace trace --all lsw0 \"\$uflow\" | tee trace | sed '1,/Minimal trace/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:1499"
( $at_check_trace; ovs-appctl -t ovn-trace trace --all lsw0 "$uflow" | tee trace | sed '1,/Minimal trace/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1499"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

}

# test_arp INPORT SHA SPA TPA [REPLY_HA]
#
# Causes a packet to be received on INPORT.  The packet is an ARP
# request with SHA, SPA, and TPA as specified.  If REPLY_HA is provided, then
# it should be the hardware address of the target to expect to receive in an
# ARP reply; otherwise no reply is expected.
#
# INPORT is an logical switch port number, e.g. 11 for vif11.
# SHA and REPLY_HA are each 12 hex digits.
# SPA and TPA are each 8 hex digits.
test_arp() {
    local inport=$1 sha=$2 spa=$3 tpa=$4 reply_ha=$5

    local request="inport == \"lp$inport\"
                   && eth.dst == ff:ff:ff:ff:ff:ff && eth.src == $sha
                   && arp.op == 1 && arp.sha == $sha && arp.spa == $spa
                   && arp.tha == ff:ff:ff:ff:ff:ff && arp.tpa == $tpa"

    if test -z "$reply_ha"; then
        reply=
        local i
        for i in 1 2 3; do
            if test $i != $inport; then
                reply="${reply}output(\"lp$i\");
"
            fi
        done
    else
        reply="\
eth.dst = $sha;
eth.src = $reply_ha;
arp.op = 2;
arp.tha = $sha;
arp.sha = $reply_ha;
arp.tpa = $spa;
arp.spa = $tpa;
output(\"lp$inport\");
"
    fi


    { set +x
$as_echo "$at_srcdir/ovn.at:1543: ovs-appctl -t ovn-trace trace --all lsw0 \"\$request\" | tee trace | sed '1,/Minimal trace/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:1543"
( $at_check_trace; ovs-appctl -t ovn-trace trace --all lsw0 "$request" | tee trace | sed '1,/Minimal trace/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "$reply" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1543"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

}

# Send packets between all pairs of source and destination ports:
#
# 1. Unicast packets are delivered to exactly one logical switch port
#    (except that packets destined to their input ports are dropped).
#
# 2. Broadcast and multicast are delivered to all logical switch ports
#    except the input port.
#
# 3. When port security is turned on, the switch drops packets from the wrong
#    MAC address.
#
# 4. The switch drops all packets with a VLAN tag.
#
# 5. The switch drops all packets with a multicast source address.  (This only
#    affects behavior when port security is turned off, since otherwise port
#    security would drop the packet anyway.)
#
# 6. The switch delivers packets with an unknown destination to logical
#    switch ports with "unknown" among their MAC addresses (and port
#    security disabled).
#
# 7. The switch drops unicast packets that violate an ACL.
#
# 8. The switch drops multicast and broadcast packets that violate an ACL.
#
# 9. OVN generates responses to ARP requests for known IPs, except for
#    requests from a port for the port's own IP.
#
# 10. No response to ARP requests for unknown IPs.

for s in 1 2 3; do
    bcast=
    unknown=
    bacl2=
    bacl3=
    for d in 1 2 3; do
        echo
        echo "lp$s -> lp$d"
        if test $d != $s; then unicast=$d; else unicast=; fi
        test_packet $s f0:00:00:00:00:0$d f0:00:00:00:00:0$s $unicast      #1

        if test $d != $s && test $s = 1; then
            impersonate=$d
        else
            impersonate=
        fi
        test_packet $s f0:00:00:00:00:0$d f0:00:00:00:00:55 $impersonate   #3

        if test $d != $s && test $s != 1; then acl2=$d; else acl2=; fi
        if test $d != $s && test $d != 3; then acl3=$d; else acl3=; fi
        if test $d = $s || ( (test $s = 1 || test $s = 2) && test $d = 3); then
            # Source of 1 or 2 and dest of 3 should be dropped
            # due to the 4th ACL that uses address_set(set1).
            acl4=
        else
            acl4=$d
        fi

        #7, acl1 to acl4:
        test_packet $s f0:00:00:00:00:0$d f0:00:00:00:00:0$s -eth 1234
        test_packet $s f0:00:00:00:00:0$d f0:00:00:00:00:0$s -eth 1235 $acl2
        test_packet $s f0:00:00:00:00:0$d f0:00:00:00:00:0$s -eth 1236 $acl3
        test_packet $s f0:00:00:00:00:0$d f0:00:00:00:00:0$s -eth 1237 $acl4

        test_packet $s f0:00:00:00:00:0$d f0:00:00:00:00:55 -vlan          #4
        test_packet $s f0:00:00:00:00:0$d 01:00:00:00:00:0$s               #5

        if test $d != $s && test $d = 1; then
            unknown="$unknown $d"
        fi
        bcast="$bcast $unicast"
        bacl2="$bacl2 $acl2"
        bacl3="$bacl3 $acl3"

        sip=192.168.0.$s
        tip=192.168.0.$d
        tip_unknown=11.11.11.11
        if test $d != $s; then reply_ha=f0:00:00:00:00:0$d; else reply_ha=; fi
        test_arp $s f0:00:00:00:00:0$s $sip $tip $reply_ha                 #9
        test_arp $s f0:00:00:00:00:0$s $sip $tip_unknown                   #10

        if test $d = 3; then
            # lp3 has an additional ip 192.169.0.[123]3.
            tip=192.169.0.$d
            test_arp $s f0:00:00:00:00:0$s $sip $tip $reply_ha             #9
        fi
    done

    # Broadcast and multicast.
    test_packet $s ff:ff:ff:ff:ff:ff f0:00:00:00:00:0$s $bcast             #2
    test_packet $s 01:00:00:00:00:00 f0:00:00:00:00:0$s $bcast             #2
    if test $s = 1; then
       bcast_impersonate=$bcast
    else
       bcast_impersonate=
    fi
    test_packet $s 01:00:00:00:00:00 f0:00:00:00:00:44 $bcast_impersonate  #3

    test_packet $s f0:00:00:00:ff:ff f0:00:00:00:00:0$s $unknown           #6

    #8, acl1 to acl3:
    test_packet $s ff:ff:ff:ff:ff:ff f0:00:00:00:00:0$s -eth 1234
    test_packet $s ff:ff:ff:ff:ff:ff f0:00:00:00:00:0$s -eth 1235 $bacl2
    test_packet $s ff:ff:ff:ff:ff:ff f0:00:00:00:00:0$s -eth 1236 $bacl3

    #8, acl1 to acl3:
    test_packet $s 01:00:00:00:00:00 f0:00:00:00:00:0$s -eth 1234
    test_packet $s 01:00:00:00:00:00 f0:00:00:00:00:0$s -eth 1235 $bacl2
    test_packet $s 01:00:00:00:00:00 f0:00:00:00:00:0$s -eth 1236 $bacl3
done

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2432
#AT_START_2433
at_fn_group_banner 2433 'ovn.at:1662' \
  "ovn -- 2 HVs, 4 lports/HV, localnet ports" "      " 125
at_xfail=no
(
  $as_echo "2433. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn.at:1663" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:1663"
ovn_start

# In this test cases we create 3 switches, all connected to same
# physical network (through br-phys on each HV). Each switch has
# VIF ports across 2 HVs. Each HV has 5 VIF ports. The first digit
# of VIF port name indicates the hypervisor it is bound to, e.g.
# lp23 means VIF 3 on hv2.
#
# Each switch's VLAN tag and their logical switch ports are:
#   - ls1:
#       - untagged
#       - ports: lp11, lp12, lp21, lp22
#
#   - ls2:
#       - tagged with VLAN 101
#       - ports: lp13, lp14, lp23, lp24
#   - ls3:
#       - untagged
#       - ports: lp15, lp25
#
# Note: a localnet port is created for each switch to connect to
# physical network.

for i in 1 2 3; do
    ls_name=ls$i
    ovn-nbctl ls-add $ls_name
    ln_port_name=ln$i
    if test $i -eq 2; then
        ovn-nbctl lsp-add $ls_name $ln_port_name "" 101
    else
        ovn-nbctl lsp-add $ls_name $ln_port_name
    fi
    ovn-nbctl lsp-set-addresses $ln_port_name unknown
    ovn-nbctl lsp-set-type $ln_port_name localnet
    ovn-nbctl lsp-set-options $ln_port_name network_name=phys
done

# lsp_to_ls LSP
#
# Prints the name of the logical switch that contains LSP.
lsp_to_ls () {
    case $1 in 	lp?[12]) echo ls1 ;; 	lp?[34]) echo ls2 ;; 	lp?5) echo ls3 ;; 	*) $as_echo "ovn.at:1709" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1709" ;;
    esac
}

net_add n1
for i in 1 2; do
    sim_add hv$i
    as hv$i
    ovs-vsctl add-br br-phys
    ovs-vsctl set open . external-ids:ovn-bridge-mappings=phys:br-phys
    ovn_attach n1 br-phys 192.168.0.$i

    for j in 1 2 3 4 5; do
        ovs-vsctl add-port br-int vif$i$j -- \
            set Interface vif$i$j external-ids:iface-id=lp$i$j \
                                  options:tx_pcap=hv$i/vif$i$j-tx.pcap \
                                  options:rxq_pcap=hv$i/vif$i$j-rx.pcap \
                                  ofport-request=$i$j

        lsp_name=lp$i$j
	ls_name=$(lsp_to_ls $lsp_name)

        ovn-nbctl lsp-add $ls_name $lsp_name
        ovn-nbctl lsp-set-addresses $lsp_name f0:00:00:00:00:$i$j
        ovn-nbctl lsp-set-port-security $lsp_name f0:00:00:00:00:$i$j

        $as_echo "ovn.at:1735: waiting until test x\`ovn-nbctl lsp-get-up \$lsp_name\` = xup..." >&5
ovs_wait_cond () {
    test x`ovn-nbctl lsp-get-up $lsp_name` = xup
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1735: wait failed" >&5

    $as_echo "ovn.at:1735" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1735"
fi

    done
done
ovn-nbctl --wait=sb sync
ovn-sbctl dump-flows

{ set +x
$as_echo "$at_srcdir/ovn.at:1741: ovn_populate_arp__"
at_fn_check_prepare_trace "ovn.at:1741"
( $at_check_trace; ovn_populate_arp__
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1741"
$at_failed && at_fn_log_failure
$at_traceon; }


# XXX This is now the 3rd copy of these functions in this file ...

# Given the name of a logical port, prints the name of the hypervisor
# on which it is located.
vif_to_hv() {
    echo hv${1%?}
}
#
# test_packet INPORT DST SRC ETHTYPE EOUT LOUT
#
# This shell function causes a packet to be received on INPORT.  The packet's
# content has Ethernet destination DST and source SRC (each exactly 12 hex
# digits) and Ethernet type ETHTYPE (4 hex digits).  INPORT is specified as
# logical switch port numbers, e.g. 11 for vif11.
#
# EOUT is the end-to-end output port, that is, where the packet will end up
# after possibly bouncing through one or more localnet ports.  LOUT is the
# logical output port, which might be a localnet port, as seen by ovn-trace
# (which doesn't know what localnet ports are connected to and therefore can't
# figure out the end-to-end answer).
for i in 1 2; do
    for j in 1 2 3 4 5; do
        : > $i$j.expected
    done
done
test_packet() {
    local inport=$1 dst=$2 src=$3 eth=$4 eout=$5 lout=$6
    echo "$@"

    # First try tracing the packet.
    uflow="inport==\"lp$inport\" && eth.dst==$dst && eth.src==$src && eth.type==0x$eth"
    if test $lout != drop; then
        echo "output(\"$lout\");"
    fi > expout

    { set +x
$as_echo "$at_srcdir/ovn.at:1778: ovn-trace --all \$(lsp_to_ls lp\$inport) \"\$uflow\" | tee trace | sed '1,/Minimal trace/d'"
at_fn_check_prepare_notrace 'a $(...) command substitution' "ovn.at:1778"
( $at_check_trace; ovn-trace --all $(lsp_to_ls lp$inport) "$uflow" | tee trace | sed '1,/Minimal trace/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1778"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }


    # Then actually send a packet, for an end-to-end test.
    local packet=$(echo $dst$src | sed 's/://g')${eth}
    hv=`vif_to_hv $inport`
    vif=vif$inport
    as $hv ovs-appctl netdev-dummy/receive $vif $packet
    if test $eout != drop; then
        echo $packet >> ${eout#lp}.expected
    fi
}

# lp11 and lp21 are on the same network (phys, untagged)
# and on different hypervisors
test_packet 11 f0:00:00:00:00:21 f0:00:00:00:00:11 1121 lp21 lp21
test_packet 21 f0:00:00:00:00:11 f0:00:00:00:00:21 2111 lp11 lp11

# lp11 and lp12 are on the same network (phys, untagged)
# and on the same hypervisor
test_packet 11 f0:00:00:00:00:12 f0:00:00:00:00:11 1112 lp12 lp12
test_packet 12 f0:00:00:00:00:11 f0:00:00:00:00:12 1211 lp11 lp11

# lp13 and lp23 are on the same network (phys, VLAN 101)
# and on different hypervisors
test_packet 13 f0:00:00:00:00:23 f0:00:00:00:00:13 1323 lp23 lp23
test_packet 23 f0:00:00:00:00:13 f0:00:00:00:00:23 2313 lp13 lp13

# lp13 and lp14 are on the same network (phys, VLAN 101)
# and on the same hypervisor
test_packet 13 f0:00:00:00:00:14 f0:00:00:00:00:13 1314 lp14 lp14
test_packet 14 f0:00:00:00:00:13 f0:00:00:00:00:14 1413 lp13 lp13

# lp11 and lp15 are on the same network (phys, untagged),
# same hypervisor, and on different switches
test_packet 11 f0:00:00:00:00:15 f0:00:00:00:00:11 1115 lp15 ln1
test_packet 15 f0:00:00:00:00:11 f0:00:00:00:00:15 1511 lp11 ln3

# lp11 and lp25 are on the same network (phys, untagged),
# different hypervisors, and on different switches
test_packet 11 f0:00:00:00:00:25 f0:00:00:00:00:11 1125 lp25 ln1
test_packet 25 f0:00:00:00:00:11 f0:00:00:00:00:25 2511 lp11 ln3

# Ports that should not be able to communicate
test_packet 11 f0:00:00:00:00:13 f0:00:00:00:00:11 1113 drop ln1
test_packet 11 f0:00:00:00:00:23 f0:00:00:00:00:11 1123 drop ln1
test_packet 21 f0:00:00:00:00:13 f0:00:00:00:00:21 2113 drop ln1
test_packet 21 f0:00:00:00:00:23 f0:00:00:00:00:21 2123 drop ln1
test_packet 13 f0:00:00:00:00:11 f0:00:00:00:00:13 1311 drop ln2
test_packet 13 f0:00:00:00:00:21 f0:00:00:00:00:13 1321 drop ln2
test_packet 23 f0:00:00:00:00:11 f0:00:00:00:00:23 2311 drop ln2
test_packet 23 f0:00:00:00:00:21 f0:00:00:00:00:23 2321 drop ln2

# Dump a bunch of info helpful for debugging if there's a failure.

echo "------ OVN dump ------"
ovn-nbctl show
ovn-sbctl show

echo "------ hv1 dump ------"
as hv1 ovs-vsctl show
as hv1 ovs-ofctl -O OpenFlow13 dump-flows br-int

echo "------ hv2 dump ------"
as hv2 ovs-vsctl show
as hv2 ovs-ofctl -O OpenFlow13 dump-flows br-int

# Now check the packets actually received against the ones expected.
for i in 1 2; do
    for j in 1 2 3 4 5; do
        ovn_check_packets__ "hv$i/vif$i$j-tx.pcap" "$i$j.expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:1847: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:1847"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1847"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

    done
done




    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:1851: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:1851"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1851"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1851: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:1851"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1851"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:1851: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1851: wait failed" >&5

    $as_echo "ovn.at:1851" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1851"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:1851: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:1851"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1851"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1851: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:1851"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1851"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:1851: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1851: wait failed" >&5

    $as_echo "ovn.at:1851" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1851"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:1851: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:1851"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1851"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1851: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:1851"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1851"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:1851: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1851: wait failed" >&5

    $as_echo "ovn.at:1851" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1851"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:1851: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:1851"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1851"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1851: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:1851"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1851"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:1851: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1851: wait failed" >&5

    $as_echo "ovn.at:1851" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1851"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:1851: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:1851"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1851"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1851: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:1851"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1851"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:1851: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1851: wait failed" >&5

    $as_echo "ovn.at:1851" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1851"
fi





    as hv2
    if test "hv2" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:1851: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:1851"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1851"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1851: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:1851"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1851"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:1851: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1851: wait failed" >&5

    $as_echo "ovn.at:1851" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1851"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:1851: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:1851"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1851"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1851: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:1851"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1851"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:1851: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1851: wait failed" >&5

    $as_echo "ovn.at:1851" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1851"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:1851: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:1851"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1851"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1851: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:1851"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1851"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:1851: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1851: wait failed" >&5

    $as_echo "ovn.at:1851" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1851"
fi

    fi

    as hv2
    { set +x
$as_echo "$at_srcdir/ovn.at:1851: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:1851"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1851"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1851: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:1851"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1851"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:1851: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1851: wait failed" >&5

    $as_echo "ovn.at:1851" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1851"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:1851: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:1851"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1851"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1851: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:1851"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1851"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:1851: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1851: wait failed" >&5

    $as_echo "ovn.at:1851" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1851"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:1851: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:1851"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1851"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1851: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:1851"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1851"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:1851: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1851: wait failed" >&5

    $as_echo "ovn.at:1851" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1851"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:1851: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:1851"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1851"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1851: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:1851"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1851"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:1851: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1851: wait failed" >&5

    $as_echo "ovn.at:1851" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1851"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:1851: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:1851"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1851"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1851: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:1851"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1851"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:1851: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1851: wait failed" >&5

    $as_echo "ovn.at:1851" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1851"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:1851: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:1851"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1851"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1851: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:1851"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1851"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:1851: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1851: wait failed" >&5

    $as_echo "ovn.at:1851" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1851"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:1851: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:1851"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1851"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1851: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:1851"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1851"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:1851: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1851: wait failed" >&5

    $as_echo "ovn.at:1851" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1851"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:1851: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:1851"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1851"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:1851: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:1851"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1851"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:1851: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1851: wait failed" >&5

    $as_echo "ovn.at:1851" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1851"
fi




  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2433
#AT_START_2434
at_fn_group_banner 2434 'ovn.at:1855' \
  "ovn -- vtep: 3 HVs, 1 VIFs/HV, 1 GW, 1 LS" "      " 125
at_xfail=no
(
  $as_echo "2434. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


$as_echo "ovn.at:1857" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:1857"
ovn_start

# Configure the Northbound database
ovn-nbctl ls-add lsw0

ovn-nbctl lsp-add lsw0 lp1
ovn-nbctl lsp-set-addresses lp1 f0:00:00:00:00:01

ovn-nbctl lsp-add lsw0 lp2
ovn-nbctl lsp-set-addresses lp2 f0:00:00:00:00:02

ovn-nbctl lsp-add lsw0 lp-vtep
ovn-nbctl lsp-set-type lp-vtep vtep
ovn-nbctl lsp-set-options lp-vtep vtep-physical-switch=br-vtep vtep-logical-switch=lsw0
ovn-nbctl lsp-set-addresses lp-vtep unknown

# lpr, lr and lrp1 are used for the ARP request handling test only.
ovn-nbctl lsp-add lsw0 lpr
ovn-nbctl lr-add lr
ovn-nbctl lrp-add lr lrp1 f0:00:00:00:00:f1 192.168.1.1/24
ovn-nbctl set Logical_Switch_Port lpr type=router \
                             options:router-port=lrp1 \
    addresses='"f0:00:00:00:00:f1 192.168.1.1"'


net_add n1               # Network to connect hv1, hv2, and vtep
net_add n2               # Network to connect vtep and hv3

# Create hypervisor hv1 connected to n1
sim_add hv1
as hv1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.1
ovs-vsctl add-port br-int vif1 -- set Interface vif1 external-ids:iface-id=lp1 options:tx_pcap=hv1/vif1-tx.pcap options:rxq_pcap=hv1/vif1-rx.pcap ofport-request=1

# Create hypervisor hv2 connected to n1
sim_add hv2
as hv2
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.2
ovs-vsctl add-port br-int vif2 -- set Interface vif2 external-ids:iface-id=lp2 options:tx_pcap=hv2/vif2-tx.pcap options:rxq_pcap=hv2/vif2-rx.pcap ofport-request=1


# Start the vtep emulator with a leg in both networks
sim_add vtep
as vtep

ovsdb-tool create "$ovs_base"/vtep/vtep.db "$abs_top_srcdir"/vtep/vtep.ovsschema || return 1
ovs-appctl -t ovsdb-server ovsdb-server/add-db "$ovs_base"/vtep/vtep.db

ovs-vsctl add-br br-phys
net_attach n1 br-phys

mac=`ovs-vsctl get Interface br-phys mac_in_use | sed s/\"//g`
arp_table="$arp_table $sandbox,br-phys,192.168.0.3,$mac"
ovs-appctl netdev-dummy/ip4addr br-phys 192.168.0.3/24 >/dev/null || return 1
ovs-appctl ovs/route/add 192.168.0.3/24 br-phys >/dev/null || return 1

ovs-vsctl add-br br-vtep
net_attach n2 br-vtep

vtep-ctl add-ps br-vtep
vtep-ctl set Physical_Switch br-vtep tunnel_ips=192.168.0.3
vtep-ctl add-ls lsw0

start_daemon ovs-vtep br-vtep
start_daemon ovn-controller-vtep --vtep-db=unix:"$ovs_base"/vtep/db.sock --ovnsb-db=unix:"$ovs_base"/ovn-sb/ovn-sb.sock

$as_echo "ovn.at:1926: waiting until vtep-ctl bind-ls br-vtep br-vtep_n2 0 lsw0..." >&5
ovs_wait_cond () {
    vtep-ctl bind-ls br-vtep br-vtep_n2 0 lsw0
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1926: wait failed" >&5

    $as_echo "ovn.at:1926" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1926"
fi


$as_echo "ovn.at:1928: waiting until test -n \"\`as vtep vtep-ctl get-replication-mode lsw0 |
               grep -- source\`\"..." >&5
ovs_wait_cond () {
    test -n "`as vtep vtep-ctl get-replication-mode lsw0 |
               grep -- source`"
}
if ovs_wait; then :
else
    $as_echo "ovn.at:1928: wait failed" >&5

    $as_echo "ovn.at:1928" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:1928"
fi

# It takes more time for the update to be processed by ovs-vtep.
sleep 1

# Add hv3 on the other side of the vtep
sim_add hv3
as hv3
ovs-vsctl add-br br-phys
net_attach n2 br-phys

ovs-vsctl add-port br-phys vif3 -- set Interface vif3 options:tx_pcap=hv3/vif3-tx.pcap options:rxq_pcap=hv3/vif3-rx.pcap ofport-request=1

# Pre-populate the hypervisors' ARP tables so that we don't lose any
# packets for ARP resolution (native tunneling doesn't queue packets
# for ARP resolution).
{ set +x
$as_echo "$at_srcdir/ovn.at:1944: ovn_populate_arp__"
at_fn_check_prepare_trace "ovn.at:1944"
( $at_check_trace; ovn_populate_arp__
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:1944"
$at_failed && at_fn_log_failure
$at_traceon; }


# Allow some time for ovn-northd and ovn-controller to catch up.
# XXX This should be more systematic.
sleep 1

# test_packet INPORT DST SRC ETHTYPE OUTPORT...
#
# This shell function causes a packet to be received on INPORT.  The packet's
# content has Ethernet destination DST and source SRC (each exactly 12 hex
# digits) and Ethernet type ETHTYPE (4 hex digits).  The OUTPORTs (zero or
# more) list the VIFs on which the packet should be received.  INPORT and the
# OUTPORTs are specified as logical switch port numbers, e.g. 1 for vif1.
for i in 1 2 3; do
    : > $i.expected
done
test_packet() {
    local inport=$1 packet=$2$3$4; shift; shift; shift; shift
    #hv=hv`echo $inport | sed 's/^\(.\).*/\1/'`
    hv=hv$inport
    vif=vif$inport
    as $hv ovs-appctl netdev-dummy/receive $vif $packet
    for outport; do
        echo $packet >> $outport.expected
    done
}

# Send packets between all pairs of source and destination ports:
#
# 1. Unicast packets are delivered to exactly one logical switch port
#    (except that packets destined to their input ports are dropped).
#
# 2. Broadcast and multicast are delivered to all logical switch ports
#    except the input port.
#
# 3. The switch delivers packets with an unknown destination to logical
#    switch ports with "unknown" among their MAC addresses (and port
#    security disabled).
for s in 1 2 3; do
    bcast=
    unknown=
    for d in 1 2 3; do
        if test $d != $s; then unicast=$d; else unicast=; fi
        test_packet $s f0000000000$d f0000000000$s 00$s$d $unicast       #1

        # The vtep (vif3) is the only one configured for "unknown"
        if test $d != $s && test $d = 3; then
            unknown="$unknown $d"
        fi
        bcast="$bcast $unicast"
    done

    # Broadcast and multicast.
    test_packet $s ffffffffffff f0000000000$s 0${s}ff $bcast             #2
    test_packet $s 010000000000 f0000000000$s 0${s}ff $bcast             #2

    test_packet $s f0000000ffff f0000000000$s 0${s}66 $unknown           #3
done

# ARP request should not be responded to by logical switch router
# type arp responder on HV1 and HV2 and should reach directly to
# vif1 and vif2
ip_to_hex() {
    printf "%02x%02x%02x%02x" "$@"
}
sha=f00000000003
spa=`ip_to_hex 192 168 1 2`
tpa=`ip_to_hex 192 168 1 1`
request=ffffffffffff${sha}08060001080006040001${sha}${spa}ffffffffffff${tpa}
as hv3 ovs-appctl netdev-dummy/receive vif3 $request
echo $request >> 1.expected
echo $request >> 2.expected

# dump information with counters
echo "------ OVN dump ------"
ovn-nbctl show
ovn-sbctl show

echo "---------SB dump-----"
ovn-sbctl list datapath_binding
echo "---------------------"
ovn-sbctl list port_binding
echo "---------------------"
ovn-sbctl dump-flows

echo "------ hv1 dump ------"
as hv1 ovs-vsctl show
as hv1 ovs-ofctl -O OpenFlow13 show br-int
as hv1 ovs-ofctl -O OpenFlow13 dump-flows br-int

echo "------ hv2 dump ------"
as hv2 ovs-vsctl show
as hv2 ovs-ofctl -O OpenFlow13 show br-int
as hv2 ovs-ofctl -O OpenFlow13 dump-flows br-int

echo "------ hv3 dump ------"
as hv3 ovs-vsctl show
# note: hv3 has no logical port bind, thus it should not have br-int
{ set +x
$as_echo "$at_srcdir/ovn.at:2042: as hv3 ovs-ofctl -O OpenFlow13 show br-int"
at_fn_check_prepare_trace "ovn.at:2042"
( $at_check_trace; as hv3 ovs-ofctl -O OpenFlow13 show br-int
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovs-ofctl: br-int is not a bridge or a socket
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn.at:2042"
$at_failed && at_fn_log_failure
$at_traceon; }


# Now check the packets actually received against the ones expected.
for i in 1 2 3; do
    ovn_check_packets__ "hv$i/vif$i-tx.pcap" "$i.expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:2048: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:2048"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2048"
$at_failed && at_fn_log_failure
$at_traceon; }

done

# Gracefully terminate daemons



    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:2052: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:2052"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2052: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:2052"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2052: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2052: wait failed" >&5

    $as_echo "ovn.at:2052" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2052"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:2052: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:2052"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2052: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:2052"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2052: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2052: wait failed" >&5

    $as_echo "ovn.at:2052" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2052"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:2052: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:2052"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2052: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:2052"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2052: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2052: wait failed" >&5

    $as_echo "ovn.at:2052" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2052"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:2052: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:2052"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2052: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:2052"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2052: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2052: wait failed" >&5

    $as_echo "ovn.at:2052" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2052"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:2052: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:2052"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2052: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:2052"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2052: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2052: wait failed" >&5

    $as_echo "ovn.at:2052" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2052"
fi





    as hv2
    if test "hv2" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:2052: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:2052"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2052: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:2052"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2052: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2052: wait failed" >&5

    $as_echo "ovn.at:2052" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2052"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:2052: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:2052"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2052: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:2052"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2052: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2052: wait failed" >&5

    $as_echo "ovn.at:2052" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2052"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:2052: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:2052"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2052: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:2052"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2052: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2052: wait failed" >&5

    $as_echo "ovn.at:2052" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2052"
fi

    fi

    as hv2
    { set +x
$as_echo "$at_srcdir/ovn.at:2052: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:2052"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2052: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:2052"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2052: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2052: wait failed" >&5

    $as_echo "ovn.at:2052" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2052"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:2052: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:2052"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2052: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:2052"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2052: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2052: wait failed" >&5

    $as_echo "ovn.at:2052" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2052"
fi





    as vtep
    if test "vtep" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:2052: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:2052"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2052: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:2052"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2052: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2052: wait failed" >&5

    $as_echo "ovn.at:2052" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2052"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:2052: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:2052"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2052: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:2052"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2052: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2052: wait failed" >&5

    $as_echo "ovn.at:2052" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2052"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:2052: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:2052"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2052: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:2052"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2052: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2052: wait failed" >&5

    $as_echo "ovn.at:2052" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2052"
fi

    fi

    as vtep
    { set +x
$as_echo "$at_srcdir/ovn.at:2052: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:2052"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2052: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:2052"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2052: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2052: wait failed" >&5

    $as_echo "ovn.at:2052" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2052"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:2052: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:2052"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2052: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:2052"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2052: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2052: wait failed" >&5

    $as_echo "ovn.at:2052" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2052"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:2052: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:2052"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2052: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:2052"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2052: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2052: wait failed" >&5

    $as_echo "ovn.at:2052" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2052"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:2052: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:2052"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2052: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:2052"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2052: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2052: wait failed" >&5

    $as_echo "ovn.at:2052" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2052"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:2052: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:2052"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2052: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:2052"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2052: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2052: wait failed" >&5

    $as_echo "ovn.at:2052" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2052"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:2052: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:2052"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2052: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:2052"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2052: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2052: wait failed" >&5

    $as_echo "ovn.at:2052" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2052"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:2052: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:2052"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2052: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:2052"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2052: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2052: wait failed" >&5

    $as_echo "ovn.at:2052" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2052"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:2052: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:2052"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2052: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:2052"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2052"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2052: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2052: wait failed" >&5

    $as_echo "ovn.at:2052" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2052"
fi




    as hv3
    { set +x
$as_echo "$at_srcdir/ovn.at:2053: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:2053"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2053"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2053: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:2053"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2053"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2053: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2053: wait failed" >&5

    $as_echo "ovn.at:2053" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2053"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:2053: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:2053"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2053"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2053: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:2053"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2053"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2053: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2053: wait failed" >&5

    $as_echo "ovn.at:2053" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2053"
fi



  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2434
#AT_START_2435
at_fn_group_banner 2435 'ovn.at:2058' \
  "ovn -- 3 HVs, 1 VIFs/HV, 1 software GW, 1 LS" "   " 125
at_xfail=no
(
  $as_echo "2435. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn.at:2059" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:2059"
ovn_start

# Configure the Northbound database
ovn-nbctl ls-add lsw0

ovn-nbctl lsp-add lsw0 lp1
ovn-nbctl lsp-set-addresses lp1 f0:00:00:00:00:01

ovn-nbctl lsp-add lsw0 lp2
ovn-nbctl lsp-set-addresses lp2 f0:00:00:00:00:02

ovn-nbctl lsp-add lsw0 lp-gw
ovn-nbctl lsp-set-type lp-gw l2gateway
ovn-nbctl lsp-set-options lp-gw network_name=physnet1 l2gateway-chassis=hv_gw
ovn-nbctl lsp-set-addresses lp-gw unknown

net_add n1               # Network to connect hv1, hv2, and gw
net_add n2               # Network to connect gw and hv3

# Create hypervisor hv1 connected to n1
sim_add hv1
as hv1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.1
ovs-vsctl add-port br-int vif1 -- set Interface vif1 external-ids:iface-id=lp1 options:tx_pcap=hv1/vif1-tx.pcap options:rxq_pcap=hv1/vif1-rx.pcap ofport-request=1

# Create hypervisor hv2 connected to n1
sim_add hv2
as hv2
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.2
ovs-vsctl add-port br-int vif2 -- set Interface vif2 external-ids:iface-id=lp2 options:tx_pcap=hv2/vif2-tx.pcap options:rxq_pcap=hv2/vif2-rx.pcap ofport-request=1

# Create hypervisor hv_gw connected to n1 and n2
# connect br-phys bridge to n1; connect hv-gw bridge to n2
sim_add hv_gw
as hv_gw
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.3
ovs-vsctl add-br br-phys2
net_attach n2 br-phys2
ovs-vsctl set open . external_ids:ovn-bridge-mappings="physnet1:br-phys2"

# Add hv3 on the other side of the GW
sim_add hv3
as hv3
ovs-vsctl add-br br-phys
net_attach n2 br-phys
ovs-vsctl add-port br-phys vif3 -- set Interface vif3 options:tx_pcap=hv3/vif3-tx.pcap options:rxq_pcap=hv3/vif3-rx.pcap ofport-request=1


# Pre-populate the hypervisors' ARP tables so that we don't lose any
# packets for ARP resolution (native tunneling doesn't queue packets
# for ARP resolution).
{ set +x
$as_echo "$at_srcdir/ovn.at:2114: ovn_populate_arp__"
at_fn_check_prepare_trace "ovn.at:2114"
( $at_check_trace; ovn_populate_arp__
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2114"
$at_failed && at_fn_log_failure
$at_traceon; }


# Allow some time for ovn-northd and ovn-controller to catch up.
# XXX This should be more systematic.
sleep 1

# test_packet INPORT DST SRC ETHTYPE OUTPORT...
#
# This shell function causes a packet to be received on INPORT.  The packet's
# content has Ethernet destination DST and source SRC (each exactly 12 hex
# digits) and Ethernet type ETHTYPE (4 hex digits).  The OUTPORTs (zero or
# more) list the VIFs on which the packet should be received.  INPORT and the
# OUTPORTs are specified as lport numbers, e.g. 1 for vif1.
for i in 1 2 3; do
    : > $i.expected
done
test_packet() {
    local inport=$1 packet=$2$3$4; shift; shift; shift; shift
    #hv=hv`echo $inport | sed 's/^\(.\).*/\1/'`
    hv=hv$inport
    vif=vif$inport
    as $hv ovs-appctl netdev-dummy/receive $vif $packet
    for outport; do
        echo $packet >> $outport.expected
    done
}

# Send packets between all pairs of source and destination ports:
#
# 1. Unicast packets are delivered to exactly one lport (except that packets
#    destined to their input ports are dropped).
#
# 2. Broadcast and multicast are delivered to all lports except the input port.
#
# 3. The lswitch delivers packets with an unknown destination to lports with
#    "unknown" among their MAC addresses (and port security disabled).
for s in 1 2 3 ; do
    bcast=
    unknown=
    for d in 1 2 3 ; do
        if test $d != $s; then unicast=$d; else unicast=; fi
        test_packet $s f0000000000$d f0000000000$s 00$s$d $unicast       #1

        # The vtep (vif3) is the only one configured for "unknown"
        if test $d != $s && test $d = 3; then
            unknown="$unknown $d"
        fi
        bcast="$bcast $unicast"
    done

    test_packet $s ffffffffffff f0000000000$s 0${s}ff $bcast             #2
    test_packet $s 010000000000 f0000000000$s 0${s}ff $bcast             #3
    test_packet $s f0000000ffff f0000000000$s 0${s}66 $unknown           #4
done

echo "------ ovn-nbctl show ------"
ovn-nbctl show
echo "------ ovn-sbctl show ------"
ovn-sbctl show

echo "------ hv1 ------"
as hv1 ovs-vsctl show
echo "------ hv1 br-int ------"
as hv1 ovs-ofctl -O OpenFlow13 dump-flows br-int
echo "------ hv1 br-phys ------"
as hv1 ovs-ofctl -O OpenFlow13 dump-flows br-phys

echo "------ hv2 ------"
as hv2 ovs-vsctl show
echo "------ hv2 br-int ------"
as hv2 ovs-ofctl -O OpenFlow13 dump-flows br-int
echo "------ hv2 br-phys ------"
as hv2 ovs-ofctl -O OpenFlow13 dump-flows br-phys

echo "------ hv_gw ------"
as hv_gw ovs-vsctl show
echo "------ hv_gw br-phys ------"
as hv_gw ovs-ofctl -O OpenFlow13 dump-flows br-phys
echo "------ hv_gw br-phys2 ------"
as hv_gw ovs-ofctl -O OpenFlow13 dump-flows br-phys2

echo "------ hv3 ------"
as hv3 ovs-vsctl show
echo "------ hv3 br-phys ------"
as hv3 ovs-ofctl -O OpenFlow13 dump-flows br-phys

# Now check the packets actually received against the ones expected.
for i in 1 2 3; do
    ovn_check_packets__ "hv$i/vif$i-tx.pcap" "$i.expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:2202: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:2202"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2202"
$at_failed && at_fn_log_failure
$at_traceon; }

done
  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2435
#AT_START_2436
at_fn_group_banner 2436 'ovn.at:2207' \
  "ovn -- 3 HVs, 3 LS, 3 lports/LS, 1 LR" "          " 125
at_xfail=no
(
  $as_echo "2436. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn.at:2208" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:2208"
ovn_start

# Logical network:
#
# Three logical switches ls1, ls2, ls3.
# One logical router lr0 connected to ls[123],
# with nine subnets, three per logical switch:
#
#    lrp11 on ls1 for subnet 192.168.11.0/24
#    lrp12 on ls1 for subnet 192.168.12.0/24
#    lrp13 on ls1 for subnet 192.168.13.0/24
#    ...
#    lrp33 on ls3 for subnet 192.168.33.0/24
#
# 27 VIFs, 9 per LS, 3 per subnet: lp[123][123][123], where the first two
# digits are the subnet and the last digit distinguishes the VIF.
for i in 1 2 3; do
    ovn-nbctl ls-add ls$i
    for j in 1 2 3; do
        for k in 1 2 3; do
            # Add "unknown" to MAC addresses for lp?11, so packets for
            # MAC-IP bindings discovered via ARP later have somewhere to go.
            if test $j$k = 11; then unknown=unknown; else unknown=; fi

            ovn-nbctl \
                -- lsp-add ls$i lp$i$j$k \
                -- lsp-set-addresses lp$i$j$k "f0:00:00:00:0$i:$j$k \
                   192.168.$i$j.$k" $unknown
        done
    done
done

ovn-nbctl lr-add lr0
for i in 1 2 3; do
    for j in 1 2 3; do
        ovn-nbctl lrp-add lr0 lrp$i$j 00:00:00:00:ff:$i$j 192.168.$i$j.254/24
        ovn-nbctl \
            -- lsp-add ls$i lrp$i$j-attachment \
            -- set Logical_Switch_Port lrp$i$j-attachment type=router \
                             options:router-port=lrp$i$j \
                             addresses='"00:00:00:00:ff:'$i$j'"'
    done
done

ovn-nbctl set Logical_Switch_Port lrp33-attachment \
    addresses='"00:00:00:00:ff:33 192.168.33.254"'

# Physical network:
#
# Three hypervisors hv[123].
# lp?1[123] spread across hv[123]: lp?11 on hv1, lp?12 on hv2, lp?13 on hv3.
# lp?2[123] spread across hv[23]: lp?21 and lp?22 on hv2, lp?23 on hv3.
# lp?3[123] all on hv3.


# Given the name of a logical port, prints the name of the hypervisor
# on which it is located.
vif_to_hv() {
    case $1 in         ?11) echo 1 ;;         ?12 | ?21 | ?22) echo 2 ;;         ?13 | ?23 | ?3?) echo 3 ;;
    esac
}

# Given the name of a logical port, prints the name of its logical router
# port, e.g. "vif_to_lrp 123" yields 12.
vif_to_lrp() {
    echo ${1%?}
}

# Given the name of a logical port, prints the name of its logical
# switch, e.g. "vif_to_ls 123" yields 1.
vif_to_ls() {
    echo ${1%??}
}

net_add n1
for i in 1 2 3; do
    sim_add hv$i
    as hv$i
    ovs-vsctl add-br br-phys
    ovn_attach n1 br-phys 192.168.0.$i
done
for i in 1 2 3; do
    for j in 1 2 3; do
        for k in 1 2 3; do
            hv=`vif_to_hv $i$j$k`
                as hv$hv ovs-vsctl \
                -- add-port br-int vif$i$j$k \
                -- set Interface vif$i$j$k \
                    external-ids:iface-id=lp$i$j$k \
                    options:tx_pcap=hv$hv/vif$i$j$k-tx.pcap \
                    options:rxq_pcap=hv$hv/vif$i$j$k-rx.pcap \
                    ofport-request=$i$j$k
        done
    done
done

# Pre-populate the hypervisors' ARP tables so that we don't lose any
# packets for ARP resolution (native tunneling doesn't queue packets
# for ARP resolution).
{ set +x
$as_echo "$at_srcdir/ovn.at:2311: ovn_populate_arp__"
at_fn_check_prepare_trace "ovn.at:2311"
( $at_check_trace; ovn_populate_arp__
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2311"
$at_failed && at_fn_log_failure
$at_traceon; }


# Allow some time for ovn-northd and ovn-controller to catch up.
# XXX This should be more systematic.
sleep 1

# test_ip INPORT SRC_MAC DST_MAC SRC_IP DST_IP OUTPORT...
#
# This shell function causes a packet to be received on INPORT.  The packet's
# content has Ethernet destination DST and source SRC (each exactly 12 hex
# digits) and Ethernet type ETHTYPE (4 hex digits).  The OUTPORTs (zero or
# more) list the VIFs on which the packet should be received.  INPORT and the
# OUTPORTs are specified as logical switch port numbers, e.g. 123 for vif123.
for i in 1 2 3; do
    for j in 1 2 3; do
        for k in 1 2 3; do
            : > $i$j$k.expected
        done
    done
done
test_ip() {
    # This packet has bad checksums but logical L3 routing doesn't check.
    local inport=$1 src_mac=$2 dst_mac=$3 src_ip=$4 dst_ip=$5
    local packet=${dst_mac}${src_mac}08004500001c0000000040110000${src_ip}${dst_ip}0035111100080000
    shift; shift; shift; shift; shift
    hv=hv`vif_to_hv $inport`
    as $hv ovs-appctl netdev-dummy/receive vif$inport $packet
    #as $hv ovs-appctl ofproto/trace br-int in_port=$inport $packet
    in_ls=`vif_to_ls $inport`
    in_lrp=`vif_to_lrp $inport`
    for outport; do
        out_ls=`vif_to_ls $outport`
        if test $in_ls = $out_ls; then
            # Ports on the same logical switch receive exactly the same packet.
            echo $packet
        else
            # Routing decrements TTL and updates source and dest MAC
            # (and checksum).
            out_lrp=`vif_to_lrp $outport`
            echo f00000000${outport}00000000ff${out_lrp}08004500001c00000000"3f1101"00${src_ip}${dst_ip}0035111100080000
        fi >> $outport.expected
    done
}

as hv1 ovs-vsctl --columns=name,ofport list interface
as hv1 ovn-sbctl list port_binding
as hv1 ovn-sbctl list datapath_binding
as hv1 ovn-sbctl dump-flows
as hv1 ovs-ofctl dump-flows br-int

# Send IP packets between all pairs of source and destination ports:
#
# 1. Unicast IP packets are delivered to exactly one logical switch port
#    (except that packets destined to their input ports are dropped).
#
# 2. Broadcast IP packets are delivered to all logical switch ports
#    except the input port.
ip_to_hex() {
    printf "%02x%02x%02x%02x" "$@"
}
for is in 1 2 3; do
  for js in 1 2 3; do
    for ks in 1 2 3; do
      bcast=
      s=$is$js$ks
      smac=f00000000$s
      sip=`ip_to_hex 192 168 $is$js $ks`
      for id in 1 2 3; do
          for jd in 1 2 3; do
              for kd in 1 2 3; do
                d=$id$jd$kd
                dip=`ip_to_hex 192 168 $id$jd $kd`
                if test $is = $id; then dmac=f00000000$d; else dmac=00000000ff$is$js; fi
                if test $d != $s; then unicast=$d; else unicast=; fi

                test_ip $s $smac $dmac $sip $dip $unicast #1

                if test $id = $is && test $d != $s; then bcast="$bcast $d"; fi
              done
          done
        done
      test_ip $s $smac ffffffffffff $sip ffffffff $bcast #2
      done
  done
done

# 3. Send an IP packet from every logical port to every other subnet,
#    to an IP address that does not have a static IP-MAC binding.
#    This should generate a broadcast ARP request for the destination
#    IP address in the destination subnet.
for is in 1 2 3; do
  for js in 1 2 3; do
    for ks in 1 2 3; do
      s=$is$js$ks
      smac=f00000000$s
      sip=`ip_to_hex 192 168 $is$js $ks`
      for id in 1 2 3; do
        for jd in 1 2 3; do
          if test $is$js = $id$jd; then
            continue
          fi

          # Send the packet.
          dmac=00000000ff$is$js
          # Calculate a 4th octet for the destination that is
          # unique per $s, avoids the .1 .2 .3 and .254 IP addresses
          # that have static MAC bindings, and fits in the range
          # 0-255.
          o4=`expr $is '*' 9 + $js '*' 3 + $ks + 10`
          dip=`ip_to_hex 192 168 $id$jd $o4`
          test_ip $s $smac $dmac $sip $dip

          # Every LP on the destination subnet's lswitch should
          # receive the ARP request.
          lrmac=00000000ff$id$jd
          lrip=`ip_to_hex 192 168 $id$jd 254`
          arp=ffffffffffff${lrmac}08060001080006040001${lrmac}${lrip}000000000000${dip}
          for jd2 in 1 2 3; do
            for kd in 1 2 3; do
              echo $arp >> $id$jd2$kd.expected
            done
          done
        done
      done
    done
  done
done

# test_arp INPORT SHA SPA TPA [REPLY_HA]
#
# Causes a packet to be received on INPORT.  The packet is an ARP
# request with SHA, SPA, and TPA as specified.  If REPLY_HA is provided, then
# it should be the hardware address of the target to expect to receive in an
# ARP reply; otherwise no reply is expected.
#
# INPORT is an logical switch port number, e.g. 11 for vif11.
# SHA and REPLY_HA are each 12 hex digits.
# SPA and TPA are each 8 hex digits.
test_arp() {
    local inport=$1 sha=$2 spa=$3 tpa=$4 reply_ha=$5
    local request=ffffffffffff${sha}08060001080006040001${sha}${spa}ffffffffffff${tpa}
    hv=hv`vif_to_hv $inport`
    as $hv ovs-appctl netdev-dummy/receive vif$inport $request
    as $hv ovs-appctl ofproto/trace br-int in_port=$inport $request

    # Expect to receive the broadcast ARP on the other logical switch ports if
    # IP address is not configured to the switch patch port.
    local i=`vif_to_ls $inport`
    local j k
    for j in 1 2 3; do
        for k in 1 2 3; do
            # 192.168.33.254 is configured to the switch patch port for lrp33,
            # so no ARP flooding expected for it.
            if test $i$j$k != $inport && test $tpa != `ip_to_hex 192 168 33 254`; then
                echo $request >> $i$j$k.expected
            fi
        done
    done

    # Expect to receive the reply, if any.
    if test X$reply_ha != X; then
        lrp=`vif_to_lrp $inport`
        local reply=${sha}00000000ff${lrp}08060001080006040002${reply_ha}${tpa}${sha}${spa}
        echo $reply >> $inport.expected
    fi
}

# Test router replies to ARP requests from all source ports:
#
# 4. Router replies to query for its MAC address from port's own IP address.
#
# 5. Router replies to query for its MAC address from any random IP address
#    in its subnet.
#
# 6. Router replies to query for its MAC address from another subnet.
#
# 7. No reply to query for IP address other than router IP.
for i in 1 2 3; do
  for j in 1 2 3; do
    for k in 1 2 3; do
      smac=f00000000$i$j$k               # Source MAC
      sip=`ip_to_hex 192 168 $i$j $k`    # Source IP
      rip=`ip_to_hex 192 168 $i$j 254`   # Router IP
      rmac=00000000ff$i$j                # Router MAC
      otherip=`ip_to_hex 192 168 $i$j 55` # Some other IP in subnet
      test_arp $i$j$k $smac $sip        $rip        $rmac #4
      test_arp $i$j$k $smac $otherip    $rip        $rmac #5
      test_arp $i$j$k $smac 0a123456    $rip        $rmac #6
      test_arp $i$j$k $smac $sip        $otherip          #7
    done
  done
done

# Allow some time for packet forwarding.
# XXX This can be improved.
sleep 1

# 8. Generate an ARP reply for each of the IP addresses ARPed for
#    earlier as #3.
#
#    Here, the $s is the VIF that originated the ARP request and $d is
#    the VIF that sends the ARP reply, which is somewhat backward but
#    it means that $s and $d are the same as #3.
: > mac_bindings.expected
for is in 1 2 3; do
  for js in 1 2 3; do
    for ks in 1 2 3; do
      s=$is$js$ks
      for id in 1 2 3; do
        for jd in 1 2 3; do
          if test $is$js = $id$jd; then
            continue
          fi

          kd=1
          d=$id$jd$kd

          o4=`expr $is '*' 9 + $js '*' 3 + $ks + 10`
          host_ip=`ip_to_hex 192 168 $id$jd $o4`
          host_mac=8000000000$o4

          lrmac=00000000ff$id$jd
          lrip=`ip_to_hex 192 168 $id$jd 254`

          arp=${lrmac}${host_mac}08060001080006040002${host_mac}${host_ip}${lrmac}${lrip}

          echo
          echo
          echo
          hv=hv`vif_to_hv $d`
          as $hv ovs-appctl netdev-dummy/receive vif$d $arp
          #as $hv ovs-appctl ofproto/trace br-int in_port=$d $arp
          #as $hv ovs-ofctl dump-flows br-int table=19

          host_ip_pretty=192.168.$id$jd.$o4
          host_mac_pretty=80:00:00:00:00:$o4
          echo lrp$id$jd,$host_ip_pretty,$host_mac_pretty >> mac_bindings.expected
        done
      done
    done
  done
done

# Allow some time for packet forwarding.
# XXX This can be improved.
sleep 1

# 9. Send an IP packet from every logical port to every other subnet.  These
#    are the same packets already sent as #3, but now the destinations' IP-MAC
#    bindings have been discovered via ARP, so instead of provoking an ARP
#    request, these packets now get routed to their destinations (which don't
#    have static MAC bindings, so they go to the port we've designated as
#    accepting "unknown" MACs.)
for is in 1 2 3; do
  for js in 1 2 3; do
    for ks in 1 2 3; do
      s=$is$js$ks
      smac=f00000000$s
      sip=`ip_to_hex 192 168 $is$js $ks`
      for id in 1 2 3; do
        for jd in 1 2 3; do
          if test $is$js = $id$jd; then
            continue
          fi

          # Send the packet.
          dmac=00000000ff$is$js
          # Calculate a 4th octet for the destination that is
          # unique per $s, avoids the .1 .2 .3 and .254 IP addresses
          # that have static MAC bindings, and fits in the range
          # 0-255.
          o4=`expr $is '*' 9 + $js '*' 3 + $ks + 10`
          dip=`ip_to_hex 192 168 $id$jd $o4`
          test_ip $s $smac $dmac $sip $dip

          # Expect the packet egress.
          host_mac=8000000000$o4
          outport=${id}11
          out_lrp=$id$jd
          echo ${host_mac}00000000ff${out_lrp}08004500001c00000000"3f1101"00${sip}${dip}0035111100080000 >> $outport.expected
        done
      done
    done
  done
done

ovn-sbctl -f csv -d bare --no-heading \
    -- --columns=logical_port,ip,mac list mac_binding > mac_bindings

# Now check the packets actually received against the ones expected.
for i in 1 2 3; do
    for j in 1 2 3; do
        for k in 1 2 3; do
            ovn_check_packets__ "hv`vif_to_hv $i$j$k`/vif$i$j$k-tx.pcap" "$i$j$k.expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:2604: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:2604"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2604"
$at_failed && at_fn_log_failure
$at_traceon; }

        done
    done
done

# Check the MAC bindings against those expected.
{ set +x
$as_echo "$at_srcdir/ovn.at:2611: sort < mac_bindings"
at_fn_check_prepare_trace "ovn.at:2611"
( $at_check_trace; sort < mac_bindings
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "`sort < mac_bindings.expected`
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2611"
$at_failed && at_fn_log_failure
$at_traceon; }


# Gracefully terminate daemons



    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:2615: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:2615"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2615: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:2615"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2615: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2615: wait failed" >&5

    $as_echo "ovn.at:2615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2615"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:2615: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:2615"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2615: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:2615"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2615: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2615: wait failed" >&5

    $as_echo "ovn.at:2615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2615"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:2615: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:2615"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2615: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:2615"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2615: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2615: wait failed" >&5

    $as_echo "ovn.at:2615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2615"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:2615: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:2615"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2615: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:2615"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2615: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2615: wait failed" >&5

    $as_echo "ovn.at:2615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2615"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:2615: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:2615"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2615: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:2615"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2615: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2615: wait failed" >&5

    $as_echo "ovn.at:2615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2615"
fi





    as hv2
    if test "hv2" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:2615: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:2615"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2615: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:2615"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2615: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2615: wait failed" >&5

    $as_echo "ovn.at:2615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2615"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:2615: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:2615"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2615: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:2615"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2615: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2615: wait failed" >&5

    $as_echo "ovn.at:2615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2615"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:2615: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:2615"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2615: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:2615"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2615: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2615: wait failed" >&5

    $as_echo "ovn.at:2615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2615"
fi

    fi

    as hv2
    { set +x
$as_echo "$at_srcdir/ovn.at:2615: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:2615"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2615: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:2615"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2615: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2615: wait failed" >&5

    $as_echo "ovn.at:2615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2615"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:2615: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:2615"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2615: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:2615"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2615: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2615: wait failed" >&5

    $as_echo "ovn.at:2615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2615"
fi





    as hv3
    if test "hv3" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:2615: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:2615"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2615: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:2615"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2615: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2615: wait failed" >&5

    $as_echo "ovn.at:2615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2615"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:2615: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:2615"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2615: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:2615"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2615: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2615: wait failed" >&5

    $as_echo "ovn.at:2615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2615"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:2615: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:2615"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2615: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:2615"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2615: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2615: wait failed" >&5

    $as_echo "ovn.at:2615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2615"
fi

    fi

    as hv3
    { set +x
$as_echo "$at_srcdir/ovn.at:2615: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:2615"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2615: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:2615"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2615: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2615: wait failed" >&5

    $as_echo "ovn.at:2615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2615"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:2615: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:2615"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2615: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:2615"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2615: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2615: wait failed" >&5

    $as_echo "ovn.at:2615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2615"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:2615: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:2615"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2615: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:2615"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2615: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2615: wait failed" >&5

    $as_echo "ovn.at:2615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2615"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:2615: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:2615"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2615: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:2615"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2615: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2615: wait failed" >&5

    $as_echo "ovn.at:2615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2615"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:2615: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:2615"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2615: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:2615"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2615: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2615: wait failed" >&5

    $as_echo "ovn.at:2615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2615"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:2615: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:2615"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2615: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:2615"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2615: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2615: wait failed" >&5

    $as_echo "ovn.at:2615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2615"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:2615: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:2615"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2615: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:2615"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2615: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2615: wait failed" >&5

    $as_echo "ovn.at:2615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2615"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:2615: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:2615"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2615: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:2615"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2615"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2615: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2615: wait failed" >&5

    $as_echo "ovn.at:2615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2615"
fi




  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2436
#AT_START_2437
at_fn_group_banner 2437 'ovn.at:2620' \
  "ovn -- portsecurity : 3 HVs, 1 LS, 3 lports/HV" " " 125
at_xfail=no
(
  $as_echo "2437. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn.at:2621" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:2621"
ovn_start

# Create hypervisors hv[123].
# Add vif1[123] to hv1, vif2[123] to hv2, vif3[123] to hv3.
# Add all of the vifs to a single logical switch lsw0.
# Turn off port security on vifs vif[123]1
# Turn on l2 port security on vifs vif[123]2
# Turn of l2 and l3 port security on vifs vif[123]3
# Make vif13, vif2[23], vif3[123] destinations for unknown MACs.
ovn-nbctl ls-add lsw0
net_add n1
for i in 1 2 3; do
    sim_add hv$i
    as hv$i
    ovs-vsctl add-br br-phys
    ovn_attach n1 br-phys 192.168.0.$i

    for j in 1 2 3; do
        ovs-vsctl add-port br-int vif$i$j -- set Interface vif$i$j external-ids:iface-id=lp$i$j options:tx_pcap=hv$i/vif$i$j-tx.pcap options:rxq_pcap=hv$i/vif$i$j-rx.pcap ofport-request=$i$j
        ovn-nbctl lsp-add lsw0 lp$i$j
        if test $j = 1; then
            ovn-nbctl lsp-set-addresses lp$i$j "f0:00:00:00:00:$i$j 192.168.0.$i$j" unknown
        elif test $j = 2; then
            ovn-nbctl lsp-set-addresses lp$i$j "f0:00:00:00:00:$i$j 192.168.0.$i$j"
            ovn-nbctl lsp-set-port-security lp$i$j f0:00:00:00:00:$i$j
        else
            extra_addr="f0:00:00:00:0$i:$i$j fe80::ea2a:eaff:fe28:$i$j"
            ovn-nbctl lsp-set-addresses lp$i$j "f0:00:00:00:00:$i$j 192.168.0.$i$j" "$extra_addr"
            ovn-nbctl lsp-set-port-security lp$i$j "f0:00:00:00:00:$i$j 192.168.0.$i$j" "$extra_addr"
        fi
    done
done

# Pre-populate the hypervisors' ARP tables so that we don't lose any
# packets for ARP resolution (native tunneling doesn't queue packets
# for ARP resolution).
{ set +x
$as_echo "$at_srcdir/ovn.at:2658: ovn_populate_arp__"
at_fn_check_prepare_trace "ovn.at:2658"
( $at_check_trace; ovn_populate_arp__
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2658"
$at_failed && at_fn_log_failure
$at_traceon; }


# Allow some time for ovn-northd and ovn-controller to catch up.
# XXX This should be more systematic.
sleep 1

# Given the name of a logical port, prints the name of the hypervisor
# on which it is located.
vif_to_hv() {
    echo hv${1%?}
}

for i in 1 2 3; do
    for j in 1 2 3; do
        : > $i$j.expected
    done
done

# test_ip INPORT SRC_MAC DST_MAC SRC_IP DST_IP OUTPORT...
#
# This shell function causes an ip packet to be received on INPORT.
# The packet's content has Ethernet destination DST and source SRC
# (each exactly 12 hex digits) and Ethernet type ETHTYPE (4 hex digits).
# The OUTPORTs (zero or more) list the VIFs on which the packet should
# be received.  INPORT and the OUTPORTs are specified as logical switch
# port numbers, e.g. 11 for vif11.
test_ip() {
    # This packet has bad checksums but logical L3 routing doesn't check.
    local inport=$1 src_mac=$2 dst_mac=$3 src_ip=$4 dst_ip=$5
    local packet=${dst_mac}${src_mac}08004500001c0000000040110000${src_ip}${dst_ip}0035111100080000
    shift; shift; shift; shift; shift
    hv=`vif_to_hv $inport`
    as $hv ovs-appctl netdev-dummy/receive vif$inport $packet
    #as $hv ovs-appctl ofproto/trace br-int in_port=$inport $packet
    for outport; do
        echo $packet >> $outport.expected
    done
}

# test_arp INPORT SHA SPA TPA DROP [REPLY_HA]
#
# Causes a packet to be received on INPORT.  The packet is an ARP
# request with SHA, SPA, and TPA as specified.  If REPLY_HA is provided, then
# it should be the hardware address of the target to expect to receive in an
# ARP reply; otherwise no reply is expected.
#
# INPORT is an logical switch port number, e.g. 11 for vif11.
# SHA and REPLY_HA are each 12 hex digits.
# SPA and TPA are each 8 hex digits.
test_arp() {
    local inport=$1 smac=$2 sha=$3 spa=$4 tpa=$5 drop=$6 reply_ha=$7
    local request=ffffffffffff${smac}08060001080006040001${sha}${spa}ffffffffffff${tpa}
    hv=`vif_to_hv $inport`
    as $hv ovs-appctl netdev-dummy/receive vif$inport $request
    #as $hv ovs-appctl ofproto/trace br-int in_port=$inport $request
    if test $drop != 1; then
        if test X$reply_ha = X; then
            # Expect to receive the broadcast ARP on the other logical switch ports
            # if no reply is expected.
            local i j
            for i in 1 2 3; do
                for j in 1 2 3; do
                    if test $i$j != $inport; then
                        echo $request >> $i$j.expected
                    fi
                done
            done
        else
            # Expect to receive the reply, if any.
            local reply=${smac}${reply_ha}08060001080006040002${reply_ha}${tpa}${sha}${spa}
            echo $reply >> $inport.expected
        fi
    fi
}

# test_ipv6 INPORT SRC_MAC DST_MAC SRC_IP DST_IP OUTPORT...
# This function is similar to test_ip() except that it sends
# ipv6 packet
test_ipv6() {
    local inport=$1 src_mac=$2 dst_mac=$3 src_ip=$4 dst_ip=$5
    local packet=${dst_mac}${src_mac}86dd6000000000083aff${src_ip}${dst_ip}0000000000000000
    shift; shift; shift; shift; shift
    hv=`vif_to_hv $inport`
    as $hv ovs-appctl netdev-dummy/receive vif$inport $packet
    #as $hv ovs-appctl ofproto/trace br-int in_port=$inport $packet
    for outport; do
        echo $packet >> $outport.expected
    done
}

# test_icmpv6 INPORT  SRC_MAC DST_MAC SRC_IP DST_IP ICMP_TYPE OUTPORT...
# This function is similar to test_ipv6() except it specifies the ICMPv6 type
# of the test packet
test_icmpv6() {
    local inport=$1 src_mac=$2 dst_mac=$3 src_ip=$4 dst_ip=$5 icmp_type=$6
    local packet=${dst_mac}${src_mac}86dd6000000000083aff${src_ip}${dst_ip}${icmp_type}00000000000000
    shift; shift; shift; shift; shift; shift
    hv=`vif_to_hv $inport`
    as $hv ovs-appctl netdev-dummy/receive vif$inport $packet
    #as $hv ovs-appctl ofproto/trace br-int in_port=$inport $packet
    for outport; do
        echo $packet >> $outport.expected
    done
}

ip_to_hex() {
    printf "%02x%02x%02x%02x" "$@"
}

# no port security
sip=`ip_to_hex 192 168 0 12`
tip=`ip_to_hex 192 168 0 13`
# the arp packet should be allowed even if lp[123]1 is
# not configured with mac f00000000023 and ip 192.168.0.12
for i in 1 2 3; do
    test_arp ${i}1 f00000000023 f00000000023 $sip $tip 0 f00000000013
    for j in 1 2 3; do
        if test $i != $j; then
            test_ip ${i}1 f000000000${i}1 f000000000${j}1 $sip $tip ${j}1
        fi
    done
done

# l2 port security
sip=`ip_to_hex 192 168 0 12`
tip=`ip_to_hex 192 168 0 13`

# arp packet should be allowed since lp22 is configured with
# mac f00000000022
test_arp 22 f00000000022 f00000000022 $sip $tip 0 f00000000013

# arp packet should not be allowed since lp32 is not configured with
# mac f00000000021
test_arp 32 f00000000021 f00000000021 $sip $tip 1

# arp packet with sha set to f00000000021 should not be allowed
# for lp12
test_arp 12 f00000000012 f00000000021 $sip $tip 1

# ip packets should be allowed and received since lp[123]2 do not
# have l3 port security
sip=`ip_to_hex 192 168 0 55`
tip=`ip_to_hex 192 168 0 66`
for i in 1 2 3; do
    for j in 1 2 3; do
        if test $i != $j; then
            test_ip ${i}2 f000000000${i}2 f000000000${j}2 $sip $tip ${j}2
        fi
    done
done

# ipv6 packets should be received by lp[123]2
# lp[123]1 can send ipv6 traffic as there is no port security
sip=fe800000000000000000000000000000
tip=ff020000000000000000000000000000

for i in 1 2 3; do
    test_ipv6 ${i}1 f000000000${i}1 f000000000${i}2 $sip $tip ${i}2
done


# l2 and l3 port security
sip=`ip_to_hex 192 168 0 13`
tip=`ip_to_hex 192 168 0 22`
# arp packet should be allowed since lp13 is configured with
# f00000000013 and 192.168.0.13
test_arp 13 f00000000013 f00000000013 $sip $tip 0 f00000000022

# the arp packet should be dropped because lp23 is not configured
# with mac f00000000022
sip=`ip_to_hex 192 168 0 13`
tip=`ip_to_hex 192 168 0 22`
test_arp 23 f00000000022 f00000000022 $sip $tip 1

# the arp packet should be dropped because lp33 is not configured
# with ip 192.168.0.55
spa=`ip_to_hex 192 168 0 55`
tpa=`ip_to_hex 192 168 0 22`
test_arp 33 f00000000031 f00000000031 $spa $tpa 1

# ip packets should not be received by lp[123]3 since
# l3 port security is enabled
sip=`ip_to_hex 192 168 0 55`
tip=`ip_to_hex 192 168 0 66`
for i in 1 2 3; do
    for j in 1 2 3; do
        test_ip ${i}2 f000000000${i}2 f000000000${j}3 $sip $tip
    done
done

# ipv6 packets should be dropped for lp[123]3 since
# it is configured with only ipv4 address
sip=fe800000000000000000000000000000
tip=ff020000000000000000000000000000

for i in 1 2 3; do
    test_ipv6 ${i}3 f000000000${i}3 f00000000022 $sip $tip
done

# ipv6 packets should not be received by lp[123]3 with mac f000000000$[123]3
# lp[123]1 can send ipv6 traffic as there is no port security
for i in 1 2 3; do
    test_ipv6 ${i}1 f000000000${i}1 f000000000${i}3 $sip $tip
done

# lp13 has extra port security with mac f0000000113 and ipv6 addr
# fe80::ea2a:eaff:fe28:0012

# ipv4 packet should be dropped for lp13 with mac f0000000113
sip=`ip_to_hex 192 168 0 13`
tip=`ip_to_hex 192 168 0 23`
test_ip 13 f00000000113 f00000000023 $sip $tip

# ipv6 packet should be received by lp[123]3 with mac f00000000${i}${i}3
# and ip6.dst as fe80::ea2a:eaff:fe28:0${i}${i}3.
# lp11 can send ipv6 traffic as there is no port security
sip=ee800000000000000000000000000000
for i in 1 2 3; do
    tip=fe80000000000000ea2aeafffe2800${i}3
    test_ipv6 11 f00000000011 f00000000${i}${i}3 $sip $tip ${i}3
done


# ipv6 packet should not be received by lp33 with mac f0000000333
# and ip6.dst as fe80::ea2a:eaff:fe28:0023 as it is
# configured with fe80::ea2a:eaff:fe28:0033
# lp11 can send ipv6 traffic as there is no port security

sip=ee800000000000000000000000000000
tip=fe80000000000000ea2aeafffe280023
test_ipv6 11 f00000000011 f00000000333 $sip $tip

# ipv6 packet should be allowed for lp[123]3 with mac f0000000${i}${i}3
# and ip6.src fe80::ea2a:eaff:fe28:0${i}${i}3 and ip6.src ::.
# and should be dropped for any other ip6.src
# lp21 can receive ipv6 traffic as there is no port security

tip=ee800000000000000000000000000000
for i in 1 2 3; do
    sip=fe80000000000000ea2aeafffe2800${i}3
    test_ipv6 ${i}3 f00000000${i}${i}3 f00000000021 $sip $tip 21

    # Test ICMPv6 MLD reports (v1 and v2) and NS for DAD
    sip=00000000000000000000000000000000
    test_icmpv6 ${i}3 f00000000${i}${i}3 f00000000021 $sip ff020000000000000000000000160000 83 21
    test_icmpv6 ${i}3 f00000000${i}${i}3 f00000000021 $sip ff020000000000000000000000160000 8f 21
    test_icmpv6 ${i}3 f00000000${i}${i}3 f00000000021 $sip ff0200000000000000ea2aeafffe2800 87 21
    # Traffic to non-multicast traffic should be dropped
    test_icmpv6 ${i}3 f00000000${i}${i}3 f00000000021 $sip $tip 83
    # Traffic of other ICMPv6 types should be dropped
    test_icmpv6 ${i}3 f00000000${i}${i}3 f00000000021 $sip ff020000000000000000000000160000 80

    # should be dropped
    sip=ae80000000000000ea2aeafffe2800aa
    test_ipv6 ${i}3 f00000000${i}${i}3 f00000000021 $sip $tip
done

# configure lsp13 to send and received IPv4 packets with an address range
ovn-nbctl lsp-set-port-security lp13 "f0:00:00:00:00:13 192.168.0.13 20.0.0.4/24 10.0.0.0/24"

sleep 2

sip=`ip_to_hex 10 0 0 13`
tip=`ip_to_hex 192 168 0 22`
# arp packet with inner ip 10.0.0.13 should be allowed for lsp13
test_arp 13 f00000000013 f00000000013 $sip $tip 0 f00000000022

sip=`ip_to_hex 10 0 0 14`
tip=`ip_to_hex 192 168 0 23`
# IPv4 packet from lsp13 with src ip 10.0.0.14 destined to lsp23
# with dst ip 192.168.0.23 should be allowed
test_ip 13 f00000000013 f00000000023 $sip $tip 23

sip=`ip_to_hex 192 168 0 33`
tip=`ip_to_hex 10 0 0 15`
# IPv4 packet from lsp33 with src ip 192.168.0.33 destined to lsp13
# with dst ip 10.0.0.15 should be received by lsp13
test_ip 33 f00000000033 f00000000013 $sip $tip 13

sip=`ip_to_hex 192 168 0 33`
tip=`ip_to_hex 20 0 0 4`
# IPv4 packet from lsp33 with src ip 192.168.0.33 destined to lsp13
# with dst ip 20.0.0.4 should be received by lsp13
test_ip 33 f00000000033 f00000000013 $sip $tip 13

sip=`ip_to_hex 192 168 0 33`
tip=`ip_to_hex 20 0 0 5`
# IPv4 packet from lsp33 with src ip 192.168.0.33 destined to lsp13
# with dst ip 20.0.0.5 should not be received by lsp13
test_ip 33 f00000000033 f00000000013 $sip $tip

sip=`ip_to_hex 192 168 0 33`
tip=`ip_to_hex 20 0 0 255`
# IPv4 packet from lsp33 with src ip 192.168.0.33 destined to lsp13
# with dst ip 20.0.0.255 should be received by lsp13
test_ip 33 f00000000033 f00000000013 $sip $tip 13

sip=`ip_to_hex 192 168 0 33`
tip=`ip_to_hex 192 168 0 255`
# IPv4 packet from lsp33 with src ip 192.168.0.33 destined to lsp13
# with dst ip 192.168.0.255 should not be received by lsp13
test_ip 33 f00000000033 f00000000013 $sip $tip

sip=`ip_to_hex 192 168 0 33`
tip=`ip_to_hex 224 0 0 4`
# IPv4 packet from lsp33 with src ip 192.168.0.33 destined to lsp13
# with dst ip 224.0.0.4  should be received by lsp13
test_ip 33 f00000000033 f00000000013 $sip $tip 13

#dump information including flow counters
ovn-nbctl show
ovn-sbctl dump-flows -- list multicast_group

echo "------ hv1 dump ------"
as hv1 ovs-vsctl show
as hv1 ovs-ofctl -O OpenFlow13 show br-int
as hv1 ovs-ofctl -O OpenFlow13 dump-flows br-int

echo "------ hv2 dump ------"
as hv2 ovs-vsctl show
as hv2 ovs-ofctl -O OpenFlow13 show br-int
as hv2 ovs-ofctl -O OpenFlow13 dump-flows br-int

echo "------ hv3 dump ------"
as hv3 ovs-vsctl show
as hv3 ovs-ofctl -O OpenFlow13 show br-int
as hv3 ovs-ofctl -O OpenFlow13 dump-flows br-int

# Now check the packets actually received against the ones expected.
for i in 1 2 3; do
    for j in 1 2 3; do
        ovn_check_packets__ "hv$i/vif$i$j-tx.pcap" "$i$j.expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:2989: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:2989"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2989"
$at_failed && at_fn_log_failure
$at_traceon; }

    done
done




    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:2993: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:2993"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2993: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:2993"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2993: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2993: wait failed" >&5

    $as_echo "ovn.at:2993" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2993"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:2993: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:2993"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2993: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:2993"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2993: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2993: wait failed" >&5

    $as_echo "ovn.at:2993" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2993"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:2993: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:2993"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2993: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:2993"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2993: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2993: wait failed" >&5

    $as_echo "ovn.at:2993" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2993"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:2993: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:2993"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2993: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:2993"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2993: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2993: wait failed" >&5

    $as_echo "ovn.at:2993" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2993"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:2993: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:2993"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2993: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:2993"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2993: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2993: wait failed" >&5

    $as_echo "ovn.at:2993" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2993"
fi





    as hv2
    if test "hv2" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:2993: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:2993"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2993: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:2993"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2993: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2993: wait failed" >&5

    $as_echo "ovn.at:2993" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2993"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:2993: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:2993"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2993: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:2993"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2993: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2993: wait failed" >&5

    $as_echo "ovn.at:2993" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2993"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:2993: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:2993"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2993: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:2993"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2993: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2993: wait failed" >&5

    $as_echo "ovn.at:2993" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2993"
fi

    fi

    as hv2
    { set +x
$as_echo "$at_srcdir/ovn.at:2993: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:2993"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2993: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:2993"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2993: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2993: wait failed" >&5

    $as_echo "ovn.at:2993" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2993"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:2993: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:2993"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2993: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:2993"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2993: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2993: wait failed" >&5

    $as_echo "ovn.at:2993" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2993"
fi





    as hv3
    if test "hv3" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:2993: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:2993"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2993: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:2993"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2993: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2993: wait failed" >&5

    $as_echo "ovn.at:2993" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2993"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:2993: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:2993"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2993: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:2993"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2993: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2993: wait failed" >&5

    $as_echo "ovn.at:2993" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2993"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:2993: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:2993"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2993: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:2993"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2993: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2993: wait failed" >&5

    $as_echo "ovn.at:2993" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2993"
fi

    fi

    as hv3
    { set +x
$as_echo "$at_srcdir/ovn.at:2993: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:2993"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2993: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:2993"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2993: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2993: wait failed" >&5

    $as_echo "ovn.at:2993" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2993"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:2993: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:2993"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2993: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:2993"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2993: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2993: wait failed" >&5

    $as_echo "ovn.at:2993" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2993"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:2993: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:2993"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2993: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:2993"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2993: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2993: wait failed" >&5

    $as_echo "ovn.at:2993" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2993"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:2993: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:2993"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2993: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:2993"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2993: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2993: wait failed" >&5

    $as_echo "ovn.at:2993" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2993"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:2993: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:2993"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2993: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:2993"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2993: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2993: wait failed" >&5

    $as_echo "ovn.at:2993" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2993"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:2993: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:2993"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2993: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:2993"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2993: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2993: wait failed" >&5

    $as_echo "ovn.at:2993" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2993"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:2993: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:2993"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2993: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:2993"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2993: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2993: wait failed" >&5

    $as_echo "ovn.at:2993" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2993"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:2993: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:2993"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:2993: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:2993"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:2993"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:2993: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:2993: wait failed" >&5

    $as_echo "ovn.at:2993" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:2993"
fi




  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2437
#AT_START_2438
at_fn_group_banner 2438 'ovn.at:2997' \
  "ovn -- 2 HVs, 2 LS, 1 lport/LS, 2 peer LRs" "     " 125
at_xfail=no
(
  $as_echo "2438. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn.at:2998" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:2998"
ovn_start

# Logical network:
# Two LRs - R1 and R2 that are connected to each other as peers in 20.0.0.0/24
# network. R1 has a switchs ls1 (191.168.1.0/24) connected to it.
# R2 has ls2 (172.16.1.0/24) connected to it.

ls1_lp1_mac="f0:00:00:01:02:03"
rp_ls1_mac="00:00:00:01:02:03"
rp_ls2_mac="00:00:00:01:02:04"
ls2_lp1_mac="f0:00:00:01:02:04"

ls1_lp1_ip="192.168.1.2"
ls2_lp1_ip="172.16.1.2"

ovn-nbctl lr-add R1
ovn-nbctl lr-add R2

ovn-nbctl ls-add ls1
ovn-nbctl ls-add ls2

# Connect ls1 to R1
ovn-nbctl lrp-add R1 ls1 $rp_ls1_mac 192.168.1.1/24

ovn-nbctl lsp-add ls1 rp-ls1 -- set Logical_Switch_Port rp-ls1 type=router \
  options:router-port=ls1 addresses=\"$rp_ls1_mac\"

# Connect ls2 to R2
ovn-nbctl lrp-add R2 ls2 $rp_ls2_mac 172.16.1.1/24

ovn-nbctl lsp-add ls2 rp-ls2 -- set Logical_Switch_Port rp-ls2 type=router \
  options:router-port=ls2 addresses=\"$rp_ls2_mac\"

# Connect R1 to R2
ovn-nbctl lrp-add R1 R1_R2 00:00:00:02:03:04 20.0.0.1/24 peer=R2_R1
ovn-nbctl lrp-add R2 R2_R1 00:00:00:02:03:05 20.0.0.2/24 peer=R1_R2

ovn-nbctl lr-route-add R1 "0.0.0.0/0" 20.0.0.2
ovn-nbctl lr-route-add R2 "0.0.0.0/0" 20.0.0.1

# Create logical port ls1-lp1 in ls1
ovn-nbctl lsp-add ls1 ls1-lp1 \
-- lsp-set-addresses ls1-lp1 "$ls1_lp1_mac $ls1_lp1_ip"

# Create logical port ls2-lp1 in ls2
ovn-nbctl lsp-add ls2 ls2-lp1 \
-- lsp-set-addresses ls2-lp1 "$ls2_lp1_mac $ls2_lp1_ip"

# Create two hypervisor and create OVS ports corresponding to logical ports.
net_add n1

sim_add hv1
as hv1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.1
ovs-vsctl -- add-port br-int hv1-vif1 -- \
    set interface hv1-vif1 external-ids:iface-id=ls1-lp1 \
    options:tx_pcap=hv1/vif1-tx.pcap \
    options:rxq_pcap=hv1/vif1-rx.pcap \
    ofport-request=1

sim_add hv2
as hv2
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.2
ovs-vsctl -- add-port br-int hv2-vif1 -- \
    set interface hv2-vif1 external-ids:iface-id=ls2-lp1 \
    options:tx_pcap=hv2/vif1-tx.pcap \
    options:rxq_pcap=hv2/vif1-rx.pcap \
    ofport-request=1


# Pre-populate the hypervisors' ARP tables so that we don't lose any
# packets for ARP resolution (native tunneling doesn't queue packets
# for ARP resolution).
{ set +x
$as_echo "$at_srcdir/ovn.at:3074: ovn_populate_arp__"
at_fn_check_prepare_trace "ovn.at:3074"
( $at_check_trace; ovn_populate_arp__
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3074"
$at_failed && at_fn_log_failure
$at_traceon; }


# Allow some time for ovn-northd and ovn-controller to catch up.
# XXX This should be more systematic.
sleep 1

# Packet to send.
packet="inport==\"ls1-lp1\" && eth.src==$ls1_lp1_mac && eth.dst==$rp_ls1_mac &&
        ip4 && ip.ttl==64 && ip4.src==$ls1_lp1_ip && ip4.dst==$ls2_lp1_ip &&
        udp && udp.src==53 && udp.dst==4369"
as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet"


echo "---------NB dump-----"
ovn-nbctl show
echo "---------------------"
ovn-nbctl list logical_router
echo "---------------------"
ovn-nbctl list logical_router_port
echo "---------------------"

echo "---------SB dump-----"
ovn-sbctl list datapath_binding
echo "---------------------"
ovn-sbctl list port_binding
echo "---------------------"

echo "------ hv1 dump ----------"
as hv1 ovs-ofctl show br-int
as hv1 ovs-ofctl dump-flows br-int
echo "------ hv2 dump ----------"
as hv2 ovs-ofctl show br-int
as hv2 ovs-ofctl dump-flows br-int

# Packet to Expect
# The TTL should be decremented by 2.
packet="eth.src==$rp_ls2_mac && eth.dst==$ls2_lp1_mac &&
        ip4 && ip.ttl==62 && ip4.src==$ls1_lp1_ip && ip4.dst==$ls2_lp1_ip &&
        udp && udp.src==53 && udp.dst==4369"
echo $packet | ovstest test-ovn expr-to-packets > expected

ovn_check_packets__ "hv2/vif1-tx.pcap" "expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:3115: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:3115"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3115"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn.at:3117: ovn-sbctl dump-flows | grep lr_in_arp_resolve | \\
grep \"reg0 == 172.16.1.2\" | wc -l"
at_fn_check_prepare_notrace 'an embedded newline' "ovn.at:3117"
( $at_check_trace; ovn-sbctl dump-flows | grep lr_in_arp_resolve | \
grep "reg0 == 172.16.1.2" | wc -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3117"
$at_failed && at_fn_log_failure
$at_traceon; }


# Disable the ls2-lp1 port.
ovn-nbctl --wait=hv set logical_switch_port ls2-lp1 enabled=false

{ set +x
$as_echo "$at_srcdir/ovn.at:3124: ovn-sbctl dump-flows | grep lr_in_arp_resolve | \\
grep \"reg0 == 172.16.1.2\" | wc -l"
at_fn_check_prepare_notrace 'an embedded newline' "ovn.at:3124"
( $at_check_trace; ovn-sbctl dump-flows | grep lr_in_arp_resolve | \
grep "reg0 == 172.16.1.2" | wc -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3124"
$at_failed && at_fn_log_failure
$at_traceon; }


# Generate the packet destined for ls2-lp1 and it should not be delivered.
# Packet to send.
packet="inport==\"ls1-lp1\" && eth.src==$ls1_lp1_mac && eth.dst==$rp_ls1_mac &&
        ip4 && ip.ttl==64 && ip4.src==$ls1_lp1_ip && ip4.dst==$ls2_lp1_ip &&
        udp && udp.src==53 && udp.dst==4369"

as hv1 ovs-appctl -t ovn-controller inject-pkt "$packet"
# The 2nd packet sent shound not be received.
ovn_check_packets__ "hv2/vif1-tx.pcap" "expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:3136: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:3136"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3136"
$at_failed && at_fn_log_failure
$at_traceon; }





    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:3138: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:3138"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3138"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3138: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:3138"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3138"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3138: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3138: wait failed" >&5

    $as_echo "ovn.at:3138" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3138"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:3138: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:3138"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3138"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3138: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:3138"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3138"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3138: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3138: wait failed" >&5

    $as_echo "ovn.at:3138" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3138"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:3138: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:3138"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3138"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3138: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:3138"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3138"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3138: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3138: wait failed" >&5

    $as_echo "ovn.at:3138" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3138"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:3138: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:3138"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3138"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3138: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:3138"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3138"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3138: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3138: wait failed" >&5

    $as_echo "ovn.at:3138" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3138"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:3138: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:3138"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3138"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3138: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:3138"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3138"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3138: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3138: wait failed" >&5

    $as_echo "ovn.at:3138" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3138"
fi





    as hv2
    if test "hv2" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:3138: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:3138"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3138"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3138: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:3138"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3138"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3138: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3138: wait failed" >&5

    $as_echo "ovn.at:3138" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3138"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:3138: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:3138"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3138"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3138: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:3138"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3138"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3138: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3138: wait failed" >&5

    $as_echo "ovn.at:3138" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3138"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:3138: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:3138"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3138"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3138: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:3138"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3138"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3138: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3138: wait failed" >&5

    $as_echo "ovn.at:3138" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3138"
fi

    fi

    as hv2
    { set +x
$as_echo "$at_srcdir/ovn.at:3138: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:3138"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3138"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3138: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:3138"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3138"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3138: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3138: wait failed" >&5

    $as_echo "ovn.at:3138" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3138"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:3138: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:3138"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3138"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3138: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:3138"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3138"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3138: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3138: wait failed" >&5

    $as_echo "ovn.at:3138" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3138"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:3138: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:3138"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3138"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3138: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:3138"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3138"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3138: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3138: wait failed" >&5

    $as_echo "ovn.at:3138" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3138"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:3138: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:3138"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3138"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3138: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:3138"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3138"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3138: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3138: wait failed" >&5

    $as_echo "ovn.at:3138" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3138"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:3138: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:3138"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3138"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3138: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:3138"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3138"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3138: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3138: wait failed" >&5

    $as_echo "ovn.at:3138" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3138"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:3138: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:3138"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3138"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3138: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:3138"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3138"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3138: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3138: wait failed" >&5

    $as_echo "ovn.at:3138" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3138"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:3138: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:3138"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3138"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3138: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:3138"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3138"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3138: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3138: wait failed" >&5

    $as_echo "ovn.at:3138" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3138"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:3138: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:3138"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3138"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3138: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:3138"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3138"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3138: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3138: wait failed" >&5

    $as_echo "ovn.at:3138" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3138"
fi




  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2438
#AT_START_2439
at_fn_group_banner 2439 'ovn.at:3143' \
  "ovn -- 1 HV, 1 LS, 2 lport/LS, 1 LR" "            " 125
at_xfail=no
(
  $as_echo "2439. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


$as_echo "ovn.at:3145" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:3145"
ovn_start

# Logical network:
# One LR - R1 has switch ls1 with two subnets attached to it (191.168.1.0/24
# and 172.16.1.0/24) connected to it.

ovn-nbctl lr-add R1

ovn-nbctl ls-add ls1

# Connect ls1 to R1
ovn-nbctl lrp-add R1 ls1 00:00:00:01:02:03 192.168.1.1/24 172.16.1.1/24
ovn-nbctl lsp-add ls1 rp-ls1 -- set Logical_Switch_Port rp-ls1 type=router \
          options:router-port=ls1 addresses=\"00:00:00:01:02:03\"

# Create logical port ls1-lp1 in ls1
ovn-nbctl lsp-add ls1 ls1-lp1 \
          -- lsp-set-addresses ls1-lp1 "f0:00:00:01:02:03 192.168.1.2"

# Create logical port ls1-lp2 in ls1
ovn-nbctl lsp-add ls1 ls1-lp2 \
          -- lsp-set-addresses ls1-lp2 "f0:00:00:01:02:04 172.16.1.2"

# Create one hypervisor and create OVS ports corresponding to logical ports.
net_add n1

sim_add hv1
as hv1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.1
ovs-vsctl -- add-port br-int vif1 -- \
    set interface vif1 external-ids:iface-id=ls1-lp1 \
    options:tx_pcap=hv1/vif1-tx.pcap \
    options:rxq_pcap=hv1/vif1-rx.pcap \
    ofport-request=1

ovs-vsctl -- add-port br-int vif2 -- \
    set interface vif2 external-ids:iface-id=ls1-lp2 \
    options:tx_pcap=hv1/vif2-tx.pcap \
    options:rxq_pcap=hv1/vif2-rx.pcap \
    ofport-request=1


# Allow some time for ovn-northd and ovn-controller to catch up.
# XXX This should be more systematic.
sleep 1

# Send ip packets between the two ports.
ip_to_hex() {
    printf "%02x%02x%02x%02x" "$@"
}

# Packet to send.
src_mac="f00000010203"
dst_mac="000000010203"
src_ip=`ip_to_hex 192 168 1 2`
dst_ip=`ip_to_hex 172 16 1 2`
packet=${dst_mac}${src_mac}08004500001c0000000040110000${src_ip}${dst_ip}0035111100080000
as hv1 ovs-appctl netdev-dummy/receive vif1 $packet


echo "---------NB dump-----"
ovn-nbctl show
echo "---------------------"
ovn-nbctl list logical_router
echo "---------------------"
ovn-nbctl list logical_router_port
echo "---------------------"

echo "---------SB dump-----"
ovn-sbctl list datapath_binding
echo "---------------------"
ovn-sbctl list logical_flow
echo "---------------------"

echo "------ hv1 dump ----------"
as hv1 ovs-ofctl dump-flows br-int


#Disable router R1
ovn-nbctl set Logical_Router R1 enabled=false

# Allow some time for ovn-northd and ovn-controller to catch up.
# XXX This should be more systematic.
sleep 1

echo "---------SB dump-----"
ovn-sbctl list datapath_binding
echo "---------------------"
ovn-sbctl list logical_flow
echo "---------------------"

echo "------ hv1 dump ----------"
as hv1 ovs-ofctl dump-flows br-int

as hv1 ovs-appctl netdev-dummy/receive vif1 $packet

# Packet to Expect
expect_src_mac="000000010203"
expect_dst_mac="f00000010204"
echo "${expect_dst_mac}${expect_src_mac}08004500001c000000003f110100${src_ip}${dst_ip}0035111100080000" > expected

ovn_check_packets__ "hv1/vif2-tx.pcap" "expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:3248: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:3248"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3248"
$at_failed && at_fn_log_failure
$at_traceon; }



as hv1
{ set +x
$as_echo "$at_srcdir/ovn.at:3252: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:3252"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3252"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3252: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:3252"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3252"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3252: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3252: wait failed" >&5

    $as_echo "ovn.at:3252" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3252"
fi

{ set +x
$as_echo "$at_srcdir/ovn.at:3253: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:3253"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3253"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3253: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:3253"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3253"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3253: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3253: wait failed" >&5

    $as_echo "ovn.at:3253" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3253"
fi

{ set +x
$as_echo "$at_srcdir/ovn.at:3254: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:3254"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3254"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3254: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:3254"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3254"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3254: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3254: wait failed" >&5

    $as_echo "ovn.at:3254" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3254"
fi


as ovn-sb
{ set +x
$as_echo "$at_srcdir/ovn.at:3257: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:3257"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3257"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3257: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:3257"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3257"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3257: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3257: wait failed" >&5

    $as_echo "ovn.at:3257" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3257"
fi


as ovn-nb
{ set +x
$as_echo "$at_srcdir/ovn.at:3260: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:3260"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3260"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3260: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:3260"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3260"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3260: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3260: wait failed" >&5

    $as_echo "ovn.at:3260" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3260"
fi


as northd
{ set +x
$as_echo "$at_srcdir/ovn.at:3263: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:3263"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3263"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3263: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:3263"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3263"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3263: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3263: wait failed" >&5

    $as_echo "ovn.at:3263" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3263"
fi


as main
{ set +x
$as_echo "$at_srcdir/ovn.at:3266: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:3266"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3266"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3266: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:3266"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3266"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3266: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3266: wait failed" >&5

    $as_echo "ovn.at:3266" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3266"
fi

{ set +x
$as_echo "$at_srcdir/ovn.at:3267: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:3267"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3267"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3267: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:3267"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3267"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3267: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3267: wait failed" >&5

    $as_echo "ovn.at:3267" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3267"
fi


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2439
#AT_START_2440
at_fn_group_banner 2440 'ovn.at:3272' \
  "ovn -- 1 HV, 2 LSs, 1 lport/LS, 1 LR" "           " 125
at_xfail=no
(
  $as_echo "2440. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


$as_echo "ovn.at:3274" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:3274"
ovn_start

# Logical network:
# One LR - R1 has switch ls1 (191.168.1.0/24) connected to it,
# and has switch ls2 (172.16.1.0/24) connected to it.

ovn-nbctl lr-add R1

ovn-nbctl ls-add ls1
ovn-nbctl ls-add ls2

# Connect ls1 to R1
ovn-nbctl lrp-add R1 ls1 00:00:00:01:02:03 192.168.1.1/24
ovn-nbctl lsp-add ls1 rp-ls1 -- set Logical_Switch_Port rp-ls1 type=router \
          options:router-port=ls1 addresses=\"00:00:00:01:02:03\"

# Connect ls2 to R1
ovn-nbctl lrp-add R1 ls2 00:00:00:01:02:04 172.16.1.1/24
ovn-nbctl lsp-add ls2 rp-ls2 -- set Logical_Switch_Port rp-ls2 type=router \
          options:router-port=ls2 addresses=\"00:00:00:01:02:04\"

# Create logical port ls1-lp1 in ls1
ovn-nbctl lsp-add ls1 ls1-lp1 \
-- lsp-set-addresses ls1-lp1 "f0:00:00:01:02:03 192.168.1.2"

# Create logical port ls2-lp1 in ls2
ovn-nbctl lsp-add ls2 ls2-lp1 \
-- lsp-set-addresses ls2-lp1 "f0:00:00:01:02:04 172.16.1.2"

# Create one hypervisor and create OVS ports corresponding to logical ports.
net_add n1

sim_add hv1
as hv1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.1
ovs-vsctl -- add-port br-int vif1 -- \
    set interface vif1 external-ids:iface-id=ls1-lp1 \
    options:tx_pcap=hv1/vif1-tx.pcap \
    options:rxq_pcap=hv1/vif1-rx.pcap \
    ofport-request=1

ovs-vsctl -- add-port br-int vif2 -- \
    set interface vif2 external-ids:iface-id=ls2-lp1 \
    options:tx_pcap=hv1/vif2-tx.pcap \
    options:rxq_pcap=hv1/vif2-rx.pcap \
    ofport-request=1


# Allow some time for ovn-northd and ovn-controller to catch up.
# XXX This should be more systematic.
sleep 1

# Send ip packets between the two ports.
ip_to_hex() {
    printf "%02x%02x%02x%02x" "$@"
}

# Packet to send.
src_mac="f00000010203"
dst_mac="000000010203"
src_ip=`ip_to_hex 192 168 1 2`
dst_ip=`ip_to_hex 172 16 1 2`
packet=${dst_mac}${src_mac}08004500001c0000000040110000${src_ip}${dst_ip}0035111100080000
as hv1 ovs-appctl netdev-dummy/receive vif1 $packet


echo "---------NB dump-----"
ovn-nbctl show
echo "---------------------"
ovn-nbctl list logical_router
echo "---------------------"
ovn-nbctl list logical_router_port
echo "---------------------"

echo "---------SB dump-----"
ovn-sbctl list datapath_binding
echo "---------------------"
ovn-sbctl list logical_flow
echo "---------------------"

echo "------ hv1 dump ----------"
as hv1 ovs-ofctl dump-flows br-int

#Disable router R1
ovn-nbctl set Logical_Router R1 enabled=false

echo "---------SB dump-----"
ovn-sbctl list datapath_binding
echo "---------------------"
ovn-sbctl list logical_flow
echo "---------------------"

echo "------ hv1 dump ----------"
as hv1 ovs-ofctl dump-flows br-int

# Allow some time for the disabling of logical router R1 to propagate.
# XXX This should be more systematic.
sleep 1

as hv1 ovs-appctl netdev-dummy/receive vif1 $packet

# Packet to Expect
expect_src_mac="000000010204"
expect_dst_mac="f00000010204"
echo "${expect_dst_mac}${expect_src_mac}08004500001c000000003f110100${src_ip}${dst_ip}0035111100080000" > expected

ovn_check_packets__ "hv1/vif2-tx.pcap" "expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:3382: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:3382"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3382"
$at_failed && at_fn_log_failure
$at_traceon; }





    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:3384: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:3384"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3384"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3384: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:3384"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3384"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3384: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3384: wait failed" >&5

    $as_echo "ovn.at:3384" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3384"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:3384: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:3384"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3384"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3384: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:3384"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3384"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3384: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3384: wait failed" >&5

    $as_echo "ovn.at:3384" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3384"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:3384: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:3384"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3384"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3384: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:3384"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3384"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3384: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3384: wait failed" >&5

    $as_echo "ovn.at:3384" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3384"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:3384: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:3384"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3384"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3384: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:3384"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3384"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3384: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3384: wait failed" >&5

    $as_echo "ovn.at:3384" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3384"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:3384: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:3384"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3384"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3384: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:3384"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3384"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3384: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3384: wait failed" >&5

    $as_echo "ovn.at:3384" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3384"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:3384: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:3384"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3384"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3384: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:3384"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3384"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3384: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3384: wait failed" >&5

    $as_echo "ovn.at:3384" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3384"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:3384: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:3384"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3384"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3384: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:3384"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3384"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3384: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3384: wait failed" >&5

    $as_echo "ovn.at:3384" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3384"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:3384: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:3384"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3384"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3384: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:3384"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3384"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3384: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3384: wait failed" >&5

    $as_echo "ovn.at:3384" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3384"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:3384: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:3384"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3384"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3384: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:3384"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3384"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3384: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3384: wait failed" >&5

    $as_echo "ovn.at:3384" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3384"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:3384: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:3384"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3384"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3384: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:3384"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3384"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3384: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3384: wait failed" >&5

    $as_echo "ovn.at:3384" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3384"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:3384: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:3384"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3384"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3384: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:3384"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3384"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3384: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3384: wait failed" >&5

    $as_echo "ovn.at:3384" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3384"
fi




  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2440
#AT_START_2441
at_fn_group_banner 2441 'ovn.at:3388' \
  "ovn -- 2 HVs, 3 LS, 1 lport/LS, 2 peer LRs, static routes" "" 125
at_xfail=no
(
  $as_echo "2441. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn.at:3389" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:3389"
ovn_start

# Logical network:
# Two LRs - R1 and R2 that are connected to each other as peers in 20.0.0.0/24
# network. R1 has switchess foo (192.168.1.0/24)
# connected to it.
# R2 has alice (172.16.1.0/24) and bob (172.16.2.0/24) connected to it.

ovn-nbctl lr-add R1
ovn-nbctl lr-add R2

ovn-nbctl ls-add foo
ovn-nbctl ls-add alice
ovn-nbctl ls-add bob

# Connect foo to R1
ovn-nbctl lrp-add R1 foo 00:00:00:01:02:03 192.168.1.1/24
ovn-nbctl lsp-add foo rp-foo -- set Logical_Switch_Port rp-foo type=router \
          options:router-port=foo addresses=\"00:00:00:01:02:03\"

# Connect alice to R2
ovn-nbctl lrp-add R2 alice 00:00:00:01:02:04 172.16.1.1/24
ovn-nbctl lsp-add alice rp-alice -- set Logical_Switch_Port rp-alice \
          type=router options:router-port=alice addresses=\"00:00:00:01:02:04\"

# Connect bob to R2
ovn-nbctl lrp-add R2 bob 00:00:00:01:02:05 172.16.2.1/24
ovn-nbctl lsp-add bob rp-bob -- set Logical_Switch_Port rp-bob type=router \
          options:router-port=bob addresses=\"00:00:00:01:02:05\"

# Connect R1 to R2
ovn-nbctl lrp-add R1 R1_R2 00:00:00:02:03:04 20.0.0.1/24 peer=R2_R1
ovn-nbctl lrp-add R2 R2_R1 00:00:00:02:03:05 20.0.0.2/24 peer=R1_R2

#install static routes
ovn-nbctl lr-route-add R1 172.16.1.0/24 20.0.0.2
ovn-nbctl lr-route-add R2 172.16.2.0/24 20.0.0.2 R1_R2
ovn-nbctl lr-route-add R2 192.168.1.0/24 20.0.0.1

# Create logical port foo1 in foo
ovn-nbctl lsp-add foo foo1 \
-- lsp-set-addresses foo1 "f0:00:00:01:02:03 192.168.1.2"

# Create logical port alice1 in alice
ovn-nbctl lsp-add alice alice1 \
-- lsp-set-addresses alice1 "f0:00:00:01:02:04 172.16.1.2"

# Create logical port bob1 in bob
ovn-nbctl lsp-add bob bob1 \
-- lsp-set-addresses bob1 "f0:00:00:01:02:05 172.16.2.2"

# Create two hypervisor and create OVS ports corresponding to logical ports.
net_add n1

sim_add hv1
as hv1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.1
ovs-vsctl -- add-port br-int hv1-vif1 -- \
    set interface hv1-vif1 external-ids:iface-id=foo1 \
    options:tx_pcap=hv1/vif1-tx.pcap \
    options:rxq_pcap=hv1/vif1-rx.pcap \
    ofport-request=1

ovs-vsctl -- add-port br-int hv1-vif2 -- \
    set interface hv1-vif2 external-ids:iface-id=alice1 \
    options:tx_pcap=hv1/vif2-tx.pcap \
    options:rxq_pcap=hv1/vif2-rx.pcap \
    ofport-request=2

sim_add hv2
as hv2
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.2
ovs-vsctl -- add-port br-int hv2-vif1 -- \
    set interface hv2-vif1 external-ids:iface-id=bob1 \
    options:tx_pcap=hv2/vif1-tx.pcap \
    options:rxq_pcap=hv2/vif1-rx.pcap \
    ofport-request=1


# Pre-populate the hypervisors' ARP tables so that we don't lose any
# packets for ARP resolution (native tunneling doesn't queue packets
# for ARP resolution).
{ set +x
$as_echo "$at_srcdir/ovn.at:3474: ovn_populate_arp__"
at_fn_check_prepare_trace "ovn.at:3474"
( $at_check_trace; ovn_populate_arp__
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3474"
$at_failed && at_fn_log_failure
$at_traceon; }


# Allow some time for ovn-northd and ovn-controller to catch up.
# XXX This should be more systematic.
sleep 1

ip_to_hex() {
    printf "%02x%02x%02x%02x" "$@"
}

# Send ip packets between foo1 and alice1
src_mac="f00000010203"
dst_mac="000000010203"
src_ip=`ip_to_hex 192 168 1 2`
dst_ip=`ip_to_hex 172 16 1 2`
packet=${dst_mac}${src_mac}08004500001c0000000040110000${src_ip}${dst_ip}0035111100080000
as hv1 ovs-appctl netdev-dummy/receive hv1-vif1 $packet

# Send ip packets between foo1 and bob1
src_mac="f00000010203"
dst_mac="000000010203"
src_ip=`ip_to_hex 192 168 1 2`
dst_ip=`ip_to_hex 172 16 2 2`
packet=${dst_mac}${src_mac}08004500001c0000000040110000${src_ip}${dst_ip}0035111100080000
as hv1 ovs-appctl netdev-dummy/receive hv1-vif1 $packet

echo "---------NB dump-----"
ovn-nbctl show
echo "---------------------"
ovn-nbctl list logical_router
echo "---------------------"
ovn-nbctl list logical_router_port
echo "---------------------"

echo "---------SB dump-----"
ovn-sbctl list datapath_binding
echo "---------------------"
ovn-sbctl list port_binding
echo "---------------------"

echo "------ hv1 dump ----------"
as hv1 ovs-ofctl dump-flows br-int
echo "------ hv2 dump ----------"
as hv2 ovs-ofctl dump-flows br-int

# Packet to Expect at bob1
src_mac="000000010205"
dst_mac="f00000010205"
src_ip=`ip_to_hex 192 168 1 2`
dst_ip=`ip_to_hex 172 16 2 2`
echo "${dst_mac}${src_mac}08004500001c000000003e110200${src_ip}${dst_ip}0035111100080000" > expected

ovn_check_packets__ "hv2/vif1-tx.pcap" "expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:3526: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:3526"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3526"
$at_failed && at_fn_log_failure
$at_traceon; }


# Packet to Expect at alice1
src_mac="000000010204"
dst_mac="f00000010204"
src_ip=`ip_to_hex 192 168 1 2`
dst_ip=`ip_to_hex 172 16 1 2`
echo "${dst_mac}${src_mac}08004500001c000000003e110200${src_ip}${dst_ip}0035111100080000" > expected

ovn_check_packets__ "hv1/vif2-tx.pcap" "expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:3535: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:3535"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3535"
$at_failed && at_fn_log_failure
$at_traceon; }





    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:3537: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:3537"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3537"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3537: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:3537"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3537"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3537: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3537: wait failed" >&5

    $as_echo "ovn.at:3537" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3537"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:3537: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:3537"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3537"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3537: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:3537"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3537"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3537: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3537: wait failed" >&5

    $as_echo "ovn.at:3537" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3537"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:3537: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:3537"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3537"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3537: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:3537"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3537"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3537: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3537: wait failed" >&5

    $as_echo "ovn.at:3537" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3537"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:3537: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:3537"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3537"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3537: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:3537"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3537"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3537: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3537: wait failed" >&5

    $as_echo "ovn.at:3537" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3537"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:3537: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:3537"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3537"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3537: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:3537"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3537"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3537: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3537: wait failed" >&5

    $as_echo "ovn.at:3537" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3537"
fi





    as hv2
    if test "hv2" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:3537: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:3537"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3537"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3537: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:3537"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3537"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3537: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3537: wait failed" >&5

    $as_echo "ovn.at:3537" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3537"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:3537: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:3537"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3537"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3537: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:3537"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3537"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3537: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3537: wait failed" >&5

    $as_echo "ovn.at:3537" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3537"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:3537: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:3537"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3537"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3537: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:3537"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3537"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3537: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3537: wait failed" >&5

    $as_echo "ovn.at:3537" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3537"
fi

    fi

    as hv2
    { set +x
$as_echo "$at_srcdir/ovn.at:3537: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:3537"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3537"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3537: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:3537"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3537"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3537: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3537: wait failed" >&5

    $as_echo "ovn.at:3537" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3537"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:3537: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:3537"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3537"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3537: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:3537"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3537"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3537: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3537: wait failed" >&5

    $as_echo "ovn.at:3537" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3537"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:3537: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:3537"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3537"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3537: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:3537"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3537"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3537: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3537: wait failed" >&5

    $as_echo "ovn.at:3537" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3537"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:3537: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:3537"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3537"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3537: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:3537"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3537"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3537: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3537: wait failed" >&5

    $as_echo "ovn.at:3537" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3537"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:3537: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:3537"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3537"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3537: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:3537"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3537"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3537: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3537: wait failed" >&5

    $as_echo "ovn.at:3537" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3537"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:3537: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:3537"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3537"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3537: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:3537"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3537"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3537: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3537: wait failed" >&5

    $as_echo "ovn.at:3537" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3537"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:3537: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:3537"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3537"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3537: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:3537"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3537"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3537: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3537: wait failed" >&5

    $as_echo "ovn.at:3537" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3537"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:3537: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:3537"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3537"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3537: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:3537"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3537"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3537: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3537: wait failed" >&5

    $as_echo "ovn.at:3537" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3537"
fi




  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2441
#AT_START_2442
at_fn_group_banner 2442 'ovn.at:3541' \
  "ovn -- send gratuitous arp on localnet" "         " 125
at_xfail=no
(
  $as_echo "2442. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn.at:3542" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:3542"
ovn_start
ovn-nbctl ls-add lsw0
net_add n1
sim_add hv
as hv
ovs-vsctl \
    -- add-br br-phys \
    -- add-br br-eth0

ovn_attach n1 br-phys 192.168.0.1

{ set +x
$as_echo "$at_srcdir/ovn.at:3554: ovs-vsctl set Open_vSwitch . external-ids:ovn-bridge-mappings=physnet1:br-eth0"
at_fn_check_prepare_trace "ovn.at:3554"
( $at_check_trace; ovs-vsctl set Open_vSwitch . external-ids:ovn-bridge-mappings=physnet1:br-eth0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3554"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:3555: ovs-vsctl add-port br-eth0 snoopvif -- set Interface snoopvif options:tx_pcap=hv/snoopvif-tx.pcap options:rxq_pcap=hv/snoopvif-rx.pcap"
at_fn_check_prepare_trace "ovn.at:3555"
( $at_check_trace; ovs-vsctl add-port br-eth0 snoopvif -- set Interface snoopvif options:tx_pcap=hv/snoopvif-tx.pcap options:rxq_pcap=hv/snoopvif-rx.pcap
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3555"
$at_failed && at_fn_log_failure
$at_traceon; }


# Create a vif.
{ set +x
$as_echo "$at_srcdir/ovn.at:3558: ovn-nbctl lsp-add lsw0 localvif1"
at_fn_check_prepare_trace "ovn.at:3558"
( $at_check_trace; ovn-nbctl lsp-add lsw0 localvif1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3558"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:3559: ovn-nbctl lsp-set-addresses localvif1 \"f0:00:00:00:00:01 192.168.1.2\""
at_fn_check_prepare_trace "ovn.at:3559"
( $at_check_trace; ovn-nbctl lsp-set-addresses localvif1 "f0:00:00:00:00:01 192.168.1.2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3559"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:3560: ovn-nbctl lsp-set-port-security localvif1 \"f0:00:00:00:00:01\""
at_fn_check_prepare_trace "ovn.at:3560"
( $at_check_trace; ovn-nbctl lsp-set-port-security localvif1 "f0:00:00:00:00:01"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3560"
$at_failed && at_fn_log_failure
$at_traceon; }


# Create a localnet port.
{ set +x
$as_echo "$at_srcdir/ovn.at:3563: ovn-nbctl lsp-add lsw0 ln_port"
at_fn_check_prepare_trace "ovn.at:3563"
( $at_check_trace; ovn-nbctl lsp-add lsw0 ln_port
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3563"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:3564: ovn-nbctl lsp-set-addresses ln_port unknown"
at_fn_check_prepare_trace "ovn.at:3564"
( $at_check_trace; ovn-nbctl lsp-set-addresses ln_port unknown
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3564"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:3565: ovn-nbctl lsp-set-type ln_port localnet"
at_fn_check_prepare_trace "ovn.at:3565"
( $at_check_trace; ovn-nbctl lsp-set-type ln_port localnet
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3565"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:3566: ovn-nbctl lsp-set-options ln_port network_name=physnet1"
at_fn_check_prepare_trace "ovn.at:3566"
( $at_check_trace; ovn-nbctl lsp-set-options ln_port network_name=physnet1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3566"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn.at:3568: ovs-vsctl add-port br-int localvif1 -- set Interface localvif1 external_ids:iface-id=localvif1"
at_fn_check_prepare_trace "ovn.at:3568"
( $at_check_trace; ovs-vsctl add-port br-int localvif1 -- set Interface localvif1 external_ids:iface-id=localvif1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3568"
$at_failed && at_fn_log_failure
$at_traceon; }


# Wait for packet to be received.
echo "fffffffffffff0000000000108060001080006040001f00000000001c0a80102000000000000c0a80102" > expected
ovn_check_packets__ "hv/snoopvif-tx.pcap" "expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:3572: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:3572"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3572"
$at_failed && at_fn_log_failure
$at_traceon; }


# Check GARP packet when restart openflow connection.
as hv
{ set +x
$as_echo "$at_srcdir/ovn.at:3576: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:3576"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3576"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3576: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:3576"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3576"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3576: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3576: wait failed" >&5

    $as_echo "ovn.at:3576" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3576"
fi


$as_echo "ovn.at:3578: waiting until grep -c \"waiting 4 seconds before reconnect\" hv/ovn-controller.log..." >&5
ovs_wait_cond () {
    grep -c "waiting 4 seconds before reconnect" hv/ovn-controller.log
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3578: wait failed" >&5

    $as_echo "ovn.at:3578" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3578"
fi


as hv
start_daemon ovs-vswitchd --enable-dummy=system -vvconn -vofproto_dpif -vunixctl

# Wait for packet to be received.
echo "fffffffffffff0000000000108060001080006040001f00000000001c0a80102000000000000c0a80102" > expected
ovn_check_packets__ "hv/snoopvif-tx.pcap" "expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:3585: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:3585"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3585"
$at_failed && at_fn_log_failure
$at_traceon; }


# Delete the localnet ports.
{ set +x
$as_echo "$at_srcdir/ovn.at:3588: ovs-vsctl del-port localvif1"
at_fn_check_prepare_trace "ovn.at:3588"
( $at_check_trace; ovs-vsctl del-port localvif1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3588"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:3589: ovn-nbctl lsp-del ln_port"
at_fn_check_prepare_trace "ovn.at:3589"
( $at_check_trace; ovn-nbctl lsp-del ln_port
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3589"
$at_failed && at_fn_log_failure
$at_traceon; }





    as hv
    if test "hv" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:3591: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:3591"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3591"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3591: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:3591"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3591"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3591: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3591: wait failed" >&5

    $as_echo "ovn.at:3591" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3591"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:3591: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:3591"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3591"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3591: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:3591"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3591"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3591: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3591: wait failed" >&5

    $as_echo "ovn.at:3591" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3591"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:3591: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:3591"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3591"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3591: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:3591"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3591"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3591: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3591: wait failed" >&5

    $as_echo "ovn.at:3591" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3591"
fi

    fi

    as hv
    { set +x
$as_echo "$at_srcdir/ovn.at:3591: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:3591"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3591"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3591: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:3591"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3591"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3591: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3591: wait failed" >&5

    $as_echo "ovn.at:3591" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3591"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:3591: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:3591"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3591"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3591: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:3591"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3591"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3591: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3591: wait failed" >&5

    $as_echo "ovn.at:3591" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3591"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:3591: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:3591"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3591"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3591: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:3591"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3591"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3591: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3591: wait failed" >&5

    $as_echo "ovn.at:3591" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3591"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:3591: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:3591"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3591"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3591: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:3591"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3591"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3591: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3591: wait failed" >&5

    $as_echo "ovn.at:3591" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3591"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:3591: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:3591"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3591"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3591: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:3591"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3591"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3591: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3591: wait failed" >&5

    $as_echo "ovn.at:3591" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3591"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:3591: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:3591"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3591"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3591: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:3591"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3591"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3591: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3591: wait failed" >&5

    $as_echo "ovn.at:3591" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3591"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:3591: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:3591"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3591"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3591: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:3591"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3591"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3591: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3591: wait failed" >&5

    $as_echo "ovn.at:3591" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3591"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:3591: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:3591"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3591"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3591: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:3591"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3591"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3591: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3591: wait failed" >&5

    $as_echo "ovn.at:3591" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3591"
fi




  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2442
#AT_START_2443
at_fn_group_banner 2443 'ovn.at:3595' \
  "ovn -- 2 HVs, 3 LRs connected via LS, static routes" "" 125
at_xfail=no
(
  $as_echo "2443. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn.at:3596" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:3596"
ovn_start

# Logical network:
# Three LRs - R1, R2 and R3 that are connected to each other via LS "join"
# in 20.0.0.0/24 network. R1 has switchess foo (192.168.1.0/24)
# connected to it. R2 has alice (172.16.1.0/24) and R3 has bob (10.32.1.0/24)
# connected to it.

ovn-nbctl lr-add R1
ovn-nbctl lr-add R2
ovn-nbctl lr-add R3

ovn-nbctl ls-add foo
ovn-nbctl ls-add alice
ovn-nbctl ls-add bob
ovn-nbctl ls-add join

# Connect foo to R1
ovn-nbctl lrp-add R1 foo 00:00:01:01:02:03 192.168.1.1/24
ovn-nbctl lsp-add foo rp-foo -- set Logical_Switch_Port rp-foo type=router \
    options:router-port=foo addresses=\"00:00:01:01:02:03\"

# Connect alice to R2
ovn-nbctl lrp-add R2 alice 00:00:02:01:02:03 172.16.1.1/24
ovn-nbctl lsp-add alice rp-alice -- set Logical_Switch_Port rp-alice \
    type=router options:router-port=alice addresses=\"00:00:02:01:02:03\"

# Connect bob to R3
ovn-nbctl lrp-add R3 bob 00:00:03:01:02:03 10.32.1.1/24
ovn-nbctl lsp-add bob rp-bob -- set Logical_Switch_Port rp-bob \
    type=router options:router-port=bob addresses=\"00:00:03:01:02:03\"

# Connect R1 to join
ovn-nbctl lrp-add R1 R1_join 00:00:04:01:02:03 20.0.0.1/24
ovn-nbctl lsp-add join r1-join -- set Logical_Switch_Port r1-join \
    type=router options:router-port=R1_join addresses='"00:00:04:01:02:03"'

# Connect R2 to join
ovn-nbctl lrp-add R2 R2_join 00:00:04:01:02:04 20.0.0.2/24
ovn-nbctl lsp-add join r2-join -- set Logical_Switch_Port r2-join \
    type=router options:router-port=R2_join addresses='"00:00:04:01:02:04"'

# Connect R3 to join
ovn-nbctl lrp-add R3 R3_join 00:00:04:01:02:05 20.0.0.3/24
ovn-nbctl lsp-add join r3-join -- set Logical_Switch_Port r3-join \
    type=router options:router-port=R3_join addresses='"00:00:04:01:02:05"'

#install static routes
ovn-nbctl lr-route-add R1 172.16.1.0/24 20.0.0.2
ovn-nbctl lr-route-add R1 10.32.1.0/24 20.0.0.3

ovn-nbctl lr-route-add R2 192.168.1.0/24 20.0.0.1
ovn-nbctl lr-route-add R2 10.32.1.0/24 20.0.0.3

ovn-nbctl lr-route-add R3 192.168.1.0/24 20.0.0.1
ovn-nbctl lr-route-add R3 172.16.1.0/24 20.0.0.2

# Create logical port foo1 in foo
ovn-nbctl lsp-add foo foo1 \
-- lsp-set-addresses foo1 "f0:00:00:01:02:03 192.168.1.2"

# Create logical port alice1 in alice
ovn-nbctl lsp-add alice alice1 \
-- lsp-set-addresses alice1 "f0:00:00:01:02:04 172.16.1.2"

# Create logical port bob1 in bob
ovn-nbctl lsp-add bob bob1 \
-- lsp-set-addresses bob1 "f0:00:00:01:02:05 10.32.1.2"

# Create two hypervisor and create OVS ports corresponding to logical ports.
net_add n1

sim_add hv1
as hv1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.1
ovs-vsctl -- add-port br-int hv1-vif1 -- \
    set interface hv1-vif1 external-ids:iface-id=foo1 \
    options:tx_pcap=hv1/vif1-tx.pcap \
    options:rxq_pcap=hv1/vif1-rx.pcap \
    ofport-request=1

ovs-vsctl -- add-port br-int hv1-vif2 -- \
    set interface hv1-vif2 external-ids:iface-id=alice1 \
    options:tx_pcap=hv1/vif2-tx.pcap \
    options:rxq_pcap=hv1/vif2-rx.pcap \
    ofport-request=2

sim_add hv2
as hv2
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.2
ovs-vsctl -- add-port br-int hv2-vif1 -- \
    set interface hv2-vif1 external-ids:iface-id=bob1 \
    options:tx_pcap=hv2/vif1-tx.pcap \
    options:rxq_pcap=hv2/vif1-rx.pcap \
    ofport-request=1


# Pre-populate the hypervisors' ARP tables so that we don't lose any
# packets for ARP resolution (native tunneling doesn't queue packets
# for ARP resolution).
{ set +x
$as_echo "$at_srcdir/ovn.at:3699: ovn_populate_arp__"
at_fn_check_prepare_trace "ovn.at:3699"
( $at_check_trace; ovn_populate_arp__
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3699"
$at_failed && at_fn_log_failure
$at_traceon; }


# Allow some time for ovn-northd and ovn-controller to catch up.
# XXX This should be more systematic.
sleep 1

ip_to_hex() {
    printf "%02x%02x%02x%02x" "$@"
}

# Send ip packets between foo1 and alice1
src_mac="f00000010203"
dst_mac="000001010203"
src_ip=`ip_to_hex 192 168 1 2`
dst_ip=`ip_to_hex 172 16 1 2`
packet=${dst_mac}${src_mac}08004500001c0000000040110000${src_ip}${dst_ip}0035111100080000
as hv1 ovs-appctl netdev-dummy/receive hv1-vif1 $packet
as hv1 ovs-appctl ofproto/trace br-int in_port=1 $packet

# Send ip packets between foo1 and bob1
src_mac="f00000010203"
dst_mac="000001010203"
src_ip=`ip_to_hex 192 168 1 2`
dst_ip=`ip_to_hex 10 32 1 2`
packet=${dst_mac}${src_mac}08004500001c0000000040110000${src_ip}${dst_ip}0035111100080000
as hv1 ovs-appctl netdev-dummy/receive hv1-vif1 $packet

echo "---------NB dump-----"
ovn-nbctl show
echo "---------------------"
ovn-nbctl list logical_router
echo "---------------------"
ovn-nbctl list logical_router_port
echo "---------------------"

echo "---------SB dump-----"
ovn-sbctl list datapath_binding
echo "---------------------"
ovn-sbctl list port_binding
echo "---------------------"
ovn-sbctl dump-flows
echo "---------------------"

echo "------ hv1 dump ----------"
as hv1 ovs-ofctl show br-int
as hv1 ovs-ofctl dump-flows br-int
echo "------ hv2 dump ----------"
as hv2 ovs-ofctl show br-int
as hv2 ovs-ofctl dump-flows br-int
echo "----------------------------"

# Packet to Expect at bob1
src_mac="000003010203"
dst_mac="f00000010205"
src_ip=`ip_to_hex 192 168 1 2`
dst_ip=`ip_to_hex 10 32 1 2`
echo "${dst_mac}${src_mac}08004500001c000000003e110200${src_ip}${dst_ip}0035111100080000" > expected

ovn_check_packets__ "hv2/vif1-tx.pcap" "expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:3757: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:3757"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3757"
$at_failed && at_fn_log_failure
$at_traceon; }


# Packet to Expect at alice1
src_mac="000002010203"
dst_mac="f00000010204"
src_ip=`ip_to_hex 192 168 1 2`
dst_ip=`ip_to_hex 172 16 1 2`
echo "${dst_mac}${src_mac}08004500001c000000003e110200${src_ip}${dst_ip}0035111100080000" > expected

ovn_check_packets__ "hv1/vif2-tx.pcap" "expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:3766: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:3766"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3766"
$at_failed && at_fn_log_failure
$at_traceon; }





    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:3768: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:3768"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3768"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3768: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:3768"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3768"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3768: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3768: wait failed" >&5

    $as_echo "ovn.at:3768" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3768"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:3768: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:3768"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3768"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3768: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:3768"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3768"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3768: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3768: wait failed" >&5

    $as_echo "ovn.at:3768" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3768"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:3768: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:3768"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3768"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3768: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:3768"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3768"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3768: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3768: wait failed" >&5

    $as_echo "ovn.at:3768" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3768"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:3768: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:3768"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3768"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3768: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:3768"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3768"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3768: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3768: wait failed" >&5

    $as_echo "ovn.at:3768" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3768"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:3768: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:3768"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3768"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3768: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:3768"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3768"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3768: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3768: wait failed" >&5

    $as_echo "ovn.at:3768" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3768"
fi





    as hv2
    if test "hv2" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:3768: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:3768"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3768"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3768: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:3768"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3768"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3768: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3768: wait failed" >&5

    $as_echo "ovn.at:3768" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3768"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:3768: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:3768"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3768"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3768: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:3768"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3768"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3768: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3768: wait failed" >&5

    $as_echo "ovn.at:3768" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3768"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:3768: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:3768"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3768"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3768: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:3768"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3768"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3768: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3768: wait failed" >&5

    $as_echo "ovn.at:3768" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3768"
fi

    fi

    as hv2
    { set +x
$as_echo "$at_srcdir/ovn.at:3768: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:3768"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3768"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3768: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:3768"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3768"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3768: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3768: wait failed" >&5

    $as_echo "ovn.at:3768" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3768"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:3768: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:3768"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3768"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3768: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:3768"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3768"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3768: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3768: wait failed" >&5

    $as_echo "ovn.at:3768" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3768"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:3768: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:3768"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3768"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3768: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:3768"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3768"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3768: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3768: wait failed" >&5

    $as_echo "ovn.at:3768" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3768"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:3768: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:3768"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3768"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3768: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:3768"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3768"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3768: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3768: wait failed" >&5

    $as_echo "ovn.at:3768" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3768"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:3768: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:3768"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3768"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3768: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:3768"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3768"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3768: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3768: wait failed" >&5

    $as_echo "ovn.at:3768" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3768"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:3768: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:3768"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3768"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3768: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:3768"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3768"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3768: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3768: wait failed" >&5

    $as_echo "ovn.at:3768" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3768"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:3768: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:3768"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3768"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3768: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:3768"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3768"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3768: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3768: wait failed" >&5

    $as_echo "ovn.at:3768" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3768"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:3768: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:3768"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3768"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:3768: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:3768"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3768"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:3768: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3768: wait failed" >&5

    $as_echo "ovn.at:3768" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3768"
fi




  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2443
#AT_START_2444
at_fn_group_banner 2444 'ovn.at:3772' \
  "ovn -- dhcpv4 : 1 HV, 2 LS, 2 LSPs/LS" "          " 125
at_xfail=no
(
  $as_echo "2444. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn.at:3773" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:3773"
ovn_start

ovn-nbctl ls-add ls1

ovn-nbctl lsp-add ls1 ls1-lp1 \
-- lsp-set-addresses ls1-lp1 "f0:00:00:00:00:01 10.0.0.4"

ovn-nbctl lsp-set-port-security ls1-lp1 "f0:00:00:00:00:01 10.0.0.4"

ovn-nbctl lsp-add ls1 ls1-lp2 \
-- lsp-set-addresses ls1-lp2 "f0:00:00:00:00:02 10.0.0.6 20.0.0.4"

ovn-nbctl lsp-set-port-security ls1-lp2 "f0:00:00:00:00:02 10.0.0.6 20.0.0.4"

ovn-nbctl ls-add ls2
ovn-nbctl lsp-add ls2 ls2-lp1 \
-- lsp-set-addresses ls2-lp1 "f0:00:00:00:00:03 30.0.0.6 40.0.0.4"
ovn-nbctl lsp-set-port-security ls2-lp1 "f0:00:00:00:00:03 30.0.0.6 40.0.0.4"
ovn-nbctl lsp-add ls2 ls2-lp2 \
-- lsp-set-addresses ls2-lp2 "f0:00:00:00:00:04 30.0.0.7"
ovn-nbctl lsp-set-port-security ls2-lp2 "f0:00:00:00:00:04 30.0.0.7"

d1="$(ovn-nbctl create DHCP_Options cidr=10.0.0.0/24 \
options="\"server_id\"=\"10.0.0.1\" \"server_mac\"=\"ff:10:00:00:00:01\" \
\"lease_time\"=\"3600\" \"router\"=\"10.0.0.1\"")"

ovn-nbctl lsp-set-dhcpv4-options ls1-lp1 ${d1}
ovn-nbctl lsp-set-dhcpv4-options ls1-lp2 ${d1}

d2="$(ovn-nbctl create DHCP_Options cidr=30.0.0.0/24 \
options="\"server_id\"=\"30.0.0.1\" \"server_mac\"=\"ff:10:00:00:00:02\" \
\"lease_time\"=\"3600\"")"

ovn-nbctl lsp-set-dhcpv4-options ls2-lp2 ${d2}

net_add n1
sim_add hv1

as hv1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.1
ovs-vsctl -- add-port br-int hv1-vif1 -- \
    set interface hv1-vif1 external-ids:iface-id=ls1-lp1 \
    options:tx_pcap=hv1/vif1-tx.pcap \
    options:rxq_pcap=hv1/vif1-rx.pcap \
    ofport-request=1

ovs-vsctl -- add-port br-int hv1-vif2 -- \
    set interface hv1-vif2 external-ids:iface-id=ls1-lp2 \
    options:tx_pcap=hv1/vif2-tx.pcap \
    options:rxq_pcap=hv1/vif2-rx.pcap \
    ofport-request=2

ovs-vsctl -- add-port br-int hv1-vif3 -- \
    set interface hv1-vif3 external-ids:iface-id=ls2-lp1 \
    options:tx_pcap=hv1/vif3-tx.pcap \
    options:rxq_pcap=hv1/vif3-rx.pcap \
    ofport-request=3

ovs-vsctl -- add-port br-int hv1-vif4 -- \
    set interface hv1-vif4 external-ids:iface-id=ls2-lp2 \
    options:tx_pcap=hv1/vif4-tx.pcap \
    options:rxq_pcap=hv1/vif4-rx.pcap \
    ofport-request=4

{ set +x
$as_echo "$at_srcdir/ovn.at:3839: ovn_populate_arp__"
at_fn_check_prepare_trace "ovn.at:3839"
( $at_check_trace; ovn_populate_arp__
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3839"
$at_failed && at_fn_log_failure
$at_traceon; }


sleep 2

as hv1 ovs-vsctl show

# This shell function sends a DHCP request packet
# test_dhcp INPORT SRC_MAC DHCP_TYPE OFFER_IP ...
test_dhcp() {
    local inport=$1 src_mac=$2 dhcp_type=$3 offer_ip=$4 use_ip=$5
    shift; shift; shift; shift; shift;
    if test $use_ip != 0; then
        src_ip=$1
        dst_ip=$2
        shift; shift;
    else
        src_ip=`ip_to_hex 0 0 0 0`
        dst_ip=`ip_to_hex 255 255 255 255`
    fi
    local request=ffffffffffff${src_mac}0800451001100000000080110000${src_ip}${dst_ip}
    # udp header and dhcp header
    request=${request}0044004300fc0000
    request=${request}010106006359aa760000000000000000000000000000000000000000${src_mac}
    # client hardware padding
    request=${request}00000000000000000000
    # server hostname
    request=${request}0000000000000000000000000000000000000000000000000000000000000000
    request=${request}0000000000000000000000000000000000000000000000000000000000000000
    # boot file name
    request=${request}0000000000000000000000000000000000000000000000000000000000000000
    request=${request}0000000000000000000000000000000000000000000000000000000000000000
    request=${request}0000000000000000000000000000000000000000000000000000000000000000
    request=${request}0000000000000000000000000000000000000000000000000000000000000000
    # dhcp magic cookie
    request=${request}63825363
    # dhcp message type
    request=${request}3501${dhcp_type}ff

    if test $offer_ip != 0; then
        local srv_mac=$1 srv_ip=$2 expected_dhcp_opts=$3
        # total IP length will be the IP length of the request packet
        # (which is 272 in our case) + 8 (padding bytes) + (expected_dhcp_opts / 2)
        ip_len=`expr 280 + ${#expected_dhcp_opts} / 2`
        udp_len=`expr $ip_len - 20`
        ip_len=$(printf "%x" $ip_len)
        udp_len=$(printf "%x" $udp_len)
        # $ip_len var will be in 3 digits i.e 134. So adding a '0' before $ip_len
        local reply=${src_mac}${srv_mac}080045100${ip_len}000000008011XXXX${srv_ip}${offer_ip}
        # udp header and dhcp header.
        # $udp_len var will be in 3 digits. So adding a '0' before $udp_len
        reply=${reply}004300440${udp_len}0000020106006359aa760000000000000000
        # your ip address
        reply=${reply}${offer_ip}
        # next server ip address, relay agent ip address, client mac address
        reply=${reply}0000000000000000${src_mac}
        # client hardware padding
        reply=${reply}00000000000000000000
        # server hostname
        reply=${reply}0000000000000000000000000000000000000000000000000000000000000000
        reply=${reply}0000000000000000000000000000000000000000000000000000000000000000
        # boot file name
        reply=${reply}0000000000000000000000000000000000000000000000000000000000000000
        reply=${reply}0000000000000000000000000000000000000000000000000000000000000000
        reply=${reply}0000000000000000000000000000000000000000000000000000000000000000
        reply=${reply}0000000000000000000000000000000000000000000000000000000000000000
        # dhcp magic cookie
        reply=${reply}63825363
        # dhcp message type
        local dhcp_reply_type=02
        if test $dhcp_type = 03; then
            dhcp_reply_type=05
        fi
        reply=${reply}3501${dhcp_reply_type}${expected_dhcp_opts}00000000ff00000000
        echo $reply >> $inport.expected
    else
        for outport; do
            echo $request >> $outport.expected
        done
    fi
    as hv1 ovs-appctl netdev-dummy/receive hv1-vif$inport $request
}

reset_pcap_file() {
    local iface=$1
    local pcap_file=$2
    ovs-vsctl -- set Interface $iface options:tx_pcap=dummy-tx.pcap \
options:rxq_pcap=dummy-rx.pcap
    rm -f ${pcap_file}*.pcap
    ovs-vsctl -- set Interface $iface options:tx_pcap=${pcap_file}-tx.pcap \
options:rxq_pcap=${pcap_file}-rx.pcap
}

ip_to_hex() {
    printf "%02x%02x%02x%02x" "$@"
}


as hv1 ovs-ofctl monitor br-int resume --detach --no-chdir \
--pidfile=ovs-ofctl0.pid 2> ofctl_monitor0.log

echo "---------NB dump-----"
ovn-nbctl show
echo "---------------------"
echo "---------SB dump-----"
ovn-sbctl list datapath_binding
echo "---------------------"
ovn-sbctl list logical_flow
echo "---------------------"

echo "---------------------"
ovn-sbctl dump-flows
echo "---------------------"

echo "------ hv1 dump ----------"
as hv1 ovs-ofctl dump-flows br-int

# Send DHCPDISCOVER.
offer_ip=`ip_to_hex 10 0 0 4`
server_ip=`ip_to_hex 10 0 0 1`
expected_dhcp_opts=330400000e100104ffffff0003040a00000136040a000001
test_dhcp 1 f00000000001 01 $offer_ip 0 ff1000000001 $server_ip $expected_dhcp_opts

# NXT_RESUMEs should be 1.
$as_echo "ovn.at:3962: waiting until test 1 = \`cat ofctl_monitor*.log | grep -c NXT_RESUME\`..." >&5
ovs_wait_cond () {
    test 1 = `cat ofctl_monitor*.log | grep -c NXT_RESUME`
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3962: wait failed" >&5

    $as_echo "ovn.at:3962" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3962"
fi


$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/vif1-tx.pcap > 1.packets
cat 1.expected | cut -c -48 > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:3966: cat 1.packets | cut -c -48"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:3966"
( $at_check_trace; cat 1.packets | cut -c -48
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3966"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

# Skipping the IPv4 checksum.
cat 1.expected | cut -c 53- > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:3969: cat 1.packets | cut -c 53-"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:3969"
( $at_check_trace; cat 1.packets | cut -c 53-
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3969"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }


# ovs-ofctl also resumes the packets and this causes other ports to receive
# the DHCP request packet. So reset the pcap files so that its easier to test.
reset_pcap_file hv1-vif1 hv1/vif1
reset_pcap_file hv1-vif2 hv1/vif2
rm -f 1.expected
rm -f 2.expected

# Send DHCPREQUEST.
offer_ip=`ip_to_hex 10 0 0 6`
server_ip=`ip_to_hex 10 0 0 1`
expected_dhcp_opts=330400000e100104ffffff0003040a00000136040a000001
test_dhcp 2 f00000000002 03 $offer_ip 0 ff1000000001 $server_ip $expected_dhcp_opts

# NXT_RESUMEs should be 2.
$as_echo "ovn.at:3985: waiting until test 2 = \`cat ofctl_monitor*.log | grep -c NXT_RESUME\`..." >&5
ovs_wait_cond () {
    test 2 = `cat ofctl_monitor*.log | grep -c NXT_RESUME`
}
if ovs_wait; then :
else
    $as_echo "ovn.at:3985: wait failed" >&5

    $as_echo "ovn.at:3985" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:3985"
fi


$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/vif2-tx.pcap > 2.packets
cat 2.expected | cut -c -48 > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:3989: cat 2.packets | cut -c -48"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:3989"
( $at_check_trace; cat 2.packets | cut -c -48
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3989"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

# Skipping the IPv4 checksum.
cat 2.expected | cut -c 53- > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:3992: cat 2.packets | cut -c 53-"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:3992"
( $at_check_trace; cat 2.packets | cut -c 53-
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:3992"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }


reset_pcap_file hv1-vif1 hv1/vif1
reset_pcap_file hv1-vif2 hv1/vif2
rm -f 1.expected
rm -f 2.expected

# Send Invalid DHCPv4 packet on ls1-lp2. It should be received by ovn-controller
# but should be resumed without the reply.
# ls1-lp1 (vif1-tx.pcap) should receive the DHCPv4 request packet twice,
# one from ovn-controller and the other from "ovs-ofctl resume."
offer_ip=0
test_dhcp 2 f00000000002 08 $offer_ip 0 1 1

# NXT_RESUMEs should be 3.
$as_echo "ovn.at:4007: waiting until test 3 = \`cat ofctl_monitor*.log | grep -c NXT_RESUME\`..." >&5
ovs_wait_cond () {
    test 3 = `cat ofctl_monitor*.log | grep -c NXT_RESUME`
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4007: wait failed" >&5

    $as_echo "ovn.at:4007" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4007"
fi


# vif1-tx.pcap should have received the DHCPv4 (invalid) request packet
ovn_check_packets__ "hv1/vif1-tx.pcap" "1.expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:4010: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:4010"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4010"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }


reset_pcap_file hv1-vif1 hv1/vif1
reset_pcap_file hv1-vif2 hv1/vif2
rm -f 1.expected
rm -f 2.expected

# Send DHCPv4 packet on ls2-lp1. It doesn't have any DHCPv4 options defined.
# ls2-lp2 (vif4-tx.pcap) should receive the DHCPv4 request packet once.

test_dhcp 3 f00000000003 01 0 4 0

# Send DHCPv4 packet on ls2-lp2. "router" DHCPv4 option is not defined for
# this lport.
test_dhcp 4 f00000000004 01 0 3 0

# NXT_RESUMEs should be 3.
$as_echo "ovn.at:4027: waiting until test 3 = \`cat ofctl_monitor*.log | grep -c NXT_RESUME\`..." >&5
ovs_wait_cond () {
    test 3 = `cat ofctl_monitor*.log | grep -c NXT_RESUME`
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4027: wait failed" >&5

    $as_echo "ovn.at:4027" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4027"
fi


ovn_check_packets__ "hv1/vif3-tx.pcap" "3.expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:4029: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:4029"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4029"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

ovn_check_packets__ "hv1/vif4-tx.pcap" "4.expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:4030: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:4030"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4030"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }


# Send DHCPREQUEST with ip4.src set to 10.0.0.6 and ip4.dst set to 10.0.0.1.
offer_ip=`ip_to_hex 10 0 0 6`
server_ip=`ip_to_hex 10 0 0 1`
expected_dhcp_opts=330400000e100104ffffff0003040a00000136040a000001
src_ip=$offer_ip
dst_ip=$server_ip
test_dhcp 2 f00000000002 03 $offer_ip 1 $src_ip $dst_ip ff1000000001 $server_ip $expected_dhcp_opts

# NXT_RESUMEs should be 4.
$as_echo "ovn.at:4041: waiting until test 4 = \`cat ofctl_monitor*.log | grep -c NXT_RESUME\`..." >&5
ovs_wait_cond () {
    test 4 = `cat ofctl_monitor*.log | grep -c NXT_RESUME`
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4041: wait failed" >&5

    $as_echo "ovn.at:4041" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4041"
fi


$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/vif2-tx.pcap > 2.packets
cat 2.expected | cut -c -48 > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:4045: cat 2.packets | cut -c -48"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:4045"
( $at_check_trace; cat 2.packets | cut -c -48
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4045"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

# Skipping the IPv4 checksum.
cat 2.expected | cut -c 53- > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:4048: cat 2.packets | cut -c 53-"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:4048"
( $at_check_trace; cat 2.packets | cut -c 53-
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4048"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }


reset_pcap_file hv1-vif1 hv1/vif1
reset_pcap_file hv1-vif2 hv1/vif2
rm -f 1.expected
rm -f 2.expected

# Send DHCPREQUEST with ip4.src set to 10.0.0.6 and ip4.dst set to 255.255.255.255.
offer_ip=`ip_to_hex 10 0 0 6`
server_ip=`ip_to_hex 10 0 0 1`
expected_dhcp_opts=330400000e100104ffffff0003040a00000136040a000001
src_ip=$offer_ip
dst_ip=`ip_to_hex 255 255 255 255`
test_dhcp 2 f00000000002 03 $offer_ip 1 $src_ip $dst_ip ff1000000001 $server_ip $expected_dhcp_opts

# NXT_RESUMEs should be 5.
$as_echo "ovn.at:4064: waiting until test 5 = \`cat ofctl_monitor*.log | grep -c NXT_RESUME\`..." >&5
ovs_wait_cond () {
    test 5 = `cat ofctl_monitor*.log | grep -c NXT_RESUME`
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4064: wait failed" >&5

    $as_echo "ovn.at:4064" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4064"
fi


$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/vif2-tx.pcap > 2.packets
cat 2.expected | cut -c -48 > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:4068: cat 2.packets | cut -c -48"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:4068"
( $at_check_trace; cat 2.packets | cut -c -48
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4068"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

# Skipping the IPv4 checksum.
cat 2.expected | cut -c 53- > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:4071: cat 2.packets | cut -c 53-"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:4071"
( $at_check_trace; cat 2.packets | cut -c 53-
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4071"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }


reset_pcap_file hv1-vif1 hv1/vif1
reset_pcap_file hv1-vif2 hv1/vif2
rm -f 1.expected
rm -f 2.expected

# Send DHCPREQUEST with ip4.src set to 10.0.0.6 and ip4.dst set to 10.0.0.4.
# The packet should not be received by ovn-controller.
src_ip=`ip_to_hex 10 0 0 6`
dst_ip=`ip_to_hex 10 0 0 4`
test_dhcp 2 f00000000002 03 0 1 $src_ip $dst_ip 1

# NXT_RESUMEs should be 5.
$as_echo "ovn.at:4085: waiting until test 5 = \`cat ofctl_monitor*.log | grep -c NXT_RESUME\`..." >&5
ovs_wait_cond () {
    test 5 = `cat ofctl_monitor*.log | grep -c NXT_RESUME`
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4085: wait failed" >&5

    $as_echo "ovn.at:4085" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4085"
fi


# vif1-tx.pcap should have received the DHCPv4 request packet
ovn_check_packets__ "hv1/vif1-tx.pcap" "1.expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:4088: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:4088"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4088"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }


as hv1
{ set +x
$as_echo "$at_srcdir/ovn.at:4091: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:4091"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4091"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4091: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:4091"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4091"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ovn.at:4091: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4091: wait failed" >&5

    $as_echo "ovn.at:4091" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4091"
fi

{ set +x
$as_echo "$at_srcdir/ovn.at:4092: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:4092"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4092"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4092: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:4092"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4092"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ovn.at:4092: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4092: wait failed" >&5

    $as_echo "ovn.at:4092" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4092"
fi

{ set +x
$as_echo "$at_srcdir/ovn.at:4093: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:4093"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4093"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4093: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:4093"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4093"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ovn.at:4093: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4093: wait failed" >&5

    $as_echo "ovn.at:4093" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4093"
fi


as ovn-sb
{ set +x
$as_echo "$at_srcdir/ovn.at:4096: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:4096"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4096"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4096: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:4096"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4096"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ovn.at:4096: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4096: wait failed" >&5

    $as_echo "ovn.at:4096" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4096"
fi


as ovn-nb
{ set +x
$as_echo "$at_srcdir/ovn.at:4099: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:4099"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4099"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4099: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:4099"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4099"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ovn.at:4099: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4099: wait failed" >&5

    $as_echo "ovn.at:4099" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4099"
fi


as northd
{ set +x
$as_echo "$at_srcdir/ovn.at:4102: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:4102"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4102"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4102: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:4102"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4102"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ovn.at:4102: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4102: wait failed" >&5

    $as_echo "ovn.at:4102" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4102"
fi


as main
{ set +x
$as_echo "$at_srcdir/ovn.at:4105: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:4105"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4105"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4105: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:4105"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4105"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ovn.at:4105: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4105: wait failed" >&5

    $as_echo "ovn.at:4105" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4105"
fi

{ set +x
$as_echo "$at_srcdir/ovn.at:4106: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:4106"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4106"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4106: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:4106"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4106"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ovn.at:4106: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4106: wait failed" >&5

    $as_echo "ovn.at:4106" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4106"
fi


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2444
#AT_START_2445
at_fn_group_banner 2445 'ovn.at:4110' \
  "ovn -- dhcpv6 : 1 HV, 2 LS, 5 LSPs" "             " 125
at_xfail=no
(
  $as_echo "2445. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn.at:4111" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:4111"
ovn_start

ovn-nbctl ls-add ls1
ovn-nbctl lsp-add ls1 ls1-lp1 \
-- lsp-set-addresses ls1-lp1 "f0:00:00:00:00:01 10.0.0.4 ae70::4"

ovn-nbctl lsp-set-port-security ls1-lp1 "f0:00:00:00:00:01 10.0.0.4 ae70::4"

ovn-nbctl lsp-add ls1 ls1-lp2 \
-- lsp-set-addresses ls1-lp2 "f0:00:00:00:00:02 ae70::5"

ovn-nbctl lsp-set-port-security ls1-lp2 "f0:00:00:00:00:02 ae70::5"

ovn-nbctl lsp-add ls1 ls1-lp3 \
-- lsp-set-addresses ls1-lp3 "f0:00:00:00:00:22 ae70::22"

ovn-nbctl lsp-set-port-security ls1-lp3 "f0:00:00:00:00:22 ae70::22"

d1="$(ovn-nbctl create DHCP_Options cidr="ae70\:\:/64" \
options="\"server_id\"=\"00:00:00:10:00:01\"")"

ovn-nbctl lsp-set-dhcpv6-options ls1-lp1 ${d1}
ovn-nbctl lsp-set-dhcpv6-options ls1-lp2 ${d1}

d2="$(ovn-nbctl create DHCP_Options cidr="ae70\:\:/64" \
options="\"dhcpv6_stateless\"=\"true\" \"server_id\"=\"00:00:00:10:00:01\"")"

ovn-nbctl lsp-set-dhcpv6-options ls1-lp3 ${d2}

ovn-nbctl ls-add ls2
ovn-nbctl lsp-add ls2 ls2-lp1 \
-- lsp-set-addresses ls2-lp1 "f0:00:00:00:00:03 be70::3"
ovn-nbctl lsp-set-port-security ls2-lp1 "f0:00:00:00:00:03 be70::3"
ovn-nbctl lsp-add ls2 ls2-lp2 \
-- lsp-set-addresses ls2-lp2 "f0:00:00:00:00:04 be70::4"
ovn-nbctl lsp-set-port-security ls2-lp2 "f0:00:00:00:00:04 be70::4"

net_add n1
sim_add hv1

as hv1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.1
ovs-vsctl -- add-port br-int hv1-vif1 -- \
    set interface hv1-vif1 external-ids:iface-id=ls1-lp1 \
    options:tx_pcap=hv1/vif1-tx.pcap \
    options:rxq_pcap=hv1/vif1-rx.pcap \
    ofport-request=1

ovs-vsctl -- add-port br-int hv1-vif2 -- \
    set interface hv1-vif2 external-ids:iface-id=ls1-lp2 \
    options:tx_pcap=hv1/vif2-tx.pcap \
    options:rxq_pcap=hv1/vif2-rx.pcap \
    ofport-request=2

ovs-vsctl -- add-port br-int hv1-vif3 -- \
    set interface hv1-vif3 external-ids:iface-id=ls2-lp1 \
    options:tx_pcap=hv1/vif3-tx.pcap \
    options:rxq_pcap=hv1/vif3-rx.pcap \
    ofport-request=3

ovs-vsctl -- add-port br-int hv1-vif4 -- \
    set interface hv1-vif4 external-ids:iface-id=ls2-lp2 \
    options:tx_pcap=hv1/vif4-tx.pcap \
    options:rxq_pcap=hv1/vif4-rx.pcap \
    ofport-request=4

ovs-vsctl -- add-port br-int hv1-vif5 -- \
    set interface hv1-vif5 external-ids:iface-id=ls1-lp3 \
    options:tx_pcap=hv1/vif5-tx.pcap \
    options:rxq_pcap=hv1/vif5-rx.pcap \
    ofport-request=5

{ set +x
$as_echo "$at_srcdir/ovn.at:4185: ovn_populate_arp__"
at_fn_check_prepare_trace "ovn.at:4185"
( $at_check_trace; ovn_populate_arp__
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4185"
$at_failed && at_fn_log_failure
$at_traceon; }


sleep 2

trim_zeros() {
    sed 's/\(00\)\{1,\}$//'
}

# This shell function sends a DHCPv6 request packet
# test_dhcpv6 INPORT SRC_MAC SRC_LLA DHCPv6_MSG_TYPE OFFER_IP OUTPORT...
# The OUTPORTs (zero or more) list the VIFs on which the original DHCPv6
# packet should be received twice (one from ovn-controller and the other
# from the "ovs-ofctl monitor br-int resume"
test_dhcpv6() {
    local inport=$1 src_mac=$2 src_lla=$3 msg_code=$4 offer_ip=$5
    local request=ffffffffffff${src_mac}86dd00000000002a1101${src_lla}
    # dst ip ff02::1:2
    request=${request}ff020000000000000000000000010002
    # udp header and dhcpv6 header
    request=${request}02220223002affff${msg_code}010203
    # Client identifier
    request=${request}0001000a00030001${src_mac}
    # IA-NA (Identity Association for Non Temporary Address)
    request=${request}0003000c0102030400000e1000001518
    shift; shift; shift; shift; shift;
    if test $offer_ip != 0; then
        local server_mac=000000100001
        local server_lla=fe80000000000000020000fffe100001
        local reply_code=07
        if test $msg_code = 01; then
            reply_code=02
        fi
        local msg_len=54
        if test $offer_ip = 1; then
            msg_len=28
        fi
        local reply=${src_mac}${server_mac}86dd0000000000${msg_len}1101${server_lla}${src_lla}
        # udp header and dhcpv6 header
        reply=${reply}0223022200${msg_len}ffff${reply_code}010203
        # Client identifier
        reply=${reply}0001000a00030001${src_mac}
        # IA-NA
        if test $offer_ip != 1; then
            reply=${reply}0003002801020304ffffffffffffffff00050018${offer_ip}ffffffffffffffff
        fi
        # Server identifier
        reply=${reply}0002000a00030001${server_mac}
        echo $reply | trim_zeros >> $inport.expected
    else
        for outport; do
            echo $request | trim_zeros >> $outport.expected
        done
    fi

    as hv1 ovs-appctl netdev-dummy/receive hv1-vif$inport $request
}

reset_pcap_file() {
    local iface=$1
    local pcap_file=$2
    ovs-vsctl -- set Interface $iface options:tx_pcap=dummy-tx.pcap \
options:rxq_pcap=dummy-rx.pcap
    rm -f ${pcap_file}*.pcap
    ovs-vsctl -- set Interface $iface options:tx_pcap=${pcap_file}-tx.pcap \
options:rxq_pcap=${pcap_file}-rx.pcap
}


as hv1 ovs-ofctl monitor br-int resume --detach --no-chdir \
--pidfile=ovs-ofctl0.pid 2> ofctl_monitor0.log

echo "---------NB dump-----"
ovn-nbctl show
echo "---------------------"
echo "---------SB dump-----"
ovn-sbctl list datapath_binding
echo "---------------------"
ovn-sbctl list logical_flow
echo "---------------------"

echo "---------------------"
ovn-sbctl dump-flows
echo "---------------------"

echo "------ hv1 dump ----------"
as hv1 ovs-ofctl dump-flows br-int

src_mac=f00000000001
src_lla=fe80000000000000f20000fffe000001
offer_ip=ae700000000000000000000000000004
test_dhcpv6 1 $src_mac $src_lla 01 $offer_ip

# NXT_RESUMEs should be 1.
$as_echo "ovn.at:4278: waiting until test 1 = \`cat ofctl_monitor*.log | grep -c NXT_RESUME\`..." >&5
ovs_wait_cond () {
    test 1 = `cat ofctl_monitor*.log | grep -c NXT_RESUME`
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4278: wait failed" >&5

    $as_echo "ovn.at:4278" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4278"
fi


$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/vif1-tx.pcap | trim_zeros > 1.packets
# cat 1.expected | trim_zeros > expout
cat 1.expected | cut -c -120 > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:4283: cat 1.packets | cut -c -120"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:4283"
( $at_check_trace; cat 1.packets | cut -c -120
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4283"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

# Skipping the UDP checksum
cat 1.expected | cut -c 125- > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:4286: cat 1.packets | cut -c 125-"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:4286"
( $at_check_trace; cat 1.packets | cut -c 125-
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4286"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }


rm  1.expected

# Send invalid packet on ls1-lp2. ovn-controller should resume the packet
# without any modifications and the packet should be received by ls1-lp1.
# ls1-lp1 will receive the packet twice, one from the ovn-controller after the
# resume and the other from ovs-ofctl monitor resume.

reset_pcap_file hv1-vif1 hv1/vif1
reset_pcap_file hv1-vif2 hv1/vif2

src_mac=f00000000002
src_lla=fe80000000000000f20000fffe000002
offer_ip=ae700000000000000000000000000005
# Set invalid msg_type

test_dhcpv6 2 $src_mac $src_lla 10 0 1 1

# NXT_RESUMEs should be 2.
$as_echo "ovn.at:4306: waiting until test 2 = \`cat ofctl_monitor*.log | grep -c NXT_RESUME\`..." >&5
ovs_wait_cond () {
    test 2 = `cat ofctl_monitor*.log | grep -c NXT_RESUME`
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4306: wait failed" >&5

    $as_echo "ovn.at:4306" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4306"
fi


# vif2-tx.pcap should not have received the DHCPv6 reply packet
rm 2.packets
$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/vif2-tx.pcap | trim_zeros > 2.packets
{ set +x
$as_echo "$at_srcdir/ovn.at:4311: cat 2.packets"
at_fn_check_prepare_trace "ovn.at:4311"
( $at_check_trace; cat 2.packets
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4311"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }


# vif1-tx.pcap should have received the DHCPv6 (invalid) request packet
$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/vif1-tx.pcap | trim_zeros > 1.packets
cat 1.expected > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:4316: cat 1.packets"
at_fn_check_prepare_trace "ovn.at:4316"
( $at_check_trace; cat 1.packets
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4316"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }


# Send DHCPv6 packet on ls2-lp1. native DHCPv6 is disabled on this port.
# There should be no DHCPv6 reply from ovn-controller and the request packet
# should be received by ls2-lp2.

src_mac=f00000000003
src_lla=fe80000000000000f20000fffe000003
test_dhcpv6 3 $src_mac $src_lla 01 0 4

# NXT_RESUMEs should be 2 only.
$as_echo "ovn.at:4327: waiting until test 2 = \`cat ofctl_monitor*.log | grep -c NXT_RESUME\`..." >&5
ovs_wait_cond () {
    test 2 = `cat ofctl_monitor*.log | grep -c NXT_RESUME`
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4327: wait failed" >&5

    $as_echo "ovn.at:4327" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4327"
fi


# vif3-tx.pcap should not have received the DHCPv6 reply packet
$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/vif3-tx.pcap | trim_zeros > 3.packets
{ set +x
$as_echo "$at_srcdir/ovn.at:4331: cat 3.packets"
at_fn_check_prepare_trace "ovn.at:4331"
( $at_check_trace; cat 3.packets
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4331"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }


# vif4-tx.pcap should have received the DHCPv6 request packet
$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/vif4-tx.pcap | trim_zeros > 4.packets
cat 4.expected > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:4336: cat 4.packets"
at_fn_check_prepare_trace "ovn.at:4336"
( $at_check_trace; cat 4.packets
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4336"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }


# Send DHCPv6 packet on ls1-lp3. native DHCPv6 works as stateless mode for this port.
# The DHCPv6 reply should doesn't contian offer_ip.
src_mac=f00000000022
src_lla=fe80000000000000f20000fffe000022
reset_pcap_file hv1-vif5 hv1/vif5
test_dhcpv6 5 $src_mac $src_lla 01 1 5

# NXT_RESUMEs should be 3.
$as_echo "ovn.at:4346: waiting until test 3 = \`cat ofctl_monitor*.log | grep -c NXT_RESUME\`..." >&5
ovs_wait_cond () {
    test 3 = `cat ofctl_monitor*.log | grep -c NXT_RESUME`
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4346: wait failed" >&5

    $as_echo "ovn.at:4346" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4346"
fi


$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/vif5-tx.pcap | trim_zeros > 5.packets
# Skipping the UDP checksum
cat 5.expected | cut -c 1-120,125- > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:4351: cat 5.packets | cut -c 1-120,125- "
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:4351"
( $at_check_trace; cat 5.packets | cut -c 1-120,125-
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4351"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }


as hv1
{ set +x
$as_echo "$at_srcdir/ovn.at:4354: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:4354"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4354"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4354: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:4354"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4354"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ovn.at:4354: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4354: wait failed" >&5

    $as_echo "ovn.at:4354" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4354"
fi

{ set +x
$as_echo "$at_srcdir/ovn.at:4355: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:4355"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4355"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4355: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:4355"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4355"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ovn.at:4355: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4355: wait failed" >&5

    $as_echo "ovn.at:4355" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4355"
fi

{ set +x
$as_echo "$at_srcdir/ovn.at:4356: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:4356"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4356"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4356: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:4356"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4356"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ovn.at:4356: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4356: wait failed" >&5

    $as_echo "ovn.at:4356" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4356"
fi


as ovn-sb
{ set +x
$as_echo "$at_srcdir/ovn.at:4359: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:4359"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4359"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4359: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:4359"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4359"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ovn.at:4359: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4359: wait failed" >&5

    $as_echo "ovn.at:4359" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4359"
fi


as ovn-nb
{ set +x
$as_echo "$at_srcdir/ovn.at:4362: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:4362"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4362"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4362: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:4362"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4362"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ovn.at:4362: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4362: wait failed" >&5

    $as_echo "ovn.at:4362" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4362"
fi


as northd
{ set +x
$as_echo "$at_srcdir/ovn.at:4365: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:4365"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4365"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4365: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:4365"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4365"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ovn.at:4365: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4365: wait failed" >&5

    $as_echo "ovn.at:4365" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4365"
fi


as main
{ set +x
$as_echo "$at_srcdir/ovn.at:4368: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:4368"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4368"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4368: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:4368"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4368"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ovn.at:4368: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4368: wait failed" >&5

    $as_echo "ovn.at:4368" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4368"
fi

{ set +x
$as_echo "$at_srcdir/ovn.at:4369: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:4369"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4369"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4369: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:4369"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4369"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ovn.at:4369: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4369: wait failed" >&5

    $as_echo "ovn.at:4369" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4369"
fi


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2445
#AT_START_2446
at_fn_group_banner 2446 'ovn.at:4373' \
  "ovn -- 2 HVs, 2 LRs connected via LS, gateway router" "" 125
at_xfail=no
(
  $as_echo "2446. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn.at:4374" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:4374"
ovn_start

# Logical network:
# Two LRs - R1 and R2 that are connected to each other via LS "join"
# in 20.0.0.0/24 network. R1 has switchess foo (192.168.1.0/24)
# connected to it. R2 has alice (172.16.1.0/24) connected to it.
# R2 is a gateway router.



# Create two hypervisor and create OVS ports corresponding to logical ports.
net_add n1

sim_add hv1
as hv1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.1
ovs-vsctl -- add-port br-int hv1-vif1 -- \
    set interface hv1-vif1 external-ids:iface-id=foo1 \
    options:tx_pcap=hv1/vif1-tx.pcap \
    options:rxq_pcap=hv1/vif1-rx.pcap \
    ofport-request=1


sim_add hv2
as hv2
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.2
ovs-vsctl -- add-port br-int hv2-vif1 -- \
    set interface hv2-vif1 external-ids:iface-id=alice1 \
    options:tx_pcap=hv2/vif1-tx.pcap \
    options:rxq_pcap=hv2/vif1-rx.pcap \
    ofport-request=1

# Pre-populate the hypervisors' ARP tables so that we don't lose any
# packets for ARP resolution (native tunneling doesn't queue packets
# for ARP resolution).
{ set +x
$as_echo "$at_srcdir/ovn.at:4412: ovn_populate_arp__"
at_fn_check_prepare_trace "ovn.at:4412"
( $at_check_trace; ovn_populate_arp__
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4412"
$at_failed && at_fn_log_failure
$at_traceon; }


ovn-nbctl create Logical_Router name=R1
ovn-nbctl create Logical_Router name=R2 options:chassis="hv2"

ovn-nbctl ls-add foo
ovn-nbctl ls-add alice
ovn-nbctl ls-add join

# Connect foo to R1
ovn-nbctl lrp-add R1 foo 00:00:01:01:02:03 192.168.1.1/24
ovn-nbctl lsp-add foo rp-foo -- set Logical_Switch_Port rp-foo \
    type=router options:router-port=foo addresses=\"00:00:01:01:02:03\"

# Connect alice to R2
ovn-nbctl lrp-add R2 alice 00:00:02:01:02:03 172.16.1.1/24
ovn-nbctl lsp-add alice rp-alice -- set Logical_Switch_Port rp-alice \
    type=router options:router-port=alice addresses=\"00:00:02:01:02:03\"

# Connect R1 to join
ovn-nbctl lrp-add R1 R1_join 00:00:04:01:02:03 20.0.0.1/24
ovn-nbctl lsp-add join r1-join -- set Logical_Switch_Port r1-join \
    type=router options:router-port=R1_join addresses='"00:00:04:01:02:03"'

# Connect R2 to join
ovn-nbctl lrp-add R2 R2_join 00:00:04:01:02:04 20.0.0.2/24
ovn-nbctl lsp-add join r2-join -- set Logical_Switch_Port r2-join \
    type=router options:router-port=R2_join addresses='"00:00:04:01:02:04"'


#install static routes
ovn-nbctl -- --id=@lrt create Logical_Router_Static_Route \
ip_prefix=172.16.1.0/24 nexthop=20.0.0.2 -- add Logical_Router \
R1 static_routes @lrt

ovn-nbctl -- --id=@lrt create Logical_Router_Static_Route \
ip_prefix=192.168.1.0/24 nexthop=20.0.0.1 -- add Logical_Router \
R2 static_routes @lrt

# Create logical port foo1 in foo
ovn-nbctl lsp-add foo foo1 \
-- lsp-set-addresses foo1 "f0:00:00:01:02:03 192.168.1.2"

# Create logical port alice1 in alice
ovn-nbctl lsp-add alice alice1 \
-- lsp-set-addresses alice1 "f0:00:00:01:02:04 172.16.1.2"


# Allow some time for ovn-northd and ovn-controller to catch up.
# XXX This should be more systematic.
sleep 2

ip_to_hex() {
    printf "%02x%02x%02x%02x" "$@"
}

# Send ip packets between foo1 and alice1
src_mac="f00000010203"
dst_mac="000001010203"
src_ip=`ip_to_hex 192 168 1 2`
dst_ip=`ip_to_hex 172 16 1 2`
packet=${dst_mac}${src_mac}08004500001c0000000040110000${src_ip}${dst_ip}0035111100080000

echo "---------NB dump-----"
ovn-nbctl show
echo "---------------------"
ovn-nbctl list logical_router
echo "---------------------"
ovn-nbctl list logical_router_port
echo "---------------------"

echo "---------SB dump-----"
ovn-sbctl list datapath_binding
echo "---------------------"
ovn-sbctl list port_binding
echo "---------------------"
ovn-sbctl dump-flows
echo "---------------------"
ovn-sbctl list chassis
ovn-sbctl list encap
echo "---------------------"

# Packet to Expect at alice1
src_mac="000002010203"
dst_mac="f00000010204"
src_ip=`ip_to_hex 192 168 1 2`
dst_ip=`ip_to_hex 172 16 1 2`
expected=${dst_mac}${src_mac}08004500001c000000003e110200${src_ip}${dst_ip}0035111100080000


as hv1 ovs-appctl netdev-dummy/receive hv1-vif1 $packet
as hv1 ovs-appctl ofproto/trace br-int in_port=1 $packet

echo "------ hv1 dump after packet 1 ----------"
as hv1 ovs-ofctl show br-int
as hv1 ovs-ofctl dump-flows br-int
echo "------ hv2 dump after packet 1 ----------"
as hv2 ovs-ofctl show br-int
as hv2 ovs-ofctl dump-flows br-int
echo "----------------------------"

echo $expected > expected
ovn_check_packets__ "hv2/vif1-tx.pcap" "expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:4514: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:4514"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4514"
$at_failed && at_fn_log_failure
$at_traceon; }


# Delete the router and re-create it. Things should work as before.
ovn-nbctl  lr-del R2
ovn-nbctl create Logical_Router name=R2 options:chassis="hv2"
# Connect alice to R2
ovn-nbctl lrp-add R2 alice 00:00:02:01:02:03 172.16.1.1/24
# Connect R2 to join
ovn-nbctl lrp-add R2 R2_join 00:00:04:01:02:04 20.0.0.2/24

ovn-nbctl -- --id=@lrt create Logical_Router_Static_Route \
ip_prefix=192.168.1.0/24 nexthop=20.0.0.1 -- add Logical_Router \
R2 static_routes @lrt

# Wait for ovn-controller to catch up.
sleep 1

# Send the packet again.
as hv1 ovs-appctl netdev-dummy/receive hv1-vif1 $packet

echo "------ hv1 dump after packet 2 ----------"
as hv1 ovs-ofctl show br-int
as hv1 ovs-ofctl dump-flows br-int
echo "------ hv2 dump after packet 2 ----------"
as hv2 ovs-ofctl show br-int
as hv2 ovs-ofctl dump-flows br-int
echo "----------------------------"

echo $expected >> expected
ovn_check_packets__ "hv2/vif1-tx.pcap" "expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:4543: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:4543"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4543"
$at_failed && at_fn_log_failure
$at_traceon; }





    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:4545: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:4545"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4545"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4545: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:4545"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4545"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4545: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4545: wait failed" >&5

    $as_echo "ovn.at:4545" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4545"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:4545: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:4545"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4545"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4545: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:4545"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4545"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4545: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4545: wait failed" >&5

    $as_echo "ovn.at:4545" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4545"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:4545: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:4545"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4545"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4545: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:4545"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4545"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4545: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4545: wait failed" >&5

    $as_echo "ovn.at:4545" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4545"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:4545: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:4545"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4545"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4545: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:4545"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4545"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4545: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4545: wait failed" >&5

    $as_echo "ovn.at:4545" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4545"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:4545: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:4545"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4545"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4545: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:4545"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4545"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4545: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4545: wait failed" >&5

    $as_echo "ovn.at:4545" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4545"
fi





    as hv2
    if test "hv2" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:4545: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:4545"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4545"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4545: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:4545"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4545"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4545: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4545: wait failed" >&5

    $as_echo "ovn.at:4545" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4545"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:4545: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:4545"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4545"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4545: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:4545"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4545"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4545: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4545: wait failed" >&5

    $as_echo "ovn.at:4545" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4545"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:4545: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:4545"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4545"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4545: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:4545"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4545"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4545: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4545: wait failed" >&5

    $as_echo "ovn.at:4545" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4545"
fi

    fi

    as hv2
    { set +x
$as_echo "$at_srcdir/ovn.at:4545: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:4545"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4545"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4545: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:4545"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4545"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4545: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4545: wait failed" >&5

    $as_echo "ovn.at:4545" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4545"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:4545: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:4545"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4545"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4545: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:4545"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4545"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4545: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4545: wait failed" >&5

    $as_echo "ovn.at:4545" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4545"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:4545: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:4545"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4545"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4545: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:4545"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4545"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4545: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4545: wait failed" >&5

    $as_echo "ovn.at:4545" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4545"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:4545: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:4545"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4545"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4545: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:4545"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4545"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4545: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4545: wait failed" >&5

    $as_echo "ovn.at:4545" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4545"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:4545: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:4545"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4545"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4545: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:4545"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4545"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4545: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4545: wait failed" >&5

    $as_echo "ovn.at:4545" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4545"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:4545: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:4545"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4545"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4545: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:4545"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4545"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4545: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4545: wait failed" >&5

    $as_echo "ovn.at:4545" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4545"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:4545: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:4545"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4545"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4545: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:4545"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4545"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4545: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4545: wait failed" >&5

    $as_echo "ovn.at:4545" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4545"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:4545: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:4545"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4545"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4545: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:4545"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4545"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4545: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4545: wait failed" >&5

    $as_echo "ovn.at:4545" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4545"
fi




  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2446
#AT_START_2447
at_fn_group_banner 2447 'ovn.at:4549' \
  "ovn -- icmp_reply: 1 HVs, 2 LSs, 1 lport/LS, 1 LR" "" 125
at_xfail=no
(
  $as_echo "2447. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


$as_echo "ovn.at:4551" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:4551"
ovn_start

# Logical network:
# One LR - R1 has switch ls1 (191.168.1.0/24) connected to it,
# and has switch ls2 (172.16.1.0/24) connected to it.

ovn-nbctl lr-add R1

ovn-nbctl ls-add ls1
ovn-nbctl ls-add ls2

# Connect ls1 to R1
ovn-nbctl lrp-add R1 ls1 00:00:00:01:02:f1 192.168.1.1/24
ovn-nbctl lsp-add ls1 rp-ls1 -- set Logical_Switch_Port rp-ls1 \
    type=router options:router-port=ls1 addresses=\"00:00:00:01:02:f1\"

# Connect ls2 to R1
ovn-nbctl lrp-add R1 ls2 00:00:00:01:02:f2 172.16.1.1/24
ovn-nbctl lsp-add ls2 rp-ls2 -- set Logical_Switch_Port rp-ls2 \
    type=router options:router-port=ls2 addresses=\"00:00:00:01:02:f2\"

# Create logical port ls1-lp1 in ls1
ovn-nbctl lsp-add ls1 ls1-lp1 \
-- lsp-set-addresses ls1-lp1 "00:00:00:01:02:03 192.168.1.2"

# Create logical port ls2-lp1 in ls2
ovn-nbctl lsp-add ls2 ls2-lp1 \
-- lsp-set-addresses ls2-lp1 "00:00:00:01:02:04 172.16.1.2"

# Create one hypervisor and create OVS ports corresponding to logical ports.
net_add n1

sim_add hv1
as hv1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.1
ovs-vsctl -- add-port br-int vif1 -- \
    set interface vif1 external-ids:iface-id=ls1-lp1 \
    options:tx_pcap=hv1/vif1-tx.pcap \
    options:rxq_pcap=hv1/vif1-rx.pcap \
    ofport-request=1

ovs-vsctl -- add-port br-int vif2 -- \
    set interface vif2 external-ids:iface-id=ls2-lp1 \
    options:tx_pcap=hv1/vif2-tx.pcap \
    options:rxq_pcap=hv1/vif2-rx.pcap \
    ofport-request=1


# Allow some time for ovn-northd and ovn-controller to catch up.
# XXX This should be more systematic.
sleep 1


ip_to_hex() {
    printf "%02x%02x%02x%02x" "$@"
}
for i in 1 2; do
    : > vif$i.expected
done
# test_ipv4_icmp_request INPORT ETH_SRC ETH_DST IPV4_SRC IPV4_DST IP_CHKSUM ICMP_CHKSUM [EXP_IP_CHKSUM EXP_ICMP_CHKSUM]
#
# Causes a packet to be received on INPORT.  The packet is an ICMPv4
# request with ETH_SRC, ETH_DST, IPV4_SRC, IPV4_DST, IP_CHSUM and
# ICMP_CHKSUM as specified.  If EXP_IP_CHKSUM and EXP_ICMP_CHKSUM are
# provided, then it should be the ip and icmp checksums of the packet
# responded; otherwise, no reply is expected.
# In the absence of an ip checksum calculation helpers, this relies
# on the caller to provide the checksums for the ip and icmp headers.
# XXX This should be more systematic.
#
# INPORT is an lport number, e.g. 11 for vif11.
# ETH_SRC and ETH_DST are each 12 hex digits.
# IPV4_SRC and IPV4_DST are each 8 hex digits.
# IP_CHSUM and ICMP_CHKSUM are each 4 hex digits.
# EXP_IP_CHSUM and EXP_ICMP_CHKSUM are each 4 hex digits.
test_ipv4_icmp_request() {
    local inport=$1 eth_src=$2 eth_dst=$3 ipv4_src=$4 ipv4_dst=$5 ip_chksum=$6 icmp_chksum=$7
    local exp_ip_chksum=$8 exp_icmp_chksum=$9
    shift; shift; shift; shift; shift; shift; shift
    shift; shift

    # Use ttl to exercise section 4.2.2.9 of RFC1812
    local ip_ttl=01
    local icmp_id=5fbf
    local icmp_seq=0001
    local icmp_data=$(seq 1 56 | xargs printf "%02x")
    local icmp_type_code_request=0800
    local icmp_payload=${icmp_type_code_request}${icmp_chksum}${icmp_id}${icmp_seq}${icmp_data}
    local packet=${eth_dst}${eth_src}08004500005400004000${ip_ttl}01${ip_chksum}${ipv4_src}${ipv4_dst}${icmp_payload}

    as hv1 ovs-appctl netdev-dummy/receive vif$inport $packet
    if test X$exp_icmp_chksum != X; then
        # Expect to receive the reply, if any. In same port where packet was sent.
        # Note: src and dst fields are expected to be reversed.
        local icmp_type_code_response=0000
        local reply_icmp_ttl=fe
        local reply_icmp_payload=${icmp_type_code_response}${exp_icmp_chksum}${icmp_id}${icmp_seq}${icmp_data}
        local reply=${eth_src}${eth_dst}08004500005400004000${reply_icmp_ttl}01${exp_ip_chksum}${ipv4_dst}${ipv4_src}${reply_icmp_payload}
        echo $reply >> vif$inport.expected
    fi
}

# Send ping packet to router's ip addresses, from each of the 2 logical ports.
rtr_l1_ip=$(ip_to_hex 192 168 1 1)
rtr_l2_ip=$(ip_to_hex 172 16 1 1)
l1_ip=$(ip_to_hex 192 168 1 2)
l2_ip=$(ip_to_hex 172 16 1 2)

# Ping router ip address that is on same subnet as the logical port
test_ipv4_icmp_request 1 000000010203 0000000102f1 $l1_ip $rtr_l1_ip 0000 8510 02ff 8d10
test_ipv4_icmp_request 2 000000010204 0000000102f2 $l2_ip $rtr_l2_ip 0000 8510 02ff 8d10

# Ping router ip address that is on the other side of the logical ports
test_ipv4_icmp_request 1 000000010203 0000000102f1 $l1_ip $rtr_l2_ip 0000 8510 02ff 8d10
test_ipv4_icmp_request 2 000000010204 0000000102f2 $l2_ip $rtr_l1_ip 0000 8510 02ff 8d10

echo "---------NB dump-----"
ovn-nbctl show
echo "---------------------"
ovn-nbctl list logical_router
echo "---------------------"
ovn-nbctl list logical_router_port
echo "---------------------"

echo "---------SB dump-----"
ovn-sbctl list datapath_binding
echo "---------------------"
ovn-sbctl list logical_flow
echo "---------------------"

echo "------ hv1 dump ----------"
as hv1 ovs-ofctl dump-flows br-int

# Now check the packets actually received against the ones expected.
for inport in 1 2; do
    ovn_check_packets__ "hv1/vif${inport}-tx.pcap" "vif$inport.expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:4688: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:4688"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4688"
$at_failed && at_fn_log_failure
$at_traceon; }

done




    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:4691: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:4691"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4691"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4691: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:4691"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4691"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4691: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4691: wait failed" >&5

    $as_echo "ovn.at:4691" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4691"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:4691: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:4691"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4691"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4691: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:4691"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4691"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4691: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4691: wait failed" >&5

    $as_echo "ovn.at:4691" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4691"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:4691: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:4691"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4691"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4691: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:4691"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4691"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4691: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4691: wait failed" >&5

    $as_echo "ovn.at:4691" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4691"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:4691: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:4691"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4691"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4691: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:4691"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4691"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4691: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4691: wait failed" >&5

    $as_echo "ovn.at:4691" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4691"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:4691: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:4691"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4691"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4691: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:4691"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4691"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4691: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4691: wait failed" >&5

    $as_echo "ovn.at:4691" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4691"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:4691: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:4691"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4691"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4691: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:4691"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4691"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4691: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4691: wait failed" >&5

    $as_echo "ovn.at:4691" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4691"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:4691: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:4691"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4691"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4691: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:4691"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4691"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4691: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4691: wait failed" >&5

    $as_echo "ovn.at:4691" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4691"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:4691: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:4691"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4691"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4691: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:4691"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4691"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4691: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4691: wait failed" >&5

    $as_echo "ovn.at:4691" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4691"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:4691: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:4691"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4691"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4691: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:4691"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4691"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4691: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4691: wait failed" >&5

    $as_echo "ovn.at:4691" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4691"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:4691: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:4691"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4691"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4691: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:4691"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4691"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4691: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4691: wait failed" >&5

    $as_echo "ovn.at:4691" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4691"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:4691: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:4691"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4691"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4691: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:4691"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4691"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4691: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4691: wait failed" >&5

    $as_echo "ovn.at:4691" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4691"
fi




  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2447
#AT_START_2448
at_fn_group_banner 2448 'ovn.at:4698' \
  "ovn -- port state up and down" "                  " 125
at_xfail=no
(
  $as_echo "2448. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

ovn_start

ovn-nbctl ls-add ls1
ovn-nbctl lsp-add ls1 lp1
ovn-nbctl lsp-set-addresses lp1 unknown

net_add n1
sim_add hv1
as hv1 ovs-vsctl add-br br-phys
as hv1 ovn_attach n1 br-phys 192.168.0.1

as hv1 ovs-vsctl add-port br-int vif1 -- set Interface vif1 external-ids:iface-id=lp1
$as_echo "ovn.at:4711: waiting until test x\`ovn-nbctl lsp-get-up lp1\` = xup..." >&5
ovs_wait_cond () {
    test x`ovn-nbctl lsp-get-up lp1` = xup
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4711: wait failed" >&5

    $as_echo "ovn.at:4711" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4711"
fi


as hv1 ovs-vsctl del-port br-int vif1
$as_echo "ovn.at:4714: waiting until test x\`ovn-nbctl lsp-get-up lp1\` = xdown..." >&5
ovs_wait_cond () {
    test x`ovn-nbctl lsp-get-up lp1` = xdown
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4714: wait failed" >&5

    $as_echo "ovn.at:4714" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4714"
fi





    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:4716: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:4716"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4716"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4716: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:4716"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4716"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4716: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4716: wait failed" >&5

    $as_echo "ovn.at:4716" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4716"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:4716: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:4716"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4716"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4716: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:4716"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4716"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4716: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4716: wait failed" >&5

    $as_echo "ovn.at:4716" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4716"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:4716: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:4716"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4716"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4716: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:4716"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4716"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4716: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4716: wait failed" >&5

    $as_echo "ovn.at:4716" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4716"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:4716: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:4716"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4716"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4716: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:4716"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4716"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4716: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4716: wait failed" >&5

    $as_echo "ovn.at:4716" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4716"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:4716: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:4716"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4716"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4716: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:4716"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4716"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4716: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4716: wait failed" >&5

    $as_echo "ovn.at:4716" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4716"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:4716: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:4716"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4716"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4716: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:4716"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4716"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4716: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4716: wait failed" >&5

    $as_echo "ovn.at:4716" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4716"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:4716: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:4716"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4716"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4716: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:4716"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4716"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4716: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4716: wait failed" >&5

    $as_echo "ovn.at:4716" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4716"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:4716: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:4716"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4716"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4716: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:4716"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4716"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4716: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4716: wait failed" >&5

    $as_echo "ovn.at:4716" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4716"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:4716: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:4716"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4716"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4716: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:4716"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4716"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4716: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4716: wait failed" >&5

    $as_echo "ovn.at:4716" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4716"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:4716: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:4716"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4716"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4716: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:4716"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4716"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4716: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4716: wait failed" >&5

    $as_echo "ovn.at:4716" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4716"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:4716: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:4716"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4716"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4716: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:4716"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4716"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4716: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4716: wait failed" >&5

    $as_echo "ovn.at:4716" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4716"
fi




  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2448
#AT_START_2449
at_fn_group_banner 2449 'ovn.at:4723' \
  "ovn -- datapath rules added/removed" "            " 125
at_xfail=no
(
  $as_echo "2449. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ovn_start

net_add n1
sim_add hv1
as hv1 ovs-vsctl add-br br-phys
as hv1 ovn_attach n1 br-phys 192.168.0.1

# This shell function checks if OF rules in br-int have clauses
# related to OVN datapaths. The caller determines if it should find
# a match in the output, or not.
#
# EXPECT_DATAPATH param determines whether flows that refer to
#                 datapath to should be present or not. 0 means
#                 they should not be.
# STAGE_INFO param is a simple string to help identify the stage
#            in the test when this function was invoked.
test_datapath_in_of_rules() {
    local expect_datapath=$1 stage_info=$2
    echo "------ ovn-nbctl show ${stage_info} ------"
    ovn-nbctl show
    echo "------ ovn-sbctl show ${stage_info} ------"
    ovn-sbctl show
    echo "------ OF rules ${stage_info} ------"
    { set +x
$as_echo "$at_srcdir/ovn.at:4748: ovs-ofctl dump-flows br-int"
at_fn_check_prepare_trace "ovn.at:4748"
( $at_check_trace; ovs-ofctl dump-flows br-int
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4748"
$at_failed && at_fn_log_failure
$at_traceon; }

    # if there is a datapath mentioned in the output, check for the
    # magic keyword that represents one, based on the exit status of
    # a quiet grep
    if test $expect_datapath != 0; then
       { set +x
$as_echo "$at_srcdir/ovn.at:4753: grep -q -i 'metadata=' stdout"
at_fn_check_prepare_trace "ovn.at:4753"
( $at_check_trace; grep -q -i 'metadata=' stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:

at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4753"
$at_failed && at_fn_log_failure
$at_traceon; }

    else
       { set +x
$as_echo "$at_srcdir/ovn.at:4755: grep -q -i 'metadata=' stdout"
at_fn_check_prepare_trace "ovn.at:4755"
( $at_check_trace; grep -q -i 'metadata=' stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:

at_fn_check_status 1 $at_status "$at_srcdir/ovn.at:4755"
$at_failed && at_fn_log_failure
$at_traceon; }

    fi
}

test_datapath_in_of_rules 0 "before ls+port create"

ovn-nbctl ls-add ls1
ovn-nbctl lsp-add ls1 lp1
ovn-nbctl lsp-set-addresses lp1 unknown

as hv1 ovs-vsctl add-port br-int vif1 -- set Interface vif1 external-ids:iface-id=lp1
$as_echo "ovn.at:4766: waiting until test x\`ovn-nbctl lsp-get-up lp1\` = xup..." >&5
ovs_wait_cond () {
    test x`ovn-nbctl lsp-get-up lp1` = xup
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4766: wait failed" >&5

    $as_echo "ovn.at:4766" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4766"
fi


test_datapath_in_of_rules 1 "after port is bound"

as hv1 ovs-vsctl del-port br-int vif1
$as_echo "ovn.at:4771: waiting until test x\`ovn-nbctl lsp-get-up lp1\` = xdown..." >&5
ovs_wait_cond () {
    test x`ovn-nbctl lsp-get-up lp1` = xdown
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4771: wait failed" >&5

    $as_echo "ovn.at:4771" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4771"
fi


ovn-nbctl lsp-set-addresses lp1
ovn-nbctl lsp-del lp1
ovn-nbctl ls-del ls1

# wait for earlier changes to take effect
{ set +x
$as_echo "$at_srcdir/ovn.at:4778: ovn-nbctl --timeout=3 --wait=sb sync"
at_fn_check_prepare_trace "ovn.at:4778"
( $at_check_trace; ovn-nbctl --timeout=3 --wait=sb sync
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4778"
$at_failed && at_fn_log_failure
$at_traceon; }


# ensure OF rules are no longer present. There used to be a bug here.
test_datapath_in_of_rules 0 "after lport+ls removal"




    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:4783: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:4783"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4783"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4783: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:4783"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4783"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4783: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4783: wait failed" >&5

    $as_echo "ovn.at:4783" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4783"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:4783: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:4783"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4783"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4783: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:4783"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4783"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4783: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4783: wait failed" >&5

    $as_echo "ovn.at:4783" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4783"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:4783: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:4783"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4783"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4783: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:4783"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4783"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4783: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4783: wait failed" >&5

    $as_echo "ovn.at:4783" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4783"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:4783: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:4783"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4783"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4783: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:4783"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4783"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4783: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4783: wait failed" >&5

    $as_echo "ovn.at:4783" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4783"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:4783: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:4783"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4783"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4783: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:4783"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4783"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4783: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4783: wait failed" >&5

    $as_echo "ovn.at:4783" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4783"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:4783: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:4783"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4783"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4783: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:4783"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4783"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4783: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4783: wait failed" >&5

    $as_echo "ovn.at:4783" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4783"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:4783: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:4783"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4783"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4783: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:4783"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4783"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4783: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4783: wait failed" >&5

    $as_echo "ovn.at:4783" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4783"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:4783: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:4783"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4783"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4783: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:4783"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4783"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4783: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4783: wait failed" >&5

    $as_echo "ovn.at:4783" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4783"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:4783: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:4783"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4783"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4783: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:4783"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4783"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4783: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4783: wait failed" >&5

    $as_echo "ovn.at:4783" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4783"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:4783: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:4783"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4783"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4783: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:4783"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4783"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4783: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4783: wait failed" >&5

    $as_echo "ovn.at:4783" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4783"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:4783: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:4783"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4783"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4783: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:4783"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4783"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4783: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4783: wait failed" >&5

    $as_echo "ovn.at:4783" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4783"
fi




  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2449
#AT_START_2450
at_fn_group_banner 2450 'ovn.at:4787' \
  "ovn -- nd_na " "                                  " 125
at_xfail=no
(
  $as_echo "2450. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn.at:4788" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:4788"
ovn_start

#TODO: since patch port for IPv6 logical router port is not ready not,
#  so we are not going to test vifs on different lswitches cases. Try
#  to update for that once relevant stuff implemented.

# In this test cases we create 1 lswitch, it has 2 VIF ports attached
# with. NS packet we test, from one VIF for another VIF, will be replied
# by local ovn-controller, but not by target VIF.

# Create hypervisors and logical switch lsw0.
ovn-nbctl ls-add lsw0
net_add n1
sim_add hv1
as hv1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.2

# Add vif1 to hv1 and lsw0, turn on l2 port security on vif1.
ovs-vsctl add-port br-int vif1 -- set Interface vif1 external-ids:iface-id=lp1 options:tx_pcap=hv1/vif1-tx.pcap options:rxq_pcap=hv1/vif1-rx.pcap ofport-request=1
ovn-nbctl lsp-add lsw0 lp1
ovn-nbctl lsp-set-addresses lp1 "fa:16:3e:94:05:98 192.168.0.3 fd81:ce49:a948:0:f816:3eff:fe94:598"
ovn-nbctl lsp-set-port-security lp1 "fa:16:3e:94:05:98 192.168.0.3 fd81:ce49:a948:0:f816:3eff:fe94:598"

# Add vif2 to hv1 and lsw0, turn on l2 port security on vif2.
ovs-vsctl add-port br-int vif2 -- set Interface vif2 external-ids:iface-id=lp2 options:tx_pcap=hv1/vif2-tx.pcap options:rxq_pcap=hv1/vif2-rx.pcap ofport-request=2
ovn-nbctl lsp-add lsw0 lp2
ovn-nbctl lsp-set-addresses lp2 "fa:16:3e:a1:f9:ae 192.168.0.4 fd81:ce49:a948:0:f816:3eff:fea1:f9ae"
ovn-nbctl lsp-set-port-security lp2 "fa:16:3e:a1:f9:ae 192.168.0.4 fd81:ce49:a948:0:f816:3eff:fea1:f9ae"

# Add ACL rule for ICMPv6 on lsw0
ovn-nbctl acl-add lsw0 from-lport 1002 'ip6 && icmp6'  allow-related
ovn-nbctl acl-add lsw0 to-lport 1002 'outport == "lp1" && ip6 && icmp6'  allow-related
ovn-nbctl acl-add lsw0 to-lport 1002 'outport == "lp2" && ip6 && icmp6'  allow-related

# Allow some time for ovn-northd and ovn-controller to catch up.
# XXX This should be more systematic.
sleep 1

# Given the name of a logical port, prints the name of the hypervisor
# on which it is located.
vif_to_hv() {
    echo hv1${1%?}
}
for i in 1 2; do
    : > $i.expected
done

# Complete Neighbor Solicitation packet and Neighbor Advertisement packet
# vif1 -> NS -> vif2.  vif1 <- NA <- ovn-controller.
# vif2 will not receive NS packet, since ovn-controller will reply for it.
ns_packet=3333ffa1f9aefa163e94059886dd6000000000203afffd81ce49a9480000f8163efffe940598fd81ce49a9480000f8163efffea1f9ae8700e01160000000fd81ce49a9480000f8163efffea1f9ae0101fa163e940598
na_packet=fa163e940598fa163ea1f9ae86dd6000000000203afffd81ce49a9480000f8163efffea1f9aefd81ce49a9480000f8163efffe9405988800e9ed60000000fd81ce49a9480000f8163efffea1f9ae0201fa163ea1f9ae

as hv1 ovs-appctl netdev-dummy/receive vif1 $ns_packet
echo $na_packet >> 1.expected

echo "------ hv1 dump ------"
as hv1 ovs-vsctl show
as hv1 ovs-ofctl -O OpenFlow13 show br-int
as hv1 ovs-ofctl -O OpenFlow13 dump-flows br-int

for i in 1 2; do
    ovn_check_packets__ "hv1/vif$i-tx.pcap" "$i.expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:4852: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:4852"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4852"
$at_failed && at_fn_log_failure
$at_traceon; }

done




    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:4855: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:4855"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4855"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4855: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:4855"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4855"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4855: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4855: wait failed" >&5

    $as_echo "ovn.at:4855" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4855"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:4855: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:4855"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4855"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4855: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:4855"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4855"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4855: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4855: wait failed" >&5

    $as_echo "ovn.at:4855" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4855"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:4855: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:4855"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4855"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4855: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:4855"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4855"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4855: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4855: wait failed" >&5

    $as_echo "ovn.at:4855" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4855"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:4855: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:4855"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4855"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4855: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:4855"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4855"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4855: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4855: wait failed" >&5

    $as_echo "ovn.at:4855" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4855"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:4855: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:4855"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4855"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4855: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:4855"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4855"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4855: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4855: wait failed" >&5

    $as_echo "ovn.at:4855" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4855"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:4855: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:4855"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4855"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4855: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:4855"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4855"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4855: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4855: wait failed" >&5

    $as_echo "ovn.at:4855" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4855"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:4855: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:4855"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4855"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4855: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:4855"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4855"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4855: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4855: wait failed" >&5

    $as_echo "ovn.at:4855" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4855"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:4855: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:4855"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4855"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4855: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:4855"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4855"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4855: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4855: wait failed" >&5

    $as_echo "ovn.at:4855" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4855"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:4855: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:4855"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4855"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4855: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:4855"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4855"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4855: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4855: wait failed" >&5

    $as_echo "ovn.at:4855" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4855"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:4855: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:4855"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4855"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4855: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:4855"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4855"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4855: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4855: wait failed" >&5

    $as_echo "ovn.at:4855" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4855"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:4855: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:4855"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4855"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4855: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:4855"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4855"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4855: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4855: wait failed" >&5

    $as_echo "ovn.at:4855" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4855"
fi




  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2450
#AT_START_2451
at_fn_group_banner 2451 'ovn.at:4859' \
  "ovn -- address sets modification/removal smoke test" "" 125
at_xfail=no
(
  $as_echo "2451. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

ovn_start

net_add n1

sim_add hv1
as hv1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.1

row=`ovn-nbctl create Address_Set name=set1 addresses=\"1.1.1.1\"`
ovn-nbctl set Address_Set $row name=set1 addresses=\"1.1.1.1,1.1.1.2\"
ovn-nbctl destroy Address_Set $row

sleep 1

# A bug previously existed in the address set support code
# that caused ovn-controller to crash after an address set
# was updated and then removed.  This test case ensures
# that ovn-controller is at least still running after
# creating, updating, and deleting an address set.
{ set +x
$as_echo "$at_srcdir/ovn.at:4880: ovs-appctl -t ovn-controller version"
at_fn_check_prepare_trace "ovn.at:4880"
( $at_check_trace; ovs-appctl -t ovn-controller version
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4880"
$at_failed && at_fn_log_failure
$at_traceon; }





    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:4882: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:4882"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4882"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4882: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:4882"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4882"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4882: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4882: wait failed" >&5

    $as_echo "ovn.at:4882" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4882"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:4882: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:4882"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4882"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4882: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:4882"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4882"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4882: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4882: wait failed" >&5

    $as_echo "ovn.at:4882" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4882"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:4882: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:4882"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4882"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4882: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:4882"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4882"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4882: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4882: wait failed" >&5

    $as_echo "ovn.at:4882" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4882"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:4882: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:4882"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4882"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4882: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:4882"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4882"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4882: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4882: wait failed" >&5

    $as_echo "ovn.at:4882" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4882"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:4882: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:4882"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4882"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4882: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:4882"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4882"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4882: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4882: wait failed" >&5

    $as_echo "ovn.at:4882" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4882"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:4882: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:4882"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4882"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4882: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:4882"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4882"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4882: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4882: wait failed" >&5

    $as_echo "ovn.at:4882" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4882"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:4882: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:4882"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4882"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4882: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:4882"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4882"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4882: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4882: wait failed" >&5

    $as_echo "ovn.at:4882" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4882"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:4882: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:4882"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4882"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4882: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:4882"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4882"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4882: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4882: wait failed" >&5

    $as_echo "ovn.at:4882" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4882"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:4882: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:4882"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4882"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4882: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:4882"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4882"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4882: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4882: wait failed" >&5

    $as_echo "ovn.at:4882" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4882"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:4882: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:4882"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4882"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4882: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:4882"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4882"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4882: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4882: wait failed" >&5

    $as_echo "ovn.at:4882" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4882"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:4882: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:4882"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4882"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:4882: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:4882"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4882"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:4882: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:4882: wait failed" >&5

    $as_echo "ovn.at:4882" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:4882"
fi




  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2451
#AT_START_2452
at_fn_group_banner 2452 'ovn.at:4886' \
  "ovn -- ipam" "                                    " 125
at_xfail=no
(
  $as_echo "2452. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn.at:4887" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:4887"
ovn_start

# Add a port to a switch that does not have a subnet set, then set the
# subnet which should result in an address being allocated for the port.
ovn-nbctl ls-add sw0
ovn-nbctl lsp-add sw0 p0 -- lsp-set-addresses p0 dynamic
ovn-nbctl --wait=sb add Logical-Switch sw0 other_config subnet=192.168.1.0/24
{ set +x
$as_echo "$at_srcdir/ovn.at:4895: ovn-nbctl get Logical-Switch-Port p0 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:4895"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p0 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"0a:00:00:00:00:01 192.168.1.2\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4895"
$at_failed && at_fn_log_failure
$at_traceon; }


# Add 9 more ports to sw0, addresses should all be unique.
for n in `seq 1 9`; do
    ovn-nbctl --wait=sb lsp-add sw0 "p$n" -- lsp-set-addresses "p$n" dynamic
done
{ set +x
$as_echo "$at_srcdir/ovn.at:4903: ovn-nbctl get Logical-Switch-Port p1 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:4903"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p1 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"0a:00:00:00:00:02 192.168.1.3\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4903"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:4906: ovn-nbctl get Logical-Switch-Port p2 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:4906"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p2 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"0a:00:00:00:00:03 192.168.1.4\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4906"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:4909: ovn-nbctl get Logical-Switch-Port p3 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:4909"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p3 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"0a:00:00:00:00:04 192.168.1.5\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4909"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:4912: ovn-nbctl get Logical-Switch-Port p4 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:4912"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p4 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"0a:00:00:00:00:05 192.168.1.6\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4912"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:4915: ovn-nbctl get Logical-Switch-Port p5 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:4915"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p5 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"0a:00:00:00:00:06 192.168.1.7\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4915"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:4918: ovn-nbctl get Logical-Switch-Port p6 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:4918"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p6 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"0a:00:00:00:00:07 192.168.1.8\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4918"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:4921: ovn-nbctl get Logical-Switch-Port p7 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:4921"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p7 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"0a:00:00:00:00:08 192.168.1.9\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4921"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:4924: ovn-nbctl get Logical-Switch-Port p8 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:4924"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p8 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"0a:00:00:00:00:09 192.168.1.10\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4924"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:4927: ovn-nbctl get Logical-Switch-Port p9 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:4927"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p9 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"0a:00:00:00:00:0a 192.168.1.11\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4927"
$at_failed && at_fn_log_failure
$at_traceon; }


# Trying similar tests with a second switch. MAC addresses should be unique
# across both switches but IP's only need to be unique within the same switch.
ovn-nbctl ls-add sw1
ovn-nbctl lsp-add sw1 p10 -- lsp-set-addresses p10 dynamic
ovn-nbctl --wait=sb add Logical-Switch sw1 other_config subnet=192.168.1.0/24
{ set +x
$as_echo "$at_srcdir/ovn.at:4936: ovn-nbctl get Logical-Switch-Port p10 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:4936"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p10 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"0a:00:00:00:00:0b 192.168.1.2\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4936"
$at_failed && at_fn_log_failure
$at_traceon; }


for n in `seq 11 19`; do
    ovn-nbctl --wait=sb lsp-add sw1 "p$n" -- lsp-set-addresses "p$n" dynamic
done
{ set +x
$as_echo "$at_srcdir/ovn.at:4943: ovn-nbctl get Logical-Switch-Port p11 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:4943"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p11 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"0a:00:00:00:00:0c 192.168.1.3\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4943"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:4946: ovn-nbctl get Logical-Switch-Port p12 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:4946"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p12 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"0a:00:00:00:00:0d 192.168.1.4\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4946"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:4949: ovn-nbctl get Logical-Switch-Port p13 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:4949"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p13 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"0a:00:00:00:00:0e 192.168.1.5\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4949"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:4952: ovn-nbctl get Logical-Switch-Port p14 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:4952"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p14 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"0a:00:00:00:00:0f 192.168.1.6\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4952"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:4955: ovn-nbctl get Logical-Switch-Port p15 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:4955"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p15 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"0a:00:00:00:00:10 192.168.1.7\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4955"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:4958: ovn-nbctl get Logical-Switch-Port p16 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:4958"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p16 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"0a:00:00:00:00:11 192.168.1.8\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4958"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:4961: ovn-nbctl get Logical-Switch-Port p17 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:4961"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p17 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"0a:00:00:00:00:12 192.168.1.9\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4961"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:4964: ovn-nbctl get Logical-Switch-Port p18 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:4964"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p18 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"0a:00:00:00:00:13 192.168.1.10\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4964"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:4967: ovn-nbctl get Logical-Switch-Port p19 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:4967"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p19 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"0a:00:00:00:00:14 192.168.1.11\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4967"
$at_failed && at_fn_log_failure
$at_traceon; }


# Change a port's address to test for multiple ip's for a single address entry
# and addresses set by the user.
ovn-nbctl lsp-set-addresses p0 "0a:00:00:00:00:15 192.168.1.12 192.168.1.14"
ovn-nbctl --wait=sb lsp-add sw0 p20 -- lsp-set-addresses p20 dynamic
{ set +x
$as_echo "$at_srcdir/ovn.at:4975: ovn-nbctl get Logical-Switch-Port p20 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:4975"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p20 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"0a:00:00:00:00:16 192.168.1.13\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4975"
$at_failed && at_fn_log_failure
$at_traceon; }


# Test for logical router port address management.
ovn-nbctl create Logical_Router name=R1
ovn-nbctl -- --id=@lrp create Logical_Router_port name=sw0 \
network="192.168.1.1/24" mac=\"0a:00:00:00:00:17\" \
-- add Logical_Router R1 ports @lrp -- lsp-add sw0 rp-sw0 \
-- set Logical_Switch_Port rp-sw0 type=router options:router-port=sw0
ovn-nbctl --wait=sb lsp-add sw0 p21 -- lsp-set-addresses p21 dynamic
{ set +x
$as_echo "$at_srcdir/ovn.at:4986: ovn-nbctl get Logical-Switch-Port p21 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:4986"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p21 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"0a:00:00:00:00:18 192.168.1.15\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4986"
$at_failed && at_fn_log_failure
$at_traceon; }


# Test for address reuse after logical port is deleted.
ovn-nbctl lsp-del p0
ovn-nbctl --wait=sb lsp-add sw0 p23 -- lsp-set-addresses p23 dynamic
{ set +x
$as_echo "$at_srcdir/ovn.at:4993: ovn-nbctl get Logical-Switch-Port p23 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:4993"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p23 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"0a:00:00:00:00:19 192.168.1.2\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:4993"
$at_failed && at_fn_log_failure
$at_traceon; }


# Test for multiple addresses to one logical port.
ovn-nbctl lsp-add sw0 p25 -- lsp-set-addresses p25 \
"0a:00:00:00:00:1a 192.168.1.12" "0a:00:00:00:00:1b 192.168.1.14"
ovn-nbctl --wait=sb lsp-add sw0 p26 -- lsp-set-addresses p26 dynamic
{ set +x
$as_echo "$at_srcdir/ovn.at:5001: ovn-nbctl get Logical-Switch-Port p26 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:5001"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p26 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"0a:00:00:00:00:1c 192.168.1.16\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5001"
$at_failed && at_fn_log_failure
$at_traceon; }


# Test for exhausting subnet address space.
ovn-nbctl ls-add sw2 -- add Logical-Switch sw2 other_config subnet=172.16.1.0/30
ovn-nbctl --wait=sb lsp-add sw2 p27 -- lsp-set-addresses p27 dynamic
{ set +x
$as_echo "$at_srcdir/ovn.at:5008: ovn-nbctl get Logical-Switch-Port p27 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:5008"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p27 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"0a:00:00:00:00:1d 172.16.1.2\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5008"
$at_failed && at_fn_log_failure
$at_traceon; }


ovn-nbctl --wait=sb lsp-add sw2 p28 -- lsp-set-addresses p28 dynamic
{ set +x
$as_echo "$at_srcdir/ovn.at:5013: ovn-nbctl get Logical-Switch-Port p28 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:5013"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p28 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"0a:00:00:00:00:1e\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5013"
$at_failed && at_fn_log_failure
$at_traceon; }


# Test that address management does not add duplicate MAC for lsp/lrp peers.
ovn-nbctl create Logical_Router name=R2
ovn-nbctl ls-add sw3
ovn-nbctl lsp-add sw3 p29 -- lsp-set-addresses p29 \
"0a:00:00:00:00:1f"
ovn-nbctl -- --id=@lrp create Logical_Router_port name=sw3 \
network="192.168.2.1/24" mac=\"0a:00:00:00:00:1f\" \
-- add Logical_Router R2 ports @lrp -- lsp-add sw3 rp-sw3 \
-- set Logical_Switch_Port rp-sw3 type=router options:router-port=sw3
ovn-nbctl --wait=sb lsp-add sw0 p30 -- lsp-set-addresses p30 dynamic
{ set +x
$as_echo "$at_srcdir/ovn.at:5027: ovn-nbctl get Logical-Switch-Port p30 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:5027"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p30 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"0a:00:00:00:00:20 192.168.1.17\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5027"
$at_failed && at_fn_log_failure
$at_traceon; }


# Test static MAC address with dynamically allocated IP
ovn-nbctl --wait=sb lsp-add sw0 p31 -- lsp-set-addresses p31 \
"fe:dc:ba:98:76:54 dynamic"
{ set +x
$as_echo "$at_srcdir/ovn.at:5034: ovn-nbctl get Logical-Switch-Port p31 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:5034"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p31 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"fe:dc:ba:98:76:54 192.168.1.18\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5034"
$at_failed && at_fn_log_failure
$at_traceon; }


# Update the static MAC address with dynamically allocated IP and check
# if the MAC address is updated in 'Logical_Switch_Port.dynamic_adddresses'
ovn-nbctl --wait=sb lsp-set-addresses p31 "fe:dc:ba:98:76:55 dynamic"
ovn-nbctl get Logical-Switch-Port p31 dynamic_addresses

{ set +x
$as_echo "$at_srcdir/ovn.at:5043: ovn-nbctl get Logical-Switch-Port p31 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:5043"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p31 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"fe:dc:ba:98:76:55 192.168.1.18\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5043"
$at_failed && at_fn_log_failure
$at_traceon; }


ovn-nbctl --wait=sb lsp-set-addresses p31 "dynamic"
{ set +x
$as_echo "$at_srcdir/ovn.at:5048: ovn-nbctl get Logical-Switch-Port p31 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:5048"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p31 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"fe:dc:ba:98:76:55 192.168.1.18\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5048"
$at_failed && at_fn_log_failure
$at_traceon; }


ovn-nbctl --wait=sb lsp-set-addresses p31 "fe:dc:ba:98:76:56 dynamic"
{ set +x
$as_echo "$at_srcdir/ovn.at:5053: ovn-nbctl get Logical-Switch-Port p31 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:5053"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p31 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"fe:dc:ba:98:76:56 192.168.1.18\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5053"
$at_failed && at_fn_log_failure
$at_traceon; }



# Test the exclude_ips from the IPAM list
ovn-nbctl --wait=sb set logical_switch sw0 \
other_config:exclude_ips="192.168.1.19 192.168.1.21 192.168.1.23..192.168.1.50"

ovn-nbctl --wait=sb lsp-add sw0 p32 -- lsp-set-addresses p32 \
"dynamic"
# 192.168.1.20 should be assigned as 192.168.1.19 is excluded.
{ set +x
$as_echo "$at_srcdir/ovn.at:5065: ovn-nbctl get Logical-Switch-Port p32 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:5065"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p32 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"0a:00:00:00:00:21 192.168.1.20\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5065"
$at_failed && at_fn_log_failure
$at_traceon; }


ovn-nbctl --wait=sb lsp-add sw0 p33 -- lsp-set-addresses p33 \
"dynamic"
# 192.168.1.22 should be assigned as 192.168.1.21 is excluded.
{ set +x
$as_echo "$at_srcdir/ovn.at:5072: ovn-nbctl get Logical-Switch-Port p33 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:5072"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p33 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"0a:00:00:00:00:22 192.168.1.22\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5072"
$at_failed && at_fn_log_failure
$at_traceon; }


ovn-nbctl --wait=sb lsp-add sw0 p34 -- lsp-set-addresses p34 \
"dynamic"
# 192.168.1.51 should be assigned as 192.168.1.23-192.168.1.50 is excluded.
{ set +x
$as_echo "$at_srcdir/ovn.at:5079: ovn-nbctl get Logical-Switch-Port p34 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:5079"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p34 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"0a:00:00:00:00:23 192.168.1.51\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5079"
$at_failed && at_fn_log_failure
$at_traceon; }


# Now clear the exclude_ips list. 192.168.1.19 should be assigned.
ovn-nbctl --wait=sb set Logical-switch sw0 other_config:exclude_ips="invalid"
ovn-nbctl --wait=sb lsp-add sw0 p35 -- lsp-set-addresses p35 \
"dynamic"
{ set +x
$as_echo "$at_srcdir/ovn.at:5087: ovn-nbctl get Logical-Switch-Port p35 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:5087"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p35 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"0a:00:00:00:00:24 192.168.1.19\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5087"
$at_failed && at_fn_log_failure
$at_traceon; }


# Set invalid data in exclude_ips list. It should be ignored.
ovn-nbctl --wait=sb set Logical-switch sw0 other_config:exclude_ips="182.168.1.30"
ovn-nbctl --wait=sb lsp-add sw0 p36 -- lsp-set-addresses p36 \
"dynamic"
# 192.168.1.21 should be assigned as that's the next free one.
{ set +x
$as_echo "$at_srcdir/ovn.at:5096: ovn-nbctl get Logical-Switch-Port p36 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:5096"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p36 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"0a:00:00:00:00:25 192.168.1.21\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5096"
$at_failed && at_fn_log_failure
$at_traceon; }


# Clear the dynamic addresses assignment request.
ovn-nbctl --wait=sb clear logical_switch_port p36 addresses
{ set +x
$as_echo "$at_srcdir/ovn.at:5102: ovn-nbctl get Logical-Switch-Port p36 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:5102"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p36 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5102"
$at_failed && at_fn_log_failure
$at_traceon; }


# Set IPv6 prefix
ovn-nbctl --wait=sb set Logical-switch sw0 other_config:ipv6_prefix="aef0::"
ovn-nbctl --wait=sb lsp-add sw0 p37 -- lsp-set-addresses p37 \
"dynamic"

# With prefix aef0 and mac 0a:00:00:00:00:26, the dynamic IPv6 should be
# - aef0::800:ff:fe00:26 (EUI64)
{ set +x
$as_echo "$at_srcdir/ovn.at:5113: ovn-nbctl get Logical-Switch-Port p37 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:5113"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p37 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"0a:00:00:00:00:26 192.168.1.21 aef0::800:ff:fe00:26\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5113"
$at_failed && at_fn_log_failure
$at_traceon; }


ovn-nbctl --wait=sb ls-add sw4
ovn-nbctl --wait=sb set Logical-switch sw4 other_config:ipv6_prefix="bef0::"
ovn-nbctl --wait=sb lsp-add sw4 p38 -- lsp-set-addresses p38 \
"dynamic"

{ set +x
$as_echo "$at_srcdir/ovn.at:5122: ovn-nbctl get Logical-Switch-Port p38 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:5122"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p38 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"0a:00:00:00:00:27 bef0::800:ff:fe00:27\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5122"
$at_failed && at_fn_log_failure
$at_traceon; }


ovn-nbctl --wait=sb lsp-add sw4 p39 -- lsp-set-addresses p39 \
"f0:00:00:00:10:12 dynamic"

{ set +x
$as_echo "$at_srcdir/ovn.at:5129: ovn-nbctl get Logical-Switch-Port p39 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:5129"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p39 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"f0:00:00:00:10:12 bef0::f200:ff:fe00:1012\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5129"
$at_failed && at_fn_log_failure
$at_traceon; }


# Clear the other_config for sw4. No dynamic ip should be assigned.
ovn-nbctl --wait=sb clear Logical-switch sw4 other_config
ovn-nbctl --wait=sb lsp-add sw4 p40 -- lsp-set-addresses p40 \
"dynamic"

{ set +x
$as_echo "$at_srcdir/ovn.at:5138: ovn-nbctl get Logical-Switch-Port p40 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:5138"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p40 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5138"
$at_failed && at_fn_log_failure
$at_traceon; }


# Test the case where IPv4 addresses are exhausted and IPv6 prefix is set
ovn-nbctl --wait=sb set Logical-switch sw4 other_config:subnet=192.168.2.0/30 \
-- set Logical-switch sw4 other_config:ipv6_prefix="bef0::"

# Now p40 should be assigned with dynamic addresses.
{ set +x
$as_echo "$at_srcdir/ovn.at:5147: ovn-nbctl get Logical-Switch-Port p40 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:5147"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p40 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"0a:00:00:00:00:28 192.168.2.2 bef0::800:ff:fe00:28\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5147"
$at_failed && at_fn_log_failure
$at_traceon; }


ovn-nbctl --wait=sb lsp-add sw4 p41 -- lsp-set-addresses p41 \
"dynamic"
# p41 should not have IPv4 address (as the pool is exhausted).
{ set +x
$as_echo "$at_srcdir/ovn.at:5154: ovn-nbctl get Logical-Switch-Port p41 dynamic_addresses"
at_fn_check_prepare_trace "ovn.at:5154"
( $at_check_trace; ovn-nbctl get Logical-Switch-Port p41 dynamic_addresses
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"0a:00:00:00:00:29 bef0::800:ff:fe00:29\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5154"
$at_failed && at_fn_log_failure
$at_traceon; }


as ovn-sb
{ set +x
$as_echo "$at_srcdir/ovn.at:5159: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5159"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5159"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5159: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5159"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5159"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5159: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5159: wait failed" >&5

    $as_echo "ovn.at:5159" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5159"
fi


as ovn-nb
{ set +x
$as_echo "$at_srcdir/ovn.at:5162: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5162"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5162"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5162: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5162"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5162"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5162: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5162: wait failed" >&5

    $as_echo "ovn.at:5162" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5162"
fi


as northd
{ set +x
$as_echo "$at_srcdir/ovn.at:5165: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:5165"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5165"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5165: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:5165"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5165"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5165: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5165: wait failed" >&5

    $as_echo "ovn.at:5165" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5165"
fi


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2452
#AT_START_2453
at_fn_group_banner 2453 'ovn.at:5169' \
  "ovn -- ipam connectivity" "                       " 125
at_xfail=no
(
  $as_echo "2453. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn.at:5170" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:5170"
ovn_start

ovn-nbctl lr-add R1

# Test for a ping using dynamically allocated addresses.
ovn-nbctl ls-add foo -- add Logical_Switch foo other_config subnet=192.168.1.0/24
ovn-nbctl ls-add alice -- add Logical_Switch alice other_config subnet=192.168.2.0/24

# Connect foo to R1
ovn-nbctl lrp-add R1 foo 00:00:00:01:02:03 192.168.1.1/24
ovn-nbctl lsp-add foo rp-foo -- set Logical_Switch_Port rp-foo type=router \
          options:router-port=foo \
          -- lsp-set-addresses rp-foo router

# Connect alice to R1
ovn-nbctl lrp-add R1 alice 00:00:00:01:02:04 192.168.2.1/24
ovn-nbctl lsp-add alice rp-alice -- set Logical_Switch_Port rp-alice type=router \
          options:router-port=alice addresses=\"00:00:00:01:02:04\"

# Create logical port foo1 in foo
ovn-nbctl --wait=sb lsp-add foo foo1 \
-- lsp-set-addresses foo1 "dynamic"
{ set +x
$as_echo "$at_srcdir/ovn.at:5193: ovn-nbctl --timeout=10 wait-until Logical-Switch-Port foo1 dynamic_addresses='\"0a:00:00:00:00:01 192.168.1.2\"'"
at_fn_check_prepare_trace "ovn.at:5193"
( $at_check_trace; ovn-nbctl --timeout=10 wait-until Logical-Switch-Port foo1 dynamic_addresses='"0a:00:00:00:00:01 192.168.1.2"'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5193"
$at_failed && at_fn_log_failure
$at_traceon; }


# Create logical port alice1 in alice
ovn-nbctl --wait=sb lsp-add alice alice1 \
-- lsp-set-addresses alice1 "dynamic"
{ set +x
$as_echo "$at_srcdir/ovn.at:5198: ovn-nbctl --timeout=10 wait-until Logical-Switch-Port alice1 dynamic_addresses='\"0a:00:00:00:00:02 192.168.2.2\"'"
at_fn_check_prepare_trace "ovn.at:5198"
( $at_check_trace; ovn-nbctl --timeout=10 wait-until Logical-Switch-Port alice1 dynamic_addresses='"0a:00:00:00:00:02 192.168.2.2"'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5198"
$at_failed && at_fn_log_failure
$at_traceon; }


# Create logical port foo2 in foo
ovn-nbctl --wait=sb lsp-add foo foo2 \
-- lsp-set-addresses foo2 "dynamic"
{ set +x
$as_echo "$at_srcdir/ovn.at:5203: ovn-nbctl --timeout=10 wait-until Logical-Switch-Port foo2 dynamic_addresses='\"0a:00:00:00:00:03 192.168.1.3\"'"
at_fn_check_prepare_trace "ovn.at:5203"
( $at_check_trace; ovn-nbctl --timeout=10 wait-until Logical-Switch-Port foo2 dynamic_addresses='"0a:00:00:00:00:03 192.168.1.3"'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5203"
$at_failed && at_fn_log_failure
$at_traceon; }


# Create a hypervisor and create OVS ports corresponding to logical ports.
net_add n1

sim_add hv1
as hv1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.1
ovs-vsctl -- add-port br-int hv1-vif1 -- \
    set interface hv1-vif1 external-ids:iface-id=foo1 \
    options:tx_pcap=hv1/vif1-tx.pcap \
    options:rxq_pcap=hv1/vif1-rx.pcap \
    ofport-request=1

ovs-vsctl -- add-port br-int hv1-vif2 -- \
    set interface hv1-vif2 external-ids:iface-id=foo2 \
    options:tx_pcap=hv1/vif2-tx.pcap \
    options:rxq_pcap=hv1/vif2-rx.pcap \
    ofport-request=2

ovs-vsctl -- add-port br-int hv1-vif3 -- \
    set interface hv1-vif3 external-ids:iface-id=alice1 \
    options:tx_pcap=hv1/vif3-tx.pcap \
    options:rxq_pcap=hv1/vif3-rx.pcap \
    ofport-request=3

# Allow some time for ovn-northd and ovn-controller to catch up.
# XXX This should be more systematic.
sleep 1

ip_to_hex() {
    printf "%02x%02x%02x%02x" "$@"
}

# Send ip packets between foo1 and foo2
src_mac="0a0000000001"
dst_mac="0a0000000003"
src_ip=`ip_to_hex 192 168 1 2`
dst_ip=`ip_to_hex 192 168 1 3`
packet=${dst_mac}${src_mac}08004500001c0000000040110000${src_ip}${dst_ip}0035111100080000
as hv1 ovs-appctl netdev-dummy/receive hv1-vif1 $packet

# Send ip packets between foo1 and alice1
src_mac="0a0000000001"
dst_mac="000000010203"
src_ip=`ip_to_hex 192 168 1 2`
dst_ip=`ip_to_hex 192 168 2 2`
packet=${dst_mac}${src_mac}08004500001c0000000040110000${src_ip}${dst_ip}0035111100080000
as hv1 ovs-appctl netdev-dummy/receive hv1-vif1 $packet

echo "---------NB dump-----"
ovn-nbctl show
echo "---------------------"
ovn-nbctl list logical_router
echo "---------------------"
ovn-nbctl list logical_router_port
echo "---------------------"

echo "---------SB dump-----"
ovn-sbctl list datapath_binding
echo "---------------------"
ovn-sbctl list port_binding
echo "---------------------"

echo "------ hv1 dump ----------"
as hv1 ovs-ofctl dump-flows br-int

# Packet to Expect at foo2
src_mac="0a0000000001"
dst_mac="0a0000000003"
src_ip=`ip_to_hex 192 168 1 2`
dst_ip=`ip_to_hex 192 168 1 3`
expected=${dst_mac}${src_mac}08004500001c0000000040110000${src_ip}${dst_ip}0035111100080000

$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/vif2-tx.pcap > received1.packets
echo $expected > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:5280: cat received1.packets"
at_fn_check_prepare_trace "ovn.at:5280"
( $at_check_trace; cat received1.packets
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5280"
$at_failed && at_fn_log_failure
$at_traceon; }


# Packet to Expect at alice1
src_mac="000000010204"
dst_mac="0a0000000002"
src_ip=`ip_to_hex 192 168 1 2`
dst_ip=`ip_to_hex 192 168 2 2`
expected=${dst_mac}${src_mac}08004500001c000000003f110100${src_ip}${dst_ip}0035111100080000

$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/vif3-tx.pcap > received2.packets
echo $expected > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:5291: cat received2.packets"
at_fn_check_prepare_trace "ovn.at:5291"
( $at_check_trace; cat received2.packets
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5291"
$at_failed && at_fn_log_failure
$at_traceon; }





    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:5293: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:5293"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5293"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5293: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:5293"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5293"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5293: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5293: wait failed" >&5

    $as_echo "ovn.at:5293" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5293"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:5293: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:5293"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5293"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5293: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:5293"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5293"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5293: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5293: wait failed" >&5

    $as_echo "ovn.at:5293" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5293"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:5293: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:5293"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5293"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5293: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:5293"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5293"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5293: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5293: wait failed" >&5

    $as_echo "ovn.at:5293" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5293"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:5293: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:5293"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5293"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5293: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:5293"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5293"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5293: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5293: wait failed" >&5

    $as_echo "ovn.at:5293" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5293"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:5293: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5293"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5293"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5293: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5293"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5293"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5293: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5293: wait failed" >&5

    $as_echo "ovn.at:5293" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5293"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:5293: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5293"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5293"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5293: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5293"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5293"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5293: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5293: wait failed" >&5

    $as_echo "ovn.at:5293" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5293"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:5293: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5293"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5293"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5293: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5293"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5293"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5293: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5293: wait failed" >&5

    $as_echo "ovn.at:5293" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5293"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:5293: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:5293"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5293"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5293: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:5293"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5293"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5293: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5293: wait failed" >&5

    $as_echo "ovn.at:5293" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5293"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:5293: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:5293"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5293"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5293: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:5293"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5293"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5293: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5293: wait failed" >&5

    $as_echo "ovn.at:5293" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5293"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:5293: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:5293"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5293"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5293: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:5293"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5293"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5293: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5293: wait failed" >&5

    $as_echo "ovn.at:5293" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5293"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:5293: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5293"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5293"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5293: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5293"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5293"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5293: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5293: wait failed" >&5

    $as_echo "ovn.at:5293" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5293"
fi




  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2453
#AT_START_2454
at_fn_group_banner 2454 'ovn.at:5297' \
  "ovn -- ovs-vswitchd restart" "                    " 125
at_xfail=no
(
  $as_echo "2454. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


$as_echo "ovn.at:5299" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:5299"
ovn_start

ovn-nbctl ls-add ls1

ovn-nbctl lsp-add ls1 ls1-lp1 \
-- lsp-set-addresses ls1-lp1 "f0:00:00:00:00:01 10.0.0.4"

ovn-nbctl lsp-set-port-security ls1-lp1 "f0:00:00:00:00:01 10.0.0.4"

net_add n1
sim_add hv1

as hv1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.1
ovs-vsctl -- add-port br-int hv1-vif1 -- \
    set interface hv1-vif1 external-ids:iface-id=ls1-lp1 \
    options:tx_pcap=hv1/vif1-tx.pcap \
    options:rxq_pcap=hv1/vif1-rx.pcap \
    ofport-request=1

{ set +x
$as_echo "$at_srcdir/ovn.at:5321: ovn_populate_arp__"
at_fn_check_prepare_trace "ovn.at:5321"
( $at_check_trace; ovn_populate_arp__
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5321"
$at_failed && at_fn_log_failure
$at_traceon; }

sleep 2

as hv1 ovs-vsctl show

echo "---------------------"
ovn-sbctl dump-flows
echo "---------------------"

echo "------ hv1 dump ----------"
as hv1 ovs-ofctl dump-flows br-int
total_flows=`as hv1 ovs-ofctl dump-flows br-int | wc -l`

echo "Total flows before vswitchd restart = " $total_flows

# Code taken from ovs-save utility
save_flows () {
    echo "ovs-ofctl add-flows br-int - << EOF" > restore_flows.sh
    as hv1 ovs-ofctl dump-flows "br-int" | sed -e '/NXST_FLOW/d' \
            -e 's/\(idle\|hard\)_age=^,*,//g' >> restore_flows.sh
    echo "EOF" >> restore_flows.sh
}

restart_vswitchd () {
    restore_flows=$1

    if test $restore_flows = true; then
        save_flows
    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:5352: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:5352"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5352"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5352: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:5352"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5352"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5352: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5352: wait failed" >&5

    $as_echo "ovn.at:5352" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5352"
fi


    if test $restore_flows = true; then
        as hv1
        ovs-vsctl --no-wait set open_vswitch . other_config:flow-restore-wait="true"
    fi

    as hv1
    start_daemon ovs-vswitchd --enable-dummy=system -vvconn -vofproto_dpif -vunixctl
    ovs-ofctl dump-flows br-int

    if test $restore_flows = true; then
        sh ./restore_flows.sh
        echo "Flows after restore"
        as hv1
        ovs-ofctl dump-flows br-int
        ovs-vsctl --no-wait --if-exists remove open_vswitch . other_config \
            flow-restore-wait="true"
    fi
}

# Save the flows, restart vswitchd and restore the flows
restart_vswitchd true
$as_echo "ovn.at:5375: waiting until
    total_flows_after_restart=\`as hv1 ovs-ofctl dump-flows br-int | wc -l\`
    echo \"Total flows after vswitchd restart = \" \$total_flows_after_restart
    test \"\${total_flows}\" = \"\${total_flows_after_restart}\"
..." >&5
ovs_wait_cond () {

    total_flows_after_restart=`as hv1 ovs-ofctl dump-flows br-int | wc -l`
    echo "Total flows after vswitchd restart = " $total_flows_after_restart
    test "${total_flows}" = "${total_flows_after_restart}"

}
if ovs_wait; then :
else
    $as_echo "ovn.at:5375: wait failed" >&5

    $as_echo "ovn.at:5375" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5375"
fi


# Restart vswitchd without restoring
restart_vswitchd false
$as_echo "ovn.at:5383: waiting until
    total_flows_after_restart=\`as hv1 ovs-ofctl dump-flows br-int | wc -l\`
    echo \"Total flows after vswitchd restart = \" \$total_flows_after_restart
    test \"\${total_flows}\" = \"\${total_flows_after_restart}\"
..." >&5
ovs_wait_cond () {

    total_flows_after_restart=`as hv1 ovs-ofctl dump-flows br-int | wc -l`
    echo "Total flows after vswitchd restart = " $total_flows_after_restart
    test "${total_flows}" = "${total_flows_after_restart}"

}
if ovs_wait; then :
else
    $as_echo "ovn.at:5383: wait failed" >&5

    $as_echo "ovn.at:5383" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5383"
fi





    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:5389: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:5389"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5389"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5389: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:5389"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5389"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5389: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5389: wait failed" >&5

    $as_echo "ovn.at:5389" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5389"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:5389: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:5389"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5389"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5389: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:5389"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5389"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5389: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5389: wait failed" >&5

    $as_echo "ovn.at:5389" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5389"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:5389: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:5389"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5389"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5389: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:5389"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5389"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5389: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5389: wait failed" >&5

    $as_echo "ovn.at:5389" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5389"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:5389: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:5389"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5389"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5389: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:5389"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5389"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5389: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5389: wait failed" >&5

    $as_echo "ovn.at:5389" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5389"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:5389: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5389"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5389"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5389: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5389"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5389"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5389: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5389: wait failed" >&5

    $as_echo "ovn.at:5389" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5389"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:5389: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5389"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5389"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5389: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5389"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5389"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5389: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5389: wait failed" >&5

    $as_echo "ovn.at:5389" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5389"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:5389: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5389"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5389"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5389: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5389"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5389"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5389: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5389: wait failed" >&5

    $as_echo "ovn.at:5389" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5389"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:5389: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:5389"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5389"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5389: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:5389"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5389"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5389: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5389: wait failed" >&5

    $as_echo "ovn.at:5389" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5389"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:5389: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:5389"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5389"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5389: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:5389"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5389"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5389: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5389: wait failed" >&5

    $as_echo "ovn.at:5389" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5389"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:5389: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:5389"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5389"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5389: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:5389"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5389"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5389: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5389: wait failed" >&5

    $as_echo "ovn.at:5389" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5389"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:5389: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5389"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5389"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5389: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5389"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5389"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5389: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5389: wait failed" >&5

    $as_echo "ovn.at:5389" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5389"
fi



  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2454
#AT_START_2455
at_fn_group_banner 2455 'ovn.at:5392' \
  "ovn -- send arp for nexthop" "                    " 125
at_xfail=no
(
  $as_echo "2455. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn.at:5393" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:5393"
ovn_start

# Topology: Two LSs - ls1 and ls2 are connected via router r0

# Create logical switches
ovn-nbctl ls-add ls1
ovn-nbctl ls-add ls2

# Create  router
ovn-nbctl create Logical_Router name=lr0

# Add router ls1p1 port to gateway router
ovn-nbctl lrp-add lr0 lrp-ls1lp1 f0:00:00:00:00:01 192.168.0.1/24
ovn-nbctl lsp-add ls1 ls1lp1 -- set Logical_Switch_Port ls1lp1  \
    type=router options:router-port=lrp-ls1lp1 \
    addresses='"f0:00:00:00:00:01 192.168.0.1"'

# Add router ls2p2 port to gateway router
ovn-nbctl lrp-add lr0 lrp-ls2lp1 f0:00:00:00:00:02 192.168.1.1/24
ovn-nbctl lsp-add ls2 ls2lp1 -- set Logical_Switch_Port ls2lp1 \
    type=router options:router-port=lrp-ls2lp1 \
    addresses='"f0:00:00:00:00:02 192.168.1.1"'

# Set default gateway (nexthop) to 192.168.1.254
ovn-nbctl lr-route-add lr0 "0.0.0.0/0" 192.168.1.254 lrp-ls2lp1

# Create logical port ls1lp2 in ls1
ovn-nbctl lsp-add ls1 ls1lp2 \
-- lsp-set-addresses ls1lp2 "f0:00:00:00:00:03 192.168.0.2"

# Create logical port ls2lp2 in ls2
ovn-nbctl lsp-add ls2 ls2lp2 \
-- lsp-set-addresses ls2lp2 "f0:00:00:00:00:04 192.168.1.10"

net_add n1
sim_add hv1
as hv1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.1
ovs-vsctl -- add-port br-int hv1-ls1lp2 -- \
    set interface hv1-ls1lp2 external-ids:iface-id=ls1lp2 \
    options:tx_pcap=hv1/ls1lp2-tx.pcap \
    options:rxq_pcap=hv1/ls1lp2-rx.pcap \
    ofport-request=1
ovs-vsctl -- add-port br-int hv1-ls2lp2 -- \
    set interface hv1-ls2lp2 external-ids:iface-id=ls2lp2 \
    options:tx_pcap=hv1/ls2lp2-tx.pcap \
    options:rxq_pcap=hv1/ls2lp2-rx.pcap \
    ofport-request=2

# Allow some time for ovn-northd and ovn-controller to catch up.
# XXX This should be more systematic.
sleep 1

echo "---------NB dump-----"
ovn-nbctl show
echo "---------------------"
ovn-nbctl list logical_router
echo "---------------------"
ovn-nbctl list logical_router_port
echo "---------------------"

echo "---------SB dump-----"
ovn-sbctl list datapath_binding
echo "---------------------"
ovn-sbctl list port_binding
echo "---------------------"
ovn-sbctl dump-flows
echo "---------------------"
ovn-sbctl list chassis
ovn-sbctl list encap
echo "---------------------"

echo "------Flows dump-----"
as hv1
ovs-ofctl dump-flows
echo "---------------------"

ip_to_hex() {
    printf "%02x%02x%02x%02x" "$@"
}

src_mac="f00000000003"
dst_mac="f00000000001"
src_ip=`ip_to_hex 192 168 0 2`
dst_ip=`ip_to_hex 8 8 8 8`
packet=${dst_mac}${src_mac}08004500001c0000000040110000${src_ip}${dst_ip}0035111100080000

# Send IP packet destined to 8.8.8.8 from lsp1lp2
as hv1 ovs-appctl netdev-dummy/receive hv1-ls1lp2 $packet

trim_zeros() {
    sed 's/\(00\)\{1,\}$//'
}

# ARP packet should be received with Target IP Address set to 192.168.1.254 and
# not 8.8.8.8

$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/ls2lp2-tx.pcap | trim_zeros > packets
expected="fffffffffffff0000000000208060001080006040001f00000000002c0a80101000000000000c0a801fe"
echo $expected > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:5495: cat packets"
at_fn_check_prepare_trace "ovn.at:5495"
( $at_check_trace; cat packets
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5495"
$at_failed && at_fn_log_failure
$at_traceon; }

cat packets




    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:5498: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:5498"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5498"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5498: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:5498"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5498"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5498: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5498: wait failed" >&5

    $as_echo "ovn.at:5498" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5498"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:5498: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:5498"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5498"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5498: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:5498"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5498"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5498: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5498: wait failed" >&5

    $as_echo "ovn.at:5498" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5498"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:5498: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:5498"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5498"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5498: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:5498"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5498"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5498: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5498: wait failed" >&5

    $as_echo "ovn.at:5498" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5498"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:5498: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:5498"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5498"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5498: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:5498"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5498"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5498: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5498: wait failed" >&5

    $as_echo "ovn.at:5498" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5498"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:5498: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5498"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5498"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5498: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5498"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5498"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5498: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5498: wait failed" >&5

    $as_echo "ovn.at:5498" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5498"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:5498: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5498"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5498"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5498: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5498"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5498"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5498: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5498: wait failed" >&5

    $as_echo "ovn.at:5498" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5498"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:5498: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5498"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5498"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5498: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5498"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5498"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5498: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5498: wait failed" >&5

    $as_echo "ovn.at:5498" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5498"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:5498: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:5498"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5498"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5498: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:5498"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5498"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5498: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5498: wait failed" >&5

    $as_echo "ovn.at:5498" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5498"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:5498: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:5498"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5498"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5498: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:5498"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5498"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5498: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5498: wait failed" >&5

    $as_echo "ovn.at:5498" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5498"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:5498: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:5498"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5498"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5498: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:5498"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5498"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5498: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5498: wait failed" >&5

    $as_echo "ovn.at:5498" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5498"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:5498: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5498"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5498"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5498: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5498"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5498"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5498: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5498: wait failed" >&5

    $as_echo "ovn.at:5498" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5498"
fi




  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2455
#AT_START_2456
at_fn_group_banner 2456 'ovn.at:5502' \
  "ovn -- send gratuitous arp for nat ips in localnet" "" 125
at_xfail=no
(
  $as_echo "2456. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn.at:5503" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:5503"
ovn_start
# Create logical switch
ovn-nbctl ls-add ls0
# Create gateway router
ovn-nbctl create Logical_Router name=lr0 options:chassis=hv1
# Add router port to gateway router
ovn-nbctl lrp-add lr0 lrp0 f0:00:00:00:00:01 192.168.0.1/24
ovn-nbctl lsp-add ls0 lrp0-rp -- set Logical_Switch_Port lrp0-rp \
    type=router options:router-port=lrp0 addresses='"f0:00:00:00:00:01"'
# Add nat-address option
ovn-nbctl lsp-set-options lrp0-rp router-port=lrp0 nat-addresses="f0:00:00:00:00:01 192.168.0.2"

net_add n1
sim_add hv1
as hv1
ovs-vsctl \
    -- add-br br-phys \
    -- add-br br-eth0

ovn_attach n1 br-phys 192.168.0.1

{ set +x
$as_echo "$at_srcdir/ovn.at:5525: ovs-vsctl set Open_vSwitch . external-ids:ovn-bridge-mappings=physnet1:br-eth0"
at_fn_check_prepare_trace "ovn.at:5525"
( $at_check_trace; ovs-vsctl set Open_vSwitch . external-ids:ovn-bridge-mappings=physnet1:br-eth0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5525"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5526: ovs-vsctl add-port br-eth0 snoopvif -- set Interface snoopvif options:tx_pcap=hv1/snoopvif-tx.pcap options:rxq_pcap=hv1/snoopvif-rx.pcap"
at_fn_check_prepare_trace "ovn.at:5526"
( $at_check_trace; ovs-vsctl add-port br-eth0 snoopvif -- set Interface snoopvif options:tx_pcap=hv1/snoopvif-tx.pcap options:rxq_pcap=hv1/snoopvif-rx.pcap
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5526"
$at_failed && at_fn_log_failure
$at_traceon; }


# Create a localnet port.
{ set +x
$as_echo "$at_srcdir/ovn.at:5529: ovn-nbctl lsp-add ls0 ln_port"
at_fn_check_prepare_trace "ovn.at:5529"
( $at_check_trace; ovn-nbctl lsp-add ls0 ln_port
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5529"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5530: ovn-nbctl lsp-set-addresses ln_port unknown"
at_fn_check_prepare_trace "ovn.at:5530"
( $at_check_trace; ovn-nbctl lsp-set-addresses ln_port unknown
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5530"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5531: ovn-nbctl lsp-set-type ln_port localnet"
at_fn_check_prepare_trace "ovn.at:5531"
( $at_check_trace; ovn-nbctl lsp-set-type ln_port localnet
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5531"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5532: ovn-nbctl lsp-set-options ln_port network_name=physnet1"
at_fn_check_prepare_trace "ovn.at:5532"
( $at_check_trace; ovn-nbctl lsp-set-options ln_port network_name=physnet1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5532"
$at_failed && at_fn_log_failure
$at_traceon; }



# Wait for packet to be received.
$as_echo "ovn.at:5536: waiting until test \`wc -c < \"hv1/snoopvif-tx.pcap\"\` -ge 50..." >&5
ovs_wait_cond () {
    test `wc -c < "hv1/snoopvif-tx.pcap"` -ge 50
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5536: wait failed" >&5

    $as_echo "ovn.at:5536" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5536"
fi

trim_zeros() {
    sed 's/\(00\)\{1,\}$//'
}
$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/snoopvif-tx.pcap | trim_zeros > packets
expected="fffffffffffff0000000000108060001080006040001f00000000001c0a80002000000000000c0a80002"
echo $expected > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:5543: sort packets"
at_fn_check_prepare_trace "ovn.at:5543"
( $at_check_trace; sort packets
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5543"
$at_failed && at_fn_log_failure
$at_traceon; }

cat packets




    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:5546: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:5546"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5546"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5546: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:5546"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5546"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5546: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5546: wait failed" >&5

    $as_echo "ovn.at:5546" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5546"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:5546: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:5546"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5546"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5546: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:5546"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5546"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5546: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5546: wait failed" >&5

    $as_echo "ovn.at:5546" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5546"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:5546: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:5546"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5546"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5546: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:5546"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5546"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5546: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5546: wait failed" >&5

    $as_echo "ovn.at:5546" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5546"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:5546: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:5546"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5546"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5546: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:5546"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5546"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5546: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5546: wait failed" >&5

    $as_echo "ovn.at:5546" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5546"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:5546: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5546"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5546"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5546: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5546"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5546"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5546: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5546: wait failed" >&5

    $as_echo "ovn.at:5546" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5546"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:5546: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5546"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5546"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5546: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5546"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5546"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5546: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5546: wait failed" >&5

    $as_echo "ovn.at:5546" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5546"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:5546: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5546"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5546"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5546: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5546"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5546"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5546: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5546: wait failed" >&5

    $as_echo "ovn.at:5546" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5546"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:5546: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:5546"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5546"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5546: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:5546"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5546"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5546: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5546: wait failed" >&5

    $as_echo "ovn.at:5546" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5546"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:5546: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:5546"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5546"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5546: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:5546"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5546"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5546: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5546: wait failed" >&5

    $as_echo "ovn.at:5546" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5546"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:5546: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:5546"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5546"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5546: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:5546"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5546"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5546: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5546: wait failed" >&5

    $as_echo "ovn.at:5546" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5546"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:5546: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5546"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5546"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5546: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5546"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5546"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5546: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5546: wait failed" >&5

    $as_echo "ovn.at:5546" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5546"
fi




  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2456
#AT_START_2457
at_fn_group_banner 2457 'ovn.at:5550' \
  "ovn -- send gratuitous arp with nat-addresses router in localnet" "" 125
at_xfail=no
(
  $as_echo "2457. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn.at:5551" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:5551"
ovn_start
# Create logical switch
ovn-nbctl ls-add ls0
# Create gateway router
ovn-nbctl create Logical_Router name=lr0 options:chassis=hv1
# Add router port to gateway router
ovn-nbctl lrp-add lr0 lrp0 f0:00:00:00:00:01 192.168.0.1/24
ovn-nbctl lsp-add ls0 lrp0-rp -- set Logical_Switch_Port lrp0-rp \
    type=router options:router-port=lrp0 addresses='"f0:00:00:00:00:01"'
# Add nat-address option
ovn-nbctl lsp-set-options lrp0-rp router-port=lrp0 nat-addresses="router"
# Add NAT rules
{ set +x
$as_echo "$at_srcdir/ovn.at:5564: ovn-nbctl lr-nat-add lr0 snat 192.168.0.1 10.0.0.0/24"
at_fn_check_prepare_trace "ovn.at:5564"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 snat 192.168.0.1 10.0.0.0/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5564"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5565: ovn-nbctl lr-nat-add lr0 dnat 192.168.0.2 10.0.0.1"
at_fn_check_prepare_trace "ovn.at:5565"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 dnat 192.168.0.2 10.0.0.1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5565"
$at_failed && at_fn_log_failure
$at_traceon; }

# Add load balancers
{ set +x
$as_echo "$at_srcdir/ovn.at:5567: ovn-nbctl lb-add lb0 192.168.0.3:80 10.0.0.2:80,10.0.0.3:80"
at_fn_check_prepare_trace "ovn.at:5567"
( $at_check_trace; ovn-nbctl lb-add lb0 192.168.0.3:80 10.0.0.2:80,10.0.0.3:80
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5567"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5568: ovn-nbctl lr-lb-add lr0 lb0"
at_fn_check_prepare_trace "ovn.at:5568"
( $at_check_trace; ovn-nbctl lr-lb-add lr0 lb0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5568"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5569: ovn-nbctl lb-add lb1 192.168.0.3:8080 10.0.0.2:8080,10.0.0.3:8080"
at_fn_check_prepare_trace "ovn.at:5569"
( $at_check_trace; ovn-nbctl lb-add lb1 192.168.0.3:8080 10.0.0.2:8080,10.0.0.3:8080
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5569"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5570: ovn-nbctl lr-lb-add lr0 lb1"
at_fn_check_prepare_trace "ovn.at:5570"
( $at_check_trace; ovn-nbctl lr-lb-add lr0 lb1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5570"
$at_failed && at_fn_log_failure
$at_traceon; }


net_add n1
sim_add hv1
as hv1
ovs-vsctl \
    -- add-br br-phys \
    -- add-br br-eth0

ovn_attach n1 br-phys 192.168.0.1

{ set +x
$as_echo "$at_srcdir/ovn.at:5581: ovs-vsctl set Open_vSwitch . external-ids:ovn-bridge-mappings=physnet1:br-eth0"
at_fn_check_prepare_trace "ovn.at:5581"
( $at_check_trace; ovs-vsctl set Open_vSwitch . external-ids:ovn-bridge-mappings=physnet1:br-eth0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5581"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5582: ovs-vsctl add-port br-eth0 snoopvif -- set Interface snoopvif options:tx_pcap=hv1/snoopvif-tx.pcap options:rxq_pcap=hv1/snoopvif-rx.pcap"
at_fn_check_prepare_trace "ovn.at:5582"
( $at_check_trace; ovs-vsctl add-port br-eth0 snoopvif -- set Interface snoopvif options:tx_pcap=hv1/snoopvif-tx.pcap options:rxq_pcap=hv1/snoopvif-rx.pcap
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5582"
$at_failed && at_fn_log_failure
$at_traceon; }


# Create a localnet port.
{ set +x
$as_echo "$at_srcdir/ovn.at:5585: ovn-nbctl lsp-add ls0 ln_port"
at_fn_check_prepare_trace "ovn.at:5585"
( $at_check_trace; ovn-nbctl lsp-add ls0 ln_port
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5585"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5586: ovn-nbctl lsp-set-addresses ln_port unknown"
at_fn_check_prepare_trace "ovn.at:5586"
( $at_check_trace; ovn-nbctl lsp-set-addresses ln_port unknown
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5586"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5587: ovn-nbctl lsp-set-type ln_port localnet"
at_fn_check_prepare_trace "ovn.at:5587"
( $at_check_trace; ovn-nbctl lsp-set-type ln_port localnet
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5587"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5588: ovn-nbctl lsp-set-options ln_port network_name=physnet1"
at_fn_check_prepare_trace "ovn.at:5588"
( $at_check_trace; ovn-nbctl lsp-set-options ln_port network_name=physnet1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5588"
$at_failed && at_fn_log_failure
$at_traceon; }



# Wait for packet to be received.
$as_echo "ovn.at:5592: waiting until test \`wc -c < \"hv1/snoopvif-tx.pcap\"\` -ge 50..." >&5
ovs_wait_cond () {
    test `wc -c < "hv1/snoopvif-tx.pcap"` -ge 50
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5592: wait failed" >&5

    $as_echo "ovn.at:5592" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5592"
fi

trim_zeros() {
    sed 's/\(00\)\{1,\}$//'
}
$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/snoopvif-tx.pcap | trim_zeros > packets
expected="fffffffffffff0000000000108060001080006040001f00000000001c0a80001000000000000c0a80001"
echo $expected > expout
expected="fffffffffffff0000000000108060001080006040001f00000000001c0a80002000000000000c0a80002"
echo $expected >> expout
expected="fffffffffffff0000000000108060001080006040001f00000000001c0a80003000000000000c0a80003"
echo $expected >> expout
{ set +x
$as_echo "$at_srcdir/ovn.at:5603: sort packets"
at_fn_check_prepare_trace "ovn.at:5603"
( $at_check_trace; sort packets
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5603"
$at_failed && at_fn_log_failure
$at_traceon; }

cat packets




    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:5606: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:5606"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5606"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5606: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:5606"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5606"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5606: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5606: wait failed" >&5

    $as_echo "ovn.at:5606" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5606"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:5606: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:5606"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5606"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5606: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:5606"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5606"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5606: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5606: wait failed" >&5

    $as_echo "ovn.at:5606" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5606"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:5606: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:5606"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5606"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5606: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:5606"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5606"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5606: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5606: wait failed" >&5

    $as_echo "ovn.at:5606" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5606"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:5606: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:5606"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5606"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5606: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:5606"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5606"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5606: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5606: wait failed" >&5

    $as_echo "ovn.at:5606" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5606"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:5606: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5606"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5606"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5606: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5606"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5606"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5606: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5606: wait failed" >&5

    $as_echo "ovn.at:5606" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5606"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:5606: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5606"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5606"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5606: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5606"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5606"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5606: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5606: wait failed" >&5

    $as_echo "ovn.at:5606" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5606"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:5606: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5606"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5606"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5606: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5606"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5606"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5606: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5606: wait failed" >&5

    $as_echo "ovn.at:5606" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5606"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:5606: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:5606"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5606"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5606: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:5606"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5606"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5606: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5606: wait failed" >&5

    $as_echo "ovn.at:5606" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5606"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:5606: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:5606"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5606"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5606: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:5606"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5606"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5606: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5606: wait failed" >&5

    $as_echo "ovn.at:5606" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5606"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:5606: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:5606"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5606"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5606: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:5606"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5606"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5606: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5606: wait failed" >&5

    $as_echo "ovn.at:5606" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5606"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:5606: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5606"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5606"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5606: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5606"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5606"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5606: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5606: wait failed" >&5

    $as_echo "ovn.at:5606" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5606"
fi




  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2457
#AT_START_2458
at_fn_group_banner 2458 'ovn.at:5610' \
  "ovn -- delete mac bindings" "                     " 125
at_xfail=no
(
  $as_echo "2458. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

ovn_start
net_add n1
sim_add hv1
as hv1
ovs-vsctl -- add-br br-phys
ovn_attach n1 br-phys 192.168.0.1
# Create logical switch ls0
ovn-nbctl ls-add ls0
# Create ports lp0, lp1 in ls0
ovn-nbctl lsp-add ls0 lp0
ovn-nbctl lsp-add ls0 lp1
ovn-nbctl lsp-set-addresses lp0 "f0:00:00:00:00:01 192.168.0.1"
ovn-nbctl lsp-set-addresses lp1 "f0:00:00:00:00:02 192.168.0.2"
dp_uuid=`ovn-sbctl find datapath | grep uuid | cut -f2 -d ":" | cut -f2 -d " "`
ovn-sbctl create MAC_Binding ip=10.0.0.1 datapath=$dp_uuid logical_port=lp0 mac="mac1"
ovn-sbctl create MAC_Binding ip=10.0.0.1 datapath=$dp_uuid logical_port=lp1 mac="mac2"
ovn-sbctl find MAC_Binding
# Delete port lp0 and check that its MAC_Binding is deleted.
ovn-nbctl lsp-del lp0
ovn-sbctl find MAC_Binding
$as_echo "ovn.at:5631: waiting until test \`ovn-sbctl find MAC_Binding logical_port=lp0 | wc -l\` = 0..." >&5
ovs_wait_cond () {
    test `ovn-sbctl find MAC_Binding logical_port=lp0 | wc -l` = 0
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5631: wait failed" >&5

    $as_echo "ovn.at:5631" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5631"
fi

# Delete logical switch ls0 and check that its MAC_Binding is deleted.
ovn-nbctl ls-del ls0
ovn-sbctl find MAC_Binding
$as_echo "ovn.at:5635: waiting until test \`ovn-sbctl find MAC_Binding | wc -l\` = 0..." >&5
ovs_wait_cond () {
    test `ovn-sbctl find MAC_Binding | wc -l` = 0
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5635: wait failed" >&5

    $as_echo "ovn.at:5635" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5635"
fi





    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:5637: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:5637"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5637"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5637: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:5637"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5637"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5637: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5637: wait failed" >&5

    $as_echo "ovn.at:5637" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5637"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:5637: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:5637"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5637"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5637: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:5637"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5637"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5637: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5637: wait failed" >&5

    $as_echo "ovn.at:5637" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5637"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:5637: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:5637"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5637"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5637: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:5637"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5637"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5637: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5637: wait failed" >&5

    $as_echo "ovn.at:5637" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5637"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:5637: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:5637"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5637"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5637: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:5637"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5637"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5637: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5637: wait failed" >&5

    $as_echo "ovn.at:5637" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5637"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:5637: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5637"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5637"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5637: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5637"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5637"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5637: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5637: wait failed" >&5

    $as_echo "ovn.at:5637" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5637"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:5637: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5637"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5637"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5637: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5637"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5637"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5637: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5637: wait failed" >&5

    $as_echo "ovn.at:5637" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5637"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:5637: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5637"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5637"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5637: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5637"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5637"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5637: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5637: wait failed" >&5

    $as_echo "ovn.at:5637" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5637"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:5637: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:5637"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5637"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5637: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:5637"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5637"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5637: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5637: wait failed" >&5

    $as_echo "ovn.at:5637" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5637"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:5637: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:5637"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5637"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5637: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:5637"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5637"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5637: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5637: wait failed" >&5

    $as_echo "ovn.at:5637" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5637"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:5637: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:5637"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5637"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5637: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:5637"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5637"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5637: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5637: wait failed" >&5

    $as_echo "ovn.at:5637" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5637"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:5637: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5637"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5637"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5637: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5637"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5637"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5637: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5637: wait failed" >&5

    $as_echo "ovn.at:5637" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5637"
fi




  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2458
#AT_START_2459
at_fn_group_banner 2459 'ovn.at:5641' \
  "ovn -- conntrack zone allocation" "               " 125
at_xfail=no
(
  $as_echo "2459. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn.at:5642" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:5642"
ovn_start

# Logical network:
# 2 logical switches "foo" (192.168.1.0/24) and "bar" (172.16.1.0/24)
# connected to a router R1.
# foo has foo1 to act as a client.
# bar has bar1, bar2, bar3 to act as servers.

net_add n1

sim_add hv1
as hv1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.1
for i in foo1 bar1 bar2 bar3; do
    ovs-vsctl -- add-port br-int $i -- \
        set interface $i external-ids:iface-id=$i \
        options:tx_pcap=hv1/$i-tx.pcap \
        options:rxq_pcap=hv1/$i-rx.pcap
done

ovn-nbctl create Logical_Router name=R1
ovn-nbctl ls-add foo
ovn-nbctl ls-add bar

# Connect foo to R1
ovn-nbctl lrp-add R1 foo 00:00:01:01:02:03 192.168.1.1/24
ovn-nbctl lsp-add foo rp-foo -- set Logical_Switch_Port rp-foo \
    type=router options:router-port=foo addresses=\"00:00:01:01:02:03\"

# Connect bar to R1
ovn-nbctl lrp-add R1 bar 00:00:01:01:02:04 172.16.1.1/24
ovn-nbctl lsp-add bar rp-bar -- set Logical_Switch_Port rp-bar \
    type=router options:router-port=bar addresses=\"00:00:01:01:02:04\"

# Create logical port foo1 in foo
ovn-nbctl lsp-add foo foo1 \
-- lsp-set-addresses foo1 "f0:00:00:01:02:03 192.168.1.2"

# Create logical port bar1, bar2 and bar3 in bar
for i in `seq 1 3`; do
    ip=`expr $i + 1`
    ovn-nbctl lsp-add bar bar$i \
    -- lsp-set-addresses bar$i "f0:00:0a:01:02:$i 172.16.1.$ip"
done

$as_echo "ovn.at:5689: waiting until test \`ovs-ofctl dump-flows br-int table=0 | grep REG13 | wc -l\` -eq 4..." >&5
ovs_wait_cond () {
    test `ovs-ofctl dump-flows br-int table=0 | grep REG13 | wc -l` -eq 4
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5689: wait failed" >&5

    $as_echo "ovn.at:5689" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5689"
fi





    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:5691: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:5691"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5691"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5691: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:5691"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5691"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5691: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5691: wait failed" >&5

    $as_echo "ovn.at:5691" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5691"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:5691: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:5691"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5691"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5691: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:5691"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5691"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5691: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5691: wait failed" >&5

    $as_echo "ovn.at:5691" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5691"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:5691: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:5691"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5691"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5691: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:5691"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5691"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5691: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5691: wait failed" >&5

    $as_echo "ovn.at:5691" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5691"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:5691: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:5691"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5691"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5691: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:5691"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5691"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5691: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5691: wait failed" >&5

    $as_echo "ovn.at:5691" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5691"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:5691: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5691"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5691"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5691: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5691"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5691"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5691: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5691: wait failed" >&5

    $as_echo "ovn.at:5691" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5691"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:5691: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5691"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5691"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5691: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5691"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5691"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5691: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5691: wait failed" >&5

    $as_echo "ovn.at:5691" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5691"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:5691: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5691"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5691"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5691: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5691"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5691"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5691: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5691: wait failed" >&5

    $as_echo "ovn.at:5691" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5691"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:5691: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:5691"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5691"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5691: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:5691"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5691"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5691: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5691: wait failed" >&5

    $as_echo "ovn.at:5691" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5691"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:5691: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:5691"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5691"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5691: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:5691"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5691"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5691: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5691: wait failed" >&5

    $as_echo "ovn.at:5691" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5691"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:5691: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:5691"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5691"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5691: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:5691"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5691"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5691: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5691: wait failed" >&5

    $as_echo "ovn.at:5691" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5691"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:5691: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5691"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5691"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5691: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5691"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5691"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5691: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5691: wait failed" >&5

    $as_echo "ovn.at:5691" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5691"
fi




  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2459
#AT_START_2460
at_fn_group_banner 2460 'ovn.at:5695' \
  "ovn -- tag allocation" "                          " 125
at_xfail=no
(
  $as_echo "2460. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

ovn_start

{ set +x
$as_echo "$at_srcdir/ovn.at:5698: ovn-nbctl ls-add ls0"
at_fn_check_prepare_trace "ovn.at:5698"
( $at_check_trace; ovn-nbctl ls-add ls0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5698"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5699: ovn-nbctl lsp-add ls0 parent1"
at_fn_check_prepare_trace "ovn.at:5699"
( $at_check_trace; ovn-nbctl lsp-add ls0 parent1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5699"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5700: ovn-nbctl lsp-add ls0 parent2"
at_fn_check_prepare_trace "ovn.at:5700"
( $at_check_trace; ovn-nbctl lsp-add ls0 parent2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5700"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5701: ovn-nbctl ls-add ls1"
at_fn_check_prepare_trace "ovn.at:5701"
( $at_check_trace; ovn-nbctl ls-add ls1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5701"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn.at:5704: ovn-nbctl --wait=sb lsp-add ls1 c0 parent1 3"
at_fn_check_prepare_trace "ovn.at:5704"
( $at_check_trace; ovn-nbctl --wait=sb lsp-add ls1 c0 parent1 3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5704"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5705: ovn-nbctl lsp-get-tag c0"
at_fn_check_prepare_trace "ovn.at:5705"
( $at_check_trace; ovn-nbctl lsp-get-tag c0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5705"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5708: ovn-sbctl --data=bare --no-heading --columns=tag find port_binding \\
logical_port=\"c0\""
at_fn_check_prepare_notrace 'an embedded newline' "ovn.at:5708"
( $at_check_trace; ovn-sbctl --data=bare --no-heading --columns=tag find port_binding \
logical_port="c0"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5708"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn.at:5713: ovn-nbctl --wait=sb lsp-add ls1 c1 parent1 0"
at_fn_check_prepare_trace "ovn.at:5713"
( $at_check_trace; ovn-nbctl --wait=sb lsp-add ls1 c1 parent1 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5713"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5714: ovn-nbctl lsp-get-tag c1"
at_fn_check_prepare_trace "ovn.at:5714"
( $at_check_trace; ovn-nbctl lsp-get-tag c1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5714"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5716: ovn-sbctl --data=bare --no-heading --columns=tag find port_binding \\
logical_port=\"c1\""
at_fn_check_prepare_notrace 'an embedded newline' "ovn.at:5716"
( $at_check_trace; ovn-sbctl --data=bare --no-heading --columns=tag find port_binding \
logical_port="c1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5716"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn.at:5720: ovn-nbctl --wait=sb lsp-add ls1 c2 parent1 0"
at_fn_check_prepare_trace "ovn.at:5720"
( $at_check_trace; ovn-nbctl --wait=sb lsp-add ls1 c2 parent1 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5720"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5721: ovn-nbctl lsp-get-tag c2"
at_fn_check_prepare_trace "ovn.at:5721"
( $at_check_trace; ovn-nbctl lsp-get-tag c2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5721"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5723: ovn-sbctl --data=bare --no-heading --columns=tag find port_binding \\
logical_port=\"c2\""
at_fn_check_prepare_notrace 'an embedded newline' "ovn.at:5723"
( $at_check_trace; ovn-sbctl --data=bare --no-heading --columns=tag find port_binding \
logical_port="c2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5723"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5726: ovn-nbctl --wait=sb lsp-add ls1 c3 parent1 0"
at_fn_check_prepare_trace "ovn.at:5726"
( $at_check_trace; ovn-nbctl --wait=sb lsp-add ls1 c3 parent1 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5726"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5727: ovn-nbctl lsp-get-tag c3"
at_fn_check_prepare_trace "ovn.at:5727"
( $at_check_trace; ovn-nbctl lsp-get-tag c3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "4
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5727"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5729: ovn-sbctl --data=bare --no-heading --columns=tag find port_binding \\
logical_port=\"c3\""
at_fn_check_prepare_notrace 'an embedded newline' "ovn.at:5729"
( $at_check_trace; ovn-sbctl --data=bare --no-heading --columns=tag find port_binding \
logical_port="c3"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "4
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5729"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn.at:5734: ovn-nbctl --wait=sb lsp-add ls1 c4 parent2 0"
at_fn_check_prepare_trace "ovn.at:5734"
( $at_check_trace; ovn-nbctl --wait=sb lsp-add ls1 c4 parent2 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5734"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5735: ovn-nbctl lsp-get-tag c4"
at_fn_check_prepare_trace "ovn.at:5735"
( $at_check_trace; ovn-nbctl lsp-get-tag c4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5735"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5737: ovn-sbctl --data=bare --no-heading --columns=tag find port_binding \\
logical_port=\"c4\""
at_fn_check_prepare_notrace 'an embedded newline' "ovn.at:5737"
( $at_check_trace; ovn-sbctl --data=bare --no-heading --columns=tag find port_binding \
logical_port="c4"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5737"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn.at:5741: ovn-nbctl --wait=sb lsp-add ls1 c5 parent2 0"
at_fn_check_prepare_trace "ovn.at:5741"
( $at_check_trace; ovn-nbctl --wait=sb lsp-add ls1 c5 parent2 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5741"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5742: ovn-nbctl lsp-get-tag c5"
at_fn_check_prepare_trace "ovn.at:5742"
( $at_check_trace; ovn-nbctl lsp-get-tag c5
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5742"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5744: ovn-sbctl --data=bare --no-heading --columns=tag find port_binding \\
logical_port=\"c5\""
at_fn_check_prepare_notrace 'an embedded newline' "ovn.at:5744"
( $at_check_trace; ovn-sbctl --data=bare --no-heading --columns=tag find port_binding \
logical_port="c5"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5744"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn.at:5749: ovn-nbctl --wait=sb lsp-del c1"
at_fn_check_prepare_trace "ovn.at:5749"
( $at_check_trace; ovn-nbctl --wait=sb lsp-del c1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5749"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5750: ovn-nbctl --wait=sb lsp-add ls1 c6 parent1 0"
at_fn_check_prepare_trace "ovn.at:5750"
( $at_check_trace; ovn-nbctl --wait=sb lsp-add ls1 c6 parent1 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5750"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5751: ovn-nbctl lsp-get-tag c6"
at_fn_check_prepare_trace "ovn.at:5751"
( $at_check_trace; ovn-nbctl lsp-get-tag c6
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5751"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5753: ovn-sbctl --data=bare --no-heading --columns=tag find port_binding \\
logical_port=\"c6\""
at_fn_check_prepare_notrace 'an embedded newline' "ovn.at:5753"
( $at_check_trace; ovn-sbctl --data=bare --no-heading --columns=tag find port_binding \
logical_port="c6"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5753"
$at_failed && at_fn_log_failure
$at_traceon; }


as northd
{ set +x
$as_echo "$at_srcdir/ovn.at:5759: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:5759"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5759"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5759: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:5759"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5759"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5759: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5759: wait failed" >&5

    $as_echo "ovn.at:5759" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5759"
fi

start_daemon ovn-northd \
    --ovnnb-db=unix:"$ovs_base"/ovn-nb/ovn-nb.sock \
    --ovnsb-db=unix:"$ovs_base"/ovn-sb/ovn-sb.sock

{ set +x
$as_echo "$at_srcdir/ovn.at:5765: ovn-nbctl --wait=sb ls-add ls-dummy"
at_fn_check_prepare_trace "ovn.at:5765"
( $at_check_trace; ovn-nbctl --wait=sb ls-add ls-dummy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5765"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5766: ovn-nbctl lsp-get-tag c0"
at_fn_check_prepare_trace "ovn.at:5766"
( $at_check_trace; ovn-nbctl lsp-get-tag c0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5766"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5768: ovn-nbctl lsp-get-tag c6"
at_fn_check_prepare_trace "ovn.at:5768"
( $at_check_trace; ovn-nbctl lsp-get-tag c6
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5768"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5770: ovn-nbctl lsp-get-tag c2"
at_fn_check_prepare_trace "ovn.at:5770"
( $at_check_trace; ovn-nbctl lsp-get-tag c2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5770"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5772: ovn-nbctl lsp-get-tag c3"
at_fn_check_prepare_trace "ovn.at:5772"
( $at_check_trace; ovn-nbctl lsp-get-tag c3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "4
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5772"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5774: ovn-nbctl lsp-get-tag c4"
at_fn_check_prepare_trace "ovn.at:5774"
( $at_check_trace; ovn-nbctl lsp-get-tag c4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5774"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5776: ovn-nbctl lsp-get-tag c5"
at_fn_check_prepare_trace "ovn.at:5776"
( $at_check_trace; ovn-nbctl lsp-get-tag c5
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5776"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn.at:5781: ovn-nbctl --wait=sb lsp-add ls1 c7 parent2 2"
at_fn_check_prepare_trace "ovn.at:5781"
( $at_check_trace; ovn-nbctl --wait=sb lsp-add ls1 c7 parent2 2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5781"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5782: ovn-nbctl lsp-get-tag c7"
at_fn_check_prepare_trace "ovn.at:5782"
( $at_check_trace; ovn-nbctl lsp-get-tag c7
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5782"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5784: ovn-sbctl --data=bare --no-heading --columns=tag find port_binding \\
logical_port=\"c7\""
at_fn_check_prepare_notrace 'an embedded newline' "ovn.at:5784"
( $at_check_trace; ovn-sbctl --data=bare --no-heading --columns=tag find port_binding \
logical_port="c7"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5784"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5787: ovn-nbctl lsp-get-tag c5"
at_fn_check_prepare_trace "ovn.at:5787"
( $at_check_trace; ovn-nbctl lsp-get-tag c5
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5787"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn.at:5790: ovn-nbctl ls-add ls2"
at_fn_check_prepare_trace "ovn.at:5790"
( $at_check_trace; ovn-nbctl ls-add ls2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5790"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5793: ovn-nbctl --wait=sb lsp-add ls2 local0 \"\" 25"
at_fn_check_prepare_trace "ovn.at:5793"
( $at_check_trace; ovn-nbctl --wait=sb lsp-add ls2 local0 "" 25
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5793"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5794: ovn-nbctl lsp-get-tag local0"
at_fn_check_prepare_trace "ovn.at:5794"
( $at_check_trace; ovn-nbctl lsp-get-tag local0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "25
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5794"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5797: ovn-sbctl --data=bare --no-heading --columns=tag find port_binding \\
logical_port=\"local0\""
at_fn_check_prepare_notrace 'an embedded newline' "ovn.at:5797"
( $at_check_trace; ovn-sbctl --data=bare --no-heading --columns=tag find port_binding \
logical_port="local0"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "25
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5797"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5801: ovn-nbctl --wait=sb lsp-add ls2 local1 \"\" 0"
at_fn_check_prepare_trace "ovn.at:5801"
( $at_check_trace; ovn-nbctl --wait=sb lsp-add ls2 local1 "" 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5801"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5802: ovn-nbctl lsp-get-tag local1"
at_fn_check_prepare_trace "ovn.at:5802"
( $at_check_trace; ovn-nbctl lsp-get-tag local1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5802"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5804: ovn-nbctl --wait=sb  set logical_switch_port local1 tag_request=50"
at_fn_check_prepare_trace "ovn.at:5804"
( $at_check_trace; ovn-nbctl --wait=sb  set logical_switch_port local1 tag_request=50
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5804"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5805: ovn-nbctl lsp-get-tag local1"
at_fn_check_prepare_trace "ovn.at:5805"
( $at_check_trace; ovn-nbctl lsp-get-tag local1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "50
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5805"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2460
#AT_START_2461
at_fn_group_banner 2461 'ovn.at:5810' \
  "ovn -- lsp deletion and broadcast-flow deletion on localnet" "" 125
at_xfail=no
(
  $as_echo "2461. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

ovn_start
ovn-nbctl ls-add lsw0
net_add n1
for i in 1 2; do
    sim_add hv$i
    as hv$i
    ovs-vsctl add-br br-phys
    ovn_attach n1 br-phys 192.168.0.$i
    ovs-vsctl add-br br-eth0
    { set +x
$as_echo "$at_srcdir/ovn.at:5820: ovs-vsctl set Open_vSwitch . external-ids:ovn-bridge-mappings=physnet1:br-eth0"
at_fn_check_prepare_trace "ovn.at:5820"
( $at_check_trace; ovs-vsctl set Open_vSwitch . external-ids:ovn-bridge-mappings=physnet1:br-eth0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5820"
$at_failed && at_fn_log_failure
$at_traceon; }

done

# Create a localnet port.
{ set +x
$as_echo "$at_srcdir/ovn.at:5824: ovn-nbctl lsp-add lsw0 ln_port"
at_fn_check_prepare_trace "ovn.at:5824"
( $at_check_trace; ovn-nbctl lsp-add lsw0 ln_port
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5824"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5825: ovn-nbctl lsp-set-addresses ln_port unknown"
at_fn_check_prepare_trace "ovn.at:5825"
( $at_check_trace; ovn-nbctl lsp-set-addresses ln_port unknown
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5825"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5826: ovn-nbctl lsp-set-type ln_port localnet"
at_fn_check_prepare_trace "ovn.at:5826"
( $at_check_trace; ovn-nbctl lsp-set-type ln_port localnet
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5826"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5827: ovn-nbctl lsp-set-options ln_port network_name=physnet1"
at_fn_check_prepare_trace "ovn.at:5827"
( $at_check_trace; ovn-nbctl lsp-set-options ln_port network_name=physnet1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5827"
$at_failed && at_fn_log_failure
$at_traceon; }



# Create 3 vifs.
{ set +x
$as_echo "$at_srcdir/ovn.at:5831: ovn-nbctl lsp-add lsw0 localvif1"
at_fn_check_prepare_trace "ovn.at:5831"
( $at_check_trace; ovn-nbctl lsp-add lsw0 localvif1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5831"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5832: ovn-nbctl lsp-set-addresses localvif1 \"f0:00:00:00:00:01 192.168.1.1\""
at_fn_check_prepare_trace "ovn.at:5832"
( $at_check_trace; ovn-nbctl lsp-set-addresses localvif1 "f0:00:00:00:00:01 192.168.1.1"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5832"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5833: ovn-nbctl lsp-set-port-security localvif1 \"f0:00:00:00:00:01\""
at_fn_check_prepare_trace "ovn.at:5833"
( $at_check_trace; ovn-nbctl lsp-set-port-security localvif1 "f0:00:00:00:00:01"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5833"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5834: ovn-nbctl lsp-add lsw0 localvif2"
at_fn_check_prepare_trace "ovn.at:5834"
( $at_check_trace; ovn-nbctl lsp-add lsw0 localvif2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5834"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5835: ovn-nbctl lsp-set-addresses localvif2 \"f0:00:00:00:00:01 192.168.1.2\""
at_fn_check_prepare_trace "ovn.at:5835"
( $at_check_trace; ovn-nbctl lsp-set-addresses localvif2 "f0:00:00:00:00:01 192.168.1.2"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5835"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5836: ovn-nbctl lsp-set-port-security localvif2 \"f0:00:00:00:00:02\""
at_fn_check_prepare_trace "ovn.at:5836"
( $at_check_trace; ovn-nbctl lsp-set-port-security localvif2 "f0:00:00:00:00:02"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5836"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5837: ovn-nbctl lsp-add lsw0 localvif3"
at_fn_check_prepare_trace "ovn.at:5837"
( $at_check_trace; ovn-nbctl lsp-add lsw0 localvif3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5837"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5838: ovn-nbctl lsp-set-addresses localvif3 \"f0:00:00:00:00:03 192.168.1.3\""
at_fn_check_prepare_trace "ovn.at:5838"
( $at_check_trace; ovn-nbctl lsp-set-addresses localvif3 "f0:00:00:00:00:03 192.168.1.3"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5838"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:5839: ovn-nbctl lsp-set-port-security localvif3 \"f0:00:00:00:00:03\""
at_fn_check_prepare_trace "ovn.at:5839"
( $at_check_trace; ovn-nbctl lsp-set-port-security localvif3 "f0:00:00:00:00:03"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5839"
$at_failed && at_fn_log_failure
$at_traceon; }


# Bind the localvif1 to hv1.
as hv1
{ set +x
$as_echo "$at_srcdir/ovn.at:5843: ovs-vsctl add-port br-int localvif1 -- set Interface localvif1 external_ids:iface-id=localvif1"
at_fn_check_prepare_trace "ovn.at:5843"
( $at_check_trace; ovs-vsctl add-port br-int localvif1 -- set Interface localvif1 external_ids:iface-id=localvif1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5843"
$at_failed && at_fn_log_failure
$at_traceon; }


# On hv1, check that there are no flows outputting bcast to tunnel
$as_echo "ovn.at:5846: waiting until test \`ovs-ofctl dump-flows br-int table=32 | ofctl_strip | grep output | wc -l\` -eq 0..." >&5
ovs_wait_cond () {
    test `ovs-ofctl dump-flows br-int table=32 | ofctl_strip | grep output | wc -l` -eq 0
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5846: wait failed" >&5

    $as_echo "ovn.at:5846" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5846"
fi


# On hv2, check that no flow outputs bcast to tunnel to hv1.
as hv2
$as_echo "ovn.at:5850: waiting until test \`ovs-ofctl dump-flows br-int table=32 | ofctl_strip | grep output | wc -l\` -eq 0..." >&5
ovs_wait_cond () {
    test `ovs-ofctl dump-flows br-int table=32 | ofctl_strip | grep output | wc -l` -eq 0
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5850: wait failed" >&5

    $as_echo "ovn.at:5850" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5850"
fi


# Now bind vif2 on hv2.
{ set +x
$as_echo "$at_srcdir/ovn.at:5853: ovs-vsctl add-port br-int localvif2 -- set Interface localvif2 external_ids:iface-id=localvif2"
at_fn_check_prepare_trace "ovn.at:5853"
( $at_check_trace; ovs-vsctl add-port br-int localvif2 -- set Interface localvif2 external_ids:iface-id=localvif2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5853"
$at_failed && at_fn_log_failure
$at_traceon; }


# At this point, the broadcast flow on vif2 should be deleted.
# because, there is now a localnet vif bound (table=32 programming logic)
$as_echo "ovn.at:5857: waiting until test \`ovs-ofctl dump-flows br-int table=32 | ofctl_strip | grep output | wc -l\` -eq 0..." >&5
ovs_wait_cond () {
    test `ovs-ofctl dump-flows br-int table=32 | ofctl_strip | grep output | wc -l` -eq 0
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5857: wait failed" >&5

    $as_echo "ovn.at:5857" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5857"
fi


# Verify that the local net patch port exists on hv2.
$as_echo "ovn.at:5860: waiting until test \`ovs-vsctl show | grep \"Port patch-br-int-to-ln_port\" | wc -l\` -eq 1..." >&5
ovs_wait_cond () {
    test `ovs-vsctl show | grep "Port patch-br-int-to-ln_port" | wc -l` -eq 1
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5860: wait failed" >&5

    $as_echo "ovn.at:5860" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5860"
fi


# Now bind vif3 on hv2.
{ set +x
$as_echo "$at_srcdir/ovn.at:5863: ovs-vsctl add-port br-int localvif3 -- set Interface localvif3 external_ids:iface-id=localvif3"
at_fn_check_prepare_trace "ovn.at:5863"
( $at_check_trace; ovs-vsctl add-port br-int localvif3 -- set Interface localvif3 external_ids:iface-id=localvif3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5863"
$at_failed && at_fn_log_failure
$at_traceon; }


# Verify that the local net patch port still exists on hv2
$as_echo "ovn.at:5866: waiting until test \`ovs-vsctl show | grep \"Port patch-br-int-to-ln_port\" | wc -l\` -eq 1..." >&5
ovs_wait_cond () {
    test `ovs-vsctl show | grep "Port patch-br-int-to-ln_port" | wc -l` -eq 1
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5866: wait failed" >&5

    $as_echo "ovn.at:5866" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5866"
fi


# Delete localvif2
{ set +x
$as_echo "$at_srcdir/ovn.at:5869: ovn-nbctl lsp-del localvif2"
at_fn_check_prepare_trace "ovn.at:5869"
( $at_check_trace; ovn-nbctl lsp-del localvif2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5869"
$at_failed && at_fn_log_failure
$at_traceon; }


# Verify that the local net patch port still exists on hv2,
# because, localvif3 is still bound.
$as_echo "ovn.at:5873: waiting until test \`ovs-vsctl show | grep \"Port patch-br-int-to-ln_port\" | wc -l\` -eq 1..." >&5
ovs_wait_cond () {
    test `ovs-vsctl show | grep "Port patch-br-int-to-ln_port" | wc -l` -eq 1
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5873: wait failed" >&5

    $as_echo "ovn.at:5873" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5873"
fi





    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:5875: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:5875"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5875"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5875: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:5875"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5875"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5875: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5875: wait failed" >&5

    $as_echo "ovn.at:5875" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5875"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:5875: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:5875"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5875"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5875: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:5875"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5875"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5875: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5875: wait failed" >&5

    $as_echo "ovn.at:5875" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5875"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:5875: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:5875"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5875"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5875: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:5875"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5875"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5875: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5875: wait failed" >&5

    $as_echo "ovn.at:5875" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5875"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:5875: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:5875"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5875"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5875: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:5875"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5875"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5875: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5875: wait failed" >&5

    $as_echo "ovn.at:5875" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5875"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:5875: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5875"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5875"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5875: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5875"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5875"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5875: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5875: wait failed" >&5

    $as_echo "ovn.at:5875" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5875"
fi





    as hv2
    if test "hv2" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:5875: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:5875"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5875"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5875: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:5875"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5875"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5875: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5875: wait failed" >&5

    $as_echo "ovn.at:5875" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5875"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:5875: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:5875"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5875"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5875: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:5875"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5875"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5875: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5875: wait failed" >&5

    $as_echo "ovn.at:5875" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5875"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:5875: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:5875"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5875"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5875: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:5875"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5875"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5875: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5875: wait failed" >&5

    $as_echo "ovn.at:5875" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5875"
fi

    fi

    as hv2
    { set +x
$as_echo "$at_srcdir/ovn.at:5875: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:5875"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5875"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5875: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:5875"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5875"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5875: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5875: wait failed" >&5

    $as_echo "ovn.at:5875" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5875"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:5875: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5875"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5875"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5875: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5875"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5875"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5875: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5875: wait failed" >&5

    $as_echo "ovn.at:5875" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5875"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:5875: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5875"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5875"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5875: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5875"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5875"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5875: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5875: wait failed" >&5

    $as_echo "ovn.at:5875" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5875"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:5875: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5875"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5875"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5875: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5875"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5875"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5875: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5875: wait failed" >&5

    $as_echo "ovn.at:5875" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5875"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:5875: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:5875"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5875"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5875: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:5875"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5875"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5875: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5875: wait failed" >&5

    $as_echo "ovn.at:5875" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5875"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:5875: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:5875"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5875"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5875: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:5875"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5875"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5875: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5875: wait failed" >&5

    $as_echo "ovn.at:5875" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5875"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:5875: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:5875"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5875"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5875: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:5875"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5875"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5875: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5875: wait failed" >&5

    $as_echo "ovn.at:5875" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5875"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:5875: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5875"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5875"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5875: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5875"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5875"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5875: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5875: wait failed" >&5

    $as_echo "ovn.at:5875" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5875"
fi




  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2461
#AT_START_2462
at_fn_group_banner 2462 'ovn.at:5880' \
  "ovn -- ACL logging" "                             " 125
at_xfail=no
(
  $as_echo "2462. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ovn_start

net_add n1

sim_add hv
as hv
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.1
for i in lp1 lp2; do
    ovs-vsctl -- add-port br-int $i -- \
        set interface $i external-ids:iface-id=$i \
        options:tx_pcap=hv/$i-tx.pcap \
        options:rxq_pcap=hv/$i-rx.pcap
done

lp1_mac="f0:00:00:00:00:01"
lp1_ip="192.168.1.2"

lp2_mac="f0:00:00:00:00:02"
lp2_ip="192.168.1.3"

ovn-nbctl ls-add lsw0
ovn-nbctl --wait=sb lsp-add lsw0 lp1
ovn-nbctl --wait=sb lsp-add lsw0 lp2
ovn-nbctl lsp-set-addresses lp1 $lp1_mac
ovn-nbctl lsp-set-addresses lp2 $lp2_mac
ovn-nbctl --wait=sb sync

ovn-nbctl acl-add lsw0 to-lport 1000 'tcp.dst==80' drop
ovn-nbctl --log --severity=alert --name=drop-flow acl-add lsw0 to-lport 1000 'tcp.dst==81' drop

ovn-nbctl acl-add lsw0 to-lport 1000 'tcp.dst==82' allow
ovn-nbctl --log --severity=info --name=allow-flow acl-add lsw0 to-lport 1000 'tcp.dst==83' allow

ovn-nbctl acl-add lsw0 to-lport 1000 'tcp.dst==84' allow-related
ovn-nbctl --log acl-add lsw0 to-lport 1000 'tcp.dst==85' allow-related

ovn-nbctl acl-add lsw0 to-lport 1000 'tcp.dst==86' reject
ovn-nbctl --log --severity=alert --name=reject-flow acl-add lsw0 to-lport 1000 'tcp.dst==87' reject

ovn-sbctl dump-flows


# Send packet that should be dropped without logging.
packet="inport==\"lp1\" && eth.src==$lp1_mac && eth.dst==$lp2_mac &&
        ip4 && ip.ttl==64 && ip4.src==$lp1_ip && ip4.dst==$lp2_ip &&
        tcp && tcp.flags==2 && tcp.src==4360 && tcp.dst==80"
as hv ovs-appctl -t ovn-controller inject-pkt "$packet"

# Send packet that should be dropped with logging.
packet="inport==\"lp1\" && eth.src==$lp1_mac && eth.dst==$lp2_mac &&
        ip4 && ip.ttl==64 && ip4.src==$lp1_ip && ip4.dst==$lp2_ip &&
        tcp && tcp.flags==2 && tcp.src==4361 && tcp.dst==81"
as hv ovs-appctl -t ovn-controller inject-pkt "$packet"

# Send packet that should be allowed without logging.
packet="inport==\"lp1\" && eth.src==$lp1_mac && eth.dst==$lp2_mac &&
        ip4 && ip.ttl==64 && ip4.src==$lp1_ip && ip4.dst==$lp2_ip &&
        tcp && tcp.flags==2 && tcp.src==4362 && tcp.dst==82"
as hv ovs-appctl -t ovn-controller inject-pkt "$packet"

# Send packet that should be allowed with logging.
packet="inport==\"lp1\" && eth.src==$lp1_mac && eth.dst==$lp2_mac &&
        ip4 && ip.ttl==64 && ip4.src==$lp1_ip && ip4.dst==$lp2_ip &&
        tcp && tcp.flags==2 && tcp.src==4363 && tcp.dst==83"
as hv ovs-appctl -t ovn-controller inject-pkt "$packet"

# Send packet that should allow related flows without logging.
packet="inport==\"lp1\" && eth.src==$lp1_mac && eth.dst==$lp2_mac &&
        ip4 && ip.ttl==64 && ip4.src==$lp1_ip && ip4.dst==$lp2_ip &&
        tcp && tcp.flags==2 && tcp.src==4364 && tcp.dst==84"
as hv ovs-appctl -t ovn-controller inject-pkt "$packet"

# Send packet that should allow related flows with logging.
packet="inport==\"lp1\" && eth.src==$lp1_mac && eth.dst==$lp2_mac &&
        ip4 && ip.ttl==64 && ip4.src==$lp1_ip && ip4.dst==$lp2_ip &&
        tcp && tcp.flags==2 && tcp.src==4365 && tcp.dst==85"
as hv ovs-appctl -t ovn-controller inject-pkt "$packet"

# Send packet that should be rejected without logging.
packet="inport==\"lp1\" && eth.src==$lp1_mac && eth.dst==$lp2_mac &&
        ip4 && ip.ttl==64 && ip4.src==$lp1_ip && ip4.dst==$lp2_ip &&
        tcp && tcp.flags==2 && tcp.src==4366 && tcp.dst==86"
as hv ovs-appctl -t ovn-controller inject-pkt "$packet"

# Send packet that should be rejected with logging.
packet="inport==\"lp1\" && eth.src==$lp1_mac && eth.dst==$lp2_mac &&
        ip4 && ip.ttl==64 && ip4.src==$lp1_ip && ip4.dst==$lp2_ip &&
        tcp && tcp.flags==2 && tcp.src==4367 && tcp.dst==87"
as hv ovs-appctl -t ovn-controller inject-pkt "$packet"

$as_echo "ovn.at:5973: waiting until  test 4 = \$(grep -c 'acl_log' hv/ovn-controller.log) ..." >&5
ovs_wait_cond () {
     test 4 = $(grep -c 'acl_log' hv/ovn-controller.log)
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5973: wait failed" >&5

    $as_echo "ovn.at:5973" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5973"
fi


{ set +x
$as_echo "$at_srcdir/ovn.at:5975: grep 'acl_log' hv/ovn-controller.log | sed 's/.*name=/name=/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:5975"
( $at_check_trace; grep 'acl_log' hv/ovn-controller.log | sed 's/.*name=/name=/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "name=\"drop-flow\", verdict=drop, severity=alert: tcp,vlan_tci=0x0000,dl_src=f0:00:00:00:00:01,dl_dst=f0:00:00:00:00:02,nw_src=192.168.1.2,nw_dst=192.168.1.3,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=4361,tp_dst=81,tcp_flags=syn
name=\"allow-flow\", verdict=allow, severity=info: tcp,vlan_tci=0x0000,dl_src=f0:00:00:00:00:01,dl_dst=f0:00:00:00:00:02,nw_src=192.168.1.2,nw_dst=192.168.1.3,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=4363,tp_dst=83,tcp_flags=syn
name=\"<unnamed>\", verdict=allow, severity=info: tcp,vlan_tci=0x0000,dl_src=f0:00:00:00:00:01,dl_dst=f0:00:00:00:00:02,nw_src=192.168.1.2,nw_dst=192.168.1.3,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=4365,tp_dst=85,tcp_flags=syn
name=\"reject-flow\", verdict=reject, severity=alert: tcp,vlan_tci=0x0000,dl_src=f0:00:00:00:00:01,dl_dst=f0:00:00:00:00:02,nw_src=192.168.1.2,nw_dst=192.168.1.3,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=4367,tp_dst=87,tcp_flags=syn
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5975"
$at_failed && at_fn_log_failure
$at_traceon; }





    as hv
    if test "hv" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:5982: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:5982"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5982"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5982: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:5982"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5982"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5982: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5982: wait failed" >&5

    $as_echo "ovn.at:5982" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5982"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:5982: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:5982"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5982"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5982: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:5982"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5982"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5982: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5982: wait failed" >&5

    $as_echo "ovn.at:5982" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5982"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:5982: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:5982"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5982"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5982: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:5982"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5982"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5982: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5982: wait failed" >&5

    $as_echo "ovn.at:5982" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5982"
fi

    fi

    as hv
    { set +x
$as_echo "$at_srcdir/ovn.at:5982: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:5982"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5982"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5982: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:5982"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5982"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5982: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5982: wait failed" >&5

    $as_echo "ovn.at:5982" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5982"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:5982: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5982"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5982"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5982: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5982"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5982"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5982: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5982: wait failed" >&5

    $as_echo "ovn.at:5982" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5982"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:5982: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5982"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5982"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5982: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5982"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5982"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5982: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5982: wait failed" >&5

    $as_echo "ovn.at:5982" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5982"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:5982: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5982"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5982"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5982: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5982"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5982"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5982: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5982: wait failed" >&5

    $as_echo "ovn.at:5982" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5982"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:5982: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:5982"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5982"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5982: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:5982"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5982"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5982: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5982: wait failed" >&5

    $as_echo "ovn.at:5982" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5982"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:5982: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:5982"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5982"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5982: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:5982"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5982"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5982: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5982: wait failed" >&5

    $as_echo "ovn.at:5982" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5982"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:5982: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:5982"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5982"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5982: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:5982"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5982"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5982: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5982: wait failed" >&5

    $as_echo "ovn.at:5982" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5982"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:5982: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:5982"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5982"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:5982: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:5982"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:5982"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:5982: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:5982: wait failed" >&5

    $as_echo "ovn.at:5982" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:5982"
fi



  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2462
#AT_START_2463
at_fn_group_banner 2463 'ovn.at:5986' \
  "ovn -- DSCP marking and meter check" "            " 125
at_xfail=no
(
  $as_echo "2463. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ovn_start

ovn-nbctl ls-add lsw0
ovn-nbctl --wait=sb lsp-add lsw0 lp1
ovn-nbctl --wait=sb lsp-add lsw0 lp2
ovn-nbctl lsp-set-addresses lp1 f0:00:00:00:00:01
ovn-nbctl lsp-set-addresses lp2 f0:00:00:00:00:02
ovn-nbctl lsp-set-port-security lp1 f0:00:00:00:00:01
ovn-nbctl lsp-set-port-security lp2 f0:00:00:00:00:02
ovn-nbctl --wait=sb sync
net_add n1
sim_add hv
as hv
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.1
ovs-vsctl add-port br-int vif1 -- set Interface vif1 external-ids:iface-id=lp1 options:tx_pcap=vif1-tx.pcap options:rxq_pcap=vif1-rx.pcap ofport-request=1
ovs-vsctl add-port br-int vif2 -- set Interface vif2 external-ids:iface-id=lp2 options:tx_pcap=vif2-tx.pcap options:rxq_pcap=vif2-rx.pcap ofport-request=2


ovn_trace () {
    ovn-trace --all "$@" | tee trace | sed '1,/Minimal trace/d'
}

# Extracts nw_tos from the final flow from ofproto/trace output and prints
# it on stdout.  Prints "none" if no nw_tos was included.
get_final_nw_tos() {
    if flow=$(grep '^Final flow:' stdout); then :; else
       # The output didn't have a final flow.
       return 99
    fi

    tos=$(echo "$flow" | sed -n 's/.*nw_tos=\([0-9]\{1,\}\).*/\1/p')
    case $tos in
        '') echo none ;;
	*) echo $tos ;;
    esac
}

# check_tos TOS
#
# Checks that a packet from 1.1.1.1 to 1.1.1.2 gets its DSCP set to TOS.
check_tos() {
    # First check with ovn-trace for logical flows.
    echo "checking for tos $1"
    (if test $1 != 0; then echo "ip.dscp = $1;"; fi;
     echo 'output("lp2");') > expout
    { set +x
$as_echo "$at_srcdir/ovn.at:6034: ovn_trace lsw0 'inport == \"lp1\" && eth.src == f0:00:00:00:00:01 && eth.dst == f0:00:00:00:00:02 && ip4.src == 1.1.1.1 && ip4.dst == 1.1.1.2'"
at_fn_check_prepare_trace "ovn.at:6034"
( $at_check_trace; ovn_trace lsw0 'inport == "lp1" && eth.src == f0:00:00:00:00:01 && eth.dst == f0:00:00:00:00:02 && ip4.src == 1.1.1.1 && ip4.dst == 1.1.1.2'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6034"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }


    # Then re-check with ofproto/trace for a physical packet.
    { set +x
$as_echo "$at_srcdir/ovn.at:6037: ovs-appctl ofproto/trace br-int 'in_port=1,dl_src=f0:00:00:00:00:01,dl_dst=f0:00:00:00:00:02,dl_type=0x800,nw_src=1.1.1.1,nw_dst=1.1.1.2'"
at_fn_check_prepare_trace "ovn.at:6037"
( $at_check_trace; ovs-appctl ofproto/trace br-int 'in_port=1,dl_src=f0:00:00:00:00:01,dl_dst=f0:00:00:00:00:02,dl_type=0x800,nw_src=1.1.1.1,nw_dst=1.1.1.2'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout captured; cp "$at_stdout" stdout
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6037"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

    { set +x
$as_echo "$at_srcdir/ovn.at:6038: get_final_nw_tos"
at_fn_check_prepare_trace "ovn.at:6038"
( $at_check_trace; get_final_nw_tos
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "`expr $1 \* 4`
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6038"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

}

# check at L2
{ set +x
$as_echo "$at_srcdir/ovn.at:6043: ovn_trace lsw0 'inport == \"lp1\" && eth.src == f0:00:00:00:00:01 && eth.dst == f0:00:00:00:00:02'"
at_fn_check_prepare_trace "ovn.at:6043"
( $at_check_trace; ovn_trace lsw0 'inport == "lp1" && eth.src == f0:00:00:00:00:01 && eth.dst == f0:00:00:00:00:02'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "output(\"lp2\");
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6043"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:6045: ovs-appctl ofproto/trace br-int 'in_port=1,dl_src=f0:00:00:00:00:01,dl_dst=f0:00:00:00:00:02'"
at_fn_check_prepare_trace "ovn.at:6045"
( $at_check_trace; ovs-appctl ofproto/trace br-int 'in_port=1,dl_src=f0:00:00:00:00:01,dl_dst=f0:00:00:00:00:02'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout captured; cp "$at_stdout" stdout
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6045"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:6046: get_final_nw_tos"
at_fn_check_prepare_trace "ovn.at:6046"
( $at_check_trace; get_final_nw_tos
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "none
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6046"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }


# check at L3 without dscp marking
check_tos 0

# Mark DSCP with a valid value
qos_id=$(ovn-nbctl --wait=hv -- --id=@lp1-qos create QoS priority=100 action=dscp=48 match="inport\=\=\"lp1\"" direction="from-lport" -- set Logical_Switch lsw0 qos_rules=@lp1-qos)
check_tos 48

# check at hv without qos meter
{ set +x
$as_echo "$at_srcdir/ovn.at:6057: as hv ovs-ofctl dump-flows br-int -O OpenFlow13 | grep meter | wc -l"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:6057"
( $at_check_trace; as hv ovs-ofctl dump-flows br-int -O OpenFlow13 | grep meter | wc -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6057"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }


# Update the meter rate
ovn-nbctl --wait=hv set QoS $qos_id bandwidth=rate=100

# check at hv with a qos meter table
{ set +x
$as_echo "$at_srcdir/ovn.at:6064: as hv ovs-ofctl dump-meters br-int -O OpenFlow13 | grep rate=100 | wc -l"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:6064"
( $at_check_trace; as hv ovs-ofctl dump-meters br-int -O OpenFlow13 | grep rate=100 | wc -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6064"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:6066: as hv ovs-ofctl dump-flows br-int -O OpenFlow13 | grep meter | wc -l"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:6066"
( $at_check_trace; as hv ovs-ofctl dump-flows br-int -O OpenFlow13 | grep meter | wc -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6066"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }


# Update the DSCP marking
ovn-nbctl --wait=hv set QoS $qos_id action=dscp=63
check_tos 63

# Update the meter rate
ovn-nbctl --wait=hv set QoS $qos_id bandwidth=rate=4294967295,burst=4294967295

# check at hv with a qos meter table
{ set +x
$as_echo "$at_srcdir/ovn.at:6077: as hv ovs-ofctl dump-meters br-int -O OpenFlow13 | grep burst_size=4294967295 | wc -l"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:6077"
( $at_check_trace; as hv ovs-ofctl dump-meters br-int -O OpenFlow13 | grep burst_size=4294967295 | wc -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6077"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:6079: as hv ovs-ofctl dump-flows br-int -O OpenFlow13 | grep meter | wc -l"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:6079"
( $at_check_trace; as hv ovs-ofctl dump-flows br-int -O OpenFlow13 | grep meter | wc -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6079"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }


ovn-nbctl --wait=hv set QoS $qos_id match="outport\=\=\"lp2\"" direction="to-lport"
check_tos 63

# Disable DSCP marking
ovn-nbctl --wait=hv clear Logical_Switch lsw0 qos_rules
check_tos 0

# check at hv without qos meter
{ set +x
$as_echo "$at_srcdir/ovn.at:6090: as hv ovs-ofctl dump-flows br-int -O OpenFlow13 | grep meter | wc -l"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:6090"
( $at_check_trace; as hv ovs-ofctl dump-flows br-int -O OpenFlow13 | grep meter | wc -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6090"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }





    as hv
    if test "hv" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:6093: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:6093"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6093"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6093: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:6093"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6093"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:6093: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6093: wait failed" >&5

    $as_echo "ovn.at:6093" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6093"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:6093: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:6093"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6093"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6093: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:6093"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6093"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:6093: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6093: wait failed" >&5

    $as_echo "ovn.at:6093" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6093"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:6093: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:6093"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6093"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6093: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:6093"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6093"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:6093: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6093: wait failed" >&5

    $as_echo "ovn.at:6093" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6093"
fi

    fi

    as hv
    { set +x
$as_echo "$at_srcdir/ovn.at:6093: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:6093"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6093"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6093: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:6093"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6093"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:6093: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6093: wait failed" >&5

    $as_echo "ovn.at:6093" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6093"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:6093: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:6093"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6093"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6093: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:6093"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6093"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:6093: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6093: wait failed" >&5

    $as_echo "ovn.at:6093" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6093"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:6093: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:6093"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6093"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6093: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:6093"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6093"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:6093: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6093: wait failed" >&5

    $as_echo "ovn.at:6093" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6093"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:6093: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:6093"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6093"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6093: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:6093"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6093"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:6093: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6093: wait failed" >&5

    $as_echo "ovn.at:6093" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6093"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:6093: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:6093"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6093"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6093: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:6093"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6093"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:6093: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6093: wait failed" >&5

    $as_echo "ovn.at:6093" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6093"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:6093: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:6093"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6093"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6093: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:6093"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6093"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:6093: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6093: wait failed" >&5

    $as_echo "ovn.at:6093" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6093"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:6093: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:6093"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6093"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6093: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:6093"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6093"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:6093: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6093: wait failed" >&5

    $as_echo "ovn.at:6093" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6093"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:6093: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:6093"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6093"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6093: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:6093"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6093"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:6093: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6093: wait failed" >&5

    $as_echo "ovn.at:6093" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6093"
fi



  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2463
#AT_START_2464
at_fn_group_banner 2464 'ovn.at:6096' \
  "ovn -- read-only sb db:ptcp access" "             " 125
at_xfail=no
(
  $as_echo "2464. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn.at:6097" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:6097"

: > .$1.db.~lock~
ovsdb-tool create ovn-sb.db "$abs_top_srcdir"/ovn/ovn-sb.ovsschema

# Add read-only remote to sb ovsdb-server
{ set +x
$as_echo "$at_srcdir/ovn.at:6103: ovsdb-tool transact ovn-sb.db \\
     '[\"OVN_Southbound\",
       {\"op\": \"insert\",
        \"table\": \"SB_Global\",
        \"row\": {
          \"connections\": [\"set\", [[\"named-uuid\", \"xyz\"]]]}},
       {\"op\": \"insert\",
        \"table\": \"Connection\",
        \"uuid-name\": \"xyz\",
        \"row\": {\"target\": \"ptcp:0:127.0.0.1\",
               \"read_only\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn.at:6103"
( $at_check_trace; ovsdb-tool transact ovn-sb.db \
     '["OVN_Southbound",
       {"op": "insert",
        "table": "SB_Global",
        "row": {
          "connections": ["set", [["named-uuid", "xyz"]]]}},
       {"op": "insert",
        "table": "Connection",
        "uuid-name": "xyz",
        "row": {"target": "ptcp:0:127.0.0.1",
               "read_only": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6103"
$at_failed && at_fn_log_failure
$at_traceon; }


start_daemon ovsdb-server --remote=punix:ovn-sb.sock --remote=db:OVN_Southbound,SB_Global,connections ovn-sb.db

$as_echo "ovn.at:6118: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6118: wait failed" >&5

    $as_echo "ovn.at:6118" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6118"
fi


# read-only accesses should succeed
{ set +x
$as_echo "$at_srcdir/ovn.at:6121: ovn-sbctl --db=tcp:127.0.0.1:\$TCP_PORT list SB_Global"
at_fn_check_prepare_dynamic "ovn-sbctl --db=tcp:127.0.0.1:$TCP_PORT list SB_Global" "ovn.at:6121"
( $at_check_trace; ovn-sbctl --db=tcp:127.0.0.1:$TCP_PORT list SB_Global
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6121"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:6122: ovn-sbctl --db=tcp:127.0.0.1:\$TCP_PORT list Connection"
at_fn_check_prepare_dynamic "ovn-sbctl --db=tcp:127.0.0.1:$TCP_PORT list Connection" "ovn.at:6122"
( $at_check_trace; ovn-sbctl --db=tcp:127.0.0.1:$TCP_PORT list Connection
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6122"
$at_failed && at_fn_log_failure
$at_traceon; }


# write access should fail
{ set +x
$as_echo "$at_srcdir/ovn.at:6125: ovn-sbctl --db=tcp:127.0.0.1:\$TCP_PORT chassis-add ch vxlan 1.2.4.8"
at_fn_check_prepare_dynamic "ovn-sbctl --db=tcp:127.0.0.1:$TCP_PORT chassis-add ch vxlan 1.2.4.8" "ovn.at:6125"
( $at_check_trace; ovn-sbctl --db=tcp:127.0.0.1:$TCP_PORT chassis-add ch vxlan 1.2.4.8
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-sbctl: transaction error: {\"details\":\"insert operation not allowed when database server is in read only mode\",\"error\":\"not allowed\"}
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/ovn.at:6125"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn.at:6129: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:6129"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6129"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6129: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:6129"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6129"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:6129: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6129: wait failed" >&5

    $as_echo "ovn.at:6129" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6129"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2464
#AT_START_2465
at_fn_group_banner 2465 'ovn.at:6132' \
  "ovn -- read-only sb db:pssl access" "             " 125
at_xfail=no
(
  $as_echo "2465. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn.at:6133" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:6133"
$as_echo "ovn.at:6134" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:6134"
PKIDIR="$(cd $abs_top_builddir/tests && pwd)"
$as_echo "ovn.at:6136" >"$at_check_line_file"
(expr "$PKIDIR" : ".* 	'\"
\\") \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:6136"

: > .$1.db.~lock~
ovsdb-tool create ovn-sb.db "$abs_top_srcdir"/ovn/ovn-sb.ovsschema

# Add read-only remote to sb ovsdb-server
{ set +x
$as_echo "$at_srcdir/ovn.at:6143: ovsdb-tool transact ovn-sb.db \\
     '[\"OVN_Southbound\",
       {\"op\": \"insert\",
        \"table\": \"SB_Global\",
        \"row\": {
          \"connections\": [\"set\", [[\"named-uuid\", \"xyz\"]]]}},
       {\"op\": \"insert\",
        \"table\": \"Connection\",
        \"uuid-name\": \"xyz\",
        \"row\": {\"target\": \"pssl:0:127.0.0.1\",
               \"read_only\": true}}]'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn.at:6143"
( $at_check_trace; ovsdb-tool transact ovn-sb.db \
     '["OVN_Southbound",
       {"op": "insert",
        "table": "SB_Global",
        "row": {
          "connections": ["set", [["named-uuid", "xyz"]]]}},
       {"op": "insert",
        "table": "Connection",
        "uuid-name": "xyz",
        "row": {"target": "pssl:0:127.0.0.1",
               "read_only": true}}]'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6143"
$at_failed && at_fn_log_failure
$at_traceon; }


start_daemon ovsdb-server --remote=punix:ovn-sb.sock \
                          --remote=db:OVN_Southbound,SB_Global,connections \
                          --private-key="$PKIDIR/testpki-privkey2.pem" \
                          --certificate="$PKIDIR/testpki-cert2.pem" \
                          --ca-cert="$PKIDIR/testpki-cacert.pem" \
                          ovn-sb.db

$as_echo "ovn.at:6163: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6163: wait failed" >&5

    $as_echo "ovn.at:6163" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6163"
fi


# read-only accesses should succeed
{ set +x
$as_echo "$at_srcdir/ovn.at:6166: ovn-sbctl --db=ssl:127.0.0.1:\$TCP_PORT \\
                    --private-key=\$PKIDIR/testpki-privkey.pem \\
                    --certificate=\$PKIDIR/testpki-cert.pem \\
                    --ca-cert=\$PKIDIR/testpki-cacert.pem \\
                    list SB_Global"
at_fn_check_prepare_notrace 'an embedded newline' "ovn.at:6166"
( $at_check_trace; ovn-sbctl --db=ssl:127.0.0.1:$TCP_PORT \
                    --private-key=$PKIDIR/testpki-privkey.pem \
                    --certificate=$PKIDIR/testpki-cert.pem \
                    --ca-cert=$PKIDIR/testpki-cacert.pem \
                    list SB_Global
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6166"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:6171: ovn-sbctl --db=ssl:127.0.0.1:\$TCP_PORT \\
                    --private-key=\$PKIDIR/testpki-privkey.pem \\
                    --certificate=\$PKIDIR/testpki-cert.pem \\
                    --ca-cert=\$PKIDIR/testpki-cacert.pem \\
                    list Connection"
at_fn_check_prepare_notrace 'an embedded newline' "ovn.at:6171"
( $at_check_trace; ovn-sbctl --db=ssl:127.0.0.1:$TCP_PORT \
                    --private-key=$PKIDIR/testpki-privkey.pem \
                    --certificate=$PKIDIR/testpki-cert.pem \
                    --ca-cert=$PKIDIR/testpki-cacert.pem \
                    list Connection
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6171"
$at_failed && at_fn_log_failure
$at_traceon; }


# write access should fail
{ set +x
$as_echo "$at_srcdir/ovn.at:6178: ovn-sbctl --db=ssl:127.0.0.1:\$TCP_PORT \\
                    --private-key=\$PKIDIR/testpki-privkey.pem \\
                    --certificate=\$PKIDIR/testpki-cert.pem \\
                    --ca-cert=\$PKIDIR/testpki-cacert.pem \\
                    chassis-add ch vxlan 1.2.4.8"
at_fn_check_prepare_notrace 'an embedded newline' "ovn.at:6178"
( $at_check_trace; ovn-sbctl --db=ssl:127.0.0.1:$TCP_PORT \
                    --private-key=$PKIDIR/testpki-privkey.pem \
                    --certificate=$PKIDIR/testpki-cert.pem \
                    --ca-cert=$PKIDIR/testpki-cacert.pem \
                    chassis-add ch vxlan 1.2.4.8
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-sbctl: transaction error: {\"details\":\"insert operation not allowed when database server is in read only mode\",\"error\":\"not allowed\"}
" | \
  $at_diff - "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/ovn.at:6178"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn.at:6186: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:6186"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6186"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6186: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:6186"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6186"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:6186: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6186: wait failed" >&5

    $as_echo "ovn.at:6186" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6186"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2465
#AT_START_2466
at_fn_group_banner 2466 'ovn.at:6189' \
  "ovn -- nb connection/ssl commands" "              " 125
at_xfail=no
(
  $as_echo "2466. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn.at:6190" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:6190"
$as_echo "ovn.at:6191" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:6191"
PKIDIR="$(cd $abs_top_builddir/tests && pwd)"
$as_echo "ovn.at:6193" >"$at_check_line_file"
(expr "$PKIDIR" : ".* 	'\"
\\") \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:6193"

: > .$1.db.~lock~
ovsdb-tool create ovn-nb.db "$abs_top_srcdir"/ovn/ovn-nb.ovsschema

# Start nb db server using db connection/ssl entries (unpopulated initially)
start_daemon ovsdb-server --remote=punix:ovnnb_db.sock \
                          --remote=db:OVN_Northbound,NB_Global,connections \
                          --private-key=db:OVN_Northbound,SSL,private_key \
                          --certificate=db:OVN_Northbound,SSL,certificate \
                          --ca-cert=db:OVN_Northbound,SSL,ca_cert \
                          ovn-nb.db

# Populate SSL configuration entries in nb db
{ set +x
$as_echo "$at_srcdir/ovn.at:6208: ovn-nbctl set-ssl \$PKIDIR/testpki-privkey.pem \\
                       \$PKIDIR/testpki-cert.pem \\
                       \$PKIDIR/testpki-cacert.pem"
at_fn_check_prepare_notrace 'an embedded newline' "ovn.at:6208"
( $at_check_trace; ovn-nbctl set-ssl $PKIDIR/testpki-privkey.pem \
                       $PKIDIR/testpki-cert.pem \
                       $PKIDIR/testpki-cacert.pem
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6208"
$at_failed && at_fn_log_failure
$at_traceon; }


# Populate a passive SSL connection in nb db
{ set +x
$as_echo "$at_srcdir/ovn.at:6214: ovn-nbctl set-connection pssl:0:127.0.0.1"
at_fn_check_prepare_trace "ovn.at:6214"
( $at_check_trace; ovn-nbctl set-connection pssl:0:127.0.0.1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6214"
$at_failed && at_fn_log_failure
$at_traceon; }


$as_echo "ovn.at:6216: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6216: wait failed" >&5

    $as_echo "ovn.at:6216" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6216"
fi


# Verify SSL connetivity to nb db server
{ set +x
$as_echo "$at_srcdir/ovn.at:6219: ovn-nbctl --db=ssl:127.0.0.1:\$TCP_PORT \\
                    --private-key=\$PKIDIR/testpki-privkey.pem \\
                    --certificate=\$PKIDIR/testpki-cert.pem \\
                    --ca-cert=\$PKIDIR/testpki-cacert.pem \\
          list NB_Global"
at_fn_check_prepare_notrace 'an embedded newline' "ovn.at:6219"
( $at_check_trace; ovn-nbctl --db=ssl:127.0.0.1:$TCP_PORT \
                    --private-key=$PKIDIR/testpki-privkey.pem \
                    --certificate=$PKIDIR/testpki-cert.pem \
                    --ca-cert=$PKIDIR/testpki-cacert.pem \
          list NB_Global
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6219"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:6225: ovn-nbctl --db=ssl:127.0.0.1:\$TCP_PORT \\
                    --private-key=\$PKIDIR/testpki-privkey.pem \\
                    --certificate=\$PKIDIR/testpki-cert.pem \\
                    --ca-cert=\$PKIDIR/testpki-cacert.pem \\
          list Connection"
at_fn_check_prepare_notrace 'an embedded newline' "ovn.at:6225"
( $at_check_trace; ovn-nbctl --db=ssl:127.0.0.1:$TCP_PORT \
                    --private-key=$PKIDIR/testpki-privkey.pem \
                    --certificate=$PKIDIR/testpki-cert.pem \
                    --ca-cert=$PKIDIR/testpki-cacert.pem \
          list Connection
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6225"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:6231: ovn-nbctl --db=ssl:127.0.0.1:\$TCP_PORT \\
                    --private-key=\$PKIDIR/testpki-privkey.pem \\
                    --certificate=\$PKIDIR/testpki-cert.pem \\
                    --ca-cert=\$PKIDIR/testpki-cacert.pem \\
          get-connection"
at_fn_check_prepare_notrace 'an embedded newline' "ovn.at:6231"
( $at_check_trace; ovn-nbctl --db=ssl:127.0.0.1:$TCP_PORT \
                    --private-key=$PKIDIR/testpki-privkey.pem \
                    --certificate=$PKIDIR/testpki-cert.pem \
                    --ca-cert=$PKIDIR/testpki-cacert.pem \
          get-connection
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6231"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn.at:6238: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:6238"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6238"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6238: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:6238"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6238"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:6238: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6238: wait failed" >&5

    $as_echo "ovn.at:6238" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6238"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2466
#AT_START_2467
at_fn_group_banner 2467 'ovn.at:6241' \
  "ovn -- sb connection/ssl commands" "              " 125
at_xfail=no
(
  $as_echo "2467. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn.at:6242" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:6242"
$as_echo "ovn.at:6243" >"$at_check_line_file"
(test "$HAVE_OPENSSL" = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:6243"
PKIDIR="$(cd $abs_top_builddir/tests && pwd)"
$as_echo "ovn.at:6245" >"$at_check_line_file"
(expr "$PKIDIR" : ".* 	'\"
\\") \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:6245"

: > .$1.db.~lock~
ovsdb-tool create ovn-sb.db "$abs_top_srcdir"/ovn/ovn-sb.ovsschema

# Start sb db server using db connection/ssl entries (unpopulated initially)
start_daemon ovsdb-server --remote=punix:ovnsb_db.sock \
                          --remote=db:OVN_Southbound,SB_Global,connections \
                          --private-key=db:OVN_Southbound,SSL,private_key \
                          --certificate=db:OVN_Southbound,SSL,certificate \
                          --ca-cert=db:OVN_Southbound,SSL,ca_cert \
                          ovn-sb.db

# Populate SSL configuration entries in sb db
{ set +x
$as_echo "$at_srcdir/ovn.at:6260: ovn-sbctl set-ssl \$PKIDIR/testpki-privkey.pem \\
                       \$PKIDIR/testpki-cert.pem \\
                       \$PKIDIR/testpki-cacert.pem"
at_fn_check_prepare_notrace 'an embedded newline' "ovn.at:6260"
( $at_check_trace; ovn-sbctl set-ssl $PKIDIR/testpki-privkey.pem \
                       $PKIDIR/testpki-cert.pem \
                       $PKIDIR/testpki-cacert.pem
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6260"
$at_failed && at_fn_log_failure
$at_traceon; }


# Populate a passive SSL connection in sb db
{ set +x
$as_echo "$at_srcdir/ovn.at:6266: ovn-sbctl set-connection pssl:0:127.0.0.1"
at_fn_check_prepare_trace "ovn.at:6266"
( $at_check_trace; ovn-sbctl set-connection pssl:0:127.0.0.1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6266"
$at_failed && at_fn_log_failure
$at_traceon; }


$as_echo "ovn.at:6268: waiting until TCP_PORT=\`sed -n 's/.*0:.*: listening on port \\([0-9]*\\)\$/\\1/p' \"ovsdb-server.log\"\` && test X != X\"\$TCP_PORT\"..." >&5
ovs_wait_cond () {
    TCP_PORT=`sed -n 's/.*0:.*: listening on port \([0-9]*\)$/\1/p' "ovsdb-server.log"` && test X != X"$TCP_PORT"
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6268: wait failed" >&5

    $as_echo "ovn.at:6268" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6268"
fi


# Verify SSL connetivity to sb db server
{ set +x
$as_echo "$at_srcdir/ovn.at:6271: ovn-sbctl --db=ssl:127.0.0.1:\$TCP_PORT \\
                    --private-key=\$PKIDIR/testpki-privkey.pem \\
                    --certificate=\$PKIDIR/testpki-cert.pem \\
                    --ca-cert=\$PKIDIR/testpki-cacert.pem \\
          list SB_Global"
at_fn_check_prepare_notrace 'an embedded newline' "ovn.at:6271"
( $at_check_trace; ovn-sbctl --db=ssl:127.0.0.1:$TCP_PORT \
                    --private-key=$PKIDIR/testpki-privkey.pem \
                    --certificate=$PKIDIR/testpki-cert.pem \
                    --ca-cert=$PKIDIR/testpki-cacert.pem \
          list SB_Global
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6271"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:6277: ovn-sbctl --db=ssl:127.0.0.1:\$TCP_PORT \\
                    --private-key=\$PKIDIR/testpki-privkey.pem \\
                    --certificate=\$PKIDIR/testpki-cert.pem \\
                    --ca-cert=\$PKIDIR/testpki-cacert.pem \\
          list Connection"
at_fn_check_prepare_notrace 'an embedded newline' "ovn.at:6277"
( $at_check_trace; ovn-sbctl --db=ssl:127.0.0.1:$TCP_PORT \
                    --private-key=$PKIDIR/testpki-privkey.pem \
                    --certificate=$PKIDIR/testpki-cert.pem \
                    --ca-cert=$PKIDIR/testpki-cacert.pem \
          list Connection
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6277"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:6283: ovn-sbctl --db=ssl:127.0.0.1:\$TCP_PORT \\
                    --private-key=\$PKIDIR/testpki-privkey.pem \\
                    --certificate=\$PKIDIR/testpki-cert.pem \\
                    --ca-cert=\$PKIDIR/testpki-cacert.pem \\
          get-connection"
at_fn_check_prepare_notrace 'an embedded newline' "ovn.at:6283"
( $at_check_trace; ovn-sbctl --db=ssl:127.0.0.1:$TCP_PORT \
                    --private-key=$PKIDIR/testpki-privkey.pem \
                    --certificate=$PKIDIR/testpki-cert.pem \
                    --ca-cert=$PKIDIR/testpki-cacert.pem \
          get-connection
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6283"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn.at:6290: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:6290"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6290"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6290: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:6290"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6290"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:6290: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6290: wait failed" >&5

    $as_echo "ovn.at:6290" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6290"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2467
#AT_START_2468
at_fn_group_banner 2468 'ovn.at:6293' \
  "ovn -- nested containers" "                       " 125
at_xfail=no
(
  $as_echo "2468. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

ovn_start

# Physical network:
# 2 HVs. HV1 has 2 VMs - "VM1" and "bar3". HV2 has 1 VM - "VM2"

# Logical network:
# 3 Logical switches - "mgmt" (172.16.1.0/24), "foo" (192.168.1.0/24)
# and "bar" (192.168.2.0/24). They are all connected to router R1.

ovn-nbctl lr-add R1
ovn-nbctl ls-add mgmt
ovn-nbctl ls-add foo
ovn-nbctl ls-add bar

# Connect mgmt to R1
ovn-nbctl lrp-add R1 mgmt 00:00:00:01:02:02 172.16.1.1/24
ovn-nbctl lsp-add mgmt rp-mgmt -- set Logical_Switch_Port rp-mgmt type=router \
          options:router-port=mgmt addresses=\"00:00:00:01:02:02\"

# Connect foo to R1
ovn-nbctl lrp-add R1 foo 00:00:00:01:02:03 192.168.1.1/24
ovn-nbctl lsp-add foo rp-foo -- set Logical_Switch_Port rp-foo type=router \
          options:router-port=foo addresses=\"00:00:00:01:02:03\"

# Connect bar to R1
ovn-nbctl lrp-add R1 bar 00:00:00:01:02:04 192.168.2.1/24
ovn-nbctl lsp-add bar rp-bar -- set Logical_Switch_Port rp-bar type=router \
          options:router-port=bar addresses=\"00:00:00:01:02:04\"

# "mgmt" has VM1 and VM2 connected
ovn-nbctl lsp-add mgmt vm1 \
-- lsp-set-addresses vm1 "f0:00:00:01:02:03 172.16.1.2"

ovn-nbctl lsp-add mgmt vm2 \
-- lsp-set-addresses vm2 "f0:00:00:01:02:04 172.16.1.3"

# "foo1" and "foo2" are containers belonging to switch "foo"
# "foo1" has "VM1" as parent_port and "foo2" has "VM2" as parent_port.
ovn-nbctl lsp-add foo foo1 vm1 1 \
-- lsp-set-addresses foo1 "f0:00:00:01:02:05 192.168.1.2"

ovn-nbctl lsp-add foo foo2 vm2 2 \
-- lsp-set-addresses foo2 "f0:00:00:01:02:06 192.168.1.3"

# "bar1" and "bar2" are containers belonging to switch "bar"
# "bar1" has "VM1" as parent_port and "bar2" has "VM2" as parent_port.
ovn-nbctl lsp-add bar bar1 vm1 2 \
-- lsp-set-addresses bar1 "f0:00:00:01:02:07 192.168.2.2"

ovn-nbctl lsp-add bar bar2 vm2 1 \
-- lsp-set-addresses bar2 "f0:00:00:01:02:08 192.168.2.3"

# bar3 is a standalone VM belonging to switch "bar"
ovn-nbctl lsp-add bar bar3 \
-- lsp-set-addresses bar3 "f0:00:00:01:02:09 192.168.2.4"

# Create two hypervisor and create OVS ports corresponding to logical ports.
net_add n1

sim_add hv1
as hv1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.1
ovs-vsctl -- add-port br-int vm1 -- \
    set interface vm1 external-ids:iface-id=vm1 \
    options:tx_pcap=hv1/vm1-tx.pcap \
    options:rxq_pcap=hv1/vm1-rx.pcap \
    ofport-request=1

ovs-vsctl -- add-port br-int bar3 -- \
    set interface bar3 external-ids:iface-id=bar3 \
    options:tx_pcap=hv1/bar3-tx.pcap \
    options:rxq_pcap=hv1/bar3-rx.pcap \
    ofport-request=2

sim_add hv2
as hv2
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.2
ovs-vsctl -- add-port br-int vm2 -- \
    set interface vm2 external-ids:iface-id=vm2 \
    options:tx_pcap=hv2/vm2-tx.pcap \
    options:rxq_pcap=hv2/vm2-rx.pcap \
    ofport-request=1

# Pre-populate the hypervisors' ARP tables so that we don't lose any
# packets for ARP resolution (native tunneling doesn't queue packets
# for ARP resolution).
{ set +x
$as_echo "$at_srcdir/ovn.at:6382: ovn_populate_arp__"
at_fn_check_prepare_trace "ovn.at:6382"
( $at_check_trace; ovn_populate_arp__
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6382"
$at_failed && at_fn_log_failure
$at_traceon; }


# Allow some time for ovn-northd and ovn-controller to catch up.
# XXX This should be more systematic.
sleep 1

ip_to_hex() {
    printf "%02x%02x%02x%02x" "$@"
}

# Send ip packets between foo1 and foo2 (same switch, different HVs and
# different VLAN tags).
src_mac="f00000010205"
dst_mac="f00000010206"
src_ip=`ip_to_hex 192 168 1 2`
dst_ip=`ip_to_hex 192 168 1 3`
packet=${dst_mac}${src_mac}8100000108004500001c0000000040110000${src_ip}${dst_ip}0035111100080000
as hv1 ovs-appctl netdev-dummy/receive vm1 $packet

# expected packet at foo2
packet=${dst_mac}${src_mac}8100000208004500001c0000000040110000${src_ip}${dst_ip}0035111100080000
echo  $packet > expected
ovn_check_packets__ "hv2/vm2-tx.pcap" "expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:6404: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:6404"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6404"
$at_failed && at_fn_log_failure
$at_traceon; }


# Send ip packets between foo1 and bar2 (different switch, different HV)
src_mac="f00000010205"
dst_mac="000000010203"
src_ip=`ip_to_hex 192 168 1 2`
dst_ip=`ip_to_hex 192 168 2 3`
packet=${dst_mac}${src_mac}8100000108004500001c0000000040110000${src_ip}${dst_ip}0035111100080000
as hv1 ovs-appctl netdev-dummy/receive vm1 $packet

# expected packet at bar2
src_mac="000000010204"
dst_mac="f00000010208"
packet=${dst_mac}${src_mac}8100000108004500001c000000003f110100${src_ip}${dst_ip}0035111100080000
echo  $packet >> expected
ovn_check_packets__ "hv2/vm2-tx.pcap" "expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:6419: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:6419"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6419"
$at_failed && at_fn_log_failure
$at_traceon; }


# Send ip packets between foo1 and bar1
# (different switch, loopback to same vm but different tag)
src_mac="f00000010205"
dst_mac="000000010203"
src_ip=`ip_to_hex 192 168 1 2`
dst_ip=`ip_to_hex 192 168 2 2`
packet=${dst_mac}${src_mac}8100000108004500001c0000000040110000${src_ip}${dst_ip}0035111100080000
as hv1 ovs-appctl netdev-dummy/receive vm1 $packet

# expected packet at bar1
src_mac="000000010204"
dst_mac="f00000010207"
packet=${dst_mac}${src_mac}8100000208004500001c000000003f110100${src_ip}${dst_ip}0035111100080000
echo  $packet > expected1
ovn_check_packets__ "hv1/vm1-tx.pcap" "expected1"
   { set +x
$as_echo "$at_srcdir/ovn.at:6435: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:6435"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6435"
$at_failed && at_fn_log_failure
$at_traceon; }


# Send ip packets between bar1 and bar3
# (same switch. But one is container and another is a standalone VM)
src_mac="f00000010207"
dst_mac="f00000010209"
src_ip=`ip_to_hex 192 168 2 2`
dst_ip=`ip_to_hex 192 168 2 3`
packet=${dst_mac}${src_mac}8100000208004500001c0000000040110000${src_ip}${dst_ip}0035111100080000
as hv1 ovs-appctl netdev-dummy/receive vm1 $packet

# expected packet at bar3
packet=${dst_mac}${src_mac}08004500001c0000000040110000${src_ip}${dst_ip}0035111100080000
echo  $packet > expected
ovn_check_packets__ "hv1/bar3-tx.pcap" "expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:6449: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:6449"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6449"
$at_failed && at_fn_log_failure
$at_traceon; }


# Send ip packets between foo1 and vm1.
(different switch, container to the VM hosting it.)
src_mac="f00000010205"
dst_mac="000000010203"
src_ip=`ip_to_hex 192 168 1 2`
dst_ip=`ip_to_hex 172 16 1 2`
packet=${dst_mac}${src_mac}8100000108004500001c0000000040110000${src_ip}${dst_ip}0035111100080000
as hv1 ovs-appctl netdev-dummy/receive vm1 $packet

# expected packet at vm1
src_mac="000000010202"
dst_mac="f00000010203"
packet=${dst_mac}${src_mac}08004500001c000000003f110100${src_ip}${dst_ip}0035111100080000
echo  $packet >> expected1
ovn_check_packets__ "hv1/vm1-tx.pcap" "expected1"
   { set +x
$as_echo "$at_srcdir/ovn.at:6465: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:6465"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6465"
$at_failed && at_fn_log_failure
$at_traceon; }


# Send packets from vm1 to bar1.
(different switch, A hosting VM to a container inside it)
src_mac="f00000010203"
dst_mac="000000010202"
src_ip=`ip_to_hex 172 16 1 2`
dst_ip=`ip_to_hex 192 168 2 2`
packet=${dst_mac}${src_mac}08004500001c0000000040110000${src_ip}${dst_ip}0035111100080000
as hv1 ovs-appctl netdev-dummy/receive vm1 $packet

# expected packet at vm1
src_mac="000000010204"
dst_mac="f00000010207"
packet=${dst_mac}${src_mac}8100000208004500001c000000003f110100${src_ip}${dst_ip}0035111100080000
echo  $packet >> expected1
ovn_check_packets__ "hv1/vm1-tx.pcap" "expected1"
   { set +x
$as_echo "$at_srcdir/ovn.at:6481: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:6481"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6481"
$at_failed && at_fn_log_failure
$at_traceon; }





    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:6483: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:6483"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6483"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6483: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:6483"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6483"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:6483: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6483: wait failed" >&5

    $as_echo "ovn.at:6483" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6483"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:6483: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:6483"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6483"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6483: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:6483"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6483"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:6483: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6483: wait failed" >&5

    $as_echo "ovn.at:6483" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6483"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:6483: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:6483"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6483"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6483: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:6483"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6483"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:6483: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6483: wait failed" >&5

    $as_echo "ovn.at:6483" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6483"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:6483: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:6483"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6483"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6483: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:6483"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6483"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:6483: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6483: wait failed" >&5

    $as_echo "ovn.at:6483" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6483"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:6483: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:6483"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6483"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6483: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:6483"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6483"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:6483: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6483: wait failed" >&5

    $as_echo "ovn.at:6483" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6483"
fi





    as hv2
    if test "hv2" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:6483: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:6483"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6483"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6483: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:6483"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6483"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:6483: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6483: wait failed" >&5

    $as_echo "ovn.at:6483" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6483"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:6483: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:6483"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6483"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6483: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:6483"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6483"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:6483: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6483: wait failed" >&5

    $as_echo "ovn.at:6483" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6483"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:6483: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:6483"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6483"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6483: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:6483"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6483"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:6483: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6483: wait failed" >&5

    $as_echo "ovn.at:6483" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6483"
fi

    fi

    as hv2
    { set +x
$as_echo "$at_srcdir/ovn.at:6483: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:6483"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6483"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6483: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:6483"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6483"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:6483: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6483: wait failed" >&5

    $as_echo "ovn.at:6483" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6483"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:6483: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:6483"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6483"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6483: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:6483"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6483"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:6483: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6483: wait failed" >&5

    $as_echo "ovn.at:6483" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6483"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:6483: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:6483"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6483"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6483: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:6483"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6483"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:6483: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6483: wait failed" >&5

    $as_echo "ovn.at:6483" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6483"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:6483: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:6483"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6483"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6483: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:6483"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6483"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:6483: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6483: wait failed" >&5

    $as_echo "ovn.at:6483" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6483"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:6483: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:6483"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6483"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6483: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:6483"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6483"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:6483: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6483: wait failed" >&5

    $as_echo "ovn.at:6483" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6483"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:6483: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:6483"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6483"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6483: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:6483"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6483"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:6483: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6483: wait failed" >&5

    $as_echo "ovn.at:6483" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6483"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:6483: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:6483"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6483"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6483: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:6483"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6483"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:6483: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6483: wait failed" >&5

    $as_echo "ovn.at:6483" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6483"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:6483: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:6483"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6483"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6483: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:6483"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6483"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:6483: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6483: wait failed" >&5

    $as_echo "ovn.at:6483" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6483"
fi




  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2468
#AT_START_2469
at_fn_group_banner 2469 'ovn.at:6487' \
  "ovn -- 3 HVs, 3 LRs connected via LS, source IP based routes" "" 125
at_xfail=no
(
  $as_echo "2469. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn.at:6488" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:6488"
ovn_start

# Logical network:
# Three LRs - R1, R2 and R3 that are connected to each other via LS "join"
# in 20.0.0.0/24 network. R1 has switchess foo (192.168.1.0/24) and bar
# (192.168.2.0/24) connected to it.
#
# R2 and R3 are gateway routers.
# R2 has alice (172.16.1.0/24) and R3 has bob (172.16.1.0/24)
# connected to it. Note how both alice and bob have the same subnet behind it.
# We are trying to simulate external network via those 2 switches. In real
# world the switch ports of these switches will have addresses set as "unknown"
# to make them learning switches. Or those switches will be "localnet" ones.

# Create three hypervisors and create OVS ports corresponding to logical ports.
net_add n1

sim_add hv1
as hv1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.1
ovs-vsctl -- add-port br-int hv1-vif1 -- \
    set interface hv1-vif1 external-ids:iface-id=foo1 \
    options:tx_pcap=hv1/vif1-tx.pcap \
    options:rxq_pcap=hv1/vif1-rx.pcap \
    ofport-request=1

ovs-vsctl -- add-port br-int hv1-vif2 -- \
    set interface hv1-vif2 external-ids:iface-id=bar1 \
    options:tx_pcap=hv1/vif2-tx.pcap \
    options:rxq_pcap=hv1/vif2-rx.pcap \
    ofport-request=2

sim_add hv2
as hv2
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.2
ovs-vsctl -- add-port br-int hv2-vif1 -- \
    set interface hv2-vif1 external-ids:iface-id=alice1 \
    options:tx_pcap=hv2/vif1-tx.pcap \
    options:rxq_pcap=hv2/vif1-rx.pcap \
    ofport-request=1

sim_add hv3
as hv3
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.3
ovs-vsctl -- add-port br-int hv3-vif1 -- \
    set interface hv3-vif1 external-ids:iface-id=bob1 \
    options:tx_pcap=hv3/vif1-tx.pcap \
    options:rxq_pcap=hv3/vif1-rx.pcap \
    ofport-request=1


ovn-nbctl create Logical_Router name=R1
ovn-nbctl create Logical_Router name=R2 options:chassis="hv2"
ovn-nbctl create Logical_Router name=R3 options:chassis="hv3"

ovn-nbctl ls-add foo
ovn-nbctl ls-add bar
ovn-nbctl ls-add alice
ovn-nbctl ls-add bob
ovn-nbctl ls-add join

# Connect foo to R1
ovn-nbctl lrp-add R1 foo 00:00:01:01:02:03 192.168.1.1/24
ovn-nbctl lsp-add foo rp-foo -- set Logical_Switch_Port rp-foo type=router \
    options:router-port=foo addresses=\"00:00:01:01:02:03\"

# Connect bar to R1
ovn-nbctl lrp-add R1 bar 00:00:01:01:02:04 192.168.2.1/24
ovn-nbctl lsp-add bar rp-bar -- set Logical_Switch_Port rp-bar type=router \
    options:router-port=bar addresses=\"00:00:01:01:02:04\"

# Connect alice to R2
ovn-nbctl lrp-add R2 alice 00:00:02:01:02:03 172.16.1.1/24
ovn-nbctl lsp-add alice rp-alice -- set Logical_Switch_Port rp-alice \
    type=router options:router-port=alice addresses=\"00:00:02:01:02:03\"

# Connect bob to R3
ovn-nbctl lrp-add R3 bob 00:00:03:01:02:03 172.16.1.2/24
ovn-nbctl lsp-add bob rp-bob -- set Logical_Switch_Port rp-bob \
    type=router options:router-port=bob addresses=\"00:00:03:01:02:03\"

# Connect R1 to join
ovn-nbctl lrp-add R1 R1_join 00:00:04:01:02:03 20.0.0.1/24
ovn-nbctl lsp-add join r1-join -- set Logical_Switch_Port r1-join \
    type=router options:router-port=R1_join addresses='"00:00:04:01:02:03"'

# Connect R2 to join
ovn-nbctl lrp-add R2 R2_join 00:00:04:01:02:04 20.0.0.2/24
ovn-nbctl lsp-add join r2-join -- set Logical_Switch_Port r2-join \
    type=router options:router-port=R2_join addresses='"00:00:04:01:02:04"'

# Connect R3 to join
ovn-nbctl lrp-add R3 R3_join 00:00:04:01:02:05 20.0.0.3/24
ovn-nbctl lsp-add join r3-join -- set Logical_Switch_Port r3-join \
    type=router options:router-port=R3_join addresses='"00:00:04:01:02:05"'

# Install static routes with source ip address as the policy for routing.
# We want traffic from 'foo' to go via R2 and traffic of 'bar' to go via R3.
ovn-nbctl --policy="src-ip" lr-route-add R1 192.168.1.0/24 20.0.0.2
ovn-nbctl --policy="src-ip" lr-route-add R1 192.168.2.0/24 20.0.0.3

# Install static routes with destination ip address as the policy for routing.
ovn-nbctl lr-route-add R2 192.168.0.0/16 20.0.0.1

ovn-nbctl lr-route-add R3 192.168.0.0/16 20.0.0.1

# Create logical port foo1 in foo
ovn-nbctl lsp-add foo foo1 \
-- lsp-set-addresses foo1 "f0:00:00:01:02:03 192.168.1.2"

# Create logical port bar1 in bar
ovn-nbctl lsp-add bar bar1 \
-- lsp-set-addresses bar1 "f0:00:00:01:02:04 192.168.2.2"

# Create logical port alice1 in alice
ovn-nbctl lsp-add alice alice1 \
-- lsp-set-addresses alice1 "f0:00:00:01:02:05 172.16.1.3"

# Create logical port bob1 in bob
ovn-nbctl lsp-add bob bob1 \
-- lsp-set-addresses bob1 "f0:00:00:01:02:06 172.16.1.4"

# Pre-populate the hypervisors' ARP tables so that we don't lose any
# packets for ARP resolution (native tunneling doesn't queue packets
# for ARP resolution).
{ set +x
$as_echo "$at_srcdir/ovn.at:6617: ovn_populate_arp__"
at_fn_check_prepare_trace "ovn.at:6617"
( $at_check_trace; ovn_populate_arp__
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6617"
$at_failed && at_fn_log_failure
$at_traceon; }


# Allow some time for ovn-northd and ovn-controller to catch up.
# XXX This should be more systematic.
sleep 1

ip_to_hex() {
    printf "%02x%02x%02x%02x" "$@"
}
trim_zeros() {
    sed 's/\(00\)\{1,\}$//'
}

# Send ip packets between foo1 and bar1
# (East-west traffic should flow normally)
src_mac="f00000010203"
dst_mac="000001010203"
src_ip=`ip_to_hex 192 168 1 2`
dst_ip=`ip_to_hex 192 168 2 2`
packet=${dst_mac}${src_mac}08004500001c0000000040110000${src_ip}${dst_ip}0035111100080000
as hv1 ovs-appctl netdev-dummy/receive hv1-vif1 $packet

# Send ip packets between foo1 and alice1
src_mac="f00000010203"
dst_mac="000001010203"
src_ip=`ip_to_hex 192 168 1 2`
dst_ip=`ip_to_hex 172 16 1 3`
packet=${dst_mac}${src_mac}08004500001c0000000040110000${src_ip}${dst_ip}0035111100080000
as hv1 ovs-appctl netdev-dummy/receive hv1-vif1 $packet
as hv1 ovs-appctl ofproto/trace br-int in_port=1 $packet

# Send ip packets between bar1 and bob1
src_mac="f00000010204"
dst_mac="000001010204"
src_ip=`ip_to_hex 192 168 2 2`
dst_ip=`ip_to_hex 172 16 1 4`
packet=${dst_mac}${src_mac}08004500001c0000000040110000${src_ip}${dst_ip}0035111100080000
as hv1 ovs-appctl netdev-dummy/receive hv1-vif2 $packet
#as hv1 ovs-appctl ofproto/trace br-int in_port=2 $packet

# Packet to expect at bar1
src_mac="000001010204"
dst_mac="f00000010204"
src_ip=`ip_to_hex 192 168 1 2`
dst_ip=`ip_to_hex 192 168 2 2`
expected=${dst_mac}${src_mac}08004500001c000000003f110100${src_ip}${dst_ip}0035111100080000
echo $expected > expected
ovn_check_packets__ "hv1/vif2-tx.pcap" "expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:6664: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:6664"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6664"
$at_failed && at_fn_log_failure
$at_traceon; }


# Packet to Expect at alice1
src_mac="000002010203"
dst_mac="f00000010205"
src_ip=`ip_to_hex 192 168 1 2`
dst_ip=`ip_to_hex 172 16 1 3`
expected=${dst_mac}${src_mac}08004500001c000000003e110200${src_ip}${dst_ip}0035111100080000
echo $expected > expected
ovn_check_packets__ "hv2/vif1-tx.pcap" "expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:6673: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:6673"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6673"
$at_failed && at_fn_log_failure
$at_traceon; }


# Packet to Expect at bob1
src_mac="000003010203"
dst_mac="f00000010206"
src_ip=`ip_to_hex 192 168 2 2`
dst_ip=`ip_to_hex 172 16 1 4`
expected=${dst_mac}${src_mac}08004500001c000000003e110200${src_ip}${dst_ip}0035111100080000
echo $expected > expected
ovn_check_packets__ "hv3/vif1-tx.pcap" "expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:6682: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:6682"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6682"
$at_failed && at_fn_log_failure
$at_traceon; }


for sim in hv1 hv2 hv3; do
    as $sim
    { set +x
$as_echo "$at_srcdir/ovn.at:6686: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:6686"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6686"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6686: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:6686"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6686"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:6686: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6686: wait failed" >&5

    $as_echo "ovn.at:6686" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6686"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:6687: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:6687"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6687"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6687: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:6687"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6687"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:6687: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6687: wait failed" >&5

    $as_echo "ovn.at:6687" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6687"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:6688: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:6688"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6688"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6688: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:6688"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6688"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:6688: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6688: wait failed" >&5

    $as_echo "ovn.at:6688" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6688"
fi

done

as ovn-sb
{ set +x
$as_echo "$at_srcdir/ovn.at:6692: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:6692"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6692"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6692: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:6692"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6692"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:6692: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6692: wait failed" >&5

    $as_echo "ovn.at:6692" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6692"
fi


as ovn-nb
{ set +x
$as_echo "$at_srcdir/ovn.at:6695: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:6695"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6695"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6695: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:6695"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6695"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:6695: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6695: wait failed" >&5

    $as_echo "ovn.at:6695" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6695"
fi


as northd
{ set +x
$as_echo "$at_srcdir/ovn.at:6698: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:6698"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6698"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6698: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:6698"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6698"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:6698: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6698: wait failed" >&5

    $as_echo "ovn.at:6698" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6698"
fi


as main
{ set +x
$as_echo "$at_srcdir/ovn.at:6701: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:6701"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6701"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6701: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:6701"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6701"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:6701: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6701: wait failed" >&5

    $as_echo "ovn.at:6701" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6701"
fi

{ set +x
$as_echo "$at_srcdir/ovn.at:6702: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:6702"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6702"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:6702: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:6702"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6702"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:6702: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6702: wait failed" >&5

    $as_echo "ovn.at:6702" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6702"
fi


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2469
#AT_START_2470
at_fn_group_banner 2470 'ovn.at:6706' \
  "ovn -- dns lookup : 1 HV, 2 LS, 2 LSPs/LS" "      " 125
at_xfail=no
(
  $as_echo "2470. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn.at:6707" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:6707"
ovn_start

ovn-nbctl ls-add ls1

ovn-nbctl lsp-add ls1 ls1-lp1 \
-- lsp-set-addresses ls1-lp1 "f0:00:00:00:00:01 10.0.0.4 aef0::4"

ovn-nbctl lsp-set-port-security ls1-lp1 "f0:00:00:00:00:01 10.0.0.4 aef0::4"

ovn-nbctl lsp-add ls1 ls1-lp2 \
-- lsp-set-addresses ls1-lp2 "f0:00:00:00:00:02 10.0.0.6 20.0.0.4"

ovn-nbctl lsp-set-port-security ls1-lp2 "f0:00:00:00:00:02 10.0.0.6 20.0.0.4"

DNS1=`ovn-nbctl create DNS records={}`
DNS2=`ovn-nbctl create DNS records={}`

ovn-nbctl set DNS $DNS1 records:vm1.ovn.org="10.0.0.4 aef0::4"
ovn-nbctl set DNS $DNS1 records:vm2.ovn.org="10.0.0.6 20.0.0.4"
ovn-nbctl set DNS $DNS2 records:vm3.ovn.org="40.0.0.4"

ovn-nbctl set Logical_switch ls1 dns_records="$DNS1"

net_add n1
sim_add hv1

as hv1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.1
ovs-vsctl -- add-port br-int hv1-vif1 -- \
    set interface hv1-vif1 external-ids:iface-id=ls1-lp1 \
    options:tx_pcap=hv1/vif1-tx.pcap \
    options:rxq_pcap=hv1/vif1-rx.pcap \
    ofport-request=1

ovs-vsctl -- add-port br-int hv1-vif2 -- \
    set interface hv1-vif2 external-ids:iface-id=ls1-lp2 \
    options:tx_pcap=hv1/vif2-tx.pcap \
    options:rxq_pcap=hv1/vif2-rx.pcap \
    ofport-request=2

{ set +x
$as_echo "$at_srcdir/ovn.at:6749: ovn_populate_arp__"
at_fn_check_prepare_trace "ovn.at:6749"
( $at_check_trace; ovn_populate_arp__
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6749"
$at_failed && at_fn_log_failure
$at_traceon; }

sleep 2
as hv1 ovs-vsctl show

echo "*************************"
ovn-sbctl list DNS
echo "*************************"

ip_to_hex() {
    printf "%02x%02x%02x%02x" "$@"
}

reset_pcap_file() {
    local iface=$1
    local pcap_file=$2
    ovs-vsctl -- set Interface $iface options:tx_pcap=dummy-tx.pcap \
options:rxq_pcap=dummy-rx.pcap
    rm -f ${pcap_file}*.pcap
    ovs-vsctl -- set Interface $iface options:tx_pcap=${pcap_file}-tx.pcap \
options:rxq_pcap=${pcap_file}-rx.pcap
}

# set_dns_params host_name
# Sets the dns_req_data and dns_resp_data
set_dns_params() {
    local hname=$1
    local ttl=00000e10
    an_count=0001
    type=0001
    case $hname in
    vm1)
        # vm1.ovn.org
        query_name=03766d31036f766e036f726700
        # IPv4 address - 10.0.0.4
        expected_dns_answer=${query_name}00010001${ttl}00040a000004
        ;;
    vm2)
        # vm2.ovn.org
        query_name=03766d32036f766e036f726700
        # IPv4 address - 10.0.0.6
        expected_dns_answer=${query_name}00010001${ttl}00040a000006
        # IPv4 address - 20.0.0.4
        expected_dns_answer=${expected_dns_answer}${query_name}00010001${ttl}000414000004
        an_count=0002
        ;;
    vm3)
        # vm3.ovn.org
        query_name=03766d33036f766e036f726700
        # IPv4 address - 40.0.0.4
        expected_dns_answer=${query_name}00010001${ttl}000428000004
        ;;
    vm1_ipv6_only)
        # vm1.ovn.org
        query_name=03766d31036f766e036f726700
        # IPv6 address - aef0::4
        type=001c
        expected_dns_answer=${query_name}${type}0001${ttl}0010aef00000000000000000000000000004
        ;;
    vm1_ipv4_v6)
        # vm1.ovn.org
        query_name=03766d31036f766e036f726700
        type=00ff
        an_count=0002
        # IPv4 address - 10.0.0.4
        # IPv6 address - aef0::4
        expected_dns_answer=${query_name}00010001${ttl}00040a000004
        expected_dns_answer=${expected_dns_answer}${query_name}001c0001${ttl}0010
        expected_dns_answer=${expected_dns_answer}aef00000000000000000000000000004
        ;;
    vm1_invalid_type)
        # vm1.ovn.org
        query_name=03766d31036f766e036f726700
        # IPv6 address - aef0::4
        type=0002
        ;;
    vm1_incomplete)
        # set type to none
        type=''
    esac
    # TTL - 3600
    local dns_req_header=010201200001000000000000
    local dns_resp_header=010281200001${an_count}00000000
    dns_req_data=${dns_req_header}${query_name}${type}0001
    dns_resp_data=${dns_resp_header}${query_name}${type}0001${expected_dns_answer}
}

# This shell function sends a DNS request packet
# test_dns INPORT SRC_MAC DST_MAC SRC_IP DST_IP DNS_QUERY EXPEC
test_dns() {
    local inport=$1 src_mac=$2 dst_mac=$3 src_ip=$4 dst_ip=$5 dns_reply=$6
    local dns_query_data=$7
    shift; shift; shift; shift; shift; shift; shift;
    # Packet size => IPv4 header (20) + UDP header (8) +
    #                DNS data (header + query)
    ip_len=`expr 28 + ${#dns_query_data} / 2`
    udp_len=`expr $ip_len - 20`
    ip_len=$(printf "%x" $ip_len)
    udp_len=$(printf "%x" $udp_len)
    local request=${dst_mac}${src_mac}0800450000${ip_len}0000000080110000
    request=${request}${src_ip}${dst_ip}9234003500${udp_len}0000
    # dns data
    request=${request}${dns_query_data}

    if test $dns_reply != 0; then
        local dns_reply=$1
        ip_len=`expr 28 + ${#dns_reply} / 2`
        udp_len=`expr $ip_len - 20`
        ip_len=$(printf "%x" $ip_len)
        udp_len=$(printf "%x" $udp_len)
        local reply=${src_mac}${dst_mac}0800450000${ip_len}0000000080110000
        reply=${reply}${dst_ip}${src_ip}0035923400${udp_len}0000${dns_reply}
        echo $reply >> $inport.expected
    else
        for outport; do
            echo $request >> $outport.expected
        done
    fi
    as hv1 ovs-appctl netdev-dummy/receive hv1-vif$inport $request
}

test_dns6() {
    local inport=$1 src_mac=$2 dst_mac=$3 src_ip=$4 dst_ip=$5 dns_reply=$6
    local dns_query_data=$7
    shift; shift; shift; shift; shift; shift; shift;
    # Packet size => UDP header (8) +
    #                DNS data (header + query)
    ip_len=`expr 8 + ${#dns_query_data} / 2`
    udp_len=$ip_len
    ip_len=$(printf "%x" $ip_len)
    udp_len=$(printf "%x" $udp_len)
    local request=${dst_mac}${src_mac}86dd6000000000${ip_len}11ff${src_ip}${dst_ip}
    request=${request}9234003500${udp_len}0000
    #dns data
    request=${request}${dns_query_data}

    if test $dns_reply != 0; then
        local dns_reply=$1
        ip_len=`expr 8 + ${#dns_reply} / 2`
        udp_len=$ip_len
        ip_len=$(printf "%x" $ip_len)
        udp_len=$(printf "%x" $udp_len)
        local reply=${src_mac}${dst_mac}86dd6000000000${ip_len}11ff${dst_ip}${src_ip}
        reply=${reply}0035923400${udp_len}0000${dns_reply}
        echo $reply >> $inport.expected
    else
        for outport; do
            echo $request >> $outport.expected
        done
    fi
    as hv1 ovs-appctl netdev-dummy/receive hv1-vif$inport $request
}


as hv1 ovs-ofctl monitor br-int resume --detach --no-chdir \
--pidfile=ovs-ofctl0.pid 2> ofctl_monitor0.log

set_dns_params vm2
src_ip=`ip_to_hex 10 0 0 4`
dst_ip=`ip_to_hex 10 0 0 1`
dns_reply=1
test_dns 1 f00000000001 f000000000f0 $src_ip $dst_ip $dns_reply $dns_req_data $dns_resp_data

# NXT_RESUMEs should be 1.
$as_echo "ovn.at:6912: waiting until test 1 = \`cat ofctl_monitor*.log | grep -c NXT_RESUME\`..." >&5
ovs_wait_cond () {
    test 1 = `cat ofctl_monitor*.log | grep -c NXT_RESUME`
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6912: wait failed" >&5

    $as_echo "ovn.at:6912" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6912"
fi


$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/vif1-tx.pcap > 1.packets
cat 1.expected | cut -c -48 > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:6916: cat 1.packets | cut -c -48"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:6916"
( $at_check_trace; cat 1.packets | cut -c -48
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6916"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

# Skipping the IPv4 checksum.
cat 1.expected | cut -c 53- > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:6919: cat 1.packets | cut -c 53-"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:6919"
( $at_check_trace; cat 1.packets | cut -c 53-
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6919"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }


reset_pcap_file hv1-vif1 hv1/vif1
reset_pcap_file hv1-vif2 hv1/vif2
rm -f 1.expected
rm -f 2.expected

set_dns_params vm1
src_ip=`ip_to_hex 10 0 0 6`
dst_ip=`ip_to_hex 10 0 0 1`
dns_reply=1
test_dns 2 f00000000002 f000000000f0 $src_ip $dst_ip $dns_reply $dns_req_data $dns_resp_data

# NXT_RESUMEs should be 2.
$as_echo "ovn.at:6933: waiting until test 2 = \`cat ofctl_monitor*.log | grep -c NXT_RESUME\`..." >&5
ovs_wait_cond () {
    test 2 = `cat ofctl_monitor*.log | grep -c NXT_RESUME`
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6933: wait failed" >&5

    $as_echo "ovn.at:6933" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6933"
fi


$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/vif2-tx.pcap > 2.packets
cat 2.expected | cut -c -48 > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:6937: cat 2.packets | cut -c -48"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:6937"
( $at_check_trace; cat 2.packets | cut -c -48
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6937"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

# Skipping the IPv4 checksum.
cat 2.expected | cut -c 53- > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:6940: cat 2.packets | cut -c 53-"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:6940"
( $at_check_trace; cat 2.packets | cut -c 53-
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6940"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }


reset_pcap_file hv1-vif1 hv1/vif1
reset_pcap_file hv1-vif2 hv1/vif2
rm -f 1.expected
rm -f 2.expected

# Clear the query name options for ls1-lp2
ovn-nbctl --wait=hv remove DNS $DNS1 records vm2.ovn.org

set_dns_params vm2
src_ip=`ip_to_hex 10 0 0 4`
dst_ip=`ip_to_hex 10 0 0 1`
dns_reply=0
test_dns 1 f00000000001 f00000000002 $src_ip $dst_ip $dns_reply $dns_req_data

# NXT_RESUMEs should be 3.
$as_echo "ovn.at:6957: waiting until test 3 = \`cat ofctl_monitor*.log | grep -c NXT_RESUME\`..." >&5
ovs_wait_cond () {
    test 3 = `cat ofctl_monitor*.log | grep -c NXT_RESUME`
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6957: wait failed" >&5

    $as_echo "ovn.at:6957" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6957"
fi


$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/vif1-tx.pcap > 1.packets
{ set +x
$as_echo "$at_srcdir/ovn.at:6960: cat 1.packets"
at_fn_check_prepare_trace "ovn.at:6960"
( $at_check_trace; cat 1.packets
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6960"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }


reset_pcap_file hv1-vif1 hv1/vif1
reset_pcap_file hv1-vif2 hv1/vif2
rm -f 1.expected
rm -f 2.expected

# Clear the query name for ls1-lp1
# Since ls1 has no query names configued,
# ovn-northd should not add the DNS flows.
ovn-nbctl --wait=hv remove DNS $DNS1 records vm1.ovn.org

set_dns_params vm1
src_ip=`ip_to_hex 10 0 0 6`
dst_ip=`ip_to_hex 10 0 0 1`
dns_reply=0
test_dns 2 f00000000002 f000000000f0 $src_ip $dst_ip $dns_reply $dns_req_data

# NXT_RESUMEs should be 3 only.
$as_echo "ovn.at:6979: waiting until test 3 = \`cat ofctl_monitor*.log | grep -c NXT_RESUME\`..." >&5
ovs_wait_cond () {
    test 3 = `cat ofctl_monitor*.log | grep -c NXT_RESUME`
}
if ovs_wait; then :
else
    $as_echo "ovn.at:6979: wait failed" >&5

    $as_echo "ovn.at:6979" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:6979"
fi


$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/vif2-tx.pcap > 2.packets
{ set +x
$as_echo "$at_srcdir/ovn.at:6982: cat 2.packets"
at_fn_check_prepare_trace "ovn.at:6982"
( $at_check_trace; cat 2.packets
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:6982"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }


reset_pcap_file hv1-vif1 hv1/vif1
reset_pcap_file hv1-vif2 hv1/vif2
rm -f 1.expected
rm -f 2.expected

# Test IPv6 (AAAA records) using IPv4 packet.
# Add back the DNS options for ls1-lp1.
ovn-nbctl set DNS $DNS1 records:vm1.ovn.org="10.0.0.4 aef0::4"

set_dns_params vm1_ipv6_only
src_ip=`ip_to_hex 10 0 0 6`
dst_ip=`ip_to_hex 10 0 0 1`
dns_reply=1
test_dns 2 f00000000002 f000000000f0 $src_ip $dst_ip $dns_reply $dns_req_data $dns_resp_data

# NXT_RESUMEs should be 4.
$as_echo "ovn.at:7000: waiting until test 4 = \`cat ofctl_monitor*.log | grep -c NXT_RESUME\`..." >&5
ovs_wait_cond () {
    test 4 = `cat ofctl_monitor*.log | grep -c NXT_RESUME`
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7000: wait failed" >&5

    $as_echo "ovn.at:7000" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7000"
fi


$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/vif2-tx.pcap > 2.packets
cat 2.expected | cut -c -48 > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:7004: cat 2.packets | cut -c -48"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:7004"
( $at_check_trace; cat 2.packets | cut -c -48
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7004"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

# Skipping the IPv4 checksum.
cat 2.expected | cut -c 53- > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:7007: cat 2.packets | cut -c 53-"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:7007"
( $at_check_trace; cat 2.packets | cut -c 53-
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7007"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }


reset_pcap_file hv1-vif1 hv1/vif1
reset_pcap_file hv1-vif2 hv1/vif2
rm -f 1.expected
rm -f 2.expected

# Test both IPv4 (A) and IPv6 (AAAA records) using IPv4 packet.
set_dns_params vm1_ipv4_v6
src_ip=`ip_to_hex 10 0 0 6`
dst_ip=`ip_to_hex 10 0 0 1`
dns_reply=1
test_dns 2 f00000000002 f000000000f0 $src_ip $dst_ip $dns_reply $dns_req_data $dns_resp_data

# NXT_RESUMEs should be 5.
$as_echo "ovn.at:7022: waiting until test 5 = \`cat ofctl_monitor*.log | grep -c NXT_RESUME\`..." >&5
ovs_wait_cond () {
    test 5 = `cat ofctl_monitor*.log | grep -c NXT_RESUME`
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7022: wait failed" >&5

    $as_echo "ovn.at:7022" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7022"
fi


$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/vif2-tx.pcap > 2.packets
cat 2.expected | cut -c -48 > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:7026: cat 2.packets | cut -c -48"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:7026"
( $at_check_trace; cat 2.packets | cut -c -48
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7026"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

# Skipping the IPv4 checksum.
cat 2.expected | cut -c 53- > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:7029: cat 2.packets | cut -c 53-"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:7029"
( $at_check_trace; cat 2.packets | cut -c 53-
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7029"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }


reset_pcap_file hv1-vif1 hv1/vif1
reset_pcap_file hv1-vif2 hv1/vif2
rm -f 1.expected
rm -f 2.expected

# Invalid type.
set_dns_params vm1_invalid_type
src_ip=`ip_to_hex 10 0 0 6`
dst_ip=`ip_to_hex 10 0 0 1`
dns_reply=0
test_dns 2 f00000000002 f000000000f0 $src_ip $dst_ip $dns_reply $dns_req_data

# NXT_RESUMEs should be 6.
$as_echo "ovn.at:7044: waiting until test 6 = \`cat ofctl_monitor*.log | grep -c NXT_RESUME\`..." >&5
ovs_wait_cond () {
    test 6 = `cat ofctl_monitor*.log | grep -c NXT_RESUME`
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7044: wait failed" >&5

    $as_echo "ovn.at:7044" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7044"
fi


$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/vif2-tx.pcap > 2.packets
{ set +x
$as_echo "$at_srcdir/ovn.at:7047: cat 2.packets"
at_fn_check_prepare_trace "ovn.at:7047"
( $at_check_trace; cat 2.packets
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7047"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }


reset_pcap_file hv1-vif1 hv1/vif1
reset_pcap_file hv1-vif2 hv1/vif2
rm -f 1.expected
rm -f 2.expected

# Incomplete DNS packet.
set_dns_params vm1_incomplete
src_ip=`ip_to_hex 10 0 0 6`
dst_ip=`ip_to_hex 10 0 0 1`
dns_reply=0
test_dns 2 f00000000002 f000000000f0 $src_ip $dst_ip $dns_reply $dns_req_data

# NXT_RESUMEs should be 7.
$as_echo "ovn.at:7062: waiting until test 7 = \`cat ofctl_monitor*.log | grep -c NXT_RESUME\`..." >&5
ovs_wait_cond () {
    test 7 = `cat ofctl_monitor*.log | grep -c NXT_RESUME`
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7062: wait failed" >&5

    $as_echo "ovn.at:7062" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7062"
fi


$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/vif2-tx.pcap > 2.packets
{ set +x
$as_echo "$at_srcdir/ovn.at:7065: cat 2.packets"
at_fn_check_prepare_trace "ovn.at:7065"
( $at_check_trace; cat 2.packets
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7065"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }


reset_pcap_file hv1-vif1 hv1/vif1
reset_pcap_file hv1-vif2 hv1/vif2
rm -f 1.expected
rm -f 2.expected

# Add one more DNS record to the ls1.
ovn-nbctl --wait=hv set Logical_switch ls1 dns_records="$DNS1 $DNS2"

set_dns_params vm3
src_ip=`ip_to_hex 10 0 0 4`
dst_ip=`ip_to_hex 10 0 0 1`
dns_reply=1
test_dns 1 f00000000001 f000000000f0 $src_ip $dst_ip $dns_reply $dns_req_data $dns_resp_data

# NXT_RESUMEs should be 8.
$as_echo "ovn.at:7082: waiting until test 8 = \`cat ofctl_monitor*.log | grep -c NXT_RESUME\`..." >&5
ovs_wait_cond () {
    test 8 = `cat ofctl_monitor*.log | grep -c NXT_RESUME`
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7082: wait failed" >&5

    $as_echo "ovn.at:7082" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7082"
fi


$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/vif1-tx.pcap > 1.packets
cat 1.expected | cut -c -48 > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:7086: cat 1.packets | cut -c -48"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:7086"
( $at_check_trace; cat 1.packets | cut -c -48
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7086"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

# Skipping the IPv4 checksum.
cat 1.expected | cut -c 53- > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:7089: cat 1.packets | cut -c 53-"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:7089"
( $at_check_trace; cat 1.packets | cut -c 53-
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7089"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }


reset_pcap_file hv1-vif1 hv1/vif1
reset_pcap_file hv1-vif2 hv1/vif2
rm -f 1.expected
rm -f 2.expected

# Try DNS query over IPv6
set_dns_params vm1
src_ip=aef00000000000000000000000000004
dst_ip=aef00000000000000000000000000001
dns_reply=1
test_dns6 1 f00000000001 f000000000f0 $src_ip $dst_ip $dns_reply $dns_req_data $dns_resp_data

# NXT_RESUMEs should be 9.
$as_echo "ovn.at:7104: waiting until test 9 = \`cat ofctl_monitor*.log | grep -c NXT_RESUME\`..." >&5
ovs_wait_cond () {
    test 9 = `cat ofctl_monitor*.log | grep -c NXT_RESUME`
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7104: wait failed" >&5

    $as_echo "ovn.at:7104" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7104"
fi


$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/vif1-tx.pcap > 1.packets
# Skipping the UDP checksum.
cat 1.expected | cut -c 1-120,125- > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:7109: cat 1.packets | cut -c 1-120,125-"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:7109"
( $at_check_trace; cat 1.packets | cut -c 1-120,125-
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7109"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }


reset_pcap_file hv1-vif1 hv1/vif1
reset_pcap_file hv1-vif2 hv1/vif2
rm -f 1.expected
rm -f 2.expected

as hv1
 { set +x
$as_echo "$at_srcdir/ovn.at:7117: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:7117"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7117"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7117: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:7117"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7117"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ovn.at:7117: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7117: wait failed" >&5

    $as_echo "ovn.at:7117" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7117"
fi

{ set +x
$as_echo "$at_srcdir/ovn.at:7118: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:7118"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7118"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7118: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:7118"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7118"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ovn.at:7118: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7118: wait failed" >&5

    $as_echo "ovn.at:7118" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7118"
fi

{ set +x
$as_echo "$at_srcdir/ovn.at:7119: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:7119"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7119"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7119: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:7119"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7119"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ovn.at:7119: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7119: wait failed" >&5

    $as_echo "ovn.at:7119" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7119"
fi


as ovn-sb
{ set +x
$as_echo "$at_srcdir/ovn.at:7122: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:7122"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7122"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7122: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:7122"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7122"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ovn.at:7122: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7122: wait failed" >&5

    $as_echo "ovn.at:7122" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7122"
fi


as ovn-nb
{ set +x
$as_echo "$at_srcdir/ovn.at:7125: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:7125"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7125"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7125: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:7125"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7125"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ovn.at:7125: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7125: wait failed" >&5

    $as_echo "ovn.at:7125" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7125"
fi


as northd
{ set +x
$as_echo "$at_srcdir/ovn.at:7128: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:7128"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7128"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7128: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:7128"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7128"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ovn.at:7128: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7128: wait failed" >&5

    $as_echo "ovn.at:7128" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7128"
fi


as main
{ set +x
$as_echo "$at_srcdir/ovn.at:7131: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:7131"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7131"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7131: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:7131"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7131"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ovn.at:7131: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7131: wait failed" >&5

    $as_echo "ovn.at:7131" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7131"
fi

{ set +x
$as_echo "$at_srcdir/ovn.at:7132: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:7132"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7132"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7132: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:7132"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7132"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ovn.at:7132: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7132: wait failed" >&5

    $as_echo "ovn.at:7132" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7132"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2470
#AT_START_2471
at_fn_group_banner 2471 'ovn.at:7135' \
  "ovn -- 4 HV, 1 LS, 1 LR, packet test with HA distributed router gateway port" "" 125
at_xfail=no
(
  $as_echo "2471. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn.at:7136" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:7136"
ovn_start

net_add n1

sim_add hv1
as hv1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.1
ovs-vsctl -- add-port br-int hv1-vif1 -- \
    set interface hv1-vif1 external-ids:iface-id=foo1 \
    options:tx_pcap=hv1/vif1-tx.pcap \
    options:rxq_pcap=hv1/vif1-rx.pcap \
    ofport-request=1

sim_add gw1
as gw1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.2

sim_add gw2
as gw2
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.4

sim_add ext1
as ext1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.3
ovs-vsctl -- add-port br-int ext1-vif1 -- \
    set interface ext1-vif1 external-ids:iface-id=outside1 \
    options:tx_pcap=ext1/vif1-tx.pcap \
    options:rxq_pcap=ext1/vif1-rx.pcap \
    ofport-request=1

# Pre-populate the hypervisors' ARP tables so that we don't lose any
# packets for ARP resolution (native tunneling doesn't queue packets
# for ARP resolution).
{ set +x
$as_echo "$at_srcdir/ovn.at:7174: ovn_populate_arp__"
at_fn_check_prepare_trace "ovn.at:7174"
( $at_check_trace; ovn_populate_arp__
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7174"
$at_failed && at_fn_log_failure
$at_traceon; }


ovn-nbctl create Logical_Router name=R1

ovn-nbctl ls-add foo
ovn-nbctl ls-add alice
ovn-nbctl ls-add outside

# Connect foo to R1
ovn-nbctl lrp-add R1 foo 00:00:01:01:02:03 192.168.1.1/24
ovn-nbctl lsp-add foo rp-foo -- set Logical_Switch_Port rp-foo \
    type=router options:router-port=foo \
    -- lsp-set-addresses rp-foo router

# Connect alice to R1 as distributed router gateway port on gw1
ovn-nbctl lrp-add R1 alice 00:00:02:01:02:03 172.16.1.1/24

ovn-nbctl \
    --id=@gc0 create Gateway_Chassis name=alice_gw1 \
                                     chassis_name=gw1 \
                                     priority=20 -- \
    --id=@gc1 create Gateway_Chassis name=alice_gw2 \
                                     chassis_name=gw2 \
                                     priority=10 -- \
    set Logical_Router_Port alice 'gateway_chassis=@gc0,@gc1'

ovn-nbctl lsp-add alice rp-alice -- set Logical_Switch_Port rp-alice \
    type=router options:router-port=alice \
    -- lsp-set-addresses rp-alice router

# Create logical port foo1 in foo
ovn-nbctl lsp-add foo foo1 \
-- lsp-set-addresses foo1 "f0:00:00:01:02:03 192.168.1.2"

# Create logical port outside1 in outside
ovn-nbctl lsp-add outside outside1 \
-- lsp-set-addresses outside1 "f0:00:00:01:02:04 172.16.1.3"

# Create localnet port in alice
ovn-nbctl lsp-add alice ln-alice
ovn-nbctl lsp-set-addresses ln-alice unknown
ovn-nbctl lsp-set-type ln-alice localnet
ovn-nbctl lsp-set-options ln-alice network_name=phys

# Create localnet port in outside
ovn-nbctl lsp-add outside ln-outside
ovn-nbctl lsp-set-addresses ln-outside unknown
ovn-nbctl lsp-set-type ln-outside localnet
ovn-nbctl lsp-set-options ln-outside network_name=phys

# Create bridge-mappings on gw1, gw2 and ext1, hv1 doesn't need
# mapping to the external network, is the one generating packets
as gw1 ovs-vsctl set open . external-ids:ovn-bridge-mappings=phys:br-phys
as gw2 ovs-vsctl set open . external-ids:ovn-bridge-mappings=phys:br-phys
as ext1 ovs-vsctl set open . external-ids:ovn-bridge-mappings=phys:br-phys

{ set +x
$as_echo "$at_srcdir/ovn.at:7230: ovn-nbctl --timeout=3 --wait=sb sync"
at_fn_check_prepare_trace "ovn.at:7230"
( $at_check_trace; ovn-nbctl --timeout=3 --wait=sb sync
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7230"
$at_failed && at_fn_log_failure
$at_traceon; }


# Allow some time for ovn-northd and ovn-controller to catch up.
# XXX This should be more systematic.
sleep 2

ip_to_hex() {
    printf "%02x%02x%02x%02x" "$@"
}

reset_pcap_file() {
    local iface=$1
    local pcap_file=$2
    ovs-vsctl -- set Interface $iface options:tx_pcap=dummy-tx.pcap \
options:rxq_pcap=dummy-rx.pcap
    rm -f ${pcap_file}*.pcap
    ovs-vsctl -- set Interface $iface options:tx_pcap=${pcap_file}-tx.pcap \
options:rxq_pcap=${pcap_file}-rx.pcap
}

test_ip_packet()
{
    local active_gw=$1
    local backup_gw=$2

    # Send ip packet between foo1 and outside1
    src_mac="f00000010203" # foo1 mac
    dst_mac="000001010203" # rp-foo mac (internal router leg)
    src_ip=`ip_to_hex 192 168 1 2`
    dst_ip=`ip_to_hex 172 16 1 3`
    packet=${dst_mac}${src_mac}08004500001c0000000040110000${src_ip}${dst_ip}0035111100080000

    # ARP request packet to expect at outside1
    #arp_request=ffffffffffff${src_mac}08060001080006040001${src_mac}${src_ip}000000000000${dst_ip}

    as hv1 ovs-appctl netdev-dummy/receive hv1-vif1 $packet

    # Send ARP reply from outside1 back to the router
    # XXX: note, we could avoid this if we plug this port into a netns
    # and setup the IP address into the port, so the kernel would simply reply
    src_mac="000002010203"
    reply_mac="f00000010204"
    dst_ip=`ip_to_hex 172 16 1 3`
    src_ip=`ip_to_hex 172 16 1 1`
    arp_reply=${src_mac}${reply_mac}08060001080006040002${reply_mac}${dst_ip}${src_mac}${src_ip}

    as ext1 ovs-appctl netdev-dummy/receive ext1-vif1 $arp_reply

    # Packet to Expect at ext1 chassis, outside1 port
    src_mac="000002010203"
    dst_mac="f00000010204"
    src_ip=`ip_to_hex 192 168 1 2`
    dst_ip=`ip_to_hex 172 16 1 3`
    expected=${dst_mac}${src_mac}08004500001c000000003f110100${src_ip}${dst_ip}0035111100080000
    echo $expected > ext1-vif1.expected

    as $active_gw reset_pcap_file br-phys_n1 $active_gw/br-phys_n1
    as $backup_gw reset_pcap_file br-phys_n1 $backup_gw/br-phys_n1
    as ext1 reset_pcap_file ext1-vif1 ext1/vif1

    # Resend packet from foo1 to outside1
    as hv1 ovs-appctl netdev-dummy/receive hv1-vif1 $packet

    sleep 1

    ovn_check_packets__ "ext1/vif1-tx.pcap" "ext1-vif1.expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:7295: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:7295"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7295"
$at_failed && at_fn_log_failure
$at_traceon; }

    $PYTHON "$top_srcdir/utilities/ovs-pcap.in" $active_gw/br-phys_n1-tx.pcap  > packets
    { set +x
$as_echo "$at_srcdir/ovn.at:7297: grep \$expected packets | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:7297"
( $at_check_trace; grep $expected packets | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7297"
$at_failed && at_fn_log_failure
$at_traceon; }

    $PYTHON "$top_srcdir/utilities/ovs-pcap.in" $backup_gw/br-phys_n1-tx.pcap  > packets
    { set +x
$as_echo "$at_srcdir/ovn.at:7299: grep \$expected packets | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:7299"
( $at_check_trace; grep $expected packets | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7299"
$at_failed && at_fn_log_failure
$at_traceon; }

}

test_ip_packet gw1 gw2

ovn-nbctl --timeout=3 --wait=hv \
    --id=@gc0 create Gateway_Chassis name=alice_gw1 \
                                     chassis_name=gw1 \
                                     priority=10 -- \
    --id=@gc1 create Gateway_Chassis name=alice_gw2 \
                                     chassis_name=gw2 \
                                     priority=20 -- \
    set Logical_Router_Port alice 'gateway_chassis=@gc0,@gc1'

test_ip_packet gw2 gw1




    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:7315: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:7315"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7315: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:7315"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7315: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7315: wait failed" >&5

    $as_echo "ovn.at:7315" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7315"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:7315: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:7315"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7315: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:7315"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7315: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7315: wait failed" >&5

    $as_echo "ovn.at:7315" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7315"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:7315: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:7315"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7315: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:7315"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7315: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7315: wait failed" >&5

    $as_echo "ovn.at:7315" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7315"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:7315: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:7315"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7315: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:7315"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7315: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7315: wait failed" >&5

    $as_echo "ovn.at:7315" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7315"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:7315: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:7315"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7315: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:7315"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7315: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7315: wait failed" >&5

    $as_echo "ovn.at:7315" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7315"
fi





    as gw1
    if test "gw1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:7315: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:7315"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7315: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:7315"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7315: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7315: wait failed" >&5

    $as_echo "ovn.at:7315" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7315"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:7315: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:7315"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7315: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:7315"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7315: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7315: wait failed" >&5

    $as_echo "ovn.at:7315" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7315"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:7315: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:7315"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7315: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:7315"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7315: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7315: wait failed" >&5

    $as_echo "ovn.at:7315" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7315"
fi

    fi

    as gw1
    { set +x
$as_echo "$at_srcdir/ovn.at:7315: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:7315"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7315: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:7315"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7315: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7315: wait failed" >&5

    $as_echo "ovn.at:7315" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7315"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:7315: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:7315"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7315: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:7315"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7315: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7315: wait failed" >&5

    $as_echo "ovn.at:7315" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7315"
fi





    as gw2
    if test "gw2" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:7315: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:7315"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7315: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:7315"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7315: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7315: wait failed" >&5

    $as_echo "ovn.at:7315" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7315"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:7315: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:7315"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7315: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:7315"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7315: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7315: wait failed" >&5

    $as_echo "ovn.at:7315" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7315"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:7315: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:7315"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7315: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:7315"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7315: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7315: wait failed" >&5

    $as_echo "ovn.at:7315" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7315"
fi

    fi

    as gw2
    { set +x
$as_echo "$at_srcdir/ovn.at:7315: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:7315"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7315: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:7315"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7315: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7315: wait failed" >&5

    $as_echo "ovn.at:7315" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7315"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:7315: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:7315"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7315: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:7315"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7315: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7315: wait failed" >&5

    $as_echo "ovn.at:7315" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7315"
fi





    as ext1
    if test "ext1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:7315: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:7315"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7315: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:7315"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7315: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7315: wait failed" >&5

    $as_echo "ovn.at:7315" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7315"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:7315: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:7315"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7315: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:7315"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7315: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7315: wait failed" >&5

    $as_echo "ovn.at:7315" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7315"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:7315: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:7315"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7315: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:7315"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7315: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7315: wait failed" >&5

    $as_echo "ovn.at:7315" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7315"
fi

    fi

    as ext1
    { set +x
$as_echo "$at_srcdir/ovn.at:7315: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:7315"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7315: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:7315"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7315: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7315: wait failed" >&5

    $as_echo "ovn.at:7315" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7315"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:7315: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:7315"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7315: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:7315"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7315: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7315: wait failed" >&5

    $as_echo "ovn.at:7315" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7315"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:7315: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:7315"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7315: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:7315"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7315: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7315: wait failed" >&5

    $as_echo "ovn.at:7315" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7315"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:7315: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:7315"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7315: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:7315"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7315: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7315: wait failed" >&5

    $as_echo "ovn.at:7315" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7315"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:7315: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:7315"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7315: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:7315"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7315: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7315: wait failed" >&5

    $as_echo "ovn.at:7315" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7315"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:7315: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:7315"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7315: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:7315"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7315: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7315: wait failed" >&5

    $as_echo "ovn.at:7315" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7315"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:7315: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:7315"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7315: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:7315"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7315: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7315: wait failed" >&5

    $as_echo "ovn.at:7315" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7315"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:7315: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:7315"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7315: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:7315"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7315"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7315: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7315: wait failed" >&5

    $as_echo "ovn.at:7315" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7315"
fi



  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2471
#AT_START_2472
at_fn_group_banner 2472 'ovn.at:7318' \
  "ovn -- 4 HV, 3 LS, 2 LR, packet test with HA distributed router gateway port" "" 125
at_xfail=no
(
  $as_echo "2472. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn.at:7319" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:7319"
ovn_start

net_add n1

sim_add hv1
as hv1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.1
ovs-vsctl -- add-port br-int hv1-vif1 -- \
    set interface hv1-vif1 external-ids:iface-id=foo1 \
    options:tx_pcap=hv1/vif1-tx.pcap \
    options:rxq_pcap=hv1/vif1-rx.pcap \
    ofport-request=1

sim_add gw1
as gw1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.2

sim_add gw2
as gw2
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.4

sim_add ext1
as ext1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.3
ovs-vsctl -- add-port br-int ext1-vif1 -- \
    set interface ext1-vif1 external-ids:iface-id=outside1 \
    options:tx_pcap=ext1/vif1-tx.pcap \
    options:rxq_pcap=ext1/vif1-rx.pcap \
    ofport-request=1

# Pre-populate the hypervisors' ARP tables so that we don't lose any
# packets for ARP resolution (native tunneling doesn't queue packets
# for ARP resolution).
{ set +x
$as_echo "$at_srcdir/ovn.at:7357: ovn_populate_arp__"
at_fn_check_prepare_trace "ovn.at:7357"
( $at_check_trace; ovn_populate_arp__
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7357"
$at_failed && at_fn_log_failure
$at_traceon; }


ovn-nbctl create Logical_Router name=R0
ovn-nbctl create Logical_Router name=R1

ovn-nbctl ls-add foo
ovn-nbctl ls-add join
ovn-nbctl ls-add alice
ovn-nbctl ls-add outside

#Connect foo to R0
ovn-nbctl lrp-add R0 R0-foo 00:00:01:01:02:03 192.168.1.1/24
ovn-nbctl lsp-add foo foo-R0 -- set Logical_Switch_Port foo-R0 \
    type=router options:router-port=R0-foo \
    -- lsp-set-addresses foo-R0 router

#Connect R0 to join
ovn-nbctl lrp-add R0 R0-join 00:00:0d:01:02:03 100.60.1.1/24
ovn-nbctl lsp-add join join-R0 -- set Logical_Switch_Port join-R0 \
    type=router options:router-port=R0-join \
    -- lsp-set-addresses join-R0 router

#Connect join to R1
ovn-nbctl lrp-add R1 R1-join 00:00:0e:01:02:03 100.60.1.2/24
ovn-nbctl lsp-add join join-R1 -- set Logical_Switch_Port join-R1 \
    type=router options:router-port=R1-join \
    -- lsp-set-addresses join-R1 router

#add route rules
ovn-nbctl lr-route-add R0 0.0.0.0/0 100.60.1.2
ovn-nbctl lr-route-add R1 192.168.0.0/16 100.60.1.1

# Connect alice to R1 as distributed router gateway port on gw1
ovn-nbctl lrp-add R1 alice 00:00:02:01:02:03 172.16.1.1/24

ovn-nbctl \
    --id=@gc0 create Gateway_Chassis name=alice_gw1 \
                                     chassis_name=gw1 \
                                     priority=20 -- \
    --id=@gc1 create Gateway_Chassis name=alice_gw2 \
                                     chassis_name=gw2 \
                                     priority=10 -- \
    set Logical_Router_Port alice 'gateway_chassis=@gc0,@gc1'

ovn-nbctl lsp-add alice rp-alice -- set Logical_Switch_Port rp-alice \
    type=router options:router-port=alice \
    -- lsp-set-addresses rp-alice router

# Create logical port foo1 in foo
ovn-nbctl lsp-add foo foo1 \
-- lsp-set-addresses foo1 "f0:00:00:01:02:03 192.168.1.2"

# Create logical port outside1 in outside
ovn-nbctl lsp-add outside outside1 \
-- lsp-set-addresses outside1 "f0:00:00:01:02:04 172.16.1.3"

# Create localnet port in alice
ovn-nbctl lsp-add alice ln-alice
ovn-nbctl lsp-set-addresses ln-alice unknown
ovn-nbctl lsp-set-type ln-alice localnet
ovn-nbctl lsp-set-options ln-alice network_name=phys

# Create localnet port in outside
ovn-nbctl lsp-add outside ln-outside
ovn-nbctl lsp-set-addresses ln-outside unknown
ovn-nbctl lsp-set-type ln-outside localnet
ovn-nbctl lsp-set-options ln-outside network_name=phys

# Create bridge-mappings on gw1, gw2 and ext1, hv1 doesn't need
# mapping to the external network, is the one generating packets
as gw1 ovs-vsctl set open . external-ids:ovn-bridge-mappings=phys:br-phys
as gw2 ovs-vsctl set open . external-ids:ovn-bridge-mappings=phys:br-phys
as ext1 ovs-vsctl set open . external-ids:ovn-bridge-mappings=phys:br-phys

{ set +x
$as_echo "$at_srcdir/ovn.at:7431: ovn-nbctl --timeout=3 --wait=sb sync"
at_fn_check_prepare_trace "ovn.at:7431"
( $at_check_trace; ovn-nbctl --timeout=3 --wait=sb sync
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7431"
$at_failed && at_fn_log_failure
$at_traceon; }


# Allow some time for ovn-northd and ovn-controller to catch up.
# XXX This should be more systematic.
sleep 2

ip_to_hex() {
    printf "%02x%02x%02x%02x" "$@"
}

reset_pcap_file() {
    local iface=$1
    local pcap_file=$2
    ovs-vsctl -- set Interface $iface options:tx_pcap=dummy-tx.pcap \
options:rxq_pcap=dummy-rx.pcap
    rm -f ${pcap_file}*.pcap
    ovs-vsctl -- set Interface $iface options:tx_pcap=${pcap_file}-tx.pcap \
options:rxq_pcap=${pcap_file}-rx.pcap
}

test_ip_packet()
{
    local active_gw=$1
    local backup_gw=$2

    # Send ip packet between foo1 and outside1
    src_mac="f00000010203" # foo1 mac
    dst_mac="000001010203" # foo-R0 mac (internal router leg)
    src_ip=`ip_to_hex 192 168 1 2`
    dst_ip=`ip_to_hex 172 16 1 3`
    packet=${dst_mac}${src_mac}08004500001c0000000040110000${src_ip}${dst_ip}0035111100080000

    # ARP request packet to expect at outside1
    #arp_request=ffffffffffff${src_mac}08060001080006040001${src_mac}${src_ip}000000000000${dst_ip}

    as hv1 ovs-appctl netdev-dummy/receive hv1-vif1 $packet

    # Send ARP reply from outside1 back to the router
    # XXX: note, we could avoid this if we plug this port into a netns
    # and setup the IP address into the port, so the kernel would simply reply
    src_mac="000002010203"
    reply_mac="f00000010204"
    dst_ip=`ip_to_hex 172 16 1 3`
    src_ip=`ip_to_hex 172 16 1 1`
    arp_reply=${src_mac}${reply_mac}08060001080006040002${reply_mac}${dst_ip}${src_mac}${src_ip}

    as ext1 ovs-appctl netdev-dummy/receive ext1-vif1 $arp_reply

    # Packet to Expect at ext1 chassis, outside1 port
    src_mac="000002010203"
    dst_mac="f00000010204"
    src_ip=`ip_to_hex 192 168 1 2`
    dst_ip=`ip_to_hex 172 16 1 3`
    expected=${dst_mac}${src_mac}08004500001c000000003e110200${src_ip}${dst_ip}0035111100080000
    echo $expected > ext1-vif1.expected

    as $active_gw reset_pcap_file br-phys_n1 $active_gw/br-phys_n1
    as $backup_gw reset_pcap_file br-phys_n1 $backup_gw/br-phys_n1
    as ext1 reset_pcap_file ext1-vif1 ext1/vif1

    # Resend packet from foo1 to outside1
    as hv1 ovs-appctl netdev-dummy/receive hv1-vif1 $packet

    sleep 1

    ovn_check_packets__ "ext1/vif1-tx.pcap" "ext1-vif1.expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:7496: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:7496"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7496"
$at_failed && at_fn_log_failure
$at_traceon; }

    $PYTHON "$top_srcdir/utilities/ovs-pcap.in" $active_gw/br-phys_n1-tx.pcap  > packets
    { set +x
$as_echo "$at_srcdir/ovn.at:7498: grep \$expected packets | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:7498"
( $at_check_trace; grep $expected packets | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7498"
$at_failed && at_fn_log_failure
$at_traceon; }

    $PYTHON "$top_srcdir/utilities/ovs-pcap.in" $backup_gw/br-phys_n1-tx.pcap  > packets
    { set +x
$as_echo "$at_srcdir/ovn.at:7500: grep \$expected packets | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:7500"
( $at_check_trace; grep $expected packets | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7500"
$at_failed && at_fn_log_failure
$at_traceon; }

}

test_ip_packet gw1 gw2

ovn-nbctl --timeout=3 --wait=hv \
    --id=@gc0 create Gateway_Chassis name=alice_gw1 \
                                     chassis_name=gw1 \
                                     priority=10 -- \
    --id=@gc1 create Gateway_Chassis name=alice_gw2 \
                                     chassis_name=gw2 \
                                     priority=20 -- \
    set Logical_Router_Port alice 'gateway_chassis=@gc0,@gc1'

test_ip_packet gw2 gw1




    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:7516: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:7516"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7516: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:7516"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7516: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7516: wait failed" >&5

    $as_echo "ovn.at:7516" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7516"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:7516: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:7516"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7516: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:7516"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7516: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7516: wait failed" >&5

    $as_echo "ovn.at:7516" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7516"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:7516: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:7516"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7516: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:7516"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7516: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7516: wait failed" >&5

    $as_echo "ovn.at:7516" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7516"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:7516: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:7516"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7516: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:7516"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7516: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7516: wait failed" >&5

    $as_echo "ovn.at:7516" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7516"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:7516: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:7516"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7516: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:7516"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7516: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7516: wait failed" >&5

    $as_echo "ovn.at:7516" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7516"
fi





    as gw1
    if test "gw1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:7516: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:7516"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7516: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:7516"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7516: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7516: wait failed" >&5

    $as_echo "ovn.at:7516" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7516"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:7516: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:7516"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7516: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:7516"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7516: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7516: wait failed" >&5

    $as_echo "ovn.at:7516" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7516"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:7516: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:7516"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7516: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:7516"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7516: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7516: wait failed" >&5

    $as_echo "ovn.at:7516" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7516"
fi

    fi

    as gw1
    { set +x
$as_echo "$at_srcdir/ovn.at:7516: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:7516"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7516: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:7516"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7516: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7516: wait failed" >&5

    $as_echo "ovn.at:7516" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7516"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:7516: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:7516"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7516: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:7516"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7516: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7516: wait failed" >&5

    $as_echo "ovn.at:7516" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7516"
fi





    as gw2
    if test "gw2" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:7516: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:7516"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7516: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:7516"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7516: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7516: wait failed" >&5

    $as_echo "ovn.at:7516" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7516"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:7516: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:7516"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7516: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:7516"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7516: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7516: wait failed" >&5

    $as_echo "ovn.at:7516" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7516"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:7516: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:7516"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7516: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:7516"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7516: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7516: wait failed" >&5

    $as_echo "ovn.at:7516" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7516"
fi

    fi

    as gw2
    { set +x
$as_echo "$at_srcdir/ovn.at:7516: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:7516"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7516: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:7516"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7516: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7516: wait failed" >&5

    $as_echo "ovn.at:7516" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7516"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:7516: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:7516"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7516: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:7516"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7516: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7516: wait failed" >&5

    $as_echo "ovn.at:7516" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7516"
fi





    as ext1
    if test "ext1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:7516: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:7516"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7516: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:7516"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7516: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7516: wait failed" >&5

    $as_echo "ovn.at:7516" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7516"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:7516: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:7516"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7516: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:7516"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7516: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7516: wait failed" >&5

    $as_echo "ovn.at:7516" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7516"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:7516: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:7516"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7516: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:7516"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7516: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7516: wait failed" >&5

    $as_echo "ovn.at:7516" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7516"
fi

    fi

    as ext1
    { set +x
$as_echo "$at_srcdir/ovn.at:7516: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:7516"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7516: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:7516"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7516: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7516: wait failed" >&5

    $as_echo "ovn.at:7516" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7516"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:7516: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:7516"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7516: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:7516"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7516: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7516: wait failed" >&5

    $as_echo "ovn.at:7516" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7516"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:7516: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:7516"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7516: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:7516"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7516: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7516: wait failed" >&5

    $as_echo "ovn.at:7516" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7516"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:7516: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:7516"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7516: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:7516"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7516: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7516: wait failed" >&5

    $as_echo "ovn.at:7516" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7516"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:7516: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:7516"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7516: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:7516"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7516: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7516: wait failed" >&5

    $as_echo "ovn.at:7516" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7516"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:7516: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:7516"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7516: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:7516"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7516: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7516: wait failed" >&5

    $as_echo "ovn.at:7516" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7516"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:7516: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:7516"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7516: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:7516"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7516: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7516: wait failed" >&5

    $as_echo "ovn.at:7516" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7516"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:7516: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:7516"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7516: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:7516"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7516"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7516: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7516: wait failed" >&5

    $as_echo "ovn.at:7516" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7516"
fi



  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2472
#AT_START_2473
at_fn_group_banner 2473 'ovn.at:7519' \
  "ovn -- 1 LR with distributed router gateway port" "" 125
at_xfail=no
(
  $as_echo "2473. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn.at:7520" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:7520"
ovn_start

# Logical network:
# One LR R1 that has switches foo (192.168.1.0/24) and
# alice (172.16.1.0/24) connected to it.  The logical port
# between R1 and alice has a "redirect-chassis" specified,
# i.e. it is the distributed router gateway port.
# Switch alice also has a localnet port defined.
# An additional switch outside has a localnet port and the
# same subnet as alice (172.16.1.0/24).

# Physical network:
# Three hypervisors hv[123].
# hv1 hosts vif foo1.
# hv2 is the "redirect-chassis" that hosts the distributed
# router gateway port.
# hv3 hosts vif outside1.
# In order to show that connectivity works only through hv2,
# an initial round of tests is run without any bridge-mapping
# defined for the localnet on hv2.  These tests are expected
# to fail.
# Subsequent tests are run after defining the bridge-mapping
# for the localnet on hv2. These tests are expected to succeed.

# Create three hypervisors and create OVS ports corresponding
# to logical ports.
net_add n1

sim_add hv1
as hv1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.1
ovs-vsctl -- add-port br-int hv1-vif1 -- \
    set interface hv1-vif1 external-ids:iface-id=foo1 \
    options:tx_pcap=hv1/vif1-tx.pcap \
    options:rxq_pcap=hv1/vif1-rx.pcap \
    ofport-request=1

sim_add hv2
as hv2
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.2

sim_add hv3
as hv3
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.3
ovs-vsctl -- add-port br-int hv3-vif1 -- \
    set interface hv3-vif1 external-ids:iface-id=outside1 \
    options:tx_pcap=hv3/vif1-tx.pcap \
    options:rxq_pcap=hv3/vif1-rx.pcap \
    ofport-request=1

# Pre-populate the hypervisors' ARP tables so that we don't lose any
# packets for ARP resolution (native tunneling doesn't queue packets
# for ARP resolution).
{ set +x
$as_echo "$at_srcdir/ovn.at:7577: ovn_populate_arp__"
at_fn_check_prepare_trace "ovn.at:7577"
( $at_check_trace; ovn_populate_arp__
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7577"
$at_failed && at_fn_log_failure
$at_traceon; }


ovn-nbctl create Logical_Router name=R1

ovn-nbctl ls-add foo
ovn-nbctl ls-add alice
ovn-nbctl ls-add outside

# Connect foo to R1
ovn-nbctl lrp-add R1 foo 00:00:01:01:02:03 192.168.1.1/24
ovn-nbctl lsp-add foo rp-foo -- set Logical_Switch_Port rp-foo \
    type=router options:router-port=foo \
    -- lsp-set-addresses rp-foo router

# Connect alice to R1 as distributed router gateway port on hv2
ovn-nbctl lrp-add R1 alice 00:00:02:01:02:03 172.16.1.1/24 \
    -- set Logical_Router_Port alice options:redirect-chassis="hv2"
ovn-nbctl lsp-add alice rp-alice -- set Logical_Switch_Port rp-alice \
    type=router options:router-port=alice \
    -- lsp-set-addresses rp-alice router

# Create logical port foo1 in foo
ovn-nbctl lsp-add foo foo1 \
-- lsp-set-addresses foo1 "f0:00:00:01:02:03 192.168.1.2"

# Create logical port outside1 in outside
ovn-nbctl lsp-add outside outside1 \
-- lsp-set-addresses outside1 "f0:00:00:01:02:04 172.16.1.3"

# Create localnet port in alice
ovn-nbctl lsp-add alice ln-alice
ovn-nbctl lsp-set-addresses ln-alice unknown
ovn-nbctl lsp-set-type ln-alice localnet
ovn-nbctl lsp-set-options ln-alice network_name=phys

# Create localnet port in outside
ovn-nbctl lsp-add outside ln-outside
ovn-nbctl lsp-set-addresses ln-outside unknown
ovn-nbctl lsp-set-type ln-outside localnet
ovn-nbctl lsp-set-options ln-outside network_name=phys

# Create bridge-mappings on hv1 and hv3, leaving hv2 for later
as hv1 ovs-vsctl set open . external-ids:ovn-bridge-mappings=phys:br-phys
as hv3 ovs-vsctl set open . external-ids:ovn-bridge-mappings=phys:br-phys


# Allow some time for ovn-northd and ovn-controller to catch up.
# XXX This should be more systematic.
sleep 2

echo "---------NB dump-----"
ovn-nbctl show
echo "---------------------"
ovn-nbctl list logical_router
echo "---------------------"
ovn-nbctl list logical_router_port
echo "---------------------"

echo "---------SB dump-----"
ovn-sbctl list datapath_binding
echo "---------------------"
ovn-sbctl list port_binding
echo "---------------------"
ovn-sbctl dump-flows
echo "---------------------"
ovn-sbctl list chassis
ovn-sbctl list encap
echo "------ Gateway_Chassis dump (SBDB) -------"
ovn-sbctl list Gateway_Chassis
echo "------ Port_Binding chassisredirect -------"
ovn-sbctl find Port_Binding type=chassisredirect
echo "-------------------------------------------"

echo "------ hv1 dump ----------"
as hv1 ovs-ofctl show br-int
as hv1 ovs-ofctl dump-flows br-int
echo "------ hv2 dump ----------"
as hv2 ovs-ofctl show br-int
as hv2 ovs-ofctl dump-flows br-int
echo "------ hv3 dump ----------"
as hv3 ovs-ofctl show br-int
as hv3 ovs-ofctl dump-flows br-int
echo "--------------------------"


# Check that redirect mapping is programmed only on hv2
{ set +x
$as_echo "$at_srcdir/ovn.at:7663: as hv1 ovs-ofctl dump-flows br-int table=33 | grep =0x3,metadata=0x1 | wc -l"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:7663"
( $at_check_trace; as hv1 ovs-ofctl dump-flows br-int table=33 | grep =0x3,metadata=0x1 | wc -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7663"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:7665: as hv2 ovs-ofctl dump-flows br-int table=33 | grep =0x3,metadata=0x1 | grep load:0x2- | wc -l"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:7665"
( $at_check_trace; as hv2 ovs-ofctl dump-flows br-int table=33 | grep =0x3,metadata=0x1 | grep load:0x2- | wc -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7665"
$at_failed && at_fn_log_failure
$at_traceon; }

# Check that hv1 sends chassisredirect port traffic to hv2
{ set +x
$as_echo "$at_srcdir/ovn.at:7668: as hv1 ovs-ofctl dump-flows br-int table=32 | grep =0x3,metadata=0x1 | grep output | wc -l"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:7668"
( $at_check_trace; as hv1 ovs-ofctl dump-flows br-int table=32 | grep =0x3,metadata=0x1 | grep output | wc -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7668"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:7670: as hv2 ovs-ofctl dump-flows br-int table=32 | grep =0x3,metadata=0x1 | wc -l"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:7670"
( $at_check_trace; as hv2 ovs-ofctl dump-flows br-int table=32 | grep =0x3,metadata=0x1 | wc -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7670"
$at_failed && at_fn_log_failure
$at_traceon; }

# Check that arp reply on distributed gateway port is only programmed on hv2
{ set +x
$as_echo "$at_srcdir/ovn.at:7673: as hv1 ovs-ofctl dump-flows br-int | grep arp | grep =0x2,metadata=0x1 | wc -l"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:7673"
( $at_check_trace; as hv1 ovs-ofctl dump-flows br-int | grep arp | grep =0x2,metadata=0x1 | wc -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7673"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:7675: as hv2 ovs-ofctl dump-flows br-int | grep arp | grep =0x2,metadata=0x1 | wc -l"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:7675"
( $at_check_trace; as hv2 ovs-ofctl dump-flows br-int | grep arp | grep =0x2,metadata=0x1 | wc -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7675"
$at_failed && at_fn_log_failure
$at_traceon; }



ip_to_hex() {
    printf "%02x%02x%02x%02x" "$@"
}


: > hv2-vif1.expected
: > hv3-vif1.expected

# test_arp INPORT SHA SPA TPA [REPLY_HA]
#
# Causes a packet to be received on INPORT.  The packet is an ARP
# request with SHA, SPA, and TPA as specified.  If REPLY_HA is provided, then
# it should be the hardware address of the target to expect to receive in an
# ARP reply; otherwise no reply is expected.
#
# INPORT is an logical switch port number, e.g. 11 for vif11.
# SHA and REPLY_HA are each 12 hex digits.
# SPA and TPA are each 8 hex digits.
test_arp() {
    local hv=$1 inport=$2 sha=$3 spa=$4 tpa=$5 reply_ha=$6
    local request=ffffffffffff${sha}08060001080006040001${sha}${spa}ffffffffffff${tpa}
    as hv$hv ovs-appctl netdev-dummy/receive hv${hv}-vif$inport $request

    if test X$reply_ha != X; then
        # Expect to receive the reply, if any.
        local reply=${sha}${reply_ha}08060001080006040002${reply_ha}${tpa}${sha}${spa}
        echo $reply >> hv${hv}-vif$inport.expected
    fi
}

rtr_ip=$(ip_to_hex 172 16 1 1)
foo_ip=$(ip_to_hex 192 168 1 2)
outside_ip=$(ip_to_hex 172 16 1 3)

echo $rtr_ip
echo $foo_ip
echo $outside_ip

# ARP for router IP address from outside1, no response expected
test_arp 3 1 f00000010204 $outside_ip $rtr_ip

# Now check the packets actually received against the ones expected.
ovn_check_packets__ "hv3/vif1-tx.pcap" "hv3-vif1.expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:7721: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:7721"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7721"
$at_failed && at_fn_log_failure
$at_traceon; }


# Send ip packet between foo1 and outside1
src_mac="f00000010203"
dst_mac="000001010203"
src_ip=`ip_to_hex 192 168 1 2`
dst_ip=`ip_to_hex 172 16 1 3`
packet=${dst_mac}${src_mac}08004500001c0000000040110000${src_ip}${dst_ip}0035111100080000

# Now check the packets actually received against the ones expected.
ovn_check_packets__ "hv3/vif1-tx.pcap" "hv3-vif1.expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:7731: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:7731"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7731"
$at_failed && at_fn_log_failure
$at_traceon; }


# Now add bridge-mappings on hv2, which should make everything work
as hv2 ovs-vsctl set open . external-ids:ovn-bridge-mappings=phys:br-phys

# Allow some time for ovn-northd and ovn-controller to catch up.
# XXX This should be more systematic.
sleep 2

# ARP for router IP address from outside1
test_arp 3 1 f00000010204 $outside_ip $rtr_ip 000002010203

# Now check the packets actually received against the ones expected.
ovn_check_packets__ "hv3/vif1-tx.pcap" "hv3-vif1.expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:7744: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:7744"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7744"
$at_failed && at_fn_log_failure
$at_traceon; }


# Send ip packet between foo1 and outside1
src_mac="f00000010203"
dst_mac="000001010203"
src_ip=`ip_to_hex 192 168 1 2`
dst_ip=`ip_to_hex 172 16 1 3`
packet=${dst_mac}${src_mac}08004500001c0000000040110000${src_ip}${dst_ip}0035111100080000

# ARP request packet to expect at outside1
src_mac="000002010203"
src_ip=`ip_to_hex 172 16 1 1`
arp_request=ffffffffffff${src_mac}08060001080006040001${src_mac}${src_ip}000000000000${dst_ip}

as hv1 ovs-appctl netdev-dummy/receive hv1-vif1 $packet

echo $arp_request >> hv3-vif1.expected
ovn_check_packets__ "hv3/vif1-tx.pcap" "hv3-vif1.expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:7761: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:7761"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7761"
$at_failed && at_fn_log_failure
$at_traceon; }


# Send ARP reply from outside1 back to the router
reply_mac="f00000010204"
arp_reply=${src_mac}${reply_mac}08060001080006040002${reply_mac}${dst_ip}${src_mac}${src_ip}

as hv3 ovs-appctl netdev-dummy/receive hv3-vif1 $arp_reply

# Allow some time for ovn-northd and ovn-controller to catch up.
# XXX This should be more systematic.
sleep 1

# Packet to Expect at outside1
src_mac="000002010203"
dst_mac="f00000010204"
src_ip=`ip_to_hex 192 168 1 2`
dst_ip=`ip_to_hex 172 16 1 3`
expected=${dst_mac}${src_mac}08004500001c000000003f110100${src_ip}${dst_ip}0035111100080000

# Resend packet from foo1 to outside1
as hv1 ovs-appctl netdev-dummy/receive hv1-vif1 $packet

echo "------ hv1 dump ----------"
as hv1 ovs-ofctl show br-int
as hv1 ovs-ofctl dump-flows br-int
echo "------ hv2 dump ----------"
as hv2 ovs-ofctl show br-int
as hv2 ovs-ofctl dump-flows br-int
echo "------ hv3 dump ----------"
as hv3 ovs-ofctl show br-int
as hv3 ovs-ofctl dump-flows br-int
echo "----------------------------"

echo $expected >> hv3-vif1.expected
ovn_check_packets__ "hv3/vif1-tx.pcap" "hv3-vif1.expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:7795: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:7795"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7795"
$at_failed && at_fn_log_failure
$at_traceon; }


#Check ovn-trace over "chassisredirect" port

ovn_trace () {
    ovn-trace --all "$@" | tee trace | sed '1,/Minimal trace/d'
}

echo 'ip.ttl--;' > expout
echo 'eth.src = 00:00:02:01:02:03;' >> expout
echo 'eth.dst = f0:00:00:01:02:04;' >> expout
echo 'output("ln-alice");' >> expout
{ set +x
$as_echo "$at_srcdir/ovn.at:7807: ovn_trace foo 'inport == \"foo1\" && eth.src == f0:00:00:01:02:03 && eth.dst == 00:00:01:01:02:03 && ip4.src == 192.168.1.2 && ip4.dst == 172.16.1.3 && ip.ttl == 0xff'"
at_fn_check_prepare_trace "ovn.at:7807"
( $at_check_trace; ovn_trace foo 'inport == "foo1" && eth.src == f0:00:00:01:02:03 && eth.dst == 00:00:01:01:02:03 && ip4.src == 192.168.1.2 && ip4.dst == 172.16.1.3 && ip.ttl == 0xff'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7807"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }


# Create logical port alice1 in alice on hv1
as hv1 ovs-vsctl -- add-port br-int hv1-vif2 -- \
    set interface hv1-vif2 external-ids:iface-id=alice1 \
    options:tx_pcap=hv1/vif2-tx.pcap \
    options:rxq_pcap=hv1/vif2-rx.pcap \
    ofport-request=1

ovn-nbctl lsp-add alice alice1 \
-- lsp-set-addresses alice1 "f0:00:00:01:02:05 172.16.1.4"

# Create logical port foo2 in foo on hv2
as hv2 ovs-vsctl -- add-port br-int hv2-vif1 -- \
    set interface hv2-vif1 external-ids:iface-id=foo2 \
    options:tx_pcap=hv2/vif1-tx.pcap \
    options:rxq_pcap=hv2/vif1-rx.pcap \
    ofport-request=1

ovn-nbctl lsp-add foo foo2 \
-- lsp-set-addresses foo2 "f0:00:00:01:02:06 192.168.1.3"

# Allow some time for ovn-northd and ovn-controller to catch up.
# XXX This should be more systematic.
sleep 1

: > hv1-vif2.expected

# Send ip packet between alice1 and foo2
src_mac="f00000010205"
dst_mac="000002010203"
src_ip=`ip_to_hex 172 16 1 4`
dst_ip=`ip_to_hex 192 168 1 3`
packet=${dst_mac}${src_mac}08004500001c0000000040110000${src_ip}${dst_ip}0035111100080000

as hv1 ovs-appctl netdev-dummy/receive hv1-vif2 $packet

# Packet to Expect at foo2
src_mac="000001010203"
dst_mac="f00000010206"
src_ip=`ip_to_hex 172 16 1 4`
dst_ip=`ip_to_hex 192 168 1 3`
expected=${dst_mac}${src_mac}08004500001c000000003f110100${src_ip}${dst_ip}0035111100080000

echo $expected >> hv2-vif1.expected
ovn_check_packets__ "hv2/vif1-tx.pcap" "hv2-vif1.expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:7852: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:7852"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7852"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn.at:7854: ovn-sbctl --bare --columns _uuid find Port_Binding logical_port=cr-alice | wc -l"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:7854"
( $at_check_trace; ovn-sbctl --bare --columns _uuid find Port_Binding logical_port=cr-alice | wc -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7854"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }


ovn-nbctl --timeout=3 --wait=sb remove Logical_Router_Port alice options redirect-chassis

{ set +x
$as_echo "$at_srcdir/ovn.at:7859: ovn-sbctl find Port_Binding logical_port=cr-alice | wc -l"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:7859"
( $at_check_trace; ovn-sbctl find Port_Binding logical_port=cr-alice | wc -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7859"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }





    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:7862: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:7862"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7862: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:7862"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:7862: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7862: wait failed" >&5

    $as_echo "ovn.at:7862" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7862"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:7862: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:7862"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7862: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:7862"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:7862: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7862: wait failed" >&5

    $as_echo "ovn.at:7862" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7862"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:7862: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:7862"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7862: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:7862"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:7862: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7862: wait failed" >&5

    $as_echo "ovn.at:7862" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7862"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:7862: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:7862"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7862: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:7862"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:7862: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7862: wait failed" >&5

    $as_echo "ovn.at:7862" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7862"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:7862: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:7862"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7862: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:7862"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:7862: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7862: wait failed" >&5

    $as_echo "ovn.at:7862" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7862"
fi





    as hv2
    if test "hv2" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:7862: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:7862"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7862: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:7862"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:7862: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7862: wait failed" >&5

    $as_echo "ovn.at:7862" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7862"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:7862: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:7862"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7862: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:7862"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:7862: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7862: wait failed" >&5

    $as_echo "ovn.at:7862" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7862"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:7862: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:7862"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7862: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:7862"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:7862: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7862: wait failed" >&5

    $as_echo "ovn.at:7862" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7862"
fi

    fi

    as hv2
    { set +x
$as_echo "$at_srcdir/ovn.at:7862: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:7862"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7862: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:7862"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:7862: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7862: wait failed" >&5

    $as_echo "ovn.at:7862" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7862"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:7862: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:7862"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7862: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:7862"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:7862: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7862: wait failed" >&5

    $as_echo "ovn.at:7862" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7862"
fi





    as hv3
    if test "hv3" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:7862: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:7862"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7862: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:7862"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:7862: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7862: wait failed" >&5

    $as_echo "ovn.at:7862" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7862"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:7862: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:7862"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7862: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:7862"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:7862: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7862: wait failed" >&5

    $as_echo "ovn.at:7862" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7862"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:7862: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:7862"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7862: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:7862"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:7862: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7862: wait failed" >&5

    $as_echo "ovn.at:7862" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7862"
fi

    fi

    as hv3
    { set +x
$as_echo "$at_srcdir/ovn.at:7862: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:7862"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7862: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:7862"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:7862: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7862: wait failed" >&5

    $as_echo "ovn.at:7862" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7862"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:7862: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:7862"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7862: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:7862"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:7862: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7862: wait failed" >&5

    $as_echo "ovn.at:7862" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7862"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:7862: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:7862"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7862: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:7862"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:7862: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7862: wait failed" >&5

    $as_echo "ovn.at:7862" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7862"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:7862: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:7862"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7862: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:7862"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:7862: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7862: wait failed" >&5

    $as_echo "ovn.at:7862" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7862"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:7862: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:7862"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7862: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:7862"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:7862: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7862: wait failed" >&5

    $as_echo "ovn.at:7862" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7862"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:7862: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:7862"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7862: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:7862"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:7862: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7862: wait failed" >&5

    $as_echo "ovn.at:7862" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7862"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:7862: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:7862"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7862: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:7862"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:7862: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7862: wait failed" >&5

    $as_echo "ovn.at:7862" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7862"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:7862: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:7862"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7862: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:7862"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7862"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:7862: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7862: wait failed" >&5

    $as_echo "ovn.at:7862" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7862"
fi




  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2473
#AT_START_2474
at_fn_group_banner 2474 'ovn.at:7866' \
  "ovn -- send gratuitous arp for NAT rules on distributed router" "" 125
at_xfail=no
(
  $as_echo "2474. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn.at:7867" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:7867"
ovn_start
# Create logical switches
ovn-nbctl ls-add ls0
ovn-nbctl ls-add ls1
# Create distributed router
ovn-nbctl create Logical_Router name=lr0
# Add distributed gateway port to distributed router
ovn-nbctl lrp-add lr0 lrp0 f0:00:00:00:00:01 192.168.0.1/24 \
    -- set Logical_Router_Port lrp0 options:redirect-chassis="hv2"
ovn-nbctl lsp-add ls0 lrp0-rp -- set Logical_Switch_Port lrp0-rp \
    type=router options:router-port=lrp0 addresses="router"
# Add router port to ls1
ovn-nbctl lrp-add lr0 lrp1 f0:00:00:00:00:02 10.0.0.1/24
ovn-nbctl lsp-add ls1 lrp1-rp -- set Logical_Switch_Port lrp1-rp \
    type=router options:router-port=lrp1 addresses="router"
# Add logical ports for NAT rules
ovn-nbctl lsp-add ls1 foo1 \
-- lsp-set-addresses foo1 "00:00:00:00:00:03 10.0.0.3"
ovn-nbctl lsp-add ls1 foo2 \
-- lsp-set-addresses foo2 "00:00:00:00:00:04 10.0.0.4"
# Add nat-addresses option
ovn-nbctl lsp-set-options lrp0-rp router-port=lrp0 nat-addresses="router"
# Add NAT rules
{ set +x
$as_echo "$at_srcdir/ovn.at:7891: ovn-nbctl lr-nat-add lr0 snat 192.168.0.1 10.0.0.0/24"
at_fn_check_prepare_trace "ovn.at:7891"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 snat 192.168.0.1 10.0.0.0/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7891"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:7892: ovn-nbctl lr-nat-add lr0 dnat 192.168.0.2 10.0.0.2"
at_fn_check_prepare_trace "ovn.at:7892"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 dnat 192.168.0.2 10.0.0.2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7892"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:7893: ovn-nbctl lr-nat-add lr0 dnat_and_snat 192.168.0.3 10.0.0.3 foo1 f0:00:00:00:00:03"
at_fn_check_prepare_trace "ovn.at:7893"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 dnat_and_snat 192.168.0.3 10.0.0.3 foo1 f0:00:00:00:00:03
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7893"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:7894: ovn-nbctl lr-nat-add lr0 dnat_and_snat 192.168.0.4 10.0.0.4 foo2 f0:00:00:00:00:04"
at_fn_check_prepare_trace "ovn.at:7894"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 dnat_and_snat 192.168.0.4 10.0.0.4 foo2 f0:00:00:00:00:04
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7894"
$at_failed && at_fn_log_failure
$at_traceon; }


net_add n1
sim_add hv1
as hv1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.1

{ set +x
$as_echo "$at_srcdir/ovn.at:7902: ovs-vsctl set Open_vSwitch . external-ids:ovn-bridge-mappings=physnet1:br-phys"
at_fn_check_prepare_trace "ovn.at:7902"
( $at_check_trace; ovs-vsctl set Open_vSwitch . external-ids:ovn-bridge-mappings=physnet1:br-phys
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7902"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:7903: ovs-vsctl add-port br-phys snoopvif -- set Interface snoopvif options:tx_pcap=hv1/snoopvif-tx.pcap options:rxq_pcap=hv1/snoopvif-rx.pcap"
at_fn_check_prepare_trace "ovn.at:7903"
( $at_check_trace; ovs-vsctl add-port br-phys snoopvif -- set Interface snoopvif options:tx_pcap=hv1/snoopvif-tx.pcap options:rxq_pcap=hv1/snoopvif-rx.pcap
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7903"
$at_failed && at_fn_log_failure
$at_traceon; }


sim_add hv2
as hv2
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.2
# Initially test with no bridge-mapping on hv2, expect to receive no packets

sim_add hv3
as hv3
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.3
# Initially test with no bridge-mapping on hv3

# Create a localnet port.
{ set +x
$as_echo "$at_srcdir/ovn.at:7918: ovn-nbctl lsp-add ls0 ln_port"
at_fn_check_prepare_trace "ovn.at:7918"
( $at_check_trace; ovn-nbctl lsp-add ls0 ln_port
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7918"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:7919: ovn-nbctl lsp-set-addresses ln_port unknown"
at_fn_check_prepare_trace "ovn.at:7919"
( $at_check_trace; ovn-nbctl lsp-set-addresses ln_port unknown
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7919"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:7920: ovn-nbctl lsp-set-type ln_port localnet"
at_fn_check_prepare_trace "ovn.at:7920"
( $at_check_trace; ovn-nbctl lsp-set-type ln_port localnet
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7920"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:7921: ovn-nbctl lsp-set-options ln_port network_name=physnet1"
at_fn_check_prepare_trace "ovn.at:7921"
( $at_check_trace; ovn-nbctl lsp-set-options ln_port network_name=physnet1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7921"
$at_failed && at_fn_log_failure
$at_traceon; }


# Allow some time for ovn-northd and ovn-controller to catch up.
# XXX This should be more systematic.
sleep 2

# Expect no packets when hv2 bridge-mapping is not present
: > packets
ovn_check_packets__ "hv1/snoopvif-tx.pcap" "packets"
   { set +x
$as_echo "$at_srcdir/ovn.at:7929: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:7929"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7929"
$at_failed && at_fn_log_failure
$at_traceon; }


# Add bridge-mapping on hv2
{ set +x
$as_echo "$at_srcdir/ovn.at:7932: as hv2 ovs-vsctl set Open_vSwitch . external-ids:ovn-bridge-mappings=physnet1:br-phys"
at_fn_check_prepare_trace "ovn.at:7932"
( $at_check_trace; as hv2 ovs-vsctl set Open_vSwitch . external-ids:ovn-bridge-mappings=physnet1:br-phys
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7932"
$at_failed && at_fn_log_failure
$at_traceon; }


# Wait for packets to be received.
$as_echo "ovn.at:7935: waiting until test \`wc -c < \"hv1/snoopvif-tx.pcap\"\` -ge 100..." >&5
ovs_wait_cond () {
    test `wc -c < "hv1/snoopvif-tx.pcap"` -ge 100
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7935: wait failed" >&5

    $as_echo "ovn.at:7935" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7935"
fi

trim_zeros() {
    sed 's/\(00\)\{1,\}$//'
}
$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/snoopvif-tx.pcap | trim_zeros > packets
expected="fffffffffffff0000000000108060001080006040001f00000000001c0a80001000000000000c0a80001"
echo $expected > expout
expected="fffffffffffff0000000000108060001080006040001f00000000001c0a80002000000000000c0a80002"
echo $expected >> expout
{ set +x
$as_echo "$at_srcdir/ovn.at:7944: sort packets"
at_fn_check_prepare_trace "ovn.at:7944"
( $at_check_trace; sort packets
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7944"
$at_failed && at_fn_log_failure
$at_traceon; }

sort packets | cat

# Temporarily remove nat-addresses option to avoid race conditions
# due to GARP backoff
ovn-nbctl lsp-set-options lrp0-rp router-port=lrp0 nat-addresses=""

reset_pcap_file() {
    local iface=$1
    local pcap_file=$2
    ovs-vsctl -- set Interface $iface options:tx_pcap=dummy-tx.pcap \
options:rxq_pcap=dummy-rx.pcap
    rm -f ${pcap_file}*.pcap
    ovs-vsctl -- set Interface $iface options:tx_pcap=${pcap_file}-tx.pcap \
options:rxq_pcap=${pcap_file}-rx.pcap
}

as hv1 reset_pcap_file snoopvif hv1/snoopvif

# Add OVS ports for foo1 and foo2 on hv3
ovs-vsctl -- add-port br-int hv3-vif1 -- \
    set interface hv3-vif1 external-ids:iface-id=foo1 \
    ofport-request=1
ovs-vsctl -- add-port br-int hv3-vif2 -- \
    set interface hv3-vif2 external-ids:iface-id=foo2 \
    ofport-request=2

# Add bridge-mapping on hv3
{ set +x
$as_echo "$at_srcdir/ovn.at:7972: as hv3 ovs-vsctl set Open_vSwitch . external-ids:ovn-bridge-mappings=physnet1:br-phys"
at_fn_check_prepare_trace "ovn.at:7972"
( $at_check_trace; as hv3 ovs-vsctl set Open_vSwitch . external-ids:ovn-bridge-mappings=physnet1:br-phys
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7972"
$at_failed && at_fn_log_failure
$at_traceon; }


# Re-add nat-addresses option
ovn-nbctl lsp-set-options lrp0-rp router-port=lrp0 nat-addresses="router"

# Wait for packets to be received.
$as_echo "ovn.at:7978: waiting until test \`wc -c < \"hv1/snoopvif-tx.pcap\"\` -ge 250..." >&5
ovs_wait_cond () {
    test `wc -c < "hv1/snoopvif-tx.pcap"` -ge 250
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7978: wait failed" >&5

    $as_echo "ovn.at:7978" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7978"
fi

trim_zeros() {
    sed 's/\(00\)\{1,\}$//'
}

$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/snoopvif-tx.pcap | trim_zeros > packets
expected="fffffffffffff0000000000308060001080006040001f00000000003c0a80003000000000000c0a80003"
echo $expected >> expout
expected="fffffffffffff0000000000408060001080006040001f00000000004c0a80004000000000000c0a80004"
echo $expected >> expout
{ set +x
$as_echo "$at_srcdir/ovn.at:7988: sort packets"
at_fn_check_prepare_trace "ovn.at:7988"
( $at_check_trace; sort packets
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7988"
$at_failed && at_fn_log_failure
$at_traceon; }

sort packets | cat




    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:7991: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:7991"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7991: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:7991"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7991: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7991: wait failed" >&5

    $as_echo "ovn.at:7991" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7991"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:7991: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:7991"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7991: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:7991"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7991: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7991: wait failed" >&5

    $as_echo "ovn.at:7991" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7991"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:7991: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:7991"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7991: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:7991"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7991: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7991: wait failed" >&5

    $as_echo "ovn.at:7991" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7991"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:7991: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:7991"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7991: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:7991"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7991: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7991: wait failed" >&5

    $as_echo "ovn.at:7991" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7991"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:7991: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:7991"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7991: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:7991"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7991: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7991: wait failed" >&5

    $as_echo "ovn.at:7991" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7991"
fi





    as hv2
    if test "hv2" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:7991: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:7991"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7991: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:7991"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7991: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7991: wait failed" >&5

    $as_echo "ovn.at:7991" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7991"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:7991: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:7991"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7991: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:7991"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7991: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7991: wait failed" >&5

    $as_echo "ovn.at:7991" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7991"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:7991: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:7991"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7991: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:7991"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7991: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7991: wait failed" >&5

    $as_echo "ovn.at:7991" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7991"
fi

    fi

    as hv2
    { set +x
$as_echo "$at_srcdir/ovn.at:7991: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:7991"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7991: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:7991"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7991: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7991: wait failed" >&5

    $as_echo "ovn.at:7991" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7991"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:7991: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:7991"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7991: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:7991"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7991: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7991: wait failed" >&5

    $as_echo "ovn.at:7991" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7991"
fi





    as hv3
    if test "hv3" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:7991: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:7991"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7991: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:7991"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7991: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7991: wait failed" >&5

    $as_echo "ovn.at:7991" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7991"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:7991: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:7991"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7991: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:7991"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7991: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7991: wait failed" >&5

    $as_echo "ovn.at:7991" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7991"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:7991: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:7991"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7991: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:7991"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7991: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7991: wait failed" >&5

    $as_echo "ovn.at:7991" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7991"
fi

    fi

    as hv3
    { set +x
$as_echo "$at_srcdir/ovn.at:7991: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:7991"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7991: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:7991"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7991: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7991: wait failed" >&5

    $as_echo "ovn.at:7991" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7991"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:7991: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:7991"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7991: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:7991"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7991: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7991: wait failed" >&5

    $as_echo "ovn.at:7991" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7991"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:7991: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:7991"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7991: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:7991"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7991: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7991: wait failed" >&5

    $as_echo "ovn.at:7991" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7991"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:7991: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:7991"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7991: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:7991"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7991: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7991: wait failed" >&5

    $as_echo "ovn.at:7991" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7991"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:7991: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:7991"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7991: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:7991"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7991: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7991: wait failed" >&5

    $as_echo "ovn.at:7991" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7991"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:7991: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:7991"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7991: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:7991"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7991: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7991: wait failed" >&5

    $as_echo "ovn.at:7991" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7991"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:7991: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:7991"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7991: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:7991"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7991: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7991: wait failed" >&5

    $as_echo "ovn.at:7991" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7991"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:7991: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:7991"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:7991: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:7991"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:7991"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:7991: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:7991: wait failed" >&5

    $as_echo "ovn.at:7991" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:7991"
fi




  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2474
#AT_START_2475
at_fn_group_banner 2475 'ovn.at:7995' \
  "ovn -- IPv6 ND Router Solicitation responder" "   " 125
at_xfail=no
(
  $as_echo "2475. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


$as_echo "ovn.at:7997" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:7997"
ovn_start

# In this test case we create 1 lswitch with 3 VIF ports attached,
# and a lrouter connected to the lswitch.
# We generate the Router solicitation packet and verify the Router Advertisement
# reply packet from the ovn-controller.

# Create hypervisor and logical switch lsw0, logical router lr0, attach lsw0
# onto lr0, set Logical_Router_Port.ipv6_ra_configs:address_mode column to
# 'slaac' to allow lrp0 send RA for SLAAC mode.
ovn-nbctl ls-add lsw0
ovn-nbctl lr-add lr0
ovn-nbctl lrp-add lr0 lrp0 fa:16:3e:00:00:01 fdad:1234:5678::1/64
ovn-nbctl set Logical_Router_Port lrp0 ipv6_ra_configs:address_mode="slaac"
ovn-nbctl \
    -- lsp-add lsw0 lsp0 \
    -- set Logical_Switch_Port lsp0 type=router \
                     options:router-port=lrp0 \
                     addresses='"fa:16:3e:00:00:01 fdad:1234:5678::1"'
net_add n1
sim_add hv1
as hv1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.2

ovn-nbctl lsp-add lsw0 lp1
ovn-nbctl lsp-set-addresses lp1 "fa:16:3e:00:00:02 10.0.0.12 fdad:1234:5678:0:f816:3eff:fe:2"
ovn-nbctl lsp-set-port-security lp1 "fa:16:3e:00:00:02 10.0.0.12 fdad:1234:5678:0:f816:3eff:fe:2"

ovn-nbctl lsp-add lsw0 lp2
ovn-nbctl lsp-set-addresses lp2 "fa:16:3e:00:00:03 10.0.0.13 fdad:1234:5678:0:f816:3eff:fe:3"
ovn-nbctl lsp-set-port-security lp2 "fa:16:3e:00:00:03 10.0.0.13 fdad:1234:5678:0:f816:3eff:fe:3"

ovn-nbctl lsp-add lsw0 lp3
ovn-nbctl lsp-set-addresses lp3 "fa:16:3e:00:00:04 10.0.0.14 fdad:1234:5678:0:f816:3eff:fe:4"
ovn-nbctl lsp-set-port-security lp3 "fa:16:3e:00:00:04 10.0.0.14 fdad:1234:5678:0:f816:3eff:fe:4"

# Add ACL rule for ICMPv6 on lsw0
ovn-nbctl acl-add lsw0 from-lport 1002 'ip6 && icmp6'  allow-related
ovn-nbctl acl-add lsw0 to-lport 1002 'outport == "lp1" && ip6 && icmp6'  allow-related
ovn-nbctl acl-add lsw0 to-lport 1002 'outport == "lp2" && ip6 && icmp6'  allow-related
ovn-nbctl acl-add lsw0 to-lport 1002 'outport == "lp3" && ip6 && icmp6'  allow-related

ovs-vsctl -- add-port br-int hv1-vif1 -- \
    set interface hv1-vif1 external-ids:iface-id=lp1 \
    options:tx_pcap=hv1/vif1-tx.pcap \
    options:rxq_pcap=hv1/vif1-rx.pcap \
    ofport-request=1

ovs-vsctl -- add-port br-int hv1-vif2 -- \
    set interface hv1-vif2 external-ids:iface-id=lp2 \
    options:tx_pcap=hv1/vif2-tx.pcap \
    options:rxq_pcap=hv1/vif2-rx.pcap \
    ofport-request=2

ovs-vsctl -- add-port br-int hv1-vif3 -- \
    set interface hv1-vif3 external-ids:iface-id=lp3 \
    options:tx_pcap=hv1/vif3-tx.pcap \
    options:rxq_pcap=hv1/vif3-rx.pcap \
    ofport-request=3

# Allow some time for ovn-northd and ovn-controller to catch up.
# XXX This should be more systematic.
sleep 1

reset_pcap_file() {
    local iface=$1
    local pcap_file=$2
    ovs-vsctl -- set Interface $iface options:tx_pcap=dummy-tx.pcap \
options:rxq_pcap=dummy-rx.pcap
    rm -f ${pcap_file}*.pcap
    ovs-vsctl -- set Interface $iface options:tx_pcap=${pcap_file}-tx.pcap \
options:rxq_pcap=${pcap_file}-rx.pcap
}

# Make sure that ovn-controller has installed the corresponding OF Flow.
$as_echo "ovn.at:8074: waiting until test 1 = \`as hv1 ovs-ofctl dump-flows br-int | grep -c \"ipv6_dst=ff02::2,nw_ttl=255,icmp_type=133,icmp_code=0\"\`..." >&5
ovs_wait_cond () {
    test 1 = `as hv1 ovs-ofctl dump-flows br-int | grep -c "ipv6_dst=ff02::2,nw_ttl=255,icmp_type=133,icmp_code=0"`
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8074: wait failed" >&5

    $as_echo "ovn.at:8074" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8074"
fi


# This shell function sends a Router Solicitation packet.
# test_ipv6_ra INPORT SRC_MAC SRC_LLA ADDR_MODE MTU RA_PREFIX_OPT
test_ipv6_ra() {
    local inport=$1 src_mac=$2 src_lla=$3 addr_mode=$4 mtu=$5 prefix_opt=$6
    local request=333300000002${src_mac}86dd6000000000103aff${src_lla}ff02000000000000000000000000000285000efc000000000101${src_mac}

    local len=24
    local mtu_opt=""
    if test $mtu != 0; then
        len=`expr $len + 8`
        mtu_opt=05010000${mtu}
    fi

    if test ${#prefix_opt} != 0; then
        prefix_opt=${prefix_opt}fdad1234567800000000000000000000
        len=`expr $len + ${#prefix_opt} / 2`
    fi

    len=$(printf "%x" $len)
    local lrp_mac=fa163e000001
    local lrp_lla=fe80000000000000f8163efffe000001
    local reply=${src_mac}${lrp_mac}86dd6000000000${len}3aff${lrp_lla}${src_lla}8600XXXXff${addr_mode}ffff00000000000000000101${lrp_mac}${mtu_opt}${prefix_opt}
    echo $reply >> $inport.expected

    as hv1 ovs-appctl netdev-dummy/receive hv1-vif${inport} $request
}


as hv1 ovs-ofctl monitor br-int resume --detach --no-chdir \
--pidfile=ovs-ofctl0.pid 2> ofctl_monitor0.log

# MTU is not set and the address mode is set to slaac
addr_mode=00
default_prefix_option_config=030440c0ffffffffffffffff00000000
src_mac=fa163e000002
src_lla=fe80000000000000f8163efffe000002
test_ipv6_ra 1 $src_mac $src_lla $addr_mode 0 $default_prefix_option_config

# NXT_RESUME should be 1.
$as_echo "ovn.at:8115: waiting until test 1 = \`cat ofctl_monitor*.log | grep -c NXT_RESUME\`..." >&5
ovs_wait_cond () {
    test 1 = `cat ofctl_monitor*.log | grep -c NXT_RESUME`
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8115: wait failed" >&5

    $as_echo "ovn.at:8115" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8115"
fi


$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/vif1-tx.pcap  > 1.packets

cat 1.expected | cut -c -112 > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:8120: cat 1.packets | cut -c -112"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:8120"
( $at_check_trace; cat 1.packets | cut -c -112
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8120"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }


# Skipping the ICMPv6 checksum.
cat 1.expected | cut -c 117- > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:8124: cat 1.packets | cut -c 117-"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:8124"
( $at_check_trace; cat 1.packets | cut -c 117-
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8124"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }


rm -f *.expected
reset_pcap_file hv1-vif1 hv1/vif1
reset_pcap_file hv1-vif2 hv1/vif2
reset_pcap_file hv1-vif3 hv1/vif3

# Set the MTU to 1500
ovn-nbctl --wait=hv set Logical_Router_Port lrp0 ipv6_ra_configs:mtu=1500

# Make sure that ovn-controller has installed the corresponding OF Flow.
$as_echo "ovn.at:8135: waiting until test 1 = \`as hv1 ovs-ofctl dump-flows br-int | grep -c \"ipv6_dst=ff02::2,nw_ttl=255,icmp_type=133,icmp_code=0\"\`..." >&5
ovs_wait_cond () {
    test 1 = `as hv1 ovs-ofctl dump-flows br-int | grep -c "ipv6_dst=ff02::2,nw_ttl=255,icmp_type=133,icmp_code=0"`
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8135: wait failed" >&5

    $as_echo "ovn.at:8135" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8135"
fi


addr_mode=00
default_prefix_option_config=030440c0ffffffffffffffff00000000
src_mac=fa163e000003
src_lla=fe80000000000000f8163efffe000003
mtu=000005dc

test_ipv6_ra 2 $src_mac $src_lla $addr_mode $mtu $default_prefix_option_config

# NXT_RESUME should be 2.
$as_echo "ovn.at:8146: waiting until test 2 = \`cat ofctl_monitor*.log | grep -c NXT_RESUME\`..." >&5
ovs_wait_cond () {
    test 2 = `cat ofctl_monitor*.log | grep -c NXT_RESUME`
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8146: wait failed" >&5

    $as_echo "ovn.at:8146" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8146"
fi


$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/vif2-tx.pcap  > 2.packets

cat 2.expected | cut -c -112 > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:8151: cat 2.packets | cut -c -112"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:8151"
( $at_check_trace; cat 2.packets | cut -c -112
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8151"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }


# Skipping the ICMPv6 checksum.
cat 2.expected | cut -c 117- > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:8155: cat 2.packets | cut -c 117-"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:8155"
( $at_check_trace; cat 2.packets | cut -c 117-
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8155"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }


rm -f *.expected
reset_pcap_file hv1-vif1 hv1/vif1
reset_pcap_file hv1-vif2 hv1/vif2
reset_pcap_file hv1-vif3 hv1/vif3

# Set the address mode to dhcpv6_stateful
ovn-nbctl --wait=hv set Logical_Router_Port lrp0 ipv6_ra_configs:address_mode=dhcpv6_stateful
# Make sure that ovn-controller has installed the corresponding OF Flow.
$as_echo "ovn.at:8165: waiting until test 1 = \`as hv1 ovs-ofctl dump-flows br-int | grep -c \"ipv6_dst=ff02::2,nw_ttl=255,icmp_type=133,icmp_code=0\"\`..." >&5
ovs_wait_cond () {
    test 1 = `as hv1 ovs-ofctl dump-flows br-int | grep -c "ipv6_dst=ff02::2,nw_ttl=255,icmp_type=133,icmp_code=0"`
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8165: wait failed" >&5

    $as_echo "ovn.at:8165" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8165"
fi


addr_mode=80
default_prefix_option_config=""
src_mac=fa163e000004
src_lla=fe80000000000000f8163efffe000004
mtu=000005dc

test_ipv6_ra 3 $src_mac $src_lla $addr_mode $mtu $default_prefix_option_config

# NXT_RESUME should be 3.
$as_echo "ovn.at:8176: waiting until test 3 = \`cat ofctl_monitor*.log | grep -c NXT_RESUME\`..." >&5
ovs_wait_cond () {
    test 3 = `cat ofctl_monitor*.log | grep -c NXT_RESUME`
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8176: wait failed" >&5

    $as_echo "ovn.at:8176" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8176"
fi


$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/vif3-tx.pcap  > 3.packets

cat 3.expected | cut -c -112 > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:8181: cat 3.packets | cut -c -112"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:8181"
( $at_check_trace; cat 3.packets | cut -c -112
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8181"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }


# Skipping the ICMPv6 checksum.
cat 3.expected | cut -c 117- > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:8185: cat 3.packets | cut -c 117-"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:8185"
( $at_check_trace; cat 3.packets | cut -c 117-
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8185"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }


rm -f *.expected
reset_pcap_file hv1-vif1 hv1/vif1
reset_pcap_file hv1-vif2 hv1/vif2
reset_pcap_file hv1-vif3 hv1/vif3

# Set the address mode to dhcpv6_stateless
ovn-nbctl --wait=hv set Logical_Router_Port lrp0 ipv6_ra_configs:address_mode=dhcpv6_stateless
# Make sure that ovn-controller has installed the corresponding OF Flow.
$as_echo "ovn.at:8195: waiting until test 1 = \`as hv1 ovs-ofctl dump-flows br-int | grep -c \"ipv6_dst=ff02::2,nw_ttl=255,icmp_type=133,icmp_code=0\"\`..." >&5
ovs_wait_cond () {
    test 1 = `as hv1 ovs-ofctl dump-flows br-int | grep -c "ipv6_dst=ff02::2,nw_ttl=255,icmp_type=133,icmp_code=0"`
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8195: wait failed" >&5

    $as_echo "ovn.at:8195" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8195"
fi


addr_mode=40
default_prefix_option_config=030440c0ffffffffffffffff00000000
src_mac=fa163e000002
src_lla=fe80000000000000f8163efffe000002
mtu=000005dc

test_ipv6_ra 1 $src_mac $src_lla $addr_mode $mtu $default_prefix_option_config

# NXT_RESUME should be 4.
$as_echo "ovn.at:8206: waiting until test 4 = \`cat ofctl_monitor*.log | grep -c NXT_RESUME\`..." >&5
ovs_wait_cond () {
    test 4 = `cat ofctl_monitor*.log | grep -c NXT_RESUME`
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8206: wait failed" >&5

    $as_echo "ovn.at:8206" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8206"
fi


$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/vif1-tx.pcap  > 1.packets

cat 1.expected | cut -c -112 > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:8211: cat 1.packets | cut -c -112"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:8211"
( $at_check_trace; cat 1.packets | cut -c -112
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8211"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }


# Skipping the ICMPv6 checksum.
cat 1.expected | cut -c 117- > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:8215: cat 1.packets | cut -c 117-"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:8215"
( $at_check_trace; cat 1.packets | cut -c 117-
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8215"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }


rm -f *.expected
reset_pcap_file hv1-vif1 hv1/vif1
reset_pcap_file hv1-vif2 hv1/vif2
reset_pcap_file hv1-vif3 hv1/vif3

# Set the address mode to invalid.
ovn-nbctl --wait=hv set Logical_Router_Port lrp0 ipv6_ra_configs:address_mode=invalid
# Make sure that ovn-controller has not installed any OF Flow for IPv6 ND RA.
$as_echo "ovn.at:8225: waiting until test 0 = \`as hv1 ovs-ofctl dump-flows br-int | grep -c \"ipv6_dst=ff02::2,nw_ttl=255,icmp_type=133,icmp_code=0\"\`..." >&5
ovs_wait_cond () {
    test 0 = `as hv1 ovs-ofctl dump-flows br-int | grep -c "ipv6_dst=ff02::2,nw_ttl=255,icmp_type=133,icmp_code=0"`
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8225: wait failed" >&5

    $as_echo "ovn.at:8225" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8225"
fi


addr_mode=40
default_prefix_option_config=""
src_mac=fa163e000002
src_lla=fe80000000000000f8163efffe000002
mtu=000005dc

test_ipv6_ra 1 $src_mac $src_lla $addr_mode $mtu $default_prefix_option_config

# NXT_RESUME should be 4 only.
$as_echo "ovn.at:8236: waiting until test 4 = \`cat ofctl_monitor*.log | grep -c NXT_RESUME\`..." >&5
ovs_wait_cond () {
    test 4 = `cat ofctl_monitor*.log | grep -c NXT_RESUME`
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8236: wait failed" >&5

    $as_echo "ovn.at:8236" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8236"
fi


$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/vif1-tx.pcap  > 1.packets
{ set +x
$as_echo "$at_srcdir/ovn.at:8239: cat 1.packets"
at_fn_check_prepare_trace "ovn.at:8239"
( $at_check_trace; cat 1.packets
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8239"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }





    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:8241: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:8241"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8241"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8241: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:8241"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8241"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ovn.at:8241: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8241: wait failed" >&5

    $as_echo "ovn.at:8241" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8241"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:8241: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:8241"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8241"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8241: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:8241"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8241"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ovn.at:8241: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8241: wait failed" >&5

    $as_echo "ovn.at:8241" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8241"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:8241: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:8241"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8241"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8241: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:8241"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8241"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ovn.at:8241: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8241: wait failed" >&5

    $as_echo "ovn.at:8241" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8241"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:8241: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:8241"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8241"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8241: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:8241"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8241"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ovn.at:8241: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8241: wait failed" >&5

    $as_echo "ovn.at:8241" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8241"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:8241: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:8241"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8241"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8241: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:8241"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8241"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ovn.at:8241: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8241: wait failed" >&5

    $as_echo "ovn.at:8241" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8241"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:8241: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:8241"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8241"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8241: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:8241"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8241"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ovn.at:8241: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8241: wait failed" >&5

    $as_echo "ovn.at:8241" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8241"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:8241: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:8241"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8241"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8241: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:8241"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8241"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ovn.at:8241: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8241: wait failed" >&5

    $as_echo "ovn.at:8241" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8241"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:8241: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:8241"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8241"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8241: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:8241"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8241"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ovn.at:8241: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8241: wait failed" >&5

    $as_echo "ovn.at:8241" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8241"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:8241: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:8241"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8241"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8241: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:8241"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8241"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ovn.at:8241: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8241: wait failed" >&5

    $as_echo "ovn.at:8241" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8241"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:8241: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:8241"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8241"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8241: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:8241"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8241"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ovn.at:8241: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8241: wait failed" >&5

    $as_echo "ovn.at:8241" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8241"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:8241: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:8241"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8241"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8241: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:8241"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8241"
$at_failed && at_fn_log_failure  \
"ofctl_monitor0.log"
$at_traceon; }

   $as_echo "ovn.at:8241: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8241: wait failed" >&5

    $as_echo "ovn.at:8241" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8241"
fi



  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2475
#AT_START_2476
at_fn_group_banner 2476 'ovn.at:8244' \
  "ovn -- /32 router IP address" "                   " 125
at_xfail=no
(
  $as_echo "2476. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn.at:8245" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:8245"
ovn_start

# Logical network:
# 2 LS 'foo' and 'alice' connected via router R1.
# R1 connects to 'alice' with a /32 IP address. We use static routes and
# nexthop to push traffic to a logical port in switch 'alice'

ovn-nbctl lr-add R1

ovn-nbctl ls-add foo
ovn-nbctl ls-add alice

# Connect foo to R1
ovn-nbctl lrp-add R1 foo 00:00:00:01:02:03 192.168.1.1/24
ovn-nbctl lsp-add foo rp-foo -- set Logical_Switch_Port rp-foo type=router \
          options:router-port=foo addresses=\"00:00:00:01:02:03\"

# Connect alice to R1.
ovn-nbctl lrp-add R1 alice 00:00:00:01:02:04 172.16.1.1/32
ovn-nbctl lsp-add alice rp-alice -- set Logical_Switch_Port rp-alice \
          type=router options:router-port=alice addresses=\"00:00:00:01:02:04\"

# Create logical port foo1 in foo
ovn-nbctl lsp-add foo foo1 \
-- lsp-set-addresses foo1 "f0:00:00:01:02:03 192.168.1.2"

# Create logical port alice1 in alice
ovn-nbctl lsp-add alice alice1 \
-- lsp-set-addresses alice1 "f0:00:00:01:02:04 10.0.0.2"

#install default route in R1 to use alice1's IP address as nexthop
ovn-nbctl lr-route-add R1 0.0.0.0/0 10.0.0.2 alice

# Create two hypervisor and create OVS ports corresponding to logical ports.
net_add n1

sim_add hv1
as hv1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.1
ovs-vsctl -- add-port br-int hv1-vif1 -- \
    set interface hv1-vif1 external-ids:iface-id=foo1 \
    options:tx_pcap=hv1/vif1-tx.pcap \
    options:rxq_pcap=hv1/vif1-rx.pcap \
    ofport-request=1

sim_add hv2
as hv2
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.2
ovs-vsctl -- add-port br-int hv2-vif1 -- \
    set interface hv2-vif1 external-ids:iface-id=alice1 \
    options:tx_pcap=hv2/vif1-tx.pcap \
    options:rxq_pcap=hv2/vif1-rx.pcap \
    ofport-request=1


# Pre-populate the hypervisors' ARP tables so that we don't lose any
# packets for ARP resolution (native tunneling doesn't queue packets
# for ARP resolution).
{ set +x
$as_echo "$at_srcdir/ovn.at:8306: ovn_populate_arp__"
at_fn_check_prepare_trace "ovn.at:8306"
( $at_check_trace; ovn_populate_arp__
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8306"
$at_failed && at_fn_log_failure
$at_traceon; }


# Allow some time for ovn-northd and ovn-controller to catch up.
# XXX This should be more systematic.
sleep 1

ip_to_hex() {
    printf "%02x%02x%02x%02x" "$@"
}

# Send ip packets between foo1 and alice1
src_mac="f00000010203"
dst_mac="000000010203"
src_ip=`ip_to_hex 192 168 1 2`
dst_ip=`ip_to_hex 10 0 0 2`
packet=${dst_mac}${src_mac}08004500001c0000000040110000${src_ip}${dst_ip}0035111100080000

# Send the first packet to trigger a ARP response and population of
# mac_bindings table.
as hv1 ovs-appctl netdev-dummy/receive hv1-vif1 $packet
$as_echo "ovn.at:8326: waiting until test \`ovn-sbctl find mac_binding ip=\"10.0.0.2\" | wc -l\` -gt 0..." >&5
ovs_wait_cond () {
    test `ovn-sbctl find mac_binding ip="10.0.0.2" | wc -l` -gt 0
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8326: wait failed" >&5

    $as_echo "ovn.at:8326" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8326"
fi


# Send the second packet to reach the destination.
as hv1 ovs-appctl netdev-dummy/receive hv1-vif1 $packet

# Packet to Expect at 'alice1'
src_mac="000000010204"
dst_mac="f00000010204"
src_ip=`ip_to_hex 192 168 1 2`
dst_ip=`ip_to_hex 10 0 0 2`
echo "${dst_mac}${src_mac}08004500001c000000003f110100${src_ip}${dst_ip}0035111100080000" > expected

ovn_check_packets__ "hv2/vif1-tx.pcap" "expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:8338: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:8338"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8338"
$at_failed && at_fn_log_failure
$at_traceon; }





    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:8340: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:8340"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8340"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8340: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:8340"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8340"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8340: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8340: wait failed" >&5

    $as_echo "ovn.at:8340" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8340"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:8340: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:8340"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8340"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8340: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:8340"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8340"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8340: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8340: wait failed" >&5

    $as_echo "ovn.at:8340" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8340"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:8340: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:8340"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8340"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8340: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:8340"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8340"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8340: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8340: wait failed" >&5

    $as_echo "ovn.at:8340" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8340"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:8340: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:8340"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8340"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8340: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:8340"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8340"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8340: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8340: wait failed" >&5

    $as_echo "ovn.at:8340" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8340"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:8340: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:8340"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8340"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8340: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:8340"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8340"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8340: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8340: wait failed" >&5

    $as_echo "ovn.at:8340" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8340"
fi





    as hv2
    if test "hv2" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:8340: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:8340"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8340"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8340: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:8340"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8340"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8340: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8340: wait failed" >&5

    $as_echo "ovn.at:8340" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8340"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:8340: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:8340"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8340"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8340: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:8340"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8340"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8340: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8340: wait failed" >&5

    $as_echo "ovn.at:8340" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8340"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:8340: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:8340"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8340"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8340: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:8340"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8340"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8340: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8340: wait failed" >&5

    $as_echo "ovn.at:8340" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8340"
fi

    fi

    as hv2
    { set +x
$as_echo "$at_srcdir/ovn.at:8340: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:8340"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8340"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8340: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:8340"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8340"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8340: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8340: wait failed" >&5

    $as_echo "ovn.at:8340" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8340"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:8340: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:8340"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8340"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8340: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:8340"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8340"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8340: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8340: wait failed" >&5

    $as_echo "ovn.at:8340" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8340"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:8340: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:8340"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8340"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8340: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:8340"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8340"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8340: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8340: wait failed" >&5

    $as_echo "ovn.at:8340" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8340"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:8340: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:8340"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8340"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8340: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:8340"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8340"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8340: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8340: wait failed" >&5

    $as_echo "ovn.at:8340" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8340"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:8340: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:8340"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8340"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8340: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:8340"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8340"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8340: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8340: wait failed" >&5

    $as_echo "ovn.at:8340" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8340"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:8340: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:8340"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8340"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8340: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:8340"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8340"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8340: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8340: wait failed" >&5

    $as_echo "ovn.at:8340" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8340"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:8340: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:8340"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8340"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8340: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:8340"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8340"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8340: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8340: wait failed" >&5

    $as_echo "ovn.at:8340" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8340"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:8340: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:8340"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8340"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8340: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:8340"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8340"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8340: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8340: wait failed" >&5

    $as_echo "ovn.at:8340" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8340"
fi




  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2476
#AT_START_2477
at_fn_group_banner 2477 'ovn.at:8344' \
  "ovn -- 2 HVs, 1 lport/HV, localport ports" "      " 125
at_xfail=no
(
  $as_echo "2477. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn.at:8345" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:8345"
ovn_start

ovn-nbctl ls-add ls1

# Add localport to the switch
ovn-nbctl lsp-add ls1 lp01
ovn-nbctl lsp-set-addresses lp01 f0:00:00:00:00:01
ovn-nbctl lsp-set-type lp01 localport

net_add n1

for i in 1 2; do
    sim_add hv$i
    as hv$i
    ovs-vsctl add-br br-phys
    ovn_attach n1 br-phys 192.168.0.$i
    ovs-vsctl add-port br-int vif01 -- \
        set Interface vif01 external-ids:iface-id=lp01 \
                              options:tx_pcap=hv${i}/vif01-tx.pcap \
                              options:rxq_pcap=hv${i}/vif01-rx.pcap \
                              ofport-request=${i}0

    ovs-vsctl add-port br-int vif${i}1 -- \
        set Interface vif${i}1 external-ids:iface-id=lp${i}1 \
                              options:tx_pcap=hv${i}/vif${i}1-tx.pcap \
                              options:rxq_pcap=hv${i}/vif${i}1-rx.pcap \
                              ofport-request=${i}1

    ovn-nbctl lsp-add ls1 lp${i}1
    ovn-nbctl lsp-set-addresses lp${i}1 f0:00:00:00:00:${i}1
    ovn-nbctl lsp-set-port-security lp${i}1 f0:00:00:00:00:${i}1

        $as_echo "ovn.at:8378: waiting until test x\`ovn-nbctl lsp-get-up lp\${i}1\` = xup..." >&5
ovs_wait_cond () {
    test x`ovn-nbctl lsp-get-up lp${i}1` = xup
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8378: wait failed" >&5

    $as_echo "ovn.at:8378" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8378"
fi

done

ovn-nbctl --wait=sb sync
ovn-sbctl dump-flows

{ set +x
$as_echo "$at_srcdir/ovn.at:8384: ovn_populate_arp__"
at_fn_check_prepare_trace "ovn.at:8384"
( $at_check_trace; ovn_populate_arp__
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8384"
$at_failed && at_fn_log_failure
$at_traceon; }


# Given the name of a logical port, prints the name of the hypervisor
# on which it is located.
vif_to_hv() {
    echo hv${1%?}
}
#
# test_packet INPORT DST SRC ETHTYPE EOUT LOUT DEFHV
#
# This shell function causes a packet to be received on INPORT.  The packet's
# content has Ethernet destination DST and source SRC (each exactly 12 hex
# digits) and Ethernet type ETHTYPE (4 hex digits).  INPORT is specified as
# logical switch port numbers, e.g. 11 for vif11.
#
# EOUT is the end-to-end output port, that is, where the packet will end up
# after possibly bouncing through one or more localnet ports.  LOUT is the
# logical output port, which might be a localnet port, as seen by ovn-trace
# (which doesn't know what localnet ports are connected to and therefore can't
# figure out the end-to-end answer).
#
# DEFHV is the default hypervisor from where the packet is going to be sent
# if the source port is a localport.
for i in 1 2; do
    for j in 0 1; do
        : > $i$j.expected
    done
done
test_packet() {
    local inport=$1 dst=$2 src=$3 eth=$4 eout=$5 lout=$6 defhv=$7
    echo "$@"

    # First try tracing the packet.
    uflow="inport==\"lp$inport\" && eth.dst==$dst && eth.src==$src && eth.type==0x$eth"
    if test $lout != drop; then
        echo "output(\"$lout\");"
    fi > expout

    { set +x
$as_echo "$at_srcdir/ovn.at:8422: ovn-trace --all ls1 \"\$uflow\" | tee trace | sed '1,/Minimal trace/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:8422"
( $at_check_trace; ovn-trace --all ls1 "$uflow" | tee trace | sed '1,/Minimal trace/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8422"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }


    # Then actually send a packet, for an end-to-end test.
    local packet=$(echo $dst$src | sed 's/://g')${eth}
    hv=`vif_to_hv $inport`
    # If hypervisor 0 (localport) use the defhv parameter
    if test $hv = hv0; then
        hv=$defhv
    fi
    vif=vif$inport
    as $hv ovs-appctl netdev-dummy/receive $vif $packet
    if test $eout != drop; then
        echo $packet >> ${eout#lp}.expected
    fi
}


# lp11 and lp21 are on different hypervisors
test_packet 11 f0:00:00:00:00:21 f0:00:00:00:00:11 1121 lp21 lp21
test_packet 21 f0:00:00:00:00:11 f0:00:00:00:00:21 2111 lp11 lp11

# Both VIFs should be able to reach the localport on their own HV
test_packet 11 f0:00:00:00:00:01 f0:00:00:00:00:11 1101 lp01 lp01
test_packet 21 f0:00:00:00:00:01 f0:00:00:00:00:21 2101 lp01 lp01

# Packet sent from localport on same hv should reach the vif
test_packet 01 f0:00:00:00:00:11 f0:00:00:00:00:01 0111 lp11 lp11 hv1
test_packet 01 f0:00:00:00:00:21 f0:00:00:00:00:01 0121 lp21 lp21 hv2

# Packet sent from localport on different hv should be dropped
test_packet 01 f0:00:00:00:00:21 f0:00:00:00:00:01 0121 drop lp21 hv1
test_packet 01 f0:00:00:00:00:11 f0:00:00:00:00:01 0111 drop lp11 hv2

# Now check the packets actually received against the ones expected.
for i in 1 2; do
    for j in 0 1; do
        ovn_check_packets__ "hv$i/vif$i$j-tx.pcap" "$i$j.expected"
   { set +x
$as_echo "$at_srcdir/ovn.at:8458: sort \$rcv_text"
at_fn_check_prepare_dynamic "sort $rcv_text" "ovn.at:8458"
( $at_check_trace; sort $rcv_text
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8458"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

    done
done




    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:8462: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:8462"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8462"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8462: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:8462"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8462"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:8462: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8462: wait failed" >&5

    $as_echo "ovn.at:8462" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8462"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:8462: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:8462"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8462"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8462: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:8462"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8462"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:8462: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8462: wait failed" >&5

    $as_echo "ovn.at:8462" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8462"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:8462: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:8462"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8462"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8462: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:8462"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8462"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:8462: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8462: wait failed" >&5

    $as_echo "ovn.at:8462" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8462"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:8462: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:8462"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8462"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8462: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:8462"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8462"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:8462: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8462: wait failed" >&5

    $as_echo "ovn.at:8462" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8462"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:8462: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:8462"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8462"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8462: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:8462"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8462"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:8462: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8462: wait failed" >&5

    $as_echo "ovn.at:8462" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8462"
fi





    as hv2
    if test "hv2" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:8462: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:8462"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8462"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8462: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:8462"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8462"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:8462: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8462: wait failed" >&5

    $as_echo "ovn.at:8462" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8462"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:8462: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:8462"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8462"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8462: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:8462"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8462"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:8462: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8462: wait failed" >&5

    $as_echo "ovn.at:8462" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8462"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:8462: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:8462"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8462"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8462: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:8462"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8462"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:8462: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8462: wait failed" >&5

    $as_echo "ovn.at:8462" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8462"
fi

    fi

    as hv2
    { set +x
$as_echo "$at_srcdir/ovn.at:8462: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:8462"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8462"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8462: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:8462"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8462"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:8462: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8462: wait failed" >&5

    $as_echo "ovn.at:8462" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8462"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:8462: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:8462"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8462"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8462: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:8462"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8462"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:8462: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8462: wait failed" >&5

    $as_echo "ovn.at:8462" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8462"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:8462: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:8462"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8462"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8462: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:8462"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8462"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:8462: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8462: wait failed" >&5

    $as_echo "ovn.at:8462" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8462"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:8462: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:8462"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8462"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8462: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:8462"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8462"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:8462: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8462: wait failed" >&5

    $as_echo "ovn.at:8462" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8462"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:8462: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:8462"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8462"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8462: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:8462"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8462"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:8462: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8462: wait failed" >&5

    $as_echo "ovn.at:8462" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8462"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:8462: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:8462"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8462"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8462: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:8462"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8462"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:8462: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8462: wait failed" >&5

    $as_echo "ovn.at:8462" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8462"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:8462: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:8462"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8462"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8462: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:8462"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8462"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:8462: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8462: wait failed" >&5

    $as_echo "ovn.at:8462" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8462"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:8462: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:8462"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8462"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8462: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:8462"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8462"
$at_failed && at_fn_log_failure  \
"trace"
$at_traceon; }

   $as_echo "ovn.at:8462: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8462: wait failed" >&5

    $as_echo "ovn.at:8462" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8462"
fi




  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2477
#AT_START_2478
at_fn_group_banner 2478 'ovn.at:8466' \
  "ovn -- 1 LR with HA distributed router gateway port" "" 125
at_xfail=no
(
  $as_echo "2478. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn.at:8467" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:8467"
ovn_start

net_add n1

# create gateways with external network connectivity

for i in 1 2; do
    sim_add gw$i
    as gw$i
    ovs-vsctl add-br br-phys
    ovn_attach n1 br-phys 192.168.0.$i
    ovs-vsctl set open . external-ids:ovn-bridge-mappings=phys:br-phys
done

ovn-nbctl ls-add inside
ovn-nbctl ls-add outside

# create hypervisors with a vif port each to an internal network

for i in 1 2; do
    sim_add hv$i
    as hv$i
    ovs-vsctl add-br br-phys
    ovn_attach n1 br-phys 192.168.0.1$i
    ovs-vsctl -- add-port br-int hv$i-vif1 -- \
        set interface hv$i-vif1 external-ids:iface-id=inside$i \
        options:tx_pcap=hv$i/vif1-tx.pcap \
        options:rxq_pcap=hv$i/vif1-rx.pcap \
        ofport-request=1

        ovn-nbctl lsp-add inside inside$i \
            -- lsp-set-addresses inside$i "f0:00:00:01:22:$i 192.168.1.10$i"

done

{ set +x
$as_echo "$at_srcdir/ovn.at:8503: ovn_populate_arp__"
at_fn_check_prepare_trace "ovn.at:8503"
( $at_check_trace; ovn_populate_arp__
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8503"
$at_failed && at_fn_log_failure
$at_traceon; }


ovn-nbctl create Logical_Router name=R1

# Connect inside to R1
ovn-nbctl lrp-add R1 inside 00:00:01:01:02:03 192.168.1.1/24
ovn-nbctl lsp-add inside rp-inside -- set Logical_Switch_Port rp-inside \
    type=router options:router-port=inside \
    -- lsp-set-addresses rp-inside router

# Connect outside to R1 as distributed router gateway port on gw1+gw2
ovn-nbctl lrp-add R1 outside 00:00:02:01:02:04 192.168.0.101/24

ovn-nbctl --id=@gc0 create Gateway_Chassis \
                    name=outside_gw1 chassis_name=gw1 priority=20 -- \
          --id=@gc1 create Gateway_Chassis \
                    name=outside_gw2 chassis_name=gw2 priority=10 -- \
          set Logical_Router_Port outside 'gateway_chassis=@gc0,@gc1'

ovn-nbctl lsp-add outside rp-outside -- set Logical_Switch_Port rp-outside \
    type=router options:router-port=outside \
    -- lsp-set-addresses rp-outside router

# Create localnet port in outside
ovn-nbctl lsp-add outside ln-outside
ovn-nbctl lsp-set-addresses ln-outside unknown
ovn-nbctl lsp-set-type ln-outside localnet
ovn-nbctl lsp-set-options ln-outside network_name=phys

# Allow some time for ovn-northd and ovn-controller to catch up.
# XXX This should be more systematic.
ovn-nbctl --wait=hv --timeout=3 sync

echo "---------NB dump-----"
ovn-nbctl show
echo "---------------------"
ovn-nbctl list logical_router
echo "---------------------"
ovn-nbctl list logical_router_port
echo "---------------------"

echo "---------SB dump-----"
ovn-sbctl list datapath_binding
echo "---------------------"
ovn-sbctl list port_binding
echo "---------------------"
ovn-sbctl dump-flows
echo "---------------------"
ovn-sbctl list chassis
ovn-sbctl list encap
echo "---------------------"
echo "------ Gateway_Chassis dump (SBDB) -------"
ovn-sbctl list Gateway_Chassis
echo "------ Port_Binding chassisredirect -------"
ovn-sbctl find Port_Binding type=chassisredirect
echo "-------------------------------------------"

for chassis in gw1 gw2 hv1 hv2; do
    as $chassis
    echo "------ $chassis dump ----------"
    ovs-ofctl show br-int
    ovs-ofctl dump-flows br-int
    echo "--------------------------"
done
function bfd_dump() {
    for chassis in gw1 gw2 hv1 hv2; do
        as $chassis
        echo "------ $chassis dump (BFD)----"
        echo "BFD (from $chassis):"
        # dump BFD config and status to the other chassis
        for chassis2 in gw1 gw2 hv1 hv2; do
            if [ "$chassis" != "$chassis2" ]; then
                echo " -> $chassis2:"
                echo "   $(ovs-vsctl --bare --columns bfd,bfd_status find Interface name=ovn-$chassis2-0)"
            fi
        done
        echo "--------------------------"
    done
}

bfd_dump

hv1_gw1_ofport=$(as hv1 ovs-vsctl --bare --columns ofport find Interface name=ovn-gw1-0)
hv1_gw2_ofport=$(as hv1 ovs-vsctl --bare --columns ofport find Interface name=ovn-gw2-0)
hv2_gw1_ofport=$(as hv2 ovs-vsctl --bare --columns ofport find Interface name=ovn-gw1-0)
hv2_gw2_ofport=$(as hv2 ovs-vsctl --bare --columns ofport find Interface name=ovn-gw2-0)

echo $hv1_gw1_ofport
echo $hv1_gw2_ofport
echo $hv2_gw1_ofport
echo $hv2_gw2_ofport

echo "--- hv1 ---"
as hv1 ovs-ofctl dump-flows br-int table=32

echo "--- hv2 ---"
as hv2 ovs-ofctl dump-flows br-int table=32

gw1_chassis=$(ovn-sbctl --bare --columns=_uuid find Chassis name=gw1)
gw2_chassis=$(ovn-sbctl --bare --columns=_uuid find Chassis name=gw2)

{ set +x
$as_echo "$at_srcdir/ovn.at:8604: as hv1 ovs-ofctl dump-flows br-int table=32 | grep active_backup | grep slaves:\$hv1_gw1_ofport,\$hv1_gw2_ofport | wc -l"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:8604"
( $at_check_trace; as hv1 ovs-ofctl dump-flows br-int table=32 | grep active_backup | grep slaves:$hv1_gw1_ofport,$hv1_gw2_ofport | wc -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8604"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn.at:8607: as hv2 ovs-ofctl dump-flows br-int table=32 | grep active_backup | grep slaves:\$hv2_gw1_ofport,\$hv2_gw2_ofport | wc -l"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:8607"
( $at_check_trace; as hv2 ovs-ofctl dump-flows br-int table=32 | grep active_backup | grep slaves:$hv2_gw1_ofport,$hv2_gw2_ofport | wc -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8607"
$at_failed && at_fn_log_failure
$at_traceon; }


sleep 3 # let BFD sessions settle so we get the right flows on the right chassis

# make sure that flows for handling the outside router port reside on gw1
{ set +x
$as_echo "$at_srcdir/ovn.at:8613: as gw1 ovs-ofctl dump-flows br-int table=24 | grep 00:00:02:01:02:04 | wc -l"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:8613"
( $at_check_trace; as gw1 ovs-ofctl dump-flows br-int table=24 | grep 00:00:02:01:02:04 | wc -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8613"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:8615: as gw2 ovs-ofctl dump-flows br-int table=24 | grep 00:00:02:01:02:04 | wc -l"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:8615"
( $at_check_trace; as gw2 ovs-ofctl dump-flows br-int table=24 | grep 00:00:02:01:02:04 | wc -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8615"
$at_failed && at_fn_log_failure
$at_traceon; }


# make sure ARP responder flows for outside router port reside on gw1 too
{ set +x
$as_echo "$at_srcdir/ovn.at:8619: as gw1 ovs-ofctl dump-flows br-int table=9 | grep arp_tpa=192.168.0.101 | wc -l"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:8619"
( $at_check_trace; as gw1 ovs-ofctl dump-flows br-int table=9 | grep arp_tpa=192.168.0.101 | wc -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8619"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:8621: as gw2 ovs-ofctl dump-flows br-int table=9 | grep arp_tpa=192.168.0.101 | wc -l"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:8621"
( $at_check_trace; as gw2 ovs-ofctl dump-flows br-int table=9 | grep arp_tpa=192.168.0.101 | wc -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8621"
$at_failed && at_fn_log_failure
$at_traceon; }




# check that the chassis redirect port has been claimed by the gw1 chassis
{ set +x
$as_echo "$at_srcdir/ovn.at:8627: ovn-sbctl --columns chassis --bare find Port_Binding logical_port=cr-outside | grep \$gw1_chassis | wc -l"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:8627"
( $at_check_trace; ovn-sbctl --columns chassis --bare find Port_Binding logical_port=cr-outside | grep $gw1_chassis | wc -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8627"
$at_failed && at_fn_log_failure
$at_traceon; }



# at this point, we invert the priority of the gw chassis between gw1 and gw2

ovn-nbctl --id=@gc0 create Gateway_Chassis \
                    name=outside_gw1 chassis_name=gw1 priority=10 -- \
          --id=@gc1 create Gateway_Chassis \
                    name=outside_gw2 chassis_name=gw2 priority=20 -- \
          set Logical_Router_Port outside 'gateway_chassis=@gc0,@gc1'


# XXX: Let the change propagate down to the ovn-controllers
ovn-nbctl --wait=hv --timeout=3 sync

# we make sure that the hypervisors noticed, and inverted the slave ports
{ set +x
$as_echo "$at_srcdir/ovn.at:8645: as hv1 ovs-ofctl dump-flows br-int table=32 | grep active_backup | grep slaves:\$hv1_gw2_ofport,\$hv1_gw1_ofport | wc -l"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:8645"
( $at_check_trace; as hv1 ovs-ofctl dump-flows br-int table=32 | grep active_backup | grep slaves:$hv1_gw2_ofport,$hv1_gw1_ofport | wc -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8645"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn.at:8648: as hv2 ovs-ofctl dump-flows br-int table=32 | grep active_backup | grep slaves:\$hv2_gw2_ofport,\$hv2_gw1_ofport | wc -l"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:8648"
( $at_check_trace; as hv2 ovs-ofctl dump-flows br-int table=32 | grep active_backup | grep slaves:$hv2_gw2_ofport,$hv2_gw1_ofport | wc -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8648"
$at_failed && at_fn_log_failure
$at_traceon; }


# check that the chassis redirect port has been reclaimed by the gw2 chassis
{ set +x
$as_echo "$at_srcdir/ovn.at:8652: ovn-sbctl --columns chassis --bare find Port_Binding logical_port=cr-outside | grep \$gw2_chassis | wc -l"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:8652"
( $at_check_trace; ovn-sbctl --columns chassis --bare find Port_Binding logical_port=cr-outside | grep $gw2_chassis | wc -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8652"
$at_failed && at_fn_log_failure
$at_traceon; }


# check BFD enablement on tunnel ports from gw1 #########
as gw1
for chassis in gw2 hv1 hv2; do
    echo "checking gw1 -> $chassis"
    { set +x
$as_echo "$at_srcdir/ovn.at:8660: ovs-vsctl --bare --columns bfd find Interface name=ovn-\$chassis-0"
at_fn_check_prepare_dynamic "ovs-vsctl --bare --columns bfd find Interface name=ovn-$chassis-0" "ovn.at:8660"
( $at_check_trace; ovs-vsctl --bare --columns bfd find Interface name=ovn-$chassis-0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "enable=true
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8660"
$at_failed && at_fn_log_failure
$at_traceon; }

done


# check BFD enablement on tunnel ports from gw2 ##########
as gw2
for chassis in gw1 hv1 hv2; do
    echo "checking gw2 -> $chassis"
    { set +x
$as_echo "$at_srcdir/ovn.at:8670: ovs-vsctl --bare --columns bfd find Interface name=ovn-\$chassis-0"
at_fn_check_prepare_dynamic "ovs-vsctl --bare --columns bfd find Interface name=ovn-$chassis-0" "ovn.at:8670"
( $at_check_trace; ovs-vsctl --bare --columns bfd find Interface name=ovn-$chassis-0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "enable=true
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8670"
$at_failed && at_fn_log_failure
$at_traceon; }

done

# check BFD enablement on tunnel ports from hv1 ###########
as hv1
for chassis in gw1 gw2; do
    echo "checking hv1 -> $chassis"
    { set +x
$as_echo "$at_srcdir/ovn.at:8679: ovs-vsctl --bare --columns bfd find Interface name=ovn-\$chassis-0"
at_fn_check_prepare_dynamic "ovs-vsctl --bare --columns bfd find Interface name=ovn-$chassis-0" "ovn.at:8679"
( $at_check_trace; ovs-vsctl --bare --columns bfd find Interface name=ovn-$chassis-0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "enable=true
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8679"
$at_failed && at_fn_log_failure
$at_traceon; }

done
# make sure BFD is not enabled to hv2, we don't need it
{ set +x
$as_echo "$at_srcdir/ovn.at:8684: ovs-vsctl --bare --columns bfd find Interface name=ovn-hv2-0"
at_fn_check_prepare_trace "ovn.at:8684"
( $at_check_trace; ovs-vsctl --bare --columns bfd find Interface name=ovn-hv2-0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "enable=false
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8684"
$at_failed && at_fn_log_failure
$at_traceon; }



# check BFD enablement on tunnel ports from hv2 ##########
as hv2
for chassis in gw1 gw2; do
    echo "checking hv2 -> $chassis"
    { set +x
$as_echo "$at_srcdir/ovn.at:8693: ovs-vsctl --bare --columns bfd find Interface name=ovn-\$chassis-0"
at_fn_check_prepare_dynamic "ovs-vsctl --bare --columns bfd find Interface name=ovn-$chassis-0" "ovn.at:8693"
( $at_check_trace; ovs-vsctl --bare --columns bfd find Interface name=ovn-$chassis-0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "enable=true
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8693"
$at_failed && at_fn_log_failure
$at_traceon; }

done
# make sure BFD is not enabled to hv1, we don't need it
{ set +x
$as_echo "$at_srcdir/ovn.at:8698: ovs-vsctl --bare --columns bfd find Interface name=ovn-hv1-0"
at_fn_check_prepare_trace "ovn.at:8698"
( $at_check_trace; ovs-vsctl --bare --columns bfd find Interface name=ovn-hv1-0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "enable=false
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8698"
$at_failed && at_fn_log_failure
$at_traceon; }


sleep 3  # let BFD sessions settle so we get the right flows on the right chassis

# make sure that flows for handling the outside router port reside on gw2 now
{ set +x
$as_echo "$at_srcdir/ovn.at:8705: as gw2 ovs-ofctl dump-flows br-int table=24 | grep 00:00:02:01:02:04 | wc -l"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:8705"
( $at_check_trace; as gw2 ovs-ofctl dump-flows br-int table=24 | grep 00:00:02:01:02:04 | wc -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8705"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:8707: as gw1 ovs-ofctl dump-flows br-int table=24 | grep 00:00:02:01:02:04 | wc -l"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:8707"
( $at_check_trace; as gw1 ovs-ofctl dump-flows br-int table=24 | grep 00:00:02:01:02:04 | wc -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8707"
$at_failed && at_fn_log_failure
$at_traceon; }


# disconnect GW2 from the network, GW1 should take over
as gw2
port=${sandbox}_br-phys
as main ovs-vsctl del-port n1 $port
sleep 4

bfd_dump

# make sure that flows for handling the outside router port reside on gw2 now
{ set +x
$as_echo "$at_srcdir/ovn.at:8719: as gw1 ovs-ofctl dump-flows br-int table=24 | grep 00:00:02:01:02:04 | wc -l"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:8719"
( $at_check_trace; as gw1 ovs-ofctl dump-flows br-int table=24 | grep 00:00:02:01:02:04 | wc -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8719"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:8721: as gw2 ovs-ofctl dump-flows br-int table=24 | grep 00:00:02:01:02:04 | wc -l"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:8721"
( $at_check_trace; as gw2 ovs-ofctl dump-flows br-int table=24 | grep 00:00:02:01:02:04 | wc -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8721"
$at_failed && at_fn_log_failure
$at_traceon; }


# check that the chassis redirect port has been reclaimed by the gw1 chassis
{ set +x
$as_echo "$at_srcdir/ovn.at:8725: ovn-sbctl --columns chassis --bare find Port_Binding logical_port=cr-outside | grep \$gw1_chassis | wc -l"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:8725"
( $at_check_trace; ovn-sbctl --columns chassis --bare find Port_Binding logical_port=cr-outside | grep $gw1_chassis | wc -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8725"
$at_failed && at_fn_log_failure
$at_traceon; }





    as gw1
    if test "gw1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:8729: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:8729"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8729: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:8729"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8729: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8729: wait failed" >&5

    $as_echo "ovn.at:8729" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8729"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:8729: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:8729"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8729: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:8729"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8729: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8729: wait failed" >&5

    $as_echo "ovn.at:8729" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8729"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:8729: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:8729"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8729: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:8729"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8729: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8729: wait failed" >&5

    $as_echo "ovn.at:8729" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8729"
fi

    fi

    as gw1
    { set +x
$as_echo "$at_srcdir/ovn.at:8729: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:8729"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8729: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:8729"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8729: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8729: wait failed" >&5

    $as_echo "ovn.at:8729" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8729"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:8729: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:8729"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8729: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:8729"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8729: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8729: wait failed" >&5

    $as_echo "ovn.at:8729" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8729"
fi





    as gw2
    if test "gw2" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:8729: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:8729"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8729: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:8729"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8729: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8729: wait failed" >&5

    $as_echo "ovn.at:8729" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8729"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:8729: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:8729"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8729: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:8729"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8729: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8729: wait failed" >&5

    $as_echo "ovn.at:8729" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8729"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:8729: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:8729"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8729: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:8729"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8729: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8729: wait failed" >&5

    $as_echo "ovn.at:8729" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8729"
fi

    fi

    as gw2
    { set +x
$as_echo "$at_srcdir/ovn.at:8729: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:8729"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8729: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:8729"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8729: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8729: wait failed" >&5

    $as_echo "ovn.at:8729" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8729"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:8729: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:8729"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8729: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:8729"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8729: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8729: wait failed" >&5

    $as_echo "ovn.at:8729" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8729"
fi





    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:8729: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:8729"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8729: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:8729"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8729: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8729: wait failed" >&5

    $as_echo "ovn.at:8729" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8729"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:8729: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:8729"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8729: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:8729"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8729: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8729: wait failed" >&5

    $as_echo "ovn.at:8729" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8729"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:8729: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:8729"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8729: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:8729"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8729: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8729: wait failed" >&5

    $as_echo "ovn.at:8729" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8729"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:8729: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:8729"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8729: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:8729"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8729: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8729: wait failed" >&5

    $as_echo "ovn.at:8729" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8729"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:8729: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:8729"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8729: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:8729"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8729: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8729: wait failed" >&5

    $as_echo "ovn.at:8729" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8729"
fi





    as hv2
    if test "hv2" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:8729: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:8729"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8729: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:8729"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8729: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8729: wait failed" >&5

    $as_echo "ovn.at:8729" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8729"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:8729: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:8729"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8729: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:8729"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8729: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8729: wait failed" >&5

    $as_echo "ovn.at:8729" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8729"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:8729: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:8729"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8729: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:8729"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8729: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8729: wait failed" >&5

    $as_echo "ovn.at:8729" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8729"
fi

    fi

    as hv2
    { set +x
$as_echo "$at_srcdir/ovn.at:8729: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:8729"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8729: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:8729"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8729: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8729: wait failed" >&5

    $as_echo "ovn.at:8729" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8729"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:8729: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:8729"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8729: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:8729"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8729: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8729: wait failed" >&5

    $as_echo "ovn.at:8729" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8729"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:8729: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:8729"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8729: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:8729"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8729: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8729: wait failed" >&5

    $as_echo "ovn.at:8729" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8729"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:8729: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:8729"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8729: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:8729"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8729: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8729: wait failed" >&5

    $as_echo "ovn.at:8729" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8729"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:8729: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:8729"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8729: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:8729"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8729: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8729: wait failed" >&5

    $as_echo "ovn.at:8729" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8729"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:8729: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:8729"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8729: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:8729"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8729: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8729: wait failed" >&5

    $as_echo "ovn.at:8729" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8729"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:8729: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:8729"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8729: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:8729"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8729: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8729: wait failed" >&5

    $as_echo "ovn.at:8729" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8729"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:8729: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:8729"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8729: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:8729"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8729"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8729: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8729: wait failed" >&5

    $as_echo "ovn.at:8729" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8729"
fi




  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2478
#AT_START_2479
at_fn_group_banner 2479 'ovn.at:8733' \
  "ovn -- send gratuitous ARP for NAT rules on HA distributed router" "" 125
at_xfail=no
(
  $as_echo "2479. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn.at:8734" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:8734"
ovn_start
ovn-nbctl ls-add ls0
ovn-nbctl ls-add ls1
ovn-nbctl create Logical_Router name=lr0
ovn-nbctl lrp-add lr0 lrp0 f0:00:00:00:00:01 192.168.0.100/24

ovn-nbctl --id=@gc0 create Gateway_Chassis \
                    name=outside_gw1 chassis_name=hv2 priority=10 -- \
          --id=@gc1 create Gateway_Chassis \
                    name=outside_gw2 chassis_name=hv3 priority=1 -- \
          set Logical_Router_Port lrp0 'gateway_chassis=@gc0,@gc1'

ovn-nbctl lsp-add ls0 lrp0-rp -- set Logical_Switch_Port lrp0-rp \
    type=router options:router-port=lrp0 addresses="router"
ovn-nbctl lrp-add lr0 lrp1 f0:00:00:00:00:02 10.0.0.1/24
ovn-nbctl lsp-add ls1 lrp1-rp -- set Logical_Switch_Port lrp1-rp \
    type=router options:router-port=lrp1 addresses="router"

# Add NAT rules
{ set +x
$as_echo "$at_srcdir/ovn.at:8754: ovn-nbctl lr-nat-add lr0 snat 192.168.0.100 10.0.0.0/24"
at_fn_check_prepare_trace "ovn.at:8754"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 snat 192.168.0.100 10.0.0.0/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8754"
$at_failed && at_fn_log_failure
$at_traceon; }


net_add n1
sim_add hv1
as hv1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.1
{ set +x
$as_echo "$at_srcdir/ovn.at:8761: ovs-vsctl set Open_vSwitch . external-ids:ovn-bridge-mappings=physnet1:br-phys"
at_fn_check_prepare_trace "ovn.at:8761"
( $at_check_trace; ovs-vsctl set Open_vSwitch . external-ids:ovn-bridge-mappings=physnet1:br-phys
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8761"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:8762: ovs-vsctl add-port br-phys snoopvif -- set Interface snoopvif options:tx_pcap=hv1/snoopvif-tx.pcap options:rxq_pcap=hv1/snoopvif-rx.pcap"
at_fn_check_prepare_trace "ovn.at:8762"
( $at_check_trace; ovs-vsctl add-port br-phys snoopvif -- set Interface snoopvif options:tx_pcap=hv1/snoopvif-tx.pcap options:rxq_pcap=hv1/snoopvif-rx.pcap
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8762"
$at_failed && at_fn_log_failure
$at_traceon; }


sim_add hv2
as hv2
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.2
{ set +x
$as_echo "$at_srcdir/ovn.at:8768: as hv2 ovs-vsctl set Open_vSwitch . external-ids:ovn-bridge-mappings=physnet1:br-phys"
at_fn_check_prepare_trace "ovn.at:8768"
( $at_check_trace; as hv2 ovs-vsctl set Open_vSwitch . external-ids:ovn-bridge-mappings=physnet1:br-phys
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8768"
$at_failed && at_fn_log_failure
$at_traceon; }


sim_add hv3
as hv3
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.3
{ set +x
$as_echo "$at_srcdir/ovn.at:8774: as hv3 ovs-vsctl set Open_vSwitch . external-ids:ovn-bridge-mappings=physnet1:br-phys"
at_fn_check_prepare_trace "ovn.at:8774"
( $at_check_trace; as hv3 ovs-vsctl set Open_vSwitch . external-ids:ovn-bridge-mappings=physnet1:br-phys
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8774"
$at_failed && at_fn_log_failure
$at_traceon; }


# Create a localnet port.
{ set +x
$as_echo "$at_srcdir/ovn.at:8777: ovn-nbctl lsp-add ls0 ln_port"
at_fn_check_prepare_trace "ovn.at:8777"
( $at_check_trace; ovn-nbctl lsp-add ls0 ln_port
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8777"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:8778: ovn-nbctl lsp-set-addresses ln_port unknown"
at_fn_check_prepare_trace "ovn.at:8778"
( $at_check_trace; ovn-nbctl lsp-set-addresses ln_port unknown
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8778"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:8779: ovn-nbctl lsp-set-type ln_port localnet"
at_fn_check_prepare_trace "ovn.at:8779"
( $at_check_trace; ovn-nbctl lsp-set-type ln_port localnet
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8779"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:8780: ovn-nbctl lsp-set-options ln_port network_name=physnet1"
at_fn_check_prepare_trace "ovn.at:8780"
( $at_check_trace; ovn-nbctl lsp-set-options ln_port network_name=physnet1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8780"
$at_failed && at_fn_log_failure
$at_traceon; }


# wait for earlier changes to take effect
{ set +x
$as_echo "$at_srcdir/ovn.at:8783: ovn-nbctl --timeout=3 --wait=hv sync"
at_fn_check_prepare_trace "ovn.at:8783"
( $at_check_trace; ovn-nbctl --timeout=3 --wait=hv sync
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8783"
$at_failed && at_fn_log_failure
$at_traceon; }


reset_pcap_file() {
    local iface=$1
    local pcap_file=$2
    ovs-vsctl -- set Interface $iface options:tx_pcap=dummy-tx.pcap \
options:rxq_pcap=dummy-rx.pcap
    rm -f ${pcap_file}*.pcap
    ovs-vsctl -- set Interface $iface options:tx_pcap=${pcap_file}-tx.pcap \
options:rxq_pcap=${pcap_file}-rx.pcap
}

as hv1 reset_pcap_file snoopvif hv1/snoopvif
as hv2 reset_pcap_file br-phys_n1 hv2/br-phys_n1
as hv3 reset_pcap_file br-phys_n1 hv3/br-phys_n1
# add nat-addresses option
ovn-nbctl --wait=hv lsp-set-options lrp0-rp router-port=lrp0 nat-addresses="router"

# Wait for packets to be received through hv2.
$as_echo "ovn.at:8802: waiting until test \`wc -c < \"hv1/snoopvif-tx.pcap\"\` -ge 100..." >&5
ovs_wait_cond () {
    test `wc -c < "hv1/snoopvif-tx.pcap"` -ge 100
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8802: wait failed" >&5

    $as_echo "ovn.at:8802" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8802"
fi

trim_zeros() {
    sed 's/\(00\)\{1,\}$//'
}

only_broadcast_from_lrp1() {
    grep "fffffffffffff00000000001"
}

garp="fffffffffffff0000000000108060001080006040001f00000000001c0a80064000000000000c0a80064"
echo $garp > expout

$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/snoopvif-tx.pcap | trim_zeros | only_broadcast_from_lrp1 | uniq > hv1_snoop_tx
echo "packets on hv1-snoopvif:"
cat hv1_snoop_tx
{ set +x
$as_echo "$at_srcdir/ovn.at:8817: sort hv1_snoop_tx"
at_fn_check_prepare_trace "ovn.at:8817"
( $at_check_trace; sort hv1_snoop_tx
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8817"
$at_failed && at_fn_log_failure
$at_traceon; }

$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv2/br-phys_n1-tx.pcap | trim_zeros | only_broadcast_from_lrp1 | uniq > hv2_br_phys_tx
echo "packets on hv2 br-phys tx"
cat hv2_br_phys_tx
{ set +x
$as_echo "$at_srcdir/ovn.at:8821: grep \$garp hv2_br_phys_tx | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:8821"
( $at_check_trace; grep $garp hv2_br_phys_tx | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8821"
$at_failed && at_fn_log_failure
$at_traceon; }

$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv3/br-phys_n1-tx.pcap | trim_zeros | only_broadcast_from_lrp1 | uniq > hv3_br_phys_tx
echo "packets on hv3 br-phys tx"
cat hv3_br_phys_tx
{ set +x
$as_echo "$at_srcdir/ovn.at:8825: grep \$garp hv3_br_phys_tx | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:8825"
( $at_check_trace; grep $garp hv3_br_phys_tx | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8825"
$at_failed && at_fn_log_failure
$at_traceon; }



# at this point, we invert the priority of the gw chassis between hv2 and hv3

ovn-nbctl --wait=hv \
          --id=@gc0 create Gateway_Chassis \
                    name=outside_gw1 chassis_name=hv2 priority=1 -- \
          --id=@gc1 create Gateway_Chassis \
                    name=outside_gw2 chassis_name=hv3 priority=10 -- \
          set Logical_Router_Port lrp0 'gateway_chassis=@gc0,@gc1'


as hv1 reset_pcap_file snoopvif hv1/snoopvif
as hv2 reset_pcap_file br-phys_n1 hv2/br-phys_n1
as hv3 reset_pcap_file br-phys_n1 hv3/br-phys_n1

# Wait for packets to be received.
$as_echo "ovn.at:8843: waiting until test \`wc -c < \"hv1/snoopvif-tx.pcap\"\` -ge 100..." >&5
ovs_wait_cond () {
    test `wc -c < "hv1/snoopvif-tx.pcap"` -ge 100
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8843: wait failed" >&5

    $as_echo "ovn.at:8843" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8843"
fi

trim_zeros() {
    sed 's/\(00\)\{1,\}$//'
}

$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/snoopvif-tx.pcap | trim_zeros | only_broadcast_from_lrp1 | uniq >  hv1_snoopvif_tx
{ set +x
$as_echo "$at_srcdir/ovn.at:8849: sort hv1_snoopvif_tx"
at_fn_check_prepare_trace "ovn.at:8849"
( $at_check_trace; sort hv1_snoopvif_tx
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8849"
$at_failed && at_fn_log_failure
$at_traceon; }

$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv3/br-phys_n1-tx.pcap | trim_zeros | only_broadcast_from_lrp1 | uniq > hv3_br_phys_tx
{ set +x
$as_echo "$at_srcdir/ovn.at:8851: grep \$garp hv3_br_phys_tx | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:8851"
( $at_check_trace; grep $garp hv3_br_phys_tx | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8851"
$at_failed && at_fn_log_failure
$at_traceon; }

$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv2/br-phys_n1-tx.pcap | trim_zeros | only_broadcast_from_lrp1 | uniq > hv2_br_phys_tx
{ set +x
$as_echo "$at_srcdir/ovn.at:8853: grep \$garp hv2_br_phys_tx | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:8853"
( $at_check_trace; grep $garp hv2_br_phys_tx | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8853"
$at_failed && at_fn_log_failure
$at_traceon; }


# change localnet port tag.
{ set +x
$as_echo "$at_srcdir/ovn.at:8856: ovn-nbctl set Logical_Switch_Port ln_port tag=2014"
at_fn_check_prepare_trace "ovn.at:8856"
( $at_check_trace; ovn-nbctl set Logical_Switch_Port ln_port tag=2014
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8856"
$at_failed && at_fn_log_failure
$at_traceon; }


# wait for earlier changes to take effect
{ set +x
$as_echo "$at_srcdir/ovn.at:8859: ovn-nbctl --timeout=3 --wait=hv sync"
at_fn_check_prepare_trace "ovn.at:8859"
( $at_check_trace; ovn-nbctl --timeout=3 --wait=hv sync
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8859"
$at_failed && at_fn_log_failure
$at_traceon; }


# update nat-addresses option
ovn-nbctl --wait=hv lsp-set-options lrp0-rp router-port=lrp0
ovn-nbctl --wait=hv lsp-set-options lrp0-rp router-port=lrp0 nat-addresses="router"

as hv1 reset_pcap_file snoopvif hv1/snoopvif
as hv2 reset_pcap_file br-phys_n1 hv2/br-phys_n1
as hv3 reset_pcap_file br-phys_n1 hv3/br-phys_n1

# Wait for packets to be received.
$as_echo "ovn.at:8870: waiting until test \`wc -c < \"hv1/snoopvif-tx.pcap\"\` -ge 100..." >&5
ovs_wait_cond () {
    test `wc -c < "hv1/snoopvif-tx.pcap"` -ge 100
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8870: wait failed" >&5

    $as_echo "ovn.at:8870" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8870"
fi

trim_zeros() {
    sed 's/\(00\)\{1,\}$//'
}

garp="fffffffffffff00000000001810007de08060001080006040001f00000000001c0a80064000000000000c0a80064"
echo $garp > expout

$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/snoopvif-tx.pcap | trim_zeros | only_broadcast_from_lrp1 | uniq >  hv1_snoopvif_tx
{ set +x
$as_echo "$at_srcdir/ovn.at:8879: sort hv1_snoopvif_tx"
at_fn_check_prepare_trace "ovn.at:8879"
( $at_check_trace; sort hv1_snoopvif_tx
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8879"
$at_failed && at_fn_log_failure
$at_traceon; }

$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv3/br-phys_n1-tx.pcap | trim_zeros | only_broadcast_from_lrp1 | uniq > hv3_br_phys_tx
{ set +x
$as_echo "$at_srcdir/ovn.at:8881: grep \$garp hv3_br_phys_tx | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:8881"
( $at_check_trace; grep $garp hv3_br_phys_tx | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8881"
$at_failed && at_fn_log_failure
$at_traceon; }

$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv2/br-phys_n1-tx.pcap | trim_zeros | only_broadcast_from_lrp1 | uniq > hv2_br_phys_tx
{ set +x
$as_echo "$at_srcdir/ovn.at:8883: grep \$garp hv2_br_phys_tx | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:8883"
( $at_check_trace; grep $garp hv2_br_phys_tx | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8883"
$at_failed && at_fn_log_failure
$at_traceon; }





    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:8885: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:8885"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8885: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:8885"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8885: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8885: wait failed" >&5

    $as_echo "ovn.at:8885" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8885"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:8885: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:8885"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8885: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:8885"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8885: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8885: wait failed" >&5

    $as_echo "ovn.at:8885" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8885"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:8885: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:8885"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8885: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:8885"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8885: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8885: wait failed" >&5

    $as_echo "ovn.at:8885" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8885"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:8885: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:8885"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8885: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:8885"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8885: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8885: wait failed" >&5

    $as_echo "ovn.at:8885" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8885"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:8885: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:8885"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8885: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:8885"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8885: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8885: wait failed" >&5

    $as_echo "ovn.at:8885" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8885"
fi





    as hv2
    if test "hv2" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:8885: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:8885"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8885: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:8885"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8885: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8885: wait failed" >&5

    $as_echo "ovn.at:8885" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8885"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:8885: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:8885"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8885: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:8885"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8885: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8885: wait failed" >&5

    $as_echo "ovn.at:8885" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8885"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:8885: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:8885"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8885: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:8885"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8885: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8885: wait failed" >&5

    $as_echo "ovn.at:8885" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8885"
fi

    fi

    as hv2
    { set +x
$as_echo "$at_srcdir/ovn.at:8885: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:8885"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8885: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:8885"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8885: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8885: wait failed" >&5

    $as_echo "ovn.at:8885" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8885"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:8885: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:8885"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8885: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:8885"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8885: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8885: wait failed" >&5

    $as_echo "ovn.at:8885" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8885"
fi





    as hv3
    if test "hv3" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:8885: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:8885"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8885: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:8885"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8885: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8885: wait failed" >&5

    $as_echo "ovn.at:8885" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8885"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:8885: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:8885"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8885: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:8885"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8885: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8885: wait failed" >&5

    $as_echo "ovn.at:8885" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8885"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:8885: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:8885"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8885: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:8885"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8885: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8885: wait failed" >&5

    $as_echo "ovn.at:8885" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8885"
fi

    fi

    as hv3
    { set +x
$as_echo "$at_srcdir/ovn.at:8885: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:8885"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8885: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:8885"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8885: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8885: wait failed" >&5

    $as_echo "ovn.at:8885" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8885"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:8885: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:8885"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8885: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:8885"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8885: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8885: wait failed" >&5

    $as_echo "ovn.at:8885" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8885"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:8885: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:8885"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8885: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:8885"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8885: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8885: wait failed" >&5

    $as_echo "ovn.at:8885" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8885"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:8885: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:8885"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8885: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:8885"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8885: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8885: wait failed" >&5

    $as_echo "ovn.at:8885" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8885"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:8885: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:8885"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8885: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:8885"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8885: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8885: wait failed" >&5

    $as_echo "ovn.at:8885" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8885"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:8885: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:8885"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8885: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:8885"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8885: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8885: wait failed" >&5

    $as_echo "ovn.at:8885" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8885"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:8885: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:8885"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8885: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:8885"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8885: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8885: wait failed" >&5

    $as_echo "ovn.at:8885" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8885"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:8885: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:8885"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8885: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:8885"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8885"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8885: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8885: wait failed" >&5

    $as_echo "ovn.at:8885" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8885"
fi




  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2479
#AT_START_2480
at_fn_group_banner 2480 'ovn.at:8889' \
  "ovn -- ensure one gw controller restart in HA doesn't bounce the master" "" 125
at_xfail=no
(
  $as_echo "2480. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn.at:8890" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:8890"
ovn_start

net_add n1

# create two gateways with external network connectivity
for i in 1 2; do
    sim_add gw$i
    as gw$i
    ovs-vsctl add-br br-phys
    ovn_attach n1 br-phys 192.168.0.$i
    ovs-vsctl set open . external-ids:ovn-bridge-mappings=phys:br-phys
done

ovn-nbctl ls-add inside
ovn-nbctl ls-add outside

# create one hypervisors with a vif port the internal network
sim_add hv1
as hv1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.11
ovs-vsctl -- add-port br-int hv1-vif1 -- \
    set interface hv1-vif1 external-ids:iface-id=inside1 \
    options:tx_pcap=hv1/vif1-tx.pcap \
    options:rxq_pcap=hv1/vif1-rx.pcap \
    ofport-request=1

ovn-nbctl lsp-add inside inside1 \
        -- lsp-set-addresses inside1 "f0:00:00:01:22:01 192.168.1.101"


{ set +x
$as_echo "$at_srcdir/ovn.at:8922: ovn_populate_arp__"
at_fn_check_prepare_trace "ovn.at:8922"
( $at_check_trace; ovn_populate_arp__
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8922"
$at_failed && at_fn_log_failure
$at_traceon; }


ovn-nbctl create Logical_Router name=R1

# Connect inside to R1
ovn-nbctl lrp-add R1 inside 00:00:01:01:02:03 192.168.1.1/24
ovn-nbctl lsp-add inside rp-inside -- set Logical_Switch_Port rp-inside \
    type=router options:router-port=inside \
    -- lsp-set-addresses rp-inside router

# Connect outside to R1 as distributed router gateway port on gw1+gw2
ovn-nbctl lrp-add R1 outside 00:00:02:01:02:04 192.168.0.101/24

ovn-nbctl --id=@gc0 create Gateway_Chassis \
                    name=outside_gw1 chassis_name=gw1 priority=20 -- \
          --id=@gc1 create Gateway_Chassis \
                    name=outside_gw2 chassis_name=gw2 priority=10 -- \
          set Logical_Router_Port outside 'gateway_chassis=@gc0,@gc1'

ovn-nbctl lsp-add outside rp-outside -- set Logical_Switch_Port rp-outside \
    type=router options:router-port=outside \
    -- lsp-set-addresses rp-outside router

# Create localnet port in outside
ovn-nbctl lsp-add outside ln-outside
ovn-nbctl lsp-set-addresses ln-outside unknown
ovn-nbctl lsp-set-type ln-outside localnet
ovn-nbctl lsp-set-options ln-outside network_name=phys

# Allow some time for ovn-northd and ovn-controller to catch up.
ovn-nbctl --wait=hv --timeout=3 sync

# currently when ovn-controller is restarted, the old entry is deleted
# and a new one is created, which leaves the Gateway_Chassis with
# an empty chassis for a while. NOTE: restarting ovn-controller in tests
# doesn't have the same effect because "name" is conserved, and the
# Chassis entry is not replaced.

> gw1/ovn-controller.log

gw2_chassis=$(ovn-sbctl --bare --columns=_uuid find Chassis name=gw2)
ovn-sbctl destroy Chassis $gw2_chassis

# Ensure ovn-controller has processed latest sbdb update
# ovn-nbctl --wait=hv sync

{ set +x
$as_echo "$at_srcdir/ovn.at:8968: grep \"Releasing lport\" gw1/ovn-controller.log"
at_fn_check_prepare_trace "ovn.at:8968"
( $at_check_trace; grep "Releasing lport" gw1/ovn-controller.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn.at:8968"
$at_failed && at_fn_log_failure
$at_traceon; }





    as gw1
    if test "gw1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:8970: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:8970"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8970: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:8970"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8970: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8970: wait failed" >&5

    $as_echo "ovn.at:8970" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8970"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:8970: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:8970"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8970: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:8970"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8970: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8970: wait failed" >&5

    $as_echo "ovn.at:8970" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8970"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:8970: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:8970"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8970: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:8970"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8970: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8970: wait failed" >&5

    $as_echo "ovn.at:8970" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8970"
fi

    fi

    as gw1
    { set +x
$as_echo "$at_srcdir/ovn.at:8970: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:8970"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8970: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:8970"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8970: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8970: wait failed" >&5

    $as_echo "ovn.at:8970" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8970"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:8970: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:8970"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8970: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:8970"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8970: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8970: wait failed" >&5

    $as_echo "ovn.at:8970" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8970"
fi





    as gw2
    if test "gw2" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:8970: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:8970"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8970: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:8970"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8970: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8970: wait failed" >&5

    $as_echo "ovn.at:8970" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8970"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:8970: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:8970"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8970: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:8970"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8970: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8970: wait failed" >&5

    $as_echo "ovn.at:8970" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8970"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:8970: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:8970"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8970: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:8970"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8970: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8970: wait failed" >&5

    $as_echo "ovn.at:8970" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8970"
fi

    fi

    as gw2
    { set +x
$as_echo "$at_srcdir/ovn.at:8970: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:8970"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8970: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:8970"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8970: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8970: wait failed" >&5

    $as_echo "ovn.at:8970" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8970"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:8970: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:8970"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8970: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:8970"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8970: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8970: wait failed" >&5

    $as_echo "ovn.at:8970" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8970"
fi





    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:8970: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:8970"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8970: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:8970"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8970: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8970: wait failed" >&5

    $as_echo "ovn.at:8970" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8970"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:8970: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:8970"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8970: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:8970"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8970: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8970: wait failed" >&5

    $as_echo "ovn.at:8970" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8970"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:8970: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:8970"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8970: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:8970"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8970: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8970: wait failed" >&5

    $as_echo "ovn.at:8970" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8970"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:8970: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:8970"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8970: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:8970"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8970: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8970: wait failed" >&5

    $as_echo "ovn.at:8970" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8970"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:8970: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:8970"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8970: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:8970"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8970: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8970: wait failed" >&5

    $as_echo "ovn.at:8970" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8970"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:8970: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:8970"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8970: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:8970"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8970: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8970: wait failed" >&5

    $as_echo "ovn.at:8970" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8970"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:8970: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:8970"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8970: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:8970"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8970: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8970: wait failed" >&5

    $as_echo "ovn.at:8970" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8970"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:8970: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:8970"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8970: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:8970"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8970: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8970: wait failed" >&5

    $as_echo "ovn.at:8970" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8970"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:8970: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:8970"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8970: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:8970"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8970: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8970: wait failed" >&5

    $as_echo "ovn.at:8970" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8970"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:8970: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:8970"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8970: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:8970"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8970: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8970: wait failed" >&5

    $as_echo "ovn.at:8970" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8970"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:8970: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:8970"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:8970: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:8970"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:8970"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:8970: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:8970: wait failed" >&5

    $as_echo "ovn.at:8970" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:8970"
fi




  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2480
#AT_START_2481
at_fn_group_banner 2481 'ovn.at:8974' \
  "ovn -- IPv6 Neighbor Solicitation for unknown MAC" "" 125
at_xfail=no
(
  $as_echo "2481. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


$as_echo "ovn.at:8976" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn.at:8976"
ovn_start

ovn-nbctl ls-add sw0_ip6
ovn-nbctl lsp-add sw0_ip6 sw0_ip6-port1
ovn-nbctl lsp-set-addresses sw0_ip6-port1 \
"50:64:00:00:00:02 aef0::5264:00ff:fe00:0002"

ovn-nbctl lsp-set-port-security sw0_ip6-port1 \
"50:64:00:00:00:02 aef0::5264:00ff:fe00:0002"

ovn-nbctl lr-add lr0_ip6
ovn-nbctl lrp-add lr0_ip6 lrp0_ip6 00:00:00:00:af:01 aef0:0:0:0:0:0:0:0/64
ovn-nbctl lsp-add sw0_ip6 lrp0_ip6-attachment
ovn-nbctl lsp-set-type lrp0_ip6-attachment router
ovn-nbctl lsp-set-addresses lrp0_ip6-attachment 00:00:00:00:af:01
ovn-nbctl lsp-set-options lrp0_ip6-attachment router-port=lrp0_ip6
ovn-nbctl set logical_router_port lrp0_ip6 ipv6_ra_configs:address_mode=slaac

ovn-nbctl ls-add public
ovn-nbctl lsp-add public ln-public
ovn-nbctl lsp-set-addresses ln-public unknown
ovn-nbctl lsp-set-type ln-public localnet
ovn-nbctl lsp-set-options ln-public network_name=phys

ovn-nbctl lrp-add lr0_ip6 ip6_public 00:00:02:01:02:04 \
2001:db8:1:0:200:02ff:fe01:0204/64 \
-- set Logical_Router_port ip6_public options:redirect-chassis="hv1"


ovn-nbctl lsp-add public rp-ip6_public -- set Logical_Switch_Port \
rp-ip6_public  type=router options:router-port=ip6_public \
-- lsp-set-addresses rp-ip6_public router

net_add n1
sim_add hv1
as hv1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.2

ovs-vsctl -- add-port br-int hv1-vif1 -- \
    set interface hv1-vif1 external-ids:iface-id=sw0_ip6-port1 \
    options:tx_pcap=hv1/vif1-tx.pcap \
    options:rxq_pcap=hv1/vif1-rx.pcap \
    ofport-request=1
ovs-vsctl set open . external-ids:ovn-bridge-mappings=phys:br-phys

# Allow some time for ovn-northd and ovn-controller to catch up.
# XXX This should be more systematic.
sleep 1

trim_zeros() {
    sed 's/\(00\)\{1,\}$//'
}

# Test the IPv6 Neighbor Solicitation (NS) - nd_ns action for unknown MAC
# addresses. ovn-controller should generate an IPv6 NS request for IPv6
# packets whose MAC is unknown (in the ARP_REQUEST router pipeline stage.
# test_ipv6 INPORT SRC_MAC DST_MAC SRC_IP DST_IP OUTPORT...
# This function sends ipv6 packet
test_ipv6() {
    local inport=$1 src_mac=$2 dst_mac=$3 src_ip=$4
    dst_ip=20010db800010000020002fffe010205

    local packet=${dst_mac}${src_mac}86dd6000000000083aff${src_ip}${dst_ip}
    packet=${packet}8000000000000000
    shift; shift; shift; shift

    dst_mac=3333ff010205
    src_mac=000002010204
    mcast_node_ip=ff0200000000000000000001ff010205
    expected_packet=${dst_mac}${src_mac}86dd6000000000203aff${src_ip}
    expected_packet=${expected_packet}${mcast_node_ip}8700XXXX00000000${dst_ip}
    expected_packet=${expected_packet}0101${src_mac}

    as hv1 ovs-appctl netdev-dummy/receive hv1-vif${inport} $packet
    echo $expected_packet >> ipv6_ns.expected
}

src_mac=506400000002
dst_mac=00000000af01
src_ip=aef0000000000000526400fffe000002
# Send an IPv6 packet. Generated IPv6 Neighbor solicitation packet
# should be received by the ports attached to br-phys.
test_ipv6 1 $src_mac $dst_mac $src_ip 2

$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/br-phys_n1-tx.pcap | \
trim_zeros > 1.packets
$PYTHON "$top_srcdir/utilities/ovs-pcap.in" hv1/br-phys-tx.pcap | \
trim_zeros > 2.packets

cat ipv6_ns.expected | cut -c -112 > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:9068: cat 1.packets | cut -c -112"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:9068"
( $at_check_trace; cat 1.packets | cut -c -112
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9068"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:9069: cat 2.packets | cut -c -112"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:9069"
( $at_check_trace; cat 2.packets | cut -c -112
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9069"
$at_failed && at_fn_log_failure
$at_traceon; }


# Skipping the ICMPv6 checksum
cat ipv6_ns.expected | cut -c 117- > expout
{ set +x
$as_echo "$at_srcdir/ovn.at:9073: cat 1.packets | cut -c 117-"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:9073"
( $at_check_trace; cat 1.packets | cut -c 117-
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9073"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:9074: cat 2.packets | cut -c 117-"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:9074"
( $at_check_trace; cat 2.packets | cut -c 117-
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9074"
$at_failed && at_fn_log_failure
$at_traceon; }





    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:9076: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:9076"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9076"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9076: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:9076"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9076"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9076: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9076: wait failed" >&5

    $as_echo "ovn.at:9076" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9076"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:9076: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:9076"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9076"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9076: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:9076"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9076"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9076: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9076: wait failed" >&5

    $as_echo "ovn.at:9076" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9076"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:9076: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:9076"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9076"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9076: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:9076"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9076"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9076: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9076: wait failed" >&5

    $as_echo "ovn.at:9076" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9076"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:9076: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:9076"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9076"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9076: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:9076"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9076"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9076: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9076: wait failed" >&5

    $as_echo "ovn.at:9076" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9076"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:9076: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:9076"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9076"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9076: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:9076"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9076"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9076: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9076: wait failed" >&5

    $as_echo "ovn.at:9076" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9076"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:9076: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:9076"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9076"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9076: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:9076"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9076"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9076: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9076: wait failed" >&5

    $as_echo "ovn.at:9076" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9076"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:9076: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:9076"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9076"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9076: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:9076"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9076"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9076: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9076: wait failed" >&5

    $as_echo "ovn.at:9076" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9076"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:9076: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:9076"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9076"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9076: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:9076"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9076"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9076: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9076: wait failed" >&5

    $as_echo "ovn.at:9076" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9076"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:9076: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:9076"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9076"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9076: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:9076"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9076"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9076: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9076: wait failed" >&5

    $as_echo "ovn.at:9076" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9076"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:9076: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:9076"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9076"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9076: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:9076"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9076"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9076: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9076: wait failed" >&5

    $as_echo "ovn.at:9076" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9076"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:9076: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:9076"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9076"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9076: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:9076"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9076"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9076: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9076: wait failed" >&5

    $as_echo "ovn.at:9076" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9076"
fi




  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2481
#AT_START_2482
at_fn_group_banner 2482 'ovn.at:9080' \
  "ovn -- options:requested-chassis for logical port" "" 125
at_xfail=no
(
  $as_echo "2482. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

ovn_start

net_add n1

ovn-nbctl ls-add ls0
ovn-nbctl lsp-add ls0 lsp0

# create two hypervisors, each with one vif port
sim_add hv1
as hv1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.11
ovs-vsctl -- add-port br-int hv1-vif0 -- \
set Interface hv1-vif0 ofport-request=1

sim_add hv2
as hv2
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.12
ovs-vsctl -- add-port br-int hv2-vif0 -- \
set Interface hv2-vif0 ofport-request=1

# Allow only chassis hv1 to bind logical port lsp0.
ovn-nbctl lsp-set-options lsp0 requested-chassis=hv1

# Allow some time for ovn-northd and ovn-controller to catch up.
ovn-nbctl --wait=hv --timeout=3 sync

# Retrieve hv1 and hv2 chassis UUIDs from southbound database
hv1_uuid=$(ovn-sbctl --bare --columns _uuid find chassis name=hv1)
hv2_uuid=$(ovn-sbctl --bare --columns _uuid find chassis name=hv2)

# (1) Chassis hv2 should not bind lsp0 when requested-chassis is hv1.
echo "verifying that hv2 does not bind lsp0 when hv2 physical/logical mapping is added"
as hv2
ovs-vsctl set interface hv2-vif0 external-ids:iface-id=lsp0

$as_echo "ovn.at:9118: waiting until test 1 = \$(grep -c \"Not claiming lport lsp0\" hv2/ovn-controller.log)..." >&5
ovs_wait_cond () {
    test 1 = $(grep -c "Not claiming lport lsp0" hv2/ovn-controller.log)
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9118: wait failed" >&5

    $as_echo "ovn.at:9118" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9118"
fi

{ set +x
$as_echo "$at_srcdir/ovn.at:9119: test x\$(ovn-sbctl --bare --columns chassis find port_binding logical_port=lsp0) = x"
at_fn_check_prepare_notrace 'a $(...) command substitution' "ovn.at:9119"
( $at_check_trace; test x$(ovn-sbctl --bare --columns chassis find port_binding logical_port=lsp0) = x
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9119"
$at_failed && at_fn_log_failure
$at_traceon; }


# (2) Chassis hv2 should not add flows in OFTABLE_PHY_TO_LOG and OFTABLE_LOG_TO_PHY tables.
{ set +x
$as_echo "$at_srcdir/ovn.at:9122: as hv2 ovs-ofctl dump-flows br-int table=0 | grep in_port=1"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:9122"
( $at_check_trace; as hv2 ovs-ofctl dump-flows br-int table=0 | grep in_port=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn.at:9122"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:9123: as hv2 ovs-ofctl dump-flows br-int table=65 | grep output"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:9123"
( $at_check_trace; as hv2 ovs-ofctl dump-flows br-int table=65 | grep output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn.at:9123"
$at_failed && at_fn_log_failure
$at_traceon; }


# (3) Chassis hv1 should bind lsp0 when physical to logical mapping exists on hv1.
echo "verifying that hv1 binds lsp0 when hv1 physical/logical mapping is added"
as hv1
ovs-vsctl set interface hv1-vif0 external-ids:iface-id=lsp0

$as_echo "ovn.at:9130: waiting until test 1 = \$(grep -c \"Claiming lport lsp0\" hv1/ovn-controller.log)..." >&5
ovs_wait_cond () {
    test 1 = $(grep -c "Claiming lport lsp0" hv1/ovn-controller.log)
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9130: wait failed" >&5

    $as_echo "ovn.at:9130" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9130"
fi

{ set +x
$as_echo "$at_srcdir/ovn.at:9131: test \$(ovn-sbctl --bare --columns chassis find port_binding logical_port=lsp0) = \"\$hv1_uuid\""
at_fn_check_prepare_notrace 'a $(...) command substitution' "ovn.at:9131"
( $at_check_trace; test $(ovn-sbctl --bare --columns chassis find port_binding logical_port=lsp0) = "$hv1_uuid"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9131"
$at_failed && at_fn_log_failure
$at_traceon; }


# (4) Chassis hv1 should add flows in OFTABLE_PHY_TO_LOG and OFTABLE_LOG_TO_PHY tables.
as hv1 ovs-ofctl dump-flows br-int
{ set +x
$as_echo "$at_srcdir/ovn.at:9135: as hv1 ovs-ofctl dump-flows br-int table=0 | grep in_port=1"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:9135"
( $at_check_trace; as hv1 ovs-ofctl dump-flows br-int table=0 | grep in_port=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9135"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:9136: as hv1 ovs-ofctl dump-flows br-int table=65 | grep actions=output:1"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:9136"
( $at_check_trace; as hv1 ovs-ofctl dump-flows br-int table=65 | grep actions=output:1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9136"
$at_failed && at_fn_log_failure
$at_traceon; }


# (5) Chassis hv1 should release lsp0 binding and chassis hv2 should bind lsp0 when
# the requested chassis for lsp0 is changed from hv1 to hv2.
echo "verifying that lsp0 binding moves when requested-chassis is changed"

ovn-nbctl lsp-set-options lsp0 requested-chassis=hv2
$as_echo "ovn.at:9143: waiting until test 1 = \$(grep -c \"Releasing lport lsp0 from this chassis\" hv1/ovn-controller.log)..." >&5
ovs_wait_cond () {
    test 1 = $(grep -c "Releasing lport lsp0 from this chassis" hv1/ovn-controller.log)
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9143: wait failed" >&5

    $as_echo "ovn.at:9143" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9143"
fi

$as_echo "ovn.at:9144: waiting until test \$(ovn-sbctl --bare --columns chassis find port_binding logical_port=lsp0) = \"\$hv2_uuid\"..." >&5
ovs_wait_cond () {
    test $(ovn-sbctl --bare --columns chassis find port_binding logical_port=lsp0) = "$hv2_uuid"
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9144: wait failed" >&5

    $as_echo "ovn.at:9144" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9144"
fi


# (6) Chassis hv2 should add flows and hv1 should not.
{ set +x
$as_echo "$at_srcdir/ovn.at:9147: as hv2 ovs-ofctl dump-flows br-int table=0 | grep in_port=1"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:9147"
( $at_check_trace; as hv2 ovs-ofctl dump-flows br-int table=0 | grep in_port=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9147"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:9148: as hv2 ovs-ofctl dump-flows br-int table=65 | grep actions=output:1"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:9148"
( $at_check_trace; as hv2 ovs-ofctl dump-flows br-int table=65 | grep actions=output:1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9148"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn.at:9150: as hv1 ovs-ofctl dump-flows br-int table=0 | grep in_port=1"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:9150"
( $at_check_trace; as hv1 ovs-ofctl dump-flows br-int table=0 | grep in_port=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn.at:9150"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:9151: as hv1 ovs-ofctl dump-flows br-int table=65 | grep output"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:9151"
( $at_check_trace; as hv1 ovs-ofctl dump-flows br-int table=65 | grep output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn.at:9151"
$at_failed && at_fn_log_failure
$at_traceon; }





    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:9153: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:9153"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9153"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9153: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:9153"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9153"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9153: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9153: wait failed" >&5

    $as_echo "ovn.at:9153" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9153"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:9153: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:9153"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9153"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9153: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:9153"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9153"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9153: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9153: wait failed" >&5

    $as_echo "ovn.at:9153" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9153"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:9153: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:9153"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9153"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9153: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:9153"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9153"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9153: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9153: wait failed" >&5

    $as_echo "ovn.at:9153" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9153"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:9153: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:9153"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9153"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9153: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:9153"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9153"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9153: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9153: wait failed" >&5

    $as_echo "ovn.at:9153" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9153"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:9153: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:9153"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9153"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9153: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:9153"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9153"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9153: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9153: wait failed" >&5

    $as_echo "ovn.at:9153" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9153"
fi





    as hv2
    if test "hv2" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:9153: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:9153"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9153"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9153: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:9153"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9153"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9153: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9153: wait failed" >&5

    $as_echo "ovn.at:9153" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9153"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:9153: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:9153"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9153"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9153: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:9153"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9153"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9153: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9153: wait failed" >&5

    $as_echo "ovn.at:9153" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9153"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:9153: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:9153"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9153"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9153: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:9153"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9153"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9153: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9153: wait failed" >&5

    $as_echo "ovn.at:9153" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9153"
fi

    fi

    as hv2
    { set +x
$as_echo "$at_srcdir/ovn.at:9153: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:9153"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9153"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9153: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:9153"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9153"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9153: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9153: wait failed" >&5

    $as_echo "ovn.at:9153" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9153"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:9153: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:9153"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9153"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9153: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:9153"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9153"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9153: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9153: wait failed" >&5

    $as_echo "ovn.at:9153" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9153"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:9153: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:9153"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9153"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9153: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:9153"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9153"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9153: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9153: wait failed" >&5

    $as_echo "ovn.at:9153" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9153"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:9153: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:9153"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9153"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9153: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:9153"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9153"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9153: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9153: wait failed" >&5

    $as_echo "ovn.at:9153" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9153"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:9153: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:9153"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9153"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9153: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:9153"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9153"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9153: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9153: wait failed" >&5

    $as_echo "ovn.at:9153" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9153"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:9153: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:9153"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9153"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9153: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:9153"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9153"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9153: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9153: wait failed" >&5

    $as_echo "ovn.at:9153" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9153"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:9153: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:9153"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9153"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9153: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:9153"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9153"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9153: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9153: wait failed" >&5

    $as_echo "ovn.at:9153" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9153"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:9153: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:9153"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9153"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9153: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:9153"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9153"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9153: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9153: wait failed" >&5

    $as_echo "ovn.at:9153" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9153"
fi




  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2482
#AT_START_2483
at_fn_group_banner 2483 'ovn.at:9157' \
  "ovn -- options:requested-chassis with hostname" " " 125
at_xfail=no
(
  $as_echo "2483. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ovn_start

ovn-nbctl ls-add ls0
ovn-nbctl lsp-add ls0 lsp0

net_add n1
sim_add hv1
as hv1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.11
ovs-vsctl -- add-port br-int hv1-vif0 -- set Interface hv1-vif0 ofport-request=1

hv1_hostname=$(ovn-sbctl --bare --columns hostname find Chassis name=hv1)
echo "hv1_hostname=${hv1_hostname}"
ovn-nbctl --wait=hv --timeout=3 lsp-set-options lsp0 requested-chassis=${hv1_hostname}
as hv1 ovs-vsctl set interface hv1-vif0 external-ids:iface-id=lsp0

hv1_uuid=$(ovn-sbctl --bare --columns _uuid find Chassis name=hv1)
echo "hv1_uuid=${hv1_uuid}"
$as_echo "ovn.at:9178: waiting until test 1 = \$(grep -c \"Claiming lport lsp0\" hv1/ovn-controller.log)..." >&5
ovs_wait_cond () {
    test 1 = $(grep -c "Claiming lport lsp0" hv1/ovn-controller.log)
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9178: wait failed" >&5

    $as_echo "ovn.at:9178" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9178"
fi

{ set +x
$as_echo "$at_srcdir/ovn.at:9179: test x\$(ovn-sbctl --bare --columns chassis find port_binding logical_port=lsp0) = x\"\$hv1_uuid\""
at_fn_check_prepare_notrace 'a $(...) command substitution' "ovn.at:9179"
( $at_check_trace; test x$(ovn-sbctl --bare --columns chassis find port_binding logical_port=lsp0) = x"$hv1_uuid"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9179"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:9180: as hv1 ovs-ofctl dump-flows br-int table=0 | grep in_port=1"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:9180"
( $at_check_trace; as hv1 ovs-ofctl dump-flows br-int table=0 | grep in_port=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9180"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:9181: as hv1 ovs-ofctl dump-flows br-int table=65 | grep actions=output:1"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:9181"
( $at_check_trace; as hv1 ovs-ofctl dump-flows br-int table=65 | grep actions=output:1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9181"
$at_failed && at_fn_log_failure
$at_traceon; }


ovn-nbctl --wait=hv --timeout=3 lsp-set-options lsp0 requested-chassis=non-existant-chassis
$as_echo "ovn.at:9184: waiting until test 1 = \$(grep -c \"Releasing lport lsp0 from this chassis\" hv1/ovn-controller.log)..." >&5
ovs_wait_cond () {
    test 1 = $(grep -c "Releasing lport lsp0 from this chassis" hv1/ovn-controller.log)
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9184: wait failed" >&5

    $as_echo "ovn.at:9184" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9184"
fi

ovn-nbctl --wait=hv --timeout=3 sync
{ set +x
$as_echo "$at_srcdir/ovn.at:9186: test x\$(ovn-sbctl --bare --columns chassis find port_binding logical_port=lsp0) = x"
at_fn_check_prepare_notrace 'a $(...) command substitution' "ovn.at:9186"
( $at_check_trace; test x$(ovn-sbctl --bare --columns chassis find port_binding logical_port=lsp0) = x
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9186"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:9187: as hv1 ovs-ofctl dump-flows br-int table=0 | grep in_port=1"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:9187"
( $at_check_trace; as hv1 ovs-ofctl dump-flows br-int table=0 | grep in_port=1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn.at:9187"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn.at:9188: as hv1 ovs-ofctl dump-flows br-int table=65 | grep output"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:9188"
( $at_check_trace; as hv1 ovs-ofctl dump-flows br-int table=65 | grep output
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn.at:9188"
$at_failed && at_fn_log_failure
$at_traceon; }





    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:9190: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:9190"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9190"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9190: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:9190"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9190"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9190: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9190: wait failed" >&5

    $as_echo "ovn.at:9190" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9190"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:9190: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:9190"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9190"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9190: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:9190"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9190"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9190: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9190: wait failed" >&5

    $as_echo "ovn.at:9190" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9190"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:9190: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:9190"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9190"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9190: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:9190"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9190"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9190: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9190: wait failed" >&5

    $as_echo "ovn.at:9190" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9190"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:9190: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:9190"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9190"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9190: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:9190"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9190"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9190: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9190: wait failed" >&5

    $as_echo "ovn.at:9190" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9190"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:9190: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:9190"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9190"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9190: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:9190"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9190"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9190: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9190: wait failed" >&5

    $as_echo "ovn.at:9190" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9190"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:9190: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:9190"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9190"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9190: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:9190"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9190"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9190: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9190: wait failed" >&5

    $as_echo "ovn.at:9190" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9190"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:9190: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:9190"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9190"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9190: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:9190"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9190"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9190: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9190: wait failed" >&5

    $as_echo "ovn.at:9190" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9190"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:9190: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:9190"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9190"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9190: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:9190"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9190"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9190: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9190: wait failed" >&5

    $as_echo "ovn.at:9190" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9190"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:9190: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:9190"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9190"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9190: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:9190"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9190"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9190: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9190: wait failed" >&5

    $as_echo "ovn.at:9190" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9190"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:9190: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:9190"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9190"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9190: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:9190"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9190"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9190: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9190: wait failed" >&5

    $as_echo "ovn.at:9190" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9190"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:9190: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:9190"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9190"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9190: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:9190"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9190"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9190: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9190: wait failed" >&5

    $as_echo "ovn.at:9190" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9190"
fi




  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2483
#AT_START_2484
at_fn_group_banner 2484 'ovn.at:9194' \
  "ovn -- IPv6 periodic RA" "                        " 125
at_xfail=no
(
  $as_echo "2484. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

ovn_start

# This test sets up two hypervisors.
# hv1 and hv2 run ovn-controllers, and
# each has a VIF connected to the same
# logical switch in OVN. The logical
# switch is connected to a logical
# router port that is configured to send
# periodic router advertisements.
#
# The reason for having two ovn-controller
# hypervisors is to ensure that the
# periodic RAs being sent by each ovn-controller
# are kept to their local hypervisors. If the
# packets are not kept local, then each port
# will receive too many RAs.

net_add n1
sim_add hv1
sim_add hv2
as hv1
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.2
as hv2
ovs-vsctl add-br br-phys
ovn_attach n1 br-phys 192.168.0.3

ovn-nbctl lr-add ro
ovn-nbctl lrp-add ro ro-sw 00:00:00:00:00:01 aef0::1/64

ovn-nbctl ls-add sw
ovn-nbctl lsp-add sw sw-ro
ovn-nbctl lsp-set-type sw-ro router
ovn-nbctl lsp-set-options sw-ro router-port=ro-sw
ovn-nbctl lsp-set-addresses sw-ro 00:00:00:00:00:01
ovn-nbctl lsp-add sw sw-p1
ovn-nbctl lsp-set-addresses sw-p1 "00:00:00:00:00:02 aef0::200:ff:fe00:2"
ovn-nbctl lsp-add sw sw-p2
ovn-nbctl lsp-set-addresses sw-p2 "00:00:00:00:00:03 aef0::200:ff:fe00:3"

ovn-nbctl set Logical_Router_Port ro-sw ipv6_ra_configs:send_periodic=true
ovn-nbctl set Logical_Router_Port ro-sw ipv6_ra_configs:address_mode=slaac
ovn-nbctl set Logical_Router_Port ro-sw ipv6_ra_configs:max_interval=4
ovn-nbctl set Logical_Router_Port ro-sw ipv6_ra_configs:min_interval=3

for i in hv1 hv2 ; do
    as $i
    ovs-vsctl -- add-port br-int $i-vif1 -- \
        set interface $i-vif1 external-ids:iface-id=sw-p1 \
        options:tx_pcap=$i/vif1-tx.pcap \
        options:rxq_pcap=$i/vif1-rx.pcap \
        ofport-request=1
done

# Allow time for ovn-northd and ovn-controller to catch up
sleep 1

reset_pcap_file() {
    local iface=$1
    local pcap_file=$2
    ovs-vsctl -- set Interface $iface options:tx_pcap=dummy-tx.pcap \
options:rxq_pcap=dummy-rx.pcap
    rm -f ${pcap_file}*.pcap
    ovs-vsctl -- set Interface $iface options:tx_pcap=${pcap_file}-tx.pcap \
options:rxq_pcap=${pcap_file}-rx.pcap

}

construct_expected_ra() {
    local src_mac=000000000001
    local dst_mac=333300000001
    local src_addr=fe80000000000000020000fffe000001
    local dst_addr=ff020000000000000000000000000001

    local mtu=$1
    local ra_mo=$2
    local ra_prefix_la=$3

    local slla=0101${src_mac}
    local mtu_opt=""
    if test $mtu != 0; then
        mtu_opt=05010000${mtu}
    fi
    shift 3

    local prefix=""
    while [ $# -gt 0 ] ; do
        local size=$1
        local net=$2
        prefix=${prefix}0304${size}${ra_prefix_la}ffffffffffffffff00000000${net}
        shift 2
    done

    local ra=ff${ra_mo}ffff0000000000000000${slla}${mtu_opt}${prefix}
    local icmp=8600XXXX${ra}

    local ip_len=$(expr ${#icmp} / 2)
    ip_len=$(printf "%0.4x" ${ip_len})

    local ip=60000000${ip_len}3aff${src_addr}${dst_addr}${icmp}
    local eth=${dst_mac}${src_mac}86dd${ip}
    local packet=${eth}
    echo $packet >> expected
}

ra_test() {
    construct_expected_ra $@

    for i in hv1 hv2 ; do
        $as_echo "ovn.at:9304: waiting while test 24 = \$(wc -c \$i/vif1-tx.pcap | cut -d \" \" -f1)..." >&5
ovs_wait_cond () {
    if test 24 = $(wc -c $i/vif1-tx.pcap | cut -d " " -f1); then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9304: wait failed" >&5

    $as_echo "ovn.at:9304" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9304"
fi


        $PYTHON "$top_srcdir/utilities/ovs-pcap.in" $i/vif1-tx.pcap > packets

        cat expected | cut -c -112 > expout
        { set +x
$as_echo "$at_srcdir/ovn.at:9309: cat packets | cut -c -112"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:9309"
( $at_check_trace; cat packets | cut -c -112
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9309"
$at_failed && at_fn_log_failure
$at_traceon; }


        # Skip ICMPv6 checksum.
        cat expected | cut -c 117- > expout
        { set +x
$as_echo "$at_srcdir/ovn.at:9313: cat packets | cut -c 117-"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn.at:9313"
( $at_check_trace; cat packets | cut -c 117-
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9313"
$at_failed && at_fn_log_failure
$at_traceon; }


        rm -f packets
        as $i reset_pcap_file $i-vif1 $i/vif1
    done

    rm -f expected
}

# Baseline test with no MTU
ra_test 0 00 c0 40 aef00000000000000000000000000000

# Now make sure an MTU option makes it
ovn-nbctl --wait=hv set Logical_Router_Port ro-sw ipv6_ra_configs:mtu=1500
ra_test 000005dc 00 c0 40 aef00000000000000000000000000000

# Now test for multiple network prefixes
ovn-nbctl --wait=hv set Logical_Router_port ro-sw networks='aef0\:\:1/64 fd0f\:\:1/48'
ra_test 000005dc 00 c0 40 aef00000000000000000000000000000 30 fd0f0000000000000000000000000000

# Test a different address mode now
ovn-nbctl --wait=hv set Logical_Router_Port ro-sw ipv6_ra_configs:address_mode=dhcpv6_stateful
ra_test 000005dc 80 80 40 aef00000000000000000000000000000 30 fd0f0000000000000000000000000000

# And the other address mode
ovn-nbctl --wait=hv set Logical_Router_Port ro-sw ipv6_ra_configs:address_mode=dhcpv6_stateless
ra_test 000005dc 40 80 40 aef00000000000000000000000000000 30 fd0f0000000000000000000000000000




    as hv1
    if test "hv1" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:9341: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:9341"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9341"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9341: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:9341"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9341"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9341: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9341: wait failed" >&5

    $as_echo "ovn.at:9341" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9341"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:9341: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:9341"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9341"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9341: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:9341"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9341"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9341: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9341: wait failed" >&5

    $as_echo "ovn.at:9341" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9341"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:9341: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:9341"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9341"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9341: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:9341"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9341"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9341: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9341: wait failed" >&5

    $as_echo "ovn.at:9341" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9341"
fi

    fi

    as hv1
    { set +x
$as_echo "$at_srcdir/ovn.at:9341: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:9341"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9341"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9341: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:9341"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9341"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9341: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9341: wait failed" >&5

    $as_echo "ovn.at:9341" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9341"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:9341: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:9341"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9341"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9341: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:9341"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9341"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9341: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9341: wait failed" >&5

    $as_echo "ovn.at:9341" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9341"
fi





    as hv2
    if test "hv2" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn.at:9341: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn.at:9341"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9341"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9341: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn.at:9341"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9341"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9341: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9341: wait failed" >&5

    $as_echo "ovn.at:9341" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9341"
fi

        { set +x
$as_echo "$at_srcdir/ovn.at:9341: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn.at:9341"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9341"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9341: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn.at:9341"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9341"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9341: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9341: wait failed" >&5

    $as_echo "ovn.at:9341" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9341"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn.at:9341: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn.at:9341"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9341"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9341: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn.at:9341"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9341"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9341: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9341: wait failed" >&5

    $as_echo "ovn.at:9341" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9341"
fi

    fi

    as hv2
    { set +x
$as_echo "$at_srcdir/ovn.at:9341: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:9341"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9341"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9341: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:9341"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9341"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9341: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9341: wait failed" >&5

    $as_echo "ovn.at:9341" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9341"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:9341: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:9341"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9341"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9341: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:9341"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9341"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9341: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9341: wait failed" >&5

    $as_echo "ovn.at:9341" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9341"
fi




    as ovn-sb
    { set +x
$as_echo "$at_srcdir/ovn.at:9341: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:9341"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9341"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9341: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:9341"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9341"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9341: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9341: wait failed" >&5

    $as_echo "ovn.at:9341" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9341"
fi


    as ovn-nb
    { set +x
$as_echo "$at_srcdir/ovn.at:9341: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:9341"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9341"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9341: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:9341"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9341"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9341: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9341: wait failed" >&5

    $as_echo "ovn.at:9341" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9341"
fi


    as northd
    { set +x
$as_echo "$at_srcdir/ovn.at:9341: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:9341"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9341"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9341: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:9341"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9341"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9341: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9341: wait failed" >&5

    $as_echo "ovn.at:9341" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9341"
fi


    as northd-backup
    { set +x
$as_echo "$at_srcdir/ovn.at:9341: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn.at:9341"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9341"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9341: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn.at:9341"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9341"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9341: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9341: wait failed" >&5

    $as_echo "ovn.at:9341" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9341"
fi



    as main
    { set +x
$as_echo "$at_srcdir/ovn.at:9341: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn.at:9341"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9341"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9341: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn.at:9341"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9341"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9341: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9341: wait failed" >&5

    $as_echo "ovn.at:9341" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9341"
fi

    { set +x
$as_echo "$at_srcdir/ovn.at:9341: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn.at:9341"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9341"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn.at:9341: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn.at:9341"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn.at:9341"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn.at:9341: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn.at:9341: wait failed" >&5

    $as_echo "ovn.at:9341" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn.at:9341"
fi



  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2484
#AT_START_2485
at_fn_group_banner 2485 'ovn-northd.at:2' \
  "ovn -- check Gateway_Chassis propagation from NBDB to SBDB" "" 126
at_xfail=no
(
  $as_echo "2485. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn-northd.at:3" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn-northd.at:3"
ovn_start

ovn-nbctl create Logical_Router name=R1
ovn-sbctl chassis-add gw1 geneve 127.0.0.1
ovn-sbctl chassis-add gw2 geneve 1.2.4.8

# Connect alice to R1 as distributed router gateway port on hv2
ovn-nbctl lrp-add R1 alice 00:00:02:01:02:03 172.16.1.1/24

ovn-nbctl --wait=sb \
    --id=@gc0 create Gateway_Chassis name=alice_gw1 \
                                     chassis_name=gw1 \
                                     priority=20 -- \
    --id=@gc1 create Gateway_Chassis name=alice_gw2 \
                                     chassis_name=gw2 \
                                     priority=10 -- \
    set Logical_Router_Port alice 'gateway_chassis=@gc0,@gc1'

nb_gwc1_uuid=`ovn-nbctl --bare --columns _uuid find Gateway_Chassis name="alice_gw1"`
gwc1_uuid=`ovn-sbctl --bare --columns _uuid find Gateway_Chassis name="alice_gw1"`
gwc2_uuid=`ovn-sbctl --bare --columns _uuid find Gateway_Chassis name="alice_gw2"`


echo "Port_Binding for cr-alice:"
ovn-sbctl find port_binding logical_port="cr-alice"
echo "Gateway_Chassis list:"
ovn-sbctl list Gateway_Chassis

{ set +x
$as_echo "$at_srcdir/ovn-northd.at:32: ovn-sbctl --bare --columns gateway_chassis find port_binding logical_port=\"cr-alice\" | grep \$gwc1_uuid | wc -l"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-northd.at:32"
( $at_check_trace; ovn-sbctl --bare --columns gateway_chassis find port_binding logical_port="cr-alice" | grep $gwc1_uuid | wc -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-northd.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-northd.at:34: ovn-sbctl --bare --columns gateway_chassis find port_binding logical_port=\"cr-alice\" | grep \$gwc2_uuid | wc -l"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-northd.at:34"
( $at_check_trace; ovn-sbctl --bare --columns gateway_chassis find port_binding logical_port="cr-alice" | grep $gwc2_uuid | wc -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-northd.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }


# delete the 2nd Gateway_Chassis on NBDB for alice port

ovn-nbctl --wait=sb set Logical_Router_Port alice gateway_chassis=${nb_gwc1_uuid}

gwc1_uuid=`ovn-sbctl --bare --columns _uuid find Gateway_Chassis name="alice_gw1"`

{ set +x
$as_echo "$at_srcdir/ovn-northd.at:43: ovn-sbctl --bare --columns gateway_chassis find port_binding logical_port=\"cr-alice\" | grep \$gwc1_uuid | wc -l"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-northd.at:43"
( $at_check_trace; ovn-sbctl --bare --columns gateway_chassis find port_binding logical_port="cr-alice" | grep $gwc1_uuid | wc -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-northd.at:43"
$at_failed && at_fn_log_failure
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-northd.at:46: ovn-sbctl find Gateway_Chassis name=alice_gw2"
at_fn_check_prepare_trace "ovn-northd.at:46"
( $at_check_trace; ovn-sbctl find Gateway_Chassis name=alice_gw2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-northd.at:46"
$at_failed && at_fn_log_failure
$at_traceon; }


# delete all the gateway_chassis on NBDB for alice port

ovn-nbctl --wait=sb clear Logical_Router_Port alice gateway_chassis

# expect that the Gateway_Chassis doesn't exist anymore

{ set +x
$as_echo "$at_srcdir/ovn-northd.at:54: ovn-sbctl find Gateway_Chassis name=alice_gw1"
at_fn_check_prepare_trace "ovn-northd.at:54"
( $at_check_trace; ovn-sbctl find Gateway_Chassis name=alice_gw1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-northd.at:54"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-northd.at:55: ovn-sbctl find Gateway_Chassis name=alice_gw2"
at_fn_check_prepare_trace "ovn-northd.at:55"
( $at_check_trace; ovn-sbctl find Gateway_Chassis name=alice_gw2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-northd.at:55"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2485
#AT_START_2486
at_fn_group_banner 2486 'ovn-northd.at:59' \
  "ovn -- check Gateway_Chassis propagation from NBDB to SBDB backwards compatibility" "" 126
at_xfail=no
(
  $as_echo "2486. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn-northd.at:60" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn-northd.at:60"
ovn_start

ovn-nbctl create Logical_Router name=R1
ovn-sbctl chassis-add gw1 geneve 127.0.0.1
ovn-sbctl chassis-add gw2 geneve 1.2.4.8

ovn-nbctl --wait=sb lrp-add R1 bob 00:00:02:01:02:03 172.16.1.1/24 \
    -- set Logical_Router_Port bob options:redirect-chassis="gw1"


# It should be converted to Gateway_Chassis entries in SBDB, and
# still redirect-chassis is kept for backwards compatibility

gwc1_uuid=`ovn-sbctl --bare --columns _uuid find Gateway_Chassis name="bob_gw1"`

{ set +x
$as_echo "$at_srcdir/ovn-northd.at:76: ovn-sbctl --bare --columns gateway_chassis find port_binding logical_port=\"cr-bob\" | grep \$gwc1_uuid | wc -l"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-northd.at:76"
( $at_check_trace; ovn-sbctl --bare --columns gateway_chassis find port_binding logical_port="cr-bob" | grep $gwc1_uuid | wc -l
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-northd.at:76"
$at_failed && at_fn_log_failure
$at_traceon; }


ovn-nbctl --wait=sb remove Logical_Router_Port bob options redirect-chassis

# expect that the Gateway_Chassis doesn't exist anymore

{ set +x
$as_echo "$at_srcdir/ovn-northd.at:83: ovn-sbctl find Gateway_Chassis name=bob_gw1"
at_fn_check_prepare_trace "ovn-northd.at:83"
( $at_check_trace; ovn-sbctl find Gateway_Chassis name=bob_gw1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-northd.at:83"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2486
#AT_START_2487
at_fn_group_banner 2487 'ovn-northd.at:87' \
  "ovn -- check up state of VIF LSP" "               " 126
at_xfail=no
(
  $as_echo "2487. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn-northd.at:88" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn-northd.at:88"
ovn_start

ovn-nbctl ls-add S1
ovn-nbctl lsp-add S1 S1-vm1
{ set +x
$as_echo "$at_srcdir/ovn-northd.at:93: test x\`ovn-nbctl lsp-get-up S1-vm1\` = xdown"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovn-northd.at:93"
( $at_check_trace; test x`ovn-nbctl lsp-get-up S1-vm1` = xdown
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-northd.at:93"
$at_failed && at_fn_log_failure
$at_traceon; }


ovn-sbctl chassis-add hv1 geneve 127.0.0.1
ovn-sbctl lsp-bind S1-vm1 hv1
{ set +x
$as_echo "$at_srcdir/ovn-northd.at:97: test x\`ovn-nbctl lsp-get-up S1-vm1\` = xup"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovn-northd.at:97"
( $at_check_trace; test x`ovn-nbctl lsp-get-up S1-vm1` = xup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-northd.at:97"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2487
#AT_START_2488
at_fn_group_banner 2488 'ovn-northd.at:101' \
  "ovn -- check up state of router LSP linked to a distributed LR" "" 126
at_xfail=no
(
  $as_echo "2488. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn-northd.at:102" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn-northd.at:102"
ovn_start

ovn-nbctl lr-add R1
ovn-nbctl lrp-add R1 R1-S1 02:ac:10:01:00:01 172.16.1.1/24

ovn-nbctl ls-add S1
ovn-nbctl lsp-add S1 S1-R1
ovn-nbctl lsp-set-type S1-R1 router
ovn-nbctl lsp-set-addresses S1-R1 02:ac:10:01:00:01
ovn-nbctl lsp-set-options S1-R1 router-port=R1-S1
{ set +x
$as_echo "$at_srcdir/ovn-northd.at:113: test x\`ovn-nbctl lsp-get-up S1-R1\` = xup"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovn-northd.at:113"
( $at_check_trace; test x`ovn-nbctl lsp-get-up S1-R1` = xup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-northd.at:113"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2488
#AT_START_2489
at_fn_group_banner 2489 'ovn-northd.at:117' \
  "ovn -- check up state of router LSP linked to a gateway LR" "" 126
at_xfail=no
(
  $as_echo "2489. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn-northd.at:118" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn-northd.at:118"
ovn_start

ovn-sbctl chassis-add gw1 geneve 127.0.0.1

ovn-nbctl create Logical_Router name=R1 options:chassis=gw1
ovn-nbctl lrp-add R1 R1-S1 02:ac:10:01:00:01 172.16.1.1/24

ovn-nbctl ls-add S1
ovn-nbctl lsp-add S1 S1-R1
ovn-nbctl lsp-set-type S1-R1 router
ovn-nbctl lsp-set-addresses S1-R1 02:ac:10:01:00:01
ovn-nbctl lsp-set-options S1-R1 router-port=R1-S1

ovn-sbctl lsp-bind S1-R1 gw1
{ set +x
$as_echo "$at_srcdir/ovn-northd.at:133: test x\`ovn-nbctl lsp-get-up S1-R1\` = xup"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovn-northd.at:133"
( $at_check_trace; test x`ovn-nbctl lsp-get-up S1-R1` = xup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-northd.at:133"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2489
#AT_START_2490
at_fn_group_banner 2490 'ovn-northd.at:137' \
  "ovn -- check up state of router LSP linked to an LRP with set Gateway Chassis" "" 126
at_xfail=no
(
  $as_echo "2490. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

$as_echo "ovn-northd.at:138" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn-northd.at:138"
ovn_start

ovn-sbctl chassis-add gw1 geneve 127.0.0.1

ovn-nbctl lr-add R1
ovn-nbctl lrp-add R1 R1-S1 02:ac:10:01:00:01 172.16.1.1/24
ovn-nbctl lrp-set-gateway-chassis R1-S1 gw1

ovn-nbctl ls-add S1
ovn-nbctl lsp-add S1 S1-R1
ovn-nbctl lsp-set-type S1-R1 router
ovn-nbctl lsp-set-addresses S1-R1 router
ovn-nbctl lsp-set-options S1-R1 router-port=R1-S1
{ set +x
$as_echo "$at_srcdir/ovn-northd.at:152: test x\`ovn-nbctl lsp-get-up S1-R1\` = xup"
at_fn_check_prepare_notrace 'a `...` command substitution' "ovn-northd.at:152"
( $at_check_trace; test x`ovn-nbctl lsp-get-up S1-R1` = xup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-northd.at:152"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2490
#AT_START_2491
at_fn_group_banner 2491 'ovn-northd.at:156' \
  "ovn -- check IPv6 RA config propagation to SBDB" "" 126
at_xfail=no
(
  $as_echo "2491. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

ovn_start

ovn-nbctl lr-add ro
ovn-nbctl lrp-add ro ro-sw 00:00:00:00:00:01 aef0:0:0:0:0:0:0:1/64
ovn-nbctl ls-add sw
ovn-nbctl lsp-add sw sw-ro
ovn-nbctl lsp-set-type sw-ro router
ovn-nbctl lsp-set-options sw-ro router-port=ro-sw
ovn-nbctl lsp-set-addresses sw-ro 00:00:00:00:00:01
ovn-nbctl set Logical_Router_Port ro-sw ipv6_ra_configs:send_periodic=true
ovn-nbctl set Logical_Router_Port ro-sw ipv6_ra_configs:address_mode=slaac
ovn-nbctl --wait=sb set Logical_Router_Port ro-sw ipv6_ra_configs:mtu=1280

uuid=$(ovn-sbctl --columns=_uuid --bare find Port_Binding logical_port=ro-sw)

{ set +x
$as_echo "$at_srcdir/ovn-northd.at:172: ovn-sbctl get Port_Binding \${uuid} options:ipv6_ra_send_periodic"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ovn-northd.at:172"
( $at_check_trace; ovn-sbctl get Port_Binding ${uuid} options:ipv6_ra_send_periodic
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"true\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-northd.at:172"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-northd.at:175: ovn-sbctl get Port_Binding \${uuid} options:ipv6_ra_address_mode"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ovn-northd.at:175"
( $at_check_trace; ovn-sbctl get Port_Binding ${uuid} options:ipv6_ra_address_mode
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "slaac
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-northd.at:175"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-northd.at:178: ovn-sbctl get Port_Binding \${uuid} options:ipv6_ra_max_interval"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ovn-northd.at:178"
( $at_check_trace; ovn-sbctl get Port_Binding ${uuid} options:ipv6_ra_max_interval
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"600\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-northd.at:178"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-northd.at:181: ovn-sbctl get Port_Binding \${uuid} options:ipv6_ra_min_interval"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ovn-northd.at:181"
( $at_check_trace; ovn-sbctl get Port_Binding ${uuid} options:ipv6_ra_min_interval
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"200\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-northd.at:181"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-northd.at:184: ovn-sbctl get Port_Binding \${uuid} options:ipv6_ra_mtu"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ovn-northd.at:184"
( $at_check_trace; ovn-sbctl get Port_Binding ${uuid} options:ipv6_ra_mtu
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"1280\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-northd.at:184"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-northd.at:187: ovn-sbctl get Port_Binding \${uuid} options:ipv6_ra_src_eth"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ovn-northd.at:187"
( $at_check_trace; ovn-sbctl get Port_Binding ${uuid} options:ipv6_ra_src_eth
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"00:00:00:00:00:01\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-northd.at:187"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-northd.at:190: ovn-sbctl get Port_Binding \${uuid} options:ipv6_ra_src_addr"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ovn-northd.at:190"
( $at_check_trace; ovn-sbctl get Port_Binding ${uuid} options:ipv6_ra_src_addr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"fe80::200:ff:fe00:1\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-northd.at:190"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-northd.at:193: ovn-sbctl get Port_Binding \${uuid} options:ipv6_ra_prefixes"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ovn-northd.at:193"
( $at_check_trace; ovn-sbctl get Port_Binding ${uuid} options:ipv6_ra_prefixes
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"aef0::/64\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-northd.at:193"
$at_failed && at_fn_log_failure
$at_traceon; }


ovn-nbctl set Logical_Router_Port ro-sw ipv6_ra_configs:max_interval=300
ovn-nbctl --wait=sb set Logical_Router_Port ro-sw ipv6_ra_configs:min_interval=600

{ set +x
$as_echo "$at_srcdir/ovn-northd.at:200: ovn-sbctl get Port_Binding \${uuid} options:ipv6_ra_max_interval"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ovn-northd.at:200"
( $at_check_trace; ovn-sbctl get Port_Binding ${uuid} options:ipv6_ra_max_interval
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"300\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-northd.at:200"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-northd.at:203: ovn-sbctl get Port_Binding \${uuid} options:ipv6_ra_min_interval"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ovn-northd.at:203"
( $at_check_trace; ovn-sbctl get Port_Binding ${uuid} options:ipv6_ra_min_interval
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"225\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-northd.at:203"
$at_failed && at_fn_log_failure
$at_traceon; }


ovn-nbctl set Logical_Router_Port ro-sw ipv6_ra_configs:max_interval=300
ovn-nbctl --wait=sb set Logical_Router_Port ro-sw ipv6_ra_configs:min_interval=250

{ set +x
$as_echo "$at_srcdir/ovn-northd.at:210: ovn-sbctl get Port_Binding \${uuid} options:ipv6_ra_max_interval"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ovn-northd.at:210"
( $at_check_trace; ovn-sbctl get Port_Binding ${uuid} options:ipv6_ra_max_interval
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"300\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-northd.at:210"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-northd.at:213: ovn-sbctl get Port_Binding \${uuid} options:ipv6_ra_min_interval"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ovn-northd.at:213"
( $at_check_trace; ovn-sbctl get Port_Binding ${uuid} options:ipv6_ra_min_interval
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"225\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-northd.at:213"
$at_failed && at_fn_log_failure
$at_traceon; }


ovn-nbctl set Logical_Router_Port ro-sw ipv6_ra_configs:max_interval=0
ovn-nbctl --wait=sb set Logical_Router_Port ro-sw ipv6_ra_configs:min_interval=0

{ set +x
$as_echo "$at_srcdir/ovn-northd.at:220: ovn-sbctl get Port_Binding \${uuid} options:ipv6_ra_max_interval"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ovn-northd.at:220"
( $at_check_trace; ovn-sbctl get Port_Binding ${uuid} options:ipv6_ra_max_interval
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"4\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-northd.at:220"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-northd.at:223: ovn-sbctl get Port_Binding \${uuid} options:ipv6_ra_min_interval"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ovn-northd.at:223"
( $at_check_trace; ovn-sbctl get Port_Binding ${uuid} options:ipv6_ra_min_interval
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"3\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-northd.at:223"
$at_failed && at_fn_log_failure
$at_traceon; }


ovn-nbctl set Logical_Router_Port ro-sw ipv6_ra_configs:max_interval=3600
ovn-nbctl --wait=sb set Logical_Router_Port ro-sw ipv6_ra_configs:min_interval=2400

{ set +x
$as_echo "$at_srcdir/ovn-northd.at:230: ovn-sbctl get Port_Binding \${uuid} options:ipv6_ra_max_interval"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ovn-northd.at:230"
( $at_check_trace; ovn-sbctl get Port_Binding ${uuid} options:ipv6_ra_max_interval
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"1800\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-northd.at:230"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-northd.at:233: ovn-sbctl get Port_Binding \${uuid} options:ipv6_ra_min_interval"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ovn-northd.at:233"
( $at_check_trace; ovn-sbctl get Port_Binding ${uuid} options:ipv6_ra_min_interval
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"1350\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-northd.at:233"
$at_failed && at_fn_log_failure
$at_traceon; }


ovn-nbctl --wait=sb set Logical_Router_port ro-sw ipv6_ra_configs:send_periodic=false

{ set +x
$as_echo "$at_srcdir/ovn-northd.at:239: ovn-sbctl get Port_Binding \${uuid} options:ipv6_ra_send_periodic"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ovn-northd.at:239"
( $at_check_trace; ovn-sbctl get Port_Binding ${uuid} options:ipv6_ra_send_periodic
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-sbctl: no key \"ipv6_ra_send_periodic\" in Port_Binding record \"${uuid}\" column options
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-northd.at:239"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-northd.at:242: ovn-sbctl get Port_Binding \${uuid} options:ipv6_ra_max_interval"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ovn-northd.at:242"
( $at_check_trace; ovn-sbctl get Port_Binding ${uuid} options:ipv6_ra_max_interval
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-sbctl: no key \"ipv6_ra_max_interval\" in Port_Binding record \"${uuid}\" column options
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-northd.at:242"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-northd.at:245: ovn-sbctl get Port_Binding \${uuid} options:ipv6_ra_min_interval"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ovn-northd.at:245"
( $at_check_trace; ovn-sbctl get Port_Binding ${uuid} options:ipv6_ra_min_interval
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-sbctl: no key \"ipv6_ra_min_interval\" in Port_Binding record \"${uuid}\" column options
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-northd.at:245"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-northd.at:248: ovn-sbctl get Port_Binding \${uuid} options:ipv6_ra_mtu"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ovn-northd.at:248"
( $at_check_trace; ovn-sbctl get Port_Binding ${uuid} options:ipv6_ra_mtu
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-sbctl: no key \"ipv6_ra_mtu\" in Port_Binding record \"${uuid}\" column options
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-northd.at:248"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-northd.at:251: ovn-sbctl get Port_Binding \${uuid} options:ipv6_ra_address_mode"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ovn-northd.at:251"
( $at_check_trace; ovn-sbctl get Port_Binding ${uuid} options:ipv6_ra_address_mode
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-sbctl: no key \"ipv6_ra_address_mode\" in Port_Binding record \"${uuid}\" column options
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-northd.at:251"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-northd.at:254: ovn-sbctl get Port_Binding \${uuid} options:ipv6_ra_src_eth"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ovn-northd.at:254"
( $at_check_trace; ovn-sbctl get Port_Binding ${uuid} options:ipv6_ra_src_eth
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-sbctl: no key \"ipv6_ra_src_eth\" in Port_Binding record \"${uuid}\" column options
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-northd.at:254"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-northd.at:257: ovn-sbctl get Port_Binding \${uuid} options:ipv6_ra_src_addr"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ovn-northd.at:257"
( $at_check_trace; ovn-sbctl get Port_Binding ${uuid} options:ipv6_ra_src_addr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-sbctl: no key \"ipv6_ra_src_addr\" in Port_Binding record \"${uuid}\" column options
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-northd.at:257"
$at_failed && at_fn_log_failure
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-northd.at:260: ovn-sbctl get Port_Binding \${uuid} options:ipv6_ra_prefixes"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ovn-northd.at:260"
( $at_check_trace; ovn-sbctl get Port_Binding ${uuid} options:ipv6_ra_prefixes
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-sbctl: no key \"ipv6_ra_prefixes\" in Port_Binding record \"${uuid}\" column options
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-northd.at:260"
$at_failed && at_fn_log_failure
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2491
#AT_START_2492
at_fn_group_banner 2492 'ovn-nbctl.at:25' \
  "ovn-nbctl - basic switch commands" "              " 127
at_xfail=no
(
  $as_echo "2492. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:26: ovsdb-tool create ovn-nb.db \$abs_top_srcdir/ovn/ovn-nb.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create ovn-nb.db $abs_top_srcdir/ovn/ovn-nb.ovsschema" "ovn-nbctl.at:26"
( $at_check_trace; ovsdb-tool create ovn-nb.db $abs_top_srcdir/ovn/ovn-nb.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:26: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db" "ovn-nbctl.at:26"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:26: ovn-nbctl init"
at_fn_check_prepare_trace "ovn-nbctl.at:26"
( $at_check_trace; ovn-nbctl init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:26: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-nbctl.at:26"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }




{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:28: ovn-nbctl ls-add ls0"
at_fn_check_prepare_trace "ovn-nbctl.at:28"
( $at_check_trace; ovn-nbctl ls-add ls0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:28"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:29: ovn-nbctl ls-list | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:29"
( $at_check_trace; ovn-nbctl ls-list | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<0> (ls0)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:29"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:33: ovn-nbctl ls-add ls1"
at_fn_check_prepare_trace "ovn-nbctl.at:33"
( $at_check_trace; ovn-nbctl ls-add ls1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:33"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:34: ovn-nbctl ls-list | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:34"
( $at_check_trace; ovn-nbctl ls-list | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<0> (ls0)
<1> (ls1)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:34"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:39: ovn-nbctl ls-del ls0"
at_fn_check_prepare_trace "ovn-nbctl.at:39"
( $at_check_trace; ovn-nbctl ls-del ls0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:39"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:40: ovn-nbctl ls-list | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:40"
( $at_check_trace; ovn-nbctl ls-list | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<0> (ls1)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:40"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:44: ovn-nbctl show ls0"
at_fn_check_prepare_trace "ovn-nbctl.at:44"
( $at_check_trace; ovn-nbctl show ls0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:44"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:45: ovn-nbctl ls-add ls0"
at_fn_check_prepare_trace "ovn-nbctl.at:45"
( $at_check_trace; ovn-nbctl ls-add ls0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:45"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:46: ovn-nbctl show ls0 | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:46"
( $at_check_trace; ovn-nbctl show ls0 | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "switch <0> (ls0)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:46"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:49: ovn-nbctl ls-add ls0"
at_fn_check_prepare_trace "ovn-nbctl.at:49"
( $at_check_trace; ovn-nbctl ls-add ls0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: ls0: a switch with this name already exists
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:49"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:52: ovn-nbctl --may-exist ls-add ls0"
at_fn_check_prepare_trace "ovn-nbctl.at:52"
( $at_check_trace; ovn-nbctl --may-exist ls-add ls0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:52"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:53: ovn-nbctl show ls0 | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:53"
( $at_check_trace; ovn-nbctl show ls0 | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "switch <0> (ls0)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:53"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:56: ovn-nbctl --add-duplicate ls-add ls0"
at_fn_check_prepare_trace "ovn-nbctl.at:56"
( $at_check_trace; ovn-nbctl --add-duplicate ls-add ls0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:56"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:57: ovn-nbctl --may-exist --add-duplicate ls-add ls0"
at_fn_check_prepare_trace "ovn-nbctl.at:57"
( $at_check_trace; ovn-nbctl --may-exist --add-duplicate ls-add ls0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: --may-exist and --add-duplicate may not be used together
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:57"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:60: ovn-nbctl ls-del ls0"
at_fn_check_prepare_trace "ovn-nbctl.at:60"
( $at_check_trace; ovn-nbctl ls-del ls0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: Multiple logical switches named 'ls0'.  Use a UUID.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:60"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:64: ovn-nbctl ls-del ls2"
at_fn_check_prepare_trace "ovn-nbctl.at:64"
( $at_check_trace; ovn-nbctl ls-del ls2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: ls2: switch name not found
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:64"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:67: ovn-nbctl --if-exists ls-del ls2"
at_fn_check_prepare_trace "ovn-nbctl.at:67"
( $at_check_trace; ovn-nbctl --if-exists ls-del ls2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:67"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:69: ovn-nbctl ls-add"
at_fn_check_prepare_trace "ovn-nbctl.at:69"
( $at_check_trace; ovn-nbctl ls-add
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:69"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:70: ovn-nbctl ls-add"
at_fn_check_prepare_trace "ovn-nbctl.at:70"
( $at_check_trace; ovn-nbctl ls-add
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:70"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:71: ovn-nbctl --add-duplicate ls-add"
at_fn_check_prepare_trace "ovn-nbctl.at:71"
( $at_check_trace; ovn-nbctl --add-duplicate ls-add
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: --add-duplicate requires specifying a name
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:71"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:74: ovn-nbctl --may-exist ls-add"
at_fn_check_prepare_trace "ovn-nbctl.at:74"
( $at_check_trace; ovn-nbctl --may-exist ls-add
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: --may-exist requires specifying a name
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:74"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:78: check_logs \"\""
at_fn_check_prepare_trace "ovn-nbctl.at:78"
( $at_check_trace; check_logs ""
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:78"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:78: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn-nbctl.at:78"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:78"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:78: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn-nbctl.at:78"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:78"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   $as_echo "ovn-nbctl.at:78: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-nbctl.at:78: wait failed" >&5

    $as_echo "ovn-nbctl.at:78" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-nbctl.at:78"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2492
#AT_START_2493
at_fn_group_banner 2493 'ovn-nbctl.at:83' \
  "ovn-nbctl - basic logical switch port commands" " " 127
at_xfail=no
(
  $as_echo "2493. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:84: ovsdb-tool create ovn-nb.db \$abs_top_srcdir/ovn/ovn-nb.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create ovn-nb.db $abs_top_srcdir/ovn/ovn-nb.ovsschema" "ovn-nbctl.at:84"
( $at_check_trace; ovsdb-tool create ovn-nb.db $abs_top_srcdir/ovn/ovn-nb.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:84"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:84: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db" "ovn-nbctl.at:84"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:84"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:84: ovn-nbctl init"
at_fn_check_prepare_trace "ovn-nbctl.at:84"
( $at_check_trace; ovn-nbctl init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:84"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:84: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-nbctl.at:84"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:84"
$at_failed && at_fn_log_failure
$at_traceon; }




{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:86: ovn-nbctl ls-add ls0"
at_fn_check_prepare_trace "ovn-nbctl.at:86"
( $at_check_trace; ovn-nbctl ls-add ls0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:86"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:87: ovn-nbctl lsp-add ls0 lp0"
at_fn_check_prepare_trace "ovn-nbctl.at:87"
( $at_check_trace; ovn-nbctl lsp-add ls0 lp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:87"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:88: ovn-nbctl lsp-add ls0 lp0"
at_fn_check_prepare_trace "ovn-nbctl.at:88"
( $at_check_trace; ovn-nbctl lsp-add ls0 lp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: lp0: a port with this name already exists
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:88"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:91: ovn-nbctl --may-exist lsp-add ls0 lp0"
at_fn_check_prepare_trace "ovn-nbctl.at:91"
( $at_check_trace; ovn-nbctl --may-exist lsp-add ls0 lp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:91"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:92: ovn-nbctl lsp-list ls0 | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:92"
( $at_check_trace; ovn-nbctl lsp-list ls0 | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<0> (lp0)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:92"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:96: ovn-nbctl lsp-add ls0 lp1"
at_fn_check_prepare_trace "ovn-nbctl.at:96"
( $at_check_trace; ovn-nbctl lsp-add ls0 lp1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:96"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:97: ovn-nbctl lsp-list ls0 | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:97"
( $at_check_trace; ovn-nbctl lsp-list ls0 | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<0> (lp0)
<1> (lp1)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:97"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:102: ovn-nbctl ls-add ls1"
at_fn_check_prepare_trace "ovn-nbctl.at:102"
( $at_check_trace; ovn-nbctl ls-add ls1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:102"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:103: ovn-nbctl lsp-add ls0 lp1"
at_fn_check_prepare_trace "ovn-nbctl.at:103"
( $at_check_trace; ovn-nbctl lsp-add ls0 lp1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: lp1: a port with this name already exists
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:103"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:106: ovn-nbctl --may-exist lsp-add ls1 lp1"
at_fn_check_prepare_trace "ovn-nbctl.at:106"
( $at_check_trace; ovn-nbctl --may-exist lsp-add ls1 lp1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: lp1: port already exists but in switch ls0
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:106"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:109: ovn-nbctl --may-exist lsp-add ls0 lp1 lp0 5"
at_fn_check_prepare_trace "ovn-nbctl.at:109"
( $at_check_trace; ovn-nbctl --may-exist lsp-add ls0 lp1 lp0 5
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: lp1: port already exists but has no parent
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:109"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:113: ovn-nbctl lsp-del lp1"
at_fn_check_prepare_trace "ovn-nbctl.at:113"
( $at_check_trace; ovn-nbctl lsp-del lp1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:113"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:114: ovn-nbctl lsp-list ls0 | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:114"
( $at_check_trace; ovn-nbctl lsp-list ls0 | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<0> (lp0)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:114"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:118: ovn-nbctl lsp-add ls0 lp2 lp3 5"
at_fn_check_prepare_trace "ovn-nbctl.at:118"
( $at_check_trace; ovn-nbctl lsp-add ls0 lp2 lp3 5
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:118"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:119: ovn-nbctl --may-exist lsp-add ls0 lp2 lp4 5"
at_fn_check_prepare_trace "ovn-nbctl.at:119"
( $at_check_trace; ovn-nbctl --may-exist lsp-add ls0 lp2 lp4 5
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: lp2: port already exists with different parent lp3
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:119"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:122: ovn-nbctl --may-exist lsp-add ls0 lp2 lp3 10"
at_fn_check_prepare_trace "ovn-nbctl.at:122"
( $at_check_trace; ovn-nbctl --may-exist lsp-add ls0 lp2 lp3 10
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: lp2: port already exists with different tag_request 5
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:122"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:125: ovn-nbctl clear Logical_Switch_Port lp2 tag_request"
at_fn_check_prepare_trace "ovn-nbctl.at:125"
( $at_check_trace; ovn-nbctl clear Logical_Switch_Port lp2 tag_request
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:125"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:126: ovn-nbctl --may-exist lsp-add ls0 lp2 lp3 5"
at_fn_check_prepare_trace "ovn-nbctl.at:126"
( $at_check_trace; ovn-nbctl --may-exist lsp-add ls0 lp2 lp3 5
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: lp2: port already exists but has no tag_request
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:126"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:130: check_logs \"\""
at_fn_check_prepare_trace "ovn-nbctl.at:130"
( $at_check_trace; check_logs ""
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:130"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:130: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn-nbctl.at:130"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:130"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:130: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn-nbctl.at:130"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:130"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   $as_echo "ovn-nbctl.at:130: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-nbctl.at:130: wait failed" >&5

    $as_echo "ovn-nbctl.at:130" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-nbctl.at:130"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2493
#AT_START_2494
at_fn_group_banner 2494 'ovn-nbctl.at:135' \
  "ovn-nbctl - lport addresses" "                    " 127
at_xfail=no
(
  $as_echo "2494. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:136: ovsdb-tool create ovn-nb.db \$abs_top_srcdir/ovn/ovn-nb.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create ovn-nb.db $abs_top_srcdir/ovn/ovn-nb.ovsschema" "ovn-nbctl.at:136"
( $at_check_trace; ovsdb-tool create ovn-nb.db $abs_top_srcdir/ovn/ovn-nb.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:136"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:136: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db" "ovn-nbctl.at:136"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:136"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:136: ovn-nbctl init"
at_fn_check_prepare_trace "ovn-nbctl.at:136"
( $at_check_trace; ovn-nbctl init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:136"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:136: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-nbctl.at:136"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:136"
$at_failed && at_fn_log_failure
$at_traceon; }




{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:138: ovn-nbctl ls-add ls0"
at_fn_check_prepare_trace "ovn-nbctl.at:138"
( $at_check_trace; ovn-nbctl ls-add ls0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:138"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:139: ovn-nbctl lsp-add ls0 lp0"
at_fn_check_prepare_trace "ovn-nbctl.at:139"
( $at_check_trace; ovn-nbctl lsp-add ls0 lp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:139"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:140: ovn-nbctl lsp-get-addresses lp0"
at_fn_check_prepare_trace "ovn-nbctl.at:140"
( $at_check_trace; ovn-nbctl lsp-get-addresses lp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:140"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:143: ovn-nbctl lsp-set-addresses lp0 00:11:22:33:44:55 unknown"
at_fn_check_prepare_trace "ovn-nbctl.at:143"
( $at_check_trace; ovn-nbctl lsp-set-addresses lp0 00:11:22:33:44:55 unknown
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:143"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:144: ovn-nbctl lsp-get-addresses lp0"
at_fn_check_prepare_trace "ovn-nbctl.at:144"
( $at_check_trace; ovn-nbctl lsp-get-addresses lp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "00:11:22:33:44:55
unknown
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:144"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:149: ovn-nbctl lsp-set-addresses lp0"
at_fn_check_prepare_trace "ovn-nbctl.at:149"
( $at_check_trace; ovn-nbctl lsp-set-addresses lp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:149"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:150: ovn-nbctl lsp-get-addresses lp0"
at_fn_check_prepare_trace "ovn-nbctl.at:150"
( $at_check_trace; ovn-nbctl lsp-get-addresses lp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:150"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:153: check_logs \"\""
at_fn_check_prepare_trace "ovn-nbctl.at:153"
( $at_check_trace; check_logs ""
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:153"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:153: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn-nbctl.at:153"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:153"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:153: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn-nbctl.at:153"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:153"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   $as_echo "ovn-nbctl.at:153: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-nbctl.at:153: wait failed" >&5

    $as_echo "ovn-nbctl.at:153" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-nbctl.at:153"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2494
#AT_START_2495
at_fn_group_banner 2495 'ovn-nbctl.at:158' \
  "ovn-nbctl - port security" "                      " 127
at_xfail=no
(
  $as_echo "2495. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:159: ovsdb-tool create ovn-nb.db \$abs_top_srcdir/ovn/ovn-nb.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create ovn-nb.db $abs_top_srcdir/ovn/ovn-nb.ovsschema" "ovn-nbctl.at:159"
( $at_check_trace; ovsdb-tool create ovn-nb.db $abs_top_srcdir/ovn/ovn-nb.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:159"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:159: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db" "ovn-nbctl.at:159"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:159"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:159: ovn-nbctl init"
at_fn_check_prepare_trace "ovn-nbctl.at:159"
( $at_check_trace; ovn-nbctl init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:159"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:159: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-nbctl.at:159"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:159"
$at_failed && at_fn_log_failure
$at_traceon; }




{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:161: ovn-nbctl ls-add ls0"
at_fn_check_prepare_trace "ovn-nbctl.at:161"
( $at_check_trace; ovn-nbctl ls-add ls0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:161"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:162: ovn-nbctl lsp-add ls0 lp0"
at_fn_check_prepare_trace "ovn-nbctl.at:162"
( $at_check_trace; ovn-nbctl lsp-add ls0 lp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:162"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:163: ovn-nbctl lsp-get-addresses lp0"
at_fn_check_prepare_trace "ovn-nbctl.at:163"
( $at_check_trace; ovn-nbctl lsp-get-addresses lp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:163"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:166: ovn-nbctl lsp-set-port-security lp0 aa:bb:cc:dd:ee:ff 00:11:22:33:44:55"
at_fn_check_prepare_trace "ovn-nbctl.at:166"
( $at_check_trace; ovn-nbctl lsp-set-port-security lp0 aa:bb:cc:dd:ee:ff 00:11:22:33:44:55
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:166"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:167: ovn-nbctl lsp-get-port-security lp0"
at_fn_check_prepare_trace "ovn-nbctl.at:167"
( $at_check_trace; ovn-nbctl lsp-get-port-security lp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "00:11:22:33:44:55
aa:bb:cc:dd:ee:ff
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:167"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:172: ovn-nbctl lsp-set-port-security lp0"
at_fn_check_prepare_trace "ovn-nbctl.at:172"
( $at_check_trace; ovn-nbctl lsp-set-port-security lp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:172"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:173: ovn-nbctl lsp-get-port-security lp0"
at_fn_check_prepare_trace "ovn-nbctl.at:173"
( $at_check_trace; ovn-nbctl lsp-get-port-security lp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:173"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:176: check_logs \"\""
at_fn_check_prepare_trace "ovn-nbctl.at:176"
( $at_check_trace; check_logs ""
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:176"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:176: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn-nbctl.at:176"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:176"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:176: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn-nbctl.at:176"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:176"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   $as_echo "ovn-nbctl.at:176: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-nbctl.at:176: wait failed" >&5

    $as_echo "ovn-nbctl.at:176" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-nbctl.at:176"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2495
#AT_START_2496
at_fn_group_banner 2496 'ovn-nbctl.at:181' \
  "ovn-nbctl - ACLs" "                               " 127
at_xfail=no
(
  $as_echo "2496. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:182: ovsdb-tool create ovn-nb.db \$abs_top_srcdir/ovn/ovn-nb.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create ovn-nb.db $abs_top_srcdir/ovn/ovn-nb.ovsschema" "ovn-nbctl.at:182"
( $at_check_trace; ovsdb-tool create ovn-nb.db $abs_top_srcdir/ovn/ovn-nb.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:182"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:182: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db" "ovn-nbctl.at:182"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:182"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:182: ovn-nbctl init"
at_fn_check_prepare_trace "ovn-nbctl.at:182"
( $at_check_trace; ovn-nbctl init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:182"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:182: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-nbctl.at:182"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:182"
$at_failed && at_fn_log_failure
$at_traceon; }




{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:184: ovn-nbctl ls-add ls0"
at_fn_check_prepare_trace "ovn-nbctl.at:184"
( $at_check_trace; ovn-nbctl ls-add ls0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:184"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:185: ovn-nbctl --log acl-add ls0 from-lport 600 udp drop"
at_fn_check_prepare_trace "ovn-nbctl.at:185"
( $at_check_trace; ovn-nbctl --log acl-add ls0 from-lport 600 udp drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:185"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:186: ovn-nbctl --log --name=test --severity=info acl-add ls0 to-lport 500 udp drop"
at_fn_check_prepare_trace "ovn-nbctl.at:186"
( $at_check_trace; ovn-nbctl --log --name=test --severity=info acl-add ls0 to-lport 500 udp drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:186"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:187: ovn-nbctl acl-add ls0 from-lport 400 tcp drop"
at_fn_check_prepare_trace "ovn-nbctl.at:187"
( $at_check_trace; ovn-nbctl acl-add ls0 from-lport 400 tcp drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:187"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:188: ovn-nbctl acl-add ls0 to-lport 300 tcp drop"
at_fn_check_prepare_trace "ovn-nbctl.at:188"
( $at_check_trace; ovn-nbctl acl-add ls0 to-lport 300 tcp drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:188"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:189: ovn-nbctl acl-add ls0 from-lport 200 ip drop"
at_fn_check_prepare_trace "ovn-nbctl.at:189"
( $at_check_trace; ovn-nbctl acl-add ls0 from-lport 200 ip drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:189"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:190: ovn-nbctl acl-add ls0 to-lport 100 ip drop"
at_fn_check_prepare_trace "ovn-nbctl.at:190"
( $at_check_trace; ovn-nbctl acl-add ls0 to-lport 100 ip drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:190"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:192: ovn-nbctl acl-add ls0 to-lport 100 ip drop"
at_fn_check_prepare_trace "ovn-nbctl.at:192"
( $at_check_trace; ovn-nbctl acl-add ls0 to-lport 100 ip drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:192"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:193: grep 'already existed' stderr"
at_fn_check_prepare_trace "ovn-nbctl.at:193"
( $at_check_trace; grep 'already existed' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:193"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:194: ovn-nbctl --may-exist acl-add ls0 to-lport 100 ip drop"
at_fn_check_prepare_trace "ovn-nbctl.at:194"
( $at_check_trace; ovn-nbctl --may-exist acl-add ls0 to-lport 100 ip drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:194"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:196: ovn-nbctl acl-list ls0"
at_fn_check_prepare_trace "ovn-nbctl.at:196"
( $at_check_trace; ovn-nbctl acl-list ls0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "from-lport   600 (udp) drop log()
from-lport   400 (tcp) drop
from-lport   200 (ip) drop
  to-lport   500 (udp) drop log(name=test,severity=info)
  to-lport   300 (tcp) drop
  to-lport   100 (ip) drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:196"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:206: ovn-nbctl acl-del ls0 to-lport"
at_fn_check_prepare_trace "ovn-nbctl.at:206"
( $at_check_trace; ovn-nbctl acl-del ls0 to-lport
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:206"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:207: ovn-nbctl acl-list ls0"
at_fn_check_prepare_trace "ovn-nbctl.at:207"
( $at_check_trace; ovn-nbctl acl-list ls0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "from-lport   600 (udp) drop log()
from-lport   400 (tcp) drop
from-lport   200 (ip) drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:207"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:214: ovn-nbctl acl-del ls0"
at_fn_check_prepare_trace "ovn-nbctl.at:214"
( $at_check_trace; ovn-nbctl acl-del ls0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:214"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:215: ovn-nbctl acl-list ls0"
at_fn_check_prepare_trace "ovn-nbctl.at:215"
( $at_check_trace; ovn-nbctl acl-list ls0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:215"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:218: ovn-nbctl acl-add ls0 from-lport 600 udp drop"
at_fn_check_prepare_trace "ovn-nbctl.at:218"
( $at_check_trace; ovn-nbctl acl-add ls0 from-lport 600 udp drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:218"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:219: ovn-nbctl acl-add ls0 from-lport 400 tcp drop"
at_fn_check_prepare_trace "ovn-nbctl.at:219"
( $at_check_trace; ovn-nbctl acl-add ls0 from-lport 400 tcp drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:219"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:220: ovn-nbctl acl-add ls0 from-lport 200 ip drop"
at_fn_check_prepare_trace "ovn-nbctl.at:220"
( $at_check_trace; ovn-nbctl acl-add ls0 from-lport 200 ip drop
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:220"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:223: ovn-nbctl acl-del ls0 from-lport 400 tcp"
at_fn_check_prepare_trace "ovn-nbctl.at:223"
( $at_check_trace; ovn-nbctl acl-del ls0 from-lport 400 tcp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:223"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:224: ovn-nbctl acl-list ls0"
at_fn_check_prepare_trace "ovn-nbctl.at:224"
( $at_check_trace; ovn-nbctl acl-list ls0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "from-lport   600 (udp) drop
from-lport   200 (ip) drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:224"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:229: check_logs \"\""
at_fn_check_prepare_trace "ovn-nbctl.at:229"
( $at_check_trace; check_logs ""
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:229"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:229: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn-nbctl.at:229"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:229"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:229: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn-nbctl.at:229"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:229"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   $as_echo "ovn-nbctl.at:229: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-nbctl.at:229: wait failed" >&5

    $as_echo "ovn-nbctl.at:229" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-nbctl.at:229"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2496
#AT_START_2497
at_fn_group_banner 2497 'ovn-nbctl.at:233' \
  "ovn-nbctl - NATs" "                               " 127
at_xfail=no
(
  $as_echo "2497. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:234: ovsdb-tool create ovn-nb.db \$abs_top_srcdir/ovn/ovn-nb.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create ovn-nb.db $abs_top_srcdir/ovn/ovn-nb.ovsschema" "ovn-nbctl.at:234"
( $at_check_trace; ovsdb-tool create ovn-nb.db $abs_top_srcdir/ovn/ovn-nb.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:234"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:234: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db" "ovn-nbctl.at:234"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:234"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:234: ovn-nbctl init"
at_fn_check_prepare_trace "ovn-nbctl.at:234"
( $at_check_trace; ovn-nbctl init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:234"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:234: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-nbctl.at:234"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:234"
$at_failed && at_fn_log_failure
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:235: ovn-nbctl lr-add lr0"
at_fn_check_prepare_trace "ovn-nbctl.at:235"
( $at_check_trace; ovn-nbctl lr-add lr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:235"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:236: ovn-nbctl lr-nat-add lr0 snatt 30.0.0.2 192.168.1.2"
at_fn_check_prepare_trace "ovn-nbctl.at:236"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 snatt 30.0.0.2 192.168.1.2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: snatt: type must be one of \"dnat\", \"snat\" and \"dnat_and_snat\".
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:236"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:239: ovn-nbctl lr-nat-add lr0 snat 30.0.0.2a 192.168.1.2"
at_fn_check_prepare_trace "ovn-nbctl.at:239"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 snat 30.0.0.2a 192.168.1.2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: 30.0.0.2a: should be an IPv4 address.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:239"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:242: ovn-nbctl lr-nat-add lr0 snat 30.0.0 192.168.1.2"
at_fn_check_prepare_trace "ovn-nbctl.at:242"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 snat 30.0.0 192.168.1.2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: 30.0.0: should be an IPv4 address.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:242"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:245: ovn-nbctl lr-nat-add lr0 snat 30.0.0.2/24 192.168.1.2"
at_fn_check_prepare_trace "ovn-nbctl.at:245"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 snat 30.0.0.2/24 192.168.1.2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: 30.0.0.2/24: should be an IPv4 address.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:245"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:248: ovn-nbctl lr-nat-add lr0 snat 30.0.0.2:80 192.168.1.2"
at_fn_check_prepare_trace "ovn-nbctl.at:248"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 snat 30.0.0.2:80 192.168.1.2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: 30.0.0.2:80: should be an IPv4 address.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:248"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:251: ovn-nbctl lr-nat-add lr0 snat 30.0.0.2 192.168.1.2a"
at_fn_check_prepare_trace "ovn-nbctl.at:251"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 snat 30.0.0.2 192.168.1.2a
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: 192.168.1.2a: should be an IPv4 address or network.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:251"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:254: ovn-nbctl lr-nat-add lr0 snat 30.0.0.2 192.168.1"
at_fn_check_prepare_trace "ovn-nbctl.at:254"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 snat 30.0.0.2 192.168.1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: 192.168.1: should be an IPv4 address or network.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:254"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:257: ovn-nbctl lr-nat-add lr0 snat 30.0.0.2 192.168.1.2:80"
at_fn_check_prepare_trace "ovn-nbctl.at:257"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 snat 30.0.0.2 192.168.1.2:80
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: 192.168.1.2:80: should be an IPv4 address or network.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:257"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:260: ovn-nbctl lr-nat-add lr0 snat 30.0.0.2 192.168.1.2/a"
at_fn_check_prepare_trace "ovn-nbctl.at:260"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 snat 30.0.0.2 192.168.1.2/a
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: 192.168.1.2/a: should be an IPv4 address or network.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:260"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:263: ovn-nbctl lr-nat-add lr0 dnat 30.0.0.2 192.168.1.2a"
at_fn_check_prepare_trace "ovn-nbctl.at:263"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 dnat 30.0.0.2 192.168.1.2a
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: 192.168.1.2a: should be an IPv4 address.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:263"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:266: ovn-nbctl lr-nat-add lr0 dnat 30.0.0.2 192.168.1"
at_fn_check_prepare_trace "ovn-nbctl.at:266"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 dnat 30.0.0.2 192.168.1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: 192.168.1: should be an IPv4 address.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:266"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:269: ovn-nbctl lr-nat-add lr0 dnat 30.0.0.2 192.168.1.2:80"
at_fn_check_prepare_trace "ovn-nbctl.at:269"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 dnat 30.0.0.2 192.168.1.2:80
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: 192.168.1.2:80: should be an IPv4 address.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:269"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:272: ovn-nbctl lr-nat-add lr0 dnat 30.0.0.2 192.168.1.2/24"
at_fn_check_prepare_trace "ovn-nbctl.at:272"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 dnat 30.0.0.2 192.168.1.2/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: 192.168.1.2/24: should be an IPv4 address.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:272"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:275: ovn-nbctl lr-nat-add lr0 dnat_and_snat 30.0.0.2 192.168.1.2/24"
at_fn_check_prepare_trace "ovn-nbctl.at:275"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 dnat_and_snat 30.0.0.2 192.168.1.2/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: 192.168.1.2/24: should be an IPv4 address.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:275"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:278: ovn-nbctl lr-nat-add lr0 dnat_and_snat 30.0.0.2 192.168.1.2 lp0"
at_fn_check_prepare_trace "ovn-nbctl.at:278"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 dnat_and_snat 30.0.0.2 192.168.1.2 lp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: lr-nat-add with logical_port must also specify external_mac.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:278"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:281: ovn-nbctl lr-nat-add lr0 dnat 30.0.0.2 192.168.1.2 lp0 00:00:00:01:02:03"
at_fn_check_prepare_trace "ovn-nbctl.at:281"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 dnat 30.0.0.2 192.168.1.2 lp0 00:00:00:01:02:03
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: logical_port and external_mac are only valid when type is \"dnat_and_snat\".
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:281"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:284: ovn-nbctl lr-nat-add lr0 snat 30.0.0.2 192.168.1.2 lp0 00:00:00:01:02:03"
at_fn_check_prepare_trace "ovn-nbctl.at:284"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 snat 30.0.0.2 192.168.1.2 lp0 00:00:00:01:02:03
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: logical_port and external_mac are only valid when type is \"dnat_and_snat\".
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:284"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:287: ovn-nbctl lr-nat-add lr0 dnat_and_snat 30.0.0.2 192.168.1.2 lp0 00:00:00:01:02:03"
at_fn_check_prepare_trace "ovn-nbctl.at:287"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 dnat_and_snat 30.0.0.2 192.168.1.2 lp0 00:00:00:01:02:03
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: lp0: port name not found
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:287"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:290: ovn-nbctl ls-add ls0"
at_fn_check_prepare_trace "ovn-nbctl.at:290"
( $at_check_trace; ovn-nbctl ls-add ls0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:290"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:291: ovn-nbctl lsp-add ls0 lp0"
at_fn_check_prepare_trace "ovn-nbctl.at:291"
( $at_check_trace; ovn-nbctl lsp-add ls0 lp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:291"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:292: ovn-nbctl lr-nat-add lr0 dnat_and_snat 30.0.0.2 192.168.1.2 lp0 00:00:00:01:02"
at_fn_check_prepare_trace "ovn-nbctl.at:292"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 dnat_and_snat 30.0.0.2 192.168.1.2 lp0 00:00:00:01:02
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: invalid mac address 00:00:00:01:02.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:292"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:297: ovn-nbctl lr-nat-add lr0 snat 30.0.0.1 192.168.1.0/24"
at_fn_check_prepare_trace "ovn-nbctl.at:297"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 snat 30.0.0.1 192.168.1.0/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:297"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:298: ovn-nbctl lr-nat-add lr0 dnat 30.0.0.1 192.168.1.2"
at_fn_check_prepare_trace "ovn-nbctl.at:298"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 dnat 30.0.0.1 192.168.1.2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:298"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:299: ovn-nbctl lr-nat-add lr0 dnat_and_snat 30.0.0.1 192.168.1.2"
at_fn_check_prepare_trace "ovn-nbctl.at:299"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 dnat_and_snat 30.0.0.1 192.168.1.2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:299"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:300: ovn-nbctl lr-nat-add lr0 dnat_and_snat 30.0.0.2 192.168.1.3 lp0 00:00:00:01:02:03"
at_fn_check_prepare_trace "ovn-nbctl.at:300"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 dnat_and_snat 30.0.0.2 192.168.1.3 lp0 00:00:00:01:02:03
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:300"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:301: ovn-nbctl lr-nat-list lr0"
at_fn_check_prepare_trace "ovn-nbctl.at:301"
( $at_check_trace; ovn-nbctl lr-nat-list lr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "TYPE             EXTERNAL_IP        LOGICAL_IP            EXTERNAL_MAC         LOGICAL_PORT
dnat             30.0.0.1           192.168.1.2
dnat_and_snat    30.0.0.1           192.168.1.2
dnat_and_snat    30.0.0.2           192.168.1.3           00:00:00:01:02:03    lp0
snat             30.0.0.1           192.168.1.0/24
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:301"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:308: ovn-nbctl lr-nat-add lr0 snat 30.0.0.1 192.168.1.0/24"
at_fn_check_prepare_trace "ovn-nbctl.at:308"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 snat 30.0.0.1 192.168.1.0/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: 30.0.0.1, 192.168.1.0/24: a NAT with this external_ip and logical_ip already exists
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:308"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:311: ovn-nbctl lr-nat-add lr0 snat 30.0.0.1 192.168.1.10/24"
at_fn_check_prepare_trace "ovn-nbctl.at:311"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 snat 30.0.0.1 192.168.1.10/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: 30.0.0.1, 192.168.1.0/24: a NAT with this external_ip and logical_ip already exists
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:311"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:314: ovn-nbctl --may-exist lr-nat-add lr0 snat 30.0.0.1 192.168.1.0/24"
at_fn_check_prepare_trace "ovn-nbctl.at:314"
( $at_check_trace; ovn-nbctl --may-exist lr-nat-add lr0 snat 30.0.0.1 192.168.1.0/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:314"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:315: ovn-nbctl lr-nat-add lr0 snat 30.0.0.2 192.168.1.0/24"
at_fn_check_prepare_trace "ovn-nbctl.at:315"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 snat 30.0.0.2 192.168.1.0/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: a NAT with this type (snat) and logical_ip (192.168.1.0/24) already exists
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:315"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:318: ovn-nbctl lr-nat-add lr0 dnat 30.0.0.1 192.168.1.2"
at_fn_check_prepare_trace "ovn-nbctl.at:318"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 dnat 30.0.0.1 192.168.1.2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: 30.0.0.1, 192.168.1.2: a NAT with this external_ip and logical_ip already exists
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:318"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:321: ovn-nbctl --may-exist lr-nat-add lr0 dnat 30.0.0.1 192.168.1.2"
at_fn_check_prepare_trace "ovn-nbctl.at:321"
( $at_check_trace; ovn-nbctl --may-exist lr-nat-add lr0 dnat 30.0.0.1 192.168.1.2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:321"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:322: ovn-nbctl lr-nat-add lr0 dnat 30.0.0.1 192.168.1.3"
at_fn_check_prepare_trace "ovn-nbctl.at:322"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 dnat 30.0.0.1 192.168.1.3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: a NAT with this type (dnat) and external_ip (30.0.0.1) already exists
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:322"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:325: ovn-nbctl lr-nat-add lr0 dnat_and_snat 30.0.0.1 192.168.1.2"
at_fn_check_prepare_trace "ovn-nbctl.at:325"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 dnat_and_snat 30.0.0.1 192.168.1.2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: 30.0.0.1, 192.168.1.2: a NAT with this external_ip and logical_ip already exists
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:325"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:328: ovn-nbctl --may-exist lr-nat-add lr0 dnat_and_snat 30.0.0.1 192.168.1.2"
at_fn_check_prepare_trace "ovn-nbctl.at:328"
( $at_check_trace; ovn-nbctl --may-exist lr-nat-add lr0 dnat_and_snat 30.0.0.1 192.168.1.2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:328"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:329: ovn-nbctl lr-nat-add lr0 dnat_and_snat 30.0.0.1 192.168.1.3"
at_fn_check_prepare_trace "ovn-nbctl.at:329"
( $at_check_trace; ovn-nbctl lr-nat-add lr0 dnat_and_snat 30.0.0.1 192.168.1.3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: a NAT with this type (dnat_and_snat) and external_ip (30.0.0.1) already exists
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:329"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:332: ovn-nbctl --may-exist lr-nat-add lr0 dnat_and_snat 30.0.0.2 192.168.1.3 lp0 00:00:00:04:05:06"
at_fn_check_prepare_trace "ovn-nbctl.at:332"
( $at_check_trace; ovn-nbctl --may-exist lr-nat-add lr0 dnat_and_snat 30.0.0.2 192.168.1.3 lp0 00:00:00:04:05:06
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:332"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:333: ovn-nbctl lr-nat-list lr0"
at_fn_check_prepare_trace "ovn-nbctl.at:333"
( $at_check_trace; ovn-nbctl lr-nat-list lr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "TYPE             EXTERNAL_IP        LOGICAL_IP            EXTERNAL_MAC         LOGICAL_PORT
dnat             30.0.0.1           192.168.1.2
dnat_and_snat    30.0.0.1           192.168.1.2
dnat_and_snat    30.0.0.2           192.168.1.3           00:00:00:04:05:06    lp0
snat             30.0.0.1           192.168.1.0/24
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:333"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:340: ovn-nbctl --may-exist lr-nat-add lr0 dnat_and_snat 30.0.0.2 192.168.1.3"
at_fn_check_prepare_trace "ovn-nbctl.at:340"
( $at_check_trace; ovn-nbctl --may-exist lr-nat-add lr0 dnat_and_snat 30.0.0.2 192.168.1.3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:340"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:341: ovn-nbctl lr-nat-list lr0"
at_fn_check_prepare_trace "ovn-nbctl.at:341"
( $at_check_trace; ovn-nbctl lr-nat-list lr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "TYPE             EXTERNAL_IP        LOGICAL_IP            EXTERNAL_MAC         LOGICAL_PORT
dnat             30.0.0.1           192.168.1.2
dnat_and_snat    30.0.0.1           192.168.1.2
dnat_and_snat    30.0.0.2           192.168.1.3
snat             30.0.0.1           192.168.1.0/24
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:341"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:350: ovn-nbctl lr-nat-del lr0 dnat_and_snat 30.0.0.3"
at_fn_check_prepare_trace "ovn-nbctl.at:350"
( $at_check_trace; ovn-nbctl lr-nat-del lr0 dnat_and_snat 30.0.0.3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: no matching NAT with the type (dnat_and_snat) and external_ip (30.0.0.3)
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:350"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:353: ovn-nbctl lr-nat-del lr0 dnat 30.0.0.2"
at_fn_check_prepare_trace "ovn-nbctl.at:353"
( $at_check_trace; ovn-nbctl lr-nat-del lr0 dnat 30.0.0.2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: no matching NAT with the type (dnat) and external_ip (30.0.0.2)
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:353"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:356: ovn-nbctl lr-nat-del lr0 snat 192.168.10.0/24"
at_fn_check_prepare_trace "ovn-nbctl.at:356"
( $at_check_trace; ovn-nbctl lr-nat-del lr0 snat 192.168.10.0/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: no matching NAT with the type (snat) and logical_ip (192.168.10.0/24)
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:356"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:359: ovn-nbctl --if-exists lr-nat-del lr0 snat 192.168.10.0/24"
at_fn_check_prepare_trace "ovn-nbctl.at:359"
( $at_check_trace; ovn-nbctl --if-exists lr-nat-del lr0 snat 192.168.10.0/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:359"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:361: ovn-nbctl lr-nat-del lr0 dnat_and_snat 30.0.0.1"
at_fn_check_prepare_trace "ovn-nbctl.at:361"
( $at_check_trace; ovn-nbctl lr-nat-del lr0 dnat_and_snat 30.0.0.1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:361"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:362: ovn-nbctl lr-nat-list lr0"
at_fn_check_prepare_trace "ovn-nbctl.at:362"
( $at_check_trace; ovn-nbctl lr-nat-list lr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "TYPE             EXTERNAL_IP        LOGICAL_IP            EXTERNAL_MAC         LOGICAL_PORT
dnat             30.0.0.1           192.168.1.2
dnat_and_snat    30.0.0.2           192.168.1.3
snat             30.0.0.1           192.168.1.0/24
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:362"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:369: ovn-nbctl lr-nat-del lr0 dnat"
at_fn_check_prepare_trace "ovn-nbctl.at:369"
( $at_check_trace; ovn-nbctl lr-nat-del lr0 dnat
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:369"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:370: ovn-nbctl lr-nat-list lr0"
at_fn_check_prepare_trace "ovn-nbctl.at:370"
( $at_check_trace; ovn-nbctl lr-nat-list lr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "TYPE             EXTERNAL_IP        LOGICAL_IP            EXTERNAL_MAC         LOGICAL_PORT
dnat_and_snat    30.0.0.2           192.168.1.3
snat             30.0.0.1           192.168.1.0/24
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:370"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:376: ovn-nbctl lr-nat-del lr0"
at_fn_check_prepare_trace "ovn-nbctl.at:376"
( $at_check_trace; ovn-nbctl lr-nat-del lr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:376"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:377: ovn-nbctl lr-nat-list lr0"
at_fn_check_prepare_trace "ovn-nbctl.at:377"
( $at_check_trace; ovn-nbctl lr-nat-list lr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:377"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:378: ovn-nbctl lr-nat-del lr0"
at_fn_check_prepare_trace "ovn-nbctl.at:378"
( $at_check_trace; ovn-nbctl lr-nat-del lr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:378"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:379: ovn-nbctl lr-nat-del lr0 dnat"
at_fn_check_prepare_trace "ovn-nbctl.at:379"
( $at_check_trace; ovn-nbctl lr-nat-del lr0 dnat
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:379"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:380: check_logs \"\""
at_fn_check_prepare_trace "ovn-nbctl.at:380"
( $at_check_trace; check_logs ""
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:380"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:380: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn-nbctl.at:380"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:380"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:380: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn-nbctl.at:380"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:380"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   $as_echo "ovn-nbctl.at:380: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-nbctl.at:380: wait failed" >&5

    $as_echo "ovn-nbctl.at:380" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-nbctl.at:380"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2497
#AT_START_2498
at_fn_group_banner 2498 'ovn-nbctl.at:385' \
  "ovn-nbctl - LBs" "                                " 127
at_xfail=no
(
  $as_echo "2498. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:386: ovsdb-tool create ovn-nb.db \$abs_top_srcdir/ovn/ovn-nb.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create ovn-nb.db $abs_top_srcdir/ovn/ovn-nb.ovsschema" "ovn-nbctl.at:386"
( $at_check_trace; ovsdb-tool create ovn-nb.db $abs_top_srcdir/ovn/ovn-nb.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:386"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:386: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db" "ovn-nbctl.at:386"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:386"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:386: ovn-nbctl init"
at_fn_check_prepare_trace "ovn-nbctl.at:386"
( $at_check_trace; ovn-nbctl init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:386"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:386: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-nbctl.at:386"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:386"
$at_failed && at_fn_log_failure
$at_traceon; }




{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:389: ovn-nbctl lb-add lb0 30.0.0.10:80a 192.168.10.10:80,192.168.10.20:80 tcp"
at_fn_check_prepare_trace "ovn-nbctl.at:389"
( $at_check_trace; ovn-nbctl lb-add lb0 30.0.0.10:80a 192.168.10.10:80,192.168.10.20:80 tcp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: 30.0.0.10:80a: should be an IP address (or an IP address and a port number with : as a separator).
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:389"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:393: ovn-nbctl lb-add lb0 30.0.0.10:a80 192.168.10.10:80,192.168.10.20:80 tcp"
at_fn_check_prepare_trace "ovn-nbctl.at:393"
( $at_check_trace; ovn-nbctl lb-add lb0 30.0.0.10:a80 192.168.10.10:80,192.168.10.20:80 tcp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: 30.0.0.10:a80: should be an IP address (or an IP address and a port number with : as a separator).
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:393"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:397: ovn-nbctl lb-add lb0 30.0.0.10: 192.168.10.10:80,192.168.10.20:80 tcp"
at_fn_check_prepare_trace "ovn-nbctl.at:397"
( $at_check_trace; ovn-nbctl lb-add lb0 30.0.0.10: 192.168.10.10:80,192.168.10.20:80 tcp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: 30.0.0.10:: should be an IP address (or an IP address and a port number with : as a separator).
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:397"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:401: ovn-nbctl lb-add lb0 30.0.0.10:80 192.168.10.10:80,192.168.10.20 tcp"
at_fn_check_prepare_trace "ovn-nbctl.at:401"
( $at_check_trace; ovn-nbctl lb-add lb0 30.0.0.10:80 192.168.10.10:80,192.168.10.20 tcp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: 192.168.10.20: should be an IP address and a port number with : as a separator.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:401"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:405: ovn-nbctl lb-add lb0 30.0.0.1a 192.168.10.10:80,192.168.10.20:80"
at_fn_check_prepare_trace "ovn-nbctl.at:405"
( $at_check_trace; ovn-nbctl lb-add lb0 30.0.0.1a 192.168.10.10:80,192.168.10.20:80
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: 30.0.0.1a: should be an IP address (or an IP address and a port number with : as a separator).
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:405"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:409: ovn-nbctl lb-add lb0 30.0.0 192.168.10.10:80,192.168.10.20:80"
at_fn_check_prepare_trace "ovn-nbctl.at:409"
( $at_check_trace; ovn-nbctl lb-add lb0 30.0.0 192.168.10.10:80,192.168.10.20:80
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: 192.168.10.10:80: should be an IP address.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:409"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:413: ovn-nbctl lb-add lb0 30.0.0.10 192.168.10.10,192.168.10.20:80"
at_fn_check_prepare_trace "ovn-nbctl.at:413"
( $at_check_trace; ovn-nbctl lb-add lb0 30.0.0.10 192.168.10.10,192.168.10.20:80
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: 192.168.10.20:80: should be an IP address.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:413"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:417: ovn-nbctl lb-add lb0 30.0.0.10 192.168.10.10:a80"
at_fn_check_prepare_trace "ovn-nbctl.at:417"
( $at_check_trace; ovn-nbctl lb-add lb0 30.0.0.10 192.168.10.10:a80
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: 192.168.10.10:a80: should be an IP address.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:417"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:421: ovn-nbctl lb-add lb0 30.0.0.10 192.168.10.10:"
at_fn_check_prepare_trace "ovn-nbctl.at:421"
( $at_check_trace; ovn-nbctl lb-add lb0 30.0.0.10 192.168.10.10:
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: 192.168.10.10:: should be an IP address.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:421"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:425: ovn-nbctl lb-add lb0 30.0.0.10 192.168.10.1a"
at_fn_check_prepare_trace "ovn-nbctl.at:425"
( $at_check_trace; ovn-nbctl lb-add lb0 30.0.0.10 192.168.10.1a
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: 192.168.10.1a: should be an IP address.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:425"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:429: ovn-nbctl lb-add lb0 30.0.0.10 192.168.10.10 tcp"
at_fn_check_prepare_trace "ovn-nbctl.at:429"
( $at_check_trace; ovn-nbctl lb-add lb0 30.0.0.10 192.168.10.10 tcp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: Protocol is unnecessary when no port of vip is given.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:429"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:433: ovn-nbctl lb-add lb0 30.0.0.10 192.168.10.10:900 tcp"
at_fn_check_prepare_trace "ovn-nbctl.at:433"
( $at_check_trace; ovn-nbctl lb-add lb0 30.0.0.10 192.168.10.10:900 tcp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: Protocol is unnecessary when no port of vip is given.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:433"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:438: ovn-nbctl lb-add lb0 30.0.0.10:80 ,,,192.168.10.10:80,,,,,"
at_fn_check_prepare_trace "ovn-nbctl.at:438"
( $at_check_trace; ovn-nbctl lb-add lb0 30.0.0.10:80 ,,,192.168.10.10:80,,,,,
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:438"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:439: ovn-nbctl lb-add lb1 30.0.0.10:80 ,,,192.168.10.10:80,,,,192.168.10.20:80,,,,"
at_fn_check_prepare_trace "ovn-nbctl.at:439"
( $at_check_trace; ovn-nbctl lb-add lb1 30.0.0.10:80 ,,,192.168.10.10:80,,,,192.168.10.20:80,,,,
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:439"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:440: ovn-nbctl lb-list | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:440"
( $at_check_trace; ovn-nbctl lb-list | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "UUID                                    LB                  PROTO      VIP             IPs
<0>    lb0                 tcp        30.0.0.10:80    192.168.10.10:80
<1>    lb1                 tcp        30.0.0.10:80    192.168.10.10:80,192.168.10.20:80
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:440"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:445: ovn-nbctl lb-del lb0"
at_fn_check_prepare_trace "ovn-nbctl.at:445"
( $at_check_trace; ovn-nbctl lb-del lb0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:445"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:446: ovn-nbctl lb-del lb1"
at_fn_check_prepare_trace "ovn-nbctl.at:446"
( $at_check_trace; ovn-nbctl lb-del lb1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:446"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:448: ovn-nbctl lb-add lb0 30.0.0.10:80 192.168.10.10:80,192.168.10.20:80"
at_fn_check_prepare_trace "ovn-nbctl.at:448"
( $at_check_trace; ovn-nbctl lb-add lb0 30.0.0.10:80 192.168.10.10:80,192.168.10.20:80
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:448"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:449: ovn-nbctl lb-add lb1 30.0.0.10:80 192.168.10.10:80,192.168.10.20:80 tcp"
at_fn_check_prepare_trace "ovn-nbctl.at:449"
( $at_check_trace; ovn-nbctl lb-add lb1 30.0.0.10:80 192.168.10.10:80,192.168.10.20:80 tcp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:449"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:450: ovn-nbctl lb-list | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:450"
( $at_check_trace; ovn-nbctl lb-list | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "UUID                                    LB                  PROTO      VIP             IPs
<0>    lb0                 tcp        30.0.0.10:80    192.168.10.10:80,192.168.10.20:80
<1>    lb1                 tcp        30.0.0.10:80    192.168.10.10:80,192.168.10.20:80
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:450"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:457: ovn-nbctl --may-exist lb-add lb1 30.0.0.10:80 192.168.10.10:80,192.168.10.20:8080"
at_fn_check_prepare_trace "ovn-nbctl.at:457"
( $at_check_trace; ovn-nbctl --may-exist lb-add lb1 30.0.0.10:80 192.168.10.10:80,192.168.10.20:8080
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:457"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:458: ovn-nbctl lb-list | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:458"
( $at_check_trace; ovn-nbctl lb-list | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "UUID                                    LB                  PROTO      VIP             IPs
<0>    lb0                 tcp        30.0.0.10:80    192.168.10.10:80,192.168.10.20:80
<1>    lb1                 tcp        30.0.0.10:80    192.168.10.10:80,192.168.10.20:8080
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:458"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:464: ovn-nbctl --may-exist lb-add lb1 30.0.0.10:80 192.168.10.10:80,192.168.10.20:8080 udp"
at_fn_check_prepare_trace "ovn-nbctl.at:464"
( $at_check_trace; ovn-nbctl --may-exist lb-add lb1 30.0.0.10:80 192.168.10.10:80,192.168.10.20:8080 udp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:464"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:465: ovn-nbctl lb-list | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:465"
( $at_check_trace; ovn-nbctl lb-list | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "UUID                                    LB                  PROTO      VIP             IPs
<0>    lb0                 tcp        30.0.0.10:80    192.168.10.10:80,192.168.10.20:80
<1>    lb1                 udp        30.0.0.10:80    192.168.10.10:80,192.168.10.20:8080
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:465"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:472: ovn-nbctl lb-add lb1 30.0.0.20:80 192.168.10.10:80 udp"
at_fn_check_prepare_trace "ovn-nbctl.at:472"
( $at_check_trace; ovn-nbctl lb-add lb1 30.0.0.20:80 192.168.10.10:80 udp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:472"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:473: ovn-nbctl lb-list | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:473"
( $at_check_trace; ovn-nbctl lb-list | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "UUID                                    LB                  PROTO      VIP             IPs
<0>    lb0                 tcp        30.0.0.10:80    192.168.10.10:80,192.168.10.20:80
<1>    lb1                 udp        30.0.0.10:80    192.168.10.10:80,192.168.10.20:8080
                                                            udp        30.0.0.20:80    192.168.10.10:80
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:473"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:480: ovn-nbctl lb-del lb1 30.0.0.20:80"
at_fn_check_prepare_trace "ovn-nbctl.at:480"
( $at_check_trace; ovn-nbctl lb-del lb1 30.0.0.20:80
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:480"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:481: ovn-nbctl lb-list | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:481"
( $at_check_trace; ovn-nbctl lb-list | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "UUID                                    LB                  PROTO      VIP             IPs
<0>    lb0                 tcp        30.0.0.10:80    192.168.10.10:80,192.168.10.20:80
<1>    lb1                 udp        30.0.0.10:80    192.168.10.10:80,192.168.10.20:8080
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:481"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:488: ovn-nbctl lb-add lb2 30.0.0.30 192.168.10.10"
at_fn_check_prepare_trace "ovn-nbctl.at:488"
( $at_check_trace; ovn-nbctl lb-add lb2 30.0.0.30 192.168.10.10
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:488"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:489: ovn-nbctl lb-add lb3 30.0.0.30 192.168.10.10"
at_fn_check_prepare_trace "ovn-nbctl.at:489"
( $at_check_trace; ovn-nbctl lb-add lb3 30.0.0.30 192.168.10.10
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:489"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:490: ovn-nbctl lb-list | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:490"
( $at_check_trace; ovn-nbctl lb-list | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "UUID                                    LB                  PROTO      VIP             IPs
<0>    lb0                 tcp        30.0.0.10:80    192.168.10.10:80,192.168.10.20:80
<1>    lb1                 udp        30.0.0.10:80    192.168.10.10:80,192.168.10.20:8080
<2>    lb2                 tcp/udp    30.0.0.30       192.168.10.10
<3>    lb3                 tcp/udp    30.0.0.30       192.168.10.10
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:490"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:497: ovn-nbctl lb-del lb2 30.0.0.30"
at_fn_check_prepare_trace "ovn-nbctl.at:497"
( $at_check_trace; ovn-nbctl lb-del lb2 30.0.0.30
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:497"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:498: ovn-nbctl lb-del lb3 30.0.0.30"
at_fn_check_prepare_trace "ovn-nbctl.at:498"
( $at_check_trace; ovn-nbctl lb-del lb3 30.0.0.30
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:498"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:500: ovn-nbctl lb-add lb2 30.0.0.10:8080 192.168.10.10:80,192.168.10.20:80 tcp"
at_fn_check_prepare_trace "ovn-nbctl.at:500"
( $at_check_trace; ovn-nbctl lb-add lb2 30.0.0.10:8080 192.168.10.10:80,192.168.10.20:80 tcp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:500"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:501: ovn-nbctl --add-duplicate lb-add lb2 30.0.0.10:8080 192.168.10.10:80,192.168.10.20:80 tcp"
at_fn_check_prepare_trace "ovn-nbctl.at:501"
( $at_check_trace; ovn-nbctl --add-duplicate lb-add lb2 30.0.0.10:8080 192.168.10.10:80,192.168.10.20:80 tcp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:501"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:502: ovn-nbctl lb-list | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:502"
( $at_check_trace; ovn-nbctl lb-list | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "UUID                                    LB                  PROTO      VIP               IPs
<0>    lb0                 tcp        30.0.0.10:80      192.168.10.10:80,192.168.10.20:80
<1>    lb1                 udp        30.0.0.10:80      192.168.10.10:80,192.168.10.20:8080
<2>    lb2                 tcp        30.0.0.10:8080    192.168.10.10:80,192.168.10.20:80
<3>    lb2                 tcp        30.0.0.10:8080    192.168.10.10:80,192.168.10.20:80
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:502"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:511: ovn-nbctl lb-add lb2 30.0.0.10:8080 192.168.10.10:80,192.168.10.20:80 tcp"
at_fn_check_prepare_trace "ovn-nbctl.at:511"
( $at_check_trace; ovn-nbctl lb-add lb2 30.0.0.10:8080 192.168.10.10:80,192.168.10.20:80 tcp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: Multiple load balancers named 'lb2'.  Use a UUID.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:511"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:515: ovn-nbctl lb-del lb2"
at_fn_check_prepare_trace "ovn-nbctl.at:515"
( $at_check_trace; ovn-nbctl lb-del lb2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: Multiple load balancers named 'lb2'.  Use a UUID.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:515"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:519: ovn-nbctl --may-exist lb-add lb1 30.0.0.10:80 192.168.10.10:8080,192.168.10.20:8080 udp"
at_fn_check_prepare_trace "ovn-nbctl.at:519"
( $at_check_trace; ovn-nbctl --may-exist lb-add lb1 30.0.0.10:80 192.168.10.10:8080,192.168.10.20:8080 udp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:519"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:520: ovn-nbctl --may-exist lb-add lb1 30.0.0.10:8080 192.168.10.10:8080,192.168.10.20:8080 udp"
at_fn_check_prepare_trace "ovn-nbctl.at:520"
( $at_check_trace; ovn-nbctl --may-exist lb-add lb1 30.0.0.10:8080 192.168.10.10:8080,192.168.10.20:8080 udp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:520"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:521: ovn-nbctl --may-exist lb-add lb1 30.0.0.10:9090 192.168.10.10:8080,192.168.10.20:8080 udp"
at_fn_check_prepare_trace "ovn-nbctl.at:521"
( $at_check_trace; ovn-nbctl --may-exist lb-add lb1 30.0.0.10:9090 192.168.10.10:8080,192.168.10.20:8080 udp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:521"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:522: ovn-nbctl lb-del lb0 30.0.0.10:80"
at_fn_check_prepare_trace "ovn-nbctl.at:522"
( $at_check_trace; ovn-nbctl lb-del lb0 30.0.0.10:80
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:522"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:523: ovn-nbctl lb-del lb1"
at_fn_check_prepare_trace "ovn-nbctl.at:523"
( $at_check_trace; ovn-nbctl lb-del lb1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:523"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:524: ovn-nbctl lb-list | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:524"
( $at_check_trace; ovn-nbctl lb-list | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "UUID                                    LB                  PROTO      VIP               IPs
<0>    lb2                 tcp        30.0.0.10:8080    192.168.10.10:80,192.168.10.20:80
<1>    lb2                 tcp        30.0.0.10:8080    192.168.10.10:80,192.168.10.20:80
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:524"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:531: ovn-nbctl ls-add ls0"
at_fn_check_prepare_trace "ovn-nbctl.at:531"
( $at_check_trace; ovn-nbctl ls-add ls0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:531"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:532: ovn-nbctl lb-add lb0 30.0.0.10:80 192.168.10.10:80,192.168.10.20:80"
at_fn_check_prepare_trace "ovn-nbctl.at:532"
( $at_check_trace; ovn-nbctl lb-add lb0 30.0.0.10:80 192.168.10.10:80,192.168.10.20:80
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:532"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:533: ovn-nbctl lb-add lb1 30.0.0.10:80 192.168.10.10:80,192.168.10.20:80 udp"
at_fn_check_prepare_trace "ovn-nbctl.at:533"
( $at_check_trace; ovn-nbctl lb-add lb1 30.0.0.10:80 192.168.10.10:80,192.168.10.20:80 udp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:533"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:534: ovn-nbctl lb-add lb3 30.0.0.10 192.168.10.10,192.168.10.20"
at_fn_check_prepare_trace "ovn-nbctl.at:534"
( $at_check_trace; ovn-nbctl lb-add lb3 30.0.0.10 192.168.10.10,192.168.10.20
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:534"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:535: ovn-nbctl ls-lb-add ls0 lb0"
at_fn_check_prepare_trace "ovn-nbctl.at:535"
( $at_check_trace; ovn-nbctl ls-lb-add ls0 lb0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:535"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:536: ovn-nbctl ls-lb-add ls0 lb1"
at_fn_check_prepare_trace "ovn-nbctl.at:536"
( $at_check_trace; ovn-nbctl ls-lb-add ls0 lb1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:536"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:537: ovn-nbctl --may-exist ls-lb-add ls0 lb1"
at_fn_check_prepare_trace "ovn-nbctl.at:537"
( $at_check_trace; ovn-nbctl --may-exist ls-lb-add ls0 lb1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:537"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:538: ovn-nbctl ls-lb-add ls0 lb2"
at_fn_check_prepare_trace "ovn-nbctl.at:538"
( $at_check_trace; ovn-nbctl ls-lb-add ls0 lb2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: Multiple load balancers named 'lb2'.  Use a UUID.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:538"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:541: ovn-nbctl ls-lb-add ls0 lb3"
at_fn_check_prepare_trace "ovn-nbctl.at:541"
( $at_check_trace; ovn-nbctl ls-lb-add ls0 lb3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:541"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:543: ovn-nbctl ls-lb-list ls0 | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:543"
( $at_check_trace; ovn-nbctl ls-lb-list ls0 | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "UUID                                    LB                  PROTO      VIP             IPs
<0>    lb0                 tcp        30.0.0.10:80    192.168.10.10:80,192.168.10.20:80
<1>    lb1                 udp        30.0.0.10:80    192.168.10.10:80,192.168.10.20:80
<2>    lb3                 tcp/udp    30.0.0.10       192.168.10.10,192.168.10.20
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:543"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:550: ovn-nbctl ls-lb-del ls0 lb0"
at_fn_check_prepare_trace "ovn-nbctl.at:550"
( $at_check_trace; ovn-nbctl ls-lb-del ls0 lb0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:550"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:551: ovn-nbctl ls-lb-list ls0 | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:551"
( $at_check_trace; ovn-nbctl ls-lb-list ls0 | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "UUID                                    LB                  PROTO      VIP             IPs
<0>    lb1                 udp        30.0.0.10:80    192.168.10.10:80,192.168.10.20:80
<1>    lb3                 tcp/udp    30.0.0.10       192.168.10.10,192.168.10.20
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:551"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:557: ovn-nbctl ls-lb-del ls0 lb1"
at_fn_check_prepare_trace "ovn-nbctl.at:557"
( $at_check_trace; ovn-nbctl ls-lb-del ls0 lb1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:557"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:558: ovn-nbctl ls-lb-del ls0 lb3"
at_fn_check_prepare_trace "ovn-nbctl.at:558"
( $at_check_trace; ovn-nbctl ls-lb-del ls0 lb3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:558"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:559: ovn-nbctl ls-lb-list ls0 | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:559"
( $at_check_trace; ovn-nbctl ls-lb-list ls0 | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:559"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:560: ovn-nbctl --if-exists ls-lb-del ls0 lb1"
at_fn_check_prepare_trace "ovn-nbctl.at:560"
( $at_check_trace; ovn-nbctl --if-exists ls-lb-del ls0 lb1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:560"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:563: ovn-nbctl ls-lb-add ls0 lb0"
at_fn_check_prepare_trace "ovn-nbctl.at:563"
( $at_check_trace; ovn-nbctl ls-lb-add ls0 lb0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:563"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:564: ovn-nbctl ls-lb-add ls0 lb1"
at_fn_check_prepare_trace "ovn-nbctl.at:564"
( $at_check_trace; ovn-nbctl ls-lb-add ls0 lb1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:564"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:565: ovn-nbctl ls-lb-add ls0 lb3"
at_fn_check_prepare_trace "ovn-nbctl.at:565"
( $at_check_trace; ovn-nbctl ls-lb-add ls0 lb3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:565"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:566: ovn-nbctl ls-lb-del ls0"
at_fn_check_prepare_trace "ovn-nbctl.at:566"
( $at_check_trace; ovn-nbctl ls-lb-del ls0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:566"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:567: ovn-nbctl ls-lb-list ls0 | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:567"
( $at_check_trace; ovn-nbctl ls-lb-list ls0 | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:567"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:570: ovn-nbctl lr-add lr0"
at_fn_check_prepare_trace "ovn-nbctl.at:570"
( $at_check_trace; ovn-nbctl lr-add lr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:570"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:571: ovn-nbctl lr-lb-add lr0 lb0"
at_fn_check_prepare_trace "ovn-nbctl.at:571"
( $at_check_trace; ovn-nbctl lr-lb-add lr0 lb0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:571"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:572: ovn-nbctl lr-lb-add lr0 lb1"
at_fn_check_prepare_trace "ovn-nbctl.at:572"
( $at_check_trace; ovn-nbctl lr-lb-add lr0 lb1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:572"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:573: ovn-nbctl --may-exist lr-lb-add lr0 lb1"
at_fn_check_prepare_trace "ovn-nbctl.at:573"
( $at_check_trace; ovn-nbctl --may-exist lr-lb-add lr0 lb1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:573"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:574: ovn-nbctl lr-lb-add lr0 lb2"
at_fn_check_prepare_trace "ovn-nbctl.at:574"
( $at_check_trace; ovn-nbctl lr-lb-add lr0 lb2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: Multiple load balancers named 'lb2'.  Use a UUID.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:574"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:577: ovn-nbctl lr-lb-add lr0 lb3"
at_fn_check_prepare_trace "ovn-nbctl.at:577"
( $at_check_trace; ovn-nbctl lr-lb-add lr0 lb3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:577"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:579: ovn-nbctl lr-lb-list lr0 | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:579"
( $at_check_trace; ovn-nbctl lr-lb-list lr0 | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "UUID                                    LB                  PROTO      VIP             IPs
<0>    lb0                 tcp        30.0.0.10:80    192.168.10.10:80,192.168.10.20:80
<1>    lb1                 udp        30.0.0.10:80    192.168.10.10:80,192.168.10.20:80
<2>    lb3                 tcp/udp    30.0.0.10       192.168.10.10,192.168.10.20
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:579"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:586: ovn-nbctl lr-lb-del lr0 lb0"
at_fn_check_prepare_trace "ovn-nbctl.at:586"
( $at_check_trace; ovn-nbctl lr-lb-del lr0 lb0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:586"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:587: ovn-nbctl lr-lb-list lr0 | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:587"
( $at_check_trace; ovn-nbctl lr-lb-list lr0 | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "UUID                                    LB                  PROTO      VIP             IPs
<0>    lb1                 udp        30.0.0.10:80    192.168.10.10:80,192.168.10.20:80
<1>    lb3                 tcp/udp    30.0.0.10       192.168.10.10,192.168.10.20
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:587"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:593: ovn-nbctl lr-lb-del lr0 lb1"
at_fn_check_prepare_trace "ovn-nbctl.at:593"
( $at_check_trace; ovn-nbctl lr-lb-del lr0 lb1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:593"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:594: ovn-nbctl lr-lb-del lr0 lb3"
at_fn_check_prepare_trace "ovn-nbctl.at:594"
( $at_check_trace; ovn-nbctl lr-lb-del lr0 lb3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:594"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:595: ovn-nbctl lr-lb-list lr0 | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:595"
( $at_check_trace; ovn-nbctl lr-lb-list lr0 | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:595"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:596: ovn-nbctl --if-exists lr-lb-del lr0 lb1"
at_fn_check_prepare_trace "ovn-nbctl.at:596"
( $at_check_trace; ovn-nbctl --if-exists lr-lb-del lr0 lb1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:596"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:599: ovn-nbctl lr-lb-add lr0 lb0"
at_fn_check_prepare_trace "ovn-nbctl.at:599"
( $at_check_trace; ovn-nbctl lr-lb-add lr0 lb0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:599"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:600: ovn-nbctl lr-lb-add lr0 lb1"
at_fn_check_prepare_trace "ovn-nbctl.at:600"
( $at_check_trace; ovn-nbctl lr-lb-add lr0 lb1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:600"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:601: ovn-nbctl lr-lb-add lr0 lb3"
at_fn_check_prepare_trace "ovn-nbctl.at:601"
( $at_check_trace; ovn-nbctl lr-lb-add lr0 lb3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:601"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:602: ovn-nbctl lr-lb-del lr0"
at_fn_check_prepare_trace "ovn-nbctl.at:602"
( $at_check_trace; ovn-nbctl lr-lb-del lr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:602"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:603: ovn-nbctl lr-lb-list lr0 | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:603"
( $at_check_trace; ovn-nbctl lr-lb-list lr0 | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:603"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:605: check_logs \"\""
at_fn_check_prepare_trace "ovn-nbctl.at:605"
( $at_check_trace; check_logs ""
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:605"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:605: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn-nbctl.at:605"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:605"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:605: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn-nbctl.at:605"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:605"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   $as_echo "ovn-nbctl.at:605: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-nbctl.at:605: wait failed" >&5

    $as_echo "ovn-nbctl.at:605" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-nbctl.at:605"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2498
#AT_START_2499
at_fn_group_banner 2499 'ovn-nbctl.at:610' \
  "ovn-nbctl - LBs IPv6" "                           " 127
at_xfail=no
(
  $as_echo "2499. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:611: ovsdb-tool create ovn-nb.db \$abs_top_srcdir/ovn/ovn-nb.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create ovn-nb.db $abs_top_srcdir/ovn/ovn-nb.ovsschema" "ovn-nbctl.at:611"
( $at_check_trace; ovsdb-tool create ovn-nb.db $abs_top_srcdir/ovn/ovn-nb.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:611"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:611: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db" "ovn-nbctl.at:611"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:611"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:611: ovn-nbctl init"
at_fn_check_prepare_trace "ovn-nbctl.at:611"
( $at_check_trace; ovn-nbctl init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:611"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:611: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-nbctl.at:611"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:611"
$at_failed && at_fn_log_failure
$at_traceon; }




{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:614: ovn-nbctl lb-add lb0 [ae0f::10]:80a [fd0f::10]:80,[fd0f::20]:80 tcp"
at_fn_check_prepare_trace "ovn-nbctl.at:614"
( $at_check_trace; ovn-nbctl lb-add lb0 [ae0f::10]:80a [fd0f::10]:80,[fd0f::20]:80 tcp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: [ae0f::10]:80a: should be an IP address (or an IP address and a port number with : as a separator).
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:614"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:619: ovn-nbctl lb-add lb0 [ae0f::10]:a80 [fd0f::10]:80,[fd0f::20]:80 tcp"
at_fn_check_prepare_trace "ovn-nbctl.at:619"
( $at_check_trace; ovn-nbctl lb-add lb0 [ae0f::10]:a80 [fd0f::10]:80,[fd0f::20]:80 tcp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: [ae0f::10]:a80: should be an IP address (or an IP address and a port number with : as a separator).
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:619"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:624: ovn-nbctl lb-add lb0 [ae0f::10]: [fd0f::10]:80,[fd0f::20]:80 tcp"
at_fn_check_prepare_trace "ovn-nbctl.at:624"
( $at_check_trace; ovn-nbctl lb-add lb0 [ae0f::10]: [fd0f::10]:80,[fd0f::20]:80 tcp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: [ae0f::10]:: should be an IP address (or an IP address and a port number with : as a separator).
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:624"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:629: ovn-nbctl lb-add lb0 [ae0f::10]:80 [fd0f::10]:80,fd0f::20 tcp"
at_fn_check_prepare_trace "ovn-nbctl.at:629"
( $at_check_trace; ovn-nbctl lb-add lb0 [ae0f::10]:80 [fd0f::10]:80,fd0f::20 tcp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: fd0f::20: should be an IP address and a port number with : as a separator.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:629"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:634: ovn-nbctl lb-add lb0 ae0f::10fff [fd0f::10]:80,fd0f::20 tcp"
at_fn_check_prepare_trace "ovn-nbctl.at:634"
( $at_check_trace; ovn-nbctl lb-add lb0 ae0f::10fff [fd0f::10]:80,fd0f::20 tcp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: ae0f::10fff: should be an IP address (or an IP address and a port number with : as a separator).
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:634"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:639: ovn-nbctl lb-add lb0 ae0f::10 [fd0f::10]:80,[fd0f::20]:80"
at_fn_check_prepare_trace "ovn-nbctl.at:639"
( $at_check_trace; ovn-nbctl lb-add lb0 ae0f::10 [fd0f::10]:80,[fd0f::20]:80
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: [fd0f::10]:80: should be an IP address.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:639"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:644: ovn-nbctl lb-add lb0 ae0f::10 fd0f::10,[fd0f::20]:80"
at_fn_check_prepare_trace "ovn-nbctl.at:644"
( $at_check_trace; ovn-nbctl lb-add lb0 ae0f::10 fd0f::10,[fd0f::20]:80
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: [fd0f::20]:80: should be an IP address.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:644"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:649: ovn-nbctl lb-add lb0 ae0f::10 [fd0f::10]:a80"
at_fn_check_prepare_trace "ovn-nbctl.at:649"
( $at_check_trace; ovn-nbctl lb-add lb0 ae0f::10 [fd0f::10]:a80
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: [fd0f::10]:a80: should be an IP address.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:649"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:654: ovn-nbctl lb-add lb0 ae0f::10 [fd0f::10]:"
at_fn_check_prepare_trace "ovn-nbctl.at:654"
( $at_check_trace; ovn-nbctl lb-add lb0 ae0f::10 [fd0f::10]:
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: [fd0f::10]:: should be an IP address.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:654"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:659: ovn-nbctl lb-add lb0 ae0f::10 fd0f::1001a"
at_fn_check_prepare_trace "ovn-nbctl.at:659"
( $at_check_trace; ovn-nbctl lb-add lb0 ae0f::10 fd0f::1001a
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: fd0f::1001a: should be an IP address.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:659"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:664: ovn-nbctl lb-add lb0 ae0f::10 fd0f::10 tcp"
at_fn_check_prepare_trace "ovn-nbctl.at:664"
( $at_check_trace; ovn-nbctl lb-add lb0 ae0f::10 fd0f::10 tcp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: Protocol is unnecessary when no port of vip is given.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:664"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:669: ovn-nbctl lb-add lb0 ae0f::10 [fd0f::10]:900 tcp"
at_fn_check_prepare_trace "ovn-nbctl.at:669"
( $at_check_trace; ovn-nbctl lb-add lb0 ae0f::10 [fd0f::10]:900 tcp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: Protocol is unnecessary when no port of vip is given.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:669"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:673: ovn-nbctl lb-add lb0 ae0f::10 192.168.10.10"
at_fn_check_prepare_trace "ovn-nbctl.at:673"
( $at_check_trace; ovn-nbctl lb-add lb0 ae0f::10 192.168.10.10
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: 192.168.10.10: IP address family is different from VIP ae0f::10.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:673"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:677: ovn-nbctl lb-add lb0 ae0f::10 192.168.10.10"
at_fn_check_prepare_trace "ovn-nbctl.at:677"
( $at_check_trace; ovn-nbctl lb-add lb0 ae0f::10 192.168.10.10
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: 192.168.10.10: IP address family is different from VIP ae0f::10.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:677"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:681: ovn-nbctl lb-add lb0 [ae0f::10]:80 192.168.10.10:80"
at_fn_check_prepare_trace "ovn-nbctl.at:681"
( $at_check_trace; ovn-nbctl lb-add lb0 [ae0f::10]:80 192.168.10.10:80
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: 192.168.10.10:80: IP address family is different from VIP [ae0f::10]:80.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:681"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:685: ovn-nbctl lb-add lb0 30.0.0.10 ae0f::10"
at_fn_check_prepare_trace "ovn-nbctl.at:685"
( $at_check_trace; ovn-nbctl lb-add lb0 30.0.0.10 ae0f::10
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: ae0f::10: IP address family is different from VIP 30.0.0.10.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:685"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:689: ovn-nbctl lb-add lb0 30.0.0.10:80 [ae0f::10]:80"
at_fn_check_prepare_trace "ovn-nbctl.at:689"
( $at_check_trace; ovn-nbctl lb-add lb0 30.0.0.10:80 [ae0f::10]:80
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: [ae0f::10]:80: IP address family is different from VIP 30.0.0.10:80.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:689"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:693: ovn-nbctl lb-add lb0 ae0f::10 fd0f::10"
at_fn_check_prepare_trace "ovn-nbctl.at:693"
( $at_check_trace; ovn-nbctl lb-add lb0 ae0f::10 fd0f::10
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:693"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:694: ovn-nbctl lb-add lb0 ae0f:0000:0000:0000:0000:0000:0000:0010 fd0f::20"
at_fn_check_prepare_trace "ovn-nbctl.at:694"
( $at_check_trace; ovn-nbctl lb-add lb0 ae0f:0000:0000:0000:0000:0000:0000:0010 fd0f::20
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: lb0: a load balancer with this vip (ae0f::10) already exists
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:694"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:698: ovn-nbctl lb-del lb0"
at_fn_check_prepare_trace "ovn-nbctl.at:698"
( $at_check_trace; ovn-nbctl lb-del lb0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:698"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:701: ovn-nbctl lb-add lb0 [ae0f::10]:80 ,,,[fd0f::10]:80,,,,,"
at_fn_check_prepare_trace "ovn-nbctl.at:701"
( $at_check_trace; ovn-nbctl lb-add lb0 [ae0f::10]:80 ,,,[fd0f::10]:80,,,,,
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:701"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:702: ovn-nbctl lb-add lb1 [ae0f::10]:80 ,,,[fd0f::10]:80,,,,[fd0f::20]:80,,,,"
at_fn_check_prepare_trace "ovn-nbctl.at:702"
( $at_check_trace; ovn-nbctl lb-add lb1 [ae0f::10]:80 ,,,[fd0f::10]:80,,,,[fd0f::20]:80,,,,
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:702"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:703: ovn-nbctl lb-list | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:703"
( $at_check_trace; ovn-nbctl lb-list | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "UUID                                    LB                  PROTO      VIP              IPs
<0>    lb0                 tcp        [ae0f::10]:80    [fd0f::10]:80
<1>    lb1                 tcp        [ae0f::10]:80    [fd0f::10]:80,[fd0f::20]:80
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:703"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:708: ovn-nbctl lb-del lb0"
at_fn_check_prepare_trace "ovn-nbctl.at:708"
( $at_check_trace; ovn-nbctl lb-del lb0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:708"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:709: ovn-nbctl lb-del lb1"
at_fn_check_prepare_trace "ovn-nbctl.at:709"
( $at_check_trace; ovn-nbctl lb-del lb1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:709"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:712: ovn-nbctl lb-add lb0 [ae0f::10]:80 [fd0f::10]:80,[fd0f::20]:80"
at_fn_check_prepare_trace "ovn-nbctl.at:712"
( $at_check_trace; ovn-nbctl lb-add lb0 [ae0f::10]:80 [fd0f::10]:80,[fd0f::20]:80
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:712"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:713: ovn-nbctl lb-add lb1 [ae0f::10]:80 [fd0f::10]:80,[fd0f::20]:80 tcp"
at_fn_check_prepare_trace "ovn-nbctl.at:713"
( $at_check_trace; ovn-nbctl lb-add lb1 [ae0f::10]:80 [fd0f::10]:80,[fd0f::20]:80 tcp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:713"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:714: ovn-nbctl lb-list | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:714"
( $at_check_trace; ovn-nbctl lb-list | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "UUID                                    LB                  PROTO      VIP              IPs
<0>    lb0                 tcp        [ae0f::10]:80    [fd0f::10]:80,[fd0f::20]:80
<1>    lb1                 tcp        [ae0f::10]:80    [fd0f::10]:80,[fd0f::20]:80
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:714"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:721: ovn-nbctl --may-exist lb-add lb1 [ae0f::10]:80 [fd0f::10]:80,[fd0f::20]:8080"
at_fn_check_prepare_trace "ovn-nbctl.at:721"
( $at_check_trace; ovn-nbctl --may-exist lb-add lb1 [ae0f::10]:80 [fd0f::10]:80,[fd0f::20]:8080
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:721"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:722: ovn-nbctl lb-list | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:722"
( $at_check_trace; ovn-nbctl lb-list | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "UUID                                    LB                  PROTO      VIP              IPs
<0>    lb0                 tcp        [ae0f::10]:80    [fd0f::10]:80,[fd0f::20]:80
<1>    lb1                 tcp        [ae0f::10]:80    [fd0f::10]:80,[fd0f::20]:8080
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:722"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:728: ovn-nbctl --may-exist lb-add lb1 [ae0f::10]:80 [fd0f::10]:80,[fd0f::20]:8080 udp"
at_fn_check_prepare_trace "ovn-nbctl.at:728"
( $at_check_trace; ovn-nbctl --may-exist lb-add lb1 [ae0f::10]:80 [fd0f::10]:80,[fd0f::20]:8080 udp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:728"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:729: ovn-nbctl lb-list | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:729"
( $at_check_trace; ovn-nbctl lb-list | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "UUID                                    LB                  PROTO      VIP              IPs
<0>    lb0                 tcp        [ae0f::10]:80    [fd0f::10]:80,[fd0f::20]:80
<1>    lb1                 udp        [ae0f::10]:80    [fd0f::10]:80,[fd0f::20]:8080
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:729"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:736: ovn-nbctl lb-add lb1 [ae0f::20]:80 [fd0f::10]:80 udp"
at_fn_check_prepare_trace "ovn-nbctl.at:736"
( $at_check_trace; ovn-nbctl lb-add lb1 [ae0f::20]:80 [fd0f::10]:80 udp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:736"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:737: ovn-nbctl lb-list | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:737"
( $at_check_trace; ovn-nbctl lb-list | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "UUID                                    LB                  PROTO      VIP              IPs
<0>    lb0                 tcp        [ae0f::10]:80    [fd0f::10]:80,[fd0f::20]:80
<1>    lb1                 udp        [ae0f::10]:80    [fd0f::10]:80,[fd0f::20]:8080
                                                            udp        [ae0f::20]:80    [fd0f::10]:80
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:737"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:744: ovn-nbctl lb-del lb1 [ae0f::20]:80"
at_fn_check_prepare_trace "ovn-nbctl.at:744"
( $at_check_trace; ovn-nbctl lb-del lb1 [ae0f::20]:80
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:744"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:745: ovn-nbctl lb-list | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:745"
( $at_check_trace; ovn-nbctl lb-list | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "UUID                                    LB                  PROTO      VIP              IPs
<0>    lb0                 tcp        [ae0f::10]:80    [fd0f::10]:80,[fd0f::20]:80
<1>    lb1                 udp        [ae0f::10]:80    [fd0f::10]:80,[fd0f::20]:8080
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:745"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:752: ovn-nbctl lb-add lb2 ae0f::30 fd0f::10"
at_fn_check_prepare_trace "ovn-nbctl.at:752"
( $at_check_trace; ovn-nbctl lb-add lb2 ae0f::30 fd0f::10
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:752"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:753: ovn-nbctl lb-add lb3 ae0f::30 fd0f::10"
at_fn_check_prepare_trace "ovn-nbctl.at:753"
( $at_check_trace; ovn-nbctl lb-add lb3 ae0f::30 fd0f::10
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:753"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:754: ovn-nbctl lb-list | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:754"
( $at_check_trace; ovn-nbctl lb-list | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "UUID                                    LB                  PROTO      VIP              IPs
<0>    lb0                 tcp        [ae0f::10]:80    [fd0f::10]:80,[fd0f::20]:80
<1>    lb1                 udp        [ae0f::10]:80    [fd0f::10]:80,[fd0f::20]:8080
<2>    lb2                 tcp/udp    ae0f::30         fd0f::10
<3>    lb3                 tcp/udp    ae0f::30         fd0f::10
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:754"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:761: ovn-nbctl lb-del lb2 ae0f::30"
at_fn_check_prepare_trace "ovn-nbctl.at:761"
( $at_check_trace; ovn-nbctl lb-del lb2 ae0f::30
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:761"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:762: ovn-nbctl lb-del lb3 ae0f::30"
at_fn_check_prepare_trace "ovn-nbctl.at:762"
( $at_check_trace; ovn-nbctl lb-del lb3 ae0f::30
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:762"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:764: ovn-nbctl lb-add lb2 [ae0f::10]:8080 [fd0f::10]:80,[fd0f::20]:80 tcp"
at_fn_check_prepare_trace "ovn-nbctl.at:764"
( $at_check_trace; ovn-nbctl lb-add lb2 [ae0f::10]:8080 [fd0f::10]:80,[fd0f::20]:80 tcp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:764"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:765: ovn-nbctl --add-duplicate lb-add lb2 [ae0f::10]:8080 [fd0f::10]:80,[fd0f::20]:80 tcp"
at_fn_check_prepare_trace "ovn-nbctl.at:765"
( $at_check_trace; ovn-nbctl --add-duplicate lb-add lb2 [ae0f::10]:8080 [fd0f::10]:80,[fd0f::20]:80 tcp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:765"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:766: ovn-nbctl lb-list | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:766"
( $at_check_trace; ovn-nbctl lb-list | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "UUID                                    LB                  PROTO      VIP                IPs
<0>    lb0                 tcp        [ae0f::10]:80      [fd0f::10]:80,[fd0f::20]:80
<1>    lb1                 udp        [ae0f::10]:80      [fd0f::10]:80,[fd0f::20]:8080
<2>    lb2                 tcp        [ae0f::10]:8080    [fd0f::10]:80,[fd0f::20]:80
<3>    lb2                 tcp        [ae0f::10]:8080    [fd0f::10]:80,[fd0f::20]:80
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:766"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:775: ovn-nbctl lb-add lb2 [ae0f::10]:8080 [fd0f::10]:80,[fd0f::20]:80 tcp"
at_fn_check_prepare_trace "ovn-nbctl.at:775"
( $at_check_trace; ovn-nbctl lb-add lb2 [ae0f::10]:8080 [fd0f::10]:80,[fd0f::20]:80 tcp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: Multiple load balancers named 'lb2'.  Use a UUID.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:775"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:779: ovn-nbctl lb-del lb2"
at_fn_check_prepare_trace "ovn-nbctl.at:779"
( $at_check_trace; ovn-nbctl lb-del lb2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: Multiple load balancers named 'lb2'.  Use a UUID.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:779"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:783: ovn-nbctl --may-exist lb-add lb1 [ae0f::10]:80 [fd0f::10]:8080,[fd0f::20]:8080 udp"
at_fn_check_prepare_trace "ovn-nbctl.at:783"
( $at_check_trace; ovn-nbctl --may-exist lb-add lb1 [ae0f::10]:80 [fd0f::10]:8080,[fd0f::20]:8080 udp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:783"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:784: ovn-nbctl --may-exist lb-add lb1 [ae0f::10]:8080 [fd0f::10]:8080,[fd0f::20]:8080 udp"
at_fn_check_prepare_trace "ovn-nbctl.at:784"
( $at_check_trace; ovn-nbctl --may-exist lb-add lb1 [ae0f::10]:8080 [fd0f::10]:8080,[fd0f::20]:8080 udp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:784"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:785: ovn-nbctl --may-exist lb-add lb1 [ae0f::10]:9090 [fd0f::10]:8080,[fd0f::20]:8080 udp"
at_fn_check_prepare_trace "ovn-nbctl.at:785"
( $at_check_trace; ovn-nbctl --may-exist lb-add lb1 [ae0f::10]:9090 [fd0f::10]:8080,[fd0f::20]:8080 udp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:785"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:786: ovn-nbctl lb-del lb0 [ae0f::10]:80"
at_fn_check_prepare_trace "ovn-nbctl.at:786"
( $at_check_trace; ovn-nbctl lb-del lb0 [ae0f::10]:80
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:786"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:787: ovn-nbctl lb-del lb1"
at_fn_check_prepare_trace "ovn-nbctl.at:787"
( $at_check_trace; ovn-nbctl lb-del lb1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:787"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:788: ovn-nbctl lb-list | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:788"
( $at_check_trace; ovn-nbctl lb-list | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "UUID                                    LB                  PROTO      VIP                IPs
<0>    lb2                 tcp        [ae0f::10]:8080    [fd0f::10]:80,[fd0f::20]:80
<1>    lb2                 tcp        [ae0f::10]:8080    [fd0f::10]:80,[fd0f::20]:80
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:788"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:795: ovn-nbctl ls-add ls0"
at_fn_check_prepare_trace "ovn-nbctl.at:795"
( $at_check_trace; ovn-nbctl ls-add ls0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:795"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:796: ovn-nbctl lb-add lb0 [ae0f::10]:80 [fd0f::10]:80,[fd0f::20]:80"
at_fn_check_prepare_trace "ovn-nbctl.at:796"
( $at_check_trace; ovn-nbctl lb-add lb0 [ae0f::10]:80 [fd0f::10]:80,[fd0f::20]:80
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:796"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:797: ovn-nbctl lb-add lb1 [ae0f::10]:80 [fd0f::10]:80,[fd0f::20]:80 udp"
at_fn_check_prepare_trace "ovn-nbctl.at:797"
( $at_check_trace; ovn-nbctl lb-add lb1 [ae0f::10]:80 [fd0f::10]:80,[fd0f::20]:80 udp
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:797"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:798: ovn-nbctl lb-add lb3 ae0f::10 fd0f::10,fd0f::20"
at_fn_check_prepare_trace "ovn-nbctl.at:798"
( $at_check_trace; ovn-nbctl lb-add lb3 ae0f::10 fd0f::10,fd0f::20
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:798"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:799: ovn-nbctl ls-lb-add ls0 lb0"
at_fn_check_prepare_trace "ovn-nbctl.at:799"
( $at_check_trace; ovn-nbctl ls-lb-add ls0 lb0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:799"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:800: ovn-nbctl ls-lb-add ls0 lb1"
at_fn_check_prepare_trace "ovn-nbctl.at:800"
( $at_check_trace; ovn-nbctl ls-lb-add ls0 lb1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:800"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:801: ovn-nbctl --may-exist ls-lb-add ls0 lb1"
at_fn_check_prepare_trace "ovn-nbctl.at:801"
( $at_check_trace; ovn-nbctl --may-exist ls-lb-add ls0 lb1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:801"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:802: ovn-nbctl ls-lb-add ls0 lb2"
at_fn_check_prepare_trace "ovn-nbctl.at:802"
( $at_check_trace; ovn-nbctl ls-lb-add ls0 lb2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: Multiple load balancers named 'lb2'.  Use a UUID.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:802"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:805: ovn-nbctl ls-lb-add ls0 lb3"
at_fn_check_prepare_trace "ovn-nbctl.at:805"
( $at_check_trace; ovn-nbctl ls-lb-add ls0 lb3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:805"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:807: ovn-nbctl ls-lb-list ls0 | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:807"
( $at_check_trace; ovn-nbctl ls-lb-list ls0 | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "UUID                                    LB                  PROTO      VIP              IPs
<0>    lb0                 tcp        [ae0f::10]:80    [fd0f::10]:80,[fd0f::20]:80
<1>    lb1                 udp        [ae0f::10]:80    [fd0f::10]:80,[fd0f::20]:80
<2>    lb3                 tcp/udp    ae0f::10         fd0f::10,fd0f::20
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:807"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:814: ovn-nbctl ls-lb-del ls0 lb0"
at_fn_check_prepare_trace "ovn-nbctl.at:814"
( $at_check_trace; ovn-nbctl ls-lb-del ls0 lb0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:814"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:815: ovn-nbctl ls-lb-list ls0 | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:815"
( $at_check_trace; ovn-nbctl ls-lb-list ls0 | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "UUID                                    LB                  PROTO      VIP              IPs
<0>    lb1                 udp        [ae0f::10]:80    [fd0f::10]:80,[fd0f::20]:80
<1>    lb3                 tcp/udp    ae0f::10         fd0f::10,fd0f::20
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:815"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:821: ovn-nbctl ls-lb-del ls0 lb1"
at_fn_check_prepare_trace "ovn-nbctl.at:821"
( $at_check_trace; ovn-nbctl ls-lb-del ls0 lb1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:821"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:822: ovn-nbctl ls-lb-del ls0 lb3"
at_fn_check_prepare_trace "ovn-nbctl.at:822"
( $at_check_trace; ovn-nbctl ls-lb-del ls0 lb3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:822"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:823: ovn-nbctl ls-lb-list ls0 | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:823"
( $at_check_trace; ovn-nbctl ls-lb-list ls0 | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:823"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:824: ovn-nbctl --if-exists ls-lb-del ls0 lb1"
at_fn_check_prepare_trace "ovn-nbctl.at:824"
( $at_check_trace; ovn-nbctl --if-exists ls-lb-del ls0 lb1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:824"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:827: ovn-nbctl ls-lb-add ls0 lb0"
at_fn_check_prepare_trace "ovn-nbctl.at:827"
( $at_check_trace; ovn-nbctl ls-lb-add ls0 lb0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:827"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:828: ovn-nbctl ls-lb-add ls0 lb1"
at_fn_check_prepare_trace "ovn-nbctl.at:828"
( $at_check_trace; ovn-nbctl ls-lb-add ls0 lb1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:828"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:829: ovn-nbctl ls-lb-add ls0 lb3"
at_fn_check_prepare_trace "ovn-nbctl.at:829"
( $at_check_trace; ovn-nbctl ls-lb-add ls0 lb3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:829"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:830: ovn-nbctl ls-lb-del ls0"
at_fn_check_prepare_trace "ovn-nbctl.at:830"
( $at_check_trace; ovn-nbctl ls-lb-del ls0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:830"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:831: ovn-nbctl ls-lb-list ls0 | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:831"
( $at_check_trace; ovn-nbctl ls-lb-list ls0 | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:831"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:834: ovn-nbctl lr-add lr0"
at_fn_check_prepare_trace "ovn-nbctl.at:834"
( $at_check_trace; ovn-nbctl lr-add lr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:834"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:835: ovn-nbctl lr-lb-add lr0 lb0"
at_fn_check_prepare_trace "ovn-nbctl.at:835"
( $at_check_trace; ovn-nbctl lr-lb-add lr0 lb0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:835"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:836: ovn-nbctl lr-lb-add lr0 lb1"
at_fn_check_prepare_trace "ovn-nbctl.at:836"
( $at_check_trace; ovn-nbctl lr-lb-add lr0 lb1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:836"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:837: ovn-nbctl --may-exist lr-lb-add lr0 lb1"
at_fn_check_prepare_trace "ovn-nbctl.at:837"
( $at_check_trace; ovn-nbctl --may-exist lr-lb-add lr0 lb1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:837"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:838: ovn-nbctl lr-lb-add lr0 lb2"
at_fn_check_prepare_trace "ovn-nbctl.at:838"
( $at_check_trace; ovn-nbctl lr-lb-add lr0 lb2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: Multiple load balancers named 'lb2'.  Use a UUID.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:838"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:841: ovn-nbctl lr-lb-add lr0 lb3"
at_fn_check_prepare_trace "ovn-nbctl.at:841"
( $at_check_trace; ovn-nbctl lr-lb-add lr0 lb3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:841"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:843: ovn-nbctl lr-lb-list lr0 | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:843"
( $at_check_trace; ovn-nbctl lr-lb-list lr0 | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "UUID                                    LB                  PROTO      VIP              IPs
<0>    lb0                 tcp        [ae0f::10]:80    [fd0f::10]:80,[fd0f::20]:80
<1>    lb1                 udp        [ae0f::10]:80    [fd0f::10]:80,[fd0f::20]:80
<2>    lb3                 tcp/udp    ae0f::10         fd0f::10,fd0f::20
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:843"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:850: ovn-nbctl lr-lb-del lr0 lb0"
at_fn_check_prepare_trace "ovn-nbctl.at:850"
( $at_check_trace; ovn-nbctl lr-lb-del lr0 lb0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:850"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:851: ovn-nbctl lr-lb-list lr0 | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:851"
( $at_check_trace; ovn-nbctl lr-lb-list lr0 | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "UUID                                    LB                  PROTO      VIP              IPs
<0>    lb1                 udp        [ae0f::10]:80    [fd0f::10]:80,[fd0f::20]:80
<1>    lb3                 tcp/udp    ae0f::10         fd0f::10,fd0f::20
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:851"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:857: ovn-nbctl lr-lb-del lr0 lb1"
at_fn_check_prepare_trace "ovn-nbctl.at:857"
( $at_check_trace; ovn-nbctl lr-lb-del lr0 lb1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:857"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:858: ovn-nbctl lr-lb-del lr0 lb3"
at_fn_check_prepare_trace "ovn-nbctl.at:858"
( $at_check_trace; ovn-nbctl lr-lb-del lr0 lb3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:858"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:859: ovn-nbctl lr-lb-list lr0 | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:859"
( $at_check_trace; ovn-nbctl lr-lb-list lr0 | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:859"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:860: ovn-nbctl --if-exists lr-lb-del lr0 lb1"
at_fn_check_prepare_trace "ovn-nbctl.at:860"
( $at_check_trace; ovn-nbctl --if-exists lr-lb-del lr0 lb1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:860"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:863: ovn-nbctl lr-lb-add lr0 lb0"
at_fn_check_prepare_trace "ovn-nbctl.at:863"
( $at_check_trace; ovn-nbctl lr-lb-add lr0 lb0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:863"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:864: ovn-nbctl lr-lb-add lr0 lb1"
at_fn_check_prepare_trace "ovn-nbctl.at:864"
( $at_check_trace; ovn-nbctl lr-lb-add lr0 lb1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:864"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:865: ovn-nbctl lr-lb-add lr0 lb3"
at_fn_check_prepare_trace "ovn-nbctl.at:865"
( $at_check_trace; ovn-nbctl lr-lb-add lr0 lb3
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:865"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:866: ovn-nbctl lr-lb-del lr0"
at_fn_check_prepare_trace "ovn-nbctl.at:866"
( $at_check_trace; ovn-nbctl lr-lb-del lr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:866"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:867: ovn-nbctl lr-lb-list lr0 | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:867"
( $at_check_trace; ovn-nbctl lr-lb-list lr0 | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:867"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:869: check_logs \"\""
at_fn_check_prepare_trace "ovn-nbctl.at:869"
( $at_check_trace; check_logs ""
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:869"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:869: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn-nbctl.at:869"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:869"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:869: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn-nbctl.at:869"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:869"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   $as_echo "ovn-nbctl.at:869: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-nbctl.at:869: wait failed" >&5

    $as_echo "ovn-nbctl.at:869" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-nbctl.at:869"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2499
#AT_START_2500
at_fn_group_banner 2500 'ovn-nbctl.at:873' \
  "ovn-nbctl - basic logical router commands" "      " 127
at_xfail=no
(
  $as_echo "2500. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:874: ovsdb-tool create ovn-nb.db \$abs_top_srcdir/ovn/ovn-nb.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create ovn-nb.db $abs_top_srcdir/ovn/ovn-nb.ovsschema" "ovn-nbctl.at:874"
( $at_check_trace; ovsdb-tool create ovn-nb.db $abs_top_srcdir/ovn/ovn-nb.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:874"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:874: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db" "ovn-nbctl.at:874"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:874"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:874: ovn-nbctl init"
at_fn_check_prepare_trace "ovn-nbctl.at:874"
( $at_check_trace; ovn-nbctl init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:874"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:874: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-nbctl.at:874"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:874"
$at_failed && at_fn_log_failure
$at_traceon; }




{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:876: ovn-nbctl lr-add lr0"
at_fn_check_prepare_trace "ovn-nbctl.at:876"
( $at_check_trace; ovn-nbctl lr-add lr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:876"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:877: ovn-nbctl lr-list | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:877"
( $at_check_trace; ovn-nbctl lr-list | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<0> (lr0)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:877"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:881: ovn-nbctl lr-add lr1"
at_fn_check_prepare_trace "ovn-nbctl.at:881"
( $at_check_trace; ovn-nbctl lr-add lr1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:881"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:882: ovn-nbctl lr-list | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:882"
( $at_check_trace; ovn-nbctl lr-list | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<0> (lr0)
<1> (lr1)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:882"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:887: ovn-nbctl lr-del lr0"
at_fn_check_prepare_trace "ovn-nbctl.at:887"
( $at_check_trace; ovn-nbctl lr-del lr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:887"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:888: ovn-nbctl lr-list | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:888"
( $at_check_trace; ovn-nbctl lr-list | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<0> (lr1)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:888"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:892: ovn-nbctl show lr0"
at_fn_check_prepare_trace "ovn-nbctl.at:892"
( $at_check_trace; ovn-nbctl show lr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:892"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:893: ovn-nbctl lr-add lr0"
at_fn_check_prepare_trace "ovn-nbctl.at:893"
( $at_check_trace; ovn-nbctl lr-add lr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:893"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:894: ovn-nbctl show lr0 | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:894"
( $at_check_trace; ovn-nbctl show lr0 | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "router <0> (lr0)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:894"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:897: ovn-nbctl lr-add lr0"
at_fn_check_prepare_trace "ovn-nbctl.at:897"
( $at_check_trace; ovn-nbctl lr-add lr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: lr0: a router with this name already exists
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:897"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:900: ovn-nbctl --may-exist lr-add lr0"
at_fn_check_prepare_trace "ovn-nbctl.at:900"
( $at_check_trace; ovn-nbctl --may-exist lr-add lr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:900"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:901: ovn-nbctl show lr0 | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:901"
( $at_check_trace; ovn-nbctl show lr0 | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "router <0> (lr0)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:901"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:904: ovn-nbctl --add-duplicate lr-add lr0"
at_fn_check_prepare_trace "ovn-nbctl.at:904"
( $at_check_trace; ovn-nbctl --add-duplicate lr-add lr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:904"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:905: ovn-nbctl --may-exist --add-duplicate lr-add lr0"
at_fn_check_prepare_trace "ovn-nbctl.at:905"
( $at_check_trace; ovn-nbctl --may-exist --add-duplicate lr-add lr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: --may-exist and --add-duplicate may not be used together
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:905"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:908: ovn-nbctl lr-del lr0"
at_fn_check_prepare_trace "ovn-nbctl.at:908"
( $at_check_trace; ovn-nbctl lr-del lr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: Multiple logical routers named 'lr0'.  Use a UUID.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:908"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:912: ovn-nbctl lr-del lr2"
at_fn_check_prepare_trace "ovn-nbctl.at:912"
( $at_check_trace; ovn-nbctl lr-del lr2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: lr2: router name not found
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:912"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:915: ovn-nbctl --if-exists lr-del lr2"
at_fn_check_prepare_trace "ovn-nbctl.at:915"
( $at_check_trace; ovn-nbctl --if-exists lr-del lr2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:915"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:917: ovn-nbctl lr-add"
at_fn_check_prepare_trace "ovn-nbctl.at:917"
( $at_check_trace; ovn-nbctl lr-add
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:917"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:918: ovn-nbctl lr-add"
at_fn_check_prepare_trace "ovn-nbctl.at:918"
( $at_check_trace; ovn-nbctl lr-add
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:918"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:919: ovn-nbctl --add-duplicate lr-add"
at_fn_check_prepare_trace "ovn-nbctl.at:919"
( $at_check_trace; ovn-nbctl --add-duplicate lr-add
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: --add-duplicate requires specifying a name
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:919"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:922: ovn-nbctl --may-exist lr-add"
at_fn_check_prepare_trace "ovn-nbctl.at:922"
( $at_check_trace; ovn-nbctl --may-exist lr-add
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: --may-exist requires specifying a name
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:922"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:926: check_logs \"\""
at_fn_check_prepare_trace "ovn-nbctl.at:926"
( $at_check_trace; check_logs ""
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:926"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:926: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn-nbctl.at:926"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:926"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:926: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn-nbctl.at:926"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:926"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   $as_echo "ovn-nbctl.at:926: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-nbctl.at:926: wait failed" >&5

    $as_echo "ovn-nbctl.at:926" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-nbctl.at:926"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2500
#AT_START_2501
at_fn_group_banner 2501 'ovn-nbctl.at:931' \
  "ovn-nbctl - basic logical router port commands" " " 127
at_xfail=no
(
  $as_echo "2501. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:932: ovsdb-tool create ovn-nb.db \$abs_top_srcdir/ovn/ovn-nb.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create ovn-nb.db $abs_top_srcdir/ovn/ovn-nb.ovsschema" "ovn-nbctl.at:932"
( $at_check_trace; ovsdb-tool create ovn-nb.db $abs_top_srcdir/ovn/ovn-nb.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:932"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:932: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db" "ovn-nbctl.at:932"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:932"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:932: ovn-nbctl init"
at_fn_check_prepare_trace "ovn-nbctl.at:932"
( $at_check_trace; ovn-nbctl init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:932"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:932: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-nbctl.at:932"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:932"
$at_failed && at_fn_log_failure
$at_traceon; }




{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:934: ovn-nbctl lr-add lr0"
at_fn_check_prepare_trace "ovn-nbctl.at:934"
( $at_check_trace; ovn-nbctl lr-add lr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:934"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:935: ovn-nbctl lrp-add lr0 lrp0 00:00:00:01:02 192.168.1.1/24"
at_fn_check_prepare_trace "ovn-nbctl.at:935"
( $at_check_trace; ovn-nbctl lrp-add lr0 lrp0 00:00:00:01:02 192.168.1.1/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: lrp0: invalid mac address 00:00:00:01:02
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:935"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:938: ovn-nbctl lrp-add lr0 lrp0 00:00:00:01:02:03:04 192.168.1.1/24"
at_fn_check_prepare_trace "ovn-nbctl.at:938"
( $at_check_trace; ovn-nbctl lrp-add lr0 lrp0 00:00:00:01:02:03:04 192.168.1.1/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: lrp0: invalid mac address 00:00:00:01:02:03:04
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:938"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:942: ovn-nbctl lrp-add lr0 lrp0 00:00:00:01:02:03 192.168.1.1/24"
at_fn_check_prepare_trace "ovn-nbctl.at:942"
( $at_check_trace; ovn-nbctl lrp-add lr0 lrp0 00:00:00:01:02:03 192.168.1.1/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:942"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:944: ovn-nbctl show lr0 | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:944"
( $at_check_trace; ovn-nbctl show lr0 | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "router <0> (lr0)
    port lrp0
        mac: \"00:00:00:01:02:03\"
        networks: [\"192.168.1.1/24\"]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:944"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:951: ovn-nbctl lrp-add lr0 lrp0 00:00:00:01:02:03 192.168.1.1/24"
at_fn_check_prepare_trace "ovn-nbctl.at:951"
( $at_check_trace; ovn-nbctl lrp-add lr0 lrp0 00:00:00:01:02:03 192.168.1.1/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: lrp0: a port with this name already exists
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:951"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:954: ovn-nbctl --may-exist lrp-add lr0 lrp0 00:00:00:01:02:03 192.168.1.1/24"
at_fn_check_prepare_trace "ovn-nbctl.at:954"
( $at_check_trace; ovn-nbctl --may-exist lrp-add lr0 lrp0 00:00:00:01:02:03 192.168.1.1/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:954"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:955: ovn-nbctl lrp-list lr0 | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:955"
( $at_check_trace; ovn-nbctl lrp-list lr0 | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<0> (lrp0)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:955"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:959: ovn-nbctl lrp-add lr0 lrp1 00:00:00:01:02:03 192.168.1.1/24 peer=lrp1-peer"
at_fn_check_prepare_trace "ovn-nbctl.at:959"
( $at_check_trace; ovn-nbctl lrp-add lr0 lrp1 00:00:00:01:02:03 192.168.1.1/24 peer=lrp1-peer
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:959"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:960: ovn-nbctl lrp-list lr0 | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:960"
( $at_check_trace; ovn-nbctl lrp-list lr0 | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<0> (lrp0)
<1> (lrp1)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:960"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:965: ovn-nbctl lr-add lr1"
at_fn_check_prepare_trace "ovn-nbctl.at:965"
( $at_check_trace; ovn-nbctl lr-add lr1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:965"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:966: ovn-nbctl lrp-add lr0 lrp1 00:00:00:01:02:03 192.168.1.1/24"
at_fn_check_prepare_trace "ovn-nbctl.at:966"
( $at_check_trace; ovn-nbctl lrp-add lr0 lrp1 00:00:00:01:02:03 192.168.1.1/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: lrp1: a port with this name already exists
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:966"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:970: ovn-nbctl --may-exist lrp-add lr1 lrp1 00:00:00:01:02:03 192.168.1.1/24"
at_fn_check_prepare_trace "ovn-nbctl.at:970"
( $at_check_trace; ovn-nbctl --may-exist lrp-add lr1 lrp1 00:00:00:01:02:03 192.168.1.1/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: lrp1: port already exists but in router lr0
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:970"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:974: ovn-nbctl --may-exist lrp-add lr0 lrp1 00:00:00:04:05:06 192.168.1.1/24"
at_fn_check_prepare_trace "ovn-nbctl.at:974"
( $at_check_trace; ovn-nbctl --may-exist lrp-add lr0 lrp1 00:00:00:04:05:06 192.168.1.1/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: lrp1: port already exists with mac 00:00:00:01:02:03
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:974"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:978: ovn-nbctl --may-exist lrp-add lr0 lrp1 00:00:00:01:02:03 192.168.1.1/24"
at_fn_check_prepare_trace "ovn-nbctl.at:978"
( $at_check_trace; ovn-nbctl --may-exist lrp-add lr0 lrp1 00:00:00:01:02:03 192.168.1.1/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: lrp1: port already exists with mismatching peer
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:978"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:982: ovn-nbctl --may-exist lrp-add lr0 lrp1 00:00:00:01:02:03 10.0.0.1/24 peer=lrp1-peer"
at_fn_check_prepare_trace "ovn-nbctl.at:982"
( $at_check_trace; ovn-nbctl --may-exist lrp-add lr0 lrp1 00:00:00:01:02:03 10.0.0.1/24 peer=lrp1-peer
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: lrp1: port already exists with different network
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:982"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:986: ovn-nbctl --may-exist lrp-add lr0 lrp1 00:00:00:01:02:03 192.168.1.1/24 peer=lrp1-peer"
at_fn_check_prepare_trace "ovn-nbctl.at:986"
( $at_check_trace; ovn-nbctl --may-exist lrp-add lr0 lrp1 00:00:00:01:02:03 192.168.1.1/24 peer=lrp1-peer
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:986"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:988: ovn-nbctl lrp-del lrp1"
at_fn_check_prepare_trace "ovn-nbctl.at:988"
( $at_check_trace; ovn-nbctl lrp-del lrp1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:988"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:989: ovn-nbctl lrp-list lr0 | uuidfilt"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-nbctl.at:989"
( $at_check_trace; ovn-nbctl lrp-list lr0 | uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<0> (lrp0)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:989"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:993: ovn-nbctl --may-exist lrp-add lr0 lrp1 00:00:00:01:02:03 192.168.1.1/24 10.0.0.1/24 peer=lrp1-peer"
at_fn_check_prepare_trace "ovn-nbctl.at:993"
( $at_check_trace; ovn-nbctl --may-exist lrp-add lr0 lrp1 00:00:00:01:02:03 192.168.1.1/24 10.0.0.1/24 peer=lrp1-peer
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:993"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:995: ovn-nbctl --may-exist lrp-add lr0 lrp1 00:00:00:01:02:03 192.168.1.1/24 172.16.0.1/24 peer=lrp1-peer"
at_fn_check_prepare_trace "ovn-nbctl.at:995"
( $at_check_trace; ovn-nbctl --may-exist lrp-add lr0 lrp1 00:00:00:01:02:03 192.168.1.1/24 172.16.0.1/24 peer=lrp1-peer
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: lrp1: port already exists with different network
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:995"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:999: ovn-nbctl --may-exist lrp-add lr0 lrp1 00:00:00:01:02:03 10.0.0.1/24 192.168.1.1/24 peer=lrp1-peer"
at_fn_check_prepare_trace "ovn-nbctl.at:999"
( $at_check_trace; ovn-nbctl --may-exist lrp-add lr0 lrp1 00:00:00:01:02:03 10.0.0.1/24 192.168.1.1/24 peer=lrp1-peer
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:999"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1001: check_logs \"\""
at_fn_check_prepare_trace "ovn-nbctl.at:1001"
( $at_check_trace; check_logs ""
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1001"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1001: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn-nbctl.at:1001"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1001"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1001: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn-nbctl.at:1001"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1001"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   $as_echo "ovn-nbctl.at:1001: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-nbctl.at:1001: wait failed" >&5

    $as_echo "ovn-nbctl.at:1001" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-nbctl.at:1001"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2501
#AT_START_2502
at_fn_group_banner 2502 'ovn-nbctl.at:1006' \
  "ovn-nbctl - logical router port gateway chassis" "" 127
at_xfail=no
(
  $as_echo "2502. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1007: ovsdb-tool create ovn-nb.db \$abs_top_srcdir/ovn/ovn-nb.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create ovn-nb.db $abs_top_srcdir/ovn/ovn-nb.ovsschema" "ovn-nbctl.at:1007"
( $at_check_trace; ovsdb-tool create ovn-nb.db $abs_top_srcdir/ovn/ovn-nb.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1007"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1007: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db" "ovn-nbctl.at:1007"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1007"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1007: ovn-nbctl init"
at_fn_check_prepare_trace "ovn-nbctl.at:1007"
( $at_check_trace; ovn-nbctl init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1007"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1007: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-nbctl.at:1007"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1007"
$at_failed && at_fn_log_failure
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1008: ovn-nbctl lr-add lr0"
at_fn_check_prepare_trace "ovn-nbctl.at:1008"
( $at_check_trace; ovn-nbctl lr-add lr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1008"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1009: ovn-nbctl lrp-add lr0 lrp0 00:00:00:01:02:03 192.168.1.1/24"
at_fn_check_prepare_trace "ovn-nbctl.at:1009"
( $at_check_trace; ovn-nbctl lrp-add lr0 lrp0 00:00:00:01:02:03 192.168.1.1/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1009"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1010: ovn-nbctl lrp-get-gateway-chassis lrp0"
at_fn_check_prepare_trace "ovn-nbctl.at:1010"
( $at_check_trace; ovn-nbctl lrp-get-gateway-chassis lrp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1010"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1012: ovn-nbctl lrp-set-gateway-chassis lp0 chassis1"
at_fn_check_prepare_trace "ovn-nbctl.at:1012"
( $at_check_trace; ovn-nbctl lrp-set-gateway-chassis lp0 chassis1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: lp0: port name not found
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:1012"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1016: ovn-nbctl lrp-get-gateway-chassis lp0"
at_fn_check_prepare_trace "ovn-nbctl.at:1016"
( $at_check_trace; ovn-nbctl lrp-get-gateway-chassis lp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: lp0: port name not found
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:1016"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1020: ovn-nbctl lrp-del-gateway-chassis lp0 chassis1"
at_fn_check_prepare_trace "ovn-nbctl.at:1020"
( $at_check_trace; ovn-nbctl lrp-del-gateway-chassis lp0 chassis1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: lp0: port name not found
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:1020"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1024: ovn-nbctl lrp-del-gateway-chassis lrp0 chassis1"
at_fn_check_prepare_trace "ovn-nbctl.at:1024"
( $at_check_trace; ovn-nbctl lrp-del-gateway-chassis lrp0 chassis1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: chassis chassis1 is not added to logical port lrp0
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:1024"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1027: ovn-nbctl lrp-set-gateway-chassis lrp0 chassis1"
at_fn_check_prepare_trace "ovn-nbctl.at:1027"
( $at_check_trace; ovn-nbctl lrp-set-gateway-chassis lrp0 chassis1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1027"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1029: ovn-nbctl lrp-get-gateway-chassis lrp0"
at_fn_check_prepare_trace "ovn-nbctl.at:1029"
( $at_check_trace; ovn-nbctl lrp-get-gateway-chassis lrp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "lrp0-chassis1     0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1029"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1032: ovn-nbctl lrp-set-gateway-chassis lrp0 chassis1 10"
at_fn_check_prepare_trace "ovn-nbctl.at:1032"
( $at_check_trace; ovn-nbctl lrp-set-gateway-chassis lrp0 chassis1 10
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1032"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1034: ovn-nbctl lrp-get-gateway-chassis lrp0"
at_fn_check_prepare_trace "ovn-nbctl.at:1034"
( $at_check_trace; ovn-nbctl lrp-get-gateway-chassis lrp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "lrp0-chassis1    10
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1034"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1037: ovn-nbctl lrp-set-gateway-chassis lrp0 chassis1 20"
at_fn_check_prepare_trace "ovn-nbctl.at:1037"
( $at_check_trace; ovn-nbctl lrp-set-gateway-chassis lrp0 chassis1 20
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1037"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1039: ovn-nbctl lrp-get-gateway-chassis lrp0"
at_fn_check_prepare_trace "ovn-nbctl.at:1039"
( $at_check_trace; ovn-nbctl lrp-get-gateway-chassis lrp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "lrp0-chassis1    20
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1039"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1042: ovn-nbctl lrp-set-gateway-chassis lrp0 chassis2 5"
at_fn_check_prepare_trace "ovn-nbctl.at:1042"
( $at_check_trace; ovn-nbctl lrp-set-gateway-chassis lrp0 chassis2 5
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1042"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1043: ovn-nbctl lrp-get-gateway-chassis lrp0"
at_fn_check_prepare_trace "ovn-nbctl.at:1043"
( $at_check_trace; ovn-nbctl lrp-get-gateway-chassis lrp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "lrp0-chassis1    20
lrp0-chassis2     5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1043"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1048: ovn-nbctl lrp-del-gateway-chassis lrp0 chassis1"
at_fn_check_prepare_trace "ovn-nbctl.at:1048"
( $at_check_trace; ovn-nbctl lrp-del-gateway-chassis lrp0 chassis1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1048"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1049: ovn-nbctl lrp-get-gateway-chassis lrp0"
at_fn_check_prepare_trace "ovn-nbctl.at:1049"
( $at_check_trace; ovn-nbctl lrp-get-gateway-chassis lrp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "lrp0-chassis2     5
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1049"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1053: ovn-nbctl lrp-del-gateway-chassis lrp0 chassis2"
at_fn_check_prepare_trace "ovn-nbctl.at:1053"
( $at_check_trace; ovn-nbctl lrp-del-gateway-chassis lrp0 chassis2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1053"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1054: ovn-nbctl lrp-get-gateway-chassis lrp0"
at_fn_check_prepare_trace "ovn-nbctl.at:1054"
( $at_check_trace; ovn-nbctl lrp-get-gateway-chassis lrp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1054"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1056: check_logs \"\""
at_fn_check_prepare_trace "ovn-nbctl.at:1056"
( $at_check_trace; check_logs ""
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1056"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1056: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn-nbctl.at:1056"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1056"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1056: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn-nbctl.at:1056"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1056"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   $as_echo "ovn-nbctl.at:1056: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-nbctl.at:1056: wait failed" >&5

    $as_echo "ovn-nbctl.at:1056" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-nbctl.at:1056"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2502
#AT_START_2503
at_fn_group_banner 2503 'ovn-nbctl.at:1061' \
  "ovn-nbctl - logical router port enable and disable" "" 127
at_xfail=no
(
  $as_echo "2503. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1062: ovsdb-tool create ovn-nb.db \$abs_top_srcdir/ovn/ovn-nb.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create ovn-nb.db $abs_top_srcdir/ovn/ovn-nb.ovsschema" "ovn-nbctl.at:1062"
( $at_check_trace; ovsdb-tool create ovn-nb.db $abs_top_srcdir/ovn/ovn-nb.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1062"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1062: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db" "ovn-nbctl.at:1062"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1062"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1062: ovn-nbctl init"
at_fn_check_prepare_trace "ovn-nbctl.at:1062"
( $at_check_trace; ovn-nbctl init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1062"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1062: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-nbctl.at:1062"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1062"
$at_failed && at_fn_log_failure
$at_traceon; }




{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1064: ovn-nbctl lr-add lr0"
at_fn_check_prepare_trace "ovn-nbctl.at:1064"
( $at_check_trace; ovn-nbctl lr-add lr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1064"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1065: ovn-nbctl lrp-add lr0 lrp0 00:00:00:01:02:03 192.168.1.1/24"
at_fn_check_prepare_trace "ovn-nbctl.at:1065"
( $at_check_trace; ovn-nbctl lrp-add lr0 lrp0 00:00:00:01:02:03 192.168.1.1/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1065"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1066: ovn-nbctl lrp-get-enabled lrp0"
at_fn_check_prepare_trace "ovn-nbctl.at:1066"
( $at_check_trace; ovn-nbctl lrp-get-enabled lrp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "enabled
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1066"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1069: ovn-nbctl lrp-set-enabled lrp0 disabled"
at_fn_check_prepare_trace "ovn-nbctl.at:1069"
( $at_check_trace; ovn-nbctl lrp-set-enabled lrp0 disabled
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1069"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1070: ovn-nbctl lrp-get-enabled lrp0"
at_fn_check_prepare_trace "ovn-nbctl.at:1070"
( $at_check_trace; ovn-nbctl lrp-get-enabled lrp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "disabled
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1070"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1073: ovn-nbctl lrp-set-enabled lrp0 enabled"
at_fn_check_prepare_trace "ovn-nbctl.at:1073"
( $at_check_trace; ovn-nbctl lrp-set-enabled lrp0 enabled
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1073"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1074: ovn-nbctl lrp-get-enabled lrp0"
at_fn_check_prepare_trace "ovn-nbctl.at:1074"
( $at_check_trace; ovn-nbctl lrp-get-enabled lrp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "enabled
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1074"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1077: ovn-nbctl lrp-set-enabled lrp0 xyzzy"
at_fn_check_prepare_trace "ovn-nbctl.at:1077"
( $at_check_trace; ovn-nbctl lrp-set-enabled lrp0 xyzzy
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: xyzzy: state must be \"enabled\" or \"disabled\"
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:1077"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1081: check_logs \"\""
at_fn_check_prepare_trace "ovn-nbctl.at:1081"
( $at_check_trace; check_logs ""
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1081"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1081: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn-nbctl.at:1081"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1081"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1081: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn-nbctl.at:1081"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1081"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   $as_echo "ovn-nbctl.at:1081: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-nbctl.at:1081: wait failed" >&5

    $as_echo "ovn-nbctl.at:1081" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-nbctl.at:1081"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2503
#AT_START_2504
at_fn_group_banner 2504 'ovn-nbctl.at:1086' \
  "ovn-nbctl - routes" "                             " 127
at_xfail=no
(
  $as_echo "2504. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1087: ovsdb-tool create ovn-nb.db \$abs_top_srcdir/ovn/ovn-nb.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create ovn-nb.db $abs_top_srcdir/ovn/ovn-nb.ovsschema" "ovn-nbctl.at:1087"
( $at_check_trace; ovsdb-tool create ovn-nb.db $abs_top_srcdir/ovn/ovn-nb.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1087"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1087: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db" "ovn-nbctl.at:1087"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1087"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1087: ovn-nbctl init"
at_fn_check_prepare_trace "ovn-nbctl.at:1087"
( $at_check_trace; ovn-nbctl init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1087"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1087: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-nbctl.at:1087"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1087"
$at_failed && at_fn_log_failure
$at_traceon; }




{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1089: ovn-nbctl lr-add lr0"
at_fn_check_prepare_trace "ovn-nbctl.at:1089"
( $at_check_trace; ovn-nbctl lr-add lr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1089"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1092: ovn-nbctl lr-route-add lr0 0.0.0.0/0 192.168.0.1"
at_fn_check_prepare_trace "ovn-nbctl.at:1092"
( $at_check_trace; ovn-nbctl lr-route-add lr0 0.0.0.0/0 192.168.0.1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1092"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1093: ovn-nbctl lr-route-add lr0 10.0.1.0/24 11.0.1.1 lp0"
at_fn_check_prepare_trace "ovn-nbctl.at:1093"
( $at_check_trace; ovn-nbctl lr-route-add lr0 10.0.1.0/24 11.0.1.1 lp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1093"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1094: ovn-nbctl lr-route-add lr0 10.0.0.1/24 11.0.0.2"
at_fn_check_prepare_trace "ovn-nbctl.at:1094"
( $at_check_trace; ovn-nbctl lr-route-add lr0 10.0.0.1/24 11.0.0.2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1094"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1097: ovn-nbctl lr-route-add lr0 10.0.0.111/24 11.0.0.1"
at_fn_check_prepare_trace "ovn-nbctl.at:1097"
( $at_check_trace; ovn-nbctl lr-route-add lr0 10.0.0.111/24 11.0.0.1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: duplicate prefix: 10.0.0.0/24
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:1097"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1100: ovn-nbctl lr-route-add lr0 10.0.0.111a/24 11.0.0.1"
at_fn_check_prepare_trace "ovn-nbctl.at:1100"
( $at_check_trace; ovn-nbctl lr-route-add lr0 10.0.0.111a/24 11.0.0.1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: bad prefix argument: 10.0.0.111a/24
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:1100"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1103: ovn-nbctl lr-route-add lr0 10.0.0.111/24a 11.0.0.1"
at_fn_check_prepare_trace "ovn-nbctl.at:1103"
( $at_check_trace; ovn-nbctl lr-route-add lr0 10.0.0.111/24a 11.0.0.1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: bad prefix argument: 10.0.0.111/24a
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:1103"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1106: ovn-nbctl lr-route-add lr0 10.0.0.111/24 11.0.0.1a"
at_fn_check_prepare_trace "ovn-nbctl.at:1106"
( $at_check_trace; ovn-nbctl lr-route-add lr0 10.0.0.111/24 11.0.0.1a
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: bad next hop argument: 11.0.0.1a
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:1106"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1109: ovn-nbctl lr-route-add lr0 10.0.0.111/24 11.0.0.1/24"
at_fn_check_prepare_trace "ovn-nbctl.at:1109"
( $at_check_trace; ovn-nbctl lr-route-add lr0 10.0.0.111/24 11.0.0.1/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: bad IPv4 nexthop argument: 11.0.0.1/24
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:1109"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1112: ovn-nbctl lr-route-add lr0 2001:0db8:1::/64 2001:0db8:0:f103::1/64"
at_fn_check_prepare_trace "ovn-nbctl.at:1112"
( $at_check_trace; ovn-nbctl lr-route-add lr0 2001:0db8:1::/64 2001:0db8:0:f103::1/64
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: bad IPv6 nexthop argument: 2001:0db8:0:f103::1/64
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:1112"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1116: ovn-nbctl --may-exist lr-route-add lr0 10.0.0.111/24 11.0.0.1"
at_fn_check_prepare_trace "ovn-nbctl.at:1116"
( $at_check_trace; ovn-nbctl --may-exist lr-route-add lr0 10.0.0.111/24 11.0.0.1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1116"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1117: ovn-nbctl --policy=src-ip lr-route-add lr0 9.16.1.0/24 11.0.0.1"
at_fn_check_prepare_trace "ovn-nbctl.at:1117"
( $at_check_trace; ovn-nbctl --policy=src-ip lr-route-add lr0 9.16.1.0/24 11.0.0.1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1117"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1119: ovn-nbctl lr-route-list lr0"
at_fn_check_prepare_trace "ovn-nbctl.at:1119"
( $at_check_trace; ovn-nbctl lr-route-list lr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "IPv4 Routes
              10.0.0.0/24                  11.0.0.1 dst-ip
              10.0.1.0/24                  11.0.1.1 dst-ip lp0
              9.16.1.0/24                  11.0.0.1 src-ip
                0.0.0.0/0               192.168.0.1 dst-ip
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1119"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1127: ovn-nbctl --may-exist lr-route-add lr0 10.0.0.111/24 11.0.0.1 lp1"
at_fn_check_prepare_trace "ovn-nbctl.at:1127"
( $at_check_trace; ovn-nbctl --may-exist lr-route-add lr0 10.0.0.111/24 11.0.0.1 lp1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1127"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1128: ovn-nbctl lr-route-list lr0"
at_fn_check_prepare_trace "ovn-nbctl.at:1128"
( $at_check_trace; ovn-nbctl lr-route-list lr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "IPv4 Routes
              10.0.0.0/24                  11.0.0.1 dst-ip lp1
              10.0.1.0/24                  11.0.1.1 dst-ip lp0
              9.16.1.0/24                  11.0.0.1 src-ip
                0.0.0.0/0               192.168.0.1 dst-ip
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1128"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1137: ovn-nbctl lr-route-del lr0 10.0.2.1/24"
at_fn_check_prepare_trace "ovn-nbctl.at:1137"
( $at_check_trace; ovn-nbctl lr-route-del lr0 10.0.2.1/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: no matching prefix: 10.0.2.0/24
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:1137"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1140: ovn-nbctl --if-exists lr-route-del lr0 10.0.2.1/24"
at_fn_check_prepare_trace "ovn-nbctl.at:1140"
( $at_check_trace; ovn-nbctl --if-exists lr-route-del lr0 10.0.2.1/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1140"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1142: ovn-nbctl lr-route-del lr0 10.0.1.1/24"
at_fn_check_prepare_trace "ovn-nbctl.at:1142"
( $at_check_trace; ovn-nbctl lr-route-del lr0 10.0.1.1/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1142"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1143: ovn-nbctl lr-route-del lr0 9.16.1.0/24"
at_fn_check_prepare_trace "ovn-nbctl.at:1143"
( $at_check_trace; ovn-nbctl lr-route-del lr0 9.16.1.0/24
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1143"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1145: ovn-nbctl lr-route-list lr0"
at_fn_check_prepare_trace "ovn-nbctl.at:1145"
( $at_check_trace; ovn-nbctl lr-route-list lr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "IPv4 Routes
              10.0.0.0/24                  11.0.0.1 dst-ip lp1
                0.0.0.0/0               192.168.0.1 dst-ip
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1145"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1151: ovn-nbctl lr-route-del lr0"
at_fn_check_prepare_trace "ovn-nbctl.at:1151"
( $at_check_trace; ovn-nbctl lr-route-del lr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1151"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1152: ovn-nbctl lr-route-list lr0"
at_fn_check_prepare_trace "ovn-nbctl.at:1152"
( $at_check_trace; ovn-nbctl lr-route-list lr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1152"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1156: ovn-nbctl lr-route-add lr0 0:0:0:0:0:0:0:0/0 2001:0db8:0:f101::1"
at_fn_check_prepare_trace "ovn-nbctl.at:1156"
( $at_check_trace; ovn-nbctl lr-route-add lr0 0:0:0:0:0:0:0:0/0 2001:0db8:0:f101::1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1156"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1157: ovn-nbctl lr-route-add lr0 2001:0db8:0::/64 2001:0db8:0:f102::1 lp0"
at_fn_check_prepare_trace "ovn-nbctl.at:1157"
( $at_check_trace; ovn-nbctl lr-route-add lr0 2001:0db8:0::/64 2001:0db8:0:f102::1 lp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1157"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1158: ovn-nbctl lr-route-add lr0 2001:0db8:1::/64 2001:0db8:0:f103::1"
at_fn_check_prepare_trace "ovn-nbctl.at:1158"
( $at_check_trace; ovn-nbctl lr-route-add lr0 2001:0db8:1::/64 2001:0db8:0:f103::1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1158"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1160: ovn-nbctl lr-route-list lr0"
at_fn_check_prepare_trace "ovn-nbctl.at:1160"
( $at_check_trace; ovn-nbctl lr-route-list lr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "IPv6 Routes
            2001:db8::/64        2001:db8:0:f102::1 dst-ip lp0
          2001:db8:1::/64        2001:db8:0:f103::1 dst-ip
                     ::/0        2001:db8:0:f101::1 dst-ip
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1160"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1167: ovn-nbctl lr-route-del lr0 2001:0db8:0::/64"
at_fn_check_prepare_trace "ovn-nbctl.at:1167"
( $at_check_trace; ovn-nbctl lr-route-del lr0 2001:0db8:0::/64
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1167"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1169: ovn-nbctl lr-route-list lr0"
at_fn_check_prepare_trace "ovn-nbctl.at:1169"
( $at_check_trace; ovn-nbctl lr-route-list lr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "IPv6 Routes
          2001:db8:1::/64        2001:db8:0:f103::1 dst-ip
                     ::/0        2001:db8:0:f101::1 dst-ip
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1169"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1175: ovn-nbctl lr-route-del lr0"
at_fn_check_prepare_trace "ovn-nbctl.at:1175"
( $at_check_trace; ovn-nbctl lr-route-del lr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1175"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1176: ovn-nbctl lr-route-list lr0"
at_fn_check_prepare_trace "ovn-nbctl.at:1176"
( $at_check_trace; ovn-nbctl lr-route-list lr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1176"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1180: ovn-nbctl lr-route-add lr0 0.0.0.0/0 192.168.0.1"
at_fn_check_prepare_trace "ovn-nbctl.at:1180"
( $at_check_trace; ovn-nbctl lr-route-add lr0 0.0.0.0/0 192.168.0.1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1180"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1181: ovn-nbctl lr-route-add lr0 10.0.1.1/24 11.0.1.1 lp0"
at_fn_check_prepare_trace "ovn-nbctl.at:1181"
( $at_check_trace; ovn-nbctl lr-route-add lr0 10.0.1.1/24 11.0.1.1 lp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1181"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1182: ovn-nbctl lr-route-add lr0 10.0.0.1/24 11.0.0.1"
at_fn_check_prepare_trace "ovn-nbctl.at:1182"
( $at_check_trace; ovn-nbctl lr-route-add lr0 10.0.0.1/24 11.0.0.1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1182"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1183: ovn-nbctl lr-route-add lr0 0:0:0:0:0:0:0:0/0 2001:0db8:0:f101::1"
at_fn_check_prepare_trace "ovn-nbctl.at:1183"
( $at_check_trace; ovn-nbctl lr-route-add lr0 0:0:0:0:0:0:0:0/0 2001:0db8:0:f101::1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1183"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1184: ovn-nbctl lr-route-add lr0 2001:0db8:0::/64 2001:0db8:0:f102::1 lp0"
at_fn_check_prepare_trace "ovn-nbctl.at:1184"
( $at_check_trace; ovn-nbctl lr-route-add lr0 2001:0db8:0::/64 2001:0db8:0:f102::1 lp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1184"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1185: ovn-nbctl lr-route-add lr0 2001:0db8:1::/64 2001:0db8:0:f103::1"
at_fn_check_prepare_trace "ovn-nbctl.at:1185"
( $at_check_trace; ovn-nbctl lr-route-add lr0 2001:0db8:1::/64 2001:0db8:0:f103::1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1185"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1187: ovn-nbctl lr-route-list lr0"
at_fn_check_prepare_trace "ovn-nbctl.at:1187"
( $at_check_trace; ovn-nbctl lr-route-list lr0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "IPv4 Routes
              10.0.0.0/24                  11.0.0.1 dst-ip
              10.0.1.0/24                  11.0.1.1 dst-ip lp0
                0.0.0.0/0               192.168.0.1 dst-ip

IPv6 Routes
            2001:db8::/64        2001:db8:0:f102::1 dst-ip lp0
          2001:db8:1::/64        2001:db8:0:f103::1 dst-ip
                     ::/0        2001:db8:0:f101::1 dst-ip
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1187"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1199: check_logs \"\""
at_fn_check_prepare_trace "ovn-nbctl.at:1199"
( $at_check_trace; check_logs ""
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1199"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1199: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn-nbctl.at:1199"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1199"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1199: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn-nbctl.at:1199"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1199"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   $as_echo "ovn-nbctl.at:1199: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-nbctl.at:1199: wait failed" >&5

    $as_echo "ovn-nbctl.at:1199" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-nbctl.at:1199"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2504
#AT_START_2505
at_fn_group_banner 2505 'ovn-nbctl.at:1204' \
  "ovn-nbctl - lsp types" "                          " 127
at_xfail=no
(
  $as_echo "2505. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1205: ovsdb-tool create ovn-nb.db \$abs_top_srcdir/ovn/ovn-nb.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create ovn-nb.db $abs_top_srcdir/ovn/ovn-nb.ovsschema" "ovn-nbctl.at:1205"
( $at_check_trace; ovsdb-tool create ovn-nb.db $abs_top_srcdir/ovn/ovn-nb.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1205"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1205: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db" "ovn-nbctl.at:1205"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1205"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1205: ovn-nbctl init"
at_fn_check_prepare_trace "ovn-nbctl.at:1205"
( $at_check_trace; ovn-nbctl init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1205"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1205: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-nbctl.at:1205"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1205"
$at_failed && at_fn_log_failure
$at_traceon; }




{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1207: ovn-nbctl ls-add ls0"
at_fn_check_prepare_trace "ovn-nbctl.at:1207"
( $at_check_trace; ovn-nbctl ls-add ls0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1207"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1208: ovn-nbctl lsp-add ls0 lp0"
at_fn_check_prepare_trace "ovn-nbctl.at:1208"
( $at_check_trace; ovn-nbctl lsp-add ls0 lp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1208"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1211: ovn-nbctl lsp-get-type lp0"
at_fn_check_prepare_trace "ovn-nbctl.at:1211"
( $at_check_trace; ovn-nbctl lsp-get-type lp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1211"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1217: ovn-nbctl lsp-set-type lp0 l2gateway"
at_fn_check_prepare_trace "ovn-nbctl.at:1217"
( $at_check_trace; ovn-nbctl lsp-set-type lp0 l2gateway
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1217"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1218: ovn-nbctl lsp-get-type lp0"
at_fn_check_prepare_trace "ovn-nbctl.at:1218"
( $at_check_trace; ovn-nbctl lsp-get-type lp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "l2gateway
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1218"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1222: ovn-nbctl lsp-set-type lp0 router"
at_fn_check_prepare_trace "ovn-nbctl.at:1222"
( $at_check_trace; ovn-nbctl lsp-set-type lp0 router
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1222"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1223: ovn-nbctl lsp-get-type lp0"
at_fn_check_prepare_trace "ovn-nbctl.at:1223"
( $at_check_trace; ovn-nbctl lsp-get-type lp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "router
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1223"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1227: ovn-nbctl lsp-set-type lp0 localnet"
at_fn_check_prepare_trace "ovn-nbctl.at:1227"
( $at_check_trace; ovn-nbctl lsp-set-type lp0 localnet
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1227"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1228: ovn-nbctl lsp-get-type lp0"
at_fn_check_prepare_trace "ovn-nbctl.at:1228"
( $at_check_trace; ovn-nbctl lsp-get-type lp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "localnet
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1228"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1232: ovn-nbctl lsp-set-type lp0 localport"
at_fn_check_prepare_trace "ovn-nbctl.at:1232"
( $at_check_trace; ovn-nbctl lsp-set-type lp0 localport
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1232"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1233: ovn-nbctl lsp-get-type lp0"
at_fn_check_prepare_trace "ovn-nbctl.at:1233"
( $at_check_trace; ovn-nbctl lsp-get-type lp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "localport
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1233"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1237: ovn-nbctl lsp-set-type lp0 vtep"
at_fn_check_prepare_trace "ovn-nbctl.at:1237"
( $at_check_trace; ovn-nbctl lsp-set-type lp0 vtep
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1237"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1238: ovn-nbctl lsp-get-type lp0"
at_fn_check_prepare_trace "ovn-nbctl.at:1238"
( $at_check_trace; ovn-nbctl lsp-get-type lp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "vtep
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1238"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1245: ovn-nbctl lsp-set-type lp0 l3gateway"
at_fn_check_prepare_trace "ovn-nbctl.at:1245"
( $at_check_trace; ovn-nbctl lsp-set-type lp0 l3gateway
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: Logical switch port type 'l3gateway' is unrecognized. Not setting type.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:1245"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1248: ovn-nbctl lsp-set-type lp0 patch"
at_fn_check_prepare_trace "ovn-nbctl.at:1248"
( $at_check_trace; ovn-nbctl lsp-set-type lp0 patch
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: Logical switch port type 'patch' is unrecognized. Not setting type.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:1248"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1251: ovn-nbctl lsp-set-type lp0 chassisredirect"
at_fn_check_prepare_trace "ovn-nbctl.at:1251"
( $at_check_trace; ovn-nbctl lsp-set-type lp0 chassisredirect
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: Logical switch port type 'chassisredirect' is unrecognized. Not setting type.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:1251"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1257: ovn-nbctl lsp-get-type lp0"
at_fn_check_prepare_trace "ovn-nbctl.at:1257"
( $at_check_trace; ovn-nbctl lsp-get-type lp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "vtep
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1257"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1262: ovn-nbctl lsp-set-type lp0 eggs"
at_fn_check_prepare_trace "ovn-nbctl.at:1262"
( $at_check_trace; ovn-nbctl lsp-set-type lp0 eggs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; $as_echo "ovn-nbctl: Logical switch port type 'eggs' is unrecognized. Not setting type.
" | \
  $at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/ovn-nbctl.at:1262"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1267: ovn-nbctl lsp-set-type lp0 \"\""
at_fn_check_prepare_trace "ovn-nbctl.at:1267"
( $at_check_trace; ovn-nbctl lsp-set-type lp0 ""
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1267"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1268: ovn-nbctl lsp-get-type lp0"
at_fn_check_prepare_trace "ovn-nbctl.at:1268"
( $at_check_trace; ovn-nbctl lsp-get-type lp0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1268"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1272: check_logs \"\""
at_fn_check_prepare_trace "ovn-nbctl.at:1272"
( $at_check_trace; check_logs ""
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1272"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1272: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn-nbctl.at:1272"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1272"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn-nbctl.at:1272: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn-nbctl.at:1272"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-nbctl.at:1272"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   $as_echo "ovn-nbctl.at:1272: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-nbctl.at:1272: wait failed" >&5

    $as_echo "ovn-nbctl.at:1272" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-nbctl.at:1272"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2505
#AT_START_2506
at_fn_group_banner 2506 'ovn-sbctl.at:37' \
  "ovn-sbctl - chassis commands" "                   " 128
at_xfail=no
(
  $as_echo "2506. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   for daemon in ovn-nb ovn-sb; do
      { set +x
$as_echo "$at_srcdir/ovn-sbctl.at:38: ovsdb-tool create \$daemon.db \$abs_top_srcdir/\${daemon%%-*}/\${daemon}.ovsschema"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ovn-sbctl.at:38"
( $at_check_trace; ovsdb-tool create $daemon.db $abs_top_srcdir/${daemon%%-*}/${daemon}.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:38"
$at_failed && at_fn_log_failure
$at_traceon; }

   done

      { set +x
$as_echo "$at_srcdir/ovn-sbctl.at:38: ovsdb-server --detach --no-chdir --pidfile=ovnnb_db.pid --unixctl=\$OVS_RUNDIR/ovnnb_db.ctl --log-file=ovsdb_nb.log --remote=punix:\$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db "
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile=ovnnb_db.pid --unixctl=$OVS_RUNDIR/ovnnb_db.ctl --log-file=ovsdb_nb.log --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db " "ovn-sbctl.at:38"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile=ovnnb_db.pid --unixctl=$OVS_RUNDIR/ovnnb_db.ctl --log-file=ovsdb_nb.log --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:38"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-sbctl.at:38: ovsdb-server --detach --no-chdir --pidfile=ovnsb_db.pid --unixctl=\$OVS_RUNDIR/ovnsb_db.ctl --log-file=ovsdb_sb.log --remote=punix:\$OVS_RUNDIR/ovnsb_db.sock ovn-sb.db"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile=ovnsb_db.pid --unixctl=$OVS_RUNDIR/ovnsb_db.ctl --log-file=ovsdb_sb.log --remote=punix:$OVS_RUNDIR/ovnsb_db.sock ovn-sb.db" "ovn-sbctl.at:38"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile=ovnsb_db.pid --unixctl=$OVS_RUNDIR/ovnsb_db.ctl --log-file=ovsdb_sb.log --remote=punix:$OVS_RUNDIR/ovnsb_db.sock ovn-sb.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:38"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovnnb_db.pid` `cat ovnsb_db.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-sbctl.at:38: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-sbctl.at:38"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:38"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovn-sbctl.at:38: ovn-northd --detach --pidfile --log-file --ovnnb-db=unix:\$OVS_RUNDIR/ovnnb_db.sock --ovnsb-db=unix:\$OVS_RUNDIR/ovnsb_db.sock"
at_fn_check_prepare_dynamic "ovn-northd --detach --pidfile --log-file --ovnnb-db=unix:$OVS_RUNDIR/ovnnb_db.sock --ovnsb-db=unix:$OVS_RUNDIR/ovnsb_db.sock" "ovn-sbctl.at:38"
( $at_check_trace; ovn-northd --detach --pidfile --log-file --ovnnb-db=unix:$OVS_RUNDIR/ovnnb_db.sock --ovnsb-db=unix:$OVS_RUNDIR/ovnsb_db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:38"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   on_exit "kill `cat ovn-northd.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-sbctl.at:38: sed < stderr '
/vlog|INFO|opened log file/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-sbctl.at:38"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:38"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }



ovn_init_db ovn-sb

{ set +x
$as_echo "$at_srcdir/ovn-sbctl.at:41: ovn-sbctl chassis-add ch0 geneve 1.2.3.4"
at_fn_check_prepare_trace "ovn-sbctl.at:41"
( $at_check_trace; ovn-sbctl chassis-add ch0 geneve 1.2.3.4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:41"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-sbctl.at:42: ovn-sbctl -f csv -d bare --no-headings --columns ip,type list encap | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-sbctl.at:42"
( $at_check_trace; ovn-sbctl -f csv -d bare --no-headings --columns ip,type list encap | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1.2.3.4,geneve
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:42"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-sbctl.at:47: ovn-sbctl chassis-add ch1 stt,geneve,vxlan 1.2.3.5"
at_fn_check_prepare_trace "ovn-sbctl.at:47"
( $at_check_trace; ovn-sbctl chassis-add ch1 stt,geneve,vxlan 1.2.3.5
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:47"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-sbctl.at:48: ovn-sbctl -f csv -d bare --no-headings --columns ip,type list encap | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-sbctl.at:48"
( $at_check_trace; ovn-sbctl -f csv -d bare --no-headings --columns ip,type list encap | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1.2.3.4,geneve
1.2.3.5,geneve
1.2.3.5,stt
1.2.3.5,vxlan
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:48"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-sbctl.at:56: ovn-sbctl chassis-del ch0"
at_fn_check_prepare_trace "ovn-sbctl.at:56"
( $at_check_trace; ovn-sbctl chassis-del ch0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:56"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-sbctl.at:57: ovn-sbctl -f csv -d bare --no-headings --columns ip,type list encap | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-sbctl.at:57"
( $at_check_trace; ovn-sbctl -f csv -d bare --no-headings --columns ip,type list encap | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1.2.3.5,geneve
1.2.3.5,stt
1.2.3.5,vxlan
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:57"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-sbctl.at:64: check_logs \"\""
at_fn_check_prepare_trace "ovn-sbctl.at:64"
( $at_check_trace; check_logs ""
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:64"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-sbctl.at:64: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn-sbctl.at:64"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:64"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn-sbctl.at:64: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn-sbctl.at:64"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:64"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }

   $as_echo "ovn-sbctl.at:64: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-sbctl.at:64: wait failed" >&5

    $as_echo "ovn-sbctl.at:64" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-sbctl.at:64"
fi

   { set +x
$as_echo "$at_srcdir/ovn-sbctl.at:64: test -e \$OVS_RUNDIR/ovnnb_db.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovnnb_db.pid" "ovn-sbctl.at:64"
( $at_check_trace; test -e $OVS_RUNDIR/ovnnb_db.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:64"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovnnb_db.pid)
   { set +x
$as_echo "$at_srcdir/ovn-sbctl.at:64: ovs-appctl --timeout=10 --target=\$OVS_RUNDIR/ovnnb_db.ctl exit"
at_fn_check_prepare_dynamic "ovs-appctl --timeout=10 --target=$OVS_RUNDIR/ovnnb_db.ctl exit" "ovn-sbctl.at:64"
( $at_check_trace; ovs-appctl --timeout=10 --target=$OVS_RUNDIR/ovnnb_db.ctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:64"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }

   $as_echo "ovn-sbctl.at:64: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-sbctl.at:64: wait failed" >&5

    $as_echo "ovn-sbctl.at:64" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-sbctl.at:64"
fi

   { set +x
$as_echo "$at_srcdir/ovn-sbctl.at:64: test -e \$OVS_RUNDIR/ovnsb_db.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovnsb_db.pid" "ovn-sbctl.at:64"
( $at_check_trace; test -e $OVS_RUNDIR/ovnsb_db.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:64"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovnsb_db.pid)
   { set +x
$as_echo "$at_srcdir/ovn-sbctl.at:64: ovs-appctl --timeout=10 --target=\$OVS_RUNDIR/ovnsb_db.ctl exit"
at_fn_check_prepare_dynamic "ovs-appctl --timeout=10 --target=$OVS_RUNDIR/ovnsb_db.ctl exit" "ovn-sbctl.at:64"
( $at_check_trace; ovs-appctl --timeout=10 --target=$OVS_RUNDIR/ovnsb_db.ctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:64"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }

   $as_echo "ovn-sbctl.at:64: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-sbctl.at:64: wait failed" >&5

    $as_echo "ovn-sbctl.at:64" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-sbctl.at:64"
fi

as ovn-sb
{ set +x
$as_echo "$at_srcdir/ovn-sbctl.at:66: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn-sbctl.at:66"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:66"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn-sbctl.at:66: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn-sbctl.at:66"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:66"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }

   $as_echo "ovn-sbctl.at:66: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-sbctl.at:66: wait failed" >&5

    $as_echo "ovn-sbctl.at:66" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-sbctl.at:66"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2506
#AT_START_2507
at_fn_group_banner 2507 'ovn-sbctl.at:71' \
  "ovn-sbctl" "                                      " 128
at_xfail=no
(
  $as_echo "2507. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   for daemon in ovn-nb ovn-sb; do
      { set +x
$as_echo "$at_srcdir/ovn-sbctl.at:72: ovsdb-tool create \$daemon.db \$abs_top_srcdir/\${daemon%%-*}/\${daemon}.ovsschema"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ovn-sbctl.at:72"
( $at_check_trace; ovsdb-tool create $daemon.db $abs_top_srcdir/${daemon%%-*}/${daemon}.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:72"
$at_failed && at_fn_log_failure
$at_traceon; }

   done

      { set +x
$as_echo "$at_srcdir/ovn-sbctl.at:72: ovsdb-server --detach --no-chdir --pidfile=ovnnb_db.pid --unixctl=\$OVS_RUNDIR/ovnnb_db.ctl --log-file=ovsdb_nb.log --remote=punix:\$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db "
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile=ovnnb_db.pid --unixctl=$OVS_RUNDIR/ovnnb_db.ctl --log-file=ovsdb_nb.log --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db " "ovn-sbctl.at:72"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile=ovnnb_db.pid --unixctl=$OVS_RUNDIR/ovnnb_db.ctl --log-file=ovsdb_nb.log --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:72"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-sbctl.at:72: ovsdb-server --detach --no-chdir --pidfile=ovnsb_db.pid --unixctl=\$OVS_RUNDIR/ovnsb_db.ctl --log-file=ovsdb_sb.log --remote=punix:\$OVS_RUNDIR/ovnsb_db.sock ovn-sb.db"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile=ovnsb_db.pid --unixctl=$OVS_RUNDIR/ovnsb_db.ctl --log-file=ovsdb_sb.log --remote=punix:$OVS_RUNDIR/ovnsb_db.sock ovn-sb.db" "ovn-sbctl.at:72"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile=ovnsb_db.pid --unixctl=$OVS_RUNDIR/ovnsb_db.ctl --log-file=ovsdb_sb.log --remote=punix:$OVS_RUNDIR/ovnsb_db.sock ovn-sb.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:72"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovnnb_db.pid` `cat ovnsb_db.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-sbctl.at:72: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-sbctl.at:72"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:72"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovn-sbctl.at:72: ovn-northd --detach --pidfile --log-file --ovnnb-db=unix:\$OVS_RUNDIR/ovnnb_db.sock --ovnsb-db=unix:\$OVS_RUNDIR/ovnsb_db.sock"
at_fn_check_prepare_dynamic "ovn-northd --detach --pidfile --log-file --ovnnb-db=unix:$OVS_RUNDIR/ovnnb_db.sock --ovnsb-db=unix:$OVS_RUNDIR/ovnsb_db.sock" "ovn-sbctl.at:72"
( $at_check_trace; ovn-northd --detach --pidfile --log-file --ovnnb-db=unix:$OVS_RUNDIR/ovnnb_db.sock --ovnsb-db=unix:$OVS_RUNDIR/ovnsb_db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:72"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }

   on_exit "kill `cat ovn-northd.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-sbctl.at:72: sed < stderr '
/vlog|INFO|opened log file/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-sbctl.at:72"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:72"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }




{ set +x
$as_echo "$at_srcdir/ovn-sbctl.at:74: ovn-nbctl ls-add br-test"
at_fn_check_prepare_trace "ovn-sbctl.at:74"
( $at_check_trace; ovn-nbctl ls-add br-test
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:74"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-sbctl.at:75: ovn-nbctl lsp-add br-test vif0"
at_fn_check_prepare_trace "ovn-sbctl.at:75"
( $at_check_trace; ovn-nbctl lsp-add br-test vif0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:75"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-sbctl.at:76: ovn-nbctl lsp-set-addresses vif0 f0:ab:cd:ef:01:02"
at_fn_check_prepare_trace "ovn-sbctl.at:76"
( $at_check_trace; ovn-nbctl lsp-set-addresses vif0 f0:ab:cd:ef:01:02
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:76"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-sbctl.at:77: ovn-sbctl chassis-add ch0 stt 1.2.3.5"
at_fn_check_prepare_trace "ovn-sbctl.at:77"
( $at_check_trace; ovn-sbctl chassis-add ch0 stt 1.2.3.5
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:77"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-sbctl.at:78: ovn-nbctl --wait=sb sync"
at_fn_check_prepare_trace "ovn-sbctl.at:78"
( $at_check_trace; ovn-nbctl --wait=sb sync
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:78"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-sbctl.at:79: ovn-sbctl lsp-bind vif0 ch0"
at_fn_check_prepare_trace "ovn-sbctl.at:79"
( $at_check_trace; ovn-sbctl lsp-bind vif0 ch0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:79"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-sbctl.at:81: ovn-sbctl show"
at_fn_check_prepare_trace "ovn-sbctl.at:81"
( $at_check_trace; ovn-sbctl show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Chassis \"ch0\"
    Encap stt
        ip: \"1.2.3.5\"
        options: {csum=\"true\"}
    Port_Binding \"vif0\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:81"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }


# adds another 'vif1'
{ set +x
$as_echo "$at_srcdir/ovn-sbctl.at:90: ovn-nbctl --wait=sb lsp-add br-test vif1"
at_fn_check_prepare_trace "ovn-sbctl.at:90"
( $at_check_trace; ovn-nbctl --wait=sb lsp-add br-test vif1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:90"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-sbctl.at:91: ovn-nbctl lsp-set-addresses vif1 f0:ab:cd:ef:01:03"
at_fn_check_prepare_trace "ovn-sbctl.at:91"
( $at_check_trace; ovn-nbctl lsp-set-addresses vif1 f0:ab:cd:ef:01:03
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:91"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-sbctl.at:92: ovn-sbctl lsp-bind vif1 ch0"
at_fn_check_prepare_trace "ovn-sbctl.at:92"
( $at_check_trace; ovn-sbctl lsp-bind vif1 ch0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:92"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-sbctl.at:94: ovn-sbctl show | sed 's/vif[0-9]/vif/'"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-sbctl.at:94"
( $at_check_trace; ovn-sbctl show | sed 's/vif[0-9]/vif/'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Chassis \"ch0\"
    Encap stt
        ip: \"1.2.3.5\"
        options: {csum=\"true\"}
    Port_Binding \"vif\"
    Port_Binding \"vif\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:94"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }


# deletes 'vif1'
{ set +x
$as_echo "$at_srcdir/ovn-sbctl.at:104: ovn-nbctl lsp-del vif1"
at_fn_check_prepare_trace "ovn-sbctl.at:104"
( $at_check_trace; ovn-nbctl lsp-del vif1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:104"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-sbctl.at:105: ovn-nbctl --wait=sb sync"
at_fn_check_prepare_trace "ovn-sbctl.at:105"
( $at_check_trace; ovn-nbctl --wait=sb sync
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:105"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-sbctl.at:107: ovn-sbctl show"
at_fn_check_prepare_trace "ovn-sbctl.at:107"
( $at_check_trace; ovn-sbctl show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Chassis \"ch0\"
    Encap stt
        ip: \"1.2.3.5\"
        options: {csum=\"true\"}
    Port_Binding \"vif0\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }


uuid=$(ovn-sbctl --columns=_uuid list Chassis ch0 | cut -d ':' -f2 | tr -d ' ')
{ set +x
$as_echo "$at_srcdir/ovn-sbctl.at:116: ovn-sbctl --columns=logical_port,mac,chassis list Port_Binding"
at_fn_check_prepare_trace "ovn-sbctl.at:116"
( $at_check_trace; ovn-sbctl --columns=logical_port,mac,chassis list Port_Binding
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "logical_port        : \"vif0\"
mac                 : [\"f0:ab:cd:ef:01:02\"]
chassis             : ${uuid}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:116"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }


# test the passing down of logical port type and options.
{ set +x
$as_echo "$at_srcdir/ovn-sbctl.at:123: ovn-nbctl --wait=sb lsp-add br-test vtep0"
at_fn_check_prepare_trace "ovn-sbctl.at:123"
( $at_check_trace; ovn-nbctl --wait=sb lsp-add br-test vtep0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:123"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-sbctl.at:124: ovn-nbctl lsp-set-type vtep0 vtep"
at_fn_check_prepare_trace "ovn-sbctl.at:124"
( $at_check_trace; ovn-nbctl lsp-set-type vtep0 vtep
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:124"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-sbctl.at:125: ovn-nbctl lsp-set-options vtep0 vtep_physical_switch=p0 vtep_logical_switch=l0"
at_fn_check_prepare_trace "ovn-sbctl.at:125"
( $at_check_trace; ovn-nbctl lsp-set-options vtep0 vtep_physical_switch=p0 vtep_logical_switch=l0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:125"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-sbctl.at:127: ovn-sbctl --timeout=10 wait-until Port_Binding vtep0 options!={}"
at_fn_check_prepare_trace "ovn-sbctl.at:127"
( $at_check_trace; ovn-sbctl --timeout=10 wait-until Port_Binding vtep0 options!={}
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:127"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-sbctl.at:128: ovn-sbctl --columns=logical_port,mac,type,options list Port_Binding vtep0"
at_fn_check_prepare_trace "ovn-sbctl.at:128"
( $at_check_trace; ovn-sbctl --columns=logical_port,mac,type,options list Port_Binding vtep0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "logical_port        : \"vtep0\"
mac                 : []
type                : vtep
options             : {vtep_logical_switch=\"l0\", vtep_physical_switch=\"p0\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:128"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-sbctl.at:135: check_logs \"\""
at_fn_check_prepare_trace "ovn-sbctl.at:135"
( $at_check_trace; check_logs ""
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:135"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-sbctl.at:135: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn-sbctl.at:135"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:135"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn-sbctl.at:135: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn-sbctl.at:135"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:135"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }

   $as_echo "ovn-sbctl.at:135: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-sbctl.at:135: wait failed" >&5

    $as_echo "ovn-sbctl.at:135" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-sbctl.at:135"
fi

   { set +x
$as_echo "$at_srcdir/ovn-sbctl.at:135: test -e \$OVS_RUNDIR/ovnnb_db.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovnnb_db.pid" "ovn-sbctl.at:135"
( $at_check_trace; test -e $OVS_RUNDIR/ovnnb_db.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:135"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovnnb_db.pid)
   { set +x
$as_echo "$at_srcdir/ovn-sbctl.at:135: ovs-appctl --timeout=10 --target=\$OVS_RUNDIR/ovnnb_db.ctl exit"
at_fn_check_prepare_dynamic "ovs-appctl --timeout=10 --target=$OVS_RUNDIR/ovnnb_db.ctl exit" "ovn-sbctl.at:135"
( $at_check_trace; ovs-appctl --timeout=10 --target=$OVS_RUNDIR/ovnnb_db.ctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:135"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }

   $as_echo "ovn-sbctl.at:135: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-sbctl.at:135: wait failed" >&5

    $as_echo "ovn-sbctl.at:135" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-sbctl.at:135"
fi

   { set +x
$as_echo "$at_srcdir/ovn-sbctl.at:135: test -e \$OVS_RUNDIR/ovnsb_db.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovnsb_db.pid" "ovn-sbctl.at:135"
( $at_check_trace; test -e $OVS_RUNDIR/ovnsb_db.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:135"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovnsb_db.pid)
   { set +x
$as_echo "$at_srcdir/ovn-sbctl.at:135: ovs-appctl --timeout=10 --target=\$OVS_RUNDIR/ovnsb_db.ctl exit"
at_fn_check_prepare_dynamic "ovs-appctl --timeout=10 --target=$OVS_RUNDIR/ovnsb_db.ctl exit" "ovn-sbctl.at:135"
( $at_check_trace; ovs-appctl --timeout=10 --target=$OVS_RUNDIR/ovnsb_db.ctl exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-sbctl.at:135"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovn-northd.log"
$at_traceon; }

   $as_echo "ovn-sbctl.at:135: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-sbctl.at:135: wait failed" >&5

    $as_echo "ovn-sbctl.at:135" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-sbctl.at:135"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2507
#AT_START_2508
at_fn_group_banner 2508 'ovn-controller.at:3' \
  "ovn-controller - ovn-bridge-mappings" "           " 129
at_xfail=no
(
  $as_echo "2508. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ovn_init_db ovn-sb
net_add n1
sim_add hv
as hv
ovs-vsctl \
    -- add-br br-phys \
    -- add-br br-eth0 \
    -- add-br br-eth1 \
    -- add-br br-eth2
ovn_attach n1 br-phys 192.168.0.1

# Waits until the OVS database contains exactly the specified patch ports.
# Each argument should be of the form BRIDGE PORT PEER.
check_patches () {
    # Generate code to check that the set of patch ports is exactly as
    # specified.
    echo 'ovs-vsctl -f csv -d bare --no-headings --columns=name find Interface type=patch | sort' > query
    for patch
    do
        echo $patch
    done | cut -d' ' -f 2 | sort > expout

    # Generate code to verify that the configuration of each patch
    # port is correct.
    for patch
    do
        set $patch; bridge=$1 port=$2 peer=$3
        echo >>query "ovs-vsctl iface-to-br $port -- get Interface $port type options"
        echo >>expout "$bridge
patch
{peer=$peer}"
    done

    # Run the query until we get the expected result (or until a timeout).
    #
    # (We use sed to drop all "s from output because ovs-vsctl quotes some
    # of the port names but not others.)



    $as_echo "ovn-controller.at:45: waiting until . ./query | sed 's/\"//g' > stdout #\"
                    diff -u stdout expout >/dev/null..." >&5
ovs_wait_cond () {
    . ./query | sed 's/"//g' > stdout #"
                    diff -u stdout expout >/dev/null
}
if ovs_wait; then :
else
    $as_echo "ovn-controller.at:45: wait failed" >&5

    $as_echo "ovn-controller.at:45" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller.at:45"
fi

}

# Make sure that the configured bridge mappings in the Open_vSwitch db
# is mirrored into the Chassis record in the OVN_Southbound db.
check_bridge_mappings () {
    local_mappings=$1
    sysid=$(ovs-vsctl get Open_vSwitch . external_ids:system-id)
    chassis_mappings=$(ovn-sbctl get Chassis ${sysid} external_ids:ovn-bridge-mappings | sed -e 's/\"//g')
    echo $local_mappings
    echo $chassis_mappings
    { set +x
$as_echo "$at_srcdir/ovn-controller.at:57: test \"\${local_mappings}\" = \"\${chassis_mappings}\""
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ovn-controller.at:57"
( $at_check_trace; test "${local_mappings}" = "${chassis_mappings}"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:57"
$at_failed && at_fn_log_failure  \
"query" \
"expout" \
"stdout"
$at_traceon; }

}

# Initially there should be no patch ports.
check_patches

# Configure two ovn-bridge mappings, but no patch ports should be created yet
{ set +x
$as_echo "$at_srcdir/ovn-controller.at:64: ovs-vsctl set Open_vSwitch . external-ids:ovn-bridge-mappings=physnet1:br-eth0,physnet2:br-eth1"
at_fn_check_prepare_trace "ovn-controller.at:64"
( $at_check_trace; ovs-vsctl set Open_vSwitch . external-ids:ovn-bridge-mappings=physnet1:br-eth0,physnet2:br-eth1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:64"
$at_failed && at_fn_log_failure  \
"query" \
"expout" \
"stdout"
$at_traceon; }

check_bridge_mappings "physnet1:br-eth0,physnet2:br-eth1"
check_patches

# Create a localnet port, but we should still have no patch ports, as they
# won't be created until there's a localnet port on a logical switch with
# another logical port bound to this chassis.
ovn-sbctl \
    -- --id=@dp101 create Datapath_Binding tunnel_key=101 \
    -- create Port_Binding datapath=@dp101 logical_port=localnet1 tunnel_key=1 \
        type=localnet options:network_name=physnet1
check_patches

# Create a localnet port on a logical switch with a port bound to this chassis.
# Now we should get some patch ports created.
ovn-sbctl \
    -- --id=@dp102 create Datapath_Binding tunnel_key=102 \
    -- create Port_Binding datapath=@dp102 logical_port=localnet2 tunnel_key=1 \
        type=localnet options:network_name=physnet1 \
    -- create Port_Binding datapath=@dp102 logical_port=localvif2 tunnel_key=2
ovs-vsctl add-port br-int localvif2 -- set Interface localvif2 external_ids:iface-id=localvif2
check_patches \
    'br-int  patch-br-int-to-localnet2 patch-localnet2-to-br-int' \
    'br-eth0 patch-localnet2-to-br-int patch-br-int-to-localnet2'

# Add logical patch ports to connect new logical datapath.
#
# OVN no longer uses OVS patch ports to implement logical patch ports, so
# the set of OVS patch ports doesn't change.
{ set +x
$as_echo "$at_srcdir/ovn-controller.at:93: ovn-sbctl \\
    -- --id=@dp1 create Datapath_Binding tunnel_key=1 \\
    -- --id=@dp2 create Datapath_Binding tunnel_key=2 \\
    -- create Port_Binding datapath=@dp1 logical_port=foo tunnel_key=1 type=patch options:peer=bar \\
    -- create Port_Binding datapath=@dp2 logical_port=bar tunnel_key=2 type=patch options:peer=foo \\
    -- create Port_Binding datapath=@dp1 logical_port=dp1vif tunnel_key=3 \\
| uuidfilt"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller.at:93"
( $at_check_trace; ovn-sbctl \
    -- --id=@dp1 create Datapath_Binding tunnel_key=1 \
    -- --id=@dp2 create Datapath_Binding tunnel_key=2 \
    -- create Port_Binding datapath=@dp1 logical_port=foo tunnel_key=1 type=patch options:peer=bar \
    -- create Port_Binding datapath=@dp2 logical_port=bar tunnel_key=2 type=patch options:peer=foo \
    -- create Port_Binding datapath=@dp1 logical_port=dp1vif tunnel_key=3 \
| uuidfilt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "<0>
<1>
<2>
<3>
<4>
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:93"
$at_failed && at_fn_log_failure  \
"query" \
"expout" \
"stdout"
$at_traceon; }

ovs-vsctl add-port br-int dp1vif -- set Interface dp1vif external_ids:iface-id=dp1vif
check_patches \
    'br-int  patch-br-int-to-localnet2 patch-localnet2-to-br-int' \
    'br-eth0 patch-localnet2-to-br-int patch-br-int-to-localnet2'

# Delete the mapping and the ovn-bridge-mapping patch ports should go away.
{ set +x
$as_echo "$at_srcdir/ovn-controller.at:111: ovs-vsctl remove Open_vSwitch . external-ids ovn-bridge-mappings"
at_fn_check_prepare_trace "ovn-controller.at:111"
( $at_check_trace; ovs-vsctl remove Open_vSwitch . external-ids ovn-bridge-mappings
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:111"
$at_failed && at_fn_log_failure  \
"query" \
"expout" \
"stdout"
$at_traceon; }

check_bridge_mappings
check_patches

# Gracefully terminate daemons

    as hv
    if test "hv" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn-controller.at:116: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn-controller.at:116"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:116"
$at_failed && at_fn_log_failure  \
"query" \
"expout" \
"stdout"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller.at:116: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn-controller.at:116"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:116"
$at_failed && at_fn_log_failure  \
"query" \
"expout" \
"stdout"
$at_traceon; }

   $as_echo "ovn-controller.at:116: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller.at:116: wait failed" >&5

    $as_echo "ovn-controller.at:116" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller.at:116"
fi

        { set +x
$as_echo "$at_srcdir/ovn-controller.at:116: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn-controller.at:116"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:116"
$at_failed && at_fn_log_failure  \
"query" \
"expout" \
"stdout"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller.at:116: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn-controller.at:116"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:116"
$at_failed && at_fn_log_failure  \
"query" \
"expout" \
"stdout"
$at_traceon; }

   $as_echo "ovn-controller.at:116: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller.at:116: wait failed" >&5

    $as_echo "ovn-controller.at:116" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller.at:116"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn-controller.at:116: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn-controller.at:116"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:116"
$at_failed && at_fn_log_failure  \
"query" \
"expout" \
"stdout"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller.at:116: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn-controller.at:116"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:116"
$at_failed && at_fn_log_failure  \
"query" \
"expout" \
"stdout"
$at_traceon; }

   $as_echo "ovn-controller.at:116: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller.at:116: wait failed" >&5

    $as_echo "ovn-controller.at:116" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller.at:116"
fi

    fi

    as hv
    { set +x
$as_echo "$at_srcdir/ovn-controller.at:116: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn-controller.at:116"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:116"
$at_failed && at_fn_log_failure  \
"query" \
"expout" \
"stdout"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller.at:116: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn-controller.at:116"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:116"
$at_failed && at_fn_log_failure  \
"query" \
"expout" \
"stdout"
$at_traceon; }

   $as_echo "ovn-controller.at:116: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller.at:116: wait failed" >&5

    $as_echo "ovn-controller.at:116" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller.at:116"
fi

    { set +x
$as_echo "$at_srcdir/ovn-controller.at:116: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn-controller.at:116"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:116"
$at_failed && at_fn_log_failure  \
"query" \
"expout" \
"stdout"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller.at:116: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn-controller.at:116"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:116"
$at_failed && at_fn_log_failure  \
"query" \
"expout" \
"stdout"
$at_traceon; }

   $as_echo "ovn-controller.at:116: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller.at:116: wait failed" >&5

    $as_echo "ovn-controller.at:116" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller.at:116"
fi




    as main
    { set +x
$as_echo "$at_srcdir/ovn-controller.at:117: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn-controller.at:117"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:117"
$at_failed && at_fn_log_failure  \
"query" \
"expout" \
"stdout"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller.at:117: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn-controller.at:117"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:117"
$at_failed && at_fn_log_failure  \
"query" \
"expout" \
"stdout"
$at_traceon; }

   $as_echo "ovn-controller.at:117: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller.at:117: wait failed" >&5

    $as_echo "ovn-controller.at:117" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller.at:117"
fi

    { set +x
$as_echo "$at_srcdir/ovn-controller.at:117: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn-controller.at:117"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:117"
$at_failed && at_fn_log_failure  \
"query" \
"expout" \
"stdout"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller.at:117: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn-controller.at:117"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:117"
$at_failed && at_fn_log_failure  \
"query" \
"expout" \
"stdout"
$at_traceon; }

   $as_echo "ovn-controller.at:117: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller.at:117: wait failed" >&5

    $as_echo "ovn-controller.at:117" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller.at:117"
fi


as ovn-sb
{ set +x
$as_echo "$at_srcdir/ovn-controller.at:119: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn-controller.at:119"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:119"
$at_failed && at_fn_log_failure  \
"query" \
"expout" \
"stdout"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller.at:119: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn-controller.at:119"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:119"
$at_failed && at_fn_log_failure  \
"query" \
"expout" \
"stdout"
$at_traceon; }

   $as_echo "ovn-controller.at:119: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller.at:119: wait failed" >&5

    $as_echo "ovn-controller.at:119" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller.at:119"
fi


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2508
#AT_START_2509
at_fn_group_banner 2509 'ovn-controller.at:125' \
  "ovn-controller - Chassis external_ids" "          " 129
at_xfail=no
(
  $as_echo "2509. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ovn_init_db ovn-sb

net_add n1
sim_add hv
as hv
ovs-vsctl \
    -- add-br br-phys \
    -- add-br br-eth0 \
    -- add-br br-eth1 \
    -- add-br br-eth2
ovn_attach n1 br-phys 192.168.0.1

sysid=$(ovs-vsctl get Open_vSwitch . external_ids:system-id)

# Make sure that the datapath_type set in the Bridge table
# is mirrored into the Chassis record in the OVN_Southbound db.
check_datapath_type () {
    datapath_type=$1
    chassis_datapath_type=$(ovn-sbctl get Chassis ${sysid} external_ids:datapath-type | sed -e 's/"//g') #"
    test "${datapath_type}" = "${chassis_datapath_type}"
}

$as_echo "ovn-controller.at:149: waiting until check_datapath_type \"\"..." >&5
ovs_wait_cond () {
    check_datapath_type ""
}
if ovs_wait; then :
else
    $as_echo "ovn-controller.at:149: wait failed" >&5

    $as_echo "ovn-controller.at:149" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller.at:149"
fi


ovs-vsctl set Bridge br-int datapath-type=foo
$as_echo "ovn-controller.at:152: waiting until check_datapath_type foo..." >&5
ovs_wait_cond () {
    check_datapath_type foo
}
if ovs_wait; then :
else
    $as_echo "ovn-controller.at:152: wait failed" >&5

    $as_echo "ovn-controller.at:152" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller.at:152"
fi


# Change "ovn-bridge-mappings" value. It should not change the "datapath-type".
ovs-vsctl set Open_vSwitch . external_ids:ovn-bridge-mappings=foo-mapping
check_datapath_type foo

ovs-vsctl set Bridge br-int datapath-type=bar
$as_echo "ovn-controller.at:159: waiting until check_datapath_type bar..." >&5
ovs_wait_cond () {
    check_datapath_type bar
}
if ovs_wait; then :
else
    $as_echo "ovn-controller.at:159: wait failed" >&5

    $as_echo "ovn-controller.at:159" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller.at:159"
fi


ovs-vsctl set Bridge br-int datapath-type=\"\"
$as_echo "ovn-controller.at:162: waiting until check_datapath_type \"\"..." >&5
ovs_wait_cond () {
    check_datapath_type ""
}
if ovs_wait; then :
else
    $as_echo "ovn-controller.at:162: wait failed" >&5

    $as_echo "ovn-controller.at:162" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller.at:162"
fi


expected_iface_types=$(ovs-vsctl get Open_vSwitch . iface_types|sed 's/[][ ]//g')
chassis_iface_types=$(ovn-sbctl get Chassis ${sysid} external_ids:iface-types | sed -e 's/\"//g')
echo "chassis_iface_types = ${chassis_iface_types}"
{ set +x
$as_echo "$at_srcdir/ovn-controller.at:167: test \"\${expected_iface_types}\" = \"\${chassis_iface_types}\""
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ovn-controller.at:167"
( $at_check_trace; test "${expected_iface_types}" = "${chassis_iface_types}"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:167"
$at_failed && at_fn_log_failure
$at_traceon; }


# Change the value of external_ids:iface-types using ovn-sbctl.
# ovn-controller should again set it back to proper one.
ovn-sbctl set Chassis ${sysid} external_ids:iface-types="foo"
$as_echo "ovn-controller.at:172: waiting until
    chassis_iface_types=\$(ovn-sbctl get Chassis \${sysid} external_ids:iface-types | sed -e 's/\\\"//g')
    echo \"chassis_iface_types = \${chassis_iface_types}\"
    test \"\${expected_iface_types}\" = \"\${chassis_iface_types}\"
..." >&5
ovs_wait_cond () {

    chassis_iface_types=$(ovn-sbctl get Chassis ${sysid} external_ids:iface-types | sed -e 's/\"//g')
    echo "chassis_iface_types = ${chassis_iface_types}"
    test "${expected_iface_types}" = "${chassis_iface_types}"

}
if ovs_wait; then :
else
    $as_echo "ovn-controller.at:172: wait failed" >&5

    $as_echo "ovn-controller.at:172" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller.at:172"
fi


# Gracefully terminate daemons

    as hv
    if test "hv" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn-controller.at:179: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn-controller.at:179"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:179"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller.at:179: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn-controller.at:179"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:179"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn-controller.at:179: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller.at:179: wait failed" >&5

    $as_echo "ovn-controller.at:179" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller.at:179"
fi

        { set +x
$as_echo "$at_srcdir/ovn-controller.at:179: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn-controller.at:179"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:179"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller.at:179: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn-controller.at:179"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:179"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn-controller.at:179: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller.at:179: wait failed" >&5

    $as_echo "ovn-controller.at:179" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller.at:179"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn-controller.at:179: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn-controller.at:179"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:179"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller.at:179: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn-controller.at:179"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:179"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn-controller.at:179: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller.at:179: wait failed" >&5

    $as_echo "ovn-controller.at:179" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller.at:179"
fi

    fi

    as hv
    { set +x
$as_echo "$at_srcdir/ovn-controller.at:179: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn-controller.at:179"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:179"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller.at:179: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn-controller.at:179"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:179"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn-controller.at:179: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller.at:179: wait failed" >&5

    $as_echo "ovn-controller.at:179" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller.at:179"
fi

    { set +x
$as_echo "$at_srcdir/ovn-controller.at:179: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn-controller.at:179"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:179"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller.at:179: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn-controller.at:179"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:179"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn-controller.at:179: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller.at:179: wait failed" >&5

    $as_echo "ovn-controller.at:179" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller.at:179"
fi




    as main
    { set +x
$as_echo "$at_srcdir/ovn-controller.at:180: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn-controller.at:180"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:180"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller.at:180: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn-controller.at:180"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:180"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn-controller.at:180: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller.at:180: wait failed" >&5

    $as_echo "ovn-controller.at:180" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller.at:180"
fi

    { set +x
$as_echo "$at_srcdir/ovn-controller.at:180: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn-controller.at:180"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:180"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller.at:180: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn-controller.at:180"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:180"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn-controller.at:180: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller.at:180: wait failed" >&5

    $as_echo "ovn-controller.at:180" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller.at:180"
fi


as ovn-sb
{ set +x
$as_echo "$at_srcdir/ovn-controller.at:182: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn-controller.at:182"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:182"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller.at:182: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn-controller.at:182"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:182"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn-controller.at:182: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller.at:182: wait failed" >&5

    $as_echo "ovn-controller.at:182" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller.at:182"
fi


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2509
#AT_START_2510
at_fn_group_banner 2510 'ovn-controller.at:188' \
  "ovn-controller - change Encap properties" "       " 129
at_xfail=no
(
  $as_echo "2510. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


ovn_init_db ovn-sb

net_add n1
sim_add hv
as hv
ovs-vsctl \
    -- add-br br-phys \
    -- add-br br-eth0 \
    -- add-br br-eth1 \
    -- add-br br-eth2
ovn_attach n1 br-phys 192.168.0.1

check_tunnel_property () {
    test "`ovs-vsctl get interface ovn-fakech-0 $1`" = "$2"
}

# Start off with a remote chassis supporting STT
ovn-sbctl chassis-add fakechassis stt 192.168.0.2
$as_echo "ovn-controller.at:208: waiting until check_tunnel_property type stt..." >&5
ovs_wait_cond () {
    check_tunnel_property type stt
}
if ovs_wait; then :
else
    $as_echo "ovn-controller.at:208: wait failed" >&5

    $as_echo "ovn-controller.at:208" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller.at:208"
fi


# See if we switch to Geneve as the first choice when it is available
encap_uuid=$(ovn-sbctl add chassis fakechassis encaps @encap -- --id=@encap create encap type=geneve ip="127.0.0.1")
$as_echo "ovn-controller.at:212: waiting until check_tunnel_property type geneve..." >&5
ovs_wait_cond () {
    check_tunnel_property type geneve
}
if ovs_wait; then :
else
    $as_echo "ovn-controller.at:212: wait failed" >&5

    $as_echo "ovn-controller.at:212" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller.at:212"
fi


# Check that changes within an encap row are propagated
ovn-sbctl set encap ${encap_uuid} ip=192.168.0.2
$as_echo "ovn-controller.at:216: waiting until check_tunnel_property options:remote_ip \"\\\"192.168.0.2\\\"\"..." >&5
ovs_wait_cond () {
    check_tunnel_property options:remote_ip "\"192.168.0.2\""
}
if ovs_wait; then :
else
    $as_echo "ovn-controller.at:216: wait failed" >&5

    $as_echo "ovn-controller.at:216" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller.at:216"
fi


# Change the type on the OVS side and check than OVN fixes it
ovs-vsctl set interface ovn-fakech-0 type=vxlan
$as_echo "ovn-controller.at:220: waiting until check_tunnel_property type geneve..." >&5
ovs_wait_cond () {
    check_tunnel_property type geneve
}
if ovs_wait; then :
else
    $as_echo "ovn-controller.at:220: wait failed" >&5

    $as_echo "ovn-controller.at:220" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller.at:220"
fi


# Delete the port entirely and it should be resurrected
ovs-vsctl del-port ovn-fakech-0
$as_echo "ovn-controller.at:224: waiting until check_tunnel_property type geneve..." >&5
ovs_wait_cond () {
    check_tunnel_property type geneve
}
if ovs_wait; then :
else
    $as_echo "ovn-controller.at:224: wait failed" >&5

    $as_echo "ovn-controller.at:224" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller.at:224"
fi


# Gracefully terminate daemons

    as hv
    if test "hv" = "vtep"; then
        { set +x
$as_echo "$at_srcdir/ovn-controller.at:227: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn-controller.at:227"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:227"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller.at:227: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn-controller.at:227"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:227"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn-controller.at:227: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller.at:227: wait failed" >&5

    $as_echo "ovn-controller.at:227" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller.at:227"
fi

        { set +x
$as_echo "$at_srcdir/ovn-controller.at:227: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn-controller.at:227"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:227"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller.at:227: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn-controller.at:227"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:227"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn-controller.at:227: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller.at:227: wait failed" >&5

    $as_echo "ovn-controller.at:227" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller.at:227"
fi

    else
        { set +x
$as_echo "$at_srcdir/ovn-controller.at:227: test -e \$OVS_RUNDIR/ovn-controller.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller.pid" "ovn-controller.at:227"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:227"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller.at:227: ovs-appctl --timeout=10 -t ovn-controller exit"
at_fn_check_prepare_trace "ovn-controller.at:227"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:227"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn-controller.at:227: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller.at:227: wait failed" >&5

    $as_echo "ovn-controller.at:227" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller.at:227"
fi

    fi

    as hv
    { set +x
$as_echo "$at_srcdir/ovn-controller.at:227: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn-controller.at:227"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:227"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller.at:227: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn-controller.at:227"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:227"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn-controller.at:227: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller.at:227: wait failed" >&5

    $as_echo "ovn-controller.at:227" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller.at:227"
fi

    { set +x
$as_echo "$at_srcdir/ovn-controller.at:227: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn-controller.at:227"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:227"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller.at:227: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn-controller.at:227"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:227"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn-controller.at:227: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller.at:227: wait failed" >&5

    $as_echo "ovn-controller.at:227" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller.at:227"
fi




    as main
    { set +x
$as_echo "$at_srcdir/ovn-controller.at:228: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn-controller.at:228"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:228"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller.at:228: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn-controller.at:228"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:228"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn-controller.at:228: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller.at:228: wait failed" >&5

    $as_echo "ovn-controller.at:228" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller.at:228"
fi

    { set +x
$as_echo "$at_srcdir/ovn-controller.at:228: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn-controller.at:228"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:228"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller.at:228: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn-controller.at:228"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:228"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn-controller.at:228: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller.at:228: wait failed" >&5

    $as_echo "ovn-controller.at:228" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller.at:228"
fi


as ovn-sb
{ set +x
$as_echo "$at_srcdir/ovn-controller.at:230: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn-controller.at:230"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:230"
$at_failed && at_fn_log_failure
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller.at:230: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn-controller.at:230"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller.at:230"
$at_failed && at_fn_log_failure
$at_traceon; }

   $as_echo "ovn-controller.at:230: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller.at:230: wait failed" >&5

    $as_echo "ovn-controller.at:230" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller.at:230"
fi


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2510
#AT_START_2511
at_fn_group_banner 2511 'ovn-controller-vtep.at:106' \
  "ovn-controller-vtep - chassis" "                  " 130
at_xfail=no
(
  $as_echo "2511. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



   # this will cause skip when 'make check' using Windows setup.
   $as_echo "ovn-controller-vtep.at:107" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn-controller-vtep.at:107"

      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:107: ovsdb-tool create vswitchd.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create vswitchd.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovn-controller-vtep.at:107"
( $at_check_trace; ovsdb-tool create vswitchd.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:107"
$at_failed && at_fn_log_failure
$at_traceon; }

   for daemon in ovn-nb ovn-sb vtep; do
      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:107: ovsdb-tool create \$daemon.db \$abs_top_srcdir/\${daemon%%-*}/\${daemon}.ovsschema"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ovn-controller-vtep.at:107"
( $at_check_trace; ovsdb-tool create $daemon.db $abs_top_srcdir/${daemon%%-*}/${daemon}.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:107"
$at_failed && at_fn_log_failure
$at_traceon; }

   done

      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:107: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock vswitchd.db vtep.db"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock vswitchd.db vtep.db" "ovn-controller-vtep.at:107"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock vswitchd.db vtep.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:107"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:107: ovsdb-server --detach --no-chdir --pidfile=ovsdb-nb-server.pid --log-file=ovsdb-nb-server.log --remote=punix:\$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile=ovsdb-nb-server.pid --log-file=ovsdb-nb-server.log --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db" "ovn-controller-vtep.at:107"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile=ovsdb-nb-server.pid --log-file=ovsdb-nb-server.log --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:107"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:107: ovsdb-server --detach --no-chdir --pidfile=ovsdb-sb-server.pid --log-file=ovsdb-sb-server.log --remote=punix:\$OVS_RUNDIR/ovnsb_db.sock ovn-sb.db ovn-sb.db"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile=ovsdb-sb-server.pid --log-file=ovsdb-sb-server.log --remote=punix:$OVS_RUNDIR/ovnsb_db.sock ovn-sb.db ovn-sb.db" "ovn-controller-vtep.at:107"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile=ovsdb-sb-server.pid --log-file=ovsdb-sb-server.log --remote=punix:$OVS_RUNDIR/ovnsb_db.sock ovn-sb.db ovn-sb.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:107"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid` `cat ovsdb-nb-server.pid` `cat ovsdb-sb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:107: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller-vtep.at:107"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:107"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:107: ovs-vswitchd --enable-dummy=system --disable-system --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif"
at_fn_check_prepare_trace "ovn-controller-vtep.at:107"
( $at_check_trace; ovs-vswitchd --enable-dummy=system --disable-system --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:107: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller-vtep.at:107"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:107: ovs-vsctl -- add-br br-vtep \\
              -- set bridge br-vtep datapath-type=dummy other-config:datapath-id=fedcba9876543210 other-config:hwaddr=aa:55:aa:55:00:00 protocols=[OpenFlow10,OpenFlow11,OpenFlow12,OpenFlow13,OpenFlow14,OpenFlow15] fail-mode=secure \\
              -- add-port br-vtep p0 -- set Interface p0 type=dummy ofport_request=1 \\
              -- add-port br-vtep p1 -- set Interface p1 type=dummy ofport_request=2"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller-vtep.at:107"
( $at_check_trace; ovs-vsctl -- add-br br-vtep \
              -- set bridge br-vtep datapath-type=dummy other-config:datapath-id=fedcba9876543210 other-config:hwaddr=aa:55:aa:55:00:00 protocols=[OpenFlow10,OpenFlow11,OpenFlow12,OpenFlow13,OpenFlow14,OpenFlow15] fail-mode=secure \
              -- add-port br-vtep p0 -- set Interface p0 type=dummy ofport_request=1 \
              -- add-port br-vtep p1 -- set Interface p1 type=dummy ofport_request=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:107: vtep-ctl add-ps br-vtep -- set Physical_Switch br-vtep tunnel_ips=1.2.3.4"
at_fn_check_prepare_trace "ovn-controller-vtep.at:107"
( $at_check_trace; vtep-ctl add-ps br-vtep -- set Physical_Switch br-vtep tunnel_ips=1.2.3.4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:107: ovs-vtep --log-file=ovs-vtep.log --pidfile=ovs-vtep.pid --detach br-vtep \\"
at_fn_check_prepare_trace "ovn-controller-vtep.at:107"
( $at_check_trace; ovs-vtep --log-file=ovs-vtep.log --pidfile=ovs-vtep.pid --detach br-vtep \
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   on_exit "kill `cat ovs-vtep.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:107: sed < stderr '
/vlog|INFO|opened log file/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller-vtep.at:107"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   # waits until ovs-vtep starts up.
   $as_echo "ovn-controller-vtep.at:107: waiting until test -n \"\`vtep-ctl show | grep Physical_Port\`\"..." >&5
ovs_wait_cond () {
    test -n "`vtep-ctl show | grep Physical_Port`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:107: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:107" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:107"
fi


      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:107: ovn-nbctl ls-add br-test"
at_fn_check_prepare_trace "ovn-controller-vtep.at:107"
( $at_check_trace; ovn-nbctl ls-add br-test
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:107: ovn-northd --detach --pidfile --log-file"
at_fn_check_prepare_trace "ovn-controller-vtep.at:107"
( $at_check_trace; ovn-northd --detach --pidfile --log-file
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   on_exit "kill `cat ovn-northd.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:107: sed < stderr '
/vlog|INFO|opened log file/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller-vtep.at:107"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:107: ovn-controller-vtep --detach --pidfile --log-file --vtep-db=unix:\$OVS_RUNDIR/db.sock --ovnsb-db=unix:\$OVS_RUNDIR/ovnsb_db.sock"
at_fn_check_prepare_dynamic "ovn-controller-vtep --detach --pidfile --log-file --vtep-db=unix:$OVS_RUNDIR/db.sock --ovnsb-db=unix:$OVS_RUNDIR/ovnsb_db.sock" "ovn-controller-vtep.at:107"
( $at_check_trace; ovn-controller-vtep --detach --pidfile --log-file --vtep-db=unix:$OVS_RUNDIR/db.sock --ovnsb-db=unix:$OVS_RUNDIR/ovnsb_db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log"
$at_traceon; }


   on_exit "kill `cat ovn-controller-vtep.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:107: sed < stderr '
/vlog|INFO|opened log file/d
/reconnect|INFO|/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller-vtep.at:107"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/reconnect|INFO|/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:107"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }



# verifies the initial ovn-sb db configuration.
$as_echo "ovn-controller-vtep.at:110: waiting until test -n \"\`ovn-sbctl show | grep Chassis\`\"..." >&5
ovs_wait_cond () {
    test -n "`ovn-sbctl show | grep Chassis`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:110: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:110" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:110"
fi

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:111: ovn-sbctl show"
at_fn_check_prepare_trace "ovn-controller-vtep.at:111"
( $at_check_trace; ovn-sbctl show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Chassis br-vtep
    Encap vxlan
        ip: \"1.2.3.4\"
        options: {csum=\"false\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:111"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


# deletes the chassis via ovn-sbctl and check that it is readded back
# with the log.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:120: ovn-sbctl chassis-del br-vtep"
at_fn_check_prepare_trace "ovn-controller-vtep.at:120"
( $at_check_trace; ovn-sbctl chassis-del br-vtep
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:120"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

$as_echo "ovn-controller-vtep.at:121: waiting until test -n \"\`grep WARN ovn-controller-vtep.log\`\"..." >&5
ovs_wait_cond () {
    test -n "`grep WARN ovn-controller-vtep.log`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:121: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:121" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:121"
fi

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:122: sed -n 's/^.*\\(|WARN|.*\\)\$/\\1/p' ovn-controller-vtep.log"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-controller-vtep.at:122"
( $at_check_trace; sed -n 's/^.*\(|WARN|.*\)$/\1/p' ovn-controller-vtep.log
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "|WARN|Chassis for VTEP physical switch (br-vtep) disappears, maybe deleted by ovn-sbctl, adding it back
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:122"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


# changes the tunnel_ip on physical switch, watches the update of chassis's
# encap.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:128: vtep-ctl set Physical_Switch br-vtep tunnel_ips=1.2.3.5"
at_fn_check_prepare_trace "ovn-controller-vtep.at:128"
( $at_check_trace; vtep-ctl set Physical_Switch br-vtep tunnel_ips=1.2.3.5
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:128"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

$as_echo "ovn-controller-vtep.at:129: waiting until test -n \"\`ovn-sbctl show | grep 1\\.2\\.3\\.5\`\"..." >&5
ovs_wait_cond () {
    test -n "`ovn-sbctl show | grep 1\.2\.3\.5`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:129: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:129" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:129"
fi

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:130: ovn-sbctl --columns=ip list Encap | cut -d ':' -f2 | tr -d ' '"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-controller-vtep.at:130"
( $at_check_trace; ovn-sbctl --columns=ip list Encap | cut -d ':' -f2 | tr -d ' '
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"1.2.3.5\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:130"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


# adds vlan_bindings to physical ports.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:135: vtep-ctl add-ls lswitch0 -- bind-ls br-vtep p0 100 lswitch0 -- bind-ls br-vtep p0 200 lswitch0 -- bind-ls br-vtep p1 300 lswitch0"
at_fn_check_prepare_trace "ovn-controller-vtep.at:135"
( $at_check_trace; vtep-ctl add-ls lswitch0 -- bind-ls br-vtep p0 100 lswitch0 -- bind-ls br-vtep p0 200 lswitch0 -- bind-ls br-vtep p1 300 lswitch0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:135"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

$as_echo "ovn-controller-vtep.at:136: waiting until test -n \"\`ovn-sbctl list Chassis | grep -- lswitch0\`\"..." >&5
ovs_wait_cond () {
    test -n "`ovn-sbctl list Chassis | grep -- lswitch0`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:136: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:136" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:136"
fi

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:137: ovn-sbctl --columns=vtep_logical_switches list Chassis | cut -d ':' -f2 | tr -d ' ' "
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-controller-vtep.at:137"
( $at_check_trace; ovn-sbctl --columns=vtep_logical_switches list Chassis | cut -d ':' -f2 | tr -d ' '
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"lswitch0\"]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:137"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


# adds another logical switch and new vlan_bindings.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:142: vtep-ctl add-ls lswitch1 -- bind-ls br-vtep p0 300 lswitch1"
at_fn_check_prepare_trace "ovn-controller-vtep.at:142"
( $at_check_trace; vtep-ctl add-ls lswitch1 -- bind-ls br-vtep p0 300 lswitch1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:142"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

$as_echo "ovn-controller-vtep.at:143: waiting until test -n \"\`ovn-sbctl list Chassis | grep -- lswitch1\`\"..." >&5
ovs_wait_cond () {
    test -n "`ovn-sbctl list Chassis | grep -- lswitch1`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:143: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:143" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:143"
fi

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:144: ovn-sbctl --columns=vtep_logical_switches list Chassis | cut -d ':' -f2 | tr -d ' '"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-controller-vtep.at:144"
( $at_check_trace; ovn-sbctl --columns=vtep_logical_switches list Chassis | cut -d ':' -f2 | tr -d ' '
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"lswitch0\",\"lswitch1\"]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:144"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


# unbinds one port from lswitch0, nothing should change.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:149: vtep-ctl unbind-ls br-vtep p0 200"
at_fn_check_prepare_trace "ovn-controller-vtep.at:149"
( $at_check_trace; vtep-ctl unbind-ls br-vtep p0 200
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:149"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

$as_echo "ovn-controller-vtep.at:150: waiting until test -z \"\`vtep-ctl --columns=vlan_bindings list physical_port p0 | grep -- '200='\`\"..." >&5
ovs_wait_cond () {
    test -z "`vtep-ctl --columns=vlan_bindings list physical_port p0 | grep -- '200='`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:150: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:150" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:150"
fi

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:151: ovn-sbctl --columns=vtep_logical_switches list Chassis | cut -d ':' -f2 | tr -d ' ' "
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-controller-vtep.at:151"
( $at_check_trace; ovn-sbctl --columns=vtep_logical_switches list Chassis | cut -d ':' -f2 | tr -d ' '
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"lswitch0\",\"lswitch1\"]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:151"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


# unbinds all ports from lswitch0.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:156: vtep-ctl unbind-ls br-vtep p0 100 -- unbind-ls br-vtep p1 300"
at_fn_check_prepare_trace "ovn-controller-vtep.at:156"
( $at_check_trace; vtep-ctl unbind-ls br-vtep p0 100 -- unbind-ls br-vtep p1 300
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:156"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

$as_echo "ovn-controller-vtep.at:157: waiting until test -z \"\`ovn-sbctl list Chassis | grep -- br-vtep_lswitch0\`\"..." >&5
ovs_wait_cond () {
    test -z "`ovn-sbctl list Chassis | grep -- br-vtep_lswitch0`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:157: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:157" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:157"
fi

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:158: ovn-sbctl --columns=vtep_logical_switches list Chassis | cut -d ':' -f2 | tr -d ' ' "
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-controller-vtep.at:158"
( $at_check_trace; ovn-sbctl --columns=vtep_logical_switches list Chassis | cut -d ':' -f2 | tr -d ' '
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[\"lswitch1\"]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:158"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


# unbinds all ports from lswitch1.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:163: vtep-ctl unbind-ls br-vtep p0 300"
at_fn_check_prepare_trace "ovn-controller-vtep.at:163"
( $at_check_trace; vtep-ctl unbind-ls br-vtep p0 300
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:163"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

$as_echo "ovn-controller-vtep.at:164: waiting until test -z \"\`ovn-sbctl list Chassis | grep -- br-vtep_lswitch1\`\"..." >&5
ovs_wait_cond () {
    test -z "`ovn-sbctl list Chassis | grep -- br-vtep_lswitch1`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:164: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:164" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:164"
fi

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:165: ovn-sbctl --columns=vtep_logical_switches list Chassis | cut -d ':' -f2 | tr -d ' '"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-controller-vtep.at:165"
( $at_check_trace; ovn-sbctl --columns=vtep_logical_switches list Chassis | cut -d ':' -f2 | tr -d ' '
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "[]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:165"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:169: check_logs \"/Chassis for VTEP physical switch (br-vtep) disappears/d\""
at_fn_check_prepare_trace "ovn-controller-vtep.at:169"
( $at_check_trace; check_logs "/Chassis for VTEP physical switch (br-vtep) disappears/d"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:169"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:169: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn-controller-vtep.at:169"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:169"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:169: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn-controller-vtep.at:169"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:169"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   $as_echo "ovn-controller-vtep.at:169: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:169: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:169" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:169"
fi

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:169: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn-controller-vtep.at:169"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:169"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:169: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn-controller-vtep.at:169"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:169"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   $as_echo "ovn-controller-vtep.at:169: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:169: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:169" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:169"
fi

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:169: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn-controller-vtep.at:169"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:169"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:169: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn-controller-vtep.at:169"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:169"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   $as_echo "ovn-controller-vtep.at:169: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:169: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:169" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:169"
fi

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:169: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn-controller-vtep.at:169"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:169"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:169: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn-controller-vtep.at:169"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:169"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   $as_echo "ovn-controller-vtep.at:169: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:169: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:169" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:169"
fi

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:169: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn-controller-vtep.at:169"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:169"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:169: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn-controller-vtep.at:169"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:169"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   $as_echo "ovn-controller-vtep.at:169: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:169: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:169" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:169"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2511
#AT_START_2512
at_fn_group_banner 2512 'ovn-controller-vtep.at:174' \
  "ovn-controller-vtep - binding 1" "                " 130
at_xfail=no
(
  $as_echo "2512. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



   # this will cause skip when 'make check' using Windows setup.
   $as_echo "ovn-controller-vtep.at:175" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn-controller-vtep.at:175"

      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:175: ovsdb-tool create vswitchd.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create vswitchd.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovn-controller-vtep.at:175"
( $at_check_trace; ovsdb-tool create vswitchd.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:175"
$at_failed && at_fn_log_failure
$at_traceon; }

   for daemon in ovn-nb ovn-sb vtep; do
      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:175: ovsdb-tool create \$daemon.db \$abs_top_srcdir/\${daemon%%-*}/\${daemon}.ovsschema"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ovn-controller-vtep.at:175"
( $at_check_trace; ovsdb-tool create $daemon.db $abs_top_srcdir/${daemon%%-*}/${daemon}.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:175"
$at_failed && at_fn_log_failure
$at_traceon; }

   done

      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:175: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock vswitchd.db vtep.db"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock vswitchd.db vtep.db" "ovn-controller-vtep.at:175"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock vswitchd.db vtep.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:175"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:175: ovsdb-server --detach --no-chdir --pidfile=ovsdb-nb-server.pid --log-file=ovsdb-nb-server.log --remote=punix:\$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile=ovsdb-nb-server.pid --log-file=ovsdb-nb-server.log --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db" "ovn-controller-vtep.at:175"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile=ovsdb-nb-server.pid --log-file=ovsdb-nb-server.log --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:175"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:175: ovsdb-server --detach --no-chdir --pidfile=ovsdb-sb-server.pid --log-file=ovsdb-sb-server.log --remote=punix:\$OVS_RUNDIR/ovnsb_db.sock ovn-sb.db ovn-sb.db"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile=ovsdb-sb-server.pid --log-file=ovsdb-sb-server.log --remote=punix:$OVS_RUNDIR/ovnsb_db.sock ovn-sb.db ovn-sb.db" "ovn-controller-vtep.at:175"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile=ovsdb-sb-server.pid --log-file=ovsdb-sb-server.log --remote=punix:$OVS_RUNDIR/ovnsb_db.sock ovn-sb.db ovn-sb.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:175"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid` `cat ovsdb-nb-server.pid` `cat ovsdb-sb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:175: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller-vtep.at:175"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:175"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:175: ovs-vswitchd --enable-dummy=system --disable-system --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif"
at_fn_check_prepare_trace "ovn-controller-vtep.at:175"
( $at_check_trace; ovs-vswitchd --enable-dummy=system --disable-system --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:175"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:175: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller-vtep.at:175"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:175"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:175: ovs-vsctl -- add-br br-vtep \\
              -- set bridge br-vtep datapath-type=dummy other-config:datapath-id=fedcba9876543210 other-config:hwaddr=aa:55:aa:55:00:00 protocols=[OpenFlow10,OpenFlow11,OpenFlow12,OpenFlow13,OpenFlow14,OpenFlow15] fail-mode=secure \\
              -- add-port br-vtep p0 -- set Interface p0 type=dummy ofport_request=1 \\
              -- add-port br-vtep p1 -- set Interface p1 type=dummy ofport_request=2"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller-vtep.at:175"
( $at_check_trace; ovs-vsctl -- add-br br-vtep \
              -- set bridge br-vtep datapath-type=dummy other-config:datapath-id=fedcba9876543210 other-config:hwaddr=aa:55:aa:55:00:00 protocols=[OpenFlow10,OpenFlow11,OpenFlow12,OpenFlow13,OpenFlow14,OpenFlow15] fail-mode=secure \
              -- add-port br-vtep p0 -- set Interface p0 type=dummy ofport_request=1 \
              -- add-port br-vtep p1 -- set Interface p1 type=dummy ofport_request=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:175"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:175: vtep-ctl add-ps br-vtep -- set Physical_Switch br-vtep tunnel_ips=1.2.3.4"
at_fn_check_prepare_trace "ovn-controller-vtep.at:175"
( $at_check_trace; vtep-ctl add-ps br-vtep -- set Physical_Switch br-vtep tunnel_ips=1.2.3.4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:175"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:175: ovs-vtep --log-file=ovs-vtep.log --pidfile=ovs-vtep.pid --detach br-vtep \\"
at_fn_check_prepare_trace "ovn-controller-vtep.at:175"
( $at_check_trace; ovs-vtep --log-file=ovs-vtep.log --pidfile=ovs-vtep.pid --detach br-vtep \
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:175"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   on_exit "kill `cat ovs-vtep.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:175: sed < stderr '
/vlog|INFO|opened log file/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller-vtep.at:175"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:175"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   # waits until ovs-vtep starts up.
   $as_echo "ovn-controller-vtep.at:175: waiting until test -n \"\`vtep-ctl show | grep Physical_Port\`\"..." >&5
ovs_wait_cond () {
    test -n "`vtep-ctl show | grep Physical_Port`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:175: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:175" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:175"
fi


      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:175: ovn-nbctl ls-add br-test"
at_fn_check_prepare_trace "ovn-controller-vtep.at:175"
( $at_check_trace; ovn-nbctl ls-add br-test
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:175"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:175: ovn-northd --detach --pidfile --log-file"
at_fn_check_prepare_trace "ovn-controller-vtep.at:175"
( $at_check_trace; ovn-northd --detach --pidfile --log-file
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:175"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   on_exit "kill `cat ovn-northd.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:175: sed < stderr '
/vlog|INFO|opened log file/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller-vtep.at:175"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:175"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:175: ovn-controller-vtep --detach --pidfile --log-file --vtep-db=unix:\$OVS_RUNDIR/db.sock --ovnsb-db=unix:\$OVS_RUNDIR/ovnsb_db.sock"
at_fn_check_prepare_dynamic "ovn-controller-vtep --detach --pidfile --log-file --vtep-db=unix:$OVS_RUNDIR/db.sock --ovnsb-db=unix:$OVS_RUNDIR/ovnsb_db.sock" "ovn-controller-vtep.at:175"
( $at_check_trace; ovn-controller-vtep --detach --pidfile --log-file --vtep-db=unix:$OVS_RUNDIR/db.sock --ovnsb-db=unix:$OVS_RUNDIR/ovnsb_db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:175"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log"
$at_traceon; }


   on_exit "kill `cat ovn-controller-vtep.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:175: sed < stderr '
/vlog|INFO|opened log file/d
/reconnect|INFO|/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller-vtep.at:175"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/reconnect|INFO|/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:175"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }



# adds logical switch 'lswitch0' and vlan_bindings.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:178: vtep-ctl add-ls lswitch0 -- bind-ls br-vtep p0 100 lswitch0 -- bind-ls br-vtep p1 300 lswitch0"
at_fn_check_prepare_trace "ovn-controller-vtep.at:178"
( $at_check_trace; vtep-ctl add-ls lswitch0 -- bind-ls br-vtep p0 100 lswitch0 -- bind-ls br-vtep p1 300 lswitch0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:178"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

# adds logical switch port in ovn-nb database, and sets the type and options.

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:180: ovn-nbctl lsp-add br-test br-vtep_lswitch0"
at_fn_check_prepare_trace "ovn-controller-vtep.at:180"
( $at_check_trace; ovn-nbctl lsp-add br-test br-vtep_lswitch0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:180"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:180: ovn-nbctl lsp-set-type br-vtep_lswitch0 vtep"
at_fn_check_prepare_trace "ovn-controller-vtep.at:180"
( $at_check_trace; ovn-nbctl lsp-set-type br-vtep_lswitch0 vtep
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:180"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:180: ovn-nbctl lsp-set-options br-vtep_lswitch0 vtep-physical-switch=br-vtep vtep-logical-switch=lswitch0"
at_fn_check_prepare_trace "ovn-controller-vtep.at:180"
( $at_check_trace; ovn-nbctl lsp-set-options br-vtep_lswitch0 vtep-physical-switch=br-vtep vtep-logical-switch=lswitch0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:180"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


ovn-sbctl --timeout=10 wait-until Port_Binding br-vtep_lswitch0 chassis!='[]'
# should see one binding, associated to chassis of 'br-vtep'.
chassis_uuid=$(ovn-sbctl --columns=_uuid list Chassis br-vtep | cut -d ':' -f2 | tr -d ' ')
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:184: ovn-sbctl --columns=chassis list Port_Binding br-vtep_lswitch0 | cut -d ':' -f2 | tr -d ' '"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-controller-vtep.at:184"
( $at_check_trace; ovn-sbctl --columns=chassis list Port_Binding br-vtep_lswitch0 | cut -d ':' -f2 | tr -d ' '
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${chassis_uuid}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:184"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


# adds another logical switch 'lswitch1' and vlan_bindings.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:189: vtep-ctl add-ls lswitch1 -- bind-ls br-vtep p0 200 lswitch1"
at_fn_check_prepare_trace "ovn-controller-vtep.at:189"
( $at_check_trace; vtep-ctl add-ls lswitch1 -- bind-ls br-vtep p0 200 lswitch1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:189"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

# adds logical switch port in ovn-nb database for lswitch1.

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:191: ovn-nbctl lsp-add br-test br-vtep_lswitch1"
at_fn_check_prepare_trace "ovn-controller-vtep.at:191"
( $at_check_trace; ovn-nbctl lsp-add br-test br-vtep_lswitch1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:191: ovn-nbctl lsp-set-type br-vtep_lswitch1 vtep"
at_fn_check_prepare_trace "ovn-controller-vtep.at:191"
( $at_check_trace; ovn-nbctl lsp-set-type br-vtep_lswitch1 vtep
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:191: ovn-nbctl lsp-set-options br-vtep_lswitch1 vtep-physical-switch=br-vtep vtep-logical-switch=lswitch1"
at_fn_check_prepare_trace "ovn-controller-vtep.at:191"
( $at_check_trace; ovn-nbctl lsp-set-options br-vtep_lswitch1 vtep-physical-switch=br-vtep vtep-logical-switch=lswitch1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


ovn-sbctl --timeout=10 wait-until Port_Binding br-vtep_lswitch1 chassis!='[]'
# This is allowed, but not recommended, to have two vlan_bindings (to different vtep logical switches)
# from one vtep gateway physical port in one ovn-nb logical swithch.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:195: ovn-sbctl --columns=chassis list Port_Binding | cut -d ':' -f2 | tr -d ' ' | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-controller-vtep.at:195"
( $at_check_trace; ovn-sbctl --columns=chassis list Port_Binding | cut -d ':' -f2 | tr -d ' ' | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "
${chassis_uuid}
${chassis_uuid}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:195"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


# adds another logical switch port in ovn-nb database for lswitch0.

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:202: ovn-nbctl lsp-add br-test br-vtep_lswitch0_dup"
at_fn_check_prepare_trace "ovn-controller-vtep.at:202"
( $at_check_trace; ovn-nbctl lsp-add br-test br-vtep_lswitch0_dup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:202"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:202: ovn-nbctl lsp-set-type br-vtep_lswitch0_dup vtep"
at_fn_check_prepare_trace "ovn-controller-vtep.at:202"
( $at_check_trace; ovn-nbctl lsp-set-type br-vtep_lswitch0_dup vtep
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:202"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:202: ovn-nbctl lsp-set-options br-vtep_lswitch0_dup vtep-physical-switch=br-vtep vtep-logical-switch=lswitch0"
at_fn_check_prepare_trace "ovn-controller-vtep.at:202"
( $at_check_trace; ovn-nbctl lsp-set-options br-vtep_lswitch0_dup vtep-physical-switch=br-vtep vtep-logical-switch=lswitch0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:202"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


ovn-sbctl --timeout=10 wait-until Port_Binding br-vtep_lswitch0_dup chassis!='[]'
# it is not allowed to have more than one ovn-nb logical port for the same
# vtep logical switch on a vtep gateway chassis, so should still see only
# two port_binding entries bound.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:207: ovn-sbctl --columns=chassis list Port_Binding | cut -d ':' -f2 | tr -d ' ' | sort | sort -d"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-controller-vtep.at:207"
( $at_check_trace; ovn-sbctl --columns=chassis list Port_Binding | cut -d ':' -f2 | tr -d ' ' | sort | sort -d
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "

[]
${chassis_uuid}
${chassis_uuid}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:207"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

# confirms the warning log.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:215: sed -n 's/^.*\\(|WARN|.*\\)\$/\\1/p' ovn-controller-vtep.log | sed 's/([-_0-9a-z][-_0-9a-z]*)/()/g' | uniq"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-controller-vtep.at:215"
( $at_check_trace; sed -n 's/^.*\(|WARN|.*\)$/\1/p' ovn-controller-vtep.log | sed 's/([-_0-9a-z][-_0-9a-z]*)/()/g' | uniq
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "|WARN|logical switch (), on vtep gateway chassis () has already been associated with logical port (), ignore logical port ()
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:215"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


# deletes physical ports from vtep.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:220: ovs-vsctl del-port p0 -- del-port p1"
at_fn_check_prepare_trace "ovn-controller-vtep.at:220"
( $at_check_trace; ovs-vsctl del-port p0 -- del-port p1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:220"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

$as_echo "ovn-controller-vtep.at:221: waiting until test -z \"\`ovn-sbctl list Chassis | grep -- br-vtep_lswitch\`\"..." >&5
ovs_wait_cond () {
    test -z "`ovn-sbctl list Chassis | grep -- br-vtep_lswitch`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:221: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:221" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:221"
fi

$as_echo "ovn-controller-vtep.at:222: waiting until test -z \"\`vtep-ctl list physical_port p0\`\"..." >&5
ovs_wait_cond () {
    test -z "`vtep-ctl list physical_port p0`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:222: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:222" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:222"
fi

$as_echo "ovn-controller-vtep.at:223: waiting until test -z \"\`vtep-ctl list physical_port p1\`\"..." >&5
ovs_wait_cond () {
    test -z "`vtep-ctl list physical_port p1`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:223: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:223" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:223"
fi

# should see empty chassis column in both binding entries.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:225: ovn-sbctl --columns=chassis list Port_Binding | cut -d ':' -f2 | tr -d ' ' | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-controller-vtep.at:225"
( $at_check_trace; ovn-sbctl --columns=chassis list Port_Binding | cut -d ':' -f2 | tr -d ' ' | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "

[]
[]
[]
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:225"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:233: check_logs \"/has already been associated with logical port/d\""
at_fn_check_prepare_trace "ovn-controller-vtep.at:233"
( $at_check_trace; check_logs "/has already been associated with logical port/d"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:233"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:233: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn-controller-vtep.at:233"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:233"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:233: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn-controller-vtep.at:233"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:233"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   $as_echo "ovn-controller-vtep.at:233: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:233: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:233" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:233"
fi

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:233: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn-controller-vtep.at:233"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:233"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:233: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn-controller-vtep.at:233"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:233"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   $as_echo "ovn-controller-vtep.at:233: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:233: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:233" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:233"
fi

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:233: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn-controller-vtep.at:233"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:233"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:233: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn-controller-vtep.at:233"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:233"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   $as_echo "ovn-controller-vtep.at:233: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:233: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:233" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:233"
fi

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:233: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn-controller-vtep.at:233"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:233"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:233: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn-controller-vtep.at:233"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:233"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   $as_echo "ovn-controller-vtep.at:233: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:233: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:233" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:233"
fi

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:233: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn-controller-vtep.at:233"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:233"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:233: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn-controller-vtep.at:233"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:233"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   $as_echo "ovn-controller-vtep.at:233: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:233: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:233" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:233"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2512
#AT_START_2513
at_fn_group_banner 2513 'ovn-controller-vtep.at:239' \
  "ovn-controller-vtep - binding 2" "                " 130
at_xfail=no
(
  $as_echo "2513. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



   # this will cause skip when 'make check' using Windows setup.
   $as_echo "ovn-controller-vtep.at:240" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn-controller-vtep.at:240"

      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:240: ovsdb-tool create vswitchd.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create vswitchd.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovn-controller-vtep.at:240"
( $at_check_trace; ovsdb-tool create vswitchd.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:240"
$at_failed && at_fn_log_failure
$at_traceon; }

   for daemon in ovn-nb ovn-sb vtep; do
      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:240: ovsdb-tool create \$daemon.db \$abs_top_srcdir/\${daemon%%-*}/\${daemon}.ovsschema"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ovn-controller-vtep.at:240"
( $at_check_trace; ovsdb-tool create $daemon.db $abs_top_srcdir/${daemon%%-*}/${daemon}.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:240"
$at_failed && at_fn_log_failure
$at_traceon; }

   done

      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:240: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock vswitchd.db vtep.db"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock vswitchd.db vtep.db" "ovn-controller-vtep.at:240"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock vswitchd.db vtep.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:240"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:240: ovsdb-server --detach --no-chdir --pidfile=ovsdb-nb-server.pid --log-file=ovsdb-nb-server.log --remote=punix:\$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile=ovsdb-nb-server.pid --log-file=ovsdb-nb-server.log --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db" "ovn-controller-vtep.at:240"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile=ovsdb-nb-server.pid --log-file=ovsdb-nb-server.log --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:240"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:240: ovsdb-server --detach --no-chdir --pidfile=ovsdb-sb-server.pid --log-file=ovsdb-sb-server.log --remote=punix:\$OVS_RUNDIR/ovnsb_db.sock ovn-sb.db ovn-sb.db"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile=ovsdb-sb-server.pid --log-file=ovsdb-sb-server.log --remote=punix:$OVS_RUNDIR/ovnsb_db.sock ovn-sb.db ovn-sb.db" "ovn-controller-vtep.at:240"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile=ovsdb-sb-server.pid --log-file=ovsdb-sb-server.log --remote=punix:$OVS_RUNDIR/ovnsb_db.sock ovn-sb.db ovn-sb.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:240"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid` `cat ovsdb-nb-server.pid` `cat ovsdb-sb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:240: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller-vtep.at:240"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:240"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:240: ovs-vswitchd --enable-dummy=system --disable-system --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif"
at_fn_check_prepare_trace "ovn-controller-vtep.at:240"
( $at_check_trace; ovs-vswitchd --enable-dummy=system --disable-system --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:240"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:240: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller-vtep.at:240"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:240"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:240: ovs-vsctl -- add-br br-vtep \\
              -- set bridge br-vtep datapath-type=dummy other-config:datapath-id=fedcba9876543210 other-config:hwaddr=aa:55:aa:55:00:00 protocols=[OpenFlow10,OpenFlow11,OpenFlow12,OpenFlow13,OpenFlow14,OpenFlow15] fail-mode=secure \\
              -- add-port br-vtep p0 -- set Interface p0 type=dummy ofport_request=1 \\
              -- add-port br-vtep p1 -- set Interface p1 type=dummy ofport_request=2"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller-vtep.at:240"
( $at_check_trace; ovs-vsctl -- add-br br-vtep \
              -- set bridge br-vtep datapath-type=dummy other-config:datapath-id=fedcba9876543210 other-config:hwaddr=aa:55:aa:55:00:00 protocols=[OpenFlow10,OpenFlow11,OpenFlow12,OpenFlow13,OpenFlow14,OpenFlow15] fail-mode=secure \
              -- add-port br-vtep p0 -- set Interface p0 type=dummy ofport_request=1 \
              -- add-port br-vtep p1 -- set Interface p1 type=dummy ofport_request=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:240"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:240: vtep-ctl add-ps br-vtep -- set Physical_Switch br-vtep tunnel_ips=1.2.3.4"
at_fn_check_prepare_trace "ovn-controller-vtep.at:240"
( $at_check_trace; vtep-ctl add-ps br-vtep -- set Physical_Switch br-vtep tunnel_ips=1.2.3.4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:240"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:240: ovs-vtep --log-file=ovs-vtep.log --pidfile=ovs-vtep.pid --detach br-vtep \\"
at_fn_check_prepare_trace "ovn-controller-vtep.at:240"
( $at_check_trace; ovs-vtep --log-file=ovs-vtep.log --pidfile=ovs-vtep.pid --detach br-vtep \
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:240"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   on_exit "kill `cat ovs-vtep.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:240: sed < stderr '
/vlog|INFO|opened log file/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller-vtep.at:240"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:240"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   # waits until ovs-vtep starts up.
   $as_echo "ovn-controller-vtep.at:240: waiting until test -n \"\`vtep-ctl show | grep Physical_Port\`\"..." >&5
ovs_wait_cond () {
    test -n "`vtep-ctl show | grep Physical_Port`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:240: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:240" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:240"
fi


      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:240: ovn-nbctl ls-add br-test"
at_fn_check_prepare_trace "ovn-controller-vtep.at:240"
( $at_check_trace; ovn-nbctl ls-add br-test
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:240"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:240: ovn-northd --detach --pidfile --log-file"
at_fn_check_prepare_trace "ovn-controller-vtep.at:240"
( $at_check_trace; ovn-northd --detach --pidfile --log-file
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:240"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   on_exit "kill `cat ovn-northd.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:240: sed < stderr '
/vlog|INFO|opened log file/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller-vtep.at:240"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:240"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:240: ovn-controller-vtep --detach --pidfile --log-file --vtep-db=unix:\$OVS_RUNDIR/db.sock --ovnsb-db=unix:\$OVS_RUNDIR/ovnsb_db.sock"
at_fn_check_prepare_dynamic "ovn-controller-vtep --detach --pidfile --log-file --vtep-db=unix:$OVS_RUNDIR/db.sock --ovnsb-db=unix:$OVS_RUNDIR/ovnsb_db.sock" "ovn-controller-vtep.at:240"
( $at_check_trace; ovn-controller-vtep --detach --pidfile --log-file --vtep-db=unix:$OVS_RUNDIR/db.sock --ovnsb-db=unix:$OVS_RUNDIR/ovnsb_db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:240"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log"
$at_traceon; }


   on_exit "kill `cat ovn-controller-vtep.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:240: sed < stderr '
/vlog|INFO|opened log file/d
/reconnect|INFO|/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller-vtep.at:240"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/reconnect|INFO|/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:240"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }



# adds logical switch 'lswitch0' and vlan_bindings.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:243: vtep-ctl add-ls lswitch0 -- bind-ls br-vtep p0 100 lswitch0"
at_fn_check_prepare_trace "ovn-controller-vtep.at:243"
( $at_check_trace; vtep-ctl add-ls lswitch0 -- bind-ls br-vtep p0 100 lswitch0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:243"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

# adds logical switch port in ovn-nb database, and sets the type and options.

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:245: ovn-nbctl lsp-add br-test br-vtep_lswitch0"
at_fn_check_prepare_trace "ovn-controller-vtep.at:245"
( $at_check_trace; ovn-nbctl lsp-add br-test br-vtep_lswitch0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:245"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:245: ovn-nbctl lsp-set-type br-vtep_lswitch0 vtep"
at_fn_check_prepare_trace "ovn-controller-vtep.at:245"
( $at_check_trace; ovn-nbctl lsp-set-type br-vtep_lswitch0 vtep
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:245"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:245: ovn-nbctl lsp-set-options br-vtep_lswitch0 vtep-physical-switch=br-vtep vtep-logical-switch=lswitch0"
at_fn_check_prepare_trace "ovn-controller-vtep.at:245"
( $at_check_trace; ovn-nbctl lsp-set-options br-vtep_lswitch0 vtep-physical-switch=br-vtep vtep-logical-switch=lswitch0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:245"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


ovn-sbctl --timeout=10 wait-until Port_Binding br-vtep_lswitch0 chassis!='[]'

# adds another lswitch 'br-void' in ovn-nb database.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:249: ovn-nbctl ls-add br-void"
at_fn_check_prepare_trace "ovn-controller-vtep.at:249"
( $at_check_trace; ovn-nbctl ls-add br-void
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:249"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

# adds another vtep pswitch 'br-vtep-void' in vtep database.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:251: vtep-ctl add-ps br-vtep-void -- add-port br-vtep-void p0-void -- bind-ls br-vtep-void p0-void 100 lswitch0"
at_fn_check_prepare_trace "ovn-controller-vtep.at:251"
( $at_check_trace; vtep-ctl add-ps br-vtep-void -- add-port br-vtep-void p0-void -- bind-ls br-vtep-void p0-void 100 lswitch0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:251"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

# adds a conflicting logical port (both br-vtep_lswitch0 and br-vtep-void_lswitch0
# are bound to the same logical switch, but they are on different datapath).

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:254: ovn-nbctl lsp-add br-void br-vtep-void_lswitch0"
at_fn_check_prepare_trace "ovn-controller-vtep.at:254"
( $at_check_trace; ovn-nbctl lsp-add br-void br-vtep-void_lswitch0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:254"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:254: ovn-nbctl lsp-set-type br-vtep-void_lswitch0 vtep"
at_fn_check_prepare_trace "ovn-controller-vtep.at:254"
( $at_check_trace; ovn-nbctl lsp-set-type br-vtep-void_lswitch0 vtep
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:254"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:254: ovn-nbctl lsp-set-options br-vtep-void_lswitch0 vtep-physical-switch=br-vtep-void vtep-logical-switch=lswitch0"
at_fn_check_prepare_trace "ovn-controller-vtep.at:254"
( $at_check_trace; ovn-nbctl lsp-set-options br-vtep-void_lswitch0 vtep-physical-switch=br-vtep-void vtep-logical-switch=lswitch0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:254"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


ovn-sbctl --timeout=10 wait-until Port_Binding br-vtep_lswitch0
$as_echo "ovn-controller-vtep.at:256: waiting until test -n \"\`grep WARN ovn-controller-vtep.log\`\"..." >&5
ovs_wait_cond () {
    test -n "`grep WARN ovn-controller-vtep.log`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:256: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:256" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:256"
fi

# confirms the warning log.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:258: sed -n 's/^.*\\(|WARN|.*\\)\$/\\1/p' ovn-controller-vtep.log | sed 's/([-_0-9a-z][-_0-9a-z]*)/()/g;s/(with tunnel key [0-9][0-9]*)/()/g' | uniq"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-controller-vtep.at:258"
( $at_check_trace; sed -n 's/^.*\(|WARN|.*\)$/\1/p' ovn-controller-vtep.log | sed 's/([-_0-9a-z][-_0-9a-z]*)/()/g;s/(with tunnel key [0-9][0-9]*)/()/g' | uniq
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "|WARN|logical switch (), on vtep gateway chassis () has already been associated with logical datapath (), ignore logical port () which belongs to logical datapath ()
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:258"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


# then deletes 'br-void' and 'br-vtep-void', should see 'br-vtep_lswitch0'
# bound correctly.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:264: ovn-nbctl ls-del br-void"
at_fn_check_prepare_trace "ovn-controller-vtep.at:264"
( $at_check_trace; ovn-nbctl ls-del br-void
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:264"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

# adds another vtep pswitch 'br-vtep-void' in vtep database.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:266: vtep-ctl del-ps br-vtep-void"
at_fn_check_prepare_trace "ovn-controller-vtep.at:266"
( $at_check_trace; vtep-ctl del-ps br-vtep-void
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:266"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

$as_echo "ovn-controller-vtep.at:267: waiting until test -z \"\`ovn-sbctl list Port_Binding | grep br-vtep-void_lswitch0\`\"..." >&5
ovs_wait_cond () {
    test -z "`ovn-sbctl list Port_Binding | grep br-vtep-void_lswitch0`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:267: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:267" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:267"
fi

chassis_uuid=$(ovn-sbctl --columns=_uuid list Chassis br-vtep | cut -d ':' -f2 | tr -d ' ')
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:269: ovn-sbctl --columns=chassis list Port_Binding br-vtep_lswitch0 | cut -d ':' -f2 | tr -d ' '"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-controller-vtep.at:269"
( $at_check_trace; ovn-sbctl --columns=chassis list Port_Binding br-vtep_lswitch0 | cut -d ':' -f2 | tr -d ' '
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${chassis_uuid}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:269"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:273: check_logs \"/has already been associated with logical datapath/d\""
at_fn_check_prepare_trace "ovn-controller-vtep.at:273"
( $at_check_trace; check_logs "/has already been associated with logical datapath/d"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:273"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:273: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn-controller-vtep.at:273"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:273"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:273: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn-controller-vtep.at:273"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:273"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   $as_echo "ovn-controller-vtep.at:273: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:273: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:273" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:273"
fi

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:273: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn-controller-vtep.at:273"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:273"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:273: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn-controller-vtep.at:273"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:273"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   $as_echo "ovn-controller-vtep.at:273: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:273: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:273" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:273"
fi

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:273: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn-controller-vtep.at:273"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:273"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:273: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn-controller-vtep.at:273"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:273"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   $as_echo "ovn-controller-vtep.at:273: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:273: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:273" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:273"
fi

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:273: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn-controller-vtep.at:273"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:273"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:273: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn-controller-vtep.at:273"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:273"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   $as_echo "ovn-controller-vtep.at:273: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:273: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:273" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:273"
fi

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:273: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn-controller-vtep.at:273"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:273"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:273: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn-controller-vtep.at:273"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:273"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   $as_echo "ovn-controller-vtep.at:273: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:273: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:273" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:273"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2513
#AT_START_2514
at_fn_group_banner 2514 'ovn-controller-vtep.at:278' \
  "ovn-controller-vtep - vtep-lswitch" "             " 130
at_xfail=no
(
  $as_echo "2514. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



   # this will cause skip when 'make check' using Windows setup.
   $as_echo "ovn-controller-vtep.at:279" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn-controller-vtep.at:279"

      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:279: ovsdb-tool create vswitchd.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create vswitchd.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovn-controller-vtep.at:279"
( $at_check_trace; ovsdb-tool create vswitchd.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:279"
$at_failed && at_fn_log_failure
$at_traceon; }

   for daemon in ovn-nb ovn-sb vtep; do
      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:279: ovsdb-tool create \$daemon.db \$abs_top_srcdir/\${daemon%%-*}/\${daemon}.ovsschema"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ovn-controller-vtep.at:279"
( $at_check_trace; ovsdb-tool create $daemon.db $abs_top_srcdir/${daemon%%-*}/${daemon}.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:279"
$at_failed && at_fn_log_failure
$at_traceon; }

   done

      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:279: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock vswitchd.db vtep.db"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock vswitchd.db vtep.db" "ovn-controller-vtep.at:279"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock vswitchd.db vtep.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:279"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:279: ovsdb-server --detach --no-chdir --pidfile=ovsdb-nb-server.pid --log-file=ovsdb-nb-server.log --remote=punix:\$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile=ovsdb-nb-server.pid --log-file=ovsdb-nb-server.log --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db" "ovn-controller-vtep.at:279"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile=ovsdb-nb-server.pid --log-file=ovsdb-nb-server.log --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:279"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:279: ovsdb-server --detach --no-chdir --pidfile=ovsdb-sb-server.pid --log-file=ovsdb-sb-server.log --remote=punix:\$OVS_RUNDIR/ovnsb_db.sock ovn-sb.db ovn-sb.db"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile=ovsdb-sb-server.pid --log-file=ovsdb-sb-server.log --remote=punix:$OVS_RUNDIR/ovnsb_db.sock ovn-sb.db ovn-sb.db" "ovn-controller-vtep.at:279"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile=ovsdb-sb-server.pid --log-file=ovsdb-sb-server.log --remote=punix:$OVS_RUNDIR/ovnsb_db.sock ovn-sb.db ovn-sb.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:279"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid` `cat ovsdb-nb-server.pid` `cat ovsdb-sb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:279: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller-vtep.at:279"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:279"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:279: ovs-vswitchd --enable-dummy=system --disable-system --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif"
at_fn_check_prepare_trace "ovn-controller-vtep.at:279"
( $at_check_trace; ovs-vswitchd --enable-dummy=system --disable-system --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:279"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:279: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller-vtep.at:279"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:279"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:279: ovs-vsctl -- add-br br-vtep \\
              -- set bridge br-vtep datapath-type=dummy other-config:datapath-id=fedcba9876543210 other-config:hwaddr=aa:55:aa:55:00:00 protocols=[OpenFlow10,OpenFlow11,OpenFlow12,OpenFlow13,OpenFlow14,OpenFlow15] fail-mode=secure \\
              -- add-port br-vtep p0 -- set Interface p0 type=dummy ofport_request=1 \\
              -- add-port br-vtep p1 -- set Interface p1 type=dummy ofport_request=2"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller-vtep.at:279"
( $at_check_trace; ovs-vsctl -- add-br br-vtep \
              -- set bridge br-vtep datapath-type=dummy other-config:datapath-id=fedcba9876543210 other-config:hwaddr=aa:55:aa:55:00:00 protocols=[OpenFlow10,OpenFlow11,OpenFlow12,OpenFlow13,OpenFlow14,OpenFlow15] fail-mode=secure \
              -- add-port br-vtep p0 -- set Interface p0 type=dummy ofport_request=1 \
              -- add-port br-vtep p1 -- set Interface p1 type=dummy ofport_request=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:279"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:279: vtep-ctl add-ps br-vtep -- set Physical_Switch br-vtep tunnel_ips=1.2.3.4"
at_fn_check_prepare_trace "ovn-controller-vtep.at:279"
( $at_check_trace; vtep-ctl add-ps br-vtep -- set Physical_Switch br-vtep tunnel_ips=1.2.3.4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:279"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:279: ovs-vtep --log-file=ovs-vtep.log --pidfile=ovs-vtep.pid --detach br-vtep \\"
at_fn_check_prepare_trace "ovn-controller-vtep.at:279"
( $at_check_trace; ovs-vtep --log-file=ovs-vtep.log --pidfile=ovs-vtep.pid --detach br-vtep \
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:279"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   on_exit "kill `cat ovs-vtep.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:279: sed < stderr '
/vlog|INFO|opened log file/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller-vtep.at:279"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:279"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   # waits until ovs-vtep starts up.
   $as_echo "ovn-controller-vtep.at:279: waiting until test -n \"\`vtep-ctl show | grep Physical_Port\`\"..." >&5
ovs_wait_cond () {
    test -n "`vtep-ctl show | grep Physical_Port`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:279: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:279" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:279"
fi


      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:279: ovn-nbctl ls-add br-test"
at_fn_check_prepare_trace "ovn-controller-vtep.at:279"
( $at_check_trace; ovn-nbctl ls-add br-test
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:279"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:279: ovn-northd --detach --pidfile --log-file"
at_fn_check_prepare_trace "ovn-controller-vtep.at:279"
( $at_check_trace; ovn-northd --detach --pidfile --log-file
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:279"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   on_exit "kill `cat ovn-northd.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:279: sed < stderr '
/vlog|INFO|opened log file/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller-vtep.at:279"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:279"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:279: ovn-controller-vtep --detach --pidfile --log-file --vtep-db=unix:\$OVS_RUNDIR/db.sock --ovnsb-db=unix:\$OVS_RUNDIR/ovnsb_db.sock"
at_fn_check_prepare_dynamic "ovn-controller-vtep --detach --pidfile --log-file --vtep-db=unix:$OVS_RUNDIR/db.sock --ovnsb-db=unix:$OVS_RUNDIR/ovnsb_db.sock" "ovn-controller-vtep.at:279"
( $at_check_trace; ovn-controller-vtep --detach --pidfile --log-file --vtep-db=unix:$OVS_RUNDIR/db.sock --ovnsb-db=unix:$OVS_RUNDIR/ovnsb_db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:279"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log"
$at_traceon; }


   on_exit "kill `cat ovn-controller-vtep.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:279: sed < stderr '
/vlog|INFO|opened log file/d
/reconnect|INFO|/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller-vtep.at:279"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/reconnect|INFO|/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:279"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }



# creates the logical switch in vtep and adds the corresponding logical
# port to 'br-test'.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:283: vtep-ctl add-ls lswitch0 -- bind-ls br-vtep p0 100 lswitch0"
at_fn_check_prepare_trace "ovn-controller-vtep.at:283"
( $at_check_trace; vtep-ctl add-ls lswitch0 -- bind-ls br-vtep p0 100 lswitch0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:283"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:284: ovn-nbctl lsp-add br-test br-vtep_lswitch0"
at_fn_check_prepare_trace "ovn-controller-vtep.at:284"
( $at_check_trace; ovn-nbctl lsp-add br-test br-vtep_lswitch0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:284"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:284: ovn-nbctl lsp-set-type br-vtep_lswitch0 vtep"
at_fn_check_prepare_trace "ovn-controller-vtep.at:284"
( $at_check_trace; ovn-nbctl lsp-set-type br-vtep_lswitch0 vtep
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:284"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:284: ovn-nbctl lsp-set-options br-vtep_lswitch0 vtep-physical-switch=br-vtep vtep-logical-switch=lswitch0"
at_fn_check_prepare_trace "ovn-controller-vtep.at:284"
( $at_check_trace; ovn-nbctl lsp-set-options br-vtep_lswitch0 vtep-physical-switch=br-vtep vtep-logical-switch=lswitch0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:284"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


$as_echo "ovn-controller-vtep.at:285: waiting until test -n \"\`ovn-sbctl list Port_Binding  | grep -- br-vtep_lswitch0\`\"..." >&5
ovs_wait_cond () {
    test -n "`ovn-sbctl list Port_Binding  | grep -- br-vtep_lswitch0`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:285: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:285" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:285"
fi


# retrieves the expected tunnel key.
datapath_uuid=$(ovn-sbctl --columns=datapath list Port_Binding br-vtep_lswitch0 | cut -d ':' -f2 | tr -d ' ')
tunnel_key=$(ovn-sbctl --columns=tunnel_key list Datapath_Binding ${datapath_uuid} | cut -d ':' -f2 | tr -d ' ')
$as_echo "ovn-controller-vtep.at:290: waiting until test -z \"\`vtep-ctl --columns=tunnel_key list Logical_Switch | grep 0\`\"..." >&5
ovs_wait_cond () {
    test -z "`vtep-ctl --columns=tunnel_key list Logical_Switch | grep 0`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:290: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:290" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:290"
fi

# checks the vtep logical switch tunnel key configuration.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:292: vtep-ctl --columns=tunnel_key list Logical_Switch | cut -d ':' -f2 | tr -d ' '"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-controller-vtep.at:292"
( $at_check_trace; vtep-ctl --columns=tunnel_key list Logical_Switch | cut -d ':' -f2 | tr -d ' '
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${tunnel_key}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:292"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


# creates a second physical switch in vtep database, and binds its p0 vlan-100
# to the same logical switch 'lswitch0'.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:298: vtep-ctl add-ps br-vtep-void -- add-port br-vtep-void p0 -- bind-ls br-vtep-void p0 100 lswitch0"
at_fn_check_prepare_trace "ovn-controller-vtep.at:298"
( $at_check_trace; vtep-ctl add-ps br-vtep-void -- add-port br-vtep-void p0 -- bind-ls br-vtep-void p0 100 lswitch0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:298"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

$as_echo "ovn-controller-vtep.at:299: waiting until test -n \"\`ovn-sbctl --columns=name list Chassis  | grep -- br-vtep-void\`\"..." >&5
ovs_wait_cond () {
    test -n "`ovn-sbctl --columns=name list Chassis  | grep -- br-vtep-void`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:299: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:299" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:299"
fi


{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:300: ovn-nbctl lsp-add br-test br-vtep-void_lswitch0"
at_fn_check_prepare_trace "ovn-controller-vtep.at:300"
( $at_check_trace; ovn-nbctl lsp-add br-test br-vtep-void_lswitch0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:300"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:300: ovn-nbctl lsp-set-type br-vtep-void_lswitch0 vtep"
at_fn_check_prepare_trace "ovn-controller-vtep.at:300"
( $at_check_trace; ovn-nbctl lsp-set-type br-vtep-void_lswitch0 vtep
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:300"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:300: ovn-nbctl lsp-set-options br-vtep-void_lswitch0 vtep-physical-switch=br-vtep-void vtep-logical-switch=lswitch0"
at_fn_check_prepare_trace "ovn-controller-vtep.at:300"
( $at_check_trace; ovn-nbctl lsp-set-options br-vtep-void_lswitch0 vtep-physical-switch=br-vtep-void vtep-logical-switch=lswitch0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:300"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


$as_echo "ovn-controller-vtep.at:301: waiting until test -n \"\`ovn-sbctl list Port_Binding  | grep -- br-vtep-void_lswitch0\`\"..." >&5
ovs_wait_cond () {
    test -n "`ovn-sbctl list Port_Binding  | grep -- br-vtep-void_lswitch0`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:301: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:301" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:301"
fi


# checks the vtep logical switch tunnel key configuration.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:304: vtep-ctl --columns=tunnel_key list Logical_Switch | cut -d ':' -f2 | tr -d ' '"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-controller-vtep.at:304"
( $at_check_trace; vtep-ctl --columns=tunnel_key list Logical_Switch | cut -d ':' -f2 | tr -d ' '
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${tunnel_key}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:304"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


# now, deletes br-vtep-void.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:309: vtep-ctl del-ps br-vtep-void"
at_fn_check_prepare_trace "ovn-controller-vtep.at:309"
( $at_check_trace; vtep-ctl del-ps br-vtep-void
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:309"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

$as_echo "ovn-controller-vtep.at:310: waiting until test -z \"\`ovn-sbctl --columns=name list Chassis  | grep -- br-vtep-void\`\"..." >&5
ovs_wait_cond () {
    test -z "`ovn-sbctl --columns=name list Chassis  | grep -- br-vtep-void`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:310: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:310" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:310"
fi

# checks the vtep logical switch tunnel key configuration.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:312: vtep-ctl --columns=tunnel_key list Logical_Switch | cut -d ':' -f2 | tr -d ' '"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-controller-vtep.at:312"
( $at_check_trace; vtep-ctl --columns=tunnel_key list Logical_Switch | cut -d ':' -f2 | tr -d ' '
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "${tunnel_key}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:312"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


# changes the ovn-nb logical port type so that it is no longer
# vtep port.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:318: ovn-nbctl lsp-set-type br-vtep_lswitch0 \"\""
at_fn_check_prepare_trace "ovn-controller-vtep.at:318"
( $at_check_trace; ovn-nbctl lsp-set-type br-vtep_lswitch0 ""
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:318"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

$as_echo "ovn-controller-vtep.at:319: waiting until test -z \"\`vtep-ctl --columns=tunnel_key list Logical_Switch | grep 1\`\"..." >&5
ovs_wait_cond () {
    test -z "`vtep-ctl --columns=tunnel_key list Logical_Switch | grep 1`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:319: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:319" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:319"
fi

# now should see the tunnel key reset.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:321: vtep-ctl --columns=tunnel_key list Logical_Switch | cut -d ':' -f2 | tr -d ' '"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-controller-vtep.at:321"
( $at_check_trace; vtep-ctl --columns=tunnel_key list Logical_Switch | cut -d ':' -f2 | tr -d ' '
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:321"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:325: check_logs \"\""
at_fn_check_prepare_trace "ovn-controller-vtep.at:325"
( $at_check_trace; check_logs ""
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:325"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:325: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn-controller-vtep.at:325"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:325"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:325: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn-controller-vtep.at:325"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:325"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   $as_echo "ovn-controller-vtep.at:325: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:325: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:325" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:325"
fi

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:325: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn-controller-vtep.at:325"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:325"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:325: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn-controller-vtep.at:325"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:325"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   $as_echo "ovn-controller-vtep.at:325: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:325: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:325" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:325"
fi

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:325: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn-controller-vtep.at:325"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:325"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:325: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn-controller-vtep.at:325"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:325"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   $as_echo "ovn-controller-vtep.at:325: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:325: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:325" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:325"
fi

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:325: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn-controller-vtep.at:325"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:325"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:325: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn-controller-vtep.at:325"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:325"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   $as_echo "ovn-controller-vtep.at:325: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:325: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:325" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:325"
fi

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:325: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn-controller-vtep.at:325"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:325"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:325: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn-controller-vtep.at:325"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:325"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   $as_echo "ovn-controller-vtep.at:325: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:325: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:325" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:325"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2514
#AT_START_2515
at_fn_group_banner 2515 'ovn-controller-vtep.at:330' \
  "ovn-controller-vtep - vtep-macs 1" "              " 130
at_xfail=no
(
  $as_echo "2515. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



   # this will cause skip when 'make check' using Windows setup.
   $as_echo "ovn-controller-vtep.at:331" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn-controller-vtep.at:331"

      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:331: ovsdb-tool create vswitchd.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create vswitchd.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovn-controller-vtep.at:331"
( $at_check_trace; ovsdb-tool create vswitchd.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:331"
$at_failed && at_fn_log_failure
$at_traceon; }

   for daemon in ovn-nb ovn-sb vtep; do
      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:331: ovsdb-tool create \$daemon.db \$abs_top_srcdir/\${daemon%%-*}/\${daemon}.ovsschema"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ovn-controller-vtep.at:331"
( $at_check_trace; ovsdb-tool create $daemon.db $abs_top_srcdir/${daemon%%-*}/${daemon}.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:331"
$at_failed && at_fn_log_failure
$at_traceon; }

   done

      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:331: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock vswitchd.db vtep.db"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock vswitchd.db vtep.db" "ovn-controller-vtep.at:331"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock vswitchd.db vtep.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:331"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:331: ovsdb-server --detach --no-chdir --pidfile=ovsdb-nb-server.pid --log-file=ovsdb-nb-server.log --remote=punix:\$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile=ovsdb-nb-server.pid --log-file=ovsdb-nb-server.log --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db" "ovn-controller-vtep.at:331"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile=ovsdb-nb-server.pid --log-file=ovsdb-nb-server.log --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:331"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:331: ovsdb-server --detach --no-chdir --pidfile=ovsdb-sb-server.pid --log-file=ovsdb-sb-server.log --remote=punix:\$OVS_RUNDIR/ovnsb_db.sock ovn-sb.db ovn-sb.db"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile=ovsdb-sb-server.pid --log-file=ovsdb-sb-server.log --remote=punix:$OVS_RUNDIR/ovnsb_db.sock ovn-sb.db ovn-sb.db" "ovn-controller-vtep.at:331"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile=ovsdb-sb-server.pid --log-file=ovsdb-sb-server.log --remote=punix:$OVS_RUNDIR/ovnsb_db.sock ovn-sb.db ovn-sb.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:331"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid` `cat ovsdb-nb-server.pid` `cat ovsdb-sb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:331: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller-vtep.at:331"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:331"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:331: ovs-vswitchd --enable-dummy=system --disable-system --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif"
at_fn_check_prepare_trace "ovn-controller-vtep.at:331"
( $at_check_trace; ovs-vswitchd --enable-dummy=system --disable-system --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:331"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:331: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller-vtep.at:331"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:331"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:331: ovs-vsctl -- add-br br-vtep \\
              -- set bridge br-vtep datapath-type=dummy other-config:datapath-id=fedcba9876543210 other-config:hwaddr=aa:55:aa:55:00:00 protocols=[OpenFlow10,OpenFlow11,OpenFlow12,OpenFlow13,OpenFlow14,OpenFlow15] fail-mode=secure \\
              -- add-port br-vtep p0 -- set Interface p0 type=dummy ofport_request=1 \\
              -- add-port br-vtep p1 -- set Interface p1 type=dummy ofport_request=2"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller-vtep.at:331"
( $at_check_trace; ovs-vsctl -- add-br br-vtep \
              -- set bridge br-vtep datapath-type=dummy other-config:datapath-id=fedcba9876543210 other-config:hwaddr=aa:55:aa:55:00:00 protocols=[OpenFlow10,OpenFlow11,OpenFlow12,OpenFlow13,OpenFlow14,OpenFlow15] fail-mode=secure \
              -- add-port br-vtep p0 -- set Interface p0 type=dummy ofport_request=1 \
              -- add-port br-vtep p1 -- set Interface p1 type=dummy ofport_request=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:331"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:331: vtep-ctl add-ps br-vtep -- set Physical_Switch br-vtep tunnel_ips=1.2.3.4"
at_fn_check_prepare_trace "ovn-controller-vtep.at:331"
( $at_check_trace; vtep-ctl add-ps br-vtep -- set Physical_Switch br-vtep tunnel_ips=1.2.3.4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:331"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:331: ovs-vtep --log-file=ovs-vtep.log --pidfile=ovs-vtep.pid --detach br-vtep \\"
at_fn_check_prepare_trace "ovn-controller-vtep.at:331"
( $at_check_trace; ovs-vtep --log-file=ovs-vtep.log --pidfile=ovs-vtep.pid --detach br-vtep \
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:331"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   on_exit "kill `cat ovs-vtep.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:331: sed < stderr '
/vlog|INFO|opened log file/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller-vtep.at:331"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:331"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   # waits until ovs-vtep starts up.
   $as_echo "ovn-controller-vtep.at:331: waiting until test -n \"\`vtep-ctl show | grep Physical_Port\`\"..." >&5
ovs_wait_cond () {
    test -n "`vtep-ctl show | grep Physical_Port`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:331: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:331" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:331"
fi


      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:331: ovn-nbctl ls-add br-test"
at_fn_check_prepare_trace "ovn-controller-vtep.at:331"
( $at_check_trace; ovn-nbctl ls-add br-test
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:331"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:331: ovn-northd --detach --pidfile --log-file"
at_fn_check_prepare_trace "ovn-controller-vtep.at:331"
( $at_check_trace; ovn-northd --detach --pidfile --log-file
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:331"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   on_exit "kill `cat ovn-northd.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:331: sed < stderr '
/vlog|INFO|opened log file/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller-vtep.at:331"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:331"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:331: ovn-controller-vtep --detach --pidfile --log-file --vtep-db=unix:\$OVS_RUNDIR/db.sock --ovnsb-db=unix:\$OVS_RUNDIR/ovnsb_db.sock"
at_fn_check_prepare_dynamic "ovn-controller-vtep --detach --pidfile --log-file --vtep-db=unix:$OVS_RUNDIR/db.sock --ovnsb-db=unix:$OVS_RUNDIR/ovnsb_db.sock" "ovn-controller-vtep.at:331"
( $at_check_trace; ovn-controller-vtep --detach --pidfile --log-file --vtep-db=unix:$OVS_RUNDIR/db.sock --ovnsb-db=unix:$OVS_RUNDIR/ovnsb_db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:331"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log"
$at_traceon; }


   on_exit "kill `cat ovn-controller-vtep.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:331: sed < stderr '
/vlog|INFO|opened log file/d
/reconnect|INFO|/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller-vtep.at:331"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/reconnect|INFO|/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:331"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }



# creates a simple logical network with the vtep device and a fake hv chassis
# 'ch0'.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:335: ovn-nbctl lsp-add br-test vif0"
at_fn_check_prepare_trace "ovn-controller-vtep.at:335"
( $at_check_trace; ovn-nbctl lsp-add br-test vif0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:335"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:336: ovn-nbctl lsp-set-addresses vif0 f0:ab:cd:ef:01:02"
at_fn_check_prepare_trace "ovn-controller-vtep.at:336"
( $at_check_trace; ovn-nbctl lsp-set-addresses vif0 f0:ab:cd:ef:01:02
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:336"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:337: ovn-nbctl --timeout=10 --wait=sb sync"
at_fn_check_prepare_trace "ovn-controller-vtep.at:337"
( $at_check_trace; ovn-nbctl --timeout=10 --wait=sb sync
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:337"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:338: ovn-sbctl chassis-add ch0 vxlan 1.2.3.5"
at_fn_check_prepare_trace "ovn-controller-vtep.at:338"
( $at_check_trace; ovn-sbctl chassis-add ch0 vxlan 1.2.3.5
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:338"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:339: ovn-sbctl lsp-bind vif0 ch0"
at_fn_check_prepare_trace "ovn-controller-vtep.at:339"
( $at_check_trace; ovn-sbctl lsp-bind vif0 ch0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:339"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


# creates the logical switch in vtep and adds the corresponding logical
# port to 'br-test'.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:343: vtep-ctl add-ls lswitch0 -- bind-ls br-vtep p0 100 lswitch0"
at_fn_check_prepare_trace "ovn-controller-vtep.at:343"
( $at_check_trace; vtep-ctl add-ls lswitch0 -- bind-ls br-vtep p0 100 lswitch0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:343"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:344: ovn-nbctl lsp-add br-test br-vtep_lswitch0"
at_fn_check_prepare_trace "ovn-controller-vtep.at:344"
( $at_check_trace; ovn-nbctl lsp-add br-test br-vtep_lswitch0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:344"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:344: ovn-nbctl lsp-set-type br-vtep_lswitch0 vtep"
at_fn_check_prepare_trace "ovn-controller-vtep.at:344"
( $at_check_trace; ovn-nbctl lsp-set-type br-vtep_lswitch0 vtep
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:344"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:344: ovn-nbctl lsp-set-options br-vtep_lswitch0 vtep-physical-switch=br-vtep vtep-logical-switch=lswitch0"
at_fn_check_prepare_trace "ovn-controller-vtep.at:344"
( $at_check_trace; ovn-nbctl lsp-set-options br-vtep_lswitch0 vtep-physical-switch=br-vtep vtep-logical-switch=lswitch0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:344"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


$as_echo "ovn-controller-vtep.at:345: waiting until test -n \"\`ovn-sbctl list Port_Binding  | grep br-vtep_lswitch0\`\"..." >&5
ovs_wait_cond () {
    test -n "`ovn-sbctl list Port_Binding  | grep br-vtep_lswitch0`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:345: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:345" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:345"
fi


# adds another lswitch 'br-void' in ovn-nb database.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:348: ovn-nbctl ls-add br-void"
at_fn_check_prepare_trace "ovn-controller-vtep.at:348"
( $at_check_trace; ovn-nbctl ls-add br-void
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:348"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

# adds fake hv chassis 'ch1'.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:350: ovn-nbctl lsp-add br-void vif1"
at_fn_check_prepare_trace "ovn-controller-vtep.at:350"
( $at_check_trace; ovn-nbctl lsp-add br-void vif1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:350"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:351: ovn-nbctl lsp-set-addresses vif1 f0:ab:cd:ef:01:02"
at_fn_check_prepare_trace "ovn-controller-vtep.at:351"
( $at_check_trace; ovn-nbctl lsp-set-addresses vif1 f0:ab:cd:ef:01:02
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:351"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:352: ovn-nbctl --timeout=10 --wait=sb sync"
at_fn_check_prepare_trace "ovn-controller-vtep.at:352"
( $at_check_trace; ovn-nbctl --timeout=10 --wait=sb sync
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:352"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:353: ovn-sbctl chassis-add ch1 vxlan 1.2.3.6"
at_fn_check_prepare_trace "ovn-controller-vtep.at:353"
( $at_check_trace; ovn-sbctl chassis-add ch1 vxlan 1.2.3.6
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:353"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:354: ovn-sbctl lsp-bind vif1 ch1"
at_fn_check_prepare_trace "ovn-controller-vtep.at:354"
( $at_check_trace; ovn-sbctl lsp-bind vif1 ch1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:354"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


# checks Ucast_Macs_Remote creation.
$as_echo "ovn-controller-vtep.at:357: waiting until test -n \"\`vtep-ctl list Ucast_Macs_Remote | grep _uuid\`\"..." >&5
ovs_wait_cond () {
    test -n "`vtep-ctl list Ucast_Macs_Remote | grep _uuid`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:357: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:357" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:357"
fi

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:358: vtep-ctl --columns=MAC list Ucast_Macs_Remote | cut -d ':' -f2- | tr -d ' '"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-controller-vtep.at:358"
( $at_check_trace; vtep-ctl --columns=MAC list Ucast_Macs_Remote | cut -d ':' -f2- | tr -d ' '
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"f0:ab:cd:ef:01:02\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:358"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


# checks physical locator creation.
$as_echo "ovn-controller-vtep.at:363: waiting until test -n \"\`vtep-ctl list Physical_Locator | grep _uuid\`\"..." >&5
ovs_wait_cond () {
    test -n "`vtep-ctl list Physical_Locator | grep _uuid`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:363: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:363" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:363"
fi

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:364: vtep-ctl --columns=dst_ip list Physical_Locator | cut -d ':' -f2 | tr -d ' ' | grep -v 1.2.3.4 | sed '/^\$/d'"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-controller-vtep.at:364"
( $at_check_trace; vtep-ctl --columns=dst_ip list Physical_Locator | cut -d ':' -f2 | tr -d ' ' | grep -v 1.2.3.4 | sed '/^$/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"1.2.3.5\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:364"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


# checks tunnel creation by ovs-vtep.
$as_echo "ovn-controller-vtep.at:369: waiting until test -n \"\`ovs-vsctl list Interface bfd1.2.3.5\`\"..." >&5
ovs_wait_cond () {
    test -n "`ovs-vsctl list Interface bfd1.2.3.5`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:369: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:369" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:369"
fi

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:370: ovs-vsctl --columns=options list Interface bfd1.2.3.5 | cut -d ':' -f2 | tr -d ' '"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-controller-vtep.at:370"
( $at_check_trace; ovs-vsctl --columns=options list Interface bfd1.2.3.5 | cut -d ':' -f2 | tr -d ' '
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "{remote_ip=\"1.2.3.5\"}
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:370"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


# adds another mac to logical switch port.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:375: ovn-nbctl lsp-set-addresses vif0 f0:ab:cd:ef:01:02 f0:ab:cd:ef:01:03"
at_fn_check_prepare_trace "ovn-controller-vtep.at:375"
( $at_check_trace; ovn-nbctl lsp-set-addresses vif0 f0:ab:cd:ef:01:02 f0:ab:cd:ef:01:03
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:375"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

$as_echo "ovn-controller-vtep.at:376: waiting until test -n \"\`vtep-ctl list Ucast_Macs_Remote | grep 03\`\"..." >&5
ovs_wait_cond () {
    test -n "`vtep-ctl list Ucast_Macs_Remote | grep 03`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:376: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:376" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:376"
fi

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:377: vtep-ctl --columns=MAC list Ucast_Macs_Remote | cut -d ':' -f2- | tr -d ' ' | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-controller-vtep.at:377"
( $at_check_trace; vtep-ctl --columns=MAC list Ucast_Macs_Remote | cut -d ':' -f2- | tr -d ' ' | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "
\"f0:ab:cd:ef:01:02\"
\"f0:ab:cd:ef:01:03\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:377"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


# removes one mac to logical switch port.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:384: ovn-nbctl lsp-set-addresses vif0 f0:ab:cd:ef:01:03"
at_fn_check_prepare_trace "ovn-controller-vtep.at:384"
( $at_check_trace; ovn-nbctl lsp-set-addresses vif0 f0:ab:cd:ef:01:03
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:384"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

$as_echo "ovn-controller-vtep.at:385: waiting until test -z \"\`vtep-ctl --columns=MAC list Ucast_Macs_Remote | grep 02\`\"..." >&5
ovs_wait_cond () {
    test -z "`vtep-ctl --columns=MAC list Ucast_Macs_Remote | grep 02`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:385: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:385" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:385"
fi

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:386: vtep-ctl --columns=MAC list Ucast_Macs_Remote | cut -d ':' -f2- | tr -d ' ' | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-controller-vtep.at:386"
( $at_check_trace; vtep-ctl --columns=MAC list Ucast_Macs_Remote | cut -d ':' -f2- | tr -d ' ' | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"f0:ab:cd:ef:01:03\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:386"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


# migrates mac to logical switch port vif1 on 'br-void'.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:391: ovn-nbctl lsp-set-addresses vif0"
at_fn_check_prepare_trace "ovn-controller-vtep.at:391"
( $at_check_trace; ovn-nbctl lsp-set-addresses vif0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:391"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:392: ovn-nbctl lsp-set-addresses vif1 f0:ab:cd:ef:01:03"
at_fn_check_prepare_trace "ovn-controller-vtep.at:392"
( $at_check_trace; ovn-nbctl lsp-set-addresses vif1 f0:ab:cd:ef:01:03
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:392"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

$as_echo "ovn-controller-vtep.at:393: waiting until test -z \"\`vtep-ctl --columns=MAC list Ucast_Macs_Remote | grep 03\`\"..." >&5
ovs_wait_cond () {
    test -z "`vtep-ctl --columns=MAC list Ucast_Macs_Remote | grep 03`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:393: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:393" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:393"
fi

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:394: vtep-ctl --columns=MAC list Ucast_Macs_Remote | cut -d ':' -f2- | tr -d ' ' | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-controller-vtep.at:394"
( $at_check_trace; vtep-ctl --columns=MAC list Ucast_Macs_Remote | cut -d ':' -f2- | tr -d ' ' | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:394"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:397: check_logs \"\""
at_fn_check_prepare_trace "ovn-controller-vtep.at:397"
( $at_check_trace; check_logs ""
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:397"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:397: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn-controller-vtep.at:397"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:397"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:397: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn-controller-vtep.at:397"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:397"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   $as_echo "ovn-controller-vtep.at:397: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:397: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:397" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:397"
fi

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:397: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn-controller-vtep.at:397"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:397"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:397: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn-controller-vtep.at:397"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:397"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   $as_echo "ovn-controller-vtep.at:397: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:397: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:397" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:397"
fi

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:397: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn-controller-vtep.at:397"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:397"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:397: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn-controller-vtep.at:397"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:397"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   $as_echo "ovn-controller-vtep.at:397: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:397: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:397" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:397"
fi

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:397: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn-controller-vtep.at:397"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:397"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:397: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn-controller-vtep.at:397"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:397"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   $as_echo "ovn-controller-vtep.at:397: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:397: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:397" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:397"
fi

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:397: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn-controller-vtep.at:397"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:397"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:397: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn-controller-vtep.at:397"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:397"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   $as_echo "ovn-controller-vtep.at:397: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:397: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:397" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:397"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2515
#AT_START_2516
at_fn_group_banner 2516 'ovn-controller-vtep.at:402' \
  "ovn-controller-vtep - vtep-macs 2" "              " 130
at_xfail=no
(
  $as_echo "2516. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init



   # this will cause skip when 'make check' using Windows setup.
   $as_echo "ovn-controller-vtep.at:403" >"$at_check_line_file"
(test $HAVE_PYTHON = no) \
  && at_fn_check_skip 77 "$at_srcdir/ovn-controller-vtep.at:403"

      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:403: ovsdb-tool create vswitchd.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create vswitchd.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "ovn-controller-vtep.at:403"
( $at_check_trace; ovsdb-tool create vswitchd.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:403"
$at_failed && at_fn_log_failure
$at_traceon; }

   for daemon in ovn-nb ovn-sb vtep; do
      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:403: ovsdb-tool create \$daemon.db \$abs_top_srcdir/\${daemon%%-*}/\${daemon}.ovsschema"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ovn-controller-vtep.at:403"
( $at_check_trace; ovsdb-tool create $daemon.db $abs_top_srcdir/${daemon%%-*}/${daemon}.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:403"
$at_failed && at_fn_log_failure
$at_traceon; }

   done

      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:403: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock vswitchd.db vtep.db"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock vswitchd.db vtep.db" "ovn-controller-vtep.at:403"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock vswitchd.db vtep.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:403"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:403: ovsdb-server --detach --no-chdir --pidfile=ovsdb-nb-server.pid --log-file=ovsdb-nb-server.log --remote=punix:\$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile=ovsdb-nb-server.pid --log-file=ovsdb-nb-server.log --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db" "ovn-controller-vtep.at:403"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile=ovsdb-nb-server.pid --log-file=ovsdb-nb-server.log --remote=punix:$OVS_RUNDIR/ovnnb_db.sock ovn-nb.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:403"
$at_failed && at_fn_log_failure
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:403: ovsdb-server --detach --no-chdir --pidfile=ovsdb-sb-server.pid --log-file=ovsdb-sb-server.log --remote=punix:\$OVS_RUNDIR/ovnsb_db.sock ovn-sb.db ovn-sb.db"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile=ovsdb-sb-server.pid --log-file=ovsdb-sb-server.log --remote=punix:$OVS_RUNDIR/ovnsb_db.sock ovn-sb.db ovn-sb.db" "ovn-controller-vtep.at:403"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile=ovsdb-sb-server.pid --log-file=ovsdb-sb-server.log --remote=punix:$OVS_RUNDIR/ovnsb_db.sock ovn-sb.db ovn-sb.db
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:403"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid` `cat ovsdb-nb-server.pid` `cat ovsdb-sb-server.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:403: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller-vtep.at:403"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:403"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:403: ovs-vswitchd --enable-dummy=system --disable-system --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif"
at_fn_check_prepare_trace "ovn-controller-vtep.at:403"
( $at_check_trace; ovs-vswitchd --enable-dummy=system --disable-system --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:403"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:403: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller-vtep.at:403"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:403"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:403: ovs-vsctl -- add-br br-vtep \\
              -- set bridge br-vtep datapath-type=dummy other-config:datapath-id=fedcba9876543210 other-config:hwaddr=aa:55:aa:55:00:00 protocols=[OpenFlow10,OpenFlow11,OpenFlow12,OpenFlow13,OpenFlow14,OpenFlow15] fail-mode=secure \\
              -- add-port br-vtep p0 -- set Interface p0 type=dummy ofport_request=1 \\
              -- add-port br-vtep p1 -- set Interface p1 type=dummy ofport_request=2"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller-vtep.at:403"
( $at_check_trace; ovs-vsctl -- add-br br-vtep \
              -- set bridge br-vtep datapath-type=dummy other-config:datapath-id=fedcba9876543210 other-config:hwaddr=aa:55:aa:55:00:00 protocols=[OpenFlow10,OpenFlow11,OpenFlow12,OpenFlow13,OpenFlow14,OpenFlow15] fail-mode=secure \
              -- add-port br-vtep p0 -- set Interface p0 type=dummy ofport_request=1 \
              -- add-port br-vtep p1 -- set Interface p1 type=dummy ofport_request=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:403"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:403: vtep-ctl add-ps br-vtep -- set Physical_Switch br-vtep tunnel_ips=1.2.3.4"
at_fn_check_prepare_trace "ovn-controller-vtep.at:403"
( $at_check_trace; vtep-ctl add-ps br-vtep -- set Physical_Switch br-vtep tunnel_ips=1.2.3.4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:403"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:403: ovs-vtep --log-file=ovs-vtep.log --pidfile=ovs-vtep.pid --detach br-vtep \\"
at_fn_check_prepare_trace "ovn-controller-vtep.at:403"
( $at_check_trace; ovs-vtep --log-file=ovs-vtep.log --pidfile=ovs-vtep.pid --detach br-vtep \
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:403"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   on_exit "kill `cat ovs-vtep.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:403: sed < stderr '
/vlog|INFO|opened log file/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller-vtep.at:403"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:403"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   # waits until ovs-vtep starts up.
   $as_echo "ovn-controller-vtep.at:403: waiting until test -n \"\`vtep-ctl show | grep Physical_Port\`\"..." >&5
ovs_wait_cond () {
    test -n "`vtep-ctl show | grep Physical_Port`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:403: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:403" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:403"
fi


      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:403: ovn-nbctl ls-add br-test"
at_fn_check_prepare_trace "ovn-controller-vtep.at:403"
( $at_check_trace; ovn-nbctl ls-add br-test
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:403"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:403: ovn-northd --detach --pidfile --log-file"
at_fn_check_prepare_trace "ovn-controller-vtep.at:403"
( $at_check_trace; ovn-northd --detach --pidfile --log-file
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:403"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   on_exit "kill `cat ovn-northd.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:403: sed < stderr '
/vlog|INFO|opened log file/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller-vtep.at:403"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:403"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:403: ovn-controller-vtep --detach --pidfile --log-file --vtep-db=unix:\$OVS_RUNDIR/db.sock --ovnsb-db=unix:\$OVS_RUNDIR/ovnsb_db.sock"
at_fn_check_prepare_dynamic "ovn-controller-vtep --detach --pidfile --log-file --vtep-db=unix:$OVS_RUNDIR/db.sock --ovnsb-db=unix:$OVS_RUNDIR/ovnsb_db.sock" "ovn-controller-vtep.at:403"
( $at_check_trace; ovn-controller-vtep --detach --pidfile --log-file --vtep-db=unix:$OVS_RUNDIR/db.sock --ovnsb-db=unix:$OVS_RUNDIR/ovnsb_db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:403"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log"
$at_traceon; }


   on_exit "kill `cat ovn-controller-vtep.pid`"
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:403: sed < stderr '
/vlog|INFO|opened log file/d
/reconnect|INFO|/d'"
at_fn_check_prepare_notrace 'an embedded newline' "ovn-controller-vtep.at:403"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/reconnect|INFO|/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:403"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }



# creates a simple logical network with the vtep device and a fake hv chassis
# 'ch0'.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:407: ovn-nbctl lsp-add br-test vif0"
at_fn_check_prepare_trace "ovn-controller-vtep.at:407"
( $at_check_trace; ovn-nbctl lsp-add br-test vif0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:407"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:408: ovn-nbctl lsp-set-addresses vif0 f0:ab:cd:ef:01:02"
at_fn_check_prepare_trace "ovn-controller-vtep.at:408"
( $at_check_trace; ovn-nbctl lsp-set-addresses vif0 f0:ab:cd:ef:01:02
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:408"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:409: ovn-nbctl --timeout=10 --wait=sb sync"
at_fn_check_prepare_trace "ovn-controller-vtep.at:409"
( $at_check_trace; ovn-nbctl --timeout=10 --wait=sb sync
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:409"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:410: ovn-sbctl chassis-add ch0 vxlan 1.2.3.5"
at_fn_check_prepare_trace "ovn-controller-vtep.at:410"
( $at_check_trace; ovn-sbctl chassis-add ch0 vxlan 1.2.3.5
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:410"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:411: ovn-sbctl lsp-bind vif0 ch0"
at_fn_check_prepare_trace "ovn-controller-vtep.at:411"
( $at_check_trace; ovn-sbctl lsp-bind vif0 ch0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:411"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


# creates another vif in the same logical switch with duplicate mac.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:414: ovn-nbctl lsp-add br-test vif1"
at_fn_check_prepare_trace "ovn-controller-vtep.at:414"
( $at_check_trace; ovn-nbctl lsp-add br-test vif1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:414"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:415: ovn-nbctl lsp-set-addresses vif1 f0:ab:cd:ef:01:02"
at_fn_check_prepare_trace "ovn-controller-vtep.at:415"
( $at_check_trace; ovn-nbctl lsp-set-addresses vif1 f0:ab:cd:ef:01:02
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:415"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:416: ovn-nbctl --timeout=10 --wait=sb sync"
at_fn_check_prepare_trace "ovn-controller-vtep.at:416"
( $at_check_trace; ovn-nbctl --timeout=10 --wait=sb sync
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:416"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:417: ovn-sbctl lsp-bind vif1 ch0"
at_fn_check_prepare_trace "ovn-controller-vtep.at:417"
( $at_check_trace; ovn-sbctl lsp-bind vif1 ch0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:417"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


# creates the logical switch in vtep and adds the corresponding logical
# port to 'br-test'.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:421: vtep-ctl add-ls lswitch0 -- bind-ls br-vtep p0 100 lswitch0"
at_fn_check_prepare_trace "ovn-controller-vtep.at:421"
( $at_check_trace; vtep-ctl add-ls lswitch0 -- bind-ls br-vtep p0 100 lswitch0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:421"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:422: ovn-nbctl lsp-add br-test br-vtep_lswitch0"
at_fn_check_prepare_trace "ovn-controller-vtep.at:422"
( $at_check_trace; ovn-nbctl lsp-add br-test br-vtep_lswitch0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:422"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:422: ovn-nbctl lsp-set-type br-vtep_lswitch0 vtep"
at_fn_check_prepare_trace "ovn-controller-vtep.at:422"
( $at_check_trace; ovn-nbctl lsp-set-type br-vtep_lswitch0 vtep
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:422"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:422: ovn-nbctl lsp-set-options br-vtep_lswitch0 vtep-physical-switch=br-vtep vtep-logical-switch=lswitch0"
at_fn_check_prepare_trace "ovn-controller-vtep.at:422"
( $at_check_trace; ovn-nbctl lsp-set-options br-vtep_lswitch0 vtep-physical-switch=br-vtep vtep-logical-switch=lswitch0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:422"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


$as_echo "ovn-controller-vtep.at:423: waiting until test -n \"\`ovn-sbctl list Port_Binding  | grep br-vtep_lswitch0\`\"..." >&5
ovs_wait_cond () {
    test -n "`ovn-sbctl list Port_Binding  | grep br-vtep_lswitch0`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:423: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:423" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:423"
fi


# checks Ucast_Macs_Remote creation.  Should still only be one entry, since duplicate
# mac in the same logical switch is not allowed.
$as_echo "ovn-controller-vtep.at:427: waiting until test -n \"\`vtep-ctl list Ucast_Macs_Remote | grep _uuid\`\"..." >&5
ovs_wait_cond () {
    test -n "`vtep-ctl list Ucast_Macs_Remote | grep _uuid`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:427: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:427" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:427"
fi

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:428: vtep-ctl --columns=MAC list Ucast_Macs_Remote | cut -d ':' -f2- | tr -d ' '"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-controller-vtep.at:428"
( $at_check_trace; vtep-ctl --columns=MAC list Ucast_Macs_Remote | cut -d ':' -f2- | tr -d ' '
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "\"f0:ab:cd:ef:01:02\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:428"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

# confirms the warning log.
$as_echo "ovn-controller-vtep.at:432: waiting until test -n \"\`grep WARN ovn-controller-vtep.log\`\"..." >&5
ovs_wait_cond () {
    test -n "`grep WARN ovn-controller-vtep.log`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:432: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:432" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:432"
fi

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:433: sed -n 's/^.*\\(|WARN|.*\\)\$/\\1/p' ovn-controller-vtep.log | sed 's/([-_:0-9a-z][-_:0-9a-z]*)/()/g' | uniq"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-controller-vtep.at:433"
( $at_check_trace; sed -n 's/^.*\(|WARN|.*\)$/\1/p' ovn-controller-vtep.log | sed 's/([-_:0-9a-z][-_:0-9a-z]*)/()/g' | uniq
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "|WARN|MAC address () has already been known to be on logical port () in the same logical datapath, so just ignore this logical port ()
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:433"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


# deletes vif1.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:438: ovn-nbctl lsp-del vif1"
at_fn_check_prepare_trace "ovn-controller-vtep.at:438"
( $at_check_trace; ovn-nbctl lsp-del vif1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:438"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


# adds another lswitch 'br-void' in ovn-nb database.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:441: ovn-nbctl ls-add br-void"
at_fn_check_prepare_trace "ovn-controller-vtep.at:441"
( $at_check_trace; ovn-nbctl ls-add br-void
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:441"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

# adds fake hv chassis 'ch1' and vif1 with same mac address as vif0.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:443: ovn-nbctl lsp-add br-void vif1"
at_fn_check_prepare_trace "ovn-controller-vtep.at:443"
( $at_check_trace; ovn-nbctl lsp-add br-void vif1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:443"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:444: ovn-nbctl lsp-set-addresses vif1 f0:ab:cd:ef:01:02"
at_fn_check_prepare_trace "ovn-controller-vtep.at:444"
( $at_check_trace; ovn-nbctl lsp-set-addresses vif1 f0:ab:cd:ef:01:02
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:444"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:445: ovn-nbctl --timeout=10 --wait=sb sync"
at_fn_check_prepare_trace "ovn-controller-vtep.at:445"
( $at_check_trace; ovn-nbctl --timeout=10 --wait=sb sync
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:445"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:446: ovn-sbctl chassis-add ch1 vxlan 1.2.3.6"
at_fn_check_prepare_trace "ovn-controller-vtep.at:446"
( $at_check_trace; ovn-sbctl chassis-add ch1 vxlan 1.2.3.6
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:446"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:447: ovn-sbctl lsp-bind vif1 ch1"
at_fn_check_prepare_trace "ovn-controller-vtep.at:447"
( $at_check_trace; ovn-sbctl lsp-bind vif1 ch1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:447"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

$as_echo "ovn-controller-vtep.at:448: waiting until test -n \"\`ovn-sbctl list Port_Binding | grep vif1\`\"..." >&5
ovs_wait_cond () {
    test -n "`ovn-sbctl list Port_Binding | grep vif1`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:448: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:448" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:448"
fi


# creates another logical switch in vtep and adds the corresponding logical
# port to 'br-void'.
{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:452: vtep-ctl add-ls lswitch1 -- bind-ls br-vtep p0 200 lswitch1"
at_fn_check_prepare_trace "ovn-controller-vtep.at:452"
( $at_check_trace; vtep-ctl add-ls lswitch1 -- bind-ls br-vtep p0 200 lswitch1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:452"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:453: ovn-nbctl lsp-add br-void br-void_lswitch1"
at_fn_check_prepare_trace "ovn-controller-vtep.at:453"
( $at_check_trace; ovn-nbctl lsp-add br-void br-void_lswitch1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:453"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:453: ovn-nbctl lsp-set-type br-void_lswitch1 vtep"
at_fn_check_prepare_trace "ovn-controller-vtep.at:453"
( $at_check_trace; ovn-nbctl lsp-set-type br-void_lswitch1 vtep
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:453"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:453: ovn-nbctl lsp-set-options br-void_lswitch1 vtep-physical-switch=br-vtep vtep-logical-switch=lswitch1"
at_fn_check_prepare_trace "ovn-controller-vtep.at:453"
( $at_check_trace; ovn-nbctl lsp-set-options br-void_lswitch1 vtep-physical-switch=br-vtep vtep-logical-switch=lswitch1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:453"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


$as_echo "ovn-controller-vtep.at:454: waiting until test -n \"\`ovn-sbctl list Port_Binding  | grep br-void_lswitch1\`\"..." >&5
ovs_wait_cond () {
    test -n "`ovn-sbctl list Port_Binding  | grep br-void_lswitch1`"
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:454: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:454" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:454"
fi


# checks Ucast_Macs_Remote creation.  Should see two entries since it is allowed
# to have duplicate macs in different logical switches.
$as_echo "ovn-controller-vtep.at:458: waiting until test \`vtep-ctl --columns=MAC list Ucast_Macs_Remote | grep 02 | wc -l\` -gt 1..." >&5
ovs_wait_cond () {
    test `vtep-ctl --columns=MAC list Ucast_Macs_Remote | grep 02 | wc -l` -gt 1
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:458: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:458" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:458"
fi

{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:459: vtep-ctl --columns=MAC list Ucast_Macs_Remote | cut -d ':' -f2- | tr -d ' ' | sort"
at_fn_check_prepare_notrace 'a shell pipeline' "ovn-controller-vtep.at:459"
( $at_check_trace; vtep-ctl --columns=MAC list Ucast_Macs_Remote | cut -d ':' -f2- | tr -d ' ' | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "
\"f0:ab:cd:ef:01:02\"
\"f0:ab:cd:ef:01:02\"
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:459"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:465: check_logs \"/has already been known to be on logical port/d\""
at_fn_check_prepare_trace "ovn-controller-vtep.at:465"
( $at_check_trace; check_logs "/has already been known to be on logical port/d"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:465"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:465: test -e \$OVS_RUNDIR/ovs-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vtep.pid" "ovn-controller-vtep.at:465"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:465"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:465: ovs-appctl --timeout=10 -t ovs-vtep exit"
at_fn_check_prepare_trace "ovn-controller-vtep.at:465"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:465"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   $as_echo "ovn-controller-vtep.at:465: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:465: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:465" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:465"
fi

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:465: test -e \$OVS_RUNDIR/ovn-northd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-northd.pid" "ovn-controller-vtep.at:465"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-northd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:465"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-northd.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:465: ovs-appctl --timeout=10 -t ovn-northd exit"
at_fn_check_prepare_trace "ovn-controller-vtep.at:465"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-northd exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:465"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   $as_echo "ovn-controller-vtep.at:465: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:465: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:465" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:465"
fi

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:465: test -e \$OVS_RUNDIR/ovn-controller-vtep.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovn-controller-vtep.pid" "ovn-controller-vtep.at:465"
( $at_check_trace; test -e $OVS_RUNDIR/ovn-controller-vtep.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:465"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovn-controller-vtep.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:465: ovs-appctl --timeout=10 -t ovn-controller-vtep exit"
at_fn_check_prepare_trace "ovn-controller-vtep.at:465"
( $at_check_trace; ovs-appctl --timeout=10 -t ovn-controller-vtep exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:465"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   $as_echo "ovn-controller-vtep.at:465: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:465: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:465" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:465"
fi

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:465: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "ovn-controller-vtep.at:465"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:465"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:465: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "ovn-controller-vtep.at:465"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:465"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   $as_echo "ovn-controller-vtep.at:465: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:465: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:465" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:465"
fi

   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:465: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "ovn-controller-vtep.at:465"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:465"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/ovn-controller-vtep.at:465: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "ovn-controller-vtep.at:465"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ovn-controller-vtep.at:465"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log" \
"ovn-northd.log" \
"ovn-controller-vtep.log"
$at_traceon; }

   $as_echo "ovn-controller-vtep.at:465: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "ovn-controller-vtep.at:465: wait failed" >&5

    $as_echo "ovn-controller-vtep.at:465" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/ovn-controller-vtep.at:465"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2516
#AT_START_2517
at_fn_group_banner 2517 'mcast-snooping.at:3' \
  "mcast - check multicasts to trunk ports are not duplicated" "" 131
at_xfail=no
(
  $as_echo "2517. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/mcast-snooping.at:5: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "mcast-snooping.at:5"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:5"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/mcast-snooping.at:5: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "mcast-snooping.at:5"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:5"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/mcast-snooping.at:5: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "mcast-snooping.at:5"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:5"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/mcast-snooping.at:5: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "mcast-snooping.at:5"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:5"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/mcast-snooping.at:5: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "mcast-snooping.at:5"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:5"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/mcast-snooping.at:5: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "mcast-snooping.at:5"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:5"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/mcast-snooping.at:5: add_of_br 0  "
at_fn_check_prepare_trace "mcast-snooping.at:5"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:5"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/mcast-snooping.at:7:
    ovs-vsctl set bridge br0 \\
    datapath_type=dummy \\
    mcast_snooping_enable=true \\
    other-config:mcast-snooping-disable-flood-unregistered=true
"
at_fn_check_prepare_notrace 'an embedded newline' "mcast-snooping.at:7"
( $at_check_trace;
    ovs-vsctl set bridge br0 \
    datapath_type=dummy \
    mcast_snooping_enable=true \
    other-config:mcast-snooping-disable-flood-unregistered=true

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:7"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mcast-snooping.at:14: ovs-ofctl add-flow br0 action=normal"
at_fn_check_prepare_trace "mcast-snooping.at:14"
( $at_check_trace; ovs-ofctl add-flow br0 action=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:14"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Create an access port p1 on vlan 1725, and a trunk port p2.
{ set +x
$as_echo "$at_srcdir/mcast-snooping.at:17:
    ovs-vsctl add-port br0 p1 tag=1725 -- set Interface p1 type=dummy \\
    other-config:hwaddr=aa:55:aa:55:00:01 ofport_request=1 \\
    -- add-port br0 p2 -- set Interface p2 type=dummy \\
    other-config:hwaddr=aa:55:aa:55:00:02 ofport_request=2
"
at_fn_check_prepare_notrace 'an embedded newline' "mcast-snooping.at:17"
( $at_check_trace;
    ovs-vsctl add-port br0 p1 tag=1725 -- set Interface p1 type=dummy \
    other-config:hwaddr=aa:55:aa:55:00:01 ofport_request=1 \
    -- add-port br0 p2 -- set Interface p2 type=dummy \
    other-config:hwaddr=aa:55:aa:55:00:02 ofport_request=2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:17"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mcast-snooping.at:24: ovs-appctl dpif/show"
at_fn_check_prepare_trace "mcast-snooping.at:24"
( $at_check_trace; ovs-appctl dpif/show
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "dummy@ovs-dummy: hit:0 missed:0
	br0:
		br0 65534/100: (dummy-internal)
		p1 1/1: (dummy)
		p2 2/2: (dummy)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:24"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/stop

# Send IGMPv3 query on p2 with vlan 1725
# 5c:8a:38:55:25:52 > 01:00:5e:00:00:01, ethertype 802.1Q (0x8100), length 64: vlan 1725, p 0, ethertype IPv4,
# 172.17.25.1 > 224.0.0.1: igmp query v3
{ set +x
$as_echo "$at_srcdir/mcast-snooping.at:37: ovs-appctl netdev-dummy/receive p2 \\
'01005e0000015c8a38552552810006bd080046c000240000000001027f00ac111901e0000001940400001164ec1e00000000027d000000000000000000000000'"
at_fn_check_prepare_notrace 'an embedded newline' "mcast-snooping.at:37"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 \
'01005e0000015c8a38552552810006bd080046c000240000000001027f00ac111901e0000001940400001164ec1e00000000027d000000000000000000000000'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:37"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Send IGMPv3 query on p2 with vlan 1728
# 5c:8a:38:55:25:52 > 01:00:5e:00:00:01, ethertype 802.1Q (0x8100), length 64: vlan 1728, p 0, ethertype IPv4,
# 172.17.28.1 > 224.0.0.1: igmp query v3
{ set +x
$as_echo "$at_srcdir/mcast-snooping.at:43: ovs-appctl netdev-dummy/receive p2 \\
'01005e0000015c8a38552552810006c0080046c000240000000001027c00ac111c01e0000001940400001164ec1e00000000027d000000000000000000000000'"
at_fn_check_prepare_notrace 'an embedded newline' "mcast-snooping.at:43"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 \
'01005e0000015c8a38552552810006c0080046c000240000000001027c00ac111c01e0000001940400001164ec1e00000000027d000000000000000000000000'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:43"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mcast-snooping.at:46: ovs-appctl mdb/show br0"
at_fn_check_prepare_trace "mcast-snooping.at:46"
( $at_check_trace; ovs-appctl mdb/show br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " port  VLAN  GROUP                Age
    2  1725  querier               0
    2  1728  querier               0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:46"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mcast-snooping.at:52: ovs-vsctl set Interface p2 options:tx_pcap=p2.pcap"
at_fn_check_prepare_trace "mcast-snooping.at:52"
( $at_check_trace; ovs-vsctl set Interface p2 options:tx_pcap=p2.pcap
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:52"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Send a multicast packet on p1
{ set +x
$as_echo "$at_srcdir/mcast-snooping.at:55:
    ovs-appctl netdev-dummy/receive p1 \\
    'in_port(1),eth(src=aa:55:aa:55:00:01,dst=01:00:5e:5e:01:01),eth_type(0x0800),ipv4(src=10.0.0.1,dst=239.94.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=0,dst=8000)'
"
at_fn_check_prepare_notrace 'an embedded newline' "mcast-snooping.at:55"
( $at_check_trace;
    ovs-appctl netdev-dummy/receive p1 \
    'in_port(1),eth(src=aa:55:aa:55:00:01,dst=01:00:5e:5e:01:01),eth_type(0x0800),ipv4(src=10.0.0.1,dst=239.94.1.1,proto=17,tos=0,ttl=64,frag=no),udp(src=0,dst=8000)'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:55"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Check this packet was forwarded exactly once to p2 and has vlan tag 1725
# aa:55:aa:55:00:01 > 01:00:5e:5e:01:01, ethertype 802.1Q (0x8100), length 46: vlan 1725, p 0, ethertype IPv4,
# 10.0.0.1.0 > 239.94.1.1.8000: UDP, length 0
{ set +x
$as_echo "$at_srcdir/mcast-snooping.at:63: ovs-pcap p2.pcap > p2.pcap.txt 2>&1"
at_fn_check_prepare_trace "mcast-snooping.at:63"
( $at_check_trace; ovs-pcap p2.pcap > p2.pcap.txt 2>&1
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:63"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

{ set +x
$as_echo "$at_srcdir/mcast-snooping.at:64: cat p2.pcap.txt"
at_fn_check_prepare_trace "mcast-snooping.at:64"
( $at_check_trace; cat p2.pcap.txt
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "01005e5e0101aa55aa550001810006bd08004500001c00000000401180710a000001ef5e010100001f400008e63d
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:64"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Clear the mdb, send a IGMP packet with invalid checksum and make sure it
# does not end up in the mdb.
{ set +x
$as_echo "$at_srcdir/mcast-snooping.at:70: ovs-appctl mdb/flush br0"
at_fn_check_prepare_trace "mcast-snooping.at:70"
( $at_check_trace; ovs-appctl mdb/flush br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "table successfully flushed
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:70"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mcast-snooping.at:74: ovs-appctl netdev-dummy/receive p2 \\
'01005e0000015c8a38552552810006bd080046c000240000000001027f00ac111901e0000001940400001164ec1000000000027d000000000000000000000000'"
at_fn_check_prepare_notrace 'an embedded newline' "mcast-snooping.at:74"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 \
'01005e0000015c8a38552552810006bd080046c000240000000001027f00ac111901e0000001940400001164ec1000000000027d000000000000000000000000'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:74"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mcast-snooping.at:77: ovs-appctl mdb/show br0"
at_fn_check_prepare_trace "mcast-snooping.at:77"
( $at_check_trace; ovs-appctl mdb/show br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " port  VLAN  GROUP                Age
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:77"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# First send a valid packet to make sure it populates the mdb. Than Clear
# the mdb, send a MLD packet with invalid checksum and make sure it does
# not end up in the mdb.

{ set +x
$as_echo "$at_srcdir/mcast-snooping.at:86: ovs-appctl netdev-dummy/receive p2 \\
'3333ff0e4c67000c290e4c6786dd600000000020000100000000000000000000000000000000ff0200000000000000000001ff0e4c673a000502000001008300e7b800000000ff0200000000000000000001ff0e4c67'"
at_fn_check_prepare_notrace 'an embedded newline' "mcast-snooping.at:86"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 \
'3333ff0e4c67000c290e4c6786dd600000000020000100000000000000000000000000000000ff0200000000000000000001ff0e4c673a000502000001008300e7b800000000ff0200000000000000000001ff0e4c67'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:86"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mcast-snooping.at:89: ovs-appctl mdb/show br0"
at_fn_check_prepare_trace "mcast-snooping.at:89"
( $at_check_trace; ovs-appctl mdb/show br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " port  VLAN  GROUP                Age
    2     0  ff02::1:ff0e:4c67           0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:89"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mcast-snooping.at:94: ovs-appctl mdb/flush br0"
at_fn_check_prepare_trace "mcast-snooping.at:94"
( $at_check_trace; ovs-appctl mdb/flush br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "table successfully flushed
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:94"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mcast-snooping.at:98: ovs-appctl netdev-dummy/receive p2 \\
'3333ff0e4c67000c290e4c6786dd600000000020000100000000000000000000000000000000ff0200000000000000000001ff0e4c673a000502000001008300e7b000000000ff0200000000000000000001ff0e4c67'"
at_fn_check_prepare_notrace 'an embedded newline' "mcast-snooping.at:98"
( $at_check_trace; ovs-appctl netdev-dummy/receive p2 \
'3333ff0e4c67000c290e4c6786dd600000000020000100000000000000000000000000000000ff0200000000000000000001ff0e4c673a000502000001008300e7b000000000ff0200000000000000000001ff0e4c67'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:98"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mcast-snooping.at:101: ovs-appctl mdb/show br0"
at_fn_check_prepare_trace "mcast-snooping.at:101"
( $at_check_trace; ovs-appctl mdb/show br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " port  VLAN  GROUP                Age
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:101"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mcast-snooping.at:105: check_logs "
at_fn_check_prepare_trace "mcast-snooping.at:105"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:105"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/mcast-snooping.at:105: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "mcast-snooping.at:105"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:105"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/mcast-snooping.at:105: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "mcast-snooping.at:105"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:105"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "mcast-snooping.at:105: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "mcast-snooping.at:105: wait failed" >&5

    $as_echo "mcast-snooping.at:105" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/mcast-snooping.at:105"
fi

   { set +x
$as_echo "$at_srcdir/mcast-snooping.at:105: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "mcast-snooping.at:105"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:105"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/mcast-snooping.at:105: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "mcast-snooping.at:105"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:105"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "mcast-snooping.at:105: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "mcast-snooping.at:105: wait failed" >&5

    $as_echo "mcast-snooping.at:105" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/mcast-snooping.at:105"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2517
#AT_START_2518
at_fn_group_banner 2518 'mcast-snooping.at:108' \
  "mcast - delete the port mdb when vlan configuration changed" "" 131
at_xfail=no
(
  $as_echo "2518. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/mcast-snooping.at:109: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "mcast-snooping.at:109"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:109"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/mcast-snooping.at:109: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "mcast-snooping.at:109"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:109"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/mcast-snooping.at:109: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "mcast-snooping.at:109"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:109"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/mcast-snooping.at:109: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "mcast-snooping.at:109"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:109"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/mcast-snooping.at:109: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "mcast-snooping.at:109"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:109"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/mcast-snooping.at:109: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "mcast-snooping.at:109"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:109"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/mcast-snooping.at:109: add_of_br 0  "
at_fn_check_prepare_trace "mcast-snooping.at:109"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:109"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/mcast-snooping.at:111:
    ovs-vsctl set bridge br0 \\
    datapath_type=dummy \\
    mcast_snooping_enable=true \\
    other-config:mcast-snooping-disable-flood-unregistered=false
"
at_fn_check_prepare_notrace 'an embedded newline' "mcast-snooping.at:111"
( $at_check_trace;
    ovs-vsctl set bridge br0 \
    datapath_type=dummy \
    mcast_snooping_enable=true \
    other-config:mcast-snooping-disable-flood-unregistered=false

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:111"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mcast-snooping.at:118: ovs-ofctl add-flow br0 action=normal"
at_fn_check_prepare_trace "mcast-snooping.at:118"
( $at_check_trace; ovs-ofctl add-flow br0 action=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:118"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mcast-snooping.at:120:
    ovs-vsctl add-port br0 p1 -- set Interface p1 type=dummy \\
    other-config:hwaddr=aa:55:aa:55:00:01 ofport_request=1 \\
    -- add-port br0 p2 \\
    -- set Interface p2 type=dummy other-config:hwaddr=aa:55:aa:55:00:02 ofport_request=2 \\
    -- add-port br0 p3 \\
    -- set Interface p3 type=dummy other-config:hwaddr=aa:55:aa:55:00:03 ofport_request=3
"
at_fn_check_prepare_notrace 'an embedded newline' "mcast-snooping.at:120"
( $at_check_trace;
    ovs-vsctl add-port br0 p1 -- set Interface p1 type=dummy \
    other-config:hwaddr=aa:55:aa:55:00:01 ofport_request=1 \
    -- add-port br0 p2 \
    -- set Interface p2 type=dummy other-config:hwaddr=aa:55:aa:55:00:02 ofport_request=2 \
    -- add-port br0 p3 \
    -- set Interface p3 type=dummy other-config:hwaddr=aa:55:aa:55:00:03 ofport_request=3

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:120"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/stop

# send report packets
{ set +x
$as_echo "$at_srcdir/mcast-snooping.at:132:
    ovs-appctl netdev-dummy/receive p1  \\
        '01005E010101000C29A027A18100000108004500001C000100004002CBAEAC10221EE001010112140CE9E0010101'
    ovs-appctl netdev-dummy/receive p1  \\
        '01005E010101000C29A027A28100000208004500001C000100004002CBAEAC10221EE001010112140CE9E0010101'
"
at_fn_check_prepare_notrace 'an embedded newline' "mcast-snooping.at:132"
( $at_check_trace;
    ovs-appctl netdev-dummy/receive p1  \
        '01005E010101000C29A027A18100000108004500001C000100004002CBAEAC10221EE001010112140CE9E0010101'
    ovs-appctl netdev-dummy/receive p1  \
        '01005E010101000C29A027A28100000208004500001C000100004002CBAEAC10221EE001010112140CE9E0010101'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:132"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# send query packets
{ set +x
$as_echo "$at_srcdir/mcast-snooping.at:140:
    ovs-appctl netdev-dummy/receive p3  \\
       '01005E010101000C29A027D18100000108004500001C000100004002CBCBAC102201E00101011114EEEB00000000'
    ovs-appctl netdev-dummy/receive p3  \\
        '01005E010101000C29A027D28100000208004500001C000100004002CBCAAC102202E00101011114EEEB00000000'
"
at_fn_check_prepare_notrace 'an embedded newline' "mcast-snooping.at:140"
( $at_check_trace;
    ovs-appctl netdev-dummy/receive p3  \
       '01005E010101000C29A027D18100000108004500001C000100004002CBCBAC102201E00101011114EEEB00000000'
    ovs-appctl netdev-dummy/receive p3  \
        '01005E010101000C29A027D28100000208004500001C000100004002CBCAAC102202E00101011114EEEB00000000'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:140"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mcast-snooping.at:147: ovs-appctl mdb/show br0"
at_fn_check_prepare_trace "mcast-snooping.at:147"
( $at_check_trace; ovs-appctl mdb/show br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " port  VLAN  GROUP                Age
    1     1  224.1.1.1           0
    1     2  224.1.1.1           0
    3     1  querier               0
    3     2  querier               0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:147"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mcast-snooping.at:155: ovs-vsctl set port p3 tag=2"
at_fn_check_prepare_trace "mcast-snooping.at:155"
( $at_check_trace; ovs-vsctl set port p3 tag=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:155"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mcast-snooping.at:157: ovs-appctl mdb/show br0"
at_fn_check_prepare_trace "mcast-snooping.at:157"
( $at_check_trace; ovs-appctl mdb/show br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " port  VLAN  GROUP                Age
    1     1  224.1.1.1           0
    1     2  224.1.1.1           0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:157"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2518
#AT_START_2519
at_fn_group_banner 2519 'mcast-snooping.at:165' \
  "mcast - delete the port mdb when port destroyed" "" 131
at_xfail=no
(
  $as_echo "2519. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/mcast-snooping.at:166: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "mcast-snooping.at:166"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:166"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/mcast-snooping.at:166: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "mcast-snooping.at:166"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:166"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/mcast-snooping.at:166: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "mcast-snooping.at:166"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:166"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/mcast-snooping.at:166: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "mcast-snooping.at:166"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:166"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/mcast-snooping.at:166: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "mcast-snooping.at:166"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:166"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/mcast-snooping.at:166: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "mcast-snooping.at:166"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:166"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/mcast-snooping.at:166: add_of_br 0  "
at_fn_check_prepare_trace "mcast-snooping.at:166"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:166"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/mcast-snooping.at:168:
    ovs-vsctl set bridge br0 \\
    datapath_type=dummy \\
    mcast_snooping_enable=true \\
    other-config:mcast-snooping-disable-flood-unregistered=false
"
at_fn_check_prepare_notrace 'an embedded newline' "mcast-snooping.at:168"
( $at_check_trace;
    ovs-vsctl set bridge br0 \
    datapath_type=dummy \
    mcast_snooping_enable=true \
    other-config:mcast-snooping-disable-flood-unregistered=false

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:168"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mcast-snooping.at:175: ovs-ofctl add-flow br0 action=normal"
at_fn_check_prepare_trace "mcast-snooping.at:175"
( $at_check_trace; ovs-ofctl add-flow br0 action=normal
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:175"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mcast-snooping.at:177:
    ovs-vsctl add-port br0 p1 -- set Interface p1 type=dummy \\
    other-config:hwaddr=aa:55:aa:55:00:01 ofport_request=1 \\
    -- add-port br0 p2 \\
    -- set Interface p2 type=dummy other-config:hwaddr=aa:55:aa:55:00:02 ofport_request=2 \\
"
at_fn_check_prepare_notrace 'an embedded newline' "mcast-snooping.at:177"
( $at_check_trace;
    ovs-vsctl add-port br0 p1 -- set Interface p1 type=dummy \
    other-config:hwaddr=aa:55:aa:55:00:01 ofport_request=1 \
    -- add-port br0 p2 \
    -- set Interface p2 type=dummy other-config:hwaddr=aa:55:aa:55:00:02 ofport_request=2 \

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:177"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/stop

# send report packets
{ set +x
$as_echo "$at_srcdir/mcast-snooping.at:187:
    ovs-appctl netdev-dummy/receive p1  \\
        '01005E010101000C29A027A18100000108004500001C000100004002CBAEAC10221EE001010112140CE9E0010101'
    ovs-appctl netdev-dummy/receive p1  \\
        '01005E010101000C29A027A28100000208004500001C000100004002CBAEAC10221EE001010112140CE9E0010101'
"
at_fn_check_prepare_notrace 'an embedded newline' "mcast-snooping.at:187"
( $at_check_trace;
    ovs-appctl netdev-dummy/receive p1  \
        '01005E010101000C29A027A18100000108004500001C000100004002CBAEAC10221EE001010112140CE9E0010101'
    ovs-appctl netdev-dummy/receive p1  \
        '01005E010101000C29A027A28100000208004500001C000100004002CBAEAC10221EE001010112140CE9E0010101'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:187"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# send query packets
{ set +x
$as_echo "$at_srcdir/mcast-snooping.at:195:
    ovs-appctl netdev-dummy/receive p2  \\
       '01005E010101000C29A027D18100000108004500001C000100004002CBCBAC102201E00101011114EEEB00000000'
    ovs-appctl netdev-dummy/receive p2  \\
        '01005E010101000C29A027D28100000208004500001C000100004002CBCAAC102202E00101011114EEEB00000000'
"
at_fn_check_prepare_notrace 'an embedded newline' "mcast-snooping.at:195"
( $at_check_trace;
    ovs-appctl netdev-dummy/receive p2  \
       '01005E010101000C29A027D18100000108004500001C000100004002CBCBAC102201E00101011114EEEB00000000'
    ovs-appctl netdev-dummy/receive p2  \
        '01005E010101000C29A027D28100000208004500001C000100004002CBCAAC102202E00101011114EEEB00000000'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:195"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mcast-snooping.at:202: ovs-appctl mdb/show br0"
at_fn_check_prepare_trace "mcast-snooping.at:202"
( $at_check_trace; ovs-appctl mdb/show br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " port  VLAN  GROUP                Age
    1     1  224.1.1.1           0
    1     2  224.1.1.1           0
    2     1  querier               0
    2     2  querier               0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:202"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mcast-snooping.at:210: ovs-vsctl del-port br0 p2"
at_fn_check_prepare_trace "mcast-snooping.at:210"
( $at_check_trace; ovs-vsctl del-port br0 p2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:210"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/mcast-snooping.at:212: ovs-appctl mdb/show br0"
at_fn_check_prepare_trace "mcast-snooping.at:212"
( $at_check_trace; ovs-appctl mdb/show br0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " port  VLAN  GROUP                Age
    1     1  224.1.1.1           0
    1     2  224.1.1.1           0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/mcast-snooping.at:212"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2519
#AT_START_2520
at_fn_group_banner 2520 'packet-type-aware.at:3' \
  "ptap - legal flow entries in ptap bridge" "       " 132
at_xfail=no
(
  $as_echo "2520. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:5: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "packet-type-aware.at:5"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:5"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/packet-type-aware.at:5: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "packet-type-aware.at:5"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:5"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:5: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:5"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:5"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/packet-type-aware.at:5: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "packet-type-aware.at:5"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:5"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/packet-type-aware.at:5: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "packet-type-aware.at:5"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:5"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:5: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:5"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:5"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:5: add_of_br 0  "
at_fn_check_prepare_trace "packet-type-aware.at:5"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:5"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:7:
    ovs-ofctl del-flows br0
    ovs-ofctl -Oopenflow13 add-flow br0 priority=1,dl_src=11:22:33:44:55:66,eth_type=0x1234,actions=drop
    ovs-ofctl -Oopenflow14 add-flow br0 priority=1,ip,nw_dst=10.11.12.13,actions=drop
    ovs-ofctl -Oopenflow15 add-flow br0 priority=1,ipv6,nw_proto=6,actions=drop
    ovs-ofctl -Oopenflow14 add-flow br0 priority=2,packet_type=\\(0,0x0\\),dl_src=11:22:33:44:55:66,dl_type=0x4567,actions=drop
    ovs-ofctl -Oopenflow15 add-flow br0 priority=2,packet_type=\\(0,0x0\\),arp,arp_tpa=10.11.12.13,actions=drop
    ovs-ofctl -Oopenflow15 add-flow br0 priority=3,packet_type=\\(1,0x806\\),arp_tpa=10.11.12.13,actions=drop
    ovs-ofctl -Oopenflow13 add-flow br0 priority=3,packet_type=\\(1,0x800\\),nw_dst=10.11.12.13,actions=drop
    ovs-ofctl -Oopenflow14 add-flow br0 priority=3,packet_type=\\(1,0x86dd\\),ipv6_dst=1234:5678::/32,actions=drop
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:7"
( $at_check_trace;
    ovs-ofctl del-flows br0
    ovs-ofctl -Oopenflow13 add-flow br0 priority=1,dl_src=11:22:33:44:55:66,eth_type=0x1234,actions=drop
    ovs-ofctl -Oopenflow14 add-flow br0 priority=1,ip,nw_dst=10.11.12.13,actions=drop
    ovs-ofctl -Oopenflow15 add-flow br0 priority=1,ipv6,nw_proto=6,actions=drop
    ovs-ofctl -Oopenflow14 add-flow br0 priority=2,packet_type=\(0,0x0\),dl_src=11:22:33:44:55:66,dl_type=0x4567,actions=drop
    ovs-ofctl -Oopenflow15 add-flow br0 priority=2,packet_type=\(0,0x0\),arp,arp_tpa=10.11.12.13,actions=drop
    ovs-ofctl -Oopenflow15 add-flow br0 priority=3,packet_type=\(1,0x806\),arp_tpa=10.11.12.13,actions=drop
    ovs-ofctl -Oopenflow13 add-flow br0 priority=3,packet_type=\(1,0x800\),nw_dst=10.11.12.13,actions=drop
    ovs-ofctl -Oopenflow14 add-flow br0 priority=3,packet_type=\(1,0x86dd\),ipv6_dst=1234:5678::/32,actions=drop

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:7"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:19: ovs-ofctl -Oopenflow15 dump-flows br0 | ofctl_strip | sort | grep actions"
at_fn_check_prepare_notrace 'a shell pipeline' "packet-type-aware.at:19"
( $at_check_trace; ovs-ofctl -Oopenflow15 dump-flows br0 | ofctl_strip | sort | grep actions
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " priority=1,dl_src=11:22:33:44:55:66,dl_type=0x1234 actions=drop
 priority=1,ip,nw_dst=10.11.12.13 actions=drop
 priority=1,tcp6 actions=drop
 priority=2,arp,arp_tpa=10.11.12.13 actions=drop
 priority=2,dl_src=11:22:33:44:55:66,dl_type=0x4567 actions=drop
 priority=3,packet_type=(1,0x800),nw_dst=10.11.12.13 actions=drop
 priority=3,packet_type=(1,0x806),arp_tpa=10.11.12.13 actions=drop
 priority=3,packet_type=(1,0x86dd),ipv6_dst=1234:5678::/32 actions=drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:19"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:30: check_logs "
at_fn_check_prepare_trace "packet-type-aware.at:30"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:30"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:30: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "packet-type-aware.at:30"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:30"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:30: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "packet-type-aware.at:30"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:30"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "packet-type-aware.at:30: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "packet-type-aware.at:30: wait failed" >&5

    $as_echo "packet-type-aware.at:30" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/packet-type-aware.at:30"
fi

   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:30: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "packet-type-aware.at:30"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:30"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:30: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "packet-type-aware.at:30"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:30"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "packet-type-aware.at:30: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "packet-type-aware.at:30: wait failed" >&5

    $as_echo "packet-type-aware.at:30" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/packet-type-aware.at:30"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2520
#AT_START_2521
at_fn_group_banner 2521 'packet-type-aware.at:34' \
  "ptap - triangle bridge setup with L2 and L3 GRE tunnels" "" 132
at_xfail=no
(
  $as_echo "2521. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


########################
# GRE tunneling test setup for PTAP bridge
#
#     192.168.10.10           192.168.10.20             192.168.10.30
#          n1                       n2                        n3
#          |                        |                         |
#   +------o------+          +------o------+           +------o------+
#   |    br-in1   |          |    br-in2   |           |    br-in3   |
#   |             |          |   (PTAP)    |           |             |
#   +------o------+          +------o------+           +------o------+
#         gre                      gre                       gre
#   10.0.0.1                (10.0.0.2)                (10.0.0.3)
#  (20.0.0.1)                20.0.0.2                 (20.0.0.3)
#  (30.0.0.1) LOCAL         (30.0.0.2) LOCAL           30.0.0.3  LOCAL
#   +-----------o-+          +-----------o-+           +-----------o-+
#   |    br-p1    |          |    br-p2    |           |    br-p3    |
#   +------o------+          +------o------+           +------o------+
#     p1-0 |                        | p2-0                    | p3-0
#     p0-1 |                        | p0-2                    | p0-3
#       +--o------------------------o-------------------------o--+
#       |                          br0                           |
#       +--------------------------------------------------------+
#"
#   GRE tunnel ports:
#      No     Bridge      Name        Packet-type Remote bridge & ports
#     -----------------------------------------------------------------------
#      1020   br-in1      gre-12      legacy-l2   br-in2 2010 (ptap)
#      1021   br-in1      gre-12_l3   legacy-l3         same
#      1030   br-in1      gre-13      legacy-l2   br-in3 3010 (l2)
#      2010   br-in2      gre-21      ptap        br-in1 1020 (l2), 1021 (l3)
#      2030   br-in2      gre-23      ptap        br-in3 3020 (l2), 3021 (l3)
#      3010   br-in3      gre-31      legacy-l2   br-in1 1030 (l2)
#      3020   br-in3      gre-32      legacy-l2   br-in2 2010 (ptap)
#      3021   br-in3      gre-32_l3   legacy-l3         same

HWADDR_BRP1=aa:55:00:00:00:01
HWADDR_BRP2=aa:55:00:00:00:02
HWADDR_BRP3=aa:55:00:00:00:03

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:75: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "packet-type-aware.at:75"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:75"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/packet-type-aware.at:75: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "packet-type-aware.at:75"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:75"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:75: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:75"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:75"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/packet-type-aware.at:75: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "packet-type-aware.at:75"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:75"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/packet-type-aware.at:75: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "packet-type-aware.at:75"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:75"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:75: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:75"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:75"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:75: add_of_br 0     -- add-br br-in1 \\
    -- set bridge br-in1 datapath_type=dummy fail-mode=secure \\
    -- add-br br-in2 \\
    -- set bridge br-in2 datapath_type=dummy fail-mode=secure \\
    -- add-br br-in3 \\
    -- set bridge br-in3 datapath_type=dummy fail-mode=secure \\
    -- add-br br-p1 -- \\
    -- set bridge br-p1 datapath_type=dummy fail-mode=secure other-config:hwaddr=\\\"\$HWADDR_BRP1\\\" \\
    -- add-br br-p2 -- \\
    -- set bridge br-p2 datapath_type=dummy fail-mode=secure other-config:hwaddr=\\\"\$HWADDR_BRP2\\\" \\
    -- add-br br-p3 -- \\
    -- set bridge br-p3 datapath_type=dummy fail-mode=secure other-config:hwaddr=\\\"\$HWADDR_BRP3\\\" \\
    -- add-port br-p1 p1-0 \\
    -- set interface p1-0 type=patch options:peer=p0-1 ofport_request=2 \\
    -- add-port br-p2 p2-0 \\
    -- set interface p2-0 type=patch options:peer=p0-2 ofport_request=2 \\
    -- add-port br-p3 p3-0 \\
    -- set interface p3-0 type=patch options:peer=p0-3 ofport_request=2 \\
    -- add-port br0 p0-1 \\
    -- set interface p0-1 type=patch options:peer=p1-0 ofport_request=10 \\
    -- add-port br0 p0-2 \\
    -- set interface p0-2 type=patch options:peer=p2-0 ofport_request=20 \\
    -- add-port br0 p0-3 \\
    -- set interface p0-3 type=patch options:peer=p3-0 ofport_request=30 \\
    -- add-port br-in1 gre12 \\
    -- set interface gre12 type=gre options:remote_ip=10.0.0.2 \\
                           ofport_request=1020 \\
    -- add-port br-in1 gre12_l3 \\
    -- set interface gre12_l3 type=gre options:remote_ip=10.0.0.2 \\
                           ofport_request=1021 options:packet_type=legacy_l3 \\
    -- add-port br-in1 gre13 \\
    -- set interface gre13 type=gre options:remote_ip=10.0.0.3 \\
                           ofport_request=1030 \\
    -- add-port br-in2 gre21 \\
    -- set interface gre21 type=gre options:remote_ip=20.0.0.1 \\
                           ofport_request=2010 options:packet_type=ptap \\
    -- add-port br-in2 gre23 \\
    -- set interface gre23 type=gre options:remote_ip=20.0.0.3 \\
                           ofport_request=2030 options:packet_type=ptap \\
    -- add-port br-in3 gre31 \\
    -- set interface gre31 type=gre options:remote_ip=30.0.0.1 \\
                           ofport_request=3010 \\
    -- add-port br-in3 gre32 \\
    -- set interface gre32 type=gre options:remote_ip=30.0.0.2 \\
                           ofport_request=3020 \\
    -- add-port br-in3 gre32_l3 \\
    -- set interface gre32_l3 type=gre options:remote_ip=30.0.0.2 \\
                           ofport_request=3021 options:packet_type=legacy_l3
 "
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:75"
( $at_check_trace; add_of_br 0     -- add-br br-in1 \
    -- set bridge br-in1 datapath_type=dummy fail-mode=secure \
    -- add-br br-in2 \
    -- set bridge br-in2 datapath_type=dummy fail-mode=secure \
    -- add-br br-in3 \
    -- set bridge br-in3 datapath_type=dummy fail-mode=secure \
    -- add-br br-p1 -- \
    -- set bridge br-p1 datapath_type=dummy fail-mode=secure other-config:hwaddr=\"$HWADDR_BRP1\" \
    -- add-br br-p2 -- \
    -- set bridge br-p2 datapath_type=dummy fail-mode=secure other-config:hwaddr=\"$HWADDR_BRP2\" \
    -- add-br br-p3 -- \
    -- set bridge br-p3 datapath_type=dummy fail-mode=secure other-config:hwaddr=\"$HWADDR_BRP3\" \
    -- add-port br-p1 p1-0 \
    -- set interface p1-0 type=patch options:peer=p0-1 ofport_request=2 \
    -- add-port br-p2 p2-0 \
    -- set interface p2-0 type=patch options:peer=p0-2 ofport_request=2 \
    -- add-port br-p3 p3-0 \
    -- set interface p3-0 type=patch options:peer=p0-3 ofport_request=2 \
    -- add-port br0 p0-1 \
    -- set interface p0-1 type=patch options:peer=p1-0 ofport_request=10 \
    -- add-port br0 p0-2 \
    -- set interface p0-2 type=patch options:peer=p2-0 ofport_request=20 \
    -- add-port br0 p0-3 \
    -- set interface p0-3 type=patch options:peer=p3-0 ofport_request=30 \
    -- add-port br-in1 gre12 \
    -- set interface gre12 type=gre options:remote_ip=10.0.0.2 \
                           ofport_request=1020 \
    -- add-port br-in1 gre12_l3 \
    -- set interface gre12_l3 type=gre options:remote_ip=10.0.0.2 \
                           ofport_request=1021 options:packet_type=legacy_l3 \
    -- add-port br-in1 gre13 \
    -- set interface gre13 type=gre options:remote_ip=10.0.0.3 \
                           ofport_request=1030 \
    -- add-port br-in2 gre21 \
    -- set interface gre21 type=gre options:remote_ip=20.0.0.1 \
                           ofport_request=2010 options:packet_type=ptap \
    -- add-port br-in2 gre23 \
    -- set interface gre23 type=gre options:remote_ip=20.0.0.3 \
                           ofport_request=2030 options:packet_type=ptap \
    -- add-port br-in3 gre31 \
    -- set interface gre31 type=gre options:remote_ip=30.0.0.1 \
                           ofport_request=3010 \
    -- add-port br-in3 gre32 \
    -- set interface gre32 type=gre options:remote_ip=30.0.0.2 \
                           ofport_request=3020 \
    -- add-port br-in3 gre32_l3 \
    -- set interface gre32_l3 type=gre options:remote_ip=30.0.0.2 \
                           ofport_request=3021 options:packet_type=legacy_l3

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:75"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Setup bridge infrastructure
{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:127:
    # Populate the MAC table of br0
    ovs-ofctl del-flows br0 &&
    ovs-ofctl add-flow br0 dl_dst=\$HWADDR_BRP1,actions=10 &&
    ovs-ofctl add-flow br0 dl_dst=\$HWADDR_BRP2,actions=20 &&
    ovs-ofctl add-flow br0 dl_dst=\$HWADDR_BRP3,actions=30 &&

    ovs-ofctl del-flows br-in1 &&
    ovs-ofctl del-flows br-in2 &&
    ovs-ofctl del-flows br-in3 &&
    ovs-ofctl del-flows br-p1 &&
    ovs-ofctl del-flows br-p2 &&
    ovs-ofctl del-flows br-p3
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:127"
( $at_check_trace;
    # Populate the MAC table of br0
    ovs-ofctl del-flows br0 &&
    ovs-ofctl add-flow br0 dl_dst=$HWADDR_BRP1,actions=10 &&
    ovs-ofctl add-flow br0 dl_dst=$HWADDR_BRP2,actions=20 &&
    ovs-ofctl add-flow br0 dl_dst=$HWADDR_BRP3,actions=30 &&

    ovs-ofctl del-flows br-in1 &&
    ovs-ofctl del-flows br-in2 &&
    ovs-ofctl del-flows br-in3 &&
    ovs-ofctl del-flows br-p1 &&
    ovs-ofctl del-flows br-p2 &&
    ovs-ofctl del-flows br-p3

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:127"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


### Setup GRE tunnels
{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:143:
    ovs-appctl netdev-dummy/ip4addr br-p1 10.0.0.1/24 &&
    ovs-appctl ovs/route/add 10.0.0.0/24 br-p1 &&
    ovs-appctl tnl/arp/set br-p1 10.0.0.1 \$HWADDR_BRP1 &&
    ovs-appctl tnl/arp/set br-p1 10.0.0.2 \$HWADDR_BRP2 &&
    ovs-appctl tnl/arp/set br-p1 10.0.0.3 \$HWADDR_BRP3 &&

    ovs-appctl netdev-dummy/ip4addr br-p2 20.0.0.2/24 &&
    ovs-appctl ovs/route/add 20.0.0.0/24 br-p2 &&
    ovs-appctl tnl/arp/set br-p2 20.0.0.1 \$HWADDR_BRP1 &&
    ovs-appctl tnl/arp/set br-p2 20.0.0.2 \$HWADDR_BRP2 &&
    ovs-appctl tnl/arp/set br-p2 20.0.0.3 \$HWADDR_BRP3 &&

    ovs-appctl netdev-dummy/ip4addr br-p3 30.0.0.3/24 &&
    ovs-appctl ovs/route/add 30.0.0.0/24 br-p3 &&
    ovs-appctl tnl/arp/set br-p3 30.0.0.1 \$HWADDR_BRP1 &&
    ovs-appctl tnl/arp/set br-p3 30.0.0.2 \$HWADDR_BRP2 &&
    ovs-appctl tnl/arp/set br-p3 30.0.0.3 \$HWADDR_BRP3
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:143"
( $at_check_trace;
    ovs-appctl netdev-dummy/ip4addr br-p1 10.0.0.1/24 &&
    ovs-appctl ovs/route/add 10.0.0.0/24 br-p1 &&
    ovs-appctl tnl/arp/set br-p1 10.0.0.1 $HWADDR_BRP1 &&
    ovs-appctl tnl/arp/set br-p1 10.0.0.2 $HWADDR_BRP2 &&
    ovs-appctl tnl/arp/set br-p1 10.0.0.3 $HWADDR_BRP3 &&

    ovs-appctl netdev-dummy/ip4addr br-p2 20.0.0.2/24 &&
    ovs-appctl ovs/route/add 20.0.0.0/24 br-p2 &&
    ovs-appctl tnl/arp/set br-p2 20.0.0.1 $HWADDR_BRP1 &&
    ovs-appctl tnl/arp/set br-p2 20.0.0.2 $HWADDR_BRP2 &&
    ovs-appctl tnl/arp/set br-p2 20.0.0.3 $HWADDR_BRP3 &&

    ovs-appctl netdev-dummy/ip4addr br-p3 30.0.0.3/24 &&
    ovs-appctl ovs/route/add 30.0.0.0/24 br-p3 &&
    ovs-appctl tnl/arp/set br-p3 30.0.0.1 $HWADDR_BRP1 &&
    ovs-appctl tnl/arp/set br-p3 30.0.0.2 $HWADDR_BRP2 &&
    ovs-appctl tnl/arp/set br-p3 30.0.0.3 $HWADDR_BRP3

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:143"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:163:
    ovs-appctl ovs/route/show | grep User:
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:163"
( $at_check_trace;
    ovs-appctl ovs/route/show | grep User:

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "User: 10.0.0.0/24 dev br-p1 SRC 10.0.0.1
User: 20.0.0.0/24 dev br-p2 SRC 20.0.0.2
User: 30.0.0.0/24 dev br-p3 SRC 30.0.0.3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:163"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:171:
    ovs-appctl tnl/neigh/show | grep br-p | sort
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:171"
( $at_check_trace;
    ovs-appctl tnl/neigh/show | grep br-p | sort

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:171"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


### Flows in br-p<x>to twist TEP IP addresses in tunnel IP headers
{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:176:
    ovs-ofctl add-flow br-p1 in_port:LOCAL,actions=2
    ovs-ofctl add-flow br-p1 in_port:2,ip,nw_dst:20.0.0.1,actions=mod_nw_dst:10.0.0.1,mod_nw_src:10.0.0.2,LOCAL
    ovs-ofctl add-flow br-p1 in_port:2,ip,nw_dst:30.0.0.1,actions=mod_nw_dst:10.0.0.1,mod_nw_src:10.0.0.3,LOCAL

    ovs-ofctl add-flow br-p2 in_port:LOCAL,actions=2
    ovs-ofctl add-flow br-p2 in_port:2,ip,nw_dst:10.0.0.2,actions=mod_nw_dst:20.0.0.2,mod_nw_src:20.0.0.1,LOCAL
    ovs-ofctl add-flow br-p2 in_port:2,ip,nw_dst:30.0.0.2,actions=mod_nw_dst:20.0.0.2,mod_nw_src:20.0.0.3,LOCAL

    ovs-ofctl add-flow br-p3 in_port:LOCAL,actions=2
    ovs-ofctl add-flow br-p3 in_port:2,ip,nw_dst:10.0.0.3,actions=mod_nw_dst:30.0.0.3,mod_nw_src:30.0.0.1,LOCAL
    ovs-ofctl add-flow br-p3 in_port:2,ip,nw_dst:20.0.0.3,actions=mod_nw_dst:30.0.0.3,mod_nw_src:30.0.0.2,LOCAL
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:176"
( $at_check_trace;
    ovs-ofctl add-flow br-p1 in_port:LOCAL,actions=2
    ovs-ofctl add-flow br-p1 in_port:2,ip,nw_dst:20.0.0.1,actions=mod_nw_dst:10.0.0.1,mod_nw_src:10.0.0.2,LOCAL
    ovs-ofctl add-flow br-p1 in_port:2,ip,nw_dst:30.0.0.1,actions=mod_nw_dst:10.0.0.1,mod_nw_src:10.0.0.3,LOCAL

    ovs-ofctl add-flow br-p2 in_port:LOCAL,actions=2
    ovs-ofctl add-flow br-p2 in_port:2,ip,nw_dst:10.0.0.2,actions=mod_nw_dst:20.0.0.2,mod_nw_src:20.0.0.1,LOCAL
    ovs-ofctl add-flow br-p2 in_port:2,ip,nw_dst:30.0.0.2,actions=mod_nw_dst:20.0.0.2,mod_nw_src:20.0.0.3,LOCAL

    ovs-ofctl add-flow br-p3 in_port:LOCAL,actions=2
    ovs-ofctl add-flow br-p3 in_port:2,ip,nw_dst:10.0.0.3,actions=mod_nw_dst:30.0.0.3,mod_nw_src:30.0.0.1,LOCAL
    ovs-ofctl add-flow br-p3 in_port:2,ip,nw_dst:20.0.0.3,actions=mod_nw_dst:30.0.0.3,mod_nw_src:30.0.0.2,LOCAL

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:176"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:190:
    ovs-ofctl dump-flows br-p1 | ofctl_strip | sort | grep actions
    ovs-ofctl dump-flows br-p2 | ofctl_strip | sort | grep actions
    ovs-ofctl dump-flows br-p3 | ofctl_strip | sort | grep actions
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:190"
( $at_check_trace;
    ovs-ofctl dump-flows br-p1 | ofctl_strip | sort | grep actions
    ovs-ofctl dump-flows br-p2 | ofctl_strip | sort | grep actions
    ovs-ofctl dump-flows br-p3 | ofctl_strip | sort | grep actions

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " in_port=LOCAL actions=output:2
 ip,in_port=2,nw_dst=20.0.0.1 actions=mod_nw_dst:10.0.0.1,mod_nw_src:10.0.0.2,LOCAL
 ip,in_port=2,nw_dst=30.0.0.1 actions=mod_nw_dst:10.0.0.1,mod_nw_src:10.0.0.3,LOCAL
 in_port=LOCAL actions=output:2
 ip,in_port=2,nw_dst=10.0.0.2 actions=mod_nw_dst:20.0.0.2,mod_nw_src:20.0.0.1,LOCAL
 ip,in_port=2,nw_dst=30.0.0.2 actions=mod_nw_dst:20.0.0.2,mod_nw_src:20.0.0.3,LOCAL
 in_port=LOCAL actions=output:2
 ip,in_port=2,nw_dst=10.0.0.3 actions=mod_nw_dst:30.0.0.3,mod_nw_src:30.0.0.1,LOCAL
 ip,in_port=2,nw_dst=20.0.0.3 actions=mod_nw_dst:30.0.0.3,mod_nw_src:30.0.0.2,LOCAL
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:190"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


### Setup test ports for traffic injection
N1_IP=192.168.10.10
N2_IP=192.168.10.20
N3_IP=192.168.10.30
N1_MAC=aa:55:aa:55:00:01
N2_MAC=aa:55:aa:55:00:02
N3_MAC=aa:55:aa:55:00:03
N1_OFPORT=10
N2_OFPORT=20
N3_OFPORT=30

{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:217:
ovs-vsctl \\
    -- add-port br-in1 n1 \\
    -- set interface n1 type=dummy ofport_request=\$N1_OFPORT \\
                                   options:tx_pcap=n1.pcap \\
    -- add-port br-in2 n2 \\
    -- set interface n2 type=dummy ofport_request=\$N2_OFPORT \\
                                   options:tx_pcap=n2.pcap \\
    -- add-port br-in3 n3 \\
    -- set interface n3 type=dummy ofport_request=\$N3_OFPORT \\
                                   options:tx_pcap=n3.pcap
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:217"
( $at_check_trace;
ovs-vsctl \
    -- add-port br-in1 n1 \
    -- set interface n1 type=dummy ofport_request=$N1_OFPORT \
                                   options:tx_pcap=n1.pcap \
    -- add-port br-in2 n2 \
    -- set interface n2 type=dummy ofport_request=$N2_OFPORT \
                                   options:tx_pcap=n2.pcap \
    -- add-port br-in3 n3 \
    -- set interface n3 type=dummy ofport_request=$N3_OFPORT \
                                   options:tx_pcap=n3.pcap

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:217"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


#N1_DPPORT=$(ovs-appctl dpif/show | grep "n1 10" | sed 's|.*/\([[0-9]]*\):.*|\1|')
#N2_DPPORT=$(ovs-appctl dpif/show | grep "n2 20" | sed 's|.*/\([[0-9]]*\):.*|\1|')
#N3_DPPORT=$(ovs-appctl dpif/show | grep "n3 30" | sed 's|.*/\([[0-9]]*\):.*|\1|')

### Verify datapath configuration
{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:235:
    ovs-appctl dpif/show | grep -v hit | sed \"s/\$(printf \\\\t)/    /g\" | sed 's./[0-9]\\{1,\\}..'
"
at_fn_check_prepare_notrace 'a $(...) command substitution' "packet-type-aware.at:235"
( $at_check_trace;
    ovs-appctl dpif/show | grep -v hit | sed "s/$(printf \\t)/    /g" | sed 's./[0-9]\{1,\}..'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "    br-in1:
        br-in1 65534: (dummy-internal)
        gre12 1020: (gre: remote_ip=10.0.0.2)
        gre12_l3 1021: (gre: packet_type=legacy_l3, remote_ip=10.0.0.2)
        gre13 1030: (gre: remote_ip=10.0.0.3)
        n1 10: (dummy)
    br-in2:
        br-in2 65534: (dummy-internal)
        gre21 2010: (gre: packet_type=ptap, remote_ip=20.0.0.1)
        gre23 2030: (gre: packet_type=ptap, remote_ip=20.0.0.3)
        n2 20: (dummy)
    br-in3:
        br-in3 65534: (dummy-internal)
        gre31 3010: (gre: remote_ip=30.0.0.1)
        gre32 3020: (gre: remote_ip=30.0.0.2)
        gre32_l3 3021: (gre: packet_type=legacy_l3, remote_ip=30.0.0.2)
        n3 30: (dummy)
    br-p1:
        br-p1 65534: (dummy-internal)
        p1-0 2/none: (patch: peer=p0-1)
    br-p2:
        br-p2 65534: (dummy-internal)
        p2-0 2/none: (patch: peer=p0-2)
    br-p3:
        br-p3 65534: (dummy-internal)
        p3-0 2/none: (patch: peer=p0-3)
    br0:
        br0 65534: (dummy-internal)
        p0-1 10/none: (patch: peer=p1-0)
        p0-2 20/none: (patch: peer=p2-0)
        p0-3 30/none: (patch: peer=p3-0)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:235"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


### Test L3 forwarding flows
{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:272:
    ovs-ofctl add-flow br-in1 ip,nw_dst=\$N1_IP,actions=mod_dl_dst:\$N1_MAC,\$N1_OFPORT # Local route to N1
    ovs-ofctl add-flow br-in1 ip,nw_dst=\$N2_IP,actions=1020 # Route to N2 via the L2 tunnel to br-in2
    ovs-ofctl add-flow br-in1 ip,nw_dst=\$N3_IP,actions=1030 # Route to N3 direct through L2 tunnel

    ovs-ofctl add-flow br-in2 ip,nw_dst=\$N2_IP,actions=mod_dl_dst:\$N2_MAC,\$N2_OFPORT # Local route to N2 for ethernet packets
    ovs-ofctl add-flow br-in2 ip,nw_dst=\$N1_IP,actions=2010 # Route to N1 for ethernet packet
    ovs-ofctl add-flow br-in2 packet_type=\\(1,0x800\\),nw_dst=\$N1_IP,actions=2010 # Route to N1 for IP packets
    ovs-ofctl add-flow br-in2 ip,nw_dst=\$N3_IP,actions=2010 # Indirect route to N3 via br-in1 for ethernet packet
    ovs-ofctl add-flow br-in2 packet_type=\\(1,0x800\\),nw_dst=\$N3_IP,actions=2030 # Direct route to N3 for IP packets

    ovs-ofctl add-flow br-in3 ip,nw_dst=\$N3_IP,actions=mod_dl_dst:\$N3_MAC,\$N3_OFPORT # Local route to N1
    ovs-ofctl add-flow br-in3 ip,nw_dst=\$N2_IP,actions=3020 # Route to N2 via the L2 tunnel
    ovs-ofctl add-flow br-in3 ip,nw_dst=\$N1_IP,actions=3021 # Route to N1 via br-in2 through L3 tunnel
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:272"
( $at_check_trace;
    ovs-ofctl add-flow br-in1 ip,nw_dst=$N1_IP,actions=mod_dl_dst:$N1_MAC,$N1_OFPORT # Local route to N1
    ovs-ofctl add-flow br-in1 ip,nw_dst=$N2_IP,actions=1020 # Route to N2 via the L2 tunnel to br-in2
    ovs-ofctl add-flow br-in1 ip,nw_dst=$N3_IP,actions=1030 # Route to N3 direct through L2 tunnel

    ovs-ofctl add-flow br-in2 ip,nw_dst=$N2_IP,actions=mod_dl_dst:$N2_MAC,$N2_OFPORT # Local route to N2 for ethernet packets
    ovs-ofctl add-flow br-in2 ip,nw_dst=$N1_IP,actions=2010 # Route to N1 for ethernet packet
    ovs-ofctl add-flow br-in2 packet_type=\(1,0x800\),nw_dst=$N1_IP,actions=2010 # Route to N1 for IP packets
    ovs-ofctl add-flow br-in2 ip,nw_dst=$N3_IP,actions=2010 # Indirect route to N3 via br-in1 for ethernet packet
    ovs-ofctl add-flow br-in2 packet_type=\(1,0x800\),nw_dst=$N3_IP,actions=2030 # Direct route to N3 for IP packets

    ovs-ofctl add-flow br-in3 ip,nw_dst=$N3_IP,actions=mod_dl_dst:$N3_MAC,$N3_OFPORT # Local route to N1
    ovs-ofctl add-flow br-in3 ip,nw_dst=$N2_IP,actions=3020 # Route to N2 via the L2 tunnel
    ovs-ofctl add-flow br-in3 ip,nw_dst=$N1_IP,actions=3021 # Route to N1 via br-in2 through L3 tunnel

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:272"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:288:
    ovs-ofctl dump-flows br-in1 | ofctl_strip | sort | grep actions
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:288"
( $at_check_trace;
    ovs-ofctl dump-flows br-in1 | ofctl_strip | sort | grep actions

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " ip,nw_dst=192.168.10.10 actions=mod_dl_dst:aa:55:aa:55:00:01,output:10
 ip,nw_dst=192.168.10.20 actions=output:1020
 ip,nw_dst=192.168.10.30 actions=output:1030
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:288"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:296:
    ovs-ofctl dump-flows br-in2 | ofctl_strip | sort | grep actions
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:296"
( $at_check_trace;
    ovs-ofctl dump-flows br-in2 | ofctl_strip | sort | grep actions

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " ip,nw_dst=192.168.10.10 actions=output:2010
 ip,nw_dst=192.168.10.20 actions=mod_dl_dst:aa:55:aa:55:00:02,output:20
 ip,nw_dst=192.168.10.30 actions=output:2010
 packet_type=(1,0x800),nw_dst=192.168.10.10 actions=output:2010
 packet_type=(1,0x800),nw_dst=192.168.10.30 actions=output:2030
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:296"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:306:
    ovs-ofctl dump-flows br-in3 | ofctl_strip | sort | grep actions
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:306"
( $at_check_trace;
    ovs-ofctl dump-flows br-in3 | ofctl_strip | sort | grep actions

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " ip,nw_dst=192.168.10.10 actions=output:3021
 ip,nw_dst=192.168.10.20 actions=output:3020
 ip,nw_dst=192.168.10.30 actions=mod_dl_dst:aa:55:aa:55:00:03,output:30
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:306"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


### Inject ICMP Echo request test packets

ovs-appctl vlog/set any:file:dbg

# N1 to N3, via the L2 GRE tunnel between br-in1 and br-in3
{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:319:
    ovs-appctl netdev-dummy/receive n1 1e2ce92a669e3a6dd2099cab0800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive n1 1e2ce92a669e3a6dd2099cab0800450000548a83400040011aadc0a80a0ac0a80a1e0800b7170a4d0002fd509a5800000000de1c020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:319"
( $at_check_trace;
    ovs-appctl netdev-dummy/receive n1 1e2ce92a669e3a6dd2099cab0800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive n1 1e2ce92a669e3a6dd2099cab0800450000548a83400040011aadc0a80a0ac0a80a1e0800b7170a4d0002fd509a5800000000de1c020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:319"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 1000

{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:326:
    ovs-appctl dpctl/dump-flows --names dummy@ovs-dummy | strip_used | grep -v ipv6 | sort
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:326"
( $at_check_trace;
    ovs-appctl dpctl/dump-flows --names dummy@ovs-dummy | strip_used | grep -v ipv6 | sort

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
recirc_id(0),in_port(n1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(dst=192.168.10.30,tos=0/0x3,frag=no), packets:1, bytes:98, used:0.0s, actions:clone(tnl_push(tnl_port(gre_sys),header(size=38,type=3,eth(dst=aa:55:00:00:00:03,src=aa:55:00:00:00:01,dl_type=0x0800),ipv4(src=10.0.0.1,dst=10.0.0.3,proto=47,tos=0,ttl=64,frag=0x4000),gre((flags=0x0,proto=0x6558))),out_port(br-p1)),set(ipv4(src=30.0.0.1,dst=30.0.0.3)),tnl_pop(gre_sys))
tunnel(src=30.0.0.1,dst=30.0.0.3,flags(-df-csum)),recirc_id(0),in_port(gre_sys),packet_type(ns=0,id=0),eth(dst=1e:2c:e9:2a:66:9e),eth_type(0x0800),ipv4(dst=192.168.10.30,frag=no), packets:1, bytes:98, used:0.0s, actions:set(eth(dst=aa:55:aa:55:00:03)),n3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:326"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Clear up megaflow cache
ovs-appctl time/warp 11000

# N1 to N2 via the L2 GRE tunnel between br-in1 and br-in2
{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:337:
    ovs-appctl netdev-dummy/receive n1 461e7d1a95a13a6dd2099cab080045000054500b40004001552fc0a80a0ac0a80a140800531f09a90001e9509a580000000055ba030000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive n1 461e7d1a95a13a6dd2099cab08004500005450934000400154a7c0a80a0ac0a80a140800f41d09a90002ea509a5800000000b3ba030000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:337"
( $at_check_trace;
    ovs-appctl netdev-dummy/receive n1 461e7d1a95a13a6dd2099cab080045000054500b40004001552fc0a80a0ac0a80a140800531f09a90001e9509a580000000055ba030000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive n1 461e7d1a95a13a6dd2099cab08004500005450934000400154a7c0a80a0ac0a80a140800f41d09a90002ea509a5800000000b3ba030000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:337"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 1000

{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:344:
    ovs-appctl dpctl/dump-flows --names dummy@ovs-dummy | strip_used | grep -v ipv6 | sort
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:344"
( $at_check_trace;
    ovs-appctl dpctl/dump-flows --names dummy@ovs-dummy | strip_used | grep -v ipv6 | sort

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
recirc_id(0),in_port(n1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(dst=192.168.10.20,tos=0/0x3,frag=no), packets:1, bytes:98, used:0.0s, actions:clone(tnl_push(tnl_port(gre_sys),header(size=38,type=3,eth(dst=aa:55:00:00:00:02,src=aa:55:00:00:00:01,dl_type=0x0800),ipv4(src=10.0.0.1,dst=10.0.0.2,proto=47,tos=0,ttl=64,frag=0x4000),gre((flags=0x0,proto=0x6558))),out_port(br-p1)),set(ipv4(src=20.0.0.1,dst=20.0.0.2)),tnl_pop(gre_sys))
tunnel(src=20.0.0.1,dst=20.0.0.2,flags(-df-csum)),recirc_id(0),in_port(gre_sys),packet_type(ns=0,id=0),eth(dst=46:1e:7d:1a:95:a1),eth_type(0x0800),ipv4(dst=192.168.10.20,frag=no), packets:1, bytes:98, used:0.0s, actions:set(eth(dst=aa:55:aa:55:00:02)),n2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:344"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Clear up megaflow cache
ovs-appctl time/warp 11000

# N2 to N1 via the L2 GRE tunnel between br-in2 and br-in1
{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:355:
    ovs-appctl netdev-dummy/receive n2 3a6dd2099cab461e7d1a95a10800450000542c1f40004001791bc0a80a14c0a80a0a0800154b0b6800011b519a580000000054cf0e0000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive n2 3a6dd2099cab461e7d1a95a10800450000542c744000400178c6c0a80a14c0a80a0a08003f420b6800021c519a580000000029d70e0000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:355"
( $at_check_trace;
    ovs-appctl netdev-dummy/receive n2 3a6dd2099cab461e7d1a95a10800450000542c1f40004001791bc0a80a14c0a80a0a0800154b0b6800011b519a580000000054cf0e0000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive n2 3a6dd2099cab461e7d1a95a10800450000542c744000400178c6c0a80a14c0a80a0a08003f420b6800021c519a580000000029d70e0000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:355"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 1000

{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:362:
    ovs-appctl dpctl/dump-flows --names dummy@ovs-dummy | strip_used | grep -v ipv6 | sort
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:362"
( $at_check_trace;
    ovs-appctl dpctl/dump-flows --names dummy@ovs-dummy | strip_used | grep -v ipv6 | sort

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
recirc_id(0),in_port(n2),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(dst=192.168.10.10,tos=0/0x3,frag=no), packets:1, bytes:98, used:0.0s, actions:clone(tnl_push(tnl_port(gre_sys),header(size=38,type=3,eth(dst=aa:55:00:00:00:01,src=aa:55:00:00:00:02,dl_type=0x0800),ipv4(src=20.0.0.2,dst=20.0.0.1,proto=47,tos=0,ttl=64,frag=0x4000),gre((flags=0x0,proto=0x6558))),out_port(br-p2)),set(ipv4(src=10.0.0.2,dst=10.0.0.1)),tnl_pop(gre_sys))
tunnel(src=10.0.0.2,dst=10.0.0.1,flags(-df-csum)),recirc_id(0),in_port(gre_sys),packet_type(ns=0,id=0),eth(dst=3a:6d:d2:09:9c:ab),eth_type(0x0800),ipv4(dst=192.168.10.10,frag=no), packets:1, bytes:98, used:0.0s, actions:set(eth(dst=aa:55:aa:55:00:01)),n1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:362"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Clear up megaflow cache
ovs-appctl time/warp 11000

# N2 to N3 via br-in1 using the L2 GRE tunnel between br-in2 and br-in1 and the L2 GRE tunnel between br-in1 and br-in3
{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:373:
    ovs-appctl netdev-dummy/receive n2 1e2ce92a669e461e7d1a95a1080045000054f7d440004001ad51c0a80a14c0a80a1e08000e760c1e000131519a580000000047ee0b0000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive n2 1e2ce92a669e461e7d1a95a1080045000054f89540004001ac90c0a80a14c0a80a1e0800736f0c1e000232519a5800000000e1f30b0000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:373"
( $at_check_trace;
    ovs-appctl netdev-dummy/receive n2 1e2ce92a669e461e7d1a95a1080045000054f7d440004001ad51c0a80a14c0a80a1e08000e760c1e000131519a580000000047ee0b0000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive n2 1e2ce92a669e461e7d1a95a1080045000054f89540004001ac90c0a80a14c0a80a1e0800736f0c1e000232519a5800000000e1f30b0000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:373"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 1000

{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:380:
    ovs-appctl dpctl/dump-flows --names dummy@ovs-dummy | strip_used | grep -v ipv6 | sort
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:380"
( $at_check_trace;
    ovs-appctl dpctl/dump-flows --names dummy@ovs-dummy | strip_used | grep -v ipv6 | sort

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
recirc_id(0),in_port(n2),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(dst=192.168.10.30,tos=0/0x3,frag=no), packets:1, bytes:98, used:0.0s, actions:clone(tnl_push(tnl_port(gre_sys),header(size=38,type=3,eth(dst=aa:55:00:00:00:01,src=aa:55:00:00:00:02,dl_type=0x0800),ipv4(src=20.0.0.2,dst=20.0.0.1,proto=47,tos=0,ttl=64,frag=0x4000),gre((flags=0x0,proto=0x6558))),out_port(br-p2)),set(ipv4(src=10.0.0.2,dst=10.0.0.1)),tnl_pop(gre_sys))
tunnel(src=10.0.0.2,dst=10.0.0.1,flags(-df-csum)),recirc_id(0),in_port(gre_sys),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(dst=192.168.10.30,tos=0/0x3,frag=no), packets:1, bytes:98, used:0.0s, actions:clone(tnl_push(tnl_port(gre_sys),header(size=38,type=3,eth(dst=aa:55:00:00:00:03,src=aa:55:00:00:00:01,dl_type=0x0800),ipv4(src=10.0.0.1,dst=10.0.0.3,proto=47,tos=0,ttl=64,frag=0x4000),gre((flags=0x0,proto=0x6558))),out_port(br-p1)),set(ipv4(src=30.0.0.1,dst=30.0.0.3)),tnl_pop(gre_sys))
tunnel(src=30.0.0.1,dst=30.0.0.3,flags(-df-csum)),recirc_id(0),in_port(gre_sys),packet_type(ns=0,id=0),eth(dst=1e:2c:e9:2a:66:9e),eth_type(0x0800),ipv4(dst=192.168.10.30,frag=no), packets:1, bytes:98, used:0.0s, actions:set(eth(dst=aa:55:aa:55:00:03)),n3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:380"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Clear up megaflow cache
ovs-appctl time/warp 11000

# N3 to N1 via br-in2 using the L3 GRE tunnel between br-in3 and br-in2 and the L3 GRE tunnel between br-in2 and br-in1
{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:392:
    ovs-appctl netdev-dummy/receive n3 3a6dd2099cab1e2ce92a669e080045000054b80440004001ed2bc0a80a1ec0a80a0a0800e17a77d5015e64509a5800000000d3d50c0000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive n3 3a6dd2099cab1e2ce92a669e080045000054b8a240004001ec8dc0a80a1ec0a80a0a0800627177d5015f65509a580000000051de0c0000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:392"
( $at_check_trace;
    ovs-appctl netdev-dummy/receive n3 3a6dd2099cab1e2ce92a669e080045000054b80440004001ed2bc0a80a1ec0a80a0a0800e17a77d5015e64509a5800000000d3d50c0000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive n3 3a6dd2099cab1e2ce92a669e080045000054b8a240004001ec8dc0a80a1ec0a80a0a0800627177d5015f65509a580000000051de0c0000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:392"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 1000

{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:399:
    ovs-appctl dpctl/dump-flows --names dummy@ovs-dummy | strip_used | grep -v ipv6 | sort
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:399"
( $at_check_trace;
    ovs-appctl dpctl/dump-flows --names dummy@ovs-dummy | strip_used | grep -v ipv6 | sort

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
recirc_id(0),in_port(n3),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(dst=192.168.10.10,tos=0/0x3,frag=no), packets:1, bytes:98, used:0.0s, actions:pop_eth,clone(tnl_push(tnl_port(gre_sys),header(size=38,type=3,eth(dst=aa:55:00:00:00:02,src=aa:55:00:00:00:03,dl_type=0x0800),ipv4(src=30.0.0.3,dst=30.0.0.2,proto=47,tos=0,ttl=64,frag=0x4000),gre((flags=0x0,proto=0x800))),out_port(br-p3)),set(ipv4(src=20.0.0.3,dst=20.0.0.2)),tnl_pop(gre_sys))
tunnel(src=10.0.0.2,dst=10.0.0.1,flags(-df-csum)),recirc_id(0),in_port(gre_sys),packet_type(ns=1,id=0x800),ipv4(dst=192.168.10.10,frag=no), packets:1, bytes:84, used:0.0s, actions:push_eth(src=00:00:00:00:00:00,dst=aa:55:aa:55:00:01),n1
tunnel(src=20.0.0.3,dst=20.0.0.2,flags(-df-csum)),recirc_id(0),in_port(gre_sys),packet_type(ns=1,id=0x800),ipv4(dst=192.168.10.10,tos=0/0x3,frag=no), packets:1, bytes:84, used:0.0s, actions:clone(tnl_push(tnl_port(gre_sys),header(size=38,type=3,eth(dst=aa:55:00:00:00:01,src=aa:55:00:00:00:02,dl_type=0x0800),ipv4(src=20.0.0.2,dst=20.0.0.1,proto=47,tos=0,ttl=64,frag=0x4000),gre((flags=0x0,proto=0x800))),out_port(br-p2)),set(ipv4(src=10.0.0.2,dst=10.0.0.1)),tnl_pop(gre_sys))
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:399"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Clear up megaflow cache
ovs-appctl time/warp 11000

# N3 to N2 via L3 GRE tunnel between br-in3 and br-in2
{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:411:
    ovs-appctl netdev-dummy/receive n3 461e7d1a95a11e2ce92a669e080045000054e5b540004001bf70c0a80a1ec0a80a140800b3f1065b000188509a580000000050360c0000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive n3 461e7d1a95a11e2ce92a669e080045000054e5cf40004001bf56c0a80a1ec0a80a140800a2ed065b000289509a580000000060390c0000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:411"
( $at_check_trace;
    ovs-appctl netdev-dummy/receive n3 461e7d1a95a11e2ce92a669e080045000054e5b540004001bf70c0a80a1ec0a80a140800b3f1065b000188509a580000000050360c0000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive n3 461e7d1a95a11e2ce92a669e080045000054e5cf40004001bf56c0a80a1ec0a80a140800a2ed065b000289509a580000000060390c0000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:411"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 1000

{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:418:
    ovs-appctl dpctl/dump-flows --names dummy@ovs-dummy | strip_used | grep -v ipv6 | sort
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:418"
( $at_check_trace;
    ovs-appctl dpctl/dump-flows --names dummy@ovs-dummy | strip_used | grep -v ipv6 | sort

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
recirc_id(0),in_port(n3),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(dst=192.168.10.20,tos=0/0x3,frag=no), packets:1, bytes:98, used:0.0s, actions:clone(tnl_push(tnl_port(gre_sys),header(size=38,type=3,eth(dst=aa:55:00:00:00:02,src=aa:55:00:00:00:03,dl_type=0x0800),ipv4(src=30.0.0.3,dst=30.0.0.2,proto=47,tos=0,ttl=64,frag=0x4000),gre((flags=0x0,proto=0x6558))),out_port(br-p3)),set(ipv4(src=20.0.0.3,dst=20.0.0.2)),tnl_pop(gre_sys))
tunnel(src=20.0.0.3,dst=20.0.0.2,flags(-df-csum)),recirc_id(0),in_port(gre_sys),packet_type(ns=0,id=0),eth(dst=46:1e:7d:1a:95:a1),eth_type(0x0800),ipv4(dst=192.168.10.20,frag=no), packets:1, bytes:98, used:0.0s, actions:set(eth(dst=aa:55:aa:55:00:02)),n2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:418"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


### Check the received packets

{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:427:
    ovs-pcap n1.pcap
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:427"
( $at_check_trace;
    ovs-pcap n1.pcap

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "aa55aa550001461e7d1a95a10800450000542c1f40004001791bc0a80a14c0a80a0a0800154b0b6800011b519a580000000054cf0e0000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
aa55aa550001461e7d1a95a10800450000542c744000400178c6c0a80a14c0a80a0a08003f420b6800021c519a580000000029d70e0000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
aa55aa550001000000000000080045000054b80440004001ed2bc0a80a1ec0a80a0a0800e17a77d5015e64509a5800000000d3d50c0000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
aa55aa550001000000000000080045000054b8a240004001ec8dc0a80a1ec0a80a0a0800627177d5015f65509a580000000051de0c0000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:427"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:436:
    ovs-pcap n2.pcap
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:436"
( $at_check_trace;
    ovs-pcap n2.pcap

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "aa55aa5500023a6dd2099cab080045000054500b40004001552fc0a80a0ac0a80a140800531f09a90001e9509a580000000055ba030000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
aa55aa5500023a6dd2099cab08004500005450934000400154a7c0a80a0ac0a80a140800f41d09a90002ea509a5800000000b3ba030000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
aa55aa5500021e2ce92a669e080045000054e5b540004001bf70c0a80a1ec0a80a140800b3f1065b000188509a580000000050360c0000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
aa55aa5500021e2ce92a669e080045000054e5cf40004001bf56c0a80a1ec0a80a140800a2ed065b000289509a580000000060390c0000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:436"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:445:
    ovs-pcap n3.pcap
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:445"
( $at_check_trace;
    ovs-pcap n3.pcap

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "aa55aa5500033a6dd2099cab0800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
aa55aa5500033a6dd2099cab0800450000548a83400040011aadc0a80a0ac0a80a1e0800b7170a4d0002fd509a5800000000de1c020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
aa55aa550003461e7d1a95a1080045000054f7d440004001ad51c0a80a14c0a80a1e08000e760c1e000131519a580000000047ee0b0000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
aa55aa550003461e7d1a95a1080045000054f89540004001ac90c0a80a14c0a80a1e0800736f0c1e000232519a5800000000e1f30b0000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:445"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# N3 to N2, from L3 GRE to PTAP port between br-in3 and br-in2. Dropping L3 packet on L2 dummy port in br-in2.

# Strips 'n_packets=...' from ovs-ofctl output.
strip_n_packets () {
    sed 's/n_packets=[0-9]*, //'
}

# Strips 'n_bytes=...' from ovs-ofctl output.
strip_n_bytes () {
    sed 's/n_bytes=[0-9]*, //'
}

# Modify flow rules to receive L3 packet in br-in2.
{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:468:
    ovs-ofctl add-flow br-in2 packet_type=\\(1,0x800\\),nw_dst=\$N2_IP,actions=\$N2_OFPORT # Route L3 packet to N2 in br-in2
    ovs-ofctl add-flow br-in3 ip,nw_dst=\$N2_IP,actions=3021 # Route to N2 via the L3 tunnel
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:468"
( $at_check_trace;
    ovs-ofctl add-flow br-in2 packet_type=\(1,0x800\),nw_dst=$N2_IP,actions=$N2_OFPORT # Route L3 packet to N2 in br-in2
    ovs-ofctl add-flow br-in3 ip,nw_dst=$N2_IP,actions=3021 # Route to N2 via the L3 tunnel

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:468"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:473:
    ovs-ofctl dump-flows br-in2 | ofctl_strip | strip_n_bytes | strip_n_packets | sort | grep actions
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:473"
( $at_check_trace;
    ovs-ofctl dump-flows br-in2 | ofctl_strip | strip_n_bytes | strip_n_packets | sort | grep actions

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " ip,nw_dst=192.168.10.10 actions=output:2010
 ip,nw_dst=192.168.10.20 actions=mod_dl_dst:aa:55:aa:55:00:02,output:20
 ip,nw_dst=192.168.10.30 actions=output:2010
 packet_type=(1,0x800),nw_dst=192.168.10.10 actions=output:2010
 packet_type=(1,0x800),nw_dst=192.168.10.20 actions=output:20
 packet_type=(1,0x800),nw_dst=192.168.10.30 actions=output:2030
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:473"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:484:
    ovs-ofctl dump-flows br-in3 | ofctl_strip | strip_n_bytes | strip_n_packets | sort | grep actions
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:484"
( $at_check_trace;
    ovs-ofctl dump-flows br-in3 | ofctl_strip | strip_n_bytes | strip_n_packets | sort | grep actions

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " ip,nw_dst=192.168.10.10 actions=output:3021
 ip,nw_dst=192.168.10.20 actions=output:3021
 ip,nw_dst=192.168.10.30 actions=mod_dl_dst:aa:55:aa:55:00:03,output:30
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:484"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Clear up megaflow cache
ovs-appctl time/warp 11000

# N3 to N2 via L3 GRE tunnel between br-in3 and br-in2
{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:496:
    ovs-appctl netdev-dummy/receive n3 461e7d1a95a11e2ce92a669e080045000054e5b540004001bf70c0a80a1ec0a80a140800b3f1065b000188509a580000000050360c0000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive n3 461e7d1a95a11e2ce92a669e080045000054e5cf40004001bf56c0a80a1ec0a80a140800a2ed065b000289509a580000000060390c0000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:496"
( $at_check_trace;
    ovs-appctl netdev-dummy/receive n3 461e7d1a95a11e2ce92a669e080045000054e5b540004001bf70c0a80a1ec0a80a140800b3f1065b000188509a580000000050360c0000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive n3 461e7d1a95a11e2ce92a669e080045000054e5cf40004001bf56c0a80a1ec0a80a140800a2ed065b000289509a580000000060390c0000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:496"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 1000


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:504:
    ovs-appctl dpctl/dump-flows --names dummy@ovs-dummy | strip_used | grep -v ipv6 | sort
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:504"
( $at_check_trace;
    ovs-appctl dpctl/dump-flows --names dummy@ovs-dummy | strip_used | grep -v ipv6 | sort

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
recirc_id(0),in_port(n3),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(dst=192.168.10.20,tos=0/0x3,frag=no), packets:1, bytes:98, used:0.0s, actions:pop_eth,clone(tnl_push(tnl_port(gre_sys),header(size=38,type=3,eth(dst=aa:55:00:00:00:02,src=aa:55:00:00:00:03,dl_type=0x0800),ipv4(src=30.0.0.3,dst=30.0.0.2,proto=47,tos=0,ttl=64,frag=0x4000),gre((flags=0x0,proto=0x800))),out_port(br-p3)),set(ipv4(src=20.0.0.3,dst=20.0.0.2)),tnl_pop(gre_sys))
tunnel(src=20.0.0.3,dst=20.0.0.2,flags(-df-csum)),recirc_id(0),in_port(gre_sys),packet_type(ns=1,id=0x800),ipv4(dst=192.168.10.20,frag=no), packets:1, bytes:84, used:0.0s, actions:drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:504"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:511: check_logs \"/The Open vSwitch kernel module is probably not loaded/d\""
at_fn_check_prepare_trace "packet-type-aware.at:511"
( $at_check_trace; check_logs "/The Open vSwitch kernel module is probably not loaded/d"
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:511"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:511: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "packet-type-aware.at:511"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:511"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:511: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "packet-type-aware.at:511"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:511"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "packet-type-aware.at:511: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "packet-type-aware.at:511: wait failed" >&5

    $as_echo "packet-type-aware.at:511" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/packet-type-aware.at:511"
fi

   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:511: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "packet-type-aware.at:511"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:511"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:511: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "packet-type-aware.at:511"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:511"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "packet-type-aware.at:511: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "packet-type-aware.at:511: wait failed" >&5

    $as_echo "packet-type-aware.at:511" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/packet-type-aware.at:511"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2521
#AT_START_2522
at_fn_group_banner 2522 'packet-type-aware.at:515' \
  "ptap - check decap() prerequisits" "              " 132
at_xfail=no
(
  $as_echo "2522. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:516: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "packet-type-aware.at:516"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:516"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/packet-type-aware.at:516: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "packet-type-aware.at:516"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:516"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:516: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:516"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:516"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/packet-type-aware.at:516: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "packet-type-aware.at:516"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:516"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/packet-type-aware.at:516: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "packet-type-aware.at:516"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:516"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:516: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:516"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:516"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:516: add_of_br 0  "
at_fn_check_prepare_trace "packet-type-aware.at:516"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:516"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Decap IP header, then set IP destination address. This should fail.
{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:519:
    ovs-ofctl add-flow br0 \"in_port=1,packet_type=(1,0x800),actions=decap(),set_field:1.1.1.1->nw_dst\"
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:519"
( $at_check_trace;
    ovs-ofctl add-flow br0 "in_port=1,packet_type=(1,0x800),actions=decap(),set_field:1.1.1.1->nw_dst"

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/packet-type-aware.at:519"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:523:
    cat stderr | cut -d '|' -f 3-
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:523"
( $at_check_trace;
    cat stderr | cut -d '|' -f 3-

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "ofp_actions|WARN|set_field ip_dst lacks correct prerequisites
ovs-ofctl: actions are invalid with specified match (OFPBAC_MATCH_INCONSISTENT)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:523"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Decap Ethernet header, then set IP destination address. This should work.
{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:531:
    ovs-ofctl add-flow br0 -OOpenFlow13 \"in_port=1,ip,actions=decap(),set_field:1.1.1.1->nw_dst\"
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:531"
( $at_check_trace;
    ovs-ofctl add-flow br0 -OOpenFlow13 "in_port=1,ip,actions=decap(),set_field:1.1.1.1->nw_dst"

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:531"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Decap IP header, then set metadata. This should work.
{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:536:
    ovs-ofctl add-flow br0 -OOpenFlow13 \"in_port=1,packet_type=(1,0x800),actions=decap(),set_field:1234->metadata\"
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:536"
( $at_check_trace;
    ovs-ofctl add-flow br0 -OOpenFlow13 "in_port=1,packet_type=(1,0x800),actions=decap(),set_field:1234->metadata"

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:536"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:540: check_logs "
at_fn_check_prepare_trace "packet-type-aware.at:540"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:540"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:540: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "packet-type-aware.at:540"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:540"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:540: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "packet-type-aware.at:540"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:540"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "packet-type-aware.at:540: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "packet-type-aware.at:540: wait failed" >&5

    $as_echo "packet-type-aware.at:540" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/packet-type-aware.at:540"
fi

   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:540: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "packet-type-aware.at:540"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:540"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:540: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "packet-type-aware.at:540"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:540"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "packet-type-aware.at:540: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "packet-type-aware.at:540: wait failed" >&5

    $as_echo "packet-type-aware.at:540" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/packet-type-aware.at:540"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2522
#AT_START_2523
at_fn_group_banner 2523 'packet-type-aware.at:544' \
  "ptap - check encap/decap VLAN tagged Ethernet frame" "" 132
at_xfail=no
(
  $as_echo "2523. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:545: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "packet-type-aware.at:545"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:545"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/packet-type-aware.at:545: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "packet-type-aware.at:545"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:545"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:545: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:545"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:545"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/packet-type-aware.at:545: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "packet-type-aware.at:545"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:545"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/packet-type-aware.at:545: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "packet-type-aware.at:545"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:545"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:545: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:545"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:545"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:545: add_of_br 0     -- add-port br0 n1 -- set interface n1 type=dummy ofport_request=1 \\
    -- add-port br0 n2 -- set interface n2 type=dummy ofport_request=2 \\
    -- add-port br0 p1 -- set interface p1 type=patch options:peer=p2 ofport_request=3 \\
    -- add-port br0 p2 -- set interface p2 type=patch options:peer=p1 ofport_request=4
 "
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:545"
( $at_check_trace; add_of_br 0     -- add-port br0 n1 -- set interface n1 type=dummy ofport_request=1 \
    -- add-port br0 n2 -- set interface n2 type=dummy ofport_request=2 \
    -- add-port br0 p1 -- set interface p1 type=patch options:peer=p2 ofport_request=3 \
    -- add-port br0 p2 -- set interface p2 type=patch options:peer=p1 ofport_request=4

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:545"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



# Decap VLAN tagged Ethernet frames -> should be dropped
{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:553:
    ovs-ofctl add-flow br0 -OOpenFlow13 \"in_port=1,actions=push_vlan:0x8100,mod_vlan_vid:100,decap(),3\"
    ovs-ofctl add-flow br0 -OOpenFlow13 \"in_port=4,actions=encap(ethernet),2\"
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:553"
( $at_check_trace;
    ovs-ofctl add-flow br0 -OOpenFlow13 "in_port=1,actions=push_vlan:0x8100,mod_vlan_vid:100,decap(),3"
    ovs-ofctl add-flow br0 -OOpenFlow13 "in_port=4,actions=encap(ethernet),2"

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:553"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:558:
    ovs-appctl netdev-dummy/receive n1 1e2ce92a669e3a6dd2099cab0800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive n1 1e2ce92a669e3a6dd2099cab0800450000548a83400040011aadc0a80a0ac0a80a1e0800b7170a4d0002fd509a5800000000de1c020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:558"
( $at_check_trace;
    ovs-appctl netdev-dummy/receive n1 1e2ce92a669e3a6dd2099cab0800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive n1 1e2ce92a669e3a6dd2099cab0800450000548a83400040011aadc0a80a0ac0a80a1e0800b7170a4d0002fd509a5800000000de1c020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:558"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 1000

{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:565:
    ovs-appctl dpctl/dump-flows | strip_used | grep -v ipv6 | sort
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:565"
( $at_check_trace;
    ovs-appctl dpctl/dump-flows | strip_used | grep -v ipv6 | sort

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), packets:1, bytes:98, used:0.0s, actions:drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:565"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Encap(ethernet) on Ethernet frame -> should be droped
{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:572:
    ovs-ofctl del-flows br0
    ovs-ofctl add-flow br0 -OOpenFlow13 \"in_port=1,actions=3\"
    ovs-ofctl add-flow br0 -OOpenFlow13 \"in_port=4,actions=encap(ethernet),2\"
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:572"
( $at_check_trace;
    ovs-ofctl del-flows br0
    ovs-ofctl add-flow br0 -OOpenFlow13 "in_port=1,actions=3"
    ovs-ofctl add-flow br0 -OOpenFlow13 "in_port=4,actions=encap(ethernet),2"

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:572"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 11000

{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:580:
    ovs-appctl netdev-dummy/receive n1 1e2ce92a669e3a6dd2099cab0800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive n1 1e2ce92a669e3a6dd2099cab0800450000548a83400040011aadc0a80a0ac0a80a1e0800b7170a4d0002fd509a5800000000de1c020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:580"
( $at_check_trace;
    ovs-appctl netdev-dummy/receive n1 1e2ce92a669e3a6dd2099cab0800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive n1 1e2ce92a669e3a6dd2099cab0800450000548a83400040011aadc0a80a0ac0a80a1e0800b7170a4d0002fd509a5800000000de1c020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:580"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 1000

{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:587:
    ovs-appctl dpctl/dump-flows | strip_used | grep -v ipv6 | sort
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:587"
( $at_check_trace;
    ovs-appctl dpctl/dump-flows | strip_used | grep -v ipv6 | sort

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), packets:1, bytes:98, used:0.0s, actions:drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:587"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Encap(ethernet) on VLAN tagged Ethernet frame -> should be droped
{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:594:
    ovs-ofctl del-flows br0
    ovs-ofctl add-flow br0 -OOpenFlow13 \"in_port=1,actions=push_vlan:0x8100,mod_vlan_vid:100,encap(ethernet),3\"
    ovs-ofctl add-flow br0 -OOpenFlow13 \"in_port=4,actions=2\"
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:594"
( $at_check_trace;
    ovs-ofctl del-flows br0
    ovs-ofctl add-flow br0 -OOpenFlow13 "in_port=1,actions=push_vlan:0x8100,mod_vlan_vid:100,encap(ethernet),3"
    ovs-ofctl add-flow br0 -OOpenFlow13 "in_port=4,actions=2"

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:594"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 11000

{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:602:
    ovs-appctl netdev-dummy/receive n1 1e2ce92a669e3a6dd2099cab0800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive n1 1e2ce92a669e3a6dd2099cab0800450000548a83400040011aadc0a80a0ac0a80a1e0800b7170a4d0002fd509a5800000000de1c020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:602"
( $at_check_trace;
    ovs-appctl netdev-dummy/receive n1 1e2ce92a669e3a6dd2099cab0800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive n1 1e2ce92a669e3a6dd2099cab0800450000548a83400040011aadc0a80a0ac0a80a1e0800b7170a4d0002fd509a5800000000de1c020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:602"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 1000

{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:609:
    ovs-appctl dpctl/dump-flows | strip_used | grep -v ipv6 | sort
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:609"
( $at_check_trace;
    ovs-appctl dpctl/dump-flows | strip_used | grep -v ipv6 | sort

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), packets:1, bytes:98, used:0.0s, actions:drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:609"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:615: check_logs "
at_fn_check_prepare_trace "packet-type-aware.at:615"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:615"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:615: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "packet-type-aware.at:615"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:615"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:615: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "packet-type-aware.at:615"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:615"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "packet-type-aware.at:615: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "packet-type-aware.at:615: wait failed" >&5

    $as_echo "packet-type-aware.at:615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/packet-type-aware.at:615"
fi

   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:615: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "packet-type-aware.at:615"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:615"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:615: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "packet-type-aware.at:615"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:615"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "packet-type-aware.at:615: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "packet-type-aware.at:615: wait failed" >&5

    $as_echo "packet-type-aware.at:615" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/packet-type-aware.at:615"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2523
#AT_START_2524
at_fn_group_banner 2524 'packet-type-aware.at:619' \
  "ptap - L3 over patch port" "                      " 132
at_xfail=no
(
  $as_echo "2524. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


########################
# L3 over patch port
#
# (192.168.10.10)     (192.168.10.30)
#    n0                  n1
#     |                   |
#  +--o------+         +--o------+
#  |   br0   |         |   br1   |
#  +------o--+         +--o---o--+
#      p0 |            p1 |   gre1 (ptap)
#         +---------------+   10.0.0.1
#
#                             LOCAL
#                      +------o--+
#                      |   br2   |
#                      +------o--+
#                             |
#                            n2
#                         10.0.0.2

HWADDR_BRP2=aa:55:00:00:00:02

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:643: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "packet-type-aware.at:643"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:643"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/packet-type-aware.at:643: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "packet-type-aware.at:643"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:643"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:643: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:643"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:643"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/packet-type-aware.at:643: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "packet-type-aware.at:643"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:643"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/packet-type-aware.at:643: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "packet-type-aware.at:643"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:643"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:643: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:643"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:643"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:643: add_of_br 0     -- add-br br1 \\
    -- set bridge br1 datapath_type=dummy fail-mode=secure \\
    -- add-br br2 \\
    -- set bridge br2 datapath_type=dummy fail-mode=secure \\
       other_config:hwaddr=\\\"\$HWADDR_BRP2\\\" \\
    -- add-port br0 p0 \\
    -- set interface p0 type=patch options:peer=p1 ofport_request=10 \\
    -- add-port br1 p1 \\
    -- set interface p1 type=patch options:peer=p0 ofport_request=20 \\
    -- add-port br0 n0 \\
    -- set interface n0 type=dummy ofport_request=30 \\
    -- add-port br1 n1 \\
    -- set interface n1 type=dummy options:tx_pcap=n1.pcap ofport_request=40 \\
    -- add-port br2 n2 \\
    -- set interface n2 type=dummy options:tx_pcap=n2.pcap ofport_request=50 \\
    -- add-port br1 gre1 \\
    -- set interface gre1 type=gre options:remote_ip=10.0.0.2 \\
       options:packet_type=ptap ofport_request=100
 "
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:643"
( $at_check_trace; add_of_br 0     -- add-br br1 \
    -- set bridge br1 datapath_type=dummy fail-mode=secure \
    -- add-br br2 \
    -- set bridge br2 datapath_type=dummy fail-mode=secure \
       other_config:hwaddr=\"$HWADDR_BRP2\" \
    -- add-port br0 p0 \
    -- set interface p0 type=patch options:peer=p1 ofport_request=10 \
    -- add-port br1 p1 \
    -- set interface p1 type=patch options:peer=p0 ofport_request=20 \
    -- add-port br0 n0 \
    -- set interface n0 type=dummy ofport_request=30 \
    -- add-port br1 n1 \
    -- set interface n1 type=dummy options:tx_pcap=n1.pcap ofport_request=40 \
    -- add-port br2 n2 \
    -- set interface n2 type=dummy options:tx_pcap=n2.pcap ofport_request=50 \
    -- add-port br1 gre1 \
    -- set interface gre1 type=gre options:remote_ip=10.0.0.2 \
       options:packet_type=ptap ofport_request=100

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:643"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



### Verify datapath configuration
{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:665:
    ovs-appctl dpif/show | grep -v hit | sed 's/\\t/    /g' | sed 's./[0-9]\\{1,\\}..'
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:665"
( $at_check_trace;
    ovs-appctl dpif/show | grep -v hit | sed 's/\t/    /g' | sed 's./[0-9]\{1,\}..'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "    br0:
        br0 65534: (dummy-internal)
        n0 30: (dummy)
        p0 10/none: (patch: peer=p1)
    br1:
        br1 65534: (dummy-internal)
        gre1 100: (gre: packet_type=ptap, remote_ip=10.0.0.2)
        n1 40: (dummy)
        p1 20/none: (patch: peer=p0)
    br2:
        br2 65534: (dummy-internal)
        n2 50: (dummy)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:665"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:682:
    ovs-appctl netdev-dummy/ip4addr br2 10.0.0.1/24 &&
    ovs-appctl ovs/route/add 10.0.0.0/24 br2 &&
    ovs-appctl tnl/arp/set br2 10.0.0.2 de:af:be:ef:ba:be
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:682"
( $at_check_trace;
    ovs-appctl netdev-dummy/ip4addr br2 10.0.0.1/24 &&
    ovs-appctl ovs/route/add 10.0.0.0/24 br2 &&
    ovs-appctl tnl/arp/set br2 10.0.0.2 de:af:be:ef:ba:be

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:682"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:688:
    ovs-appctl ovs/route/show | grep User:
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:688"
( $at_check_trace;
    ovs-appctl ovs/route/show | grep User:

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "User: 10.0.0.0/24 dev br2 SRC 10.0.0.1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:688"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:695:
    ovs-ofctl del-flows br0 &&
    ovs-ofctl del-flows br1 &&
    ovs-ofctl del-flows br2 &&
    ovs-ofctl add-flow br0 in_port=n0,actions=decap,output=p0 -OOpenFlow13 &&
    ovs-ofctl add-flow br1 in_port=p1,actions=output=gre1 &&
    ovs-ofctl add-flow br2 in_port=LOCAL,actions=output=n2
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:695"
( $at_check_trace;
    ovs-ofctl del-flows br0 &&
    ovs-ofctl del-flows br1 &&
    ovs-ofctl del-flows br2 &&
    ovs-ofctl add-flow br0 in_port=n0,actions=decap,output=p0 -OOpenFlow13 &&
    ovs-ofctl add-flow br1 in_port=p1,actions=output=gre1 &&
    ovs-ofctl add-flow br2 in_port=LOCAL,actions=output=n2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:695"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:704: ovs-ofctl -OOpenFlow13 dump-flows br0 | ofctl_strip | grep actions"
at_fn_check_prepare_notrace 'a shell pipeline' "packet-type-aware.at:704"
( $at_check_trace; ovs-ofctl -OOpenFlow13 dump-flows br0 | ofctl_strip | grep actions
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " in_port=30 actions=decap(),output:10
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:704"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:709: ovs-ofctl -OOpenFlow13 dump-flows br1 | ofctl_strip | grep actions"
at_fn_check_prepare_notrace 'a shell pipeline' "packet-type-aware.at:709"
( $at_check_trace; ovs-ofctl -OOpenFlow13 dump-flows br1 | ofctl_strip | grep actions
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " reset_counts in_port=20 actions=output:100
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:709"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:714: ovs-ofctl -OOpenFlow13 dump-flows br2 | ofctl_strip | grep actions"
at_fn_check_prepare_notrace 'a shell pipeline' "packet-type-aware.at:714"
( $at_check_trace; ovs-ofctl -OOpenFlow13 dump-flows br2 | ofctl_strip | grep actions
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " reset_counts in_port=LOCAL actions=output:50
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:714"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:719:
    ovs-appctl netdev-dummy/receive n0 1e2ce92a669e3a6dd2099cab0800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive n0 1e2ce92a669e3a6dd2099cab0800450000548a83400040011aadc0a80a0ac0a80a1e0800b7170a4d0002fd509a5800000000de1c020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:719"
( $at_check_trace;
    ovs-appctl netdev-dummy/receive n0 1e2ce92a669e3a6dd2099cab0800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive n0 1e2ce92a669e3a6dd2099cab0800450000548a83400040011aadc0a80a0ac0a80a1e0800b7170a4d0002fd509a5800000000de1c020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:719"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 1000

{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:726:
    ovs-appctl dpctl/dump-flows --names dummy@ovs-dummy | strip_used | grep -v ipv6 | sort
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:726"
( $at_check_trace;
    ovs-appctl dpctl/dump-flows --names dummy@ovs-dummy | strip_used | grep -v ipv6 | sort

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
recirc_id(0),in_port(n0),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(tos=0/0x3,frag=no), packets:1, bytes:98, used:0.0s, actions:pop_eth,clone(tnl_push(tnl_port(gre_sys),header(size=38,type=3,eth(dst=de:af:be:ef:ba:be,src=aa:55:00:00:00:02,dl_type=0x0800),ipv4(src=10.0.0.1,dst=10.0.0.2,proto=47,tos=0,ttl=64,frag=0x4000),gre((flags=0x0,proto=0x800))),out_port(br2)),n2)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:726"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:732:
    ovs-pcap n2.pcap
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:732"
( $at_check_trace;
    ovs-pcap n2.pcap

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "deafbeefbabeaa550000000208004500006c00004000402f26610a0000010a00000200000800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
deafbeefbabeaa550000000208004500006c00004000402f26610a0000010a00000200000800450000548a83400040011aadc0a80a0ac0a80a1e0800b7170a4d0002fd509a5800000000de1c020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:732"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



ovs-appctl time/warp 11000

## L3 packet over L2 legacy port

{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:745:
    ovs-ofctl del-flows br0 &&
    ovs-ofctl del-flows br1 &&
    ovs-ofctl del-flows br2 &&
    ovs-ofctl add-flow br0 -OOpenFlow13 in_port=n0,actions=decap,output=p0 &&
    ovs-ofctl add-flow br1 in_port=p1,actions=output=n1
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:745"
( $at_check_trace;
    ovs-ofctl del-flows br0 &&
    ovs-ofctl del-flows br1 &&
    ovs-ofctl del-flows br2 &&
    ovs-ofctl add-flow br0 -OOpenFlow13 in_port=n0,actions=decap,output=p0 &&
    ovs-ofctl add-flow br1 in_port=p1,actions=output=n1

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:745"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:753: ovs-ofctl -OOpenFlow13 dump-flows br0 | ofctl_strip | grep actions | sed 's/reset_counts //'"
at_fn_check_prepare_notrace 'a shell pipeline' "packet-type-aware.at:753"
( $at_check_trace; ovs-ofctl -OOpenFlow13 dump-flows br0 | ofctl_strip | grep actions | sed 's/reset_counts //'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " in_port=30 actions=decap(),output:10
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:753"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:758: ovs-ofctl -OOpenFlow13 dump-flows br1 | ofctl_strip | grep actions | sed 's/reset_counts //'"
at_fn_check_prepare_notrace 'a shell pipeline' "packet-type-aware.at:758"
( $at_check_trace; ovs-ofctl -OOpenFlow13 dump-flows br1 | ofctl_strip | grep actions | sed 's/reset_counts //'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " in_port=20 actions=output:40
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:758"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:763:
    ovs-appctl netdev-dummy/receive n0 1e2ce92a669e3a6dd2099cab0800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive n0 1e2ce92a669e3a6dd2099cab0800450000548a83400040011aadc0a80a0ac0a80a1e0800b7170a4d0002fd509a5800000000de1c020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:763"
( $at_check_trace;
    ovs-appctl netdev-dummy/receive n0 1e2ce92a669e3a6dd2099cab0800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive n0 1e2ce92a669e3a6dd2099cab0800450000548a83400040011aadc0a80a0ac0a80a1e0800b7170a4d0002fd509a5800000000de1c020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:763"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 1000

{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:770:
    ovs-appctl dpctl/dump-flows --names dummy@ovs-dummy | strip_used | grep -v ipv6 | sort
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:770"
( $at_check_trace;
    ovs-appctl dpctl/dump-flows --names dummy@ovs-dummy | strip_used | grep -v ipv6 | sort

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
recirc_id(0),in_port(n0),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), packets:1, bytes:98, used:0.0s, actions:drop
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:770"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:776:
    ovs-pcap n1.pcap
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:776"
( $at_check_trace;
    ovs-pcap n1.pcap

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:776"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


## L3 packet over ptap and L2 legacy port

{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:783:
    ovs-ofctl del-flows br0 &&
    ovs-ofctl del-flows br1 &&
    ovs-ofctl del-flows br2 &&
    ovs-ofctl add-flow br0 in_port=n0,actions=decap,output=p0 -OOpenFlow13 &&
    ovs-ofctl add-flow br1 in_port=p1,actions=output=n1,gre1 &&
    ovs-ofctl add-flow br2 in_port=LOCAL,actions=output=n2
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:783"
( $at_check_trace;
    ovs-ofctl del-flows br0 &&
    ovs-ofctl del-flows br1 &&
    ovs-ofctl del-flows br2 &&
    ovs-ofctl add-flow br0 in_port=n0,actions=decap,output=p0 -OOpenFlow13 &&
    ovs-ofctl add-flow br1 in_port=p1,actions=output=n1,gre1 &&
    ovs-ofctl add-flow br2 in_port=LOCAL,actions=output=n2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:783"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:792: ovs-ofctl -OOpenFlow13 dump-flows br0 | ofctl_strip | grep actions | sed 's/reset_counts //'"
at_fn_check_prepare_notrace 'a shell pipeline' "packet-type-aware.at:792"
( $at_check_trace; ovs-ofctl -OOpenFlow13 dump-flows br0 | ofctl_strip | grep actions | sed 's/reset_counts //'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " in_port=30 actions=decap(),output:10
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:792"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:797: ovs-ofctl -OOpenFlow13 dump-flows br1 | ofctl_strip | grep actions | sed 's/reset_counts //'"
at_fn_check_prepare_notrace 'a shell pipeline' "packet-type-aware.at:797"
( $at_check_trace; ovs-ofctl -OOpenFlow13 dump-flows br1 | ofctl_strip | grep actions | sed 's/reset_counts //'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " in_port=20 actions=output:40,output:100
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:797"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:802: ovs-ofctl -OOpenFlow13 dump-flows br2 | ofctl_strip | grep actions | sed 's/reset_counts //'"
at_fn_check_prepare_notrace 'a shell pipeline' "packet-type-aware.at:802"
( $at_check_trace; ovs-ofctl -OOpenFlow13 dump-flows br2 | ofctl_strip | grep actions | sed 's/reset_counts //'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " in_port=LOCAL actions=output:50
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:802"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:807:
    ovs-appctl netdev-dummy/receive n0 1e2ce92a669e3a6dd2099cab0800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive n0 1e2ce92a669e3a6dd2099cab0800450000548a83400040011aadc0a80a0ac0a80a1e0800b7170a4d0002fd509a5800000000de1c020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:807"
( $at_check_trace;
    ovs-appctl netdev-dummy/receive n0 1e2ce92a669e3a6dd2099cab0800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive n0 1e2ce92a669e3a6dd2099cab0800450000548a83400040011aadc0a80a0ac0a80a1e0800b7170a4d0002fd509a5800000000de1c020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:807"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 1000

{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:814:
    ovs-appctl dpctl/dump-flows --names dummy@ovs-dummy | strip_used | grep -v ipv6 | sort
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:814"
( $at_check_trace;
    ovs-appctl dpctl/dump-flows --names dummy@ovs-dummy | strip_used | grep -v ipv6 | sort

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
recirc_id(0),in_port(n0),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(tos=0/0x3,frag=no), packets:1, bytes:98, used:0.0s, actions:pop_eth,clone(tnl_push(tnl_port(gre_sys),header(size=38,type=3,eth(dst=de:af:be:ef:ba:be,src=aa:55:00:00:00:02,dl_type=0x0800),ipv4(src=10.0.0.1,dst=10.0.0.2,proto=47,tos=0,ttl=64,frag=0x4000),gre((flags=0x0,proto=0x800))),out_port(br2)),n2)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:814"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:820:
    ovs-pcap n1.pcap
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:820"
( $at_check_trace;
    ovs-pcap n1.pcap

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:820"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:825:
    ovs-pcap n2.pcap
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:825"
( $at_check_trace;
    ovs-pcap n2.pcap

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "deafbeefbabeaa550000000208004500006c00004000402f26610a0000010a00000200000800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
deafbeefbabeaa550000000208004500006c00004000402f26610a0000010a00000200000800450000548a83400040011aadc0a80a0ac0a80a1e0800b7170a4d0002fd509a5800000000de1c020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
deafbeefbabeaa550000000208004500006c00004000402f26610a0000010a00000200000800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
deafbeefbabeaa550000000208004500006c00004000402f26610a0000010a00000200000800450000548a83400040011aadc0a80a0ac0a80a1e0800b7170a4d0002fd509a5800000000de1c020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:825"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



## L2 packet over L3 legacy port and L2 legacy port
ovs-appctl time/warp 11000

{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:838:
    ovs-vsctl set interface gre1 type=gre options:remote_ip=10.0.0.2 \\
              options:packet_type=legacy_l3 ofport_request=100
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:838"
( $at_check_trace;
    ovs-vsctl set interface gre1 type=gre options:remote_ip=10.0.0.2 \
              options:packet_type=legacy_l3 ofport_request=100

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:838"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


### Verify datapath configuration
{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:844:
    ovs-appctl dpif/show | grep -v hit | sed 's/\\t/    /g' | sed 's./[0-9]\\{1,\\}..'
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:844"
( $at_check_trace;
    ovs-appctl dpif/show | grep -v hit | sed 's/\t/    /g' | sed 's./[0-9]\{1,\}..'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "    br0:
        br0 65534: (dummy-internal)
        n0 30: (dummy)
        p0 10/none: (patch: peer=p1)
    br1:
        br1 65534: (dummy-internal)
        gre1 100: (gre: packet_type=legacy_l3, remote_ip=10.0.0.2)
        n1 40: (dummy)
        p1 20/none: (patch: peer=p0)
    br2:
        br2 65534: (dummy-internal)
        n2 50: (dummy)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:844"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:861:
    ovs-ofctl del-flows br0 &&
    ovs-ofctl del-flows br1 &&
    ovs-ofctl del-flows br2 &&
    ovs-ofctl add-flow br0 in_port=n0,actions=output=p0 &&
    ovs-ofctl add-flow br1 in_port=p1,actions=output=n1,gre1 &&
    ovs-ofctl add-flow br2 in_port=LOCAL,actions=output=n2
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:861"
( $at_check_trace;
    ovs-ofctl del-flows br0 &&
    ovs-ofctl del-flows br1 &&
    ovs-ofctl del-flows br2 &&
    ovs-ofctl add-flow br0 in_port=n0,actions=output=p0 &&
    ovs-ofctl add-flow br1 in_port=p1,actions=output=n1,gre1 &&
    ovs-ofctl add-flow br2 in_port=LOCAL,actions=output=n2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:861"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:870: ovs-ofctl dump-flows br0 | ofctl_strip | grep actions | sed 's/reset_counts //'"
at_fn_check_prepare_notrace 'a shell pipeline' "packet-type-aware.at:870"
( $at_check_trace; ovs-ofctl dump-flows br0 | ofctl_strip | grep actions | sed 's/reset_counts //'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " in_port=30 actions=output:10
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:870"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:875: ovs-ofctl dump-flows br1 | ofctl_strip | grep actions | sed 's/reset_counts //'"
at_fn_check_prepare_notrace 'a shell pipeline' "packet-type-aware.at:875"
( $at_check_trace; ovs-ofctl dump-flows br1 | ofctl_strip | grep actions | sed 's/reset_counts //'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " in_port=20 actions=output:40,output:100
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:875"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:880: ovs-ofctl dump-flows br2 | ofctl_strip | grep actions | sed 's/reset_counts //'"
at_fn_check_prepare_notrace 'a shell pipeline' "packet-type-aware.at:880"
( $at_check_trace; ovs-ofctl dump-flows br2 | ofctl_strip | grep actions | sed 's/reset_counts //'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " in_port=LOCAL actions=output:50
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:880"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:885:
    ovs-appctl netdev-dummy/receive n0 1e2ce92a669e3a6dd2099cab0800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive n0 1e2ce92a669e3a6dd2099cab0800450000548a83400040011aadc0a80a0ac0a80a1e0800b7170a4d0002fd509a5800000000de1c020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:885"
( $at_check_trace;
    ovs-appctl netdev-dummy/receive n0 1e2ce92a669e3a6dd2099cab0800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive n0 1e2ce92a669e3a6dd2099cab0800450000548a83400040011aadc0a80a0ac0a80a1e0800b7170a4d0002fd509a5800000000de1c020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:885"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 1000

{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:892:
    ovs-appctl dpctl/dump-flows --names dummy@ovs-dummy | strip_used | grep -v ipv6 | sort
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:892"
( $at_check_trace;
    ovs-appctl dpctl/dump-flows --names dummy@ovs-dummy | strip_used | grep -v ipv6 | sort

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
recirc_id(0),in_port(n0),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(tos=0/0x3,frag=no), packets:1, bytes:98, used:0.0s, actions:n1,pop_eth,clone(tnl_push(tnl_port(gre_sys),header(size=38,type=3,eth(dst=de:af:be:ef:ba:be,src=aa:55:00:00:00:02,dl_type=0x0800),ipv4(src=10.0.0.1,dst=10.0.0.2,proto=47,tos=0,ttl=64,frag=0x4000),gre((flags=0x0,proto=0x800))),out_port(br2)),n2)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:892"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:898:
    ovs-pcap n1.pcap
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:898"
( $at_check_trace;
    ovs-pcap n1.pcap

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "1e2ce92a669e3a6dd2099cab0800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
1e2ce92a669e3a6dd2099cab0800450000548a83400040011aadc0a80a0ac0a80a1e0800b7170a4d0002fd509a5800000000de1c020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:898"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:905:
    ovs-pcap n2.pcap
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:905"
( $at_check_trace;
    ovs-pcap n2.pcap

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "deafbeefbabeaa550000000208004500006c00004000402f26610a0000010a00000200000800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
deafbeefbabeaa550000000208004500006c00004000402f26610a0000010a00000200000800450000548a83400040011aadc0a80a0ac0a80a1e0800b7170a4d0002fd509a5800000000de1c020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
deafbeefbabeaa550000000208004500006c00004000402f26610a0000010a00000200000800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
deafbeefbabeaa550000000208004500006c00004000402f26610a0000010a00000200000800450000548a83400040011aadc0a80a0ac0a80a1e0800b7170a4d0002fd509a5800000000de1c020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
deafbeefbabeaa550000000208004500006c00004000402f26610a0000010a00000200000800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
deafbeefbabeaa550000000208004500006c00004000402f26610a0000010a00000200000800450000548a83400040011aadc0a80a0ac0a80a1e0800b7170a4d0002fd509a5800000000de1c020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:905"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:916: check_logs "
at_fn_check_prepare_trace "packet-type-aware.at:916"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:916"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:916: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "packet-type-aware.at:916"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:916"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:916: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "packet-type-aware.at:916"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:916"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "packet-type-aware.at:916: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "packet-type-aware.at:916: wait failed" >&5

    $as_echo "packet-type-aware.at:916" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/packet-type-aware.at:916"
fi

   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:916: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "packet-type-aware.at:916"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:916"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:916: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "packet-type-aware.at:916"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:916"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "packet-type-aware.at:916: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "packet-type-aware.at:916: wait failed" >&5

    $as_echo "packet-type-aware.at:916" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/packet-type-aware.at:916"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2524
#AT_START_2525
at_fn_group_banner 2525 'packet-type-aware.at:920' \
  "ptap - recirculate after packet_type change" "    " 132
at_xfail=no
(
  $as_echo "2525. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


########################
#      --<--+
#     LOCAL |
#        +--o------+
#        |  int-br |
#        +------o--+
#               L3 tunnel (remote : 20.0.0.2/24)
#        +--o------+
#        |   br0   |  <- 20.0.0.1/24
#        +------o--+
#            p0 |
#               +--<--

   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:935: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "packet-type-aware.at:935"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:935"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/packet-type-aware.at:935: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "packet-type-aware.at:935"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:935"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:935: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:935"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:935"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/packet-type-aware.at:935: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "packet-type-aware.at:935"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:935"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/packet-type-aware.at:935: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "packet-type-aware.at:935"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:935"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:935: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:935"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:935"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:935: add_of_br 0     -- set bridge br0 other-config:hwaddr=aa:bb:cc:00:00:01 \\
    -- add-port br0 p0 \\
    -- set interface p0 type=dummy other_config:hwaddr=aa:bb:cc:00:00:01 ofport_request=1 \\
    -- add-br int-br -- set bridge int-br datapath_type=dummy \\
    -- add-port int-br tunnel \\
    -- set interface tunnel type=gre options:packet_type=legacy_l3 options:remote_ip=20.0.0.2 ofport_request=2
 "
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:935"
( $at_check_trace; add_of_br 0     -- set bridge br0 other-config:hwaddr=aa:bb:cc:00:00:01 \
    -- add-port br0 p0 \
    -- set interface p0 type=dummy other_config:hwaddr=aa:bb:cc:00:00:01 ofport_request=1 \
    -- add-br int-br -- set bridge int-br datapath_type=dummy \
    -- add-port int-br tunnel \
    -- set interface tunnel type=gre options:packet_type=legacy_l3 options:remote_ip=20.0.0.2 ofport_request=2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:935"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



### Verify datapath configuration
{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:945:
    ovs-appctl dpif/show | grep -v hit | sed 's/\\t/    /g' | sed 's./[0-9]\\{1,\\}..'
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:945"
( $at_check_trace;
    ovs-appctl dpif/show | grep -v hit | sed 's/\t/    /g' | sed 's./[0-9]\{1,\}..'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "    br0:
        br0 65534: (dummy-internal)
        p0 1: (dummy)
    int-br:
        int-br 65534: (dummy-internal)
        tunnel 2: (gre: packet_type=legacy_l3, remote_ip=20.0.0.2)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:945"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:956:
    ovs-appctl netdev-dummy/ip4addr br0 20.0.0.1/24 &&
    ovs-appctl ovs/route/add 20.0.0.2/24 br0 &&
    ovs-appctl tnl/neigh/set br0 20.0.0.1 aa:bb:cc:00:00:01 &&
    ovs-appctl tnl/neigh/set br0 20.0.0.2 aa:bb:cc:00:00:02
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:956"
( $at_check_trace;
    ovs-appctl netdev-dummy/ip4addr br0 20.0.0.1/24 &&
    ovs-appctl ovs/route/add 20.0.0.2/24 br0 &&
    ovs-appctl tnl/neigh/set br0 20.0.0.1 aa:bb:cc:00:00:01 &&
    ovs-appctl tnl/neigh/set br0 20.0.0.2 aa:bb:cc:00:00:02

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:956"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 1000

{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:965:
    ovs-appctl ovs/route/show | grep User
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:965"
( $at_check_trace;
    ovs-appctl ovs/route/show | grep User

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "User: 20.0.0.0/24 dev br0 SRC 20.0.0.1
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:965"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:971:
    ovs-appctl tnl/neigh/show | grep br | tr -s ' ' | sort
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:971"
( $at_check_trace;
    ovs-appctl tnl/neigh/show | grep br | tr -s ' ' | sort

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "20.0.0.1 aa:bb:cc:00:00:01 br0
20.0.0.2 aa:bb:cc:00:00:02 br0
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:971"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Goto_table after pop_mpls triggers recirculation.
{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:979:
    ovs-ofctl del-flows br0 &&
    ovs-ofctl del-flows int-br &&
    ovs-ofctl add-flow br0 \"actions=normal\"
    ovs-ofctl add-flow int-br \"table=0,in_port=tunnel,actions=pop_mpls:0x800,goto_table:20\" &&
    ovs-ofctl add-flow int-br \"table=20,actions=dec_ttl,output:LOCAL\"
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:979"
( $at_check_trace;
    ovs-ofctl del-flows br0 &&
    ovs-ofctl del-flows int-br &&
    ovs-ofctl add-flow br0 "actions=normal"
    ovs-ofctl add-flow int-br "table=0,in_port=tunnel,actions=pop_mpls:0x800,goto_table:20" &&
    ovs-ofctl add-flow int-br "table=20,actions=dec_ttl,output:LOCAL"

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:979"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 1000

{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:989:
    ovs-ofctl dump-flows br0 -OOpenFlow13 | ofctl_strip | grep actions | sed 's/reset_counts //'
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:989"
( $at_check_trace;
    ovs-ofctl dump-flows br0 -OOpenFlow13 | ofctl_strip | grep actions | sed 's/reset_counts //'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " actions=NORMAL
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:989"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:995:
    ovs-ofctl dump-flows int-br -OOpenFlow13 | ofctl_strip | grep actions | sed 's/reset_counts //'
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:995"
( $at_check_trace;
    ovs-ofctl dump-flows int-br -OOpenFlow13 | ofctl_strip | grep actions | sed 's/reset_counts //'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " in_port=2 actions=pop_mpls:0x0800,resubmit(,20)
 table=20, actions=dec_ttl,LOCAL
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:995"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Receive MPLS over L3 GRE packet in underlay bridge.
{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:1003:
    ovs-appctl netdev-dummy/receive p0 aabbcc000001aabbcc00000208004500007000004000402f125d140000021400000100008847003e71404500005470f5400040013445c0a80a14c0a80a0a08004e1adbfc0001566b575a00000000604f010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive p0 aabbcc000001aabbcc00000208004500007000004000402f125d140000021400000100008847003e71404500005470f5400040013445c0a80a14c0a80a0a08004e1adbfc0001566b575a00000000604f010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:1003"
( $at_check_trace;
    ovs-appctl netdev-dummy/receive p0 aabbcc000001aabbcc00000208004500007000004000402f125d140000021400000100008847003e71404500005470f5400040013445c0a80a14c0a80a0a08004e1adbfc0001566b575a00000000604f010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive p0 aabbcc000001aabbcc00000208004500007000004000402f125d140000021400000100008847003e71404500005470f5400040013445c0a80a14c0a80a0a08004e1adbfc0001566b575a00000000604f010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:1003"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 1000

{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:1010:
    ovs-appctl netdev-dummy/receive p0 aabbcc000001aabbcc00000208004500007000004000402f125d140000021400000100008847003e71404500005470f5400040013445c0a80a14c0a80a0a08004e1adbfc0001566b575a00000000604f010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive p0 aabbcc000001aabbcc00000208004500007000004000402f125d140000021400000100008847003e71404500005470f5400040013445c0a80a14c0a80a0a08004e1adbfc0001566b575a00000000604f010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:1010"
( $at_check_trace;
    ovs-appctl netdev-dummy/receive p0 aabbcc000001aabbcc00000208004500007000004000402f125d140000021400000100008847003e71404500005470f5400040013445c0a80a14c0a80a0a08004e1adbfc0001566b575a00000000604f010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive p0 aabbcc000001aabbcc00000208004500007000004000402f125d140000021400000100008847003e71404500005470f5400040013445c0a80a14c0a80a0a08004e1adbfc0001566b575a00000000604f010000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:1010"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 1000

# After packet has been received on L3 port in overlay bridge, its packet_type changes to Ethernet.
# Resubmit after pop_mpls recirculates the L2 packet.
{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:1019:
    ovs-appctl dpctl/dump-flows --names dummy@ovs-dummy | strip_used | grep -v ipv6 | sort
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:1019"
( $at_check_trace;
    ovs-appctl dpctl/dump-flows --names dummy@ovs-dummy | strip_used | grep -v ipv6 | sort

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
recirc_id(0),in_port(p0),packet_type(ns=0,id=0),eth(src=aa:bb:cc:00:00:02,dst=aa:bb:cc:00:00:01),eth_type(0x0800),ipv4(dst=20.0.0.1,proto=47,frag=no), packets:3, bytes:378, used:0.0s, actions:tnl_pop(gre_sys)
tunnel(src=20.0.0.2,dst=20.0.0.1,flags(-df-csum)),recirc_id(0),in_port(gre_sys),packet_type(ns=1,id=0x8847),mpls(label=999/0x0,tc=0/0,ttl=64/0x0,bos=1/1), packets:3, bytes:264, used:0.0s, actions:push_eth(src=00:00:00:00:00:00,dst=00:00:00:00:00:00),pop_mpls(eth_type=0x800),recirc(0x1)
tunnel(src=20.0.0.2,dst=20.0.0.1,flags(-df-csum)),recirc_id(0x1),in_port(gre_sys),packet_type(ns=0,id=0),eth(dst=00:00:00:00:00:00),eth_type(0x0800),ipv4(ttl=64,frag=no), packets:3, bytes:294, used:0.0s, actions:set(ipv4(ttl=63)),int-br
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:1019"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 1000

{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:1029:
    ovs-ofctl dump-ports int-br LOCAL
    ovs-ofctl dump-ports int-br 2
"
at_fn_check_prepare_notrace 'an embedded newline' "packet-type-aware.at:1029"
( $at_check_trace;
    ovs-ofctl dump-ports int-br LOCAL
    ovs-ofctl dump-ports int-br 2

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "OFPST_PORT reply (xid=0x2): 1 ports
  port LOCAL: rx pkts=0, bytes=0, drop=?, errs=?, frame=?, over=?, crc=?
           tx pkts=4, bytes=392, drop=?, errs=?, coll=?
OFPST_PORT reply (xid=0x2): 1 ports
  port  2: rx pkts=4, bytes=352, drop=?, errs=?, frame=?, over=?, crc=?
           tx pkts=0, bytes=0, drop=?, errs=?, coll=?
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:1029"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/packet-type-aware.at:1040: check_logs "
at_fn_check_prepare_trace "packet-type-aware.at:1040"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:1040"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:1040: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "packet-type-aware.at:1040"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:1040"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:1040: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "packet-type-aware.at:1040"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:1040"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "packet-type-aware.at:1040: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "packet-type-aware.at:1040: wait failed" >&5

    $as_echo "packet-type-aware.at:1040" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/packet-type-aware.at:1040"
fi

   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:1040: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "packet-type-aware.at:1040"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:1040"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/packet-type-aware.at:1040: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "packet-type-aware.at:1040"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/packet-type-aware.at:1040"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "packet-type-aware.at:1040: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "packet-type-aware.at:1040: wait failed" >&5

    $as_echo "packet-type-aware.at:1040" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/packet-type-aware.at:1040"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2525
#AT_START_2526
at_fn_group_banner 2526 'nsh.at:7' \
  "nsh - matching" "                                 " 133
at_xfail=no
(
  $as_echo "2526. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/nsh.at:9: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "nsh.at:9"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:9"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/nsh.at:9: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "nsh.at:9"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:9"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/nsh.at:9: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:9"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:9"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/nsh.at:9: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "nsh.at:9"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:9"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/nsh.at:9: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "nsh.at:9"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:9"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/nsh.at:9: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:9"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:9"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/nsh.at:9: add_of_br 0     set bridge br0 datapath_type=dummy \\
        protocols=OpenFlow10,OpenFlow13,OpenFlow14,OpenFlow15 -- \\
    add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1 -- \\
    add-port br0 p2 -- set Interface p2 type=dummy ofport_request=2 "
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:9"
( $at_check_trace; add_of_br 0     set bridge br0 datapath_type=dummy \
        protocols=OpenFlow10,OpenFlow13,OpenFlow14,OpenFlow15 -- \
    add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1 -- \
    add-port br0 p2 -- set Interface p2 type=dummy ofport_request=2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:9"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



cat >flows.txt <<'_ATEOF'
    table=0,in_port=1,dl_type=0x894f,nsh_ttl=63,nsh_mdtype=1,nsh_np=3,nsh_spi=0x123456,nsh_si=255,nsh_c1=0x11223344,actions=set_field:0x2->nsh_flags,set_field:254->nsh_si,set_field:0x44332211->nsh_c1,2
_ATEOF


{ set +x
$as_echo "$at_srcdir/nsh.at:19:
    ovs-ofctl del-flows br0
    ovs-ofctl -Oopenflow13 add-flows br0 flows.txt
    ovs-ofctl -Oopenflow13 dump-flows br0 | ofctl_strip | sort | grep actions
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:19"
( $at_check_trace;
    ovs-ofctl del-flows br0
    ovs-ofctl -Oopenflow13 add-flows br0 flows.txt
    ovs-ofctl -Oopenflow13 dump-flows br0 | ofctl_strip | sort | grep actions

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " in_port=1,dl_type=0x894f,nsh_ttl=63,nsh_mdtype=1,nsh_np=3,nsh_spi=0x123456,nsh_si=255,nsh_c1=0x11223344 actions=set_field:2->nsh_flags,set_field:254->nsh_si,set_field:0x44332211->nsh_c1,output:2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:19"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/nsh.at:27:
    ovs-appctl ofproto/trace br0 'in_port=1,dl_type=0x894f,nsh_ttl=63,nsh_mdtype=1,nsh_np=3,nsh_spi=0x123456,nsh_si=255,nsh_c1=0x11223344,nsh_c2=0x55667788,nsh_c3=0x99aabbcc,nsh_c4=0xddeeff00'
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:27"
( $at_check_trace;
    ovs-appctl ofproto/trace br0 'in_port=1,dl_type=0x894f,nsh_ttl=63,nsh_mdtype=1,nsh_np=3,nsh_spi=0x123456,nsh_si=255,nsh_c1=0x11223344,nsh_c2=0x55667788,nsh_c3=0x99aabbcc,nsh_c4=0xddeeff00'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Flow: in_port=1,vlan_tci=0x0000,dl_src=00:00:00:00:00:00,dl_dst=00:00:00:00:00:00,dl_type=0x894f,nsh_flags=0,nsh_ttl=63,nsh_mdtype=1,nsh_np=3,nsh_spi=0x123456,nsh_si=255,nsh_c1=0x11223344,nsh_c2=0x55667788,nsh_c3=0x99aabbcc,nsh_c4=0xddeeff00,nw_proto=0,nw_tos=0,nw_ecn=0,nw_ttl=0

bridge(\"br0\")
-------------
 0. in_port=1,dl_type=0x894f,nsh_ttl=63,nsh_mdtype=1,nsh_np=3,nsh_spi=0x123456,nsh_si=255,nsh_c1=0x11223344, priority 32768
    set_field:2->nsh_flags
    set_field:254->nsh_si
    set_field:0x44332211->nsh_c1
    output:2

Final flow: in_port=1,vlan_tci=0x0000,dl_src=00:00:00:00:00:00,dl_dst=00:00:00:00:00:00,dl_type=0x894f,nsh_flags=2,nsh_ttl=63,nsh_mdtype=1,nsh_np=3,nsh_spi=0x123456,nsh_si=254,nsh_c1=0x44332211,nsh_c2=0x55667788,nsh_c3=0x99aabbcc,nsh_c4=0xddeeff00,nw_proto=0,nw_tos=0,nw_ecn=0,nw_ttl=0
Megaflow: recirc_id=0,eth,in_port=1,dl_type=0x894f,nsh_flags=0,nsh_ttl=63,nsh_mdtype=1,nsh_np=3,nsh_spi=0x123456,nsh_si=255,nsh_c1=0x11223344
Datapath actions: set(nsh(flags=2,ttl=63,spi=0x123456,si=254,c1=0x44332211)),2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:27"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/nsh.at:45: check_logs "
at_fn_check_prepare_trace "nsh.at:45"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:45"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/nsh.at:45: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "nsh.at:45"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:45"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/nsh.at:45: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "nsh.at:45"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:45"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "nsh.at:45: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "nsh.at:45: wait failed" >&5

    $as_echo "nsh.at:45" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/nsh.at:45"
fi

   { set +x
$as_echo "$at_srcdir/nsh.at:45: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "nsh.at:45"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:45"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/nsh.at:45: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "nsh.at:45"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:45"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "nsh.at:45: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "nsh.at:45: wait failed" >&5

    $as_echo "nsh.at:45" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/nsh.at:45"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2526
#AT_START_2527
at_fn_group_banner 2527 'nsh.at:53' \
  "nsh - md1 encap over a veth link" "               " 133
at_xfail=no
(
  $as_echo "2527. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/nsh.at:55: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "nsh.at:55"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:55"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/nsh.at:55: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "nsh.at:55"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:55"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/nsh.at:55: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:55"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:55"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/nsh.at:55: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "nsh.at:55"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:55"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/nsh.at:55: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "nsh.at:55"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:55"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/nsh.at:55: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:55"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:55"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/nsh.at:55: add_of_br 0  "
at_fn_check_prepare_trace "nsh.at:55"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:55"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/nsh.at:57:
ovs-vsctl set bridge br0 datapath_type=dummy \\
            protocols=OpenFlow10,OpenFlow13,OpenFlow14,OpenFlow15 -- \\
        add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1 -- \\
        add-port br0 p2 -- set Interface p2 type=dummy ofport_request=2 -- \\
        add-port br0 v3 -- set Interface v3 type=patch options:peer=v4 ofport_request=3 -- \\
        add-port br0 v4 -- set Interface v4 type=patch options:peer=v3 ofport_request=4"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:57"
( $at_check_trace;
ovs-vsctl set bridge br0 datapath_type=dummy \
            protocols=OpenFlow10,OpenFlow13,OpenFlow14,OpenFlow15 -- \
        add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1 -- \
        add-port br0 p2 -- set Interface p2 type=dummy ofport_request=2 -- \
        add-port br0 v3 -- set Interface v3 type=patch options:peer=v4 ofport_request=3 -- \
        add-port br0 v4 -- set Interface v4 type=patch options:peer=v3 ofport_request=4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:57"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
    table=0,in_port=1,ip,actions=encap(nsh(md_type=1)),set_field:0x1234->nsh_spi,set_field:0x11223344->nsh_c1,encap(ethernet),set_field:11:22:33:44:55:66->dl_dst,3
    table=0,in_port=4,dl_type=0x894f,nsh_mdtype=1,nsh_spi=0x1234,nsh_c1=0x11223344,actions=decap(),decap(),2
_ATEOF


{ set +x
$as_echo "$at_srcdir/nsh.at:70:
    ovs-ofctl del-flows br0
    ovs-ofctl -Oopenflow13 add-flows br0 flows.txt
    ovs-ofctl -Oopenflow13 dump-flows br0 | ofctl_strip | sort | grep actions
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:70"
( $at_check_trace;
    ovs-ofctl del-flows br0
    ovs-ofctl -Oopenflow13 add-flows br0 flows.txt
    ovs-ofctl -Oopenflow13 dump-flows br0 | ofctl_strip | sort | grep actions

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " in_port=4,dl_type=0x894f,nsh_mdtype=1,nsh_spi=0x1234,nsh_c1=0x11223344 actions=decap(),decap(),output:2
 ip,in_port=1 actions=encap(nsh(md_type=1)),set_field:0x1234->nsh_spi,set_field:0x11223344->nsh_c1,encap(ethernet),set_field:11:22:33:44:55:66->eth_dst,output:3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:70"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# TODO:
# The fields nw_proto, nw_tos, nw_ecn, nw_ttl in final flow seem unnecessary. Can they be avoided?
# The match on dl_dst=66:77:88:99:aa:bb in the Megaflow is a side effect of setting the dl_dst in the pushed outer
# Ethernet header. It is a consequence of using wc->masks both for tracking matched and set bits and seems hard to
# avoid except by using separate masks for both purposes.

{ set +x
$as_echo "$at_srcdir/nsh.at:85:
    ovs-appctl ofproto/trace br0 'in_port=1,icmp,dl_src=00:11:22:33:44:55,dl_dst=66:77:88:99:aa:bb,nw_dst=10.10.10.10,nw_src=20.20.20.20'
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:85"
( $at_check_trace;
    ovs-appctl ofproto/trace br0 'in_port=1,icmp,dl_src=00:11:22:33:44:55,dl_dst=66:77:88:99:aa:bb,nw_dst=10.10.10.10,nw_src=20.20.20.20'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Flow: icmp,in_port=1,vlan_tci=0x0000,dl_src=00:11:22:33:44:55,dl_dst=66:77:88:99:aa:bb,nw_src=20.20.20.20,nw_dst=10.10.10.10,nw_tos=0,nw_ecn=0,nw_ttl=0,icmp_type=0,icmp_code=0

bridge(\"br0\")
-------------
 0. ip,in_port=1, priority 32768
    encap(nsh(md_type=1))
    set_field:0x1234->nsh_spi
    set_field:0x11223344->nsh_c1
    encap(ethernet)
    set_field:11:22:33:44:55:66->eth_dst
    output:3

bridge(\"br0\")
-------------
 0. in_port=4,dl_type=0x894f,nsh_mdtype=1,nsh_spi=0x1234,nsh_c1=0x11223344, priority 32768
    decap()
    decap()

Final flow: in_port=1,vlan_tci=0x0000,dl_src=00:00:00:00:00:00,dl_dst=11:22:33:44:55:66,dl_type=0x894f,nsh_flags=0,nsh_ttl=63,nsh_mdtype=1,nsh_np=3,nsh_spi=0x1234,nsh_si=255,nsh_c1=0x11223344,nsh_c2=0x0,nsh_c3=0x0,nsh_c4=0x0,nw_proto=0,nw_tos=0,nw_ecn=0,nw_ttl=0
Megaflow: recirc_id=0,eth,ip,in_port=1,dl_dst=66:77:88:99:aa:bb,nw_frag=no
Datapath actions: push_nsh(flags=0,ttl=63,mdtype=1,np=3,spi=0x1234,si=255,c1=0x11223344,c2=0x0,c3=0x0,c4=0x0),push_eth(src=00:00:00:00:00:00,dst=11:22:33:44:55:66),pop_eth,pop_nsh(),set(eth(dst=11:22:33:44:55:66)),recirc(0x1)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:85"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/nsh.at:111:
    ovs-appctl ofproto/trace br0 'in_port=4,dl_type=0x894f,nsh_mdtype=1,nsh_np=3,nsh_spi=0x1234,nsh_c1=0x11223344'
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:111"
( $at_check_trace;
    ovs-appctl ofproto/trace br0 'in_port=4,dl_type=0x894f,nsh_mdtype=1,nsh_np=3,nsh_spi=0x1234,nsh_c1=0x11223344'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Flow: in_port=4,vlan_tci=0x0000,dl_src=00:00:00:00:00:00,dl_dst=00:00:00:00:00:00,dl_type=0x894f,nsh_flags=0,nsh_ttl=0,nsh_mdtype=1,nsh_np=3,nsh_spi=0x1234,nsh_si=0,nsh_c1=0x11223344,nsh_c2=0x0,nsh_c3=0x0,nsh_c4=0x0,nw_proto=0,nw_tos=0,nw_ecn=0,nw_ttl=0

bridge(\"br0\")
-------------
 0. in_port=4,dl_type=0x894f,nsh_mdtype=1,nsh_spi=0x1234,nsh_c1=0x11223344, priority 32768
    decap()
    decap()

Final flow: unchanged
Megaflow: recirc_id=0,eth,in_port=4,dl_type=0x894f,nsh_mdtype=1,nsh_np=3,nsh_spi=0x1234,nsh_c1=0x11223344
Datapath actions: pop_eth,pop_nsh(),recirc(0x2)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:111"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Now send two real ICMP echo request packets in on port p1

{ set +x
$as_echo "$at_srcdir/nsh.at:129:
    ovs-appctl netdev-dummy/receive p1 1e2ce92a669e3a6dd2099cab0800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive p1 1e2ce92a669e3a6dd2099cab0800450000548a83400040011aadc0a80a0ac0a80a1e0800b7170a4d0002fd509a5800000000de1c020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:129"
( $at_check_trace;
    ovs-appctl netdev-dummy/receive p1 1e2ce92a669e3a6dd2099cab0800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive p1 1e2ce92a669e3a6dd2099cab0800450000548a83400040011aadc0a80a0ac0a80a1e0800b7170a4d0002fd509a5800000000de1c020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:129"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 1000

# A packet count of 1 in the megaflow entries means the first packet was processed by
# the ofproto slow path and the second successfully by the datapath flow entry.

{ set +x
$as_echo "$at_srcdir/nsh.at:139:
    ovs-appctl dpctl/dump-flows dummy@ovs-dummy | strip_used | grep -v ipv6 | sort
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:139"
( $at_check_trace;
    ovs-appctl dpctl/dump-flows dummy@ovs-dummy | strip_used | grep -v ipv6 | sort

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(dst=1e:2c:e9:2a:66:9e),eth_type(0x0800),ipv4(frag=no), packets:1, bytes:98, used:0.0s, actions:push_nsh(flags=0,ttl=63,mdtype=1,np=3,spi=0x1234,si=255,c1=0x11223344,c2=0x0,c3=0x0,c4=0x0),push_eth(src=00:00:00:00:00:00,dst=11:22:33:44:55:66),pop_eth,pop_nsh(),set(eth(dst=11:22:33:44:55:66)),recirc(0x3)
recirc_id(0x3),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), packets:1, bytes:98, used:0.0s, actions:2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:139"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Verify, that VLAN tagged packets can be encapsulated by NSH header.
ovs-appctl time/warp 10000

cat >flows.txt <<'_ATEOF'
    table=0,in_port=1,actions=push_vlan:0x8100,mod_vlan_vid:100,3
    table=0,in_port=4,actions=encap(nsh),decap(),2
_ATEOF


{ set +x
$as_echo "$at_srcdir/nsh.at:154:
    ovs-ofctl del-flows br0
    ovs-ofctl -Oopenflow13 add-flows br0 flows.txt
    ovs-ofctl -Oopenflow13 dump-flows br0 | ofctl_strip | sort | grep actions
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:154"
( $at_check_trace;
    ovs-ofctl del-flows br0
    ovs-ofctl -Oopenflow13 add-flows br0 flows.txt
    ovs-ofctl -Oopenflow13 dump-flows br0 | ofctl_strip | sort | grep actions

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " in_port=1 actions=push_vlan:0x8100,set_field:4196->vlan_vid,output:3
 in_port=4 actions=encap(nsh),decap(),output:2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:154"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/nsh.at:163:
    ovs-appctl netdev-dummy/receive p1 1e2ce92a669e3a6dd2099cab0800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive p1 1e2ce92a669e3a6dd2099cab0800450000548a83400040011aadc0a80a0ac0a80a1e0800b7170a4d0002fd509a5800000000de1c020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:163"
( $at_check_trace;
    ovs-appctl netdev-dummy/receive p1 1e2ce92a669e3a6dd2099cab0800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive p1 1e2ce92a669e3a6dd2099cab0800450000548a83400040011aadc0a80a0ac0a80a1e0800b7170a4d0002fd509a5800000000de1c020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:163"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 1000
ovs-appctl time/warp 1000
ovs-appctl time/warp 1000

{ set +x
$as_echo "$at_srcdir/nsh.at:172:
    ovs-appctl dpctl/dump-flows dummy@ovs-dummy | strip_used | grep -v ipv6 | sort
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:172"
( $at_check_trace;
    ovs-appctl dpctl/dump-flows dummy@ovs-dummy | strip_used | grep -v ipv6 | sort

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), packets:1, bytes:98, used:0.0s, actions:push_vlan(vid=100,pcp=0),push_nsh(flags=0,ttl=63,mdtype=1,np=3,spi=0x0,si=255,c1=0x0,c2=0x0,c3=0x0,c4=0x0),pop_nsh(),recirc(0x4)
recirc_id(0x4),in_port(1),packet_type(ns=0,id=0),eth_type(0x8100),vlan(vid=100,pcp=0),encap(eth_type(0x0800),ipv4(frag=no)), packets:1, bytes:102, used:0.0s, actions:2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:172"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/nsh.at:179: check_logs "
at_fn_check_prepare_trace "nsh.at:179"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:179"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/nsh.at:179: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "nsh.at:179"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:179"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/nsh.at:179: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "nsh.at:179"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:179"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "nsh.at:179: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "nsh.at:179: wait failed" >&5

    $as_echo "nsh.at:179" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/nsh.at:179"
fi

   { set +x
$as_echo "$at_srcdir/nsh.at:179: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "nsh.at:179"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:179"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/nsh.at:179: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "nsh.at:179"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:179"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "nsh.at:179: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "nsh.at:179: wait failed" >&5

    $as_echo "nsh.at:179" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/nsh.at:179"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2527
#AT_START_2528
at_fn_group_banner 2528 'nsh.at:187' \
  "nsh - md2 encap over a veth link" "               " 133
at_xfail=no
(
  $as_echo "2528. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/nsh.at:189: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "nsh.at:189"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:189"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/nsh.at:189: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "nsh.at:189"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:189"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/nsh.at:189: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:189"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:189"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/nsh.at:189: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "nsh.at:189"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:189"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/nsh.at:189: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "nsh.at:189"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:189"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/nsh.at:189: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:189"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:189"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/nsh.at:189: add_of_br 0  "
at_fn_check_prepare_trace "nsh.at:189"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:189"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/nsh.at:191:
ovs-vsctl set bridge br0 datapath_type=dummy \\
            protocols=OpenFlow10,OpenFlow13,OpenFlow14,OpenFlow15 -- \\
        add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1 -- \\
        add-port br0 p2 -- set Interface p2 type=dummy ofport_request=2 -- \\
        add-port br0 v3 -- set Interface v3 type=patch options:peer=v4 ofport_request=3 -- \\
        add-port br0 v4 -- set Interface v4 type=patch options:peer=v3 ofport_request=4"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:191"
( $at_check_trace;
ovs-vsctl set bridge br0 datapath_type=dummy \
            protocols=OpenFlow10,OpenFlow13,OpenFlow14,OpenFlow15 -- \
        add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1 -- \
        add-port br0 p2 -- set Interface p2 type=dummy ofport_request=2 -- \
        add-port br0 v3 -- set Interface v3 type=patch options:peer=v4 ofport_request=3 -- \
        add-port br0 v4 -- set Interface v4 type=patch options:peer=v3 ofport_request=4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:191"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
    table=0,in_port=1,ip,actions=encap(nsh(md_type=2,tlv(0x1000,10,0x12345678),tlv(0x2000,20,0xfedcba9876543210))),set_field:0x1234->nsh_spi,encap(ethernet),set_field:11:22:33:44:55:66->dl_dst,3
    table=0,in_port=4,dl_type=0x894f,nsh_mdtype=2,nsh_spi=0x1234,actions=decap(),decap(),2
_ATEOF


{ set +x
$as_echo "$at_srcdir/nsh.at:204:
    ovs-ofctl del-flows br0
    ovs-ofctl -Oopenflow13 add-flows br0 flows.txt
    ovs-ofctl -Oopenflow13 dump-flows br0 | ofctl_strip | sort | grep actions
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:204"
( $at_check_trace;
    ovs-ofctl del-flows br0
    ovs-ofctl -Oopenflow13 add-flows br0 flows.txt
    ovs-ofctl -Oopenflow13 dump-flows br0 | ofctl_strip | sort | grep actions

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " in_port=4,dl_type=0x894f,nsh_mdtype=2,nsh_spi=0x1234 actions=decap(),decap(),output:2
 ip,in_port=1 actions=encap(nsh(md_type=2,tlv(0x1000,10,0x12345678),tlv(0x2000,20,0xfedcba9876543210))),set_field:0x1234->nsh_spi,encap(ethernet),set_field:11:22:33:44:55:66->eth_dst,output:3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:204"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/nsh.at:213:
    ovs-appctl ofproto/trace br0 'in_port=1,icmp,dl_src=00:11:22:33:44:55,dl_dst=66:77:88:99:aa:bb,nw_dst=10.10.10.10,nw_src=20.20.20.20'
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:213"
( $at_check_trace;
    ovs-appctl ofproto/trace br0 'in_port=1,icmp,dl_src=00:11:22:33:44:55,dl_dst=66:77:88:99:aa:bb,nw_dst=10.10.10.10,nw_src=20.20.20.20'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Flow: icmp,in_port=1,vlan_tci=0x0000,dl_src=00:11:22:33:44:55,dl_dst=66:77:88:99:aa:bb,nw_src=20.20.20.20,nw_dst=10.10.10.10,nw_tos=0,nw_ecn=0,nw_ttl=0,icmp_type=0,icmp_code=0

bridge(\"br0\")
-------------
 0. ip,in_port=1, priority 32768
    encap(nsh(md_type=2,tlv(0x1000,10,0x12345678),tlv(0x2000,20,0xfedcba9876543210)))
    set_field:0x1234->nsh_spi
    encap(ethernet)
    set_field:11:22:33:44:55:66->eth_dst
    output:3

bridge(\"br0\")
-------------
 0. in_port=4,dl_type=0x894f,nsh_mdtype=2,nsh_spi=0x1234, priority 32768
    decap()
    decap()

Final flow: in_port=1,vlan_tci=0x0000,dl_src=00:00:00:00:00:00,dl_dst=11:22:33:44:55:66,dl_type=0x894f,nsh_flags=0,nsh_ttl=63,nsh_mdtype=2,nsh_np=3,nsh_spi=0x1234,nsh_si=255,nw_proto=0,nw_tos=0,nw_ecn=0,nw_ttl=0
Megaflow: recirc_id=0,eth,ip,in_port=1,dl_dst=66:77:88:99:aa:bb,nw_frag=no
Datapath actions: push_nsh(flags=0,ttl=63,mdtype=2,np=3,spi=0x1234,si=255,md2=0x10000a041234567820001408fedcba9876543210),push_eth(src=00:00:00:00:00:00,dst=11:22:33:44:55:66),pop_eth,pop_nsh(),set(eth(dst=11:22:33:44:55:66)),recirc(0x1)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:213"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/nsh.at:238:
    ovs-appctl ofproto/trace br0 'in_port=4,dl_type=0x894f,nsh_mdtype=2,nsh_np=3,nsh_spi=0x1234'
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:238"
( $at_check_trace;
    ovs-appctl ofproto/trace br0 'in_port=4,dl_type=0x894f,nsh_mdtype=2,nsh_np=3,nsh_spi=0x1234'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Flow: in_port=4,vlan_tci=0x0000,dl_src=00:00:00:00:00:00,dl_dst=00:00:00:00:00:00,dl_type=0x894f,nsh_flags=0,nsh_ttl=0,nsh_mdtype=2,nsh_np=3,nsh_spi=0x1234,nsh_si=0,nw_proto=0,nw_tos=0,nw_ecn=0,nw_ttl=0

bridge(\"br0\")
-------------
 0. in_port=4,dl_type=0x894f,nsh_mdtype=2,nsh_spi=0x1234, priority 32768
    decap()
    decap()

Final flow: unchanged
Megaflow: recirc_id=0,eth,in_port=4,dl_type=0x894f,nsh_mdtype=2,nsh_np=3,nsh_spi=0x1234
Datapath actions: pop_eth,pop_nsh(),recirc(0x2)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:238"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Now send two real ICMP echo request packets in on port p1

{ set +x
$as_echo "$at_srcdir/nsh.at:256:
    ovs-appctl netdev-dummy/receive p1 1e2ce92a669e3a6dd2099cab0800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive p1 1e2ce92a669e3a6dd2099cab0800450000548a83400040011aadc0a80a0ac0a80a1e0800b7170a4d0002fd509a5800000000de1c020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:256"
( $at_check_trace;
    ovs-appctl netdev-dummy/receive p1 1e2ce92a669e3a6dd2099cab0800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive p1 1e2ce92a669e3a6dd2099cab0800450000548a83400040011aadc0a80a0ac0a80a1e0800b7170a4d0002fd509a5800000000de1c020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:256"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 1000

# A packet count of 1 in the megaflow entries means the first packet was processed by
# the ofproto slow path and the second successfully by the datapath flow entry.

{ set +x
$as_echo "$at_srcdir/nsh.at:266:
    ovs-appctl dpctl/dump-flows dummy@ovs-dummy | strip_used | grep -v ipv6 | sort
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:266"
( $at_check_trace;
    ovs-appctl dpctl/dump-flows dummy@ovs-dummy | strip_used | grep -v ipv6 | sort

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(dst=1e:2c:e9:2a:66:9e),eth_type(0x0800),ipv4(frag=no), packets:1, bytes:98, used:0.0s, actions:push_nsh(flags=0,ttl=63,mdtype=2,np=3,spi=0x1234,si=255,md2=0x10000a041234567820001408fedcba9876543210),push_eth(src=00:00:00:00:00:00,dst=11:22:33:44:55:66),pop_eth,pop_nsh(),set(eth(dst=11:22:33:44:55:66)),recirc(0x3)
recirc_id(0x3),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), packets:1, bytes:98, used:0.0s, actions:2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:266"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/nsh.at:274: check_logs "
at_fn_check_prepare_trace "nsh.at:274"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:274"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/nsh.at:274: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "nsh.at:274"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:274"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/nsh.at:274: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "nsh.at:274"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:274"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "nsh.at:274: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "nsh.at:274: wait failed" >&5

    $as_echo "nsh.at:274" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/nsh.at:274"
fi

   { set +x
$as_echo "$at_srcdir/nsh.at:274: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "nsh.at:274"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:274"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/nsh.at:274: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "nsh.at:274"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:274"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "nsh.at:274: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "nsh.at:274: wait failed" >&5

    $as_echo "nsh.at:274" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/nsh.at:274"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2528
#AT_START_2529
at_fn_group_banner 2529 'nsh.at:282' \
  "nsh - double encap over veth link using groups" " " 133
at_xfail=no
(
  $as_echo "2529. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/nsh.at:284: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "nsh.at:284"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:284"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/nsh.at:284: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "nsh.at:284"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:284"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/nsh.at:284: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:284"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:284"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/nsh.at:284: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "nsh.at:284"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:284"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/nsh.at:284: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "nsh.at:284"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:284"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/nsh.at:284: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:284"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:284"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/nsh.at:284: add_of_br 0  "
at_fn_check_prepare_trace "nsh.at:284"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:284"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



{ set +x
$as_echo "$at_srcdir/nsh.at:286:
ovs-vsctl set bridge br0 datapath_type=dummy \\
            protocols=OpenFlow10,OpenFlow13,OpenFlow14,OpenFlow15 -- \\
        add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1 -- \\
        add-port br0 p2 -- set Interface p2 type=dummy ofport_request=2 -- \\
        add-port br0 v3 -- set Interface v3 type=patch options:peer=v4 ofport_request=3 -- \\
        add-port br0 v4 -- set Interface v4 type=patch options:peer=v3 ofport_request=4"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:286"
( $at_check_trace;
ovs-vsctl set bridge br0 datapath_type=dummy \
            protocols=OpenFlow10,OpenFlow13,OpenFlow14,OpenFlow15 -- \
        add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1 -- \
        add-port br0 p2 -- set Interface p2 type=dummy ofport_request=2 -- \
        add-port br0 v3 -- set Interface v3 type=patch options:peer=v4 ofport_request=3 -- \
        add-port br0 v4 -- set Interface v4 type=patch options:peer=v3 ofport_request=4
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:286"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


cat >flows.txt <<'_ATEOF'
    table=0,in_port=1,ip,actions=group:100
    table=0,in_port=4,packet_type=(0,0),dl_type=0x894f,nsh_mdtype=1,nsh_spi=0x5678,nsh_c1=0x55667788,actions=decap(),goto_table:1
    table=1,packet_type=(1,0x894f),nsh_mdtype=1,nsh_spi=0x5678,nsh_c1=0x55667788,actions=decap(),goto_table:2
    table=2,packet_type=(1,0x894f),nsh_mdtype=1,nsh_spi=0x1234,nsh_c1=0x11223344,actions=decap(),output:2
_ATEOF


cat >groups.txt <<'_ATEOF'
    add group_id=100,type=indirect,bucket=actions=encap(nsh(md_type=1)),set_field:0x1234->nsh_spi,set_field:0x11223344->nsh_c1,group:200
    add group_id=200,type=indirect,bucket=actions=encap(nsh(md_type=1)),set_field:0x5678->nsh_spi,set_field:0x55667788->nsh_c1,group:300
    add group_id=300,type=indirect,bucket=actions=encap(ethernet),set_field:11:22:33:44:55:66->dl_dst,3
_ATEOF


{ set +x
$as_echo "$at_srcdir/nsh.at:307:
    ovs-ofctl del-flows br0
    ovs-ofctl -Oopenflow13 add-groups br0 groups.txt
    ovs-ofctl -Oopenflow13 add-flows br0 flows.txt
    ovs-ofctl -Oopenflow13 dump-flows br0 | ofctl_strip | sort | grep actions
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:307"
( $at_check_trace;
    ovs-ofctl del-flows br0
    ovs-ofctl -Oopenflow13 add-groups br0 groups.txt
    ovs-ofctl -Oopenflow13 add-flows br0 flows.txt
    ovs-ofctl -Oopenflow13 dump-flows br0 | ofctl_strip | sort | grep actions

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " in_port=4,dl_type=0x894f,nsh_mdtype=1,nsh_spi=0x5678,nsh_c1=0x55667788 actions=decap(),goto_table:1
 ip,in_port=1 actions=group:100
 table=1, packet_type=(1,0x894f),nsh_mdtype=1,nsh_spi=0x5678,nsh_c1=0x55667788 actions=decap(),goto_table:2
 table=2, packet_type=(1,0x894f),nsh_mdtype=1,nsh_spi=0x1234,nsh_c1=0x11223344 actions=decap(),output:2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:307"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# TODO:
# The fields nw_proto, nw_tos, nw_ecn, nw_ttl in final flow seem unnecessary. Can they be avoided?
# The match on dl_dst=66:77:88:99:aa:bb in the Megaflow is a side effect of setting the dl_dst in the pushed outer
# Ethernet header. It is a consequence of using wc->masks both for tracking matched and set bits and seems hard to
# avoid except by using separate masks for both purposes.

{ set +x
$as_echo "$at_srcdir/nsh.at:325:
    ovs-appctl ofproto/trace br0 'in_port=1,icmp,dl_src=00:11:22:33:44:55,dl_dst=66:77:88:99:aa:bb,nw_dst=10.10.10.10,nw_src=20.20.20.20'
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:325"
( $at_check_trace;
    ovs-appctl ofproto/trace br0 'in_port=1,icmp,dl_src=00:11:22:33:44:55,dl_dst=66:77:88:99:aa:bb,nw_dst=10.10.10.10,nw_src=20.20.20.20'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Flow: icmp,in_port=1,vlan_tci=0x0000,dl_src=00:11:22:33:44:55,dl_dst=66:77:88:99:aa:bb,nw_src=20.20.20.20,nw_dst=10.10.10.10,nw_tos=0,nw_ecn=0,nw_ttl=0,icmp_type=0,icmp_code=0

bridge(\"br0\")
-------------
 0. ip,in_port=1, priority 32768
    group:100
    encap(nsh(md_type=1))
    set_field:0x1234->nsh_spi
    set_field:0x11223344->nsh_c1
    group:200
    encap(nsh(md_type=1))
    set_field:0x5678->nsh_spi
    set_field:0x55667788->nsh_c1
    group:300
    encap(ethernet)
    set_field:11:22:33:44:55:66->eth_dst
    output:3

bridge(\"br0\")
-------------
 0. in_port=4,dl_type=0x894f,nsh_mdtype=1,nsh_spi=0x5678,nsh_c1=0x55667788, priority 32768
    decap()
    goto_table:1
 1. packet_type=(1,0x894f),nsh_mdtype=1,nsh_spi=0x5678,nsh_c1=0x55667788, priority 32768
    decap()

Final flow: unchanged
Megaflow: recirc_id=0,eth,ip,in_port=1,dl_dst=66:77:88:99:aa:bb,nw_frag=no
Datapath actions: push_nsh(flags=0,ttl=63,mdtype=1,np=3,spi=0x1234,si=255,c1=0x11223344,c2=0x0,c3=0x0,c4=0x0),push_nsh(flags=0,ttl=63,mdtype=1,np=4,spi=0x5678,si=255,c1=0x55667788,c2=0x0,c3=0x0,c4=0x0),push_eth(src=00:00:00:00:00:00,dst=11:22:33:44:55:66),pop_eth,pop_nsh(),recirc(0x1)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:325"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/nsh.at:359:
    ovs-appctl ofproto/trace br0 'recirc_id=1,in_port=4,packet_type=(1,0x894f),nsh_mdtype=1,nsh_np=3,nsh_spi=0x1234,nsh_c1=0x11223344'
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:359"
( $at_check_trace;
    ovs-appctl ofproto/trace br0 'recirc_id=1,in_port=4,packet_type=(1,0x894f),nsh_mdtype=1,nsh_np=3,nsh_spi=0x1234,nsh_c1=0x11223344'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Flow: recirc_id=0x1,packet_type=(1,0x894f),in_port=4

bridge(\"br0\")
-------------
    thaw
            Resuming from table 0
        Restoring actions: goto_table:2
    goto_table:2
 2. packet_type=(1,0x894f),nsh_mdtype=1,nsh_spi=0x1234,nsh_c1=0x11223344, priority 32768
    decap()

Final flow: recirc_id=0x1,eth,in_port=4,vlan_tci=0x0000,dl_src=00:00:00:00:00:00,dl_dst=00:00:00:00:00:00,dl_type=0x0000
Megaflow: recirc_id=0x1,packet_type=(1,0x894f),in_port=4,nsh_mdtype=1,nsh_np=3,nsh_spi=0x1234,nsh_c1=0x11223344
Datapath actions: pop_nsh(),recirc(0x2)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:359"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/nsh.at:378:
    ovs-appctl ofproto/trace br0 'recirc_id=2,in_port=4,ip'
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:378"
( $at_check_trace;
    ovs-appctl ofproto/trace br0 'recirc_id=2,in_port=4,ip'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "Flow: recirc_id=0x2,eth,ip,in_port=4,vlan_tci=0x0000,dl_src=00:00:00:00:00:00,dl_dst=00:00:00:00:00:00,nw_src=0.0.0.0,nw_dst=0.0.0.0,nw_proto=0,nw_tos=0,nw_ecn=0,nw_ttl=0

bridge(\"br0\")
-------------
    thaw
            Resuming from table 0
        Restoring actions: unroll_xlate(table=2, cookie=0),output:2
    unroll_xlate(table=2, cookie=0)
    restored state: table=2, cookie=0
    output:2

Final flow: unchanged
Megaflow: recirc_id=0x2,eth,ip,in_port=4,nw_frag=no
Datapath actions: 2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:378"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Now send two real ICMP echo request packets in on port p1

{ set +x
$as_echo "$at_srcdir/nsh.at:399:
    ovs-appctl netdev-dummy/receive p1 1e2ce92a669e3a6dd2099cab0800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive p1 1e2ce92a669e3a6dd2099cab0800450000548a83400040011aadc0a80a0ac0a80a1e0800b7170a4d0002fd509a5800000000de1c020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:399"
( $at_check_trace;
    ovs-appctl netdev-dummy/receive p1 1e2ce92a669e3a6dd2099cab0800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive p1 1e2ce92a669e3a6dd2099cab0800450000548a83400040011aadc0a80a0ac0a80a1e0800b7170a4d0002fd509a5800000000de1c020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:399"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 1000

# A packet count of 1 in the megaflow entries means the first packet was processed by
# the ofproto slow path and the second successfully by the datapath flow entry.

{ set +x
$as_echo "$at_srcdir/nsh.at:409:
    ovs-appctl dpctl/dump-flows dummy@ovs-dummy | strip_used | grep -v ipv6 | sort
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:409"
( $at_check_trace;
    ovs-appctl dpctl/dump-flows dummy@ovs-dummy | strip_used | grep -v ipv6 | sort

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
recirc_id(0),in_port(1),packet_type(ns=0,id=0),eth(dst=1e:2c:e9:2a:66:9e),eth_type(0x0800),ipv4(frag=no), packets:1, bytes:98, used:0.0s, actions:push_nsh(flags=0,ttl=63,mdtype=1,np=3,spi=0x1234,si=255,c1=0x11223344,c2=0x0,c3=0x0,c4=0x0),push_nsh(flags=0,ttl=63,mdtype=1,np=4,spi=0x5678,si=255,c1=0x55667788,c2=0x0,c3=0x0,c4=0x0),push_eth(src=00:00:00:00:00:00,dst=11:22:33:44:55:66),pop_eth,pop_nsh(),recirc(0x3)
recirc_id(0x3),in_port(1),packet_type(ns=1,id=0x894f),nsh(mdtype=1,np=3,spi=0x1234,c1=0x11223344), packets:1, bytes:122, used:0.0s, actions:pop_nsh(),recirc(0x4)
recirc_id(0x4),in_port(1),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(frag=no), packets:1, bytes:98, used:0.0s, actions:2
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:409"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/nsh.at:417: check_logs "
at_fn_check_prepare_trace "nsh.at:417"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:417"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/nsh.at:417: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "nsh.at:417"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:417"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/nsh.at:417: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "nsh.at:417"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:417"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "nsh.at:417: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "nsh.at:417: wait failed" >&5

    $as_echo "nsh.at:417" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/nsh.at:417"
fi

   { set +x
$as_echo "$at_srcdir/nsh.at:417: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "nsh.at:417"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:417"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/nsh.at:417: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "nsh.at:417"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:417"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "nsh.at:417: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "nsh.at:417: wait failed" >&5

    $as_echo "nsh.at:417" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/nsh.at:417"
fi

  set +x
  $at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2529
#AT_START_2530
at_fn_group_banner 2530 'nsh.at:459' \
  "nsh - triangle PTAP bridge setup with NSH over vxlan-gpe" "" 133
at_xfail=no
(
  $as_echo "2530. $at_setup_line: testing $at_desc ..."
  $at_traceon

ovs_init


   touch .conf.db.~lock~
   { set +x
$as_echo "$at_srcdir/nsh.at:461: ovsdb-tool create conf.db \$abs_top_srcdir/vswitchd/vswitch.ovsschema"
at_fn_check_prepare_dynamic "ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema" "nsh.at:461"
( $at_check_trace; ovsdb-tool create conf.db $abs_top_srcdir/vswitchd/vswitch.ovsschema
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:461"
$at_failed && at_fn_log_failure
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/nsh.at:461: ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:\$OVS_RUNDIR/db.sock"
at_fn_check_prepare_dynamic "ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock" "nsh.at:461"
( $at_check_trace; ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:$OVS_RUNDIR/db.sock
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:461"
$at_failed && at_fn_log_failure
$at_traceon; }

   on_exit "kill `cat ovsdb-server.pid`"
   { set +x
$as_echo "$at_srcdir/nsh.at:461: sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:461"
( $at_check_trace; sed < stderr '
/vlog|INFO|opened log file/d
/ovsdb_server|INFO|ovsdb-server (Open vSwitch)/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:461"
$at_failed && at_fn_log_failure
$at_traceon; }



      { set +x
$as_echo "$at_srcdir/nsh.at:461: ovs-vsctl --no-wait init "
at_fn_check_prepare_trace "nsh.at:461"
( $at_check_trace; ovs-vsctl --no-wait init
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:461"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


      { set +x
$as_echo "$at_srcdir/nsh.at:461: ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl"
at_fn_check_prepare_trace "nsh.at:461"
( $at_check_trace; ovs-vswitchd --enable-dummy --disable-system  --detach --no-chdir --pidfile --log-file -vvconn -vofproto_dpif -vunixctl
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:461"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log"
$at_traceon; }


   on_exit "kill_ovs_vswitchd `cat ovs-vswitchd.pid`"
   { set +x
$as_echo "$at_srcdir/nsh.at:461: sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:461"
( $at_check_trace; sed < stderr '
/ovs_numa|INFO|Discovered /d
/vlog|INFO|opened log file/d
/vswitchd|INFO|ovs-vswitchd (Open vSwitch)/d
/reconnect|INFO|/d
/ofproto|INFO|using datapath ID/d
/netdev_linux|INFO|.*device has unknown hardware address family/d
/ofproto|INFO|datapath ID changed to fedcba9876543210/d
/dpdk|INFO|DPDK Disabled - Use other_config:dpdk-init to enable/d
/netdev: Flow API/d
/tc: Using policy/d'
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:461"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


   { set +x
$as_echo "$at_srcdir/nsh.at:461: add_of_br 0  "
at_fn_check_prepare_trace "nsh.at:461"
( $at_check_trace; add_of_br 0
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:461"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



HWADDR_BRP1=aa:55:00:00:00:01
HWADDR_BRP2=aa:55:00:00:00:02
HWADDR_BRP3=aa:55:00:00:00:03

# Setup bridge infrastructure
{ set +x
$as_echo "$at_srcdir/nsh.at:468:
    ovs-vsctl add-br br-in1 -- \\
        set bridge br-in1 datapath_type=dummy fail-mode=standalone
    ovs-vsctl add-br br-in2 -- \\
        set bridge br-in2 datapath_type=dummy fail-mode=standalone
    ovs-vsctl add-br br-in3 -- \\
        set bridge br-in3 datapath_type=dummy fail-mode=standalone
    ovs-vsctl add-br br-p1 -- \\
        set bridge br-p1 datapath_type=dummy fail-mode=standalone other-config:hwaddr=\$HWADDR_BRP1
    ovs-vsctl add-br br-p2 -- \\
        set bridge br-p2 datapath_type=dummy fail-mode=standalone other-config:hwaddr=\$HWADDR_BRP2
    ovs-vsctl add-br br-p3 -- \\
        set bridge br-p3 datapath_type=dummy fail-mode=standalone other-config:hwaddr=\$HWADDR_BRP3

    ovs-vsctl add-port br-p1 p1-0 -- set interface p1-0 type=patch options:peer=p0-1 ofport_request=2
    ovs-vsctl add-port br-p2 p2-0 -- set interface p2-0 type=patch options:peer=p0-2 ofport_request=2
    ovs-vsctl add-port br-p3 p3-0 -- set interface p3-0 type=patch options:peer=p0-3 ofport_request=2
    ovs-vsctl add-port br0 p0-1 -- set interface p0-1 type=patch options:peer=p1-0 ofport_request=10
    ovs-vsctl add-port br0 p0-2 -- set interface p0-2 type=patch options:peer=p2-0 ofport_request=20
    ovs-vsctl add-port br0 p0-3 -- set interface p0-3 type=patch options:peer=p3-0 ofport_request=30

    # Populate the MAC table of br0
    ovs-ofctl del-flows br0
    ovs-ofctl add-flow br0 dl_dst=\$HWADDR_BRP1,actions=10
    ovs-ofctl add-flow br0 dl_dst=\$HWADDR_BRP2,actions=20
    ovs-ofctl add-flow br0 dl_dst=\$HWADDR_BRP3,actions=30

    ovs-ofctl del-flows br-in1
    ovs-ofctl del-flows br-in2
    ovs-ofctl del-flows br-in3
    ovs-ofctl del-flows br-p1
    ovs-ofctl del-flows br-p2
    ovs-ofctl del-flows br-p3
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:468"
( $at_check_trace;
    ovs-vsctl add-br br-in1 -- \
        set bridge br-in1 datapath_type=dummy fail-mode=standalone
    ovs-vsctl add-br br-in2 -- \
        set bridge br-in2 datapath_type=dummy fail-mode=standalone
    ovs-vsctl add-br br-in3 -- \
        set bridge br-in3 datapath_type=dummy fail-mode=standalone
    ovs-vsctl add-br br-p1 -- \
        set bridge br-p1 datapath_type=dummy fail-mode=standalone other-config:hwaddr=$HWADDR_BRP1
    ovs-vsctl add-br br-p2 -- \
        set bridge br-p2 datapath_type=dummy fail-mode=standalone other-config:hwaddr=$HWADDR_BRP2
    ovs-vsctl add-br br-p3 -- \
        set bridge br-p3 datapath_type=dummy fail-mode=standalone other-config:hwaddr=$HWADDR_BRP3

    ovs-vsctl add-port br-p1 p1-0 -- set interface p1-0 type=patch options:peer=p0-1 ofport_request=2
    ovs-vsctl add-port br-p2 p2-0 -- set interface p2-0 type=patch options:peer=p0-2 ofport_request=2
    ovs-vsctl add-port br-p3 p3-0 -- set interface p3-0 type=patch options:peer=p0-3 ofport_request=2
    ovs-vsctl add-port br0 p0-1 -- set interface p0-1 type=patch options:peer=p1-0 ofport_request=10
    ovs-vsctl add-port br0 p0-2 -- set interface p0-2 type=patch options:peer=p2-0 ofport_request=20
    ovs-vsctl add-port br0 p0-3 -- set interface p0-3 type=patch options:peer=p3-0 ofport_request=30

    # Populate the MAC table of br0
    ovs-ofctl del-flows br0
    ovs-ofctl add-flow br0 dl_dst=$HWADDR_BRP1,actions=10
    ovs-ofctl add-flow br0 dl_dst=$HWADDR_BRP2,actions=20
    ovs-ofctl add-flow br0 dl_dst=$HWADDR_BRP3,actions=30

    ovs-ofctl del-flows br-in1
    ovs-ofctl del-flows br-in2
    ovs-ofctl del-flows br-in3
    ovs-ofctl del-flows br-p1
    ovs-ofctl del-flows br-p2
    ovs-ofctl del-flows br-p3

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:468"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


### Setup vxlan-gpe tunnels
{ set +x
$as_echo "$at_srcdir/nsh.at:504:
    ovs-vsctl add-port br-in1 vxlangpe12 -- \\
        set interface vxlangpe12 type=vxlan options:exts=gpe options:remote_ip=10.0.0.2 options:packet_type=ptap ofport_request=1020
    ovs-vsctl add-port br-in1 vxlangpe13 -- \\
        set interface vxlangpe13 type=vxlan options:exts=gpe options:remote_ip=10.0.0.3 options:packet_type=ptap ofport_request=1030

    ovs-vsctl add-port br-in2 vxlangpe21 -- \\
        set interface vxlangpe21 type=vxlan options:exts=gpe options:remote_ip=20.0.0.1 options:packet_type=ptap ofport_request=2010
    ovs-vsctl add-port br-in2 vxlangpe23 -- \\
        set interface vxlangpe23 type=vxlan options:exts=gpe options:remote_ip=20.0.0.3 options:packet_type=ptap ofport_request=2030

    ovs-vsctl add-port br-in3 vxlangpe31 -- \\
        set interface vxlangpe31 type=vxlan options:exts=gpe options:remote_ip=30.0.0.1 options:packet_type=ptap ofport_request=3010
    ovs-vsctl add-port br-in3 vxlangpe32 -- \\
        set interface vxlangpe32 type=vxlan options:exts=gpe options:remote_ip=30.0.0.2 options:packet_type=ptap ofport_request=3020

    ovs-appctl netdev-dummy/ip4addr br-p1 10.0.0.1/24
    ovs-appctl ovs/route/add 10.0.0.0/24 br-p1
    ovs-appctl tnl/arp/set br-p1 10.0.0.1 \$HWADDR_BRP1
    ovs-appctl tnl/arp/set br-p1 10.0.0.2 \$HWADDR_BRP2
    ovs-appctl tnl/arp/set br-p1 10.0.0.3 \$HWADDR_BRP3

    ovs-appctl netdev-dummy/ip4addr br-p2 20.0.0.2/24
    ovs-appctl ovs/route/add 20.0.0.0/24 br-p2
    ovs-appctl tnl/arp/set br-p2 20.0.0.1 \$HWADDR_BRP1
    ovs-appctl tnl/arp/set br-p2 20.0.0.2 \$HWADDR_BRP2
    ovs-appctl tnl/arp/set br-p2 20.0.0.3 \$HWADDR_BRP3

    ovs-appctl netdev-dummy/ip4addr br-p3 30.0.0.3/24
    ovs-appctl ovs/route/add 30.0.0.0/24 br-p3
    ovs-appctl tnl/arp/set br-p3 30.0.0.1 \$HWADDR_BRP1
    ovs-appctl tnl/arp/set br-p3 30.0.0.2 \$HWADDR_BRP2
    ovs-appctl tnl/arp/set br-p3 30.0.0.3 \$HWADDR_BRP3
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:504"
( $at_check_trace;
    ovs-vsctl add-port br-in1 vxlangpe12 -- \
        set interface vxlangpe12 type=vxlan options:exts=gpe options:remote_ip=10.0.0.2 options:packet_type=ptap ofport_request=1020
    ovs-vsctl add-port br-in1 vxlangpe13 -- \
        set interface vxlangpe13 type=vxlan options:exts=gpe options:remote_ip=10.0.0.3 options:packet_type=ptap ofport_request=1030

    ovs-vsctl add-port br-in2 vxlangpe21 -- \
        set interface vxlangpe21 type=vxlan options:exts=gpe options:remote_ip=20.0.0.1 options:packet_type=ptap ofport_request=2010
    ovs-vsctl add-port br-in2 vxlangpe23 -- \
        set interface vxlangpe23 type=vxlan options:exts=gpe options:remote_ip=20.0.0.3 options:packet_type=ptap ofport_request=2030

    ovs-vsctl add-port br-in3 vxlangpe31 -- \
        set interface vxlangpe31 type=vxlan options:exts=gpe options:remote_ip=30.0.0.1 options:packet_type=ptap ofport_request=3010
    ovs-vsctl add-port br-in3 vxlangpe32 -- \
        set interface vxlangpe32 type=vxlan options:exts=gpe options:remote_ip=30.0.0.2 options:packet_type=ptap ofport_request=3020

    ovs-appctl netdev-dummy/ip4addr br-p1 10.0.0.1/24
    ovs-appctl ovs/route/add 10.0.0.0/24 br-p1
    ovs-appctl tnl/arp/set br-p1 10.0.0.1 $HWADDR_BRP1
    ovs-appctl tnl/arp/set br-p1 10.0.0.2 $HWADDR_BRP2
    ovs-appctl tnl/arp/set br-p1 10.0.0.3 $HWADDR_BRP3

    ovs-appctl netdev-dummy/ip4addr br-p2 20.0.0.2/24
    ovs-appctl ovs/route/add 20.0.0.0/24 br-p2
    ovs-appctl tnl/arp/set br-p2 20.0.0.1 $HWADDR_BRP1
    ovs-appctl tnl/arp/set br-p2 20.0.0.2 $HWADDR_BRP2
    ovs-appctl tnl/arp/set br-p2 20.0.0.3 $HWADDR_BRP3

    ovs-appctl netdev-dummy/ip4addr br-p3 30.0.0.3/24
    ovs-appctl ovs/route/add 30.0.0.0/24 br-p3
    ovs-appctl tnl/arp/set br-p3 30.0.0.1 $HWADDR_BRP1
    ovs-appctl tnl/arp/set br-p3 30.0.0.2 $HWADDR_BRP2
    ovs-appctl tnl/arp/set br-p3 30.0.0.3 $HWADDR_BRP3

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:504"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/nsh.at:539:
    ovs-appctl ovs/route/add 10.0.0.0/24 br-p1
    ovs-appctl tnl/arp/set br-p1 10.0.0.1 \$HWADDR_BRP1
    ovs-appctl tnl/arp/set br-p1 10.0.0.2 \$HWADDR_BRP2
    ovs-appctl tnl/arp/set br-p1 10.0.0.3 \$HWADDR_BRP3
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:539"
( $at_check_trace;
    ovs-appctl ovs/route/add 10.0.0.0/24 br-p1
    ovs-appctl tnl/arp/set br-p1 10.0.0.1 $HWADDR_BRP1
    ovs-appctl tnl/arp/set br-p1 10.0.0.2 $HWADDR_BRP2
    ovs-appctl tnl/arp/set br-p1 10.0.0.3 $HWADDR_BRP3

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:539"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/nsh.at:546:
    ovs-appctl ovs/route/add 20.0.0.0/24 br-p2
    ovs-appctl tnl/arp/set br-p2 20.0.0.1 \$HWADDR_BRP1
    ovs-appctl tnl/arp/set br-p2 20.0.0.2 \$HWADDR_BRP2
    ovs-appctl tnl/arp/set br-p2 20.0.0.3 \$HWADDR_BRP3
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:546"
( $at_check_trace;
    ovs-appctl ovs/route/add 20.0.0.0/24 br-p2
    ovs-appctl tnl/arp/set br-p2 20.0.0.1 $HWADDR_BRP1
    ovs-appctl tnl/arp/set br-p2 20.0.0.2 $HWADDR_BRP2
    ovs-appctl tnl/arp/set br-p2 20.0.0.3 $HWADDR_BRP3

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:546"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/nsh.at:553:
    ovs-appctl ovs/route/add 30.0.0.0/24 br-p3
    ovs-appctl tnl/arp/set br-p3 30.0.0.1 \$HWADDR_BRP1
    ovs-appctl tnl/arp/set br-p3 30.0.0.2 \$HWADDR_BRP2
    ovs-appctl tnl/arp/set br-p3 30.0.0.3 \$HWADDR_BRP3
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:553"
( $at_check_trace;
    ovs-appctl ovs/route/add 30.0.0.0/24 br-p3
    ovs-appctl tnl/arp/set br-p3 30.0.0.1 $HWADDR_BRP1
    ovs-appctl tnl/arp/set br-p3 30.0.0.2 $HWADDR_BRP2
    ovs-appctl tnl/arp/set br-p3 30.0.0.3 $HWADDR_BRP3

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:553"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/nsh.at:560:
    ovs-appctl ovs/route/show | grep User:
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:560"
( $at_check_trace;
    ovs-appctl ovs/route/show | grep User:

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "User: 10.0.0.0/24 dev br-p1 SRC 10.0.0.1
User: 20.0.0.0/24 dev br-p2 SRC 20.0.0.2
User: 30.0.0.0/24 dev br-p3 SRC 30.0.0.3
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:560"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/nsh.at:568:
    ovs-appctl tnl/neigh/show | grep br-p | sort
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:568"
( $at_check_trace;
    ovs-appctl tnl/neigh/show | grep br-p | sort

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:568"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }



### Flows in br-p<x>to twist TEP IP addresses in tunnel IP headers
{ set +x
$as_echo "$at_srcdir/nsh.at:574:
    ovs-ofctl add-flow br-p1 in_port:LOCAL,actions=2
    ovs-ofctl add-flow br-p1 in_port:2,ip,nw_dst:20.0.0.1,actions=mod_nw_dst:10.0.0.1,mod_nw_src:10.0.0.2,LOCAL
    ovs-ofctl add-flow br-p1 in_port:2,ip,nw_dst:30.0.0.1,actions=mod_nw_dst:10.0.0.1,mod_nw_src:10.0.0.3,LOCAL

    ovs-ofctl add-flow br-p2 in_port:LOCAL,actions=2
    ovs-ofctl add-flow br-p2 in_port:2,ip,nw_dst:10.0.0.2,actions=mod_nw_dst:20.0.0.2,mod_nw_src:20.0.0.1,LOCAL
    ovs-ofctl add-flow br-p2 in_port:2,ip,nw_dst:30.0.0.2,actions=mod_nw_dst:20.0.0.2,mod_nw_src:20.0.0.3,LOCAL

    ovs-ofctl add-flow br-p3 in_port:LOCAL,actions=2
    ovs-ofctl add-flow br-p3 in_port:2,ip,nw_dst:10.0.0.3,actions=mod_nw_dst:30.0.0.3,mod_nw_src:30.0.0.1,LOCAL
    ovs-ofctl add-flow br-p3 in_port:2,ip,nw_dst:20.0.0.3,actions=mod_nw_dst:30.0.0.3,mod_nw_src:30.0.0.2,LOCAL
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:574"
( $at_check_trace;
    ovs-ofctl add-flow br-p1 in_port:LOCAL,actions=2
    ovs-ofctl add-flow br-p1 in_port:2,ip,nw_dst:20.0.0.1,actions=mod_nw_dst:10.0.0.1,mod_nw_src:10.0.0.2,LOCAL
    ovs-ofctl add-flow br-p1 in_port:2,ip,nw_dst:30.0.0.1,actions=mod_nw_dst:10.0.0.1,mod_nw_src:10.0.0.3,LOCAL

    ovs-ofctl add-flow br-p2 in_port:LOCAL,actions=2
    ovs-ofctl add-flow br-p2 in_port:2,ip,nw_dst:10.0.0.2,actions=mod_nw_dst:20.0.0.2,mod_nw_src:20.0.0.1,LOCAL
    ovs-ofctl add-flow br-p2 in_port:2,ip,nw_dst:30.0.0.2,actions=mod_nw_dst:20.0.0.2,mod_nw_src:20.0.0.3,LOCAL

    ovs-ofctl add-flow br-p3 in_port:LOCAL,actions=2
    ovs-ofctl add-flow br-p3 in_port:2,ip,nw_dst:10.0.0.3,actions=mod_nw_dst:30.0.0.3,mod_nw_src:30.0.0.1,LOCAL
    ovs-ofctl add-flow br-p3 in_port:2,ip,nw_dst:20.0.0.3,actions=mod_nw_dst:30.0.0.3,mod_nw_src:30.0.0.2,LOCAL

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:574"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/nsh.at:588:
    ovs-ofctl dump-flows br-p1 | ofctl_strip | sort | grep actions
    ovs-ofctl dump-flows br-p2 | ofctl_strip | sort | grep actions
    ovs-ofctl dump-flows br-p3 | ofctl_strip | sort | grep actions
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:588"
( $at_check_trace;
    ovs-ofctl dump-flows br-p1 | ofctl_strip | sort | grep actions
    ovs-ofctl dump-flows br-p2 | ofctl_strip | sort | grep actions
    ovs-ofctl dump-flows br-p3 | ofctl_strip | sort | grep actions

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " in_port=LOCAL actions=output:2
 ip,in_port=2,nw_dst=20.0.0.1 actions=mod_nw_dst:10.0.0.1,mod_nw_src:10.0.0.2,LOCAL
 ip,in_port=2,nw_dst=30.0.0.1 actions=mod_nw_dst:10.0.0.1,mod_nw_src:10.0.0.3,LOCAL
 in_port=LOCAL actions=output:2
 ip,in_port=2,nw_dst=10.0.0.2 actions=mod_nw_dst:20.0.0.2,mod_nw_src:20.0.0.1,LOCAL
 ip,in_port=2,nw_dst=30.0.0.2 actions=mod_nw_dst:20.0.0.2,mod_nw_src:20.0.0.3,LOCAL
 in_port=LOCAL actions=output:2
 ip,in_port=2,nw_dst=10.0.0.3 actions=mod_nw_dst:30.0.0.3,mod_nw_src:30.0.0.1,LOCAL
 ip,in_port=2,nw_dst=20.0.0.3 actions=mod_nw_dst:30.0.0.3,mod_nw_src:30.0.0.2,LOCAL
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:588"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


### Setup test ports for traffic injection
N1_IP=192.168.10.10
N2_IP=192.168.10.20
N3_IP=192.168.10.30
N1_MAC=aa:55:aa:55:00:01
N2_MAC=aa:55:aa:55:00:02
N3_MAC=aa:55:aa:55:00:03
N1_OFPORT=10
N2_OFPORT=20
N3_OFPORT=30

{ set +x
$as_echo "$at_srcdir/nsh.at:615:
    ovs-vsctl add-port br-in1 n1 -- \\
        set interface n1 type=dummy ofport_request=\$N1_OFPORT options:tx_pcap=n1.pcap
    ovs-vsctl add-port br-in2 n2 -- \\
        set interface n2 type=dummy ofport_request=\$N2_OFPORT options:tx_pcap=n2.pcap
    ovs-vsctl add-port br-in3 n3 -- \\
        set interface n3 type=dummy ofport_request=\$N3_OFPORT options:tx_pcap=n3.pcap
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:615"
( $at_check_trace;
    ovs-vsctl add-port br-in1 n1 -- \
        set interface n1 type=dummy ofport_request=$N1_OFPORT options:tx_pcap=n1.pcap
    ovs-vsctl add-port br-in2 n2 -- \
        set interface n2 type=dummy ofport_request=$N2_OFPORT options:tx_pcap=n2.pcap
    ovs-vsctl add-port br-in3 n3 -- \
        set interface n3 type=dummy ofport_request=$N3_OFPORT options:tx_pcap=n3.pcap

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:615"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


#N1_DPPORT=$(ovs-appctl dpif/show | grep "n1 10" | sed 's|.*/\([[0-9]]*\):.*|\1|')
#N2_DPPORT=$(ovs-appctl dpif/show | grep "n2 20" | sed 's|.*/\([[0-9]]*\):.*|\1|')
#N3_DPPORT=$(ovs-appctl dpif/show | grep "n3 30" | sed 's|.*/\([[0-9]]*\):.*|\1|')

### Verify datapath configuration
{ set +x
$as_echo "$at_srcdir/nsh.at:629:
    ovs-appctl dpif/show | grep -v hit | sed 's/\\t/    /g'
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:629"
( $at_check_trace;
    ovs-appctl dpif/show | grep -v hit | sed 's/\t/    /g'

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "    br-in1:
        br-in1 65534/101: (dummy-internal)
        n1 10/4: (dummy)
        vxlangpe12 1020/4789: (vxlan: packet_type=ptap, remote_ip=10.0.0.2)
        vxlangpe13 1030/4789: (vxlan: packet_type=ptap, remote_ip=10.0.0.3)
    br-in2:
        br-in2 65534/102: (dummy-internal)
        n2 20/5: (dummy)
        vxlangpe21 2010/4789: (vxlan: packet_type=ptap, remote_ip=20.0.0.1)
        vxlangpe23 2030/4789: (vxlan: packet_type=ptap, remote_ip=20.0.0.3)
    br-in3:
        br-in3 65534/103: (dummy-internal)
        n3 30/6: (dummy)
        vxlangpe31 3010/4789: (vxlan: packet_type=ptap, remote_ip=30.0.0.1)
        vxlangpe32 3020/4789: (vxlan: packet_type=ptap, remote_ip=30.0.0.2)
    br-p1:
        br-p1 65534/1: (dummy-internal)
        p1-0 2/none: (patch: peer=p0-1)
    br-p2:
        br-p2 65534/2: (dummy-internal)
        p2-0 2/none: (patch: peer=p0-2)
    br-p3:
        br-p3 65534/3: (dummy-internal)
        p3-0 2/none: (patch: peer=p0-3)
    br0:
        br0 65534/100: (dummy-internal)
        p0-1 10/none: (patch: peer=p1-0)
        p0-2 20/none: (patch: peer=p2-0)
        p0-3 30/none: (patch: peer=p3-0)
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:629"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


### Setup SFC flow configuration

# br-in1 is SFC classifier (table 1) and final SFF (tables 2,3)
cat >br-in1.txt <<'_ATEOF'
    table=0,in_port=10,ip,actions=decap(),goto_table:1
    table=0,in_port=10,packet_type=(1,0x800),actions=goto_table:1
    table=0,in_port=1020,packet_type=(1,0x894f),actions=goto_table:2
    table=0,in_port=1030,packet_type=(1,0x894f),actions=goto_table:2
    table=1,priority=32,packet_type=(1,0x800),nw_dst=192.168.10.30,actions=encap(nsh(md_type=1)),set_field:0x3000->nsh_spi,output:1030
    table=1,priority=0,packet_type=(1,0x800),nw_dst=0.0.0.0/0,actions=encap(nsh(md_type=1)),set_field:0x3020->nsh_spi,output:1020
    table=2,packet_type=(1,0x894f),nsh_spi=0x1000,nsh_si=255,actions=decap(),goto_table:3
    table=2,packet_type=(1,0x894f),nsh_spi=0x1020,nsh_si=254,actions=decap(),goto_table:3
    table=3,ip,actions=set_field:aa:55:aa:55:00:01->dl_dst,output:10
    table=3,packet_type=(1,0x800),actions=encap(ethernet),set_field:aa:55:aa:55:00:01->dl_dst,output:10
_ATEOF


# br-in2 is intermediate SFF (table 2) and simulated SF (table 4)
cat >br-in2.txt <<'_ATEOF'
    table=0,in_port=2010,packet_type=(1,0x894f),actions=goto_table:2
    table=0,in_port=2030,packet_type=(1,0x894f),actions=goto_table:2
    table=2,packet_type=(1,0x894f),nsh_spi=0x3020,nsh_si=255,actions=encap(ethernet),set_field:11:22:33:44:55:66->dl_dst,goto_table:4
    table=2,packet_type=(1,0x894f),nsh_spi=0x3020,nsh_si=254,actions=output:2030
    table=2,packet_type=(1,0x894f),nsh_spi=0x1020,nsh_si=255,actions=encap(ethernet),set_field:77:88:99:aa:bb:cc->dl_dst,goto_table:4
    table=2,packet_type=(1,0x894f),nsh_spi=0x1020,nsh_si=254,actions=output:2010
    table=4,dl_type=0x894f,dl_dst=11:22:33:44:55:66,actions=set_field:254->nsh_si,decap(),resubmit(,2)
    table=4,dl_type=0x894f,dl_dst=77:88:99:aa:bb:cc,actions=dec_nsh_ttl,decap(),resubmit(,2)
_ATEOF


# br-in3 is SFC classifier (table 1) and final SFF (tables 2,3)
cat >br-in3.txt <<'_ATEOF'
    table=0,in_port=30,ip,actions=decap(),goto_table:1
    table=0,in_port=30,packet_type=(1,0x800),actions=goto_table:1
    table=0,in_port=3010,packet_type=(1,0x894f),actions=goto_table:2
    table=0,in_port=3020,packet_type=(1,0x894f),actions=goto_table:2
    table=1,priority=32,packet_type=(1,0x800),nw_dst=192.168.10.10,actions=encap(nsh(md_type=1)),set_field:0x1000->nsh_spi,3010
    table=1,priority=0,packet_type=(1,0x800),nw_dst=0.0.0.0/0,actions=encap(nsh(md_type=1)),set_field:0x1020->nsh_spi,3020
    table=2,packet_type=(1,0x894f),nsh_spi=0x3000,nsh_si=255,actions=decap(),goto_table:3
    table=2,packet_type=(1,0x894f),nsh_spi=0x3020,nsh_si=254,actions=decap(),goto_table:3
    table=3,ip,actions=set_field:aa:55:aa:55:00:03->dl_dst,output:30
    table=3,packet_type=(1,0x800),actions=encap(ethernet),set_field:aa:55:aa:55:00:03->dl_dst,output:30
_ATEOF


{ set +x
$as_echo "$at_srcdir/nsh.at:705:
    ovs-ofctl -Oopenflow13 add-flows br-in1 br-in1.txt
    ovs-ofctl -Oopenflow13 add-flows br-in2 br-in2.txt
    ovs-ofctl -Oopenflow13 add-flows br-in3 br-in3.txt
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:705"
( $at_check_trace;
    ovs-ofctl -Oopenflow13 add-flows br-in1 br-in1.txt
    ovs-ofctl -Oopenflow13 add-flows br-in2 br-in2.txt
    ovs-ofctl -Oopenflow13 add-flows br-in3 br-in3.txt

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:705"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


### Inject ICMP Echo request test packets

# N1 to N3, via the direct SF path with spi 0x3000
{ set +x
$as_echo "$at_srcdir/nsh.at:714:
    ovs-appctl netdev-dummy/receive n1 1e2ce92a669e3a6dd2099cab0800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive n1 1e2ce92a669e3a6dd2099cab0800450000548a83400040011aadc0a80a0ac0a80a1e0800b7170a4d0002fd509a5800000000de1c020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:714"
( $at_check_trace;
    ovs-appctl netdev-dummy/receive n1 1e2ce92a669e3a6dd2099cab0800450000548a53400040011addc0a80a0ac0a80a1e08006f200a4d0001fc509a58000000002715020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive n1 1e2ce92a669e3a6dd2099cab0800450000548a83400040011aadc0a80a0ac0a80a1e0800b7170a4d0002fd509a5800000000de1c020000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:714"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 1000
ovs-appctl time/warp 1000
ovs-appctl time/warp 1000

{ set +x
$as_echo "$at_srcdir/nsh.at:723:
    ovs-appctl dpctl/dump-flows dummy@ovs-dummy | strip_used | grep -v ipv6 | sort
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:723"
( $at_check_trace;
    ovs-appctl dpctl/dump-flows dummy@ovs-dummy | strip_used | grep -v ipv6 | sort

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
recirc_id(0),in_port(4),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(dst=192.168.10.30,frag=no), packets:1, bytes:98, used:0.0s, actions:pop_eth,push_nsh(flags=0,ttl=63,mdtype=1,np=1,spi=0x3000,si=255,c1=0x0,c2=0x0,c3=0x0,c4=0x0),clone(tnl_push(tnl_port(4789),header(size=50,type=4,eth(dst=aa:55:00:00:00:03,src=aa:55:00:00:00:01,dl_type=0x0800),ipv4(src=10.0.0.1,dst=10.0.0.3,proto=17,tos=0,ttl=64,frag=0x4000),udp(src=0,dst=4789,csum=0x0),vxlan(flags=0xc000004,vni=0x0)),out_port(1)),set(ipv4(src=30.0.0.1,dst=30.0.0.3)),tnl_pop(4789))
tunnel(tun_id=0x0,src=30.0.0.1,dst=30.0.0.3,flags(-df-csum+key)),recirc_id(0),in_port(4789),packet_type(ns=1,id=0x894f),nsh(np=1,spi=0x3000,si=255), packets:1, bytes:108, used:0.0s, actions:pop_nsh(),recirc(0x1)
tunnel(tun_id=0x0,src=30.0.0.1,dst=30.0.0.3,flags(-df-csum+key)),recirc_id(0x1),in_port(4789),packet_type(ns=1,id=0x800),ipv4(frag=no), packets:1, bytes:84, used:0.0s, actions:push_eth(src=00:00:00:00:00:00,dst=aa:55:aa:55:00:03),6
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:723"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/nsh.at:731:
    ovs-ofctl -Oopenflow13 dump-flows br-in1 | ofctl_strip | sort | grep actions
    ovs-ofctl -Oopenflow13 dump-flows br-in2 | ofctl_strip | sort | grep actions
    ovs-ofctl -Oopenflow13 dump-flows br-in3 | ofctl_strip | sort | grep actions
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:731"
( $at_check_trace;
    ovs-ofctl -Oopenflow13 dump-flows br-in1 | ofctl_strip | sort | grep actions
    ovs-ofctl -Oopenflow13 dump-flows br-in2 | ofctl_strip | sort | grep actions
    ovs-ofctl -Oopenflow13 dump-flows br-in3 | ofctl_strip | sort | grep actions

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " n_packets=2, n_bytes=196, ip,in_port=10 actions=decap(),goto_table:1
 packet_type=(1,0x800),in_port=10 actions=goto_table:1
 packet_type=(1,0x894f),in_port=1020 actions=goto_table:2
 packet_type=(1,0x894f),in_port=1030 actions=goto_table:2
 table=1, n_packets=2, n_bytes=196, priority=32,packet_type=(1,0x800),nw_dst=192.168.10.30 actions=encap(nsh(md_type=1)),set_field:0x3000->nsh_spi,output:1030
 table=1, priority=0,packet_type=(1,0x800) actions=encap(nsh(md_type=1)),set_field:0x3020->nsh_spi,output:1020
 table=2, packet_type=(1,0x894f),nsh_spi=0x1000,nsh_si=255 actions=decap(),goto_table:3
 table=2, packet_type=(1,0x894f),nsh_spi=0x1020,nsh_si=254 actions=decap(),goto_table:3
 table=3, ip actions=set_field:aa:55:aa:55:00:01->eth_dst,output:10
 table=3, packet_type=(1,0x800) actions=encap(ethernet),set_field:aa:55:aa:55:00:01->eth_dst,output:10
 packet_type=(1,0x894f),in_port=2010 actions=goto_table:2
 packet_type=(1,0x894f),in_port=2030 actions=goto_table:2
 table=2, packet_type=(1,0x894f),nsh_spi=0x1020,nsh_si=254 actions=output:2010
 table=2, packet_type=(1,0x894f),nsh_spi=0x1020,nsh_si=255 actions=encap(ethernet),set_field:77:88:99:aa:bb:cc->eth_dst,goto_table:4
 table=2, packet_type=(1,0x894f),nsh_spi=0x3020,nsh_si=254 actions=output:2030
 table=2, packet_type=(1,0x894f),nsh_spi=0x3020,nsh_si=255 actions=encap(ethernet),set_field:11:22:33:44:55:66->eth_dst,goto_table:4
 table=4, dl_dst=11:22:33:44:55:66,dl_type=0x894f actions=set_field:254->nsh_si,decap(),resubmit(,2)
 table=4, dl_dst=77:88:99:aa:bb:cc,dl_type=0x894f actions=dec_nsh_ttl,decap(),resubmit(,2)
 ip,in_port=30 actions=decap(),goto_table:1
 n_packets=2, n_bytes=216, packet_type=(1,0x894f),in_port=3010 actions=goto_table:2
 packet_type=(1,0x800),in_port=30 actions=goto_table:1
 packet_type=(1,0x894f),in_port=3020 actions=goto_table:2
 table=1, priority=0,packet_type=(1,0x800) actions=encap(nsh(md_type=1)),set_field:0x1020->nsh_spi,output:3020
 table=1, priority=32,packet_type=(1,0x800),nw_dst=192.168.10.10 actions=encap(nsh(md_type=1)),set_field:0x1000->nsh_spi,output:3010
 table=2, n_packets=2, n_bytes=216, packet_type=(1,0x894f),nsh_spi=0x3000,nsh_si=255 actions=decap(),goto_table:3
 table=2, packet_type=(1,0x894f),nsh_spi=0x3020,nsh_si=254 actions=decap(),goto_table:3
 table=3, ip actions=set_field:aa:55:aa:55:00:03->eth_dst,output:30
 table=3, n_packets=2, n_bytes=168, packet_type=(1,0x800) actions=encap(ethernet),set_field:aa:55:aa:55:00:03->eth_dst,output:30
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:731"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


# Clear up megaflow cache
ovs-appctl time/warp 11000

# N1 to some other IP destination (192.168.10.20), via the indirect SF path with spi 0x3020
{ set +x
$as_echo "$at_srcdir/nsh.at:770:
    ovs-appctl netdev-dummy/receive n1 461e7d1a95a13a6dd2099cab080045000054500b40004001552fc0a80a0ac0a80a140800531f09a90001e9509a580000000055ba030000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive n1 461e7d1a95a13a6dd2099cab08004500005450934000400154a7c0a80a0ac0a80a140800f41d09a90002ea509a5800000000b3ba030000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:770"
( $at_check_trace;
    ovs-appctl netdev-dummy/receive n1 461e7d1a95a13a6dd2099cab080045000054500b40004001552fc0a80a0ac0a80a140800531f09a90001e9509a580000000055ba030000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
    ovs-appctl netdev-dummy/receive n1 461e7d1a95a13a6dd2099cab08004500005450934000400154a7c0a80a0ac0a80a140800f41d09a90002ea509a5800000000b3ba030000000000101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:770"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


ovs-appctl time/warp 1000
ovs-appctl time/warp 1000

{ set +x
$as_echo "$at_srcdir/nsh.at:777:
    ovs-appctl dpctl/dump-flows dummy@ovs-dummy | strip_used | grep -v ipv6 | sort
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:777"
( $at_check_trace;
    ovs-appctl dpctl/dump-flows dummy@ovs-dummy | strip_used | grep -v ipv6 | sort

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo "flow-dump from non-dpdk interfaces:
recirc_id(0),in_port(4),packet_type(ns=0,id=0),eth_type(0x0800),ipv4(dst=192.168.10.20/255.255.255.248,frag=no), packets:1, bytes:98, used:0.0s, actions:pop_eth,push_nsh(flags=0,ttl=63,mdtype=1,np=1,spi=0x3020,si=255,c1=0x0,c2=0x0,c3=0x0,c4=0x0),clone(tnl_push(tnl_port(4789),header(size=50,type=4,eth(dst=aa:55:00:00:00:02,src=aa:55:00:00:00:01,dl_type=0x0800),ipv4(src=10.0.0.1,dst=10.0.0.2,proto=17,tos=0,ttl=64,frag=0x4000),udp(src=0,dst=4789,csum=0x0),vxlan(flags=0xc000004,vni=0x0)),out_port(1)),set(ipv4(src=20.0.0.1,dst=20.0.0.2)),tnl_pop(4789))
tunnel(tun_id=0x0,src=20.0.0.1,dst=20.0.0.2,flags(-df-csum+key)),recirc_id(0),in_port(4789),packet_type(ns=1,id=0x894f),nsh(spi=0x3020,si=255), packets:1, bytes:108, used:0.0s, actions:push_eth(src=00:00:00:00:00:00,dst=11:22:33:44:55:66),set(nsh(spi=0x3020,si=254)),pop_eth,clone(tnl_push(tnl_port(4789),header(size=50,type=4,eth(dst=aa:55:00:00:00:03,src=aa:55:00:00:00:02,dl_type=0x0800),ipv4(src=20.0.0.2,dst=20.0.0.3,proto=17,tos=0,ttl=64,frag=0x4000),udp(src=0,dst=4789,csum=0x0),vxlan(flags=0xc000004,vni=0x0)),out_port(2)),set(ipv4(src=30.0.0.2,dst=30.0.0.3)),tnl_pop(4789))
tunnel(tun_id=0x0,src=30.0.0.2,dst=30.0.0.3,flags(-df-csum+key)),recirc_id(0),in_port(4789),packet_type(ns=1,id=0x894f),nsh(np=1,spi=0x3020,si=254), packets:1, bytes:108, used:0.0s, actions:pop_nsh(),recirc(0x2)
tunnel(tun_id=0x0,src=30.0.0.2,dst=30.0.0.3,flags(-df-csum+key)),recirc_id(0x2),in_port(4789),packet_type(ns=1,id=0x800),ipv4(frag=no), packets:1, bytes:84, used:0.0s, actions:push_eth(src=00:00:00:00:00:00,dst=aa:55:aa:55:00:03),6
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:777"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/nsh.at:786:
    ovs-ofctl -Oopenflow13 dump-flows br-in1 | ofctl_strip | sort | grep actions
    ovs-ofctl -Oopenflow13 dump-flows br-in2 | ofctl_strip | sort | grep actions
    ovs-ofctl -Oopenflow13 dump-flows br-in3 | ofctl_strip | sort | grep actions
"
at_fn_check_prepare_notrace 'an embedded newline' "nsh.at:786"
( $at_check_trace;
    ovs-ofctl -Oopenflow13 dump-flows br-in1 | ofctl_strip | sort | grep actions
    ovs-ofctl -Oopenflow13 dump-flows br-in2 | ofctl_strip | sort | grep actions
    ovs-ofctl -Oopenflow13 dump-flows br-in3 | ofctl_strip | sort | grep actions

) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; $as_echo " n_packets=4, n_bytes=392, ip,in_port=10 actions=decap(),goto_table:1
 packet_type=(1,0x800),in_port=10 actions=goto_table:1
 packet_type=(1,0x894f),in_port=1020 actions=goto_table:2
 packet_type=(1,0x894f),in_port=1030 actions=goto_table:2
 table=1, n_packets=2, n_bytes=196, priority=0,packet_type=(1,0x800) actions=encap(nsh(md_type=1)),set_field:0x3020->nsh_spi,output:1020
 table=1, n_packets=2, n_bytes=196, priority=32,packet_type=(1,0x800),nw_dst=192.168.10.30 actions=encap(nsh(md_type=1)),set_field:0x3000->nsh_spi,output:1030
 table=2, packet_type=(1,0x894f),nsh_spi=0x1000,nsh_si=255 actions=decap(),goto_table:3
 table=2, packet_type=(1,0x894f),nsh_spi=0x1020,nsh_si=254 actions=decap(),goto_table:3
 table=3, ip actions=set_field:aa:55:aa:55:00:01->eth_dst,output:10
 table=3, packet_type=(1,0x800) actions=encap(ethernet),set_field:aa:55:aa:55:00:01->eth_dst,output:10
 n_packets=2, n_bytes=216, packet_type=(1,0x894f),in_port=2010 actions=goto_table:2
 packet_type=(1,0x894f),in_port=2030 actions=goto_table:2
 table=2, n_packets=2, n_bytes=216, packet_type=(1,0x894f),nsh_spi=0x3020,nsh_si=254 actions=output:2030
 table=2, n_packets=2, n_bytes=216, packet_type=(1,0x894f),nsh_spi=0x3020,nsh_si=255 actions=encap(ethernet),set_field:11:22:33:44:55:66->eth_dst,goto_table:4
 table=2, packet_type=(1,0x894f),nsh_spi=0x1020,nsh_si=254 actions=output:2010
 table=2, packet_type=(1,0x894f),nsh_spi=0x1020,nsh_si=255 actions=encap(ethernet),set_field:77:88:99:aa:bb:cc->eth_dst,goto_table:4
 table=4, dl_dst=77:88:99:aa:bb:cc,dl_type=0x894f actions=dec_nsh_ttl,decap(),resubmit(,2)
 table=4, n_packets=2, n_bytes=216, dl_dst=11:22:33:44:55:66,dl_type=0x894f actions=set_field:254->nsh_si,decap(),resubmit(,2)
 ip,in_port=30 actions=decap(),goto_table:1
 n_packets=2, n_bytes=216, packet_type=(1,0x894f),in_port=3010 actions=goto_table:2
 n_packets=2, n_bytes=216, packet_type=(1,0x894f),in_port=3020 actions=goto_table:2
 packet_type=(1,0x800),in_port=30 actions=goto_table:1
 table=1, priority=0,packet_type=(1,0x800) actions=encap(nsh(md_type=1)),set_field:0x1020->nsh_spi,output:3020
 table=1, priority=32,packet_type=(1,0x800),nw_dst=192.168.10.10 actions=encap(nsh(md_type=1)),set_field:0x1000->nsh_spi,output:3010
 table=2, n_packets=2, n_bytes=216, packet_type=(1,0x894f),nsh_spi=0x3000,nsh_si=255 actions=decap(),goto_table:3
 table=2, n_packets=2, n_bytes=216, packet_type=(1,0x894f),nsh_spi=0x3020,nsh_si=254 actions=decap(),goto_table:3
 table=3, ip actions=set_field:aa:55:aa:55:00:03->eth_dst,output:30
 table=3, n_packets=4, n_bytes=336, packet_type=(1,0x800) actions=encap(ethernet),set_field:aa:55:aa:55:00:03->eth_dst,output:30
" | \
  $at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:786"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }


{ set +x
$as_echo "$at_srcdir/nsh.at:821: check_logs "
at_fn_check_prepare_trace "nsh.at:821"
( $at_check_trace; check_logs
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:821"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   { set +x
$as_echo "$at_srcdir/nsh.at:821: test -e \$OVS_RUNDIR/ovs-vswitchd.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovs-vswitchd.pid" "nsh.at:821"
( $at_check_trace; test -e $OVS_RUNDIR/ovs-vswitchd.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:821"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovs-vswitchd.pid)
   { set +x
$as_echo "$at_srcdir/nsh.at:821: ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup"
at_fn_check_prepare_trace "nsh.at:821"
( $at_check_trace; ovs-appctl --timeout=10 -t ovs-vswitchd exit --cleanup
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:821"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "nsh.at:821: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "nsh.at:821: wait failed" >&5

    $as_echo "nsh.at:821" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/nsh.at:821"
fi

   { set +x
$as_echo "$at_srcdir/nsh.at:821: test -e \$OVS_RUNDIR/ovsdb-server.pid"
at_fn_check_prepare_dynamic "test -e $OVS_RUNDIR/ovsdb-server.pid" "nsh.at:821"
( $at_check_trace; test -e $OVS_RUNDIR/ovsdb-server.pid
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:821"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   TMPPID=$(cat $OVS_RUNDIR/ovsdb-server.pid)
   { set +x
$as_echo "$at_srcdir/nsh.at:821: ovs-appctl --timeout=10 -t ovsdb-server exit"
at_fn_check_prepare_trace "nsh.at:821"
( $at_check_trace; ovs-appctl --timeout=10 -t ovsdb-server exit
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/nsh.at:821"
$at_failed && at_fn_log_failure  \
"ovsdb-server.log" \
"ovs-vswitchd.log"
$at_traceon; }

   $as_echo "nsh.at:821: waiting while kill -0 \$TMPPID 2>/dev/null..." >&5
ovs_wait_cond () {
    if kill -0 $TMPPID 2>/dev/null; then return 1; else return 0; fi
}
if ovs_wait; then :
else
    $as_echo "nsh.at:821: wait failed" >&5

    $as_echo "nsh.at:821" >"$at_check_line_file"
at_fn_check_skip 99 "$at_srcdir/nsh.at:821"
fi

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